diff --git a/.github/workflows/deployment.yml b/.github/workflows/deployment.yml
index 224a753d65..aa5db0fd54 100644
--- a/.github/workflows/deployment.yml
+++ b/.github/workflows/deployment.yml
@@ -73,7 +73,7 @@ jobs:
cd ../MindustryBuilds
echo "Updating version to ${RELEASE_VERSION:1}"
BNUM=$(($GITHUB_RUN_NUMBER + 1000))
- echo versionName=7-fdroid-${RELEASE_VERSION:1}$'\n'versionCode=${BNUM} > version_fdroid.txt
+ echo versionName=8-fdroid-${RELEASE_VERSION:1}$'\n'versionCode=${BNUM} > version_fdroid.txt
git add .
git commit -m "Updating to build ${RELEASE_VERSION:1}"
git push https://Anuken:${{ secrets.API_TOKEN_GITHUB }}@github.com/Anuken/MindustryBuilds
diff --git a/.gitignore b/.gitignore
index dd3f2a0f06..5e3b7987ef 100644
--- a/.gitignore
+++ b/.gitignore
@@ -23,6 +23,7 @@ ios/libs/
/tools/build/
/tests/build/
/server/build/
+ios/libs/
changelog
saves/
/core/assets-raw/fontgen/out/
@@ -167,3 +168,6 @@ android/libs/
# ignored due to frequent branch conflicts.
core/assets/logicids.dat
+
+# project files for the sectors
+core/assets-raw/sprites/ui/sectors/*.json
\ No newline at end of file
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 99086e0da2..02a6643f3f 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -13,11 +13,13 @@ If you are submitting a new block, make sure it has a name and description, and
### Do not make large changes before discussing them first.
If you are interested in adding a large mechanic/feature or changing large amounts of code, first contact me (Anuken) via [Discord](https://discord.gg/mindustry) - either via PM or by posting in the `#pulls` channel.
-For most changes, this should not be necessary. I just want to know if you're doing something big so I can offer advice and/or make sure you're not wasting your time on it.
+For most changes, this should not be necessary. I just want to know if you're doing something big, so I can offer advice and/or make sure you're not wasting your time on it.
-### Do not make formatting PRs.
+### Do not make formatting or "cleanup" PRs.
Yes, there are occurrences of trailing spaces, extra newlines, empty indents, and other tiny errors. No, I don't want to merge, view, or get notified by your 1-line PR fixing it. If you're implementing a PR with modification of *actual code*, feel free to fix formatting in the general vicinity of your changes, but please don't waste everyone's time with pointless changes.
+I **especially** do not want to see PRs that apply any kind of automated analysis to the source code to "optimize" anything - my IDE can do that already. If the PR doesn't actually change anything useful, I'm not going to review or merge it.
+
## Style Guidelines
### Follow the formatting guidelines.
@@ -34,7 +36,7 @@ This means:
Import [this style file](.github/Mindustry-CodeStyle-IJ.xml) into IntelliJ to get correct formatting when developing Mindustry.
-### Do not use incompatible Java features (java.util.function, java.awt).
+### Do not use incompatible Java features (java.util.function, java.awt, java.lang.Objects).
Android and RoboVM (iOS) do not support many of Java 8's features, such as the packages `java.util.function`, `java.util.stream` or `forEach` in collections. Do not use these in your code.
If you need to use functional interfaces, use the ones in `arc.func`, which are more or less the same with different naming schemes.
@@ -66,7 +68,7 @@ Otherwise, use the `Tmp` variables for things like vector/shape operations, or c
If using a list, make it a static variable and clear it every time it is used. Re-use as much as possible.
### Avoid bloated code and unnecessary getters/setters.
-This is situational, but in essence what it means is to avoid using any sort of getters and setters unless absolutely necessary. Public or protected fields should suffice for most things.
+This is situational, but in essence, what it means is to avoid using any sort of getters and setters unless absolutely necessary. Public or protected fields should suffice for most things.
If something needs to be encapsulated in the future, IntelliJ can handle it with a few clicks.
diff --git a/SERVERLIST.md b/SERVERLIST.md
index bdc199602b..844b67f89a 100644
--- a/SERVERLIST.md
+++ b/SERVERLIST.md
@@ -1,4 +1,4 @@
-# Note: Server list review is currently on pause. No new servers will be merged until v8 is released!
+# Note: The v7 server list is frozen. No new servers will be accepted. All v8 server PRs should be made [here](https://github.com/Anuken/MindustryServerList/blob/main/servers_v8.json).
*PRs to edit addresses of existing servers will still be accepted, although very infrequently.*
diff --git a/android/AndroidManifest.xml b/android/AndroidManifest.xml
index 25602c4ab4..cca7d06d82 100644
--- a/android/AndroidManifest.xml
+++ b/android/AndroidManifest.xml
@@ -17,7 +17,8 @@
android:usesCleartextTraffic="true"
android:appCategory="game"
android:label="@string/app_name"
- android:fullBackupContent="@xml/backup_rules">
+ android:fullBackupContent="@xml/backup_rules"
+ android:largeHeap="true">
Remote) [Default: Server -> Client]. */
Loc targets() default Loc.server;
- /** Specifies which methods are generated. Only affects server-to-client methods. */
+ /** Specifies which methods are generated. Only affects server-to-client methods (Server -> Client(s)) [Default: Server -> Client & Server -> All Clients]. */
Variant variants() default Variant.all;
- /** The local locations where this method is called locally, when invoked. */
+ /** The locations where this method is called locally, when invoked locally (This -> This) [Default: No local invocations]. */
Loc called() default Loc.none;
- /** Whether to forward this packet to all other clients upon receival. Client only. */
+ /** Whether the server should forward this packet to all other clients upon receival from a client (Client -> Server -> Other Clients). [Default: Don't Forward Client Invocations] */
boolean forward() default false;
/**
diff --git a/annotations/src/main/java/mindustry/annotations/entity/EntityProcess.java b/annotations/src/main/java/mindustry/annotations/entity/EntityProcess.java
index a6b1d95d67..bd0e7a4630 100644
--- a/annotations/src/main/java/mindustry/annotations/entity/EntityProcess.java
+++ b/annotations/src/main/java/mindustry/annotations/entity/EntityProcess.java
@@ -19,6 +19,7 @@ import javax.annotation.processing.*;
import javax.lang.model.element.*;
import javax.lang.model.type.*;
import java.lang.annotation.*;
+import java.util.*;
@SupportedAnnotationTypes({
"mindustry.annotations.Annotations.EntityDef",
@@ -97,6 +98,8 @@ public class EntityProcess extends BaseProcessor{
//create component interfaces
for(Stype component : allComponents){
+
+
TypeSpec.Builder inter = TypeSpec.interfaceBuilder(interfaceName(component))
.addModifiers(Modifier.PUBLIC).addAnnotation(EntityInterface.class);
@@ -116,45 +119,47 @@ public class EntityProcess extends BaseProcessor{
inter.addSuperinterface(ClassName.get(packageName, interfaceName(type)));
}
- ObjectSet signatures = new ObjectSet<>();
+ if(component.annotation(Component.class).genInterface()){
+ ObjectSet signatures = new ObjectSet<>();
- //add utility methods to interface
- for(Smethod method : component.methods()){
- //skip private methods, those are for internal use.
- if(method.isAny(Modifier.PRIVATE, Modifier.STATIC)) continue;
+ //add utility methods to interface
+ for(Smethod method : component.methods()){
+ //skip private methods, those are for internal use.
+ if(method.isAny(Modifier.PRIVATE, Modifier.STATIC)) continue;
- //keep track of signatures used to prevent dupes
- signatures.add(method.e.toString());
+ //keep track of signatures used to prevent dupes
+ signatures.add(method.e.toString());
- inter.addMethod(MethodSpec.methodBuilder(method.name())
- .addJavadoc(method.doc() == null ? "" : method.doc())
- .addExceptions(method.thrownt())
- .addTypeVariables(method.typeVariables().map(TypeVariableName::get))
- .returns(method.ret().toString().equals("void") ? TypeName.VOID : method.retn())
- .addParameters(method.params().map(v -> ParameterSpec.builder(v.tname(), v.name())
- .build())).addModifiers(Modifier.PUBLIC, Modifier.ABSTRACT).build());
- }
-
- //generate interface getters and setters for all "standard" fields
- for(Svar field : component.fields().select(e -> !e.is(Modifier.STATIC) && !e.is(Modifier.PRIVATE) && !e.has(Import.class))){
- String cname = field.name();
-
- //getter
- if(!signatures.contains(cname + "()")){
- inter.addMethod(MethodSpec.methodBuilder(cname).addModifiers(Modifier.ABSTRACT, Modifier.PUBLIC)
- .addAnnotations(Seq.with(field.annotations()).select(a -> a.toString().contains("Null") || a.toString().contains("Deprecated")).map(AnnotationSpec::get))
- .addJavadoc(field.doc() == null ? "" : field.doc())
- .returns(field.tname()).build());
+ inter.addMethod(MethodSpec.methodBuilder(method.name())
+ .addJavadoc(method.doc() == null ? "" : method.doc())
+ .addExceptions(method.thrownt())
+ .addTypeVariables(method.typeVariables().map(TypeVariableName::get))
+ .returns(method.ret().toString().equals("void") ? TypeName.VOID : method.retn())
+ .addParameters(method.params().map(v -> ParameterSpec.builder(v.tname(), v.name())
+ .build())).addModifiers(Modifier.PUBLIC, Modifier.ABSTRACT).build());
}
- //setter
- if(!field.is(Modifier.FINAL) && !signatures.contains(cname + "(" + field.mirror().toString() + ")") &&
- !field.annotations().contains(f -> f.toString().equals("@mindustry.annotations.Annotations.ReadOnly"))){
- inter.addMethod(MethodSpec.methodBuilder(cname).addModifiers(Modifier.ABSTRACT, Modifier.PUBLIC)
- .addJavadoc(field.doc() == null ? "" : field.doc())
- .addParameter(ParameterSpec.builder(field.tname(), field.name())
- .addAnnotations(Seq.with(field.annotations())
- .select(a -> a.toString().contains("Null") || a.toString().contains("Deprecated")).map(AnnotationSpec::get)).build()).build());
+ //generate interface getters and setters for all "standard" fields
+ for(Svar field : component.fields().select(e -> !e.is(Modifier.STATIC) && !e.is(Modifier.PRIVATE) && !e.has(Import.class))){
+ String cname = field.name();
+
+ //getter
+ if(!signatures.contains(cname + "()")){
+ inter.addMethod(MethodSpec.methodBuilder(cname).addModifiers(Modifier.ABSTRACT, Modifier.PUBLIC)
+ .addAnnotations(Seq.with(field.annotations()).select(a -> a.toString().contains("Null") || a.toString().contains("Deprecated")).map(AnnotationSpec::get))
+ .addJavadoc(field.doc() == null ? "" : field.doc())
+ .returns(field.tname()).build());
+ }
+
+ //setter
+ if(!field.is(Modifier.FINAL) && !signatures.contains(cname + "(" + field.mirror().toString() + ")") &&
+ !field.annotations().contains(f -> f.toString().equals("@mindustry.annotations.Annotations.ReadOnly"))){
+ inter.addMethod(MethodSpec.methodBuilder(cname).addModifiers(Modifier.ABSTRACT, Modifier.PUBLIC)
+ .addJavadoc(field.doc() == null ? "" : field.doc())
+ .addParameter(ParameterSpec.builder(field.tname(), field.name())
+ .addAnnotations(Seq.with(field.annotations())
+ .select(a -> a.toString().contains("Null") || a.toString().contains("Deprecated")).map(AnnotationSpec::get)).build()).build());
+ }
}
}
@@ -416,19 +421,34 @@ public class EntityProcess extends BaseProcessor{
//add all methods from components
for(ObjectMap.Entry> entry : methods){
- if(entry.value.contains(m -> m.has(Replace.class))){
- //check replacements
- if(entry.value.count(m -> m.has(Replace.class)) > 1){
- err("Type " + type + " has multiple components replacing method " + entry.key + ".");
- }
- Smethod base = entry.value.find(m -> m.has(Replace.class));
- entry.value.clear();
- entry.value.add(base);
- }
- //check multi return
- if(entry.value.count(m -> !m.isAny(Modifier.NATIVE, Modifier.ABSTRACT) && !m.isVoid()) > 1){
- err("Type " + type + " has multiple components implementing non-void method " + entry.key + ".");
+ //there are multiple @Replace implementations, or multiple non-void implementations.
+ if(entry.value.size > 1 && (entry.value.contains(m -> m.has(Replace.class)) || entry.value.count(m -> !m.isAny(Modifier.NATIVE, Modifier.ABSTRACT) && !m.isVoid()) > 1)){
+
+ //remove clutter
+ entry.value.removeAll(s -> s.is(Modifier.ABSTRACT));
+
+ Comparator comp = Structs.comps(
+ Structs.comps(
+ //highest priority first
+ Structs.comparingFloat(m -> m.has(MethodPriority.class) ? m.annotation(MethodPriority.class).value() : 0f),
+ //replacement means priority
+ Structs.comparingBool(m -> m.has(Replace.class))
+ ),
+
+ //otherwise, the 'highest' subclass (most dependencies)
+ Structs.comparingInt(m -> getDependencies(m.type()).size)
+ );
+
+ Smethod best = entry.value.max(comp);
+
+ if(entry.value.contains(s -> best != s && comp.compare(s, best) == 0)){
+ err("Type " + type + " has multiple components implementing method " + entry.value.first() + " in an ambiguous way. Use MethodPriority to designate which one should be used. Implementations: " +
+ entry.value.map(s -> s.descString()));
+ }
+
+ entry.value.clear();
+ entry.value.add(best);
}
entry.value.sort(Structs.comps(Structs.comparingFloat(m -> m.has(MethodPriority.class) ? m.annotation(MethodPriority.class).value() : 0), Structs.comparing(s -> s.up().getSimpleName().toString())));
diff --git a/annotations/src/main/java/mindustry/annotations/util/Stype.java b/annotations/src/main/java/mindustry/annotations/util/Stype.java
index 1b53213733..a70a6276de 100644
--- a/annotations/src/main/java/mindustry/annotations/util/Stype.java
+++ b/annotations/src/main/java/mindustry/annotations/util/Stype.java
@@ -28,6 +28,10 @@ public class Stype extends Selement{
return interfaces().flatMap(s -> s.allInterfaces().add(s)).distinct();
}
+ public boolean isInterface(){
+ return e.getKind() == ElementKind.INTERFACE;
+ }
+
public Seq superclasses(){
return Seq.with(BaseProcessor.typeu.directSupertypes(mirror())).map(Stype::of);
}
diff --git a/build.gradle b/build.gradle
index 6a49b0ce6e..27106c2f57 100644
--- a/build.gradle
+++ b/build.gradle
@@ -26,8 +26,8 @@ buildscript{
}
plugins{
- id "org.jetbrains.kotlin.jvm" version "1.6.0"
- id "org.jetbrains.kotlin.kapt" version "1.6.0"
+ id "org.jetbrains.kotlin.jvm" version "2.1.10"
+ id "org.jetbrains.kotlin.kapt" version "2.1.10"
}
allprojects{
@@ -37,8 +37,8 @@ allprojects{
group = 'com.github.Anuken'
ext{
- versionNumber = '7'
- if(!project.hasProperty("versionModifier")) versionModifier = 'release'
+ versionNumber = '8'
+ if(!project.hasProperty("versionModifier")) versionModifier = 'beta'
if(!project.hasProperty("versionType")) versionType = 'official'
appName = 'Mindustry'
steamworksVersion = '0b86023401880bb5e586bc404bedbaae9b1f1c94'
@@ -309,7 +309,7 @@ project(":core"){
task assetsJar(type: Jar, dependsOn: ":tools:pack"){
archiveClassifier = 'assets'
from files("assets"){
- exclude "config", "cache", "music", "sounds"
+ exclude "config", "cache", "music", "sounds", "sprites/fallback"
}
}
@@ -366,7 +366,6 @@ project(":core"){
//these are completely unnecessary
tasks.kaptGenerateStubsKotlin.onlyIf{ false }
tasks.compileKotlin.onlyIf{ false }
- tasks.inspectClassesForKotlinIC.onlyIf{ false }
}
//comp** classes are only used for code generation
diff --git a/core/assets-raw/sprites/blocks/campaign/advanced-launch-pad-light.png b/core/assets-raw/sprites/blocks/campaign/advanced-launch-pad-light.png
new file mode 100644
index 0000000000..039c97f909
Binary files /dev/null and b/core/assets-raw/sprites/blocks/campaign/advanced-launch-pad-light.png differ
diff --git a/core/assets-raw/sprites/blocks/campaign/advanced-launch-pad-pod.png b/core/assets-raw/sprites/blocks/campaign/advanced-launch-pad-pod.png
new file mode 100644
index 0000000000..93675a3d28
Binary files /dev/null and b/core/assets-raw/sprites/blocks/campaign/advanced-launch-pad-pod.png differ
diff --git a/core/assets-raw/sprites/blocks/campaign/advanced-launch-pad.png b/core/assets-raw/sprites/blocks/campaign/advanced-launch-pad.png
new file mode 100644
index 0000000000..de14b807f8
Binary files /dev/null and b/core/assets-raw/sprites/blocks/campaign/advanced-launch-pad.png differ
diff --git a/core/assets-raw/sprites/blocks/campaign/landing-pad.png b/core/assets-raw/sprites/blocks/campaign/landing-pad.png
new file mode 100644
index 0000000000..e4c98a3db5
Binary files /dev/null and b/core/assets-raw/sprites/blocks/campaign/landing-pad.png differ
diff --git a/core/assets-raw/sprites/blocks/environment/basalt-vent1.png b/core/assets-raw/sprites/blocks/environment/basalt-vent1.png
new file mode 100644
index 0000000000..52619379c9
Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/basalt-vent1.png differ
diff --git a/core/assets-raw/sprites/blocks/environment/basalt-vent2.png b/core/assets-raw/sprites/blocks/environment/basalt-vent2.png
new file mode 100644
index 0000000000..348318d7b9
Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/basalt-vent2.png differ
diff --git a/core/assets-raw/sprites/blocks/environment/stone-vent1.png b/core/assets-raw/sprites/blocks/environment/stone-vent1.png
new file mode 100644
index 0000000000..89bf1a4af4
Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/stone-vent1.png differ
diff --git a/core/assets-raw/sprites/blocks/environment/stone-vent2.png b/core/assets-raw/sprites/blocks/environment/stone-vent2.png
new file mode 100644
index 0000000000..9b783c8b92
Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/stone-vent2.png differ
diff --git a/core/assets-raw/sprites/effects/select-arrow-small.png b/core/assets-raw/sprites/effects/select-arrow-small.png
new file mode 100644
index 0000000000..6d021c0ddb
Binary files /dev/null and b/core/assets-raw/sprites/effects/select-arrow-small.png differ
diff --git a/core/assets-raw/sprites/items/liquid-cryofluid.png b/core/assets-raw/sprites/items/liquid-cryofluid.png
index a72f3b4d62..9b6ccc900f 100644
Binary files a/core/assets-raw/sprites/items/liquid-cryofluid.png and b/core/assets-raw/sprites/items/liquid-cryofluid.png differ
diff --git a/core/assets-raw/sprites/items/liquid-oil.png b/core/assets-raw/sprites/items/liquid-oil.png
index 5af0c2531a..74199a2dbc 100644
Binary files a/core/assets-raw/sprites/items/liquid-oil.png and b/core/assets-raw/sprites/items/liquid-oil.png differ
diff --git a/core/assets-raw/sprites/items/liquid-slag.png b/core/assets-raw/sprites/items/liquid-slag.png
index 1b17f29e50..f1d604fbc6 100644
Binary files a/core/assets-raw/sprites/items/liquid-slag.png and b/core/assets-raw/sprites/items/liquid-slag.png differ
diff --git a/core/assets-raw/sprites/ui/sectors/sector-aegis.png b/core/assets-raw/sprites/ui/sectors/sector-aegis.png
new file mode 100644
index 0000000000..6c94d6b757
Binary files /dev/null and b/core/assets-raw/sprites/ui/sectors/sector-aegis.png differ
diff --git a/core/assets-raw/sprites/ui/sectors/sector-atlas.png b/core/assets-raw/sprites/ui/sectors/sector-atlas.png
new file mode 100644
index 0000000000..3d101b1403
Binary files /dev/null and b/core/assets-raw/sprites/ui/sectors/sector-atlas.png differ
diff --git a/core/assets-raw/sprites/ui/sectors/sector-atolls.png b/core/assets-raw/sprites/ui/sectors/sector-atolls.png
new file mode 100644
index 0000000000..77df2ab519
Binary files /dev/null and b/core/assets-raw/sprites/ui/sectors/sector-atolls.png differ
diff --git a/core/assets-raw/sprites/ui/sectors/sector-basin.png b/core/assets-raw/sprites/ui/sectors/sector-basin.png
new file mode 100644
index 0000000000..d397bf100f
Binary files /dev/null and b/core/assets-raw/sprites/ui/sectors/sector-basin.png differ
diff --git a/core/assets-raw/sprites/ui/sectors/sector-biomassFacility.png b/core/assets-raw/sprites/ui/sectors/sector-biomassFacility.png
new file mode 100644
index 0000000000..dc328e89b1
Binary files /dev/null and b/core/assets-raw/sprites/ui/sectors/sector-biomassFacility.png differ
diff --git a/core/assets-raw/sprites/ui/sectors/sector-caldera-erekir.png b/core/assets-raw/sprites/ui/sectors/sector-caldera-erekir.png
new file mode 100644
index 0000000000..82542e66e8
Binary files /dev/null and b/core/assets-raw/sprites/ui/sectors/sector-caldera-erekir.png differ
diff --git a/core/assets-raw/sprites/ui/sectors/sector-coastline.png b/core/assets-raw/sprites/ui/sectors/sector-coastline.png
new file mode 100644
index 0000000000..02c081073f
Binary files /dev/null and b/core/assets-raw/sprites/ui/sectors/sector-coastline.png differ
diff --git a/core/assets-raw/sprites/ui/sectors/sector-craters.png b/core/assets-raw/sprites/ui/sectors/sector-craters.png
new file mode 100644
index 0000000000..c9c402f09a
Binary files /dev/null and b/core/assets-raw/sprites/ui/sectors/sector-craters.png differ
diff --git a/core/assets-raw/sprites/ui/sectors/sector-crevice.png b/core/assets-raw/sprites/ui/sectors/sector-crevice.png
new file mode 100644
index 0000000000..01a3482b1c
Binary files /dev/null and b/core/assets-raw/sprites/ui/sectors/sector-crevice.png differ
diff --git a/core/assets-raw/sprites/ui/sectors/sector-crossroads.png b/core/assets-raw/sprites/ui/sectors/sector-crossroads.png
new file mode 100644
index 0000000000..c97bbd3a27
Binary files /dev/null and b/core/assets-raw/sprites/ui/sectors/sector-crossroads.png differ
diff --git a/core/assets-raw/sprites/ui/sectors/sector-cruxscape.png b/core/assets-raw/sprites/ui/sectors/sector-cruxscape.png
new file mode 100644
index 0000000000..c0a4e6de10
Binary files /dev/null and b/core/assets-raw/sprites/ui/sectors/sector-cruxscape.png differ
diff --git a/core/assets-raw/sprites/ui/sectors/sector-desolateRift.png b/core/assets-raw/sprites/ui/sectors/sector-desolateRift.png
new file mode 100644
index 0000000000..2b03daef7e
Binary files /dev/null and b/core/assets-raw/sprites/ui/sectors/sector-desolateRift.png differ
diff --git a/core/assets-raw/sprites/ui/sectors/sector-extractionOutpost.png b/core/assets-raw/sprites/ui/sectors/sector-extractionOutpost.png
new file mode 100644
index 0000000000..9b18e2c913
Binary files /dev/null and b/core/assets-raw/sprites/ui/sectors/sector-extractionOutpost.png differ
diff --git a/core/assets-raw/sprites/ui/sectors/sector-facility32m.png b/core/assets-raw/sprites/ui/sectors/sector-facility32m.png
new file mode 100644
index 0000000000..8d2746fcbb
Binary files /dev/null and b/core/assets-raw/sprites/ui/sectors/sector-facility32m.png differ
diff --git a/core/assets-raw/sprites/ui/sectors/sector-frontier.png b/core/assets-raw/sprites/ui/sectors/sector-frontier.png
new file mode 100644
index 0000000000..72d526679d
Binary files /dev/null and b/core/assets-raw/sprites/ui/sectors/sector-frontier.png differ
diff --git a/core/assets-raw/sprites/ui/sectors/sector-frozenForest.png b/core/assets-raw/sprites/ui/sectors/sector-frozenForest.png
new file mode 100644
index 0000000000..180a317349
Binary files /dev/null and b/core/assets-raw/sprites/ui/sectors/sector-frozenForest.png differ
diff --git a/core/assets-raw/sprites/ui/sectors/sector-fungalPass.png b/core/assets-raw/sprites/ui/sectors/sector-fungalPass.png
new file mode 100644
index 0000000000..50d9f1207b
Binary files /dev/null and b/core/assets-raw/sprites/ui/sectors/sector-fungalPass.png differ
diff --git a/core/assets-raw/sprites/ui/sectors/sector-geothermalStronghold.png b/core/assets-raw/sprites/ui/sectors/sector-geothermalStronghold.png
new file mode 100644
index 0000000000..1d6a26d35b
Binary files /dev/null and b/core/assets-raw/sprites/ui/sectors/sector-geothermalStronghold.png differ
diff --git a/core/assets-raw/sprites/ui/sectors/sector-groundZero.png b/core/assets-raw/sprites/ui/sectors/sector-groundZero.png
new file mode 100644
index 0000000000..caab01dad9
Binary files /dev/null and b/core/assets-raw/sprites/ui/sectors/sector-groundZero.png differ
diff --git a/core/assets-raw/sprites/ui/sectors/sector-impact0078.png b/core/assets-raw/sprites/ui/sectors/sector-impact0078.png
new file mode 100644
index 0000000000..90e9aad6f3
Binary files /dev/null and b/core/assets-raw/sprites/ui/sectors/sector-impact0078.png differ
diff --git a/core/assets-raw/sprites/ui/sectors/sector-infestedCanyons.png b/core/assets-raw/sprites/ui/sectors/sector-infestedCanyons.png
new file mode 100644
index 0000000000..5bc4f5c378
Binary files /dev/null and b/core/assets-raw/sprites/ui/sectors/sector-infestedCanyons.png differ
diff --git a/core/assets-raw/sprites/ui/sectors/sector-intersect.png b/core/assets-raw/sprites/ui/sectors/sector-intersect.png
new file mode 100644
index 0000000000..ddef0b7fdb
Binary files /dev/null and b/core/assets-raw/sprites/ui/sectors/sector-intersect.png differ
diff --git a/core/assets-raw/sprites/ui/sectors/sector-karst.png b/core/assets-raw/sprites/ui/sectors/sector-karst.png
new file mode 100644
index 0000000000..9a0b98f632
Binary files /dev/null and b/core/assets-raw/sprites/ui/sectors/sector-karst.png differ
diff --git a/core/assets-raw/sprites/ui/sectors/sector-lake.png b/core/assets-raw/sprites/ui/sectors/sector-lake.png
new file mode 100644
index 0000000000..cfd5dfdbb0
Binary files /dev/null and b/core/assets-raw/sprites/ui/sectors/sector-lake.png differ
diff --git a/core/assets-raw/sprites/ui/sectors/sector-marsh.png b/core/assets-raw/sprites/ui/sectors/sector-marsh.png
new file mode 100644
index 0000000000..dcbc5bc6d3
Binary files /dev/null and b/core/assets-raw/sprites/ui/sectors/sector-marsh.png differ
diff --git a/core/assets-raw/sprites/ui/sectors/sector-mycelialBastion.png b/core/assets-raw/sprites/ui/sectors/sector-mycelialBastion.png
new file mode 100644
index 0000000000..fe0f310405
Binary files /dev/null and b/core/assets-raw/sprites/ui/sectors/sector-mycelialBastion.png differ
diff --git a/core/assets-raw/sprites/ui/sectors/sector-navalFortress.png b/core/assets-raw/sprites/ui/sectors/sector-navalFortress.png
new file mode 100644
index 0000000000..9b21ec68e5
Binary files /dev/null and b/core/assets-raw/sprites/ui/sectors/sector-navalFortress.png differ
diff --git a/core/assets-raw/sprites/ui/sectors/sector-nuclearComplex.png b/core/assets-raw/sprites/ui/sectors/sector-nuclearComplex.png
new file mode 100644
index 0000000000..39037b3f90
Binary files /dev/null and b/core/assets-raw/sprites/ui/sectors/sector-nuclearComplex.png differ
diff --git a/core/assets-raw/sprites/ui/sectors/sector-onset.png b/core/assets-raw/sprites/ui/sectors/sector-onset.png
new file mode 100644
index 0000000000..8b8cf255a7
Binary files /dev/null and b/core/assets-raw/sprites/ui/sectors/sector-onset.png differ
diff --git a/core/assets-raw/sprites/ui/sectors/sector-origin.png b/core/assets-raw/sprites/ui/sectors/sector-origin.png
new file mode 100644
index 0000000000..8852690ad4
Binary files /dev/null and b/core/assets-raw/sprites/ui/sectors/sector-origin.png differ
diff --git a/core/assets-raw/sprites/ui/sectors/sector-overgrowth.png b/core/assets-raw/sprites/ui/sectors/sector-overgrowth.png
new file mode 100644
index 0000000000..656114a689
Binary files /dev/null and b/core/assets-raw/sprites/ui/sectors/sector-overgrowth.png differ
diff --git a/core/assets-raw/sprites/ui/sectors/sector-peaks.png b/core/assets-raw/sprites/ui/sectors/sector-peaks.png
new file mode 100644
index 0000000000..43b90614cc
Binary files /dev/null and b/core/assets-raw/sprites/ui/sectors/sector-peaks.png differ
diff --git a/core/assets-raw/sprites/ui/sectors/sector-planetaryTerminal.png b/core/assets-raw/sprites/ui/sectors/sector-planetaryTerminal.png
new file mode 100644
index 0000000000..b9477855c0
Binary files /dev/null and b/core/assets-raw/sprites/ui/sectors/sector-planetaryTerminal.png differ
diff --git a/core/assets-raw/sprites/ui/sectors/sector-ravine.png b/core/assets-raw/sprites/ui/sectors/sector-ravine.png
new file mode 100644
index 0000000000..206ba91e9f
Binary files /dev/null and b/core/assets-raw/sprites/ui/sectors/sector-ravine.png differ
diff --git a/core/assets-raw/sprites/ui/sectors/sector-ruinousShores.png b/core/assets-raw/sprites/ui/sectors/sector-ruinousShores.png
new file mode 100644
index 0000000000..9ca7e86cef
Binary files /dev/null and b/core/assets-raw/sprites/ui/sectors/sector-ruinousShores.png differ
diff --git a/core/assets-raw/sprites/ui/sectors/sector-saltFlats.png b/core/assets-raw/sprites/ui/sectors/sector-saltFlats.png
new file mode 100644
index 0000000000..958053850c
Binary files /dev/null and b/core/assets-raw/sprites/ui/sectors/sector-saltFlats.png differ
diff --git a/core/assets-raw/sprites/ui/sectors/sector-seaPort.png b/core/assets-raw/sprites/ui/sectors/sector-seaPort.png
new file mode 100644
index 0000000000..b7d94b7563
Binary files /dev/null and b/core/assets-raw/sprites/ui/sectors/sector-seaPort.png differ
diff --git a/core/assets-raw/sprites/ui/sectors/sector-siege.png b/core/assets-raw/sprites/ui/sectors/sector-siege.png
new file mode 100644
index 0000000000..492398fd3b
Binary files /dev/null and b/core/assets-raw/sprites/ui/sectors/sector-siege.png differ
diff --git a/core/assets-raw/sprites/ui/sectors/sector-split.png b/core/assets-raw/sprites/ui/sectors/sector-split.png
new file mode 100644
index 0000000000..68889389a4
Binary files /dev/null and b/core/assets-raw/sprites/ui/sectors/sector-split.png differ
diff --git a/core/assets-raw/sprites/ui/sectors/sector-stainedMountains.png b/core/assets-raw/sprites/ui/sectors/sector-stainedMountains.png
new file mode 100644
index 0000000000..8efb9e25d2
Binary files /dev/null and b/core/assets-raw/sprites/ui/sectors/sector-stainedMountains.png differ
diff --git a/core/assets-raw/sprites/ui/sectors/sector-stronghold.png b/core/assets-raw/sprites/ui/sectors/sector-stronghold.png
new file mode 100644
index 0000000000..aa3bc2212d
Binary files /dev/null and b/core/assets-raw/sprites/ui/sectors/sector-stronghold.png differ
diff --git a/core/assets-raw/sprites/ui/sectors/sector-taintedWoods.png b/core/assets-raw/sprites/ui/sectors/sector-taintedWoods.png
new file mode 100644
index 0000000000..9ade8036fc
Binary files /dev/null and b/core/assets-raw/sprites/ui/sectors/sector-taintedWoods.png differ
diff --git a/core/assets-raw/sprites/ui/sectors/sector-tarFields.png b/core/assets-raw/sprites/ui/sectors/sector-tarFields.png
new file mode 100644
index 0000000000..81c248e641
Binary files /dev/null and b/core/assets-raw/sprites/ui/sectors/sector-tarFields.png differ
diff --git a/core/assets-raw/sprites/ui/sectors/sector-testingGrounds.png b/core/assets-raw/sprites/ui/sectors/sector-testingGrounds.png
new file mode 100644
index 0000000000..78ea4df653
Binary files /dev/null and b/core/assets-raw/sprites/ui/sectors/sector-testingGrounds.png differ
diff --git a/core/assets-raw/sprites/ui/sectors/sector-weatheredChannels.png b/core/assets-raw/sprites/ui/sectors/sector-weatheredChannels.png
new file mode 100644
index 0000000000..fc85e19815
Binary files /dev/null and b/core/assets-raw/sprites/ui/sectors/sector-weatheredChannels.png differ
diff --git a/core/assets-raw/sprites/ui/sectors/sector-windsweptIslands.png b/core/assets-raw/sprites/ui/sectors/sector-windsweptIslands.png
new file mode 100644
index 0000000000..7dbe82285c
Binary files /dev/null and b/core/assets-raw/sprites/ui/sectors/sector-windsweptIslands.png differ
diff --git a/core/assets-raw/sprites/units/weapons/scathe-missile-phase-cell.png b/core/assets-raw/sprites/units/weapons/scathe-missile-phase-cell.png
new file mode 100644
index 0000000000..7f4d7e4c93
Binary files /dev/null and b/core/assets-raw/sprites/units/weapons/scathe-missile-phase-cell.png differ
diff --git a/core/assets-raw/sprites/units/weapons/scathe-missile-phase.png b/core/assets-raw/sprites/units/weapons/scathe-missile-phase.png
new file mode 100644
index 0000000000..0065be21ab
Binary files /dev/null and b/core/assets-raw/sprites/units/weapons/scathe-missile-phase.png differ
diff --git a/core/assets-raw/sprites/units/weapons/scathe-missile-surge-cell.png b/core/assets-raw/sprites/units/weapons/scathe-missile-surge-cell.png
new file mode 100644
index 0000000000..7854083dfd
Binary files /dev/null and b/core/assets-raw/sprites/units/weapons/scathe-missile-surge-cell.png differ
diff --git a/core/assets-raw/sprites/units/weapons/scathe-missile-surge-split-cell.png b/core/assets-raw/sprites/units/weapons/scathe-missile-surge-split-cell.png
new file mode 100644
index 0000000000..7854083dfd
Binary files /dev/null and b/core/assets-raw/sprites/units/weapons/scathe-missile-surge-split-cell.png differ
diff --git a/core/assets-raw/sprites/units/weapons/scathe-missile-surge-split.png b/core/assets-raw/sprites/units/weapons/scathe-missile-surge-split.png
new file mode 100644
index 0000000000..22d7b4a9a6
Binary files /dev/null and b/core/assets-raw/sprites/units/weapons/scathe-missile-surge-split.png differ
diff --git a/core/assets-raw/sprites/units/weapons/scathe-missile-surge.png b/core/assets-raw/sprites/units/weapons/scathe-missile-surge.png
new file mode 100644
index 0000000000..fd05b27d08
Binary files /dev/null and b/core/assets-raw/sprites/units/weapons/scathe-missile-surge.png differ
diff --git a/core/assets/baseparts/1591381320600.msch b/core/assets/baseparts/1591381320600.msch
index 9ec53eaf98..cec83fb258 100644
--- a/core/assets/baseparts/1591381320600.msch
+++ b/core/assets/baseparts/1591381320600.msch
@@ -1,2 +1,3 @@
-mschxE
-0`{>TA*g@.Ơ=on)v쎣 AlM,S&Ns/jO1!q`K,&[R(O6E *?ʻ.>hRSɖ-TQBTP5PA(
\ No newline at end of file
+mschxE
+0D$FA(ê
+1Jb)RJaB--=mc nMX-yc5lv{T;څܓ5eMfm}7nĺDs1a}\"CMT$Q$H!qDGJ䲌"!
oȔ"210[
\ No newline at end of file
diff --git a/core/assets/baseparts/772862221297909760.msch b/core/assets/baseparts/772862221297909760.msch
deleted file mode 100644
index 83f138819d..0000000000
Binary files a/core/assets/baseparts/772862221297909760.msch and /dev/null differ
diff --git a/core/assets/baseparts/a single large power node.msch b/core/assets/baseparts/a single large power node.msch
new file mode 100644
index 0000000000..aed75d366c
--- /dev/null
+++ b/core/assets/baseparts/a single large power node.msch
@@ -0,0 +1,2 @@
+mschxA
+ F_ڴm7DraRѠ뗾ތR
rzPL8W )Ğ,z?Ls?Php;
\ No newline at end of file
diff --git a/core/assets/baseparts/a single surge tower.msch b/core/assets/baseparts/a single surge tower.msch
new file mode 100644
index 0000000000..9a59795fc4
--- /dev/null
+++ b/core/assets/baseparts/a single surge tower.msch
@@ -0,0 +1,2 @@
+mschx%A
+ @Em;D#i
m0ZS|tALS-aeV"J(yQ_W
\ No newline at end of file
diff --git a/core/assets/baseparts/antumbra.msch b/core/assets/baseparts/antumbra.msch
new file mode 100644
index 0000000000..6be263568f
Binary files /dev/null and b/core/assets/baseparts/antumbra.msch differ
diff --git a/core/assets/baseparts/arkyid.msch b/core/assets/baseparts/arkyid.msch
new file mode 100644
index 0000000000..5d2c3e1637
Binary files /dev/null and b/core/assets/baseparts/arkyid.msch differ
diff --git a/core/assets/baseparts/atraxBaseOne.msch b/core/assets/baseparts/atraxBaseOne.msch
new file mode 100644
index 0000000000..ad42927475
Binary files /dev/null and b/core/assets/baseparts/atraxBaseOne.msch differ
diff --git a/core/assets/baseparts/battery node.msch b/core/assets/baseparts/battery node.msch
new file mode 100644
index 0000000000..fde063f02a
--- /dev/null
+++ b/core/assets/baseparts/battery node.msch
@@ -0,0 +1,4 @@
+mschx-
+@0F
)GH.fӬQ|hM.4II`ʹH[@,D
+.w
(h
+g
\ No newline at end of file
diff --git a/core/assets/baseparts/daggersBunker.msch b/core/assets/baseparts/daggersBunker.msch
new file mode 100644
index 0000000000..bdfe341eea
Binary files /dev/null and b/core/assets/baseparts/daggersBunker.msch differ
diff --git a/core/assets/baseparts/daggersBunkerFour.msch b/core/assets/baseparts/daggersBunkerFour.msch
new file mode 100644
index 0000000000..dc06504008
--- /dev/null
+++ b/core/assets/baseparts/daggersBunkerFour.msch
@@ -0,0 +1,4 @@
+mschxMQ˒0/Γq7(HqZNj"d;a?opbMH3ꞡm"<(z^3lvd*{;/T6]w:k(Z鞖~}rQ/(>YZ{PִjMSzUGiZGΜTS(E"
+h{Z9()b4J\RJk5g$J}Aўq`lzrr`sP^j\;},ʗ.FW+t
>E!JDs_F>GW̙15`#q*
+@LCBQH= C%`N~K5Zb
+xzQ7)4MizAkls
OpzɶbֻR !B%YO!xDٸoOH9(Y&D0! H?ЏVL8NمzŁAﱩܺ(桩yhj~i5<Y,tWau
\ No newline at end of file
diff --git a/core/assets/baseparts/daggersBunkerThree.msch b/core/assets/baseparts/daggersBunkerThree.msch
new file mode 100644
index 0000000000..c430d2d430
Binary files /dev/null and b/core/assets/baseparts/daggersBunkerThree.msch differ
diff --git a/core/assets/baseparts/daggersBunkerTwo.msch b/core/assets/baseparts/daggersBunkerTwo.msch
new file mode 100644
index 0000000000..c377b09aa1
Binary files /dev/null and b/core/assets/baseparts/daggersBunkerTwo.msch differ
diff --git a/core/assets/baseparts/diffGen.msch b/core/assets/baseparts/diffGen.msch
new file mode 100644
index 0000000000..526ac5a8a3
Binary files /dev/null and b/core/assets/baseparts/diffGen.msch differ
diff --git a/core/assets/baseparts/flareBaseOne.msch b/core/assets/baseparts/flareBaseOne.msch
new file mode 100644
index 0000000000..42d7616993
Binary files /dev/null and b/core/assets/baseparts/flareBaseOne.msch differ
diff --git a/core/assets/baseparts/foundationBlast.msch b/core/assets/baseparts/foundationBlast.msch
new file mode 100644
index 0000000000..ab9f3677c8
Binary files /dev/null and b/core/assets/baseparts/foundationBlast.msch differ
diff --git a/core/assets/baseparts/foundationFortress.msch b/core/assets/baseparts/foundationFortress.msch
new file mode 100644
index 0000000000..79cfe537cf
Binary files /dev/null and b/core/assets/baseparts/foundationFortress.msch differ
diff --git a/core/assets/baseparts/foundationHeavyDefense.msch b/core/assets/baseparts/foundationHeavyDefense.msch
new file mode 100644
index 0000000000..7d6a225a7c
Binary files /dev/null and b/core/assets/baseparts/foundationHeavyDefense.msch differ
diff --git a/core/assets/baseparts/foundationQuasar.msch b/core/assets/baseparts/foundationQuasar.msch
new file mode 100644
index 0000000000..2aefe76b70
Binary files /dev/null and b/core/assets/baseparts/foundationQuasar.msch differ
diff --git a/core/assets/baseparts/foundationSpiroct.msch b/core/assets/baseparts/foundationSpiroct.msch
new file mode 100644
index 0000000000..837a8b260d
Binary files /dev/null and b/core/assets/baseparts/foundationSpiroct.msch differ
diff --git a/core/assets/baseparts/fourDaggersFour.msch b/core/assets/baseparts/fourDaggersFour.msch
new file mode 100644
index 0000000000..72bd325444
Binary files /dev/null and b/core/assets/baseparts/fourDaggersFour.msch differ
diff --git a/core/assets/baseparts/fourDaggersOne.msch b/core/assets/baseparts/fourDaggersOne.msch
new file mode 100644
index 0000000000..ab16adf813
--- /dev/null
+++ b/core/assets/baseparts/fourDaggersOne.msch
@@ -0,0 +1,3 @@
+mschxMMn0Dz~h1qv=Ae,%FP %9Qz]t1Tq8qDW[SjQӛ4iTVduYCDy?n{{^zPnzKXiҎnkZ]֜:LLmlAՓugm\5(
+Tۙ6
>)+mr>!alI<ΦhSCƩj\$xEН=iIW:qƩĖ$IήָzVG{7%X dV$2r!&9:
+<W "JQ)Ϝ/p`~RH"-$3rkP7bk1W,($$s883zB03=@ Z."R: 8
3\ZN(!cC.2U,K%
\ No newline at end of file
diff --git a/core/assets/baseparts/fourDaggersThree.msch b/core/assets/baseparts/fourDaggersThree.msch
new file mode 100644
index 0000000000..4d3c6022e0
Binary files /dev/null and b/core/assets/baseparts/fourDaggersThree.msch differ
diff --git a/core/assets/baseparts/fourDaggersTwo.msch b/core/assets/baseparts/fourDaggersTwo.msch
new file mode 100644
index 0000000000..1f5b791454
Binary files /dev/null and b/core/assets/baseparts/fourDaggersTwo.msch differ
diff --git a/core/assets/baseparts/glassCannons.msch b/core/assets/baseparts/glassCannons.msch
new file mode 100644
index 0000000000..fb402271bc
Binary files /dev/null and b/core/assets/baseparts/glassCannons.msch differ
diff --git a/core/assets/baseparts/graphiteDefenseBigOne.msch b/core/assets/baseparts/graphiteDefenseBigOne.msch
new file mode 100644
index 0000000000..3eccd49fe0
Binary files /dev/null and b/core/assets/baseparts/graphiteDefenseBigOne.msch differ
diff --git a/core/assets/baseparts/horizonBaseOne.msch b/core/assets/baseparts/horizonBaseOne.msch
new file mode 100644
index 0000000000..1963ba1d83
Binary files /dev/null and b/core/assets/baseparts/horizonBaseOne.msch differ
diff --git a/core/assets/baseparts/impact.msch b/core/assets/baseparts/impact.msch
new file mode 100644
index 0000000000..bb82ff444a
Binary files /dev/null and b/core/assets/baseparts/impact.msch differ
diff --git a/core/assets/baseparts/impactMultiOutput.msch b/core/assets/baseparts/impactMultiOutput.msch
new file mode 100644
index 0000000000..7081a81237
Binary files /dev/null and b/core/assets/baseparts/impactMultiOutput.msch differ
diff --git a/core/assets/baseparts/impactSmall.msch b/core/assets/baseparts/impactSmall.msch
new file mode 100644
index 0000000000..3c5581102a
Binary files /dev/null and b/core/assets/baseparts/impactSmall.msch differ
diff --git a/core/assets/baseparts/minefieldLarge.msch b/core/assets/baseparts/minefieldLarge.msch
new file mode 100644
index 0000000000..0f7642c28b
Binary files /dev/null and b/core/assets/baseparts/minefieldLarge.msch differ
diff --git a/core/assets/baseparts/minefieldSmall.msch b/core/assets/baseparts/minefieldSmall.msch
new file mode 100644
index 0000000000..ef11689899
Binary files /dev/null and b/core/assets/baseparts/minefieldSmall.msch differ
diff --git a/core/assets/baseparts/minefieldSnipers.msch b/core/assets/baseparts/minefieldSnipers.msch
new file mode 100644
index 0000000000..be45898763
Binary files /dev/null and b/core/assets/baseparts/minefieldSnipers.msch differ
diff --git a/core/assets/baseparts/pyraTurretsOne.msch b/core/assets/baseparts/pyraTurretsOne.msch
new file mode 100644
index 0000000000..47f97ce687
Binary files /dev/null and b/core/assets/baseparts/pyraTurretsOne.msch differ
diff --git a/core/assets/baseparts/salvoWallOne.msch b/core/assets/baseparts/salvoWallOne.msch
new file mode 100644
index 0000000000..a32df6790f
Binary files /dev/null and b/core/assets/baseparts/salvoWallOne.msch differ
diff --git a/core/assets/baseparts/scatterLancerOne.msch b/core/assets/baseparts/scatterLancerOne.msch
new file mode 100644
index 0000000000..c77b7bd0c9
Binary files /dev/null and b/core/assets/baseparts/scatterLancerOne.msch differ
diff --git a/core/assets/baseparts/shardAtrax.msch b/core/assets/baseparts/shardAtrax.msch
new file mode 100644
index 0000000000..70543f0b77
Binary files /dev/null and b/core/assets/baseparts/shardAtrax.msch differ
diff --git a/core/assets/baseparts/shardDefenseLarge.msch b/core/assets/baseparts/shardDefenseLarge.msch
new file mode 100644
index 0000000000..04a2f3f04a
Binary files /dev/null and b/core/assets/baseparts/shardDefenseLarge.msch differ
diff --git a/core/assets/baseparts/shardHeavyDefense.msch b/core/assets/baseparts/shardHeavyDefense.msch
new file mode 100644
index 0000000000..b28e9796ff
Binary files /dev/null and b/core/assets/baseparts/shardHeavyDefense.msch differ
diff --git a/core/assets/baseparts/shardMace.msch b/core/assets/baseparts/shardMace.msch
new file mode 100644
index 0000000000..982dc8b611
Binary files /dev/null and b/core/assets/baseparts/shardMace.msch differ
diff --git a/core/assets/baseparts/shardNova.msch b/core/assets/baseparts/shardNova.msch
new file mode 100644
index 0000000000..0cca18c7fe
Binary files /dev/null and b/core/assets/baseparts/shardNova.msch differ
diff --git a/core/assets/baseparts/shardPulsar.msch b/core/assets/baseparts/shardPulsar.msch
new file mode 100644
index 0000000000..05afb6c3c7
Binary files /dev/null and b/core/assets/baseparts/shardPulsar.msch differ
diff --git a/core/assets/baseparts/sixDaggers.msch b/core/assets/baseparts/sixDaggers.msch
new file mode 100644
index 0000000000..0175e599cf
--- /dev/null
+++ b/core/assets/baseparts/sixDaggers.msch
@@ -0,0 +1,2 @@
+mschx-PKN0}NBp.X-'`%b&
+rqZz8*3Ie93~ޛ`MܩݳrwEIu h@iWo?&kԓ^i\wONFNU4AfNEBNUA+);=bGR9
Uc:֢˔$Ӹ?9iffJF6@GBkh{HN\W@Fr_1-E84#8!+l!,Č9M>5)႓ɂDԔф T/%Qe823 X'.{Ra5e]J4gs%]XA
\ No newline at end of file
diff --git a/core/assets/baseparts/sixDaggersSmall.msch b/core/assets/baseparts/sixDaggersSmall.msch
new file mode 100644
index 0000000000..b357823c3b
Binary files /dev/null and b/core/assets/baseparts/sixDaggersSmall.msch differ
diff --git a/core/assets/baseparts/sixDaggersSmallTwo.msch b/core/assets/baseparts/sixDaggersSmallTwo.msch
new file mode 100644
index 0000000000..249fdeae71
--- /dev/null
+++ b/core/assets/baseparts/sixDaggersSmallTwo.msch
@@ -0,0 +1,2 @@
+mschx-P;R0}Ŏg\Q@I%CXcF
?5]K:^v@ixA
;?1Y
\ No newline at end of file
diff --git a/core/assets/baseparts/snipers.msch b/core/assets/baseparts/snipers.msch
new file mode 100644
index 0000000000..6db15b63ad
Binary files /dev/null and b/core/assets/baseparts/snipers.msch differ
diff --git a/core/assets/baseparts/surgeTurretsOne.msch b/core/assets/baseparts/surgeTurretsOne.msch
new file mode 100644
index 0000000000..563818a965
Binary files /dev/null and b/core/assets/baseparts/surgeTurretsOne.msch differ
diff --git a/core/assets/baseparts/thoriumReactorBaseOne.msch b/core/assets/baseparts/thoriumReactorBaseOne.msch
new file mode 100644
index 0000000000..12943a3996
Binary files /dev/null and b/core/assets/baseparts/thoriumReactorBaseOne.msch differ
diff --git a/core/assets/baseparts/thoriumReactorFort.msch b/core/assets/baseparts/thoriumReactorFort.msch
new file mode 100644
index 0000000000..39e115aee4
Binary files /dev/null and b/core/assets/baseparts/thoriumReactorFort.msch differ
diff --git a/core/assets/baseparts/threePylons.msch b/core/assets/baseparts/threePylons.msch
new file mode 100644
index 0000000000..46449cf2f1
Binary files /dev/null and b/core/assets/baseparts/threePylons.msch differ
diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties
index c2b1440c42..61dc42b9a6 100644
--- a/core/assets/bundles/bundle.properties
+++ b/core/assets/bundles/bundle.properties
@@ -131,13 +131,14 @@ feature.unsupported = Your device does not support this feature.
mods.initfailed = [red]\u26A0[] The previous Mindustry instance failed to initialize. This was likely caused by misbehaving mods.\n\nTo prevent a crash loop, [red]all mods have been disabled.[]
mods = Mods
+mods.name = Mod:
mods.none = [lightgray]No mods found!
mods.guide = Modding Guide
mods.report = Report Bug
mods.openfolder = Open Folder
mods.viewcontent = View Content
mods.reload = Reload
-mods.reloadexit = The game will now exit, to reload mods.
+mods.reloadexit = To reload mods, the game will now exit.
mod.installed = [[Installed]
mod.display = [gray]Mod:[orange] {0}
mod.enabled = [lightgray]Enabled
@@ -157,7 +158,7 @@ mod.circulardependencies = [red]Circular Dependencies
mod.incompletedependencies = [red]Incomplete Dependencies
mod.requiresversion.details = Requires game version: [accent]{0}[]\nYour game is outdated. This mod requires a newer version of the game (possibly a beta/alpha release) to function.
-mod.outdatedv7.details = This mod is incompatible with the latest version of the game. The author must update it, and add [accent]minGameVersion: 136[] to its [accent]mod.json[] file.
+mod.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 = This mod has been manually blacklisted for causing crashes or other issues with this version of the game. Do not use it.
mod.missingdependencies.details = This mod is missing dependencies: {0}
mod.erroredcontent.details = This mod caused errors when loading. Ask the mod author to fix them.
@@ -168,7 +169,6 @@ mod.requiresversion = Requires game version: [red]{0}
mod.errors = Errors have occurred loading content.
mod.noerrorplay = [red]You have mods with errors.[] Either disable the affected mods or fix the errors before playing.
-mod.nowdisabled = [red]Mod '{0}' is missing dependencies:[accent] {1}\n[lightgray]These mods need to be downloaded first.\nThis mod will be automatically disabled.
mod.enable = Enable
mod.requiresrestart = The game will now close to apply the mod changes.
mod.reloadrequired = [red]Restart Required
@@ -184,6 +184,16 @@ mod.preview.missing = Before publishing this mod in the workshop, you must add a
mod.folder.missing = Only mods in folder form can be published on the workshop.\nTo convert any mod into a folder, simply unzip its file into a folder and delete the old zip, then restart your game or reload your mods.
mod.scripts.disable = Your device does not support mods with scripts. You must disable these mods to play the game.
+mod.dependencies.error = [scarlet]Mods are missing dependencies
+mod.dependencies.soft = (optional)
+mod.dependencies.download = Import
+mod.dependencies.downloadreq = Import Required
+mod.dependencies.downloadall = Import All
+mod.dependencies.status = Import Results
+mod.dependencies.success = Successfully downloaded:
+mod.dependencies.failure = Failed to download:
+mod.dependencies.imported = This mod requires dependencies. Download?
+
about.button = About
name = Name:
noname = Pick a[accent] player name[] first.
@@ -232,7 +242,7 @@ server.kicked.customClient = This server does not support custom builds. Downloa
server.kicked.gameover = Game over!
server.kicked.serverRestarting = The server is restarting.
server.versions = Your version:[accent] {0}[]\nServer version:[accent] {1}[]
-host.info = The [accent]host[] button hosts a server on port [scarlet]6567[]. \nAnybody on the same [lightgray]wifi or local network[] should be able to see your server in their server list.\n\nIf you want people to be able to connect from anywhere by IP, [accent]port forwarding[] is required.\n\n[lightgray]Note: If someone is experiencing trouble connecting to your LAN game, make sure you have allowed Mindustry access to your local network in your firewall settings. Note that public networks sometimes do not allow server discovery.
+host.info = The [accent]host[] button hosts a server on the specified port.\nAnybody on the same [lightgray]wifi or local network[] should be able to see your server in their server list.\n\nIf you want people to be able to connect from anywhere by IP, [accent]port forwarding[] is required.\n\n[lightgray]Note: If someone is experiencing trouble connecting to your LAN game, make sure you have allowed Mindustry access to your local network in your firewall settings. Note that public networks sometimes do not allow server discovery.
join.info = Here, you can enter a [accent]server IP[] to connect to, or discover [accent]local network[] or [accent]global[] servers to connect to.\nBoth LAN and WAN multiplayer is supported.\n\n[lightgray]If you want to connect to someone by IP, you would need to ask the host for their IP, which can be found by googling "my ip" from their device.
hostserver = Host Multiplayer Game
invitefriends = Invite Friends
@@ -301,6 +311,7 @@ disconnect.error = Connection error.
disconnect.closed = Connection closed.
disconnect.timeout = Timed out.
disconnect.data = Failed to load world data!
+disconnect.snapshottimeout = Timed out while receiving UDP snapshots.\nThis may be caused by an unstable network or connection.
cantconnect = Unable to join game ([accent]{0}[]).
connecting = [accent]Connecting...
reconnecting = [accent]Reconnecting...
@@ -469,6 +480,7 @@ editor.shiftx = Shift X
editor.shifty = Shift Y
workshop = Workshop
waves.title = Waves
+waves.team = Team
waves.remove = Remove
waves.every = every
waves.waves = wave(s)
@@ -728,14 +740,18 @@ loadout = Loadout
resources = Resources
resources.max = Max
bannedblocks = Banned Blocks
+unbannedblocks = Unbanned Blocks
objectives = Objectives
bannedunits = Banned Units
+unbannedunits = Unbanned Units
bannedunits.whitelist = Banned Units As Whitelist
bannedblocks.whitelist = Banned Blocks As Whitelist
addall = Add All
launch.from = Launching From: [accent]{0}
launch.capacity = Launching Item Capacity: [accent]{0}
launch.destination = Destination: {0}
+landing.sources = Source Sectors: [accent]{0}[]
+landing.import = Max Total Import: {0}[accent]{1}[lightgray]/min
configure.invalid = Amount must be a number between 0 and {0}.
add = Add...
guardian = Guardian
@@ -750,7 +766,7 @@ error.mapnotfound = Map file not found!
error.io = Network I/O error.
error.any = Unknown network error.
error.bloom = Failed to initialize bloom.\nYour device may not support it.
-error.moddex = Mindustry is unable to load this mod.\nYour device is blocking import of Java mods due to recent changes in Android.\nThere is no known workaround for this issue.
+error.moddex = Mindustry is unable to load this mod.\nYour device is blocking import of Java mods due to recent changes in Android.\nThis will not be fixed. There is no known workaround for this issue.
weather.rain.name = Rain
weather.snowing.name = Snow
@@ -775,7 +791,9 @@ sectors.stored = Stored:
sectors.resume = Resume
sectors.launch = Launch
sectors.select = Select
+sectors.launchselect = Select Launch Destination
sectors.nonelaunch = [lightgray]none (sun)
+sectors.redirect = Redirect Launch Pads
sectors.rename = Rename Sector
sectors.enemybase = [scarlet]Enemy Base
sectors.vulnerable = [scarlet]Vulnerable
@@ -809,6 +827,11 @@ difficulty.normal = Normal
difficulty.hard = Hard
difficulty.eradication = Eradication
+difficulty.enemyHealthMultiplier = Enemy Health: {0}
+difficulty.enemySpawnMultiplier = Enemy Amount: {0}
+difficulty.waveTimeMultiplier = Wave Timer: {0}
+difficulty.nomodifiers = [lightgray](No modifiers)
+
planets = Planets
planet.serpulo.name = Serpulo
@@ -1042,6 +1065,7 @@ stat.buildspeedmultiplier = Build Speed Multiplier
stat.reactive = Reacts
stat.immunities = Immunities
stat.healing = Healing
+stat.efficiency = [stat]{0}% Efficiency
ability.forcefield = Force Field
ability.forcefield.description = Projects a force shield that absorbs bullets
@@ -1090,6 +1114,7 @@ ability.stat.buildtime = [stat]{0} sec[lightgray] build time
bar.displaytoolarge = Dimensions too large\n(Max: {0}x{0})
bar.onlycoredeposit = Only Core Depositing Allowed
bar.drilltierreq = Better Drill Required
+bar.nobatterypower = Insufficient Battery Power
bar.noresources = Missing Resources
bar.corereq = Core Base Required
bar.corefloor = Core Zone Tile Required
@@ -1098,6 +1123,7 @@ bar.drillspeed = Drill Speed: {0}/s
bar.pumpspeed = Pump Speed: {0}/s
bar.efficiency = Efficiency: {0}%
bar.boost = Boost: +{0}%
+bar.powerbuffer = Batteries: {0}/{1}
bar.powerbalance = Power: {0}/s
bar.powerstored = Stored: {0}/{1}
bar.poweramount = Power: {0}
@@ -1108,6 +1134,7 @@ bar.capacity = Capacity: {0}
bar.unitcap = {0} {1}/{2}
bar.liquid = Liquid
bar.heat = Heat
+bar.cooldown = Cooldown
bar.instability = Instability
bar.heatamount = Heat: {0}
bar.heatpercent = Heat: {0} ({1}%)
@@ -1132,6 +1159,7 @@ bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
bullet.frags = [stat]{0}x[lightgray] frag bullets:
bullet.lightning = [stat]{0}x[lightgray] lightning ~ [stat]{1}[lightgray] damage
bullet.buildingdamage = [stat]{0}%[lightgray] building damage
+bullet.shielddamage = [stat]{0}%[lightgray] shield damage
bullet.knockback = [stat]{0}[lightgray] knockback
bullet.pierce = [stat]{0}x[lightgray] pierce
bullet.infinitepierce = [stat]pierce
@@ -1140,8 +1168,8 @@ bullet.healamount = [stat]{0}[lightgray] direct repair
bullet.multiplier = [stat]{0}[lightgray] ammo/item
bullet.reload = [stat]{0}%[lightgray] fire rate
bullet.range = [stat]{0}[lightgray] tiles range
-bullet.notargetsmissiles = [stat] ignores buildings
-bullet.notargetsbuildings = [stat] ignores missiles
+bullet.notargetsmissiles = [stat] ignores missiles
+bullet.notargetsbuildings = [stat] ignores buildings
unit.blocks = blocks
unit.blockssquared = blocks\u00B2
@@ -1158,6 +1186,7 @@ unit.minutes = mins
unit.persecond = /sec
unit.perminute = /min
unit.timesspeed = x speed
+unit.multiplier = x
unit.percent = %
unit.shieldhealth = shield health
unit.items = items
@@ -1234,11 +1263,13 @@ setting.mutemusic.name = Mute Music
setting.sfxvol.name = SFX Volume
setting.mutesound.name = Mute Sound
setting.crashreport.name = Send Anonymous Crash Reports
+setting.communityservers.name = Fetch Community Server List
setting.savecreate.name = Auto-Create Saves
setting.steampublichost.name = Public Game Visibility
setting.playerlimit.name = Player Limit
setting.chatopacity.name = Chat Opacity
setting.lasersopacity.name = Power Laser Opacity
+setting.unitlaseropacity.name = Unit Mining Beam Opacity
setting.bridgeopacity.name = Bridge Opacity
setting.playerchat.name = Display Player Bubble Chat
setting.showweather.name = Show Weather Graphics
@@ -1247,6 +1278,9 @@ setting.macnotch.name = Adapt interface to display notch
setting.macnotch.description = Restart required to apply changes
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.
public.beta = Note that beta versions of the game cannot make public lobbies.
uiscale.reset = UI scale has been changed.\nPress "OK" to confirm this scale.\n[scarlet]Reverting and exiting in[accent] {0}[] seconds...
uiscale.cancel = Cancel & Exit
@@ -1330,6 +1364,7 @@ keybind.shoot.name = Shoot
keybind.zoom.name = Zoom
keybind.menu.name = Menu
keybind.pause.name = Pause
+keybind.skip_wave.name = Skip Wave
keybind.pause_building.name = Pause/Resume Building
keybind.minimap.name = Minimap
keybind.planet_map.name = Planet Map
@@ -1397,12 +1432,14 @@ rules.unitcostmultiplier = Unit Cost Multiplier
rules.unithealthmultiplier = Unit Health Multiplier
rules.unitdamagemultiplier = Unit Damage Multiplier
rules.unitcrashdamagemultiplier = Unit Crash Damage Multiplier
+rules.unitminespeedmultiplier = Unit Mine Speed Multiplier
rules.solarmultiplier = Solar Power Multiplier
rules.unitcapvariable = Cores Contribute To Unit Cap
rules.unitpayloadsexplode = Carried Payloads Explode With The Unit
rules.unitcap = Base Unit Cap
rules.limitarea = Limit Map Area
-rules.enemycorebuildradius = Enemy Core No-Build Radius:[lightgray] (tiles)
+rules.enemycorebuildradius = Core No-Build Radius:[lightgray] (tiles)
+rules.extracorebuildradius = Extra No-Build Radius:[lightgray] (tiles)
rules.wavespacing = Wave Spacing:[lightgray] (sec)
rules.initialwavespacing = Initial Wave Spacing:[lightgray] (sec)
rules.buildcostmultiplier = Build Cost Multiplier
@@ -1425,6 +1462,9 @@ rules.title.planet = Planet
rules.lighting = Lighting
rules.fog = Fog of War
rules.invasions = Enemy Sector Invasions
+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.fire = Fire
@@ -1745,7 +1785,10 @@ block.spectre.name = Spectre
block.meltdown.name = Meltdown
block.foreshadow.name = Foreshadow
block.container.name = Container
-block.launch-pad.name = Launch Pad
+block.launch-pad.name = Launch Pad [lightgray](Legacy)
+block.advanced-launch-pad.name = Launch Pad
+block.landing-pad.name = Landing Pad
+
block.segment.name = Segment
block.ground-factory.name = Ground Factory
block.air-factory.name = Air Factory
@@ -1803,6 +1846,8 @@ block.arkyic-vent.name = Arkyic Vent
block.yellow-stone-vent.name = Yellow Stone Vent
block.red-stone-vent.name = Red Stone Vent
block.crystalline-vent.name = Crystalline Vent
+block.stone-vent.name = Stone Vent
+block.basalt-vent.name = Basalt Vent
block.redmat.name = Redmat
block.bluemat.name = Bluemat
block.core-zone.name = Core Zone
@@ -1957,79 +2002,79 @@ hint.respawn = To respawn as a ship, press [accent][[V][].
hint.respawn.mobile = You have switched control to a unit/structure. To respawn as a ship, [accent]tap the avatar in the top left.[]
hint.desktopPause = Press [accent][[Space][] to pause and unpause the game.
hint.breaking = [accent]Right-click[] and drag to break blocks.
-hint.breaking.mobile = Activate the \uE817 [accent]hammer[] in the bottom right and tap to break blocks.\n\nHold down your finger for a second and drag to break in a selection.
-hint.blockInfo = View information of a block by selecting it in the [accent]build menu[], then selecting the [accent][[?][] button at the right.
+hint.breaking.mobile = Activate the :hammer: [accent]hammer[] in the bottom right and tap to break blocks.\n\nHold down your finger for a second and drag to break in a selection.
+hint.blockInfo = View input items and stats of a block by selecting it in the [accent]build menu[], then selecting the [accent][[?][] button at the right.
hint.derelict = [accent]Derelict[] structures are broken remnants of old bases that no longer function.\n\nThese structures can be [accent]deconstructed[] for resources, or repaired.
-hint.research = Use the \uE875 [accent]Research[] button to research new technology.
-hint.research.mobile = Use the \uE875 [accent]Research[] button in the \uE88C [accent]Menu[] to research new technology.
+hint.research = Use the :tree: [accent]Research[] button to research new technology.
+hint.research.mobile = Use the :tree: [accent]Research[] button in the :menu: [accent]Menu[] to research new technology.
hint.unitControl = Hold [accent][[L-ctrl][] and [accent]click[] to manually control friendly units or turrets.
hint.unitControl.mobile = [accent][[Double-tap][] to manually control friendly units or turrets.
hint.unitSelectControl = To control units, enter [accent]command mode[] by holding [accent]L-shift.[]\nWhile in command mode, click and drag to select units. [accent]Right-click[] a location or target to command units there.
hint.unitSelectControl.mobile = To control units, enter [accent]command mode[] by pressing the [accent]command[] button in the bottom left.\nWhile in command mode, long-press and drag to select units. Tap a location or target to command units there.
-hint.launch = Once enough resources are collected, you can [accent]Launch[] to the next sector by opening the \uE827 [accent]Map[] in the bottom right, and panning over to the new location.
-hint.launch.mobile = Once enough resources are collected, you can [accent]Launch[] by selecting nearby sectors from the \uE827 [accent]Map[] in the \uE88C [accent]Menu[].
+hint.launch = Once enough resources are collected, you can [accent]Launch[] to the next sector by opening the :map: [accent]Map[] in the bottom right, and panning over to the new location.
+hint.launch.mobile = Once enough resources are collected, you can [accent]Launch[] by selecting nearby sectors from the :map: [accent]Map[] in the :menu: [accent]Menu[].
hint.schematicSelect = Hold [accent][[F][] and drag to select blocks to copy and paste.\n\n[accent][[Middle Click][] to copy a single block type.
hint.rebuildSelect = Hold [accent][[B][] and drag to select destroyed block plans.\nThis will rebuild them automatically.
-hint.rebuildSelect.mobile = Select the \uE874 copy button, then tap the \uE80F rebuild button and drag to select destroyed block plans.\nThis will rebuild them automatically.
+hint.rebuildSelect.mobile = Select the :copy: copy button, then tap the :wrench: rebuild button and drag to select destroyed block plans.\nThis will rebuild them automatically.
hint.conveyorPathfind = Hold [accent][[L-Ctrl][] while dragging conveyors to automatically generate a path.
-hint.conveyorPathfind.mobile = Enable \uE844 [accent]diagonal mode[] and drag conveyors to automatically generate a path.
+hint.conveyorPathfind.mobile = Enable :diagonal: [accent]diagonal mode[] and drag conveyors to automatically generate a path.
hint.boost = Hold [accent][[L-Shift][] to fly over obstacles with your current unit.\n\nOnly a few ground units have boosters.
hint.payloadPickup = Press [accent][[[] to pick up small blocks or units.
hint.payloadPickup.mobile = [accent]Tap and hold[] a small block or unit to pick it up.
hint.payloadDrop = Press [accent]][] to drop a payload.
hint.payloadDrop.mobile = [accent]Tap and hold[] an empty location to drop a payload there.
hint.waveFire = [accent]Wave[] turrets with water as ammunition will automatically put out nearby fires.
-hint.generator = \uF879 [accent]Combustion Generators[] burn coal and transmit power to adjacent blocks.\n\nPower transmission range can be extended with \uF87F [accent]Power Nodes[].
-hint.guardian = [accent]Guardian[] units are armored. Weak ammo such as [accent]Copper[] and [accent]Lead[] is [scarlet]not effective[].\n\nUse higher tier turrets or \uF835 [accent]Graphite[] \uF861Duo/\uF859Salvo ammunition to take Guardians down.
-hint.coreUpgrade = Cores can be upgraded by [accent]placing higher-tier cores over them[].\n\nPlace a \uF868 [accent]Foundation[] core over the \uF869 [accent]Shard[] core. Make sure it is free from nearby obstructions.
+hint.generator = :combustion-generator: [accent]Combustion Generators[] burn coal and transmit power to adjacent blocks.\n\nPower transmission range can be extended with :power-node: [accent]Power Nodes[].
+hint.guardian = [accent]Guardian[] units are armored. Weak ammo such as [accent]Copper[] and [accent]Lead[] is [scarlet]not effective[].\n\nUse higher tier turrets or :graphite: [accent]Graphite[] :duo:Duo/:salvo:Salvo ammunition to take Guardians down.
+hint.coreUpgrade = Cores can be upgraded by [accent]placing higher-tier cores over them[].\n\nPlace a :core-foundation: [accent]Foundation[] core over the :core-shard: [accent]Shard[] core. Make sure it is free from nearby obstructions.
hint.presetLaunch = Gray [accent]landing zone sectors[], such as [accent]Frozen Forest[], can be launched to from anywhere. They do not require capture of nearby territory.\n\n[accent]Numbered sectors[], such as this one, are [accent]optional[].
hint.presetDifficulty = This sector has a [scarlet]high enemy threat level[].\nLaunching to such sectors is [accent]not recommended[] without proper technology and preparation.
hint.coreIncinerate = After the core is filled to capacity with an item, any extra items of that type it receives will be [accent]incinerated[].
hint.factoryControl = To set a unit factory's [accent]output destination[], click a factory block while in command mode, then right-click a location.\nUnits produced by it will automatically move there.
hint.factoryControl.mobile = To set a unit factory's [accent]output destination[], tap a factory block while in command mode, then tap a location.\nUnits produced by it will automatically move there.
-gz.mine = Move near the \uF8C4 [accent]copper ore[] on the ground and click to begin mining.
-gz.mine.mobile = Move near the \uF8C4 [accent]copper ore[] on the ground and tap it to begin mining.
-gz.research = Open the \uE875 tech tree.\nResearch the \uF870 [accent]Mechanical Drill[], then select it from the \ue85e menu in the bottom right.\nClick on a copper patch to place it.
-gz.research.mobile = Open the \uE875 tech tree.\nResearch the \uF870 [accent]Mechanical Drill[], then select it from the \ue85e menu in the bottom right.\nTap on a copper patch to place it.\n\nPress the \uE800 [accent]checkmark[] at the bottom right to confirm.
-gz.conveyors = Research and place \uF896 [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nClick and drag to place multiple conveyors.\n[accent]Scroll[] to rotate.
-gz.conveyors.mobile = Research and place \uF896 [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nHold down your finger for a second and drag to place multiple conveyors.
+gz.mine = Move near the :ore-copper: [accent]copper ore[] on the ground and click to begin mining.
+gz.mine.mobile = Move near the :ore-copper: [accent]copper ore[] on the ground and tap it to begin mining.
+gz.research = Open the :tree: tech tree.\nResearch the :mechanical-drill: [accent]Mechanical Drill[], then select it from the :production: menu in the bottom right.\nClick on a copper patch to place it.
+gz.research.mobile = Open the :tree: tech tree.\nResearch the :mechanical-drill: [accent]Mechanical Drill[], then select it from the :production: menu in the bottom right.\nTap on a copper patch to place it.\n\nPress the :ok: [accent]checkmark[] at the bottom right to confirm.
+gz.conveyors = Research and place :conveyor: [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nClick and drag to place multiple conveyors.\n[accent]Scroll[] to rotate.
+gz.conveyors.mobile = Research and place :conveyor: [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nHold down your finger for a second and drag to place multiple conveyors.
gz.drills = Expand the mining operation.\nPlace more Mechanical Drills.\nMine 100 copper.
-gz.lead = \uF837 [accent]Lead[] is another commonly used resource.\nSet up drills to mine lead.
-gz.moveup = \uE804 Move up for further objectives.
-gz.turrets = Research and place 2 \uF861 [accent]Duo[] turrets to defend the core.\nDuo turrets require \uF838 [accent]ammo[] from conveyors.
-gz.duoammo = Supply the Duo turrets with [accent]copper[], using conveyors.
-gz.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace \uF8AE [accent]copper walls[] around the turrets.
+gz.lead = :lead: [accent]Lead[] is another commonly used resource.\nSet up drills to mine lead.
+gz.moveup = :up: Move up for further objectives.
+gz.turrets = Research and place 2 :duo: [accent]Duo[] turrets to defend the core.\nDuo turrets require :copper: [accent]ammo[] from conveyors.
+gz.duoammo = Supply the Duo turrets with :copper: [accent]copper[], using conveyors.
+gz.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace :copper-wall: [accent]copper walls[] around the turrets.
gz.defend = Enemy incoming, prepare to defend.
-gz.aa = Flying units cannot easily be dispatched with standard turrets.\n\uF860 [accent]Scatter[] turrets provide excellent anti-air, but require \uF837 [accent]lead[] as ammo.
-gz.scatterammo = Supply the Scatter turret with \uF837 [accent]lead[], using conveyors.
+gz.aa = Flying units cannot easily be dispatched with standard turrets.\n:scatter: [accent]Scatter[] turrets provide excellent anti-air, but require :lead: [accent]lead[] as ammo.
+gz.scatterammo = Supply the Scatter turret with :lead: [accent]lead[], using conveyors.
gz.supplyturret = [accent]Supply Turret
gz.zone1 = This is the enemy drop zone.
gz.zone2 = Anything built in the radius is destroyed when a wave starts.
gz.zone3 = A wave will begin now.\nGet ready.
gz.finish = Build more turrets, mine more resources,\nand defend against all the waves to [accent]capture the sector[].
-onset.mine = Click to mine \uF748 [accent]beryllium[] from walls.\n\nUse [accent][[WASD] to move.
-onset.mine.mobile = Tap to mine \uF748 [accent]beryllium[] from walls.
-onset.research = Open the \uE875 tech tree.\nResearch, then place a \uF73E [accent]turbine condenser[] on the vent.\nThis will generate [accent]power[].
-onset.bore = Research and place a \uF741 [accent]plasma bore[].\nThis automatically mines resources from walls.
-onset.power = To [accent]power[] the plasma bore, research and place a \uF73D [accent]beam node[].\nConnect the turbine condenser to the plasma bore.
-onset.ducts = Research and place \uF799 [accent]ducts[] to move the mined resources from the plasma bore to the core.\nClick and drag to place multiple ducts.\n[accent]Scroll[] to rotate.
-onset.ducts.mobile = Research and place \uF799 [accent]ducts[] to move the mined resources from the plasma bore to the core.\n\nHold down your finger for a second and drag to place multiple ducts.
+onset.mine = Click to mine :beryllium: [accent]beryllium[] from walls.\n\nUse [accent][[WASD] to move.
+onset.mine.mobile = Tap to mine :beryllium: [accent]beryllium[] from walls.
+onset.research = Open the :tree: tech tree.\nResearch, then place a :turbine-condenser: [accent]turbine condenser[] on the vent.\nThis will generate [accent]power[].
+onset.bore = Research and place a :plasma-bore: [accent]plasma bore[].\nThis automatically mines resources from walls.
+onset.power = To [accent]power[] the plasma bore, research and place a :beam-node: [accent]beam node[].\nConnect the turbine condenser to the plasma bore.
+onset.ducts = Research and place :duct: [accent]ducts[] to move the mined resources from the plasma bore to the core.\nClick and drag to place multiple ducts.\n[accent]Scroll[] to rotate.
+onset.ducts.mobile = Research and place :duct: [accent]ducts[] to move the mined resources from the plasma bore to the core.\n\nHold down your finger for a second and drag to place multiple ducts.
onset.moremine = Expand the mining operation.\nPlace more Plasma Bores and use beam nodes and ducts to support them.\nMine 200 beryllium.
-onset.graphite = More complex blocks require \uF835 [accent]graphite[].\nSet up plasma bores to mine graphite.
-onset.research2 = Begin researching [accent]factories[].\nResearch the \uF74D [accent]cliff crusher[] and \uF779 [accent]silicon arc furnace[].
-onset.arcfurnace = The arc furnace needs \uF834 [accent]sand[] and \uF835 [accent]graphite[] to create \uF82F [accent]silicon[].\n[accent]Power[] is also required.
-onset.crusher = Use \uF74D [accent]cliff crushers[] to mine sand.
-onset.fabricator = Use [accent]units[] to explore the map, defend buildings, and attack the enemy. Research and place a \uF6A2 [accent]tank fabricator[].
+onset.graphite = More complex blocks require :graphite: [accent]graphite[].\nSet up plasma bores to mine graphite.
+onset.research2 = Begin researching [accent]factories[].\nResearch the :cliff-crusher: [accent]cliff crusher[] and :silicon-arc-furnace: [accent]silicon arc furnace[].
+onset.arcfurnace = The arc furnace needs :sand: [accent]sand[] and :graphite: [accent]graphite[] to create :silicon: [accent]silicon[].\n[accent]Power[] is also required.
+onset.crusher = Use :cliff-crusher: [accent]cliff crushers[] to mine sand.
+onset.fabricator = Use [accent]units[] to explore the map, defend buildings, and attack the enemy. Research and place a :tank-fabricator: [accent]tank fabricator[].
onset.makeunit = Produce a unit.\nUse the "?" button to see selected factory requirements.
-onset.turrets = Units are effective, but [accent]turrets[] provide better defensive capabilities if used effectively.\nPlace a \uF6EB [accent]Breach[] turret.\nTurrets require \uF748 [accent]ammo[].
+onset.turrets = Units are effective, but [accent]turrets[] provide better defensive capabilities if used effectively.\nPlace a :breach: [accent]Breach[] turret.\nTurrets require :beryllium: [accent]ammo[].
onset.turretammo = Supply the turret with [accent]beryllium[] as ammo, using ducts.
-onset.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace some \uF6EE [accent]beryllium walls[] around the turret.
+onset.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace some :beryllium-wall: [accent]beryllium walls[] around the turret.
onset.enemies = Enemy incoming, prepare to defend.
onset.defenses = [accent]Set up defenses:[lightgray] {0}
onset.attack = The enemy is vulnerable. Counter-attack.
-onset.cores = New cores can be placed on [accent]core tiles[].\nNew cores function as forward bases and share a resource inventory with other cores.\nPlace a \uF725 core.
+onset.cores = New cores can be placed on [accent]core tiles[].\nNew cores function as forward bases and share a resource inventory with other cores.\nPlace a :core-bastion: core.
onset.detect = The enemy will be able to detect you in 2 minutes.\nSet up defenses, mining, and production.
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.
@@ -2076,7 +2121,7 @@ liquid.cryofluid.description = Used as coolant in reactors, turrets and factorie
#Erekir
liquid.arkycite.description = Used in chemical reactions for power generation and material synthesis.
-liquid.ozone.description = Used as an oxidizing agent in material production, and as fuel. Moderately explosive.
+liquid.ozone.description = Used as fuel and an oxidizing agent in material production. Moderately explosive.
liquid.hydrogen.description = Used in resource extraction, unit production and structure repair. Flammable.
liquid.cyanogen.description = Used for ammunition, construction of advanced units, and various reactions in advanced blocks. Highly flammable.
liquid.nitrogen.description = Used in resource extraction, gas creation and unit production. Inert.
@@ -2133,7 +2178,7 @@ block.door.description = A wall that can be opened and closed.
block.door-large.description = A wall that can be opened and closed.
block.mender.description = Periodically repairs blocks in its vicinity.\nOptionally uses silicon to boost range and efficiency.
block.mend-projector.description = Repairs blocks in its vicinity.\nOptionally uses phase fabric to boost range and efficiency.
-block.overdrive-projector.description = Increases the speed of nearby buildings.\nOptionally uses phase fabric to boost range and efficiency.
+block.overdrive-projector.description = Increases the speed of nearby buildings.\nOptionally uses phase fabric to boost range and efficiency. Does not stack.
block.force-projector.description = Creates a hexagonal force field around itself, protecting buildings and units inside from damage.\nOverheats if too much damage is sustained. Optionally uses coolant to prevent overheating. Phase fabric increases shield size.
block.shock-mine.description = Releases electric arcs upon enemy unit contact.
block.conveyor.description = Transports items forward.
@@ -2195,7 +2240,9 @@ block.vault.description = Stores a large amount of items of each type. Expands s
block.container.description = Stores a small amount of items of each type. Expands storage when placed next to a core. Contents can be retrieved with an unloader.
block.unloader.description = Unloads the selected item from nearby blocks.
block.launch-pad.description = Launches batches of items to selected sectors.
-block.launch-pad.details = Sub-orbital system for point-to-point transportation of resources. Payload pods are fragile and incapable of surviving re-entry.
+block.advanced-launch-pad.description = Launches batches of items to selected sectors. Only accepts one item type at a time.
+block.advanced-launch-pad.details = Sub-orbital system for point-to-point transportation of resources.
+block.landing-pad.description = Receives items from launch pads in other sectors. Requires large amounts of water to protect against impacts of landings.
block.duo.description = Fires alternating bullets at enemies.
block.scatter.description = Fires clumps of lead, scrap or metaglass flak at enemy aircraft.
block.scorch.description = Burns any ground enemies close to it. Highly effective at close range.
@@ -2217,7 +2264,7 @@ block.parallax.description = Fires a tractor beam that pulls in air targets, dam
block.tsunami.description = Fires powerful streams of liquid at enemies. Automatically extinguishes fires when supplied with water.
block.silicon-crucible.description = Refines silicon from sand and coal, using pyratite as an additional heat source. More efficient in hot locations.
block.disassembler.description = Separates slag into trace amounts of exotic mineral components at low efficiency. Can produce thorium.
-block.overdrive-dome.description = Increases the speed of nearby buildings. Requires phase fabric and silicon to operate.
+block.overdrive-dome.description = Increases the speed of nearby buildings. Requires phase fabric and silicon to operate. Does not stack.
block.payload-conveyor.description = Moves large payloads, such as units from factories. Magnetic. Usable in zero-G environments.
block.payload-router.description = Splits input payloads into 3 output directions. Functions as a sorter when a filter is set. Magnetic. Usable in zero-G environments.
block.ground-factory.description = Produces ground units. Output units can be used directly, or moved into reconstructors for upgrading.
@@ -2243,13 +2290,13 @@ block.core-bastion.description = Core of the base. Armored. Once destroyed, the
block.core-citadel.description = Core of the base. Very well armored. Stores more resources than a Bastion core.
block.core-acropolis.description = Core of the base. Exceptionally well armored. Stores more resources than a Citadel core.
block.breach.description = Fires piercing bullets at enemy targets.
-block.diffuse.description = Fires a burst of bullets in a wide cone. Pushes enemy targets back.
+block.diffuse.description = Fires bursts of bullets in a wide cone. Pushes enemy targets back.
block.sublimate.description = Fires a continuous jet of flame at enemy targets. Pierces armor.
-block.titan.description = Fires a massive explosive artillery shell at ground targets. Requires hydrogen.
-block.afflict.description = Fires a massive charged orb of fragmentary flak. Requires heating.
+block.titan.description = Fires massive explosive artillery shells at ground targets. Requires hydrogen.
+block.afflict.description = Fires massive charged orbs of fragmentary flak. Requires heating.
block.disperse.description = Fires bursts of flak at aerial targets.
-block.lustre.description = Fires a slow-moving single-target laser at enemy targets.
-block.scathe.description = Launches a powerful missile at ground targets over vast distances.
+block.lustre.description = Fires a continuous slow-moving single-target laser at enemy targets.
+block.scathe.description = Launches powerful missiles at ground targets over vast distances.
block.smite.description = Fires bursts of piercing, lightning-emitting bullets.
block.malign.description = Fires a barrage of homing laser charges at enemy targets. Requires extensive heating.
block.silicon-arc-furnace.description = Refines silicon from sand and graphite.
@@ -2260,9 +2307,9 @@ block.phase-heater.description = Applies heat to structures. Requires phase fabr
block.heat-redirector.description = Redirects accumulated heat to other blocks.
block.small-heat-redirector.description = Redirects accumulated heat to other blocks.
block.heat-router.description = Spreads accumulated heat in three output directions.
-block.electrolyzer.description = Converts water into hydrogen and ozone gas. Outputs resulting gases in two opposite directions, marked by corresponding colors.
+block.electrolyzer.description = Splits water into hydrogen and ozone gas. Outputs resulting gases in two opposite directions, marked by corresponding colors.
block.atmospheric-concentrator.description = Concentrates nitrogen from the atmosphere. Requires heat.
-block.surge-crucible.description = Forms surge alloy from slag and silicon. Requires heat.
+block.surge-crucible.description = Creates surge alloy from silicon and metals constituent in slag. Requires heat.
block.phase-synthesizer.description = Synthesizes phase fabric from thorium, sand, and ozone. Requires heat.
block.carbide-crucible.description = Fuses graphite and tungsten into carbide. Requires heat.
block.cyanogen-synthesizer.description = Synthesizes cyanogen from arkycite and graphite. Requires heat.
@@ -2271,9 +2318,9 @@ block.vent-condenser.description = Condenses vent gases into water. Consumes pow
block.plasma-bore.description = When placed facing an ore wall, outputs items indefinitely. Requires small amounts of power.\nOptionally uses hydrogen to boost efficiency.
block.large-plasma-bore.description = A larger plasma bore. Capable of mining tungsten and thorium. Requires hydrogen and power.\nOptionally uses nitrogen to boost efficiency.
block.cliff-crusher.description = Crushes walls, outputting sand indefinitely. Requires power. Efficiency varies based on type of wall.
-block.large-cliff-crusher.description = Crushes walls, outputting sand indefinitely. Requires power and ozone. Efficiency varies based on type of wall. Optionally consumes tungsten to increase efficiency.
-block.impact-drill.description = When placed on ore, outputs items in bursts indefinitely. Requires power and water.
-block.eruption-drill.description = An improved impact drill. Capable of mining thorium. Requires hydrogen.
+block.large-cliff-crusher.description = Crushes walls, outputting sand indefinitely. Requires power and hydrogen. Efficiency varies based on type of wall. Optionally consumes graphite to increase efficiency.
+block.impact-drill.description = When placed on ore, outputs items in bursts indefinitely. Requires power and water.\nOptionally uses ozone to boost efficiency.
+block.eruption-drill.description = An improved impact drill. Capable of mining thorium. Requires hydrogen.\nOptionally uses cyanogen to boost efficiency.
block.reinforced-conduit.description = Moves fluids forward. Doesn't accept non-conduit inputs to the sides.
block.reinforced-liquid-router.description = Distributes fluids equally to all sides.
block.reinforced-liquid-tank.description = Stores a large amount of fluids.
@@ -2304,6 +2351,7 @@ block.unit-cargo-loader.description = Constructs cargo drones. Drones automatica
block.unit-cargo-unload-point.description = Acts as an unloading point for cargo drones. Accepts items that match the selected filter.
block.beam-node.description = Transmits power to other blocks orthogonally. Stores a small amount of power.
block.beam-tower.description = Transmits power to other blocks orthogonally. Stores a large amount of power. Long-range.
+block.beam-link.description = Transmits power over vast distances.\nOnly capable of connecting to adjacent structures or other beam links.
block.turbine-condenser.description = Generates power when placed on vents. Produces a small amount of water.
block.chemical-combustion-chamber.description = Generates power from arkycite and ozone.
block.pyrolysis-generator.description = Generates large amounts of power from arkycite and slag. Produces water as a byproduct.
@@ -2396,6 +2444,7 @@ unit.emanate.description = Builds structures to defend the Acropolis core. Repai
lst.read = Read a number from a linked memory cell.
lst.write = Write a number to a linked memory cell.
lst.print = Add text to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used.
+lst.printchar = Add a UTF-16 character or content icon to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used.
lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example"
lst.draw = Add an operation to the drawing buffer.\nDoes not display anything until [accent]Draw Flush[] is used.
lst.drawflush = Flush queued [accent]Draw[] operations to a display.
@@ -2491,12 +2540,14 @@ lenum.config = Building configuration, e.g. sorter item.
lenum.enabled = Whether the block is enabled.
laccess.currentammotype = Current ammo item/liquid of a turret.
+laccess.memorycapacity = Number of cells in a memory block.
laccess.color = Illuminator color.
laccess.controller = Unit controller. If processor controlled, returns processor.\nOtherwise, returns the unit itself.
laccess.dead = Whether a unit/building is dead or no longer valid.
laccess.controlled = Returns:\n[accent]@ctrlProcessor[] if unit controller is processor\n[accent]@ctrlPlayer[] if unit/building controller is player\n[accent]@ctrlCommand[] if unit controller is a player command\nOtherwise, 0.
laccess.progress = Action progress, 0 to 1.\nReturns production, turret reload or construction progress.
laccess.speed = Top speed of a unit, in tiles/sec.
+laccess.size = Size of a unit/building or the length of a string.
laccess.id = ID of a unit/block/item/liquid.\nThis is the inverse of the lookup operation.
lcategory.unknown = Unknown
@@ -2644,3 +2695,30 @@ lenum.autoscale = Whether to scale marker corresponding to player's zoom level.
lenum.posi = Indexed position, used for line and quad markers with index zero being the first position.
lenum.uvi = Texture's position ranging from zero to one, used for quad markers.
lenum.colori = Indexed color, used for line and quad markers with index zero being the first color.
+
+lenum.wavetimer = Whether the waves come automatically on a timer. If not, waves come when the play button is pressed.
+lenum.wave = Current wave number. Can be anything in non-wave modes.
+lenum.currentwavetime = Wave countdown in ticks.
+lenum.waves = Whether waves are spawnable at all.
+lenum.wavesending = Whether the waves can be manually summoned with the play button.
+lenum.attackmode = Determines if gamemode is attack mode.
+lenum.wavespacing = Time between waves in ticks.
+lenum.enemycorebuildradius = No-build zone around enemy core radius.
+lenum.dropzoneradius = Radius around enemy wave drop zones.
+lenum.unitcap = Base unit cap. Can still be increased by blocks.
+lenum.lighting = Whether ambient lighting is enabled.
+lenum.buildspeed = Multiplier for building speed.
+lenum.unithealth = How much health units start with.
+lenum.unitbuildspeed = How fast unit factories build units.
+lenum.unitcost = Multiplier of resources that units take to build.
+lenum.unitdamage = How much damage units deal.
+lenum.blockhealth = How much health blocks start with.
+lenum.blockdamage = How much damage blocks (turrets) deal.
+lenum.rtsminweight = Minimum "advantage" needed for a squad to attack. Higher -> more cautious.
+lenum.rtsminsquad = Minimum size of attack squads.
+lenum.maparea = Playable map area. Anything outside the area will not be interactable.
+lenum.ambientlight = Ambient light color. Used when lighting is enabled.
+lenum.solarmultiplier = Multiplies power output of solar panels.
+lenum.dragmultiplier = Environment drag multiplier.
+lenum.ban = Blocks or units that cannot be placed or built.
+lenum.unban = Unban a unit or block.
\ No newline at end of file
diff --git a/core/assets/bundles/bundle_be.properties b/core/assets/bundles/bundle_be.properties
index 6de2db79da..c7e5898a73 100644
--- a/core/assets/bundles/bundle_be.properties
+++ b/core/assets/bundles/bundle_be.properties
@@ -128,6 +128,7 @@ done = Гатова
feature.unsupported = Ваша прылада не падтрымлівае гэтую магчымасць.
mods.initfailed = [red]⚠[] Папярэдні асобнік Mindustry не атрымалася ініцыялізаваць. Гэта напэўна выклікана тым, што моды не працуюць належным чынам.\n\nКаб прадухіліць цыкл збояў, [red]усе моды былі адключаныя.[]
mods = Мадыфікацыі
+mods.name = Mod:
mods.none = [lightgray]Мадыфікацыі не знойдзены!
mods.guide = Кіраўніцтва па мадам
mods.report = Паведаміць пра памылку
@@ -152,7 +153,7 @@ mod.erroredcontent = [scarlet]Памылкі Змесціва
mod.circulardependencies = [red]Кругавыя Залежнасці
mod.incompletedependencies = [red]Няпоўныя Залежнасці
mod.requiresversion.details = Патрабуецца версія гульні: [accent]{0}[]\nВаша гульня застарэлая. Гэьая мадыфікацыя патрабуе навейшую версію гульні (магчыма beta/alpha рэлізы) как функцыянаваць.
-mod.outdatedv7.details = Гэта мадыфікацыя несумяшчальная з гэтай версіяй гульні. Аўтар павінен абнавіць гэтую мадыфікацыю, і дабаўце [accent]minGameVersion: 136[] да гэіага [accent]mod.json[] файлу.
+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 = Гэта мадыфікацыя была ўручную дададзена ў чорны спіс для выклікаючых другія памылкі з гэтай версіяй гульні. Не выкарыстоўвайце гэта.
mod.missingdependencies.details = Гэта мадыфікацыя мае прапушчаныя залежнасці: {0}
mod.erroredcontent.details = Гэта гульня выклікала памылкі калі запускалася. Спытайце аўтара мадыфікацыі як гэта папрвіць.
@@ -161,7 +162,6 @@ mod.incompletedependencies.details = Гэтая мадыфікацыя не мо
mod.requiresversion = Патрабуецца версія гульні: [red]{0}
mod.errors = Памылкі былі выкліканыя загружаным змесцівам.
mod.noerrorplay = [scarlet]У Вас ёсць мадыфікацыі з памылкамі.[] Выключыце праблемныя мадыфікацыі або выпраўце памылкі перад гульнёй.
-mod.nowdisabled = [scarlet]Мадыфікацыі '{0}' патрабуюцца бацькоўскія мадыфікацыі:[accent] {1}\n[lightgray]Спачатку трэба загрузіць іх.\nГэтая мадыфікацыя будзе аўтаматычна адключаная.
mod.enable = Укл.
mod.requiresrestart = Цяпер гульня зачыніцца, каб прымяніць змены ў мадыфікацыях.
mod.reloadrequired = [scarlet]Неабходны перазапуск
@@ -176,6 +176,15 @@ mod.missing = Гэта захаванне ўтрымлівае мадыфіка
mod.preview.missing = Перад публікацыяй гэтай мадыфікацыі ў майстэрні, вы павінны дадаць малюнак прадпрагляду.\nРазмесціце малюнак з імем[accent] preview.png[] у тэчцы мадыфікацыі і паспрабуйце зноў.
mod.folder.missing = Мадыфікацыі могуць быць апублікаваныя ў майстэрні толькі ў выглядзе тэчкі.\nКаб канвертаваць любы мод у тэчку, проста выміце яго з архіва і выдаліце стары архіў .zip, затым перазапусціце гульню ці перазагрузіце мадыфікацыі.
mod.scripts.disable = Ваша прылада не падтрымлівае мадыфікацыі з скріптамі. Выключайце такіе мады, как гуляць.
+mod.dependencies.error = [scarlet]Mods are missing dependencies
+mod.dependencies.soft = (optional)
+mod.dependencies.download = Import
+mod.dependencies.downloadreq = Import Required
+mod.dependencies.downloadall = Import All
+mod.dependencies.status = Import Results
+mod.dependencies.success = Successfully downloaded:
+mod.dependencies.failure = Failed to download:
+mod.dependencies.imported = This mod requires dependencies. Download?
about.button = Аб гульні
name = Імя:
noname = Для пачатку, прыдумайце[accent] сабе iмя[].
@@ -290,6 +299,7 @@ disconnect.error = Памылка злучэння.
disconnect.closed = Злучэнне закрыта.
disconnect.timeout = Час чакання скончыўся.
disconnect.data = Памылка пры загрузцы дадзеных свету!
+disconnect.snapshottimeout = Timed out while receiving UDP snapshots.\nThis may be caused by an unstable network or connection.
cantconnect = Не ўдаецца далучыцца да гульні ([accent]{0}[]).
connecting = [accent]Падключэнне…
reconnecting = [accent]Перападключэнне...
@@ -458,6 +468,7 @@ editor.shiftx = Shift X
editor.shifty = Shift Y
workshop = Майстэрня
waves.title = Хвалі
+waves.team = Team
waves.remove = Выдаліць
waves.every = кожны
waves.waves = хваля (ы)
@@ -705,14 +716,18 @@ loadout = Выгрузіць
resources = Рэсурсы
resources.max = Максімум Рэсурсаў
bannedblocks = Забароненыя блокі
+unbannedblocks = Unbanned Blocks
objectives = Мэты
bannedunits = Забароненыя Адзінкі
+unbannedunits = Unbanned Units
bannedunits.whitelist = Забароненыя Адзінкі Ў Белым Спісе
bannedblocks.whitelist = Забароненыя Блокі Ў Белым Спісе
addall = Дадаць всё
launch.from = Запуск Ад: [accent]{0}
launch.capacity = Ёмістасць Прадметаў Да Запуску: [accent]{0}
launch.destination = Кропка Прызначэння: {0}
+landing.sources = Source Sectors: [accent]{0}[]
+landing.import = Max Total Import: {0}[accent]{1}[lightgray]/min
configure.invalid = Колькасць павінна быць лікам паміж 0 і {0}.
add = Дадаць...
guardian = Вартаўнік
@@ -751,7 +766,9 @@ sectors.stored = Захавана:
sectors.resume = Працягнуць
sectors.launch = Запусціць
sectors.select = Выбраць
+sectors.launchselect = Select Launch Destination
sectors.nonelaunch = [lightgray]нічога (sun)
+sectors.redirect = Redirect Launch Pads
sectors.rename = Пераназваць Сектар
sectors.enemybase = [scarlet]Варожая База
sectors.vulnerable = [scarlet]Уразлівы
@@ -782,6 +799,10 @@ difficulty.easy = Easy
difficulty.normal = Normal
difficulty.hard = Hard
difficulty.eradication = Eradication
+difficulty.enemyHealthMultiplier = Enemy Health: {0}
+difficulty.enemySpawnMultiplier = Enemy Amount: {0}
+difficulty.waveTimeMultiplier = Wave Timer: {0}
+difficulty.nomodifiers = [lightgray](No modifiers)
planets = Планеты
planet.serpulo.name = Серпуло
@@ -1011,6 +1032,7 @@ stat.buildspeedmultiplier = Множнік Хуткасці Будоўлі
stat.reactive = Рэагуе
stat.immunities = Імунітэт
stat.healing = Аднаўленне
+stat.efficiency = [stat]{0}% Efficiency
ability.forcefield = Сіловое Поле
ability.forcefield.description = Projects a force shield that absorbs bullets
@@ -1057,6 +1079,7 @@ ability.stat.buildtime = [stat]{0} sec[lightgray] build time
bar.onlycoredeposit = Даступны Толькі Перанос Рэсурсаў У Ядро
bar.drilltierreq = Патрабуецца свідар лепей
+bar.nobatterypower = Insufficieny Battery Power
bar.noresources = Не Хапае Рэсурсаў
bar.corereq = Патрабуецца Аснова Ядра
bar.corefloor = Патрабуецца Тайлавая Зона Ядра
@@ -1065,6 +1088,7 @@ bar.drillspeed = Хуткасць бурэння: {0}/с
bar.pumpspeed = Хуткасць выкачванне: {0}/с
bar.efficiency = Эфектыўнасць: {0}%
bar.boost = Моц Узлёту: +{0}%
+bar.powerbuffer = Battery Power: {0}/{1}
bar.powerbalance = Энергія: {0}/с
bar.powerstored = Назапашана: {0}/{1}
bar.poweramount = Энергія: {0}
@@ -1075,6 +1099,7 @@ bar.capacity = Умяшчальнасць: {0}
bar.unitcap = {0} {1}/{2}
bar.liquid = Вадкасці
bar.heat = Нагрэў
+bar.cooldown = Cooldown
bar.instability = Нестабільнасць
bar.heatamount = Нагрэў: {0}
bar.heatpercent = Нагрэў: {0} ({1}%)
@@ -1099,6 +1124,7 @@ bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
bullet.frags = [stat]{0}[lightgray]x frag bullets:
bullet.lightning = [stat]{0}[lightgray]x lightning ~ [stat]{1}[lightgray] damage
bullet.buildingdamage = [stat]{0}%[lightgray] building damage
+bullet.shielddamage = [stat]{0}%[lightgray] shield damage
bullet.knockback = [stat] {0} [lightgray]аддачы
bullet.pierce = [stat]{0}[lightgray]x pierce
bullet.infinitepierce = [stat]pierce
@@ -1125,6 +1151,7 @@ unit.minutes = хв.
unit.persecond = /сек
unit.perminute = /хв
unit.timesspeed = x хуткасць
+unit.multiplier = x
unit.percent = %
unit.shieldhealth = моц шчыта
unit.items = прадметаў
@@ -1201,11 +1228,13 @@ setting.mutemusic.name = Заглушыць музыку
setting.sfxvol.name = Гучнасць эфектаў
setting.mutesound.name = Заглушыць гук
setting.crashreport.name = Адпраўляць ананімныя справаздачы аб вылетах
+setting.communityservers.name = Fetch Community Server List
setting.savecreate.name = Аўтаматычнае стварэнне захаванняў
setting.steampublichost.name = Public Game Visibility
setting.playerlimit.name = Абмежаванне гульцоў
setting.chatopacity.name = Непразрыстасць чата
setting.lasersopacity.name = Непразрыстасць лазераў энергазабеспячэння
+setting.unitlaseropacity.name = Unit Mining Beam Opacity
setting.bridgeopacity.name = Непразрыстасць мастоў
setting.playerchat.name = Адлюстроўваць аблокі чата над гульцамі
setting.showweather.name = Паказаць Анімацыю Надвор'я
@@ -1214,6 +1243,9 @@ setting.macnotch.name = Адаптуйце інтэрфейс для адлюс
setting.macnotch.description = Каб змены ўжыліся патрабуецца перазапуск
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.
public.beta = Майце на ўвазе, што бэта-версія гульні не можа рабіць гульні публічнымі.
uiscale.reset = Маштаб карыстацкага інтэрфейсу быў зменены. \nНацісніце «ОК» для пацвярджэння гэтага маштабу. \n[scarlet]Зварот налад і выхад праз [accent]{0}[] секунд ...
uiscale.cancel = Адмяніць & Выйсці
@@ -1294,6 +1326,7 @@ keybind.shoot.name = Стрэл
keybind.zoom.name = Маштабаванне
keybind.menu.name = Меню
keybind.pause.name = Паўза
+keybind.skip_wave.name = Skip Wave
keybind.pause_building.name = Прыпыніць/Аднавіць Будаўніцтва
keybind.minimap.name = Міні-карта
keybind.planet_map.name = Карта Планеты
@@ -1361,12 +1394,14 @@ rules.unitcostmultiplier = Множыцель Кошту Адзінак
rules.unithealthmultiplier = Множнік здароўя баяв. адз.
rules.unitdamagemultiplier = Множнік страт баяв. адз.
rules.unitcrashdamagemultiplier = Множнік Падрыўнога Пашкоджання Юніта
+rules.unitminespeedmultiplier = Unit Mine Speed Multiplier
rules.solarmultiplier = Множнік Сонечнай Энергіі
rules.unitcapvariable = Ядра Спрыяюць Колькасці Юнітаў
rules.unitpayloadsexplode = Carried Payloads Explode With The Unit
rules.unitcap = Асноўная Колькасць Юнітаў
rules.limitarea = Абмежаваць Вобласць Мапы
rules.enemycorebuildradius = Радыус абароны варожае. ядраў: [lightgray] (блок.)
+rules.extracorebuildradius = Extra No-Build Radius:[lightgray] (tiles)
rules.wavespacing = Інтэрвал хваль: [lightgray](сек)
rules.initialwavespacing = Пачатковы Інтэрвал Хваль:[lightgray] (сек)
rules.buildcostmultiplier = Множнік выдаткаў на будаўніцтва
@@ -1389,6 +1424,9 @@ rules.title.planet = Планета
rules.lighting = Асвятленне
rules.fog = Туман Вайны
rules.invasions = Enemy Sector Invasions
+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.fire = Агонь
@@ -1705,6 +1743,8 @@ block.meltdown.name = Іспепяліцель
block.foreshadow.name = Прадвесце
block.container.name = Кантэйнер
block.launch-pad.name = Пускавая пляцоўка
+block.advanced-launch-pad.name = Launch Pad
+block.landing-pad.name = Landing Pad
block.segment.name = Сегмент
block.ground-factory.name = Завод наземных адзінак
block.air-factory.name = Завод паветраных адзінак
@@ -1760,6 +1800,8 @@ block.arkyic-vent.name = Аркіцытны Гейзер
block.yellow-stone-vent.name = Жоутакаменны Гейзер
block.red-stone-vent.name = Чырвонакаменны Гейзер
block.crystalline-vent.name = Крыштальны Гейзер
+block.stone-vent.name = Stone Vent
+block.basalt-vent.name = Basalt Vent
block.redmat.name = Красная Глеба
block.bluemat.name = Сіняя Глеба
block.core-zone.name = Зона Ядра
@@ -1913,77 +1955,77 @@ hint.respawn = Каб аднавіць карабель, націсніце [acc
hint.respawn.mobile = Вы змянілі кантроль на адзінку/структуру. Каб аднавіць карабель, [accent]націсніце на іконку адзінкі зверху злева.[]
hint.desktopPause = Націсніце [accent][[Space][] каб прыпыніць і аднавіць гульню.
hint.breaking = [accent]Правы-пстрык[] і утрымаць как разбурыць блокі.
-hint.breaking.mobile = Актывуйце \ue817 [accent]малаток[] унізе справа і націсніце, каб разабраць блок.\n\nУтрымайце палец адну секунду і правядзіце как вызначыць вобласць якую жадаеце разабраць.
+hint.breaking.mobile = Актывуйце :hammer: [accent]малаток[] унізе справа і націсніце, каб разабраць блок.\n\nУтрымайце палец адну секунду і правядзіце как вызначыць вобласць якую жадаеце разабраць.
hint.blockInfo = Праглядзець інфармацыю пра блок выбіраючы яго ў [accent]меню будаўніцтва[], пасля выберыце [accent][[?][] кнопку справа.
hint.derelict = [accent]Пакінутыя[] структуры гэта разрбураныя часткі старой базы якія больш не функцыянуюць.\n\nГэтыя структуры могуць быць [accent]разабраны[] на рэсурсы.
-hint.research = Выкарыстоўвайце кнопку \ue875 [accent]Даследаванні[] каб даследаваць новую тэхналогію.
-hint.research.mobile = Выкарыстоўвайце кнопку \ue875 [accent]Даследаванні[] ў \ue88c [accent]Меню[] каб даследаваць новую тэхналогію.
+hint.research = Выкарыстоўвайце кнопку :tree: [accent]Даследаванні[] каб даследаваць новую тэхналогію.
+hint.research.mobile = Выкарыстоўвайце кнопку :tree: [accent]Даследаванні[] ў :menu: [accent]Меню[] каб даследаваць новую тэхналогію.
hint.unitControl = Зажміце [accent][[Левы-ctrl][] і [accent]пстрык[] каб кантраляваць дружалюбнай адзінкай або турэляй.
hint.unitControl.mobile = [accent][[Двайны-націск][] каб кантраляваць дружалюбнай адзінкай або турэляй.
hint.unitSelectControl = Каб кіраваць адінкамі, адкройце [accent]рэжым загадаў[] утрымлівая [accent]Левы-shift.[]\nУ рэжыме загадаў, націсніце і утрымайце каб выбраць адзінкі. [accent]Правы-пстрык[] на а'бект каб задаць мэту або шлях.
hint.unitSelectControl.mobile = Каб кантраляваць адінкамі, адкройце [accent]рэжым загадаў[] націскаючы кнопку [accent]загадваць[] у унізе злева.\nУ рэжыме загадаў, утрымайце і правядзіце каб выбраць адзінкі. Націсніце на а'бект каб задаць мэту або шлях.
-hint.launch = Калі рэсурсы сабраны, вы можаце [accent]Запусціць[] выбіраючы сектара якія знаходзяцца побач на \ue827 [accent]Карце[] унізе справа.
-hint.launch.mobile = Калі рэсурсы сабраны, вы можаце [accentЗапусціць[] выбіраючы сектара якія знаходзяцца побач на \ue827 [accent]Карце[] ў \ue88c [accent]Меню[].
+hint.launch = Калі рэсурсы сабраны, вы можаце [accent]Запусціць[] выбіраючы сектара якія знаходзяцца побач на :map: [accent]Карце[] унізе справа.
+hint.launch.mobile = Калі рэсурсы сабраны, вы можаце [accentЗапусціць[] выбіраючы сектара якія знаходзяцца побач на :map: [accent]Карце[] ў :menu: [accent]Меню[].
hint.schematicSelect = Утрымайце [accent][[F][] і працягніце каб выбраць блокі для капіявання і ўстаўкі.\n\n[accent][[Сярэдні Пстрык][] каб скапіяваць толькі адзін тып блоку.
hint.rebuildSelect = Утрымайце [accent][[B][] і працягніце каб выбраць блокі для разбудавання.\nГэта перабудуе іх аўтаматычна.
-hint.rebuildSelect.mobile = Select the \ue874 copy button, then tap the \ue80f rebuild button and drag to select destroyed block plans.\nThis will rebuild them automatically.
+hint.rebuildSelect.mobile = Select the :copy: copy button, then tap the :wrench: rebuild button and drag to select destroyed block plans.\nThis will rebuild them automatically.
hint.conveyorPathfind = Утрымайце [accent][[Левы Ctrl][] калі правозіце канвееры каб аутаматычна згенераваць шлях.
-hint.conveyorPathfind.mobile = Уключыце \ue844 [accent]дыяганальны рэжым[] і утрымлівайце і размяшчайце канвееры па аўтаматычна згенераванаму шляху.
+hint.conveyorPathfind.mobile = Уключыце :diagonal: [accent]дыяганальны рэжым[] і утрымлівайце і размяшчайце канвееры па аўтаматычна згенераванаму шляху.
hint.boost = Утрымайце [accent][[Левы Shift][] каб ляцець праз перашкоды з вашай выбранай адзінкай.\n\nТолькі некаторыя наземныя адзінкі могуць узлятаць.
hint.payloadPickup = Націсніце каб [accent][[[] каб узяць малнькія блокі або адзінкі.
hint.payloadPickup.mobile = [accent]Націсніце і утрымайце[] маленькі блок або адзінку каб узяць гэта.
hint.payloadDrop = Націсніце [accent]][] каб збросіць груз.
hint.payloadDrop.mobile = [accent]Націсніце і ўтрымайце[] пустое месца каб збросіць груз тут.
hint.waveFire = Турэлі [accent]Хваля[] заражаныя вадой будуць тушыць полымя побач.
-hint.generator = \uf879 [accent]Генератары Згарання[] падпальваюць вугаль і перанакіраванне энергію суседнім блокам.\n\nРадыюс перадачы энергіі можа быць пашыраны з дапамогай \uf87f [accent]Энергетычных Вузлоў[].
-hint.guardian = Адзінкі [accent]Вартаўнік[] браніраваныя. Слабыя патроны такія як [accent]Медзь[] і [accent]Свінец[] [scarlet]не эфетўныя[].\n\nВыкарыстоўвайце больш моцныя турэлі або \uf835 [accent]Графіт[] у \uf861Двайных Турэлях/\uf859Залпах каб знішчыць Вартаўніка.
-hint.coreUpgrade = Ядра могуць быць палепшаны [accent]размяшчэннем больш моцных паверх другіх[].\n\nРазмясціце ядро \uf868 [accent]Штаб[] паверх ядра \uf869 [accent]Аскепак[]. Пераканайцеся, што гэта свабодна ад канструкцый побач.
+hint.generator = :combustion-generator: [accent]Генератары Згарання[] падпальваюць вугаль і перанакіраванне энергію суседнім блокам.\n\nРадыюс перадачы энергіі можа быць пашыраны з дапамогай :power-node: [accent]Энергетычных Вузлоў[].
+hint.guardian = Адзінкі [accent]Вартаўнік[] браніраваныя. Слабыя патроны такія як [accent]Медзь[] і [accent]Свінец[] [scarlet]не эфетўныя[].\n\nВыкарыстоўвайце больш моцныя турэлі або :graphite: [accent]Графіт[] у :duo:Двайных Турэлях/:salvo:Залпах каб знішчыць Вартаўніка.
+hint.coreUpgrade = Ядра могуць быць палепшаны [accent]размяшчэннем больш моцных паверх другіх[].\n\nРазмясціце ядро :core-foundation: [accent]Штаб[] паверх ядра :core-shard: [accent]Аскепак[]. Пераканайцеся, што гэта свабодна ад канструкцый побач.
hint.presetLaunch = Серыя [accent]сектара зоны пасадкі[], такія як [accent]Ледзяны Лес[], можна запусціць з любога месца. Яны не патрабуюць захапляць тэрыторыі побач.\n\n[accent]Пранумараваныя сектары[], такія як гэты, [accent]неабавязковыя[].
hint.presetDifficulty = На гэтым сектары [scarlet]вялікі узровень впрожай пагрозы[].\nЗапуск на такія сектары [accent]не рэкамендуецца[] без належнай тэхналогіі і падрыхтоўкі.
hint.coreIncinerate = Пасля таго як ёмістасць ядра запоўніцца прадметам, any extra items of that type it receives will be [accent]incinerated[].
hint.factoryControl = Каб усталяваць фабрыке адзінак [accent]шлях[], націсніце на блок фабрыку ў рэжыме камандавання, пасля нажміце на месца правай кнопкайэ мышкі.\nСтвораныя адзінкі будуць аўтаматычна рухацца сюды.
hint.factoryControl.mobile = Каб усталяваць фабрыке адзінак [accent]шлях[], націсніце на блок фабрыку ў рэжыме камандавання, пасля націсніце на месца.\nСтвораныя адзінкі будуць аўтаматычна рухацца сюды.
-gz.mine = Рухайцеся да \uf8c4 [accent]меднай руды[] на зямлі і націсніце на яе каб пачаць дабываць.
-gz.mine.mobile = Рухайцеся да \uf8c4 [accent]меднай руды[] на зямлі і дакраніцеся да яе каб пачаць дабываць.
-gz.research = Адчыніце \ue875 дрэва тэхналогій.\nДаследуйце \uf870 [accent]Механічны Бур[], пасля выберыце яго ў ніжнім правым меню.\nНажміце на руду каб размясціць.
-gz.research.mobile = Адкройце \ue875 дрэва тэхналогій.\nДаследуйце \uf870 [accent]Механічны Бур[], пасля выберыце яго ў ніжнім правым меню.\nНацісніце на залежы медзі каб размясцічь бур.\n\nНацісніце на конпку \ue800 [accent]падцвердзіць[] у нізе справа каб падцвердзіць.
-gz.conveyors = Даследуйце і размасціце \uf896 [accent]канвееры[] каб рухаць дабытыя рэсурсы\nад буроў да ядра.\n\nНажміце і правядзіце каб размясціць некалькі канвеераў.\n[accent]Пракручваць[] каб паварочваць аб'ект.
-gz.conveyors.mobile = Даследуйце і размасціце \uf896 [accent]канвееры[] каб рухаць дабытыя рэсурсы\nад буроў да ядра.\n\nУтрымайце ваш палец адну секнду і правядзіце каб размясціць некалькі канвеераў.
+gz.mine = Рухайцеся да :ore-copper: [accent]меднай руды[] на зямлі і націсніце на яе каб пачаць дабываць.
+gz.mine.mobile = Рухайцеся да :ore-copper: [accent]меднай руды[] на зямлі і дакраніцеся да яе каб пачаць дабываць.
+gz.research = Адчыніце :tree: дрэва тэхналогій.\nДаследуйце :mechanical-drill: [accent]Механічны Бур[], пасля выберыце яго ў ніжнім правым меню.\nНажміце на руду каб размясціць.
+gz.research.mobile = Адкройце :tree: дрэва тэхналогій.\nДаследуйце :mechanical-drill: [accent]Механічны Бур[], пасля выберыце яго ў ніжнім правым меню.\nНацісніце на залежы медзі каб размясцічь бур.\n\nНацісніце на конпку \ue800 [accent]падцвердзіць[] у нізе справа каб падцвердзіць.
+gz.conveyors = Даследуйце і размасціце :conveyor: [accent]канвееры[] каб рухаць дабытыя рэсурсы\nад буроў да ядра.\n\nНажміце і правядзіце каб размясціць некалькі канвеераў.\n[accent]Пракручваць[] каб паварочваць аб'ект.
+gz.conveyors.mobile = Даследуйце і размасціце :conveyor: [accent]канвееры[] каб рухаць дабытыя рэсурсы\nад буроў да ядра.\n\nУтрымайце ваш палец адну секнду і правядзіце каб размясціць некалькі канвеераў.
gz.drills = Пашырайце аперацыю здабычы.\nРазмясціце больш Механічных Буроў.\nЗдабудзьце 100 медзі.
-gz.lead = \uf837 [accent]Свінец[] гэта другі звычайны ў выкарыстанні рэсурс.\nПастаўце буры каб здабываць яго.
-gz.moveup = \ue804 Перайдзіце да наступных мэт.
-gz.turrets = Даследуйце і размясціце 2 \uf861 [accent]Двайныя турэлі[] каб абараняць ядро.\nДвайныя турэлі патрабуюць \uf838 [accent]снарады[] падведзеныя канвеерамі.
+gz.lead = :lead: [accent]Свінец[] гэта другі звычайны ў выкарыстанні рэсурс.\nПастаўце буры каб здабываць яго.
+gz.moveup = :up: Перайдзіце да наступных мэт.
+gz.turrets = Даследуйце і размясціце 2 :duo: [accent]Двайныя турэлі[] каб абараняць ядро.\nДвайныя турэлі патрабуюць \uf838 [accent]снарады[] падведзеныя канвеерамі.
gz.duoammo = Зарадзіце Двайныя турэлт [accent]меддзю[], выкарыстоўваючы канвееры.
-gz.walls = [accent]Сцены[] могуць стрымліваць ад пашкоджанняў другія блокі .\nРазмясціце \uf8ae [accent]медныя сцены[] вакол турэлей.
+gz.walls = [accent]Сцены[] могуць стрымліваць ад пашкоджанняў другія блокі .\nРазмясціце :copper-wall: [accent]медныя сцены[] вакол турэлей.
gz.defend = Ворагі на падыходзе, прыгатуйцеся да аховы.
-gz.aa = Паветранныя адзінкі не проста знішчыць звычайнымі турэлямі.\n\uf860 [accent]Турэлі льнік[] моцныя ў супраць-паветраннай ахове, патрабуюць \uf837 [accent]свінец[] у якасці боепрыпасаў.
+gz.aa = Паветранныя адзінкі не проста знішчыць звычайнымі турэлямі.\n:scatter: [accent]Турэлі льнік[] моцныя ў супраць-паветраннай ахове, патрабуюць :lead: [accent]свінец[] у якасці боепрыпасаў.
gz.scatterammo = Зараджайче турэлі льнік [accent]свінцом[], выкарыстоўваючы канвееры.
gz.supplyturret = [accent]Грузавая Турэль
gz.zone1 = Гэта вобласць зяўлення ворага.
gz.zone2 = Усё што пастроена ў гэтай вобласцт будзе знішчана калі пачанецца хваля.
gz.zone3 = Хваля амаль пачалася.\nПрыгатуйцеся.
gz.finish = Пабудуйце больш турэляў, дабудзьце больш рэсурсаў,\nі вытрывайце ад усе хвалі каб [accent]захапіць гэты сектар[].
-onset.mine = Нажміце каб дабываць \uf748 [accent]берылій[] са сцен.\n\nВыкарыстоўвайце [accent][[WASD] каб рухацца.
-onset.mine.mobile = Націсніце каб дабываць \uf748 [accent]берылій[] са сцен.
-onset.research = Адчыніце \ue875 дрэва тэхналогій.\nДаследуйце, а пасля размясціце \uf870 [accent]Турбінны Кандэнсатар[], на гейзеры.\nЁн будзе генераваць [accent]энергію[].
-onset.bore = Даследуйце і размясціце \uf870 [accent]Плазменны Бур[]. \nЁн будзе аўтаматычна дабываць рэсурсы са сцен.
-onset.power = Каб падлучыць [accent]энергію[] да плазменнага бура, даследуйце і размясціце \uf73d [accent]энергетычная вузлы[].\nЗлучыце турбінны кандэнсатар з плазменным буром.
-onset.ducts = Даследуйце і размясціце \uf799 [accent]каналы[] каб перамяшчаць дабытыя рэсуры ад плазменных буроў у ядро.\nНажміце і утрымайце каб раўмясціць больш каналаў.\n[accent]Пракручваць[] каб паварочваць.
-onset.ducts.mobile = Даследуйце і размясціце \uf799 [accent]каналы[] каб перамяшчаць дабытыя рэсуры ад плазменных буроў у ядро.\n\nУтрымлівайце ваш палец адну секнд і правядзіце каб размясціць больш каналаў.
+onset.mine = Нажміце каб дабываць :beryllium: [accent]берылій[] са сцен.\n\nВыкарыстоўвайце [accent][[WASD] каб рухацца.
+onset.mine.mobile = Націсніце каб дабываць :beryllium: [accent]берылій[] са сцен.
+onset.research = Адчыніце :tree: дрэва тэхналогій.\nДаследуйце, а пасля размясціце :mechanical-drill: [accent]Турбінны Кандэнсатар[], на гейзеры.\nЁн будзе генераваць [accent]энергію[].
+onset.bore = Даследуйце і размясціце :mechanical-drill: [accent]Плазменны Бур[]. \nЁн будзе аўтаматычна дабываць рэсурсы са сцен.
+onset.power = Каб падлучыць [accent]энергію[] да плазменнага бура, даследуйце і размясціце :beam-node: [accent]энергетычная вузлы[].\nЗлучыце турбінны кандэнсатар з плазменным буром.
+onset.ducts = Даследуйце і размясціце :duct: [accent]каналы[] каб перамяшчаць дабытыя рэсуры ад плазменных буроў у ядро.\nНажміце і утрымайце каб раўмясціць больш каналаў.\n[accent]Пракручваць[] каб паварочваць.
+onset.ducts.mobile = Даследуйце і размясціце :duct: [accent]каналы[] каб перамяшчаць дабытыя рэсуры ад плазменных буроў у ядро.\n\nУтрымлівайце ваш палец адну секнд і правядзіце каб размясціць больш каналаў.
onset.moremine = Пашырайце дабываючую прамысловасць.\nРазмясціце больш Плазменных Буроўmore і выкарыстоўвайце прамянёвыя вузлы і каналы каб падтрымліваць прамысловасць.\nДабудзьце 200 берылія.
-onset.graphite = Патрабуецца больш комплексных блокаў \uf835 [accent]графіта[].\nРазмясціце плазменныя буры каб дабываць графіт.
-onset.research2 = Пачніце даследаваць [accent]фабрыкі[].\n Даследуйце \uf74d [accent]Здр crusher[] and \uf779 [accent]silicon arc furnace[].
-onset.arcfurnace = The arc furnace needs \uf834 [accent]sand[] and \uf835 [accent]graphite[] to create \uf82f [accent]silicon[].\n[accent]Power[] is also required.
-onset.crusher = Use \uf74d [accent]cliff crushers[] to mine sand.
-onset.fabricator = Use [accent]units[] to explore the map, defend buildings, and attack the enemy. Research and place a \uf6a2 [accent]tank fabricator[].
+onset.graphite = Патрабуецца больш комплексных блокаў :graphite: [accent]графіта[].\nРазмясціце плазменныя буры каб дабываць графіт.
+onset.research2 = Пачніце даследаваць [accent]фабрыкі[].\n Даследуйце :cliff-crusher: [accent]Здр crusher[] and :silicon-arc-furnace: [accent]silicon arc furnace[].
+onset.arcfurnace = The arc furnace needs :sand: [accent]sand[] and :graphite: [accent]graphite[] to create :silicon: [accent]silicon[].\n[accent]Power[] is also required.
+onset.crusher = Use :cliff-crusher: [accent]cliff crushers[] to mine sand.
+onset.fabricator = Use [accent]units[] to explore the map, defend buildings, and attack the enemy. Research and place a :tank-fabricator: [accent]tank fabricator[].
onset.makeunit = Produce a unit.\nUse the "?" button to see selected factory requirements.
-onset.turrets = Units are effective, but [accent]turrets[] provide better defensive capabilities if used effectively.\nPlace a \uf6eb [accent]Breach[] turret.\nTurrets require \uf748 [accent]ammo[].
+onset.turrets = Units are effective, but [accent]turrets[] provide better defensive capabilities if used effectively.\nPlace a :breach: [accent]Breach[] turret.\nTurrets require :beryllium: [accent]ammo[].
onset.turretammo = Supply the turret with [accent]beryllium ammo.[]
-onset.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace some \uf6ee [accent]beryllium walls[] around the turret.
+onset.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace some :beryllium-wall: [accent]beryllium walls[] around the turret.
onset.enemies = Enemy incoming, prepare to defend.
onset.defenses = [accent]Set up defenses:[lightgray] {0}
onset.attack = The enemy is vulnerable. Counter-attack.
-onset.cores = New cores can be placed on [accent]core tiles[].\nNew cores function as forward bases and share a resource inventory with other cores.\nPlace a \uf725 core.
+onset.cores = New cores can be placed on [accent]core tiles[].\nNew cores function as forward bases and share a resource inventory with other cores.\nPlace a :core-bastion: core.
onset.detect = The enemy will be able to detect you in 2 minutes.\nSet up defenses, mining, and production.
onset.commandmode = Зажміце [accent]shift[] каб увайсці ў [accent]рэжым камандавання[].\n[accent]Левая Кнопка Мышкі і працягнуць[] каб выбраць адзінкі.\n[accent]Правая Кнопка Мышкі[] каб камандаваць выбранымі адзінкамі каб рухаць або атакаваць.
onset.commandmode.mobile = Націсніце на кнопку [accent]Камандавання[] каб увайсці ў [accent]рэжым камандавання[].\nУтрамайце палец, пасля [accent]правесці[] да выбраных адзінак.\n[accent]Націсніце[] каб камандаваць выбранымі адзінкамі каб рухаць або атакаваць.
@@ -2143,7 +2185,9 @@ block.vault.description = Захоўвае вялікая колькасць п
block.container.description = Захоўвае невялікая колькасць прадметаў кожнага тыпу. Блок разгрузчка можа быць выкарыстаны для здабывання прадметаў з кантэйнера.
block.unloader.description = Выгружае прадметы з любога нетранспортного блока. Тып прадмета, які неабходна выгрузіць, можна змяніць націскам.
block.launch-pad.description = Запускае партыі прадметаў без неабходнасці запуску ядра.
-block.launch-pad.details = Sub-orbital system for point-to-point transportation of resources. Payload pods are fragile and incapable of surviving re-entry.
+block.advanced-launch-pad.description = Launches batches of items to selected sectors. Only accepts one item type at a time.
+block.advanced-launch-pad.details = Sub-orbital system for point-to-point transportation of resources.
+block.landing-pad.description = Receives items from launch pads in other sectors. Requires large amounts of water to protect against impacts of landings.
block.duo.description = Маленькая, танная турэль. Карысная супраць наземных юнітаў.
block.scatter.description = Асноўная супрацьпаветраная турэль. Распыляе кавалкі свінцу або металалому на варожыя падраздзялення.
block.scorch.description = Спальваеце любых наземных ворагаў побач з ім. Высокаэфектыўны на блізкай адлегласці.
@@ -2250,6 +2294,7 @@ block.unit-cargo-loader.description = Constructs cargo drones. Drones automatica
block.unit-cargo-unload-point.description = Acts as an unloading point for cargo drones. Accepts items that match the selected filter.
block.beam-node.description = Transmits power to other blocks orthogonally. Stores a small amount of power.
block.beam-tower.description = Transmits power to other blocks orthogonally. Stores a large amount of power. Long-range.
+block.beam-link.description = Transmits power over vast distances.\nOnly capable of connecting to adjacent structures or other beam links.
block.turbine-condenser.description = Generates power when placed on vents. Produces a small amount of water.
block.chemical-combustion-chamber.description = Generates power from arkycite and ozone.
block.pyrolysis-generator.description = Generates large amounts of power from arkycite and slag. Produces water as a byproduct.
@@ -2338,6 +2383,7 @@ unit.emanate.description = Builds structures to defend the Acropolis core. Repai
lst.read = Read a number from a linked memory cell.
lst.write = Write a number to a linked memory cell.
lst.print = Add text to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used.
+lst.printchar = Add a UTF-16 character or content icon to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used.
lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example"
lst.draw = Add an operation to the drawing buffer.\nDoes not display anything until [accent]Draw Flush[] is used.
lst.drawflush = Flush queued [accent]Draw[] operations to a display.
@@ -2423,12 +2469,14 @@ lenum.shootp = Shoot at a unit/building with velocity prediction.
lenum.config = Building configuration, e.g. sorter item.
lenum.enabled = Whether the block is enabled.
laccess.currentammotype = Current ammo item/liquid of a turret.
+laccess.memorycapacity = Number of cells in a memory block.
laccess.color = Illuminator color.
laccess.controller = Unit controller. If processor controlled, returns processor.\nIf in a formation, returns leader.\nOtherwise, returns the unit itself.
laccess.dead = Whether a unit/building is dead or no longer valid.
laccess.controlled = Returns:\n[accent]@ctrlProcessor[] if unit controller is processor\n[accent]@ctrlPlayer[] if unit/building controller is player\n[accent]@ctrlFormation[] if unit is in formation\nOtherwise, 0.
laccess.progress = Action progress, 0 to 1.\nReturns production, turret reload or construction progress.
laccess.speed = Top speed of a unit, in tiles/sec.
+laccess.size = Size of a unit/building or the length of a string.
laccess.id = ID of a unit/block/item/liquid.\nThis is the inverse of the lookup operation.
lcategory.unknown = Unknown
lcategory.unknown.description = Uncategorized instructions.
@@ -2557,3 +2605,29 @@ lenum.autoscale = Whether to scale marker corresponding to player's zoom level.
lenum.posi = Indexed position, used for line and quad markers with index zero being the first position.
lenum.uvi = Texture's position ranging from zero to one, used for quad markers.
lenum.colori = Indexed position, used for line and quad markers with index zero being the first color.
+lenum.wavetimer = Whether the waves come automatically on a timer. If not, waves come when the play button is pressed.
+lenum.wave = Current wave number. Can be anything in non-wave modes.
+lenum.currentwavetime = Wave countdown in ticks.
+lenum.waves = Whether waves are spawnable at all.
+lenum.wavesending = Whether the waves can be manually summoned with the play button.
+lenum.attackmode = Determines if gamemode is attack mode.
+lenum.wavespacing = Time between waves in ticks.
+lenum.enemycorebuildradius = No-build zone around enemy core radius.
+lenum.dropzoneradius = Radius around enemy wave drop zones.
+lenum.unitcap = Base unit cap. Can still be increased by blocks.
+lenum.lighting = Whether ambient lighting is enabled.
+lenum.buildspeed = Multiplier for building speed.
+lenum.unithealth = How much health units start with.
+lenum.unitbuildspeed = How fast unit factories build units.
+lenum.unitcost = Multiplier of resources that units take to build.
+lenum.unitdamage = How much damage units deal.
+lenum.blockhealth = How much health blocks start with.
+lenum.blockdamage = How much damage blocks (turrets) deal.
+lenum.rtsminweight = Minimum "advantage" needed for a squad to attack. Higher -> more cautious.
+lenum.rtsminsquad = Minimum size of attack squads.
+lenum.maparea = Playable map area. Anything outside the area will not be interactable.
+lenum.ambientlight = Ambient light color. Used when lighting is enabled.
+lenum.solarmultiplier = Multiplies power output of solar panels.
+lenum.dragmultiplier = Environment drag multiplier.
+lenum.ban = Blocks or units that cannot be placed or built.
+lenum.unban = Unban a unit or block.
diff --git a/core/assets/bundles/bundle_bg.properties b/core/assets/bundles/bundle_bg.properties
index 8a8fb3e5ee..f16790e709 100644
--- a/core/assets/bundles/bundle_bg.properties
+++ b/core/assets/bundles/bundle_bg.properties
@@ -12,9 +12,9 @@ link.itch.io.description = itch.io страница. Можете да свал
link.google-play.description = Свалете за Android от Google Play
link.f-droid.description = Свалете за Android от F-Droid
link.wiki.description = Официално Mindustry ръководство
-link.suggestions.description = Предложете вашата идея
+link.suggestions.description = Предложете Вашата идея
link.bug.description = Намерихте грешка? Съобщете тук
-linkopen = This server has sent you a link. Are you sure you want to open it?\n\n[sky]{0}
+linkopen = Този сървър Ви изпрати линк. Сигурни ли сте, че искате да го отворите?\n\n[sky]{0}
linkfail = Неуспех при отваряне на връзка!\nURL адресът е копиран в клипборда ви.
screenshot = Записана екранна снимка в {0}
screenshot.invalid = Картата е твърде голяма, възможно е да не достига памет за екранната снимка.
@@ -31,11 +31,11 @@ load.map = Карти
load.image = Графики
load.content = Съдържание
load.system = Система
-load.mod = Модифицакии
+load.mod = Модификации
load.scripts = Скриптове
be.update = Налична е актуализация:
-be.update.confirm = Изтегли я и рестартирай играта?
+be.update.confirm = Изтегляне и рестарт на играта?
be.updating = Актуализиране...
be.ignore = Игнорирай
be.noupdates = Няма намерени актуализации.
@@ -45,19 +45,19 @@ mods.browser = Списък с модове
mods.browser.selected = Избран мод
mods.browser.add = Инсталирай
mods.browser.reinstall = Преинсталирай
-mods.browser.view-releases = View Releases
-mods.browser.noreleases = [scarlet]No Releases Found\n[accent]Couldn't find any releases for this mod. Check if the mod's repository has any releases published.
+mods.browser.view-releases = Вижте издания
+mods.browser.noreleases = [scarlet]Не са открити издания\n[accent]Не бяха открити издания за тази модификация. Проверете дали хранилището на модификацията има публикувани издания.
mods.browser.latest =
-mods.browser.releases = Releases
+mods.browser.releases = Издания
mods.github.open = Сайт
-mods.github.open-release = Release Page
+mods.github.open-release = Страница на изданията
mods.browser.sortdate = Сортирай по дата
mods.browser.sortstars = Сортирай по рейтинг
schematic = Схема
schematic.add = Запази Схема...
schematics = Схеми
-schematic.search = Search schematics...
+schematic.search = Търсене из схемите...
schematic.replace = Вече съществува схема с това име. Да бъде ли заместена?
schematic.exists = Вече съществува схема с това име.
schematic.import = Внасяне на Схема...
@@ -67,30 +67,30 @@ schematic.browseworkshop = Работилница
schematic.copy = Копирай в Клипборда
schematic.copy.import = Внеси от Клипборда
schematic.shareworkshop = Сподели в Работилницата
-schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Обърни Схемата
+schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Обърни схемата
schematic.saved = Схемате беше запазена.
schematic.delete.confirm = Тази схема ще бъде напълно унищожена.
-schematic.edit = Edit Schematic
+schematic.edit = Промяна на схемата
schematic.info = {0}x{1}, {2} елемента
-schematic.disabled = [scarlet]Схемите не са достъпни[]\nНе ви е позволено да използвате Схеми на тази [accent]карта[] или [accent]сървър[].
-schematic.tags = Tags:
-schematic.edittags = Edit Tags
-schematic.addtag = Add Tag
-schematic.texttag = Text Tag
-schematic.icontag = Icon Tag
-schematic.renametag = Rename Tag
-schematic.tagged = {0} tagged
-schematic.tagdelconfirm = Delete this tag completely?
-schematic.tagexists = That tag already exists.
+schematic.disabled = [scarlet]Схемите не са достъпни[]\nНе Ви е позволено да използвате Схеми на тази [accent]карта[] или [accent]сървър[].
+schematic.tags = Етикети:
+schematic.edittags = Промяна на етикетите
+schematic.addtag = Добавяне на етикет
+schematic.texttag = Текст
+schematic.icontag = Икона
+schematic.renametag = Преименуване на етикет
+schematic.tagged = {0} етикирано
+schematic.tagdelconfirm = Да се изтрие ли този етикет?
+schematic.tagexists = Този етикет вече съществува.
stats = Статистики
-stats.wave = Waves Defeated
-stats.unitsCreated = Units Created
-stats.enemiesDestroyed = Enemies Destroyed
-stats.built = Buildings Built
-stats.destroyed = Buildings Destroyed
-stats.deconstructed = Buildings Deconstructed
-stats.playtime = Time Played
+stats.wave = Надвити вълни
+stats.unitsCreated = Създадени единици
+stats.enemiesDestroyed = Унищожени врагове
+stats.built = Построени сгради
+stats.destroyed = Унищожени сгради
+stats.deconstructed = Разглобени сгради
+stats.playtime = Време в игра
globalitems = [accent]Всички Ресурси
map.delete = Сигурни ли сте че искате да изтриете карта "[accent]{0}[]"?
@@ -98,9 +98,9 @@ level.highscore = Рекорд: [accent]{0}
level.select = Избор на ниво
level.mode = Режим на игра:
coreattack = < Ядрото е нападнато! >
-nearpoint = [[ [scarlet]НАПУСНЕТЕ ОПАСНАТА ЗОНА МОМЕНТАЛНО[] ]\nпредстои унижощение
+nearpoint = [[ [scarlet]НАПУСНЕТЕ ОПАСНАТА ЗОНА МОМЕНТАЛНО[] ]\nредстои унижощение
database = Енциклопедия
-database.button = Database
+database.button = База данни
savegame = Запази Игра
loadgame = Зареди Игра
joingame = Присъедини се в Игра
@@ -108,7 +108,7 @@ customgame = Персонализирана Игра
newgame = Нова Игра
none = <няма>
none.found = [lightgray]<няма намерени>
-none.inmap = [lightgray]
+none.inmap = [lightgray]<няма в карти>
minimap = Мини-карта
position = Позиция
close = Затвори
@@ -131,13 +131,14 @@ feature.unsupported = Вашето устройство не поддържа т
mods.initfailed = [red]⚠[]Mindustry претърпя срив при последното стартиране. Това вероятно е причинено от лошо поведение на някой мод.\n\nЗа да се предотврати постоянно сриване при стартиране, [red]всички модове бяха забранени.[]\n\nЗа да забраните тази опция, изключете я от [accent]Настройки->Игра->Забрани Модовете При Стартиране След Срив[].
mods = Модове
+mods.name = Mod:
mods.none = [lightgray]Няма намерени модове!
-mods.guide = Как да създам мод?
-mods.report = Съобщи за грешка
+mods.guide = Как да създам модификация?
+mods.report = Съобщаване за грешка
mods.openfolder = Отвори Директория
mods.viewcontent = Виж Съдържание
mods.reload = Презареди
-mods.reloadexit = Играта ще се затвори, за да презареди модовете.
+mods.reloadexit = Играта ще се затвори, за да презареди модификациите.
mod.installed = [[Инсталиран]
mod.display = [gray]Мод:[orange] {0}
mod.enabled = [lightgray]Активиран
@@ -147,31 +148,30 @@ mod.disable = Деактивирай
mod.version = Version:
mod.content = Съдържание:
mod.delete.error = Неуспешно изтриване на мод. Вероятно файловете се използват.
-mod.incompatiblegame = [red]Outdated Game
-mod.incompatiblemod = [red]Incompatible
-mod.blacklisted = [red]Unsupported
-mod.unmetdependencies = [red]Unmet Dependencies
+mod.incompatiblegame = [red]Остаряла игра
+mod.incompatiblemod = [red]Несъвместимо
+mod.blacklisted = [red]Не се поддържа
+mod.unmetdependencies = [red]Зависимостите не са покрити
mod.erroredcontent = [scarlet]Грешки в Съдържанието
-mod.circulardependencies = [red]Circular Dependencies
-mod.incompletedependencies = [red]Incomplete Dependencies
-mod.requiresversion.details = Requires game version: [accent]{0}[]\nYour game is outdated. This mod requires a newer version of the game (possibly a beta/alpha release) to function.
-mod.outdatedv7.details = This mod is incompatible with the latest version of the game. The author must update it, and add [accent]minGameVersion: 136[] to its [accent]mod.json[] file.
-mod.blacklisted.details = This mod has been manually blacklisted for causing crashes or other issues with this version of the game. Do not use it.
-mod.missingdependencies.details = This mod is missing dependencies: {0}
-mod.erroredcontent.details = This game caused errors when loading. Ask the mod author to fix them.
-mod.circulardependencies.details = This mod has dependencies that depends on each other.
-mod.incompletedependencies.details = This mod is unable to be loaded due to invalid or missing dependencies: {0}.
-mod.requiresversion = Requires game version: [red]{0}
+mod.circulardependencies = [red]Кръгобратни зависимости
+mod.incompletedependencies = [red]Незавършени зависимостиIncomplete Dependencies
+mod.requiresversion.details = Необходима е версия на играта: [accent]{0}[]\nВашата игра е остаряла. Тази модификация изисква по-нова версия на играта (вероятно бета/алфа издание), за да функционира.
+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 = Тази модификация е била поставена в черен списък, защото причинява сривове и други проблеми с тази версия на играта. Не я използвайте.
+mod.missingdependencies.details = Липсват следните зависимости за този мод: {0}
+mod.erroredcontent.details = Тази игра създаде грешки по време на зареждане. Помолете авторът да ги оправи.
+mod.circulardependencies.details = Тази модификация има зависимости, които зависят една от друга.
+mod.incompletedependencies.details = Тази модификация не може да зареди поради невалидни или липсващи зависимости: {0}.
+mod.requiresversion = Нужна е версия на играта: [red]{0}
mod.errors = Възникнаха грешки при зареждане на съдържанието.
mod.noerrorplay = [scarlet]Има грешки в някои от модовете, които използвате.[] Трябва да деактивирате тези модове или да поправите грешките преди да играете.
-mod.nowdisabled = [scarlet]Липсват зависимости за мод '{0}':[accent] {1}\n[lightgray]Мод {0} ще бъде деактивиран докато не ги изтеглите.
mod.enable = Активирай
mod.requiresrestart = Играта ще се затвори за да приложи промените в модовете.
mod.reloadrequired = [scarlet]Необходимо е рестартиране
mod.import = Вмъкни мод
mod.import.file = Вмъкни от файл
mod.import.github = Вмъкни от GitHub
-mod.jarwarn = [scarlet]JAR модовете могат да са опасни.[]\n Уверете се, че този мод e от надежден източник!
+mod.jarwarn = [scarlet]JAR модовете могат да бъдат опасни.[]\n Уверете се, че този мод e от надежден източник!
mod.item.remove = Този предмет е част от [accent] '{0}'[] мод. За да го премахнете, премахнете или забранете този мод.
mod.remove.confirm = Този мод ще бъде премахнат.
mod.author = [lightgray]Автор:[] {0}
@@ -179,27 +179,37 @@ mod.missing = Този запис съдържа модове, които са
mod.preview.missing = За да публикувате този мод в Работилницата, той трябва да съдържа изображение за визуализация.\n Поставете файл с името [accent]preview.png[] в директорията на мода и опитайте отново.
mod.folder.missing = В Работилницата могат да се публикуват само модове под формата на директории.\nЗа да превърнете мод в директория само трябва да го разархивирате в директория и да изтриите архива. След това рестартирайте играта, за да презареди вашите модове.
mod.scripts.disable = Вашето устройство не поддържа модове със скриптове. Трябва да забраните тези модове за да играете.
+mod.dependencies.error = [scarlet]Mods are missing dependencies
+mod.dependencies.soft = (optional)
+mod.dependencies.download = Import
+mod.dependencies.downloadreq = Import Required
+mod.dependencies.downloadall = Import All
+mod.dependencies.status = Import Results
+mod.dependencies.success = Successfully downloaded:
+mod.dependencies.failure = Failed to download:
+mod.dependencies.imported = This mod requires dependencies. Download?
about.button = За играта
name = Име:
noname = Трябва да изберете [accent] име на играча[].
-search = Search:
+search = Търсене:
planetmap = Глобус
launchcore = Изстреляй Ядрото
filename = Име на файл:
-unlocked = Отйлючихте нови неща!
+unlocked = Отключихте нови неща!
available = Можете да проучите нови технологии!
-unlock.incampaign = < Unlock in campaign for details >
-campaign.select = Select Starting Campaign
-campaign.none = [lightgray]Select a planet to start on.\nThis can be switched at any time.
-campaign.erekir = Newer, more polished content. Mostly linear campaign progression.\n\nHigher quality maps and overall experience.
-campaign.serpulo = Older content; the classic experience. More open-ended.\n\nPotentially unbalanced maps and campaign mechanics. Less polished.
+unlock.incampaign = < Отключете в кампанията за подробности >
+campaign.select = Изберете начална кампания
+campaign.none = [lightgray]Изберете на коя планета да започнете.\nМоже да промените решението си по всяко време.
+campaign.erekir = По-ново полирано съдържание. Напредъкът в кампанията е линеен.\n\nКартите са с по-високо качество за по-добро изживяване.
+campaign.serpulo = По-старо съдържание; класическото преживяване. По-отворена игра.\n\nВъзможно е картите и механиките на кампанията да са небалансирани и с по-ниско качество.
campaign.difficulty = Difficulty
+
completed = [accent]Завършено
-techtree = Tech Tree
-techtree.select = Tech Tree Selection
-techtree.serpulo = Serpulo
-techtree.erekir = Erekir
+techtree = Технологичен план
+techtree.select = Избиране на технологичен план
+techtree.serpulo = Серпуло
+techtree.erekir = Ерекир
research.load = Зареди
research.discard = Захвърли
research.list = [lightgray]Проучване:
@@ -211,17 +221,17 @@ players.single = {0} играч
players.search = търси
players.notfound = [gray]няма намерени играчи
server.closing = [accent]Спиране на сървър...
-server.kicked.kick = Вие бяхте изгонен от сървъра!
+server.kicked.kick = Вие бяхте изгонени от сървъра!
server.kicked.whitelist = Нямате позволение да влезете в този сървър.
server.kicked.serverClose = Сървърът беше спрян.
-server.kicked.vote = Ти беше изгонен чрез гласуване. До скоро.
+server.kicked.vote = Бяхте изгонени чрез гласуване. До скоро.
server.kicked.clientOutdated = Остарял клиент!\nАктуализирайте играта си!
server.kicked.serverOutdated = Остарял сървър!\nПоискайте от собственика да го актуализира!
server.kicked.banned = Вие сте баннат в този сървър.
server.kicked.typeMismatch = Този сървър не е съвместим с вашата компилация.
server.kicked.playerLimit = Сървърът е пълен.\nИзчакайте някой да излезе.
-server.kicked.recentKick = Вие сте били изхвърлен наскоро.\nОпитайте отново по - късно.
-server.kicked.nameInUse = Вече има играч с\nтова име в сървъра.
+server.kicked.recentKick = Вие сте били изхвърлени наскоро.\nОпитайте отново по-късно.
+server.kicked.nameInUse = Вече има играч с\nтакова име в сървъра.
server.kicked.nameEmpty = Избрали сте невалидно име.
server.kicked.idInUse = Вие вече сте в този сървър! Не е позволено да влизате многократно.
server.kicked.customClient = Този сървър не поддържа неофициални компилации. Моля изтеглете официална версия.
@@ -232,7 +242,7 @@ host.info = Бутонът [accent]Отвори за лоцалната мреж
join.info = Тук можете да въведете [accent]IP адрес на сървър[] за да се свържете или да се присъедините към автоматично намерен сървър във вашата [accent]локална мрежа[] или [accent]публичен[] сървър.\nПоддържат се LAN и WAN мрежови игри.\n\n[lightgray]Ако искате да се свържете по IP ще трябва първо да поискате IP на собственика на сървъра, което той може да намери като напише "my ip" в Google от своята мрежа.
hostserver = Стартирай Мрежова Игра
invitefriends = Покани Приятели
-hostserver.mobile = Host Game
+hostserver.mobile = Организиране на игра
host = Отвори за Локалната Мрежа
hosting = [accent]Отваряне на сървър...
hosts.refresh = Обнови
@@ -240,10 +250,10 @@ hosts.discovering = Търсене на LAN сървъри
hosts.discovering.any = Тръсене на сървъри
server.refreshing = Обновяване на сървър
hosts.none = [lightgray]Няма намерени локални сървъри!
-host.invalid = [scarlet]Не може да се установи връска със сървъра.
+host.invalid = [scarlet]Не може да се установи връзка със сървъра.
servers.local = Локални Сървъри
-servers.local.steam = Open Games & Local Servers
+servers.local.steam = Отворени игри и локални сървъри
servers.remote = Отдалечени Сървъри
servers.global = Публични Сървъри
@@ -251,25 +261,25 @@ servers.disclaimer = Публичните сървъри [accent]не[] са п
servers.showhidden = Покажи Скритите Сървъри
server.shown = Показан
server.hidden = Скрит
-viewplayer = Viewing Player: [accent]{0}
+viewplayer = Гледате играч: [accent]{0}
trace = Проследи Играч
trace.playername = Име на играча: [accent]{0}
trace.ip = IP: [accent]{0}
trace.id = ID: [accent]{0}
-trace.language = Language: [accent]{0}
+trace.language = Език: [accent]{0}
trace.mobile = Мобилен Клиент: [accent]{0}
trace.modclient = Модифициран Клиент: [accent]{0}
trace.times.joined = Пъти участвал в игра: [accent]{0}
trace.times.kicked = Пъти изхвърлен от игра: [accent]{0}
trace.ips = IPs:
-trace.names = Names:
+trace.names = Имена:
invalidid = Невалидно ID на клиент. Съобщете за грешка.
-player.ban = Ban
-player.kick = Kick
-player.trace = Trace
-player.admin = Toggle Admin
-player.team = Change Team
+player.ban = Банване
+player.kick = Изгонване
+player.trace = Проследяване
+player.admin = Превключване на админ
+player.team = Промяна на отбора
server.bans = Банове
server.bans.none = Няма намерени баннати играчи!
server.admins = Администратори
@@ -286,15 +296,16 @@ confirmkick = Сигурни ли сте, че искате да изгонит
confirmunban = Сигурни ли сте че, искате да анулирате банването на този играч?
confirmadmin = Сигурни ли сте че, искате да направите "{0}[white]" администратор?
confirmunadmin = Сигурни ли сте че, искате да премахнете администраторските права на "{0}[white]"?
-votekick.reason = Vote-Kick Reason
-votekick.reason.message = Are you sure you want to vote-kick "{0}[white]"?\nIf yes, please enter the reason:
+votekick.reason = Причина за изгонване
+votekick.reason.message = Сигурни ли сте, че искате да гласуване за изгонване "{0}[white]"?\nАко отговорът е да, посочете причината:
joingame.title = Присъединяване в игра
joingame.ip = IP адрес:
disconnect = Връзката беше прекъсната.
-disconnect.error = Проблем със връзката.
+disconnect.error = Проблем с връзката.
disconnect.closed = Връзката приключи.
disconnect.timeout = Загубена връзка.
disconnect.data = Грешка при зареждане на информация за света!
+disconnect.snapshottimeout = Timed out while receiving UDP snapshots.\nThis may be caused by an unstable network or connection.
cantconnect = Неуспех при свързване към игра ([accent]{0}[]).
connecting = [accent]Свързване...
reconnecting = [accent]Повторно свързване...
@@ -304,8 +315,8 @@ server.invalidport = Невалиден порт!
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 = [scarlet]Грешка при стартиране на сървър.
save.new = Нов Запис
-save.overwrite = Сигурни ли сте, че искате\nда презапишете тази позиция за запиз?
-save.nocampaign = Individual save files from the campaign cannot be imported.
+save.overwrite = Сигурни ли сте, че искате\nда презапишете тази позиция за запис?
+save.nocampaign = Не може да импортирате индивидуални записи от кампанията.
overwrite = Презапиши
save.none = Не са намерени записи!
savefail = Грешка при записване на игра!
@@ -319,14 +330,14 @@ save.import = Внеси Запис
save.newslot = Име на запис:
save.rename = Преименувай
save.rename.text = Ново име:
-selectslot = Избери запис.
+selectslot = Избери запис
slot = [accent]Позиция {0}
editmessage = Редактирай Съобщение
save.corrupted = Невалиден или увреден запис!
empty = <празно>
on = Включено
off = Изключено
-save.search = Search saved games...
+save.search = Търсене на записани игри...
save.autosave = Автоматично записване: {0}
save.map = Карта: {0}
save.wave = Вълна {0}
@@ -342,14 +353,14 @@ ok = OK
open = Отвори
customize = Персонализирай правилата
cancel = Отказ
-command = Command
+command = Команда
command.queue = [lightgray][Queuing]
-command.mine = Mine
-command.repair = Repair
-command.rebuild = Rebuild
-command.assist = Assist Player
-command.move = Move
-command.boost = Boost
+command.mine = Изкопаване
+command.repair = Ремонт
+command.rebuild = Възстановяване
+command.assist = Помогни на играч
+command.move = Движение
+command.boost = Ускоряване
command.enterPayload = Enter Payload Block
command.loadUnits = Load Units
command.loadBlocks = Load Blocks
@@ -365,7 +376,7 @@ openlink = Отвори Линк
copylink = Копирай Линк
back = Назад
max = Максимално
-objective = Map Objective
+objective = Цел на картата
crash.export = Изнеси информация за срив
crash.none = Няма намерена информация за срив.
crash.exported = Инесена информация за срив.
@@ -374,20 +385,20 @@ data.import = Внеси данните на играта
data.openfolder = Отвори директория с данни
data.exported = Данните на играта беше изнесена.
data.invalid = Това не е валиден файл с данни.
-data.import.confirm = Внасянето на външен файл с данни ще унищожи [scarlet]всички[] ваши данни.\n[accent]Това няма да може да се възстанови![]\n\nСлед като информацията се внесе играта ще се затвори.
+data.import.confirm = Внасянето на външен файл с данни ще унищожи [scarlet]всички[] Ваши данни.\n[accent]Това няма да може да се възстанови![]\n\nСлед като информацията се внесе, играта ще се затвори.
quit.confirm = Сигурни ли сте, че искате да излезете?
loading = [accent]Зареждане...
-downloading = [accent]Downloading...
+downloading = [accent]Изтегляне...
saving = [accent]Записване...
-respawn = [accent][[{0}][] за да се Върнете при Ядрото
-cancelbuilding = [accent][[{0}][] за да Изчистите Скицата
-selectschematic = [accent][[{0}][] за да Озберете+Копирате
-pausebuilding = [accent][[{0}][] за да Отложите на Строежа
-resumebuilding = [scarlet][[{0}][] за да Продължите Строежа
-enablebuilding = [scarlet][[{0}][] за да Позволите Строенето
+respawn = [accent][[{0}][] за да се върнете при Ядрото
+cancelbuilding = [accent][[{0}][] за да изчистите скицата
+selectschematic = [accent][[{0}][] за да изберете+копирате
+pausebuilding = [accent][[{0}][] за да отложите строежа
+resumebuilding = [scarlet][[{0}][] за да продължите строежа
+enablebuilding = [scarlet][[{0}][] за да позволите построяването
showui = Интерфейсът е скрит.\nНатиснете [accent][[{0}][] за да го покажете.
-commandmode.name = [accent]Command Mode
-commandmode.nounits = [no units]
+commandmode.name = [accent]Команден режим
+commandmode.nounits = [няма единици]
wave = [accent]Вълна {0}
wave.cap = [accent]Вълна {0}/{1}
wave.waiting = [lightgray]Вълна след {0}
@@ -397,7 +408,7 @@ waiting.players = Изчакване на играчи...
wave.enemies = [lightgray]{0} Оставащи врагове
wave.enemycores = [accent]{0}[lightgray] Вражески Ядра
wave.enemycore = [accent]{0}[lightgray] Вражеско Ядро
-wave.enemy = [lightgray]{0} Оставащи Врагове
+wave.enemy = [lightgray]{0} Оставащи врагове
wave.guardianwarn = Пазителят пристига след [accent]{0}[] вълни.
wave.guardianwarn.one = Пазителят пристига след [accent]{0}[] вълна.
loadimage = Зареди Изображение
@@ -405,29 +416,29 @@ saveimage = Запази Изображение
unknown = Неизвестно
custom = Персонализирано
builtin = Вградено
-map.delete.confirm = Сигурни ли сте, че искате да изтриете тази карта? Това действие няма да може да бъде отменено!
+map.delete.confirm = Сигурни ли сте, че искате да изтриете тази карта? Това действие не може да бъде отменено!
map.random = [accent]Случайна Карта
map.nospawn = Тази карта няма позиция за ядро на играча! Добавете поне едно {0} ядро от редактора на карти.
-map.nospawn.pvp = Тази карта няма достатъчно позиции за ядра на други играчи! Добавете поне едно [scarlet]неоранжево[] ядро от редактора на карти.
+map.nospawn.pvp = Тази карта няма достатъчно позиции за ядра на други играчи! Добавете поне едно [scarlet]не-оранжево[] ядро от редактора на карти.
map.nospawn.attack = Тази карта няма нито едно вражеско ядро! Добавете поне едно {0} ядро от редактора на карти.
map.invalid = Грешка при зареждане на карта: увреден или невалиден файл.
workshop.update = Обновяване на елемент
workshop.error = Грешка при изтегляне на данни от Работилницата: {0}
-map.publish.confirm = Сигурни ли сте, че искате да публикувате тази карта?\n\n[lightgray]Уверете се че сте приели EULA(Условия за използване) на Работилницата, иначе вашата карта няма да се покаже там!
+map.publish.confirm = Сигурни ли сте, че искате да публикувате тази карта?\n\n[lightgray]Уверете се че сте приели EULA (Условия за използване) на Работилницата, иначе Вашата карта няма да се покаже там!
workshop.menu = Изберете какво искате да сторите с този елемент.
workshop.info = Информация за елемент
changelog = История на промените (по избор):
-updatedesc = Overwrite Title & Description
+updatedesc = Презаписване на заглавието и описанието
eula = Steam EULA (Условия за използване на Steam)
missing = Този елемент е бил изтрит или преместен.\n[lightgray]Препратката към Работилницата беше автоматично изтрита.
publishing = [accent]Публикуване...
-publish.confirm = Сигурни ли сте, че искате да публикувате това?\n\n[lightgray]Уверете се че сте приели EULA(Условия за използване) на Работилницата, иначе вашият елемент няма да се показва там!
+publish.confirm = Сигурни ли сте, че искате да публикувате това?\n\n[lightgray]Уверете се че сте приели EULA (Условия за използване) на Работилницата, иначе Вашият елемент няма да се показва там!
publish.error = Грешка при публикуване на елемент: {0}
steam.error = Грешка при зареждане на Steam услуги.\nГрешка: {0}
-editor.planet = Planet:
-editor.sector = Sector:
-editor.seed = Seed:
-editor.cliffs = Walls To Cliffs
+editor.planet = Планета:
+editor.sector = Сектор:
+editor.seed = Семе:
+editor.cliffs = Стени към скали
editor.brush = Четка
editor.openin = Отвори в редактора
@@ -436,63 +447,65 @@ editor.oregen.info = Генериране на руди:
editor.mapinfo = Информация за картата
editor.author = Автор:
editor.description = Описание:
-editor.nodescription = Картата трябва да има описание от поне 4 символа преди да е публикувана.
+editor.nodescription = Картата трябва да има описание от поне 4 символа преди да бъде публикувана.
editor.waves = Вълни:
editor.rules = Правила:
editor.generation = Генериране:
-editor.objectives = Objectives
+editor.objectives = Задачи
editor.locales = Locale Bundles
editor.worldprocessors = World Processors
editor.worldprocessors.editname = Edit Name
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
editor.worldprocessors.nospace = No free space to place a world processor!\nDid you fill the map with structures? Why would you do this?
editor.worldprocessors.delete.confirm = Are you sure you want to delete this world processor?\n\nIf it is surrounded by walls, it will be replaced by an environmental wall.
+
editor.ingame = Редактирай в игра
-editor.playtest = Playtest
+editor.playtest = Тестване
editor.publish.workshop = Публикувай в Работилницата
editor.newmap = Нова Карта
editor.center = Център
-editor.search = Search maps...
-editor.filters = Filter Maps
-editor.filters.mode = Gamemodes:
-editor.filters.type = Map Type:
-editor.filters.search = Search In:
-editor.filters.author = Author
-editor.filters.description = Description
+editor.search = Търсене на карти...
+editor.filters = Фелтриране на карти
+editor.filters.mode = Режими на игра:
+editor.filters.type = Тип карта:
+editor.filters.search = Търсене в:
+editor.filters.author = Автор
+editor.filters.description = Описание
editor.shiftx = Shift X
editor.shifty = Shift Y
workshop = Работилница
waves.title = Вълни от нападатели
+waves.team = Team
waves.remove = Премахни
waves.every = повтаряй през
waves.waves = вълна(и)
-waves.health = health: {0}%
+waves.health = здраве: {0}%
waves.perspawn = на вълна
waves.shields = броня на вълна
waves.to = до
-waves.spawn = spawn:
+waves.spawn = пускане:
waves.spawn.all =
-waves.spawn.select = Spawn Select
-waves.spawn.none = [scarlet]no spawns found in map
-waves.max = max units
+waves.spawn.select = Пускане на единици
+waves.spawn.none = [scarlet]няма открити единици на картата
+waves.max = макс. единици
waves.guardian = Пазител
waves.preview = Преглед
waves.edit = Редактирай...
-waves.random = Random
+waves.random = Случаен брой
waves.copy = Кобирай в Клипборд
waves.load = Зареди от Клипборда
waves.invalid = Клипборда съдържа невалидна информация за вълни.
waves.copied = Вълните бяха копирани.
waves.none = Няма дефинирани врагове.\nАко оставите описанието на вълните празно играта ще използва стандартния шаблон.
-waves.sort = Sort By
-waves.sort.reverse = Reverse Sort
-waves.sort.begin = Begin
-waves.sort.health = Health
-waves.sort.type = Type
-waves.search = Search waves...
-waves.filter = Unit Filter
-waves.units.hide = Hide All
-waves.units.show = Show All
+waves.sort = Сортиране чрез
+waves.sort.reverse = Обратно сортиране
+waves.sort.begin = Начало
+waves.sort.health = Здраве
+waves.sort.type = Вид
+waves.search = Търсене на вълни...
+waves.filter = Филтър за единици
+waves.units.hide = Скриване на всички
+waves.units.show = Показване на всички
#these are intentionally in lower case / тези умишлено са оставени без главни букви
wavemode.counts = бройки
@@ -503,16 +516,17 @@ all = All
editor.default = [lightgray]<Стандартно>
details = Детайли...
edit = Редактирай...
-variables = Vars
+variables = Променливи
logic.clear.confirm = Are you sure you want to clear all code from this processor?
logic.globals = Built-in Variables
+
editor.name = Име:
-editor.spawn = Създай Единица
-editor.removeunit = Премахни Единица
+editor.spawn = Създай единица
+editor.removeunit = Премахни единица
editor.teams = Отбори
editor.errorload = Грешка при зареждане на файл.
editor.errorsave = Грешка при записване на файл.
-editor.errorimage = Това е изображение, не карта.
+editor.errorimage = Това е изображение, а не карта.
editor.errorlegacy = Тази карта е твърде стара, играта вече не поддържа този формат.
editor.errornot = Този файл не е карта.
editor.errorheader = Този файл с карта е повреден или невалиден.
@@ -520,12 +534,12 @@ editor.errorname = Картата няма зададено име. Да не с
editor.errorlocales = Error reading invalid locale bundles.
editor.update = Обнови
editor.randomize = Случайно
-editor.moveup = Move Up
-editor.movedown = Move Down
-editor.copy = Copy
+editor.moveup = Придвижи нагоре
+editor.movedown = Придвижи надолу
+editor.copy = Копирай
editor.apply = Приложи
editor.generate = Генерирай
-editor.sectorgenerate = Sector Generate
+editor.sectorgenerate = Генериране на сектор
editor.resize = Смени размера
editor.loadmap = Зареди Карта
editor.savemap = Запиши Карта
@@ -540,7 +554,7 @@ editor.importmap.description = Работи върху копие на карт
editor.importfile = Внеси файл
editor.importfile.description = Използвай карта от файл
editor.importimage = Внасяне от изображение
-editor.importimage.description = Внеси отфайл с изображение на терена
+editor.importimage.description = Внеси от файл с изображение на терена
editor.export = Изнеси...
editor.exportfile = Изнеси Файл
editor.exportfile.description = Изнеси като файл с карта
@@ -552,8 +566,8 @@ editor.unsaved = Сигурни ли сте, че искате да излезе
editor.resizemap = Преоразмери картата
editor.mapname = Име на картата:
editor.overwrite = [accent]ВНИМАНИЕ!\nТази карта презаписва друга карта.
-editor.overwrite.confirm = [scarlet]ВНИМАНИЕ![] Вече съществува карта с това име. Ако продължите ще запишете тази на нейно място. Желаете ли да продължите?\n"[accent]{0}[]"
-editor.exists = В ече съществува карта с това име.
+editor.overwrite.confirm = [scarlet]ВНИМАНИЕ![] Вече съществува карта с това име. Ако продължите, ще запишете тази на нейно място. Желаете ли да продължите?\n"[accent]{0}[]"
+editor.exists = Вече съществува карта с това име.
editor.selectmap = Изберете карта, която да заредите:
toolmode.replace = Заместване
@@ -568,14 +582,14 @@ toolmode.eraseores = Изтриване на руди
toolmode.eraseores.description = Изтрива само руди.
toolmode.fillteams = Запълване в отбори
toolmode.fillteams.description = Променя отбора, не типа на обектите, чрез запълване
-toolmode.fillerase = Fill Erase
-toolmode.fillerase.description = Erase blocks of the same type.
+toolmode.fillerase = Изпълващо изтриване
+toolmode.fillerase.description = Изтрива блокчета от същият вид.
toolmode.drawteams = Рисуване в отбори
-toolmode.drawteams.description = Променя отбора, не типа на обектите, чрез рисуване
-toolmode.underliquid = Under Liquids
-toolmode.underliquid.description = Draw floors under liquid tiles.
+toolmode.drawteams.description = Променя отбора, не типа на обектите, чрез рисуване.
+toolmode.underliquid = Под течности
+toolmode.underliquid.description = Рисува повърхности под течни полета.
-filters.empty = [lightgray]Няма избран филтър! Изберете чрез бутона отдоло.
+filters.empty = [lightgray]Няма избран филтър! Изберете чрез бутона отдолу.
filter.distort = Изкривяване
filter.noise = Шум
filter.enemyspawn = Избор на вражеска начална точка
@@ -601,20 +615,20 @@ filter.option.circle-scale = Кръгово мащабиране
filter.option.octaves = Октави
filter.option.falloff = Разпадане
filter.option.angle = Ъгъл
-filter.option.tilt = Tilt
-filter.option.rotate = Rotate
+filter.option.tilt = Наклон
+filter.option.rotate = Завърти
filter.option.amount = Количество
filter.option.block = Блок
filter.option.floor = Под
filter.option.flooronto = Целеви под
filter.option.target = Цел
-filter.option.replacement = Replacement
+filter.option.replacement = Заместване
filter.option.wall = Стена
filter.option.ore = Руда
filter.option.floor2 = Втори под
filter.option.threshold2 = Втори праг
filter.option.radius = Радиус
-filter.option.percentile = Перцентил
+filter.option.percentile = Процент
filter.option.code = Code
filter.option.loop = Loop
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
@@ -638,7 +652,7 @@ locales.addicon = Add Icon
width = Дължина:
height = Височина:
menu = Меню
-play = Играй
+play = Игра
campaign = Кампания
load = Зареди
save = Запиши
@@ -647,88 +661,92 @@ ping = Ping: {0}ms
tps = TPS: {0}
memory = Mem: {0}mb
memory2 = Mem:\n {0}mb +\n {1}mb
-language.restart = Рестартирайте вашата игра за да зареди настройките за език.
+language.restart = Рестартирайте играта, за да промените езика.
settings = Настройки
tutorial = Обучение
-tutorial.retake = Повтори Обучението
+tutorial.retake = Повтори обучението
editor = Редактор
-mapeditor = Редактор на Карта
+mapeditor = Редактор на карти
abandon = Изоставяне
abandon.text = Тази зона и всичките ѝ ресурси ще бъдат оставени на врага.
locked = Заключено
complete = [lightgray]Завършено:
requirement.wave = Стигнете вълна {0} в {1}
-requirement.core = Унищожете враженското ядро в {0}
+requirement.core = Унищожете вражеското ядро в {0}
requirement.research = Проучете {0}
requirement.produce = Произведете {0}
requirement.capture = Превземете {0}
-requirement.onplanet = Control Sector On {0}
-requirement.onsector = Land On Sector: {0}
+requirement.onplanet = Контролирайте сектор на {0}
+requirement.onsector = Кацнете върху сектор: {0}
launch.text = Изстреляй
-map.multiplayer = Само хостващият играч може да преглежда секторите.
+map.multiplayer = Само домакинът може да преглежда секторите.
uncover = Разкрий
configure = Избор на екипировка
-objective.research.name = Research
-objective.produce.name = Obtain
-objective.item.name = Obtain Item
-objective.coreitem.name = Core Item
-objective.buildcount.name = Build Count
-objective.unitcount.name = Unit Count
-objective.destroyunits.name = Destroy Units
-objective.timer.name = Timer
-objective.destroyblock.name = Destroy Block
-objective.destroyblocks.name = Destroy Blocks
-objective.destroycore.name = Destroy Core
-objective.commandmode.name = Command Mode
-objective.flag.name = Flag
-marker.shapetext.name = Shape Text
+objective.research.name = Проучване
+objective.produce.name = Събиране
+objective.item.name = Намиране на предмет
+objective.coreitem.name = Ключов предмет
+objective.buildcount.name = Брой строежи
+objective.unitcount.name = Брой единици
+objective.destroyunits.name = Унищожете единици
+objective.timer.name = Таймер
+objective.destroyblock.name = Унищожете блок
+objective.destroyblocks.name = Унищожете блокове
+objective.destroycore.name = Унищожете ядро
+objective.commandmode.name = Команден режим
+objective.flag.name = Поставете флаг
+marker.shapetext.name = Оформяне на текст
marker.point.name = Point
-marker.shape.name = Shape
-marker.text.name = Text
-marker.line.name = Line
-marker.quad.name = Quad
-marker.texture.name = Texture
-marker.background = Background
-marker.outline = Outline
-objective.research = [accent]Research:\n[]{0}[lightgray]{1}
-objective.produce = [accent]Obtain:\n[]{0}[lightgray]{1}
-objective.destroyblock = [accent]Destroy:\n[]{0}[lightgray]{1}
-objective.destroyblocks = [accent]Destroy: [lightgray]{0}[white]/{1}\n{2}[lightgray]{3}
-objective.item = [accent]Obtain: [][lightgray]{0}[]/{1}\n{2}[lightgray]{3}
-objective.coreitem = [accent]Move into Core:\n[][lightgray]{0}[]/{1}\n{2}[lightgray]{3}
-objective.build = [accent]Build: [][lightgray]{0}[]x\n{1}[lightgray]{2}
-objective.buildunit = [accent]Build Unit: [][lightgray]{0}[]x\n{1}[lightgray]{2}
-objective.destroyunits = [accent]Destroy: [][lightgray]{0}[]x Units
-objective.enemiesapproaching = [accent]Enemies approaching in [lightgray]{0}[]
-objective.enemyescelating = [accent]Enemy production escalating in [lightgray]{0}[]
-objective.enemyairunits = [accent]Enemy air unit production beginning in [lightgray]{0}[]
-objective.destroycore = [accent]Destroy Enemy Core
-objective.command = [accent]Command Units
-objective.nuclearlaunch = [accent]⚠ Nuclear launch detected: [lightgray]{0}
-announce.nuclearstrike = [red]⚠ NUCLEAR STRIKE INBOUND ⚠
+marker.shape.name = Форма
+marker.text.name = Текст
+marker.line.name = Линия
+marker.quad.name = Квадрат
+marker.texture.name = Текстура
+marker.background = Фон
+marker.outline = Рамка
+objective.research = [accent]Проучете:\n[]{0}[lightgray]{1}
+objective.produce = [accent]Добийте:\n[]{0}[lightgray]{1}
+objective.destroyblock = [accent]Унищожете:\n[]{0}[lightgray]{1}
+objective.destroyblocks = [accent]Унищожете: [lightgray]{0}[white]/{1}\n{2}[lightgray]{3}
+objective.item = [accent]Придобийте: [][lightgray]{0}[]/{1}\n{2}[lightgray]{3}
+objective.coreitem = [accent]Пренесете в ядро:\n[][lightgray]{0}[]/{1}\n{2}[lightgray]{3}
+objective.build = [accent]Построете: [][lightgray]{0}[]x\n{1}[lightgray]{2}
+objective.buildunit = [accent]Постройте единица: [][lightgray]{0}[]x\n{1}[lightgray]{2}
+objective.destroyunits = [accent]Унищожете: [][lightgray]{0}[]x Units
+objective.enemiesapproaching = [accent]Враговете наближават след [lightgray]{0}[]
+objective.enemyescelating = [accent]Вражеската продукция се увеличава след [lightgray]{0}[]
+objective.enemyairunits = [accent]Вражеското производство на въздушни сили започва след [lightgray]{0}[]
+objective.destroycore = [accent]Унищожете вражеско ядро
+objective.command = [accent]Командвайте единици
+objective.nuclearlaunch = [accent]⚠ Засечен е ядрен изстрел: [lightgray]{0}
+announce.nuclearstrike = [red]⚠ ЯДРЕН УДАР НАБЛИЖАВА ⚠
loadout = Екипировка
resources = Ресурси
-resources.max = Max
+resources.max = Макс.
bannedblocks = Забранени блокове
-objectives = Objectives
-bannedunits = Banned Units
-bannedunits.whitelist = Banned Units As Whitelist
-bannedblocks.whitelist = Banned Blocks As Whitelist
-addall = Добави Всички
+unbannedblocks = Unbanned Blocks
+objectives = Задачи
+bannedunits = Забранени единици
+unbannedunits = Unbanned Units
+bannedunits.whitelist = Забранени единици в бял списък
+bannedblocks.whitelist = Забранени блокчета в бял списък
+addall = Добави всички
launch.from = Изстреляй от: [accent]{0}
-launch.capacity = Launching Item Capacity: [accent]{0}
+launch.capacity = Капацитет на преносими предмети: [accent]{0}
launch.destination = Цел: {0}
+landing.sources = Source Sectors: [accent]{0}[]
+landing.import = Max Total Import: {0}[accent]{1}[lightgray]/min
configure.invalid = Количеството трябва да е между 0 и {0}.
add = Добави...
-guardian = Guardian
+guardian = Пазител
connectfail = [scarlet]Грешка при свързване:\n\n[accent]{0}
error.unreachable = Сървърът е недостъпен.\nТова ли е правилният адрес?
error.invalidaddress = Невалиден адрес.
-error.timedout = Времето за изчакване изтече!\nУверете се че адресът е правилен и собственикът е пренасочил правилно порта на играта!
-error.mismatch = Грешка в пакетите:\nвероятно е разминаване на версиите на клиента и сървъра.\nУверете се че клиентът и сървърът използват последната версия на Mindustry!
+error.timedout = Времето за изчакване изтече!\nУверете се, че адресът е правилен и, че собственикът е пренасочил правилно порта на играта!
+error.mismatch = Грешка в пакетите:\nВероятно е разминаване на версиите между клиента и сървъра.\nУверете се, че те използват последната версия на Mindustry!
error.alreadyconnected = Вече сте свързани.
error.mapnotfound = Не е намерен файл с карта!
error.io = Мрежова I/O грешка.
@@ -737,20 +755,20 @@ error.bloom = Неуспешно инициализиране на Сияния.
error.moddex = Mindustry is unable to load this mod.\nYour device is blocking import of Java mods due to recent changes in Android.\nThere is no known workaround to this issue.
weather.rain.name = Дъжд
-weather.snowing.name = Сняг
+weather.snowing.name = Snow
weather.sandstorm.name = Пясъчна буря
weather.sporestorm.name = Спорова буря
weather.fog.name = Мъгла
-campaign.playtime = \uf129 [lightgray]Sector Playtime: {0}
-campaign.complete = [accent]Congratulations.\n\nThe enemy on {0} has been defeated.\n[lightgray]The final sector has been conquered.
-sectorlist = Sectors
-sectorlist.attacked = {0} under attack
+campaign.playtime = \uf129 [lightgray]Време в този сектор: {0}
+campaign.complete = [accent]Поздравления.\n\nВрагът на {0} е надвит.\n[lightgray]Последният сектор е завладян.
+sectorlist = Сектори
+sectorlist.attacked = {0} е в опасност
sectors.unexplored = [lightgray]Неизследвано
sectors.resources = Ресурси:
sectors.production = Производство:
sectors.export = Изнеси:
-sectors.import = Import:
+sectors.import = Внеси:
sectors.time = Време:
sectors.threat = Заплаха:
sectors.wave = Вълна:
@@ -758,27 +776,29 @@ sectors.stored = Съхранени:
sectors.resume = Продължи
sectors.launch = Изстреляй
sectors.select = Избери
+sectors.launchselect = Select Launch Destination
sectors.nonelaunch = [lightgray]няма (Слънцето)
+sectors.redirect = Redirect Launch Pads
sectors.rename = Преименувай Зоната
sectors.enemybase = [scarlet]Вражеска база
sectors.vulnerable = [scarlet]Уязвима
sectors.underattack = [scarlet]Под атака! [accent]{0}% повредена
-sectors.underattack.nodamage = [scarlet]Uncaptured
+sectors.underattack.nodamage = [scarlet]Незавладяно
sectors.survives = [accent]Оцелява {0} вълни
sectors.go = Посети
-sector.abandon = Abandon
-sector.abandon.confirm = This sector's core(s) will self-destruct.\nContinue?
-sector.curcapture = Зоната превзета
-sector.curlost = Зоната загубена
-sector.missingresources = [scarlet]Недостатъчни ресурси в ядрото
+sector.abandon = Изоставяне
+sector.abandon.confirm = Ядрото(-та) в този сектор ще се самоунищожат.\nПродължаване?
+sector.curcapture = Зоната е превзета
+sector.curlost = Зоната е изгубена
+sector.missingresources = [scarlet]Недостатъчно ресурси в ядрото
sector.attacked = Зона [accent]{0}[white] е под атака!
sector.lost = Зона [accent]{0}[white] беше загубена!
-sector.capture = Sector [accent]{0}[white]Captured!
+sector.capture = Sector [accent]{0}[white] Captured!
sector.capture.current = Sector Captured!
-sector.changeicon = Change Icon
-sector.noswitch.title = Unable to Switch Sectors
-sector.noswitch = You may not switch sectors while an existing sector is under attack.\n\nSector: [accent]{0}[] on [accent]{1}[]
-sector.view = View Sector
+sector.changeicon = Промени икона
+sector.noswitch.title = Невъзможно е превключването на сектори
+sector.noswitch = Не можете да смените секторите, докато вече съществуващ сектор е под нападение.\nСектор: [accent]{0}[] на [accent]{1}[]
+sector.view = Виж сектор
threat.low = Ниска
threat.medium = Средна
@@ -790,34 +810,38 @@ difficulty.easy = Easy
difficulty.normal = Normal
difficulty.hard = Hard
difficulty.eradication = Eradication
+difficulty.enemyHealthMultiplier = Enemy Health: {0}
+difficulty.enemySpawnMultiplier = Enemy Amount: {0}
+difficulty.waveTimeMultiplier = Wave Timer: {0}
+difficulty.nomodifiers = [lightgray](No modifiers)
planets = Планети
planet.serpulo.name = Серпуло
-planet.erekir.name = Erekir
+planet.erekir.name = Ерекир
planet.sun.name = Слънце
sector.impact0078.name = Сблъсък 0078
-sector.groundZero.name = Нулева точка
+sector.groundZero.name = Епицентър
sector.craters.name = Кратерите
-sector.frozenForest.name = Замръзнала Гора
+sector.frozenForest.name = Замръзнала гора
sector.ruinousShores.name = Брегови руини
sector.stainedMountains.name = Зацапаните планини
-sector.desolateRift.name = Опустял Разрив
+sector.desolateRift.name = Опустял разрив
sector.nuclearComplex.name = Ядрено-производствен комплекс
sector.overgrowth.name = Свръхрастеж
-sector.tarFields.name = Катранените Полета
-sector.saltFlats.name = Солените Равнини
-sector.fungalPass.name = Гъбеният Пролом
+sector.tarFields.name = Катранените полета
+sector.saltFlats.name = Солените равнини
+sector.fungalPass.name = Гъбеният пролом
sector.biomassFacility.name = Биосинтезиращо Съоръжение
-sector.windsweptIslands.name = Ветровитите Острови
+sector.windsweptIslands.name = Ветровитите острови
sector.extractionOutpost.name = Добивен лагер
sector.facility32m.name = Facility 32 M
sector.taintedWoods.name = Tainted Woods
sector.infestedCanyons.name = Infested Canyons
sector.planetaryTerminal.name = Терминал за космически мисии
-sector.coastline.name = Coastline
-sector.navalFortress.name = Naval Fortress
+sector.coastline.name = Крайбрежие
+sector.navalFortress.name = Крайморска крепост
sector.polarAerodrome.name = Polar Aerodrome
sector.atolls.name = Atolls
sector.testingGrounds.name = Testing Grounds
@@ -826,24 +850,25 @@ sector.weatheredChannels.name = Weathered Channels
sector.mycelialBastion.name = Mycelial Bastion
sector.frontier.name = Frontier
-sector.groundZero.description = Перфектното място за започване отначало. Ниска заплаха. Ниски ресурси.\nСъбери колкото можеш мед и олово.\nПродължи напред.
-sector.frozenForest.description = Дори тук, близо до планините, спорите са се разпространили. Мразовитите температури не могат да ги задържат вечно.\n\nОвладейте електричеството. Постройте горивни генератори. Научете се да ползвате възстрановители.
-sector.saltFlats.description = На покрайнините на пустинята лежат Солените Равнини. Няма много ресурси на това място.\n\nВрагът е издигнал комплекс за съхранение на ресурси тук. Изкоренете неговото ядро. Сравнете всичко със земята.
-sector.craters.description = Събрала се е вода в този кратер, спомен от забравени войни. Възстановете региона. Съберете пясък. Помиришете метастъклото. Използвайте вода за да охлаждате вашите оръдия и свредла.
+sector.groundZero.description = Перфектното място за започване отначало. Ниска заплаха. Малко ресурси.\nСъберете колкото се може повече мед и олово.\nПродължете напред.
+sector.frozenForest.description = Дори тук, близо до планините, спорите са се разпространили. Мразовитите температури не могат да ги задържат вечно.\n\nОвладейте електричеството. Постройте горивни генератори. Научете се да ползвате възстановители.
+sector.saltFlats.description = На покрайнините на пустинята лежат Солените равнини. Няма много ресурси на това място.\n\nВрагът е издигнал комплекс за съхранение на ресурси тук. Изкоренете ядрото му. Сравнете всичко със земята.
+sector.craters.description = В този кратер се е събрала вода, спомен от забравени войни. Възстановете региона. Съберете пясък. Помиришете метастъклото. Използвайте вода за да охлаждате вашите оръдия и свредели.
sector.ruinousShores.description = Сред отпадъците е и бреговата линия. Някога тук е стояла бреговата защитна линия. Няма много следи от нея. Останали са само някои елементарни защитни механизми, всичко останало е сведено до скрап.\nПродължете разширяването навън. Преоткрийте технологията.
-sector.stainedMountains.description = По - навътре в континента се намират планините, все още незамърсени от спорите.\nИзвлечете изоставеният тита в тази зона. Научете се да го използвате.\n\nПрисъствието на врагове тук е по - високо. Не им оставяйте време да изпратят тежката артилерия.
+sector.stainedMountains.description = По-навътре в континента се намират планините, все още незамърсени от спорите.\nИзвлечете изоставеният титан в тази зона. Научете се да го използвате.\n\nПрисъствието на врагове тук е по-високо. Не им оставяйте време да изпратят тежката артилерия.
sector.overgrowth.description = Обладана от висока растителност, тази зона се намира изключително близо до източника на спорите. Врагът е установил военен лагер тук. Постройте единици модел 'Боздуган' и унищожете вражеската база.
sector.tarFields.description = Покрайнините на нефтено находище, намиращо се между планините и пустинята. Една от малкото зони с използваеми резерви на катран.\nМакар и изоставена, близо до тази зона има опасни вражески сили. Не ги подценявайте.\n\n[lightgray]Препоръчително е да проучите технология за обработка на нефт преди да започнете.
-sector.desolateRift.description = Много опасна зона. Изобилие на ресурси, но малко пространство. Висок риск от унищожение. Напуснете възможно най - скоро. Не се подлъгвайте от дългите интервали между атаките.
-sector.nuclearComplex.description = Бивш комплекс за добив и обработка на торий, от който са останали само руини.\n[lightgray]Проучете тория и многобройните му приложения.\n\nВражеското присъствие тук е многобройно и непрекъснато внимава за нападатели.
-sector.fungalPass.description = Преходна зона между високи планини и по - ниски, осеяни със спори земи. Тук врагът е разположил малка разузнавателна база.\nУнищожи я.\nИзползвайте единици модел 'Кинжал' и 'Къртица'. Унищожете двете вражески ядра.
-sector.biomassFacility.description = Това съоръжение е първоизточникът на спорите. Тук те са били проучвани и създавани за първи път.\nПроучете технологиите скрити в него. Култивирайте спори за да произвеждате гориво и пластмаси.\n\n[lightgray]След смъртта на съоръжението спорите били освободени. Нищо в местната екосистема не може да се конкурира с такъв инвазивен организъм.
-sector.windsweptIslands.description = По - нататък край бреговата линия се намира тази отдалечена верига от острови. Според някои записи тук някога е имало структури за производство на [accent]Пластаний[].\n\nОтблъснете вражеските морски войски. Подсигурете своя база на тези острови. Проучете тези фабрики.
-sector.extractionOutpost.description = Отдалечен аванпост, където врагът е разследвал технологии за пренасяне на ресурси на далечни растояния.\n\nТехнологии за транспорт на материали между зони е ключова за бъдещи действия. Унищожете вражеската база и проучете вражеските Изстрелващи площадки.
-sector.impact0078.description = Тук лежат останките от първия междузвезден транспортер, влязъл в тази система.\n\nСпасете колкото е възможно повече от останките. Проучете всяка непокътната технология.
-sector.planetaryTerminal.description = Крайна цел.\n\nТази крайбрежна база съдържа структура, създадена с цел междупланетарен транспорт на ядра, макар и само в рамките на локалната звездна система. Тази локация има изключително висока защита.\n\nИзползвайте военноморски единици. Елиминирайте врага възможно най - бързо. Проучете изстрелващата структура
-sector.coastline.description = Remnants of naval unit technology have been detected at this location. Repel the enemy attacks, capture this sector, and acquire the technology.
-sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it.
+
+sector.desolateRift.description = Много опасна зона. Изобилие на ресурси, но малко пространство. Висок риск от унищожение. Напуснете възможно най-скоро. Не се подлъгвайте от дългите интервали между атаките.
+sector.nuclearComplex.description = Бивш комплекс за добив и обработка на торий, от който са останали само руини.\n[lightgray]Проучете тория и многобройните му приложения.\n\nВражеското присъствие тук е многобройно и непрекъснато внимава за неприятели.
+sector.fungalPass.description = Преходна зона между високи планини и по-ниски, осеяни със спори, земи. Тук врагът е разположил малка разузнавателна база.\nУнищожете я.\nИзползвайте единици модел 'Кинжал' и 'Къртица'. Унищожете двете вражески ядра.
+sector.biomassFacility.description = Това съоръжение е първоизточникът на спорите. Тук те са били проучвани и създадени за първи път.\nПроучете технологиите скрити в него. Култивирайте спори, за да произвеждате гориво и пластмаса.\n\n[lightgray]След смъртта на съоръжението спорите били освободени. Нищо в местната екосистема не може да съперничи на такъв инвазивен организъм.
+sector.windsweptIslands.description = По-нататък край бреговата линия се намира тази отдалечена верига от острови. Според някои записи, тук някога е имало структури за производство на [accent]Пластаний[].\n\nОтблъснете вражеските морски войски. Подсигурете своя база на тези острови. Проучете тези фабрики.
+sector.extractionOutpost.description = Отдалечен аванпост, където врагът е изследвал технологии за пренасяне на ресурси на далечни растояния.\n\nТехнологията за транспорт на материали между зоните е ключова за бъдещи действия. Унищожете вражеската база и проучете вражеските Изстрелващи площадки.
+sector.impact0078.description = Тук лежат останките от първия навлязал междузвезден транспортер в тази система.\n\nСпасете колкото е възможно повече. Проучете всяка непокътната технология.
+sector.planetaryTerminal.description = Крайна цел.\n\nТази крайбрежна база съдържа структура, създадена с цел междупланетарен транспорт на ядра, макар и само в рамките на локалната звездна система. Тази локация има изключително висока защита.\n\nИзползвайте военноморски единици. Елиминирайте врага възможно най-бързо. Проучете изстрелващата структура.
+sector.coastline.description = На това място са засечени останките от технология за производството на морски единици. Отблъснете вражеските атаки, завладейте този сектор и присвоете технологията.
+sector.navalFortress.description = Врагът е установил база на отдалечен, естествено укрепен остров. Унищожете базите им. Придобийте напредналата им морска технология и я проучете.
sector.cruxscape.name = Cruxscape
sector.geothermalStronghold.name = Geothermal Stronghold
sector.facility32m.description = WIP, map submission by Stormride_R
@@ -856,80 +881,80 @@ sector.testingGrounds.description = WIP, map submission by dnx2019
sector.seaPort.description = WIP, map submission by inkognito626
sector.weatheredChannels.description = WIP, map submission by Skeledragon
sector.mycelialBastion.description = WIP, map submission by Skeledragon
-sector.onset.name = The Onset
-sector.aegis.name = Aegis
-sector.lake.name = Lake
-sector.intersect.name = Intersect
-sector.atlas.name = Atlas
-sector.split.name = Split
-sector.basin.name = Basin
-sector.marsh.name = Marsh
-sector.peaks.name = Peaks
-sector.ravine.name = Ravine
-sector.caldera-erekir.name = Caldera
-sector.stronghold.name = Stronghold
-sector.crevice.name = Crevice
-sector.siege.name = Siege
-sector.crossroads.name = Crossroads
-sector.karst.name = Karst
-sector.origin.name = Origin
-sector.onset.description = Commence the conquest of Erekir. Gather resources, produce units, and begin researching technology.
+sector.onset.name = Началото
+sector.aegis.name = Егида
+sector.lake.name = Езеро
+sector.intersect.name = Пресичане
+sector.atlas.name = Атлас
+sector.split.name = Разрив
+sector.basin.name = Басейн
+sector.marsh.name = Тресавище
+sector.peaks.name = Върхове
+sector.ravine.name = Клисура
+sector.caldera-erekir.name = Калдера
+sector.stronghold.name = Крепост
+sector.crevice.name = Процеп
+sector.siege.name = Обсада
+sector.crossroads.name = Кръстопът
+sector.karst.name = Карст
+sector.origin.name = Произход
+sector.onset.description = Започнете овладяването на Ерекир. Събирайте ресурси, произвеждайте единици и започнете да проучвате технологии.
-sector.aegis.description = This sector contains deposits of tungsten.\nResearch the [accent]Impact Drill[] to mine this resource, and destroy the enemy base in the area.
-sector.lake.description = This sector's slag lake greatly limits viable units. A hover unit is the only option.\nResearch the [accent]ship fabricator[] and produce an [accent]elude[] unit as soon as possible.
-sector.intersect.description = Scans suggest that this sector will be attacked from multiple sides soon after landing.\nSet up defenses quickly and expand as soon as possible.\n[accent]Mech[] units will be required for the area's rough terrain.
-sector.atlas.description = This sector contains varied terrain and will require a variety of units to attack effectively.\nUpgraded units may also be necessary to get past some of the tougher enemy bases detected here.\nResearch the [accent]Electrolyzer[] and the [accent]Tank Refabricator[].
-sector.split.description = The minimal enemy presence in this sector makes it perfect for testing new transport tech.
-sector.basin.description = Large enemy presence detected in this sector.\nBuild units quickly and capture enemy cores to gain a foothold.
-sector.marsh.description = This sector has an abundance of arkycite, but has limited vents.\nBuild [accent]Chemical Combustion Chambers[] to generate power.
-sector.peaks.description = The mountainous terrain in this sector make most units useless. Flying units will be required.\nBe aware of enemy anti-air installations. It may be possible to disable some of these installations by targeting their supporting buildings.
-sector.ravine.description = No enemy cores detected in the sector, although it's an important transportation route for the enemy. Expect variety of enemy forces.\nProduce [accent]surge alloy[]. Construct [accent]Afflict[] turrets.
-sector.caldera-erekir.description = The resources detected in this sector are scattered across several islands.\nResearch and deploy drone-based transportation.
-sector.stronghold.description = The large enemy encampment in this sector guards significant deposits of [accent]thorium[].\nUse it to develop higher tier units and turrets.
-sector.crevice.description = The enemy will send fierce attack forces to take out your base in this sector.\nDeveloping [accent]carbide[] and the [accent]Pyrolysis Generator[] may be imperative for survival.
-sector.siege.description = This sector features two parallel canyons that will force a two-pronged attack.\nResearch [accent]cyanogen[] to gain the capability to create even stronger tank units.\nCaution: enemy long-range missiles have been detected. The missiles may be shot down before impact.
-sector.crossroads.description = The enemy bases in this sector have been established in varying terrain. Research different units to adapt.\nAdditionally, some bases are protected by shields. Figure out how they are powered.
-sector.karst.description = This sector is rich in resources, but will be attacked by the enemy once a new core lands.\nTake advantage of the resources and research [accent]phase fabric[].
-sector.origin.description = The final sector with a significant enemy presence.\nNo probable research opportunities remain - focus solely on destroying all enemy cores.
+sector.aegis.description = Този сектор съдържа депозит от волфрам.\nПроучете [accent]Пробивния свредел[], за да изкопавате този ресурс и унищожете вражеската база в района.
+sector.lake.description = Количеството слаг в този сектор значително ограничава подходящите единици. Единствено летците са възможни.\nПроучете [accent]Фабриката за кораби[] и произведете тази [accent]гъвкава[] единица час по-скоро.
+sector.intersect.description = Сканирането разкрива, че този сектор ще бъде нападнат от няколко страни веднага щом кацнете.\nРазположете защитите си и се разгърнете колкото се може по-бързо.\nЩе са Ви нужни [accent]Механизиране[] единици за тукашния суров терен.
+sector.atlas.description = Този сектор има разнообразен терен и ще са Ви нужни различни единици, за да атакувате ефективно.\nМоже да са Ви необходими подобрени единици, за да преодолеете някои от по-могъщите засечени бази на врага.\nПроучете [accent]Електролизатора[] и [accent]Фабриката за танкове[].
+sector.split.description = Този сектор има минимално вражеско присъствие и е идеален за изпробване на новата транспортна технология.
+sector.basin.description = В този сектор е засечено огромно вражеско присъствие.\nБързо направете единиците си и завладейте вражеските ядра, за да затвърдите присъствието си.
+sector.marsh.description = Този сектор изобилства от аркицит, но няма много шахти.\nИзградете [accent]Камери за химическо горене[], за да добивате електричество.
+sector.peaks.description = Планинският терен в този сектор прави повечето единици безполезни. Ще са Ви нужни летци.\nВнимавайте за вражески противовъздушни инсталации. Възможно е да обезоръжите някои от тях, ако се насочите към поддържащите им сгради.
+sector.ravine.description = В този сектор не са засечени вражески ядра, въпреки че е важен транспортен маршрут за тях. Очаквайте разнообразие от вражески сили.\nПроизведете [accent]импулсна сплав[]. Издигнете [accent]Мъчителни[] оръдия.
+sector.caldera-erekir.description = Ресурсите засечени в тази зона са разпръснати из няколко острова.\nПроучете и поставете дронове за транспорт.
+sector.stronghold.description = Големият вражески лагер в тази зона предпазва значителни залежи от [accent]торий[].\nИзползвайте го, за да произведете по-високо ниво единици и оръдия.
+sector.crevice.description = Врагът ще изпрати свирепи нападатели, за да унищожат базата Ви в този сектор.\nИзключително необходимо е да проучите [accent]карбид[] и [accent]Пиролизен генератор[], за да оцелеете.
+sector.siege.description = В този сектор има два паралелни каньона, които ще Ви тласнат в борба на два фронта.\nПроучете [accent]цианоген[], за да получите възможността да създавате още по-мощни танкове.\nВнимание: засечени са вражески далекобойни ракети. Възможно е да свалите ракетите, преди да Ви ударят.
+sector.crossroads.description = Вражеските бази в този сектор са изградени върху различни терени. Използвайте разнообразие от единици, за да се справите.\nОсвен това някои бази се пазят с щитове. Трябва да разберете откъде идва мощността им.
+sector.karst.description = Този сектор е богат на ресурси, но вероятно ще бъдете нападнат от врага веднага щом ядрото Ви кацне.\nВъзползвайте се от ресурсите и проучете [accent]фазова тъкан[].
+sector.origin.description = Последният сектор със значително вражеско присъствие.\nНищо значимо не Ви остава за проучване - съсредоточете се върху унищожаването на вражеските ядра.
-status.burning.name = Горящ
-status.freezing.name = Замръзяващ
+status.burning.name = Изгаря
+status.freezing.name = Замразен
status.wet.name = Мокър
status.muddy.name = Кален
status.melting.name = Разтопяван
status.sapped.name = Източван
-status.electrified.name = Electrified
+status.electrified.name = Наелектризиран
status.spore-slowed.name = Обрасъл в спори (забавен)
-status.tarred.name = Облят в катран
-status.overdrive.name = Overdrive
+status.tarred.name = Облян в катран
+status.overdrive.name = Свръхскорост
status.overclock.name = Ускорен
status.shocked.name = Зашеметен
status.blasted.name = Взривоопасен
status.unmoving.name = Неподвижен
-status.boss.name = Guardian
+status.boss.name = Пазител
settings.language = Език
settings.data = Данни на играта
-settings.reset = Възстанови до стандартните настройки
+settings.reset = Върни към стандартните настройки
settings.rebind = Смени
settings.resetKey = Нулирай
-settings.controls = Контроли
+settings.controls = Управление
settings.game = Игра
settings.sound = Звук
settings.graphics = Графики
settings.cleardata = Изчисти данните на играта...
settings.clear.confirm = Сигурни ли сте, че искате да изтриете данните на играта?\nСтореното не може да бъде отменено!
-settings.clearall.confirm = [scarlet]Внимание![]\nТова ще изчисти всички данни за играта, включително запазени игри, карти, отключени елементи и настройки на клавишите.\nАко натиснете 'ок' играта ще изчисти всичките си данни и автоматично ще се затвори.
+settings.clearall.confirm = [scarlet]Внимание![]\nТова ще изчисти всички данни за играта, включително запазени игри, карти, отключени елементи и настройки на клавишите.\nАко натиснете 'ок' играта ще изчисти всички данни и автоматично ще се затвори.
settings.clearsaves.confirm = Сигурни ли сте, че искате да изтриете всичките си запазени игри?
settings.clearsaves = Изчисти запазените игри
-settings.clearresearch = Изчисти Проучванията
-settings.clearresearch.confirm = Сигурни ли сте, че искате да изчистите всичките си проучвания в режим Кампания?
-settings.clearcampaignsaves = Изчисти запазените игри в Кампанията
-settings.clearcampaignsaves.confirm = Сигурни ли сте, че искате да изтриете всичките си записи от Кампанията?
+settings.clearresearch = Изчисти проучванията
+settings.clearresearch.confirm = Сигурни ли сте, че искате да изчистите всичките си проучвания от кампанията?
+settings.clearcampaignsaves = Изчисти запазените игри в кампанията
+settings.clearcampaignsaves.confirm = Сигурни ли сте, че искате да изтриете всичките си записи от кампанията?
paused = [accent]< Играта е в пауза >
clear = Изчисти
banned = [scarlet]Баннат
-unsupported.environment = [scarlet]Unsupported Environment
+unsupported.environment = [scarlet]Неподдържана среда
yes = Да
no = Не
info.title = Информация
@@ -937,45 +962,45 @@ error.title = [scarlet]Възникна грешка
error.crashtitle = Възникна грешка
unit.nobuild = [scarlet]Единицата не може да строи
lastaccessed = [lightgray]Последно достъпван: {0}
-lastcommanded = [lightgray]Last Commanded: {0}
+lastcommanded = [lightgray]Последно командван: {0}
block.unknown = [lightgray]???
-stat.showinmap =
+stat.showinmap = <заредете карта, за да се покаже>
stat.description = Предназначение
stat.input = Вход
stat.output = Изход
-stat.maxefficiency = Max Efficiency
+stat.maxefficiency = Макс. ефикасност
stat.booster = Двигатели
stat.tiles = Необходим терен
stat.affinities = Афинитети
stat.opposites = Противоположности
-stat.powercapacity = Електрически Капацитет
-stat.powershot = Електроенергия/Изтрел
+stat.powercapacity = Електрически капацитет
+stat.powershot = Електроенергия/Изстрел
stat.damage = Щети
-stat.targetsair = Напада по Въздух
-stat.targetsground = Напада по Земя
-stat.itemsmoved = Скорост на Движение
+stat.targetsair = Напада по въздух
+stat.targetsground = Напада по земя
+stat.itemsmoved = Скорост на движение
stat.launchtime = Време между изстрелванията
stat.shootrange = Обхват
stat.size = Размер
-stat.displaysize = Размер на Екрана
-stat.liquidcapacity = Капацитет на Течности
-stat.powerrange = Обхват на Електроенергията
+stat.displaysize = Размер на екрана
+stat.liquidcapacity = Капацитет на течности
+stat.powerrange = Обхват на електроенергията
stat.linkrange = Обхват на връзката
stat.instructions = Инструкции
stat.powerconnections = Максимален брой връзки
stat.poweruse = Консумация на електроенергия
-stat.powerdamage = Електроенергия/Щета
+stat.powerdamage = Електро-енергия/Щета
stat.itemcapacity = Ресурсен капацитет
stat.memorycapacity = Капацитет на паметта
stat.basepowergeneration = Основно производство на енергия
stat.productiontime = Време за производство
stat.repairtime = Време за пълна поправка на блок
-stat.repairspeed = Repair Speed
+stat.repairspeed = Скорост на поправяне
stat.weapons = Оръжия
stat.bullet = Муниции
-stat.moduletier = Module Tier
-stat.unittype = Unit Type
+stat.moduletier = Ниво на модул
+stat.unittype = Вид единица
stat.speedincrease = Ускорение
stat.range = Обхват
stat.drilltier = Изкопаеми ресурси
@@ -1000,82 +1025,85 @@ stat.lightningdamage = Щети от светкавица
stat.flammability = Възпламенимост
stat.radioactivity = Радиоактивност
stat.charge = Заряд
-stat.heatcapacity = Топлинен Капацитет
+stat.heatcapacity = Топлинен капацитет
stat.viscosity = Вискозитет (гъстота)
stat.temperature = Температура
stat.speed = Скорост
stat.buildspeed = Скорост на изграждане
stat.minespeed = Скорост на добив
stat.minetier = Ниво на добив
-stat.payloadcapacity = Товарен Капацитет
+stat.payloadcapacity = Товарен капацитет
stat.abilities = Способности
stat.canboost = Може да ускорява
stat.flying = Летящ
-stat.ammouse = Употребе на Боеприпаси
-stat.ammocapacity = Ammo Capacity
-stat.damagemultiplier = Множител на Щети
-stat.healthmultiplier = Множител на Точки живот
-stat.speedmultiplier = Множител на Скорост
-stat.reloadmultiplier = Множител на Презареждане
+stat.ammouse = Употреба на боеприпаси
+stat.ammocapacity = Муниции
+stat.damagemultiplier = Множител на щети
+stat.healthmultiplier = Множител на точки живот
+stat.speedmultiplier = Множител на скорост
+stat.reloadmultiplier = Множител на презареждане
stat.buildspeedmultiplier = Множител на скорост за изграждане
stat.reactive = Реагира
-stat.immunities = Immunities
-stat.healing = Healing
+stat.immunities = Имунитет
+stat.healing = Лечение
+stat.efficiency = [stat]{0}% Efficiency
-ability.forcefield = Енергийно Поле
-ability.forcefield.description = Projects a force shield that absorbs bullets
-ability.repairfield = Възстановяващо Поле
-ability.repairfield.description = Repairs nearby units
-ability.statusfield = Подсилващо Поле
-ability.statusfield.description = Applies a status effect to nearby units
-ability.unitspawn = Factory
-ability.unitspawn.description = Constructs units
-ability.shieldregenfield = Възстановяващо броня Поле
-ability.shieldregenfield.description = Regenerates shields of nearby units
+ability.forcefield = Енергийно поле
+ability.forcefield.description = Проектира силово поле, което поглъща куршуми
+ability.repairfield = Възстановяващо поле
+ability.repairfield.description = Поправя околните единици
+ability.statusfield = Подсилващо поле
+ability.statusfield.description = Има определен ефект върху околните единици
+ability.unitspawn = Фабрика
+ability.unitspawn.description = Произвежда единици
+ability.shieldregenfield = Щитово поле
+ability.shieldregenfield.description = Възстановява щитовете на околните единици
ability.movelightning = Подвижна светкавица
-ability.movelightning.description = Releases lightning while moving
-ability.armorplate = Armor Plate
-ability.armorplate.description = Reduces damage taken while shooting
-ability.shieldarc = Shield Arc
-ability.shieldarc.description = Projects a force shield in an arc that absorbs bullets
-ability.suppressionfield = Regen Suppression Field
-ability.suppressionfield.description = Stops nearby repair buildings
-ability.energyfield = Energy Field
-ability.energyfield.description = Zaps nearby enemies
-ability.energyfield.healdescription = Zaps nearby enemies and heals allies
-ability.regen = Regeneration
-ability.regen.description = Regenerates own health over time
-ability.liquidregen = Liquid Absorption
-ability.liquidregen.description = Absorbs liquid to heal itself
-ability.spawndeath = Death Spawns
-ability.spawndeath.description = Releases units on death
-ability.liquidexplode = Death Spillage
-ability.liquidexplode.description = Spills liquid on death
-ability.stat.firingrate = [stat]{0}/sec[lightgray] firing rate
-ability.stat.regen = [stat]{0}[lightgray] health/sec
+ability.movelightning.description = Отприщва светкавици, докато се движи
+ability.armorplate = Бронирани плочи
+ability.armorplate.description = Намалява вредата, която единицата претърпява, докато стреля
+ability.shieldarc = Щит-дъга
+ability.shieldarc.description = Проектира силово поле в дъга, която поглъща куршуми
+ability.suppressionfield = Потискащо поле
+ability.suppressionfield.description = Спира поправката на околните сгради
+ability.energyfield = Енергийно поле
+ability.energyfield.description = Удря с ток близките врагове
+ability.energyfield.healdescription = Удря с ток близките врагове и лекува приятелските единици
+ability.regen = Регенерация
+ability.regen.description = Възстановява здравето си с течение на времето
+ability.liquidregen = Попивателни свойства
+ability.liquidregen.description = Поглъща течност, за да се лекува
+ability.spawndeath = Малък подарък
+ability.spawndeath.description = Пуска единици, когато загине
+ability.liquidexplode = Разливане
+ability.liquidexplode.description = Разлива течността си, когато загине
+ability.stat.firingrate = [stat]{0}/в сек.[lightgray] скорост на огъня
+ability.stat.regen = [stat]{0}[lightgray] здраве/сек.
ability.stat.pulseregen = [stat]{0}[lightgray] health/pulse
-ability.stat.shield = [stat]{0}[lightgray] shield
-ability.stat.repairspeed = [stat]{0}/sec[lightgray] repair speed
-ability.stat.slurpheal = [stat]{0}[lightgray] health/liquid unit
-ability.stat.cooldown = [stat]{0} sec[lightgray] cooldown
-ability.stat.maxtargets = [stat]{0}[lightgray] max targets
-ability.stat.sametypehealmultiplier = [stat]{0}%[lightgray] same type repair amount
-ability.stat.damagereduction = [stat]{0}%[lightgray] damage reduction
-ability.stat.minspeed = [stat]{0} tiles/sec[lightgray] min speed
-ability.stat.duration = [stat]{0} sec[lightgray] duration
-ability.stat.buildtime = [stat]{0} sec[lightgray] build time
+ability.stat.shield = [stat]{0}[lightgray] щит
+ability.stat.repairspeed = [stat]{0}/в сек.[lightgray] скорост на поправка
+ability.stat.slurpheal = [stat]{0}[lightgray] здраве/количество течност
+ability.stat.cooldown = [stat]{0} в сек.[lightgray] презареждане
+ability.stat.maxtargets = [stat]{0}[lightgray] макс. мишени
+ability.stat.sametypehealmultiplier = [stat]{0}%[lightgray] еднакво количество поправка
+ability.stat.damagereduction = [stat]{0}%[lightgray] намаляване на вредата
+ability.stat.minspeed = [stat]{0} полета/в сек.[lightgray] мин. скорост
+ability.stat.duration = [stat]{0} в сек.[lightgray] продължителност
+ability.stat.buildtime = [stat]{0} в сек.[lightgray] време за строеж
-bar.onlycoredeposit = Only Core Depositing Allowed
+bar.onlycoredeposit = Доставянето е разрешено само до ядрото
-bar.drilltierreq = Необходимо е по-добро Свредло
-bar.noresources = Недостатъчни Ресурси
-bar.corereq = Необходимо е Ядро за основа
-bar.corefloor = Core Zone Tile Required
-bar.cargounitcap = Cargo Unit Cap Reached
+bar.drilltierreq = Необходимо е по-добро свредло
+bar.nobatterypower = Insufficient Battery Power
+bar.noresources = Недостатъчно ресурси
+bar.corereq = Необходимо е ядро за основа
+bar.corefloor = Необходимо е поле за ядрото
+bar.cargounitcap = Капацитета на преносвачите е достигнат
bar.drillspeed = Скорост на свредлото: {0}/сек
bar.pumpspeed = Скорост на помпата: {0}/сек
bar.efficiency = Ефективност: {0}%
bar.boost = Усилване: +{0}%
+bar.powerbuffer = Battery Power: {0}/{1}
bar.powerbalance = Електроенергия: {0}/сек
bar.powerstored = Съхранена енергия: {0}/{1}
bar.poweramount = Електроенергия: {0}
@@ -1086,16 +1114,17 @@ bar.capacity = Капацитет: {0}
bar.unitcap = {0} {1}/{2}
bar.liquid = Течност
bar.heat = Топлина
-bar.instability = Instability
-bar.heatamount = Heat: {0}
-bar.heatpercent = Heat: {0} ({1}%)
+bar.cooldown = Cooldown
+bar.instability = Нестабилност
+bar.heatamount = Горещина: {0}
+bar.heatpercent = Горещина: {0} ({1}%)
bar.power = Електроенергия
bar.progress = Напредък в производството
-bar.loadprogress = Progress
-bar.launchcooldown = Launch Cooldown
+bar.loadprogress = Напредък
+bar.launchcooldown = Презареждане на изстрела
bar.input = Вход
bar.output = Изход
-bar.strength = [stat]{0}[lightgray]x strength
+bar.strength = [stat]{0}[lightgray]x сила
units.processorcontrol = [lightgray]Контролиран от процесор
@@ -1103,39 +1132,41 @@ bullet.damage = [stat]{0}[lightgray] щети
bullet.splashdamage = [stat]{0}[lightgray] щети на площ ~[stat] {1}[lightgray] полета
bullet.incendiary = [stat]Подпалване
bullet.homing = [stat]Самонасочване
-bullet.armorpierce = [stat]armor piercing
-bullet.maxdamagefraction = [stat]{0}%[lightgray] damage limit
-bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles
-bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
-bullet.frags = [stat]{0}[lightgray]x frag bullets:
+bullet.armorpierce = [stat]Пробождане на броня
+bullet.maxdamagefraction = [stat]{0}%[lightgray] ограничена щета
+bullet.suppression = [stat]{0} сек[lightgray] възпиране на поправки ~ [stat]{1}[lightgray] плочки
+bullet.interval = [stat]{0}/сек[lightgray] куршуми в интервал:
+bullet.frags = [stat]{0}[lightgray]x фрагменти:
bullet.lightning = [stat]{0}[lightgray]x светкавица ~ [stat]{1}[lightgray] щети
bullet.buildingdamage = [stat]{0}%[lightgray] щети на сгради
+bullet.shielddamage = [stat]{0}%[lightgray] shield damage
bullet.knockback = [stat]{0}[lightgray] отблъскване
bullet.pierce = [stat]{0}[lightgray]x пробождане
bullet.infinitepierce = [stat]пробождане
bullet.healpercent = [stat]{0}[lightgray]% възстановяване
-bullet.healamount = [stat]{0}[lightgray] direct repair
+bullet.healamount = [stat]{0}[lightgray] директна поправка
bullet.multiplier = [stat]{0}[lightgray]x множител на боеприпаси
bullet.reload = [stat]{0}[lightgray]x скорост на стрелба
-bullet.range = [stat]{0}[lightgray] tiles range
-bullet.notargetsmissiles = [stat] ignores buildings
-bullet.notargetsbuildings = [stat] ignores missiles
+bullet.range = [stat]{0}[lightgray] обхват
+bullet.notargetsmissiles = [stat] ignores missiles
+bullet.notargetsbuildings = [stat] ignores buildings
-unit.blocks = блока
+unit.blocks = блокове
unit.blockssquared = блока²
unit.powersecond = електричество/секунда
-unit.tilessecond = tiles/second
+unit.tilessecond = полета/секунда
unit.liquidsecond = течност/секунда
unit.itemssecond = предмети/секунда
unit.liquidunits = течност
unit.powerunits = електричество
-unit.heatunits = heat units
+unit.heatunits = единици горещина
unit.degrees = градуси
unit.seconds = секунди
unit.minutes = минути
unit.persecond = /сек
unit.perminute = /мин
unit.timesspeed = x скорост
+unit.multiplier = x
unit.percent = %
unit.shieldhealth = здравина на щита
unit.items = предмети
@@ -1151,277 +1182,291 @@ category.liquids = Течности
category.items = Предмети
category.crafting = Вход/Изход
category.function = Функционалност
-category.optional = Допълнителни Подобрения
-setting.alwaysmusic.name = Always Play Music
-setting.alwaysmusic.description = When enabled, music will always play on loop in-game.\nWhen disabled, it only plays at random intervals.
-setting.skipcoreanimation.name = Skip Core Launch/Land Animation
-setting.landscape.name = Заключване на Пейзажа
+category.optional = Допълнителни подобрения
+setting.alwaysmusic.name = Нека има музика
+setting.alwaysmusic.description = Когато тази опция е включена, музиката винаги ще продължава.\nИзключите ли опцията, музиката ще се задейства през неопределен интервал от време.
+setting.skipcoreanimation.name = Пропускане на анимацията на ядрото при изстрел/кацане
+setting.landscape.name = Заключване на пейзажа
setting.shadows.name = Сенки
-setting.blockreplace.name = Автоматични Предложения за Блокове
-setting.linear.name = Линейно Филтриране
+setting.blockreplace.name = Автоматични предложения за блокове
+setting.linear.name = Линейно филтриране
setting.hints.name = Съвети
-setting.logichints.name = Логически Съвети
+setting.logichints.name = Логически съвети
setting.backgroundpause.name = Пауза при загуба на фокус
-setting.buildautopause.name = Автоматична Пауза на Изграждането
-setting.doubletapmine.name = Двоен Клик за Добив на Ресурс
-setting.commandmodehold.name = Hold For Command Mode
-setting.distinctcontrolgroups.name = Limit One Control Group Per Unit
+setting.buildautopause.name = Автоматична пауза на изграждането
+setting.doubletapmine.name = Двоен клик за добив на ресурс
+setting.commandmodehold.name = Задържане за команден режим
+setting.distinctcontrolgroups.name = Ограничаване на контролните групи за една единица
setting.modcrashdisable.name = Забрани Модовете При Стартиране След Срив
-setting.animatedwater.name = Анимирани Повърхности
-setting.animatedshields.name = Анимирани Щитове
-setting.playerindicators.name = Индикатори на играчите
-setting.indicators.name = Индикатори на враговете
-setting.autotarget.name = Автоматичен Прицел
-setting.keyboard.name = Контроли: Мишка и Клавиатура
-setting.touchscreen.name = Контроли: Тъчскрийн
+setting.animatedwater.name = Анимирани повърхности
+setting.animatedshields.name = Анимирани щитове
+setting.playerindicators.name = Индикатори за играчите
+setting.indicators.name = Индикатори за враговете
+setting.autotarget.name = Автоматичен прицел
+setting.keyboard.name = Управление: мишка/клавиатура
+setting.touchscreen.name = Управление: тъчскрийн
setting.fpscap.name = Максимални FPS
setting.fpscap.none = Няма
setting.fpscap.text = {0} FPS
-setting.uiscale.name = Размер на Интерфейсът[lightgray] (изисква рестарт)[]
-setting.uiscale.description = Restart required to apply changes.
-setting.swapdiagonal.name = Винаги Диагонално Поставяне
-setting.screenshake.name = Клатене на Екрата
-setting.bloomintensity.name = Bloom Intensity
-setting.bloomblur.name = Bloom Blur
-setting.effects.name = Показвай Ефекти
-setting.destroyedblocks.name = Показвай Унищожени Блокове
-setting.blockstatus.name = Показвай Статус на Блоковете
-setting.conveyorpathfinding.name = Намиране на Валидна Пътека при Поставяне на Транспортери
-setting.sensitivity.name = Чувствителност на Контролера
-setting.saveinterval.name = Време Между Автоматичен Запис
+setting.uiscale.name = Размер на интерфейса[lightgray] (изисква рестарт)[]
+setting.uiscale.description = Нужен е рестарт, за да се приложат промените.
+setting.swapdiagonal.name = Винаги диагонално поставяне
+setting.screenshake.name = Клатене на екрана
+setting.bloomintensity.name = Интензитет на сиянията
+setting.bloomblur.name = Замъгляване на сияние
+setting.effects.name = Показвай ефекти
+setting.destroyedblocks.name = Показвай унищожени блокове
+setting.blockstatus.name = Показвай статуса на блоковете
+setting.conveyorpathfinding.name = Намиране на валидна пътека при поставяне на транспортери
+setting.sensitivity.name = Чувствителност на контролера
+setting.saveinterval.name = Време между автоматичен запис
setting.seconds = {0} секунди
setting.milliseconds = {0} милисекунди
-setting.fullscreen.name = Цял Екран
-setting.borderlesswindow.name = Прозорец без Рамка[lightgray] (може да изисква рестарт)
-setting.borderlesswindow.name.windows = Borderless Fullscreen
-setting.borderlesswindow.description = Restart may be required to apply changes.
-setting.fps.name = Показвай FPS & Ping
-setting.console.name = Enable Console
-setting.smoothcamera.name = Гладка Камера
+setting.fullscreen.name = Цял екран
+setting.borderlesswindow.name = Прозорец без рамка[lightgray] (може да изисква рестарт)
+setting.borderlesswindow.name.windows = Цял екран без рамка
+setting.borderlesswindow.description = Може да е нужен рестарт, за да се приложат промените.
+setting.fps.name = Показвай FPS & пинг
+setting.console.name = Включване на конзолата
+setting.smoothcamera.name = Гладка камера
setting.vsync.name = Вертикална синхронизация (VSync)
-setting.pixelate.name = Пикселизирай
-setting.minimap.name = Показвай Мини-Карта
-setting.coreitems.name = Показвай Ресурсите в Ядрото
-setting.position.name = Показвай Позиция на Играч
-setting.mouseposition.name = Show Mouse Position
-setting.musicvol.name = Сила на Звука
-setting.atmosphere.name = Показвай Атмосферата на Планетата
-setting.drawlight.name = Draw Darkness/Lighting
-setting.ambientvol.name = Сила на Звука на Околната Среда
-setting.mutemusic.name = Заглуши Музиката
-setting.sfxvol.name = Сила на Звуковите Ефекти
-setting.mutesound.name = Заглуши Звука
-setting.crashreport.name = ИЗпращай Анонимни Отчети за Сривове
-setting.savecreate.name = Автоматични Записи
+setting.pixelate.name = Пикселизация
+setting.minimap.name = Показвай мини-карта
+setting.coreitems.name = Показвай ресурсите в ядрото
+setting.position.name = Показвай позицията на играча
+setting.mouseposition.name = Показвай позицията на мишката
+setting.musicvol.name = Сила на звука
+setting.atmosphere.name = Показвай атмосферата на планетата
+setting.drawlight.name = Начертаване на мрак/светлина
+setting.ambientvol.name = Сила на звука на околната среда
+setting.mutemusic.name = Заглуши музиката
+setting.sfxvol.name = Сила на звуковите ефекти
+setting.mutesound.name = Заглуши звука
+setting.crashreport.name = Изпращай анонимни отчети за сривове
+setting.communityservers.name = Fetch Community Server List
+setting.savecreate.name = Автоматични записи
setting.steampublichost.name = Public Game Visibility
-setting.playerlimit.name = Лимит на Играчи
-setting.chatopacity.name = Плътност на Чата
-setting.lasersopacity.name = Плътност на Енергийните Лазери
-setting.bridgeopacity.name = Плътност на Мостовете
-setting.playerchat.name = Показвай Мехурчета с Чат
-setting.showweather.name = Показвай Графики за Климата
-setting.hidedisplays.name = Hide Logic Displays
+setting.playerlimit.name = Лимит на играчи
+setting.chatopacity.name = Плътност на чата
+setting.lasersopacity.name = Плътност на енергийните лазери
+setting.unitlaseropacity.name = Unit Mining Beam Opacity
+setting.bridgeopacity.name = Плътност на мостовете
+setting.playerchat.name = Показвай балончета за чата
+setting.showweather.name = Показвай графики за климата
+setting.hidedisplays.name = Скрий логическите екрани
setting.macnotch.name = Адаптирайте интерфейса за показване на прорез
setting.macnotch.description = За прилагане на промените е необходимо рестартиране
-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.
+steam.friendsonly = Само приятели
+steam.friendsonly.tooltip = Дали вашите приятели от Steam ще могат да се включат в играта ви.\nИзключването на тази опция ще направи играта Ви публична и всеки ще може да се присъедини.
+setting.maxmagnificationmultiplierpercent.name = Min Camera Distance
+setting.minmagnificationmultiplierpercent.name = Max Camera Distance
+setting.minmagnificationmultiplierpercent.description = High values may cause performance issues.
public.beta = Имайте в предвид, че бета версии на играта не могат да стартират публични игри.
uiscale.reset = Размерът на интерфейса беше променен.\nНатиснете "ОК" за да потвърдите този размер.\n[scarlet]Възстановяване и рестартиране след[accent] {0}[] секунди...
-uiscale.cancel = Отакз & Изход
+uiscale.cancel = Отказ и изход
setting.bloom.name = Сияние
-keybind.title = Промени Клавишите
-keybinds.mobile = [scarlet]Повечето клавиши тук не са използваеми за мобилната версия. Само основните движения се поддържат.
+keybind.title = Промени клавишите
+keybinds.mobile = [scarlet]Повечето клавиши не са приложими при мобилната версия. Поддържат се само основните движения.
category.general.name = Основни настройки
category.view.name = Изглед
-category.command.name = Unit Command
+category.command.name = Управление на единици
category.multiplayer.name = Мрежова игра
category.blocks.name = Избор на блок
placement.blockselectkeys = \n[lightgray]Клавиш: [{0},
-keybind.respawn.name = Връщане при Ядрото
+keybind.respawn.name = Връщане при ядрото
keybind.control.name = Управляване на единица
-keybind.clear_building.name = Изчистване на План За Строеж
+keybind.clear_building.name = Изчистване на строежен план
keybind.press = Натиснете клавиш...
keybind.press.axis = Натиснете ос или клавиш...
-keybind.screenshot.name = Екранна Снимка
-keybind.toggle_power_lines.name = Показвай/Скрий Енергийните лазери
-keybind.toggle_block_status.name = Показвай/Скрий Статуси на Блоковете
+keybind.screenshot.name = Екранна снимка
+keybind.toggle_power_lines.name = Показвай/Скрий енергийните лазери
+keybind.toggle_block_status.name = Показвай/Скрий статута на блоковете
keybind.move_x.name = Движение по X
keybind.move_y.name = Движение по Y
-keybind.mouse_move.name = Следвай Мишката
-keybind.pan.name = Панорамен Изглед
+keybind.mouse_move.name = Следвай мишката
+keybind.pan.name = Панорамен изглед
keybind.boost.name = Ускорение
-keybind.command_mode.name = Command Mode
-keybind.command_queue.name = Unit Command Queue
-keybind.create_control_group.name = Create Control Group
-keybind.cancel_orders.name = Cancel Orders
-keybind.unit_stance_shoot.name = Unit Stance: Shoot
-keybind.unit_stance_hold_fire.name = Unit Stance: Hold Fire
-keybind.unit_stance_pursue_target.name = Unit Stance: Pursue Target
-keybind.unit_stance_patrol.name = Unit Stance: Patrol
-keybind.unit_stance_ram.name = Unit Stance: Ram
-keybind.unit_command_move.name = Unit Command: Move
-keybind.unit_command_repair.name = Unit Command: Repair
-keybind.unit_command_rebuild.name = Unit Command: Rebuild
-keybind.unit_command_assist.name = Unit Command: Assist
-keybind.unit_command_mine.name = Unit Command: Mine
-keybind.unit_command_boost.name = Unit Command: Boost
-keybind.unit_command_load_units.name = Unit Command: Load Units
-keybind.unit_command_load_blocks.name = Unit Command: Load Blocks
-keybind.unit_command_unload_payload.name = Unit Command: Unload Payload
+keybind.command_mode.name = Команден режим
+keybind.command_queue.name = Последователни заповеди
+keybind.create_control_group.name = Създаване на обща група
+keybind.cancel_orders.name = Отменяне на заповедите
+keybind.unit_stance_shoot.name = Поведение: Стрелба
+keybind.unit_stance_hold_fire.name = Поведение: Не стреляй
+keybind.unit_stance_pursue_target.name = Поведение: Преследвай целта
+keybind.unit_stance_patrol.name = Поведение: Патрул
+keybind.unit_stance_ram.name = Поведение: Забий се
+keybind.unit_command_move.name = Команда: Движение
+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_load_units.name = Команда: Натовари единици
+keybind.unit_command_load_blocks.name = Команда: Натовари блокове
+keybind.unit_command_unload_payload.name = Команда: Разтовари
keybind.unit_command_enter_payload.name = Unit Command: Enter Payload
keybind.unit_command_loop_payload.name = Unit Command: Loop Unit Transfer
-keybind.rebuild_select.name = Rebuild Region
-keybind.schematic_select.name = Избери Регион
-keybind.schematic_menu.name = Меню със Схеми
-keybind.schematic_flip_x.name = Завърти Схема по X
-keybind.schematic_flip_y.name = Завърти Схема по Y
-keybind.category_prev.name = Предишна Категория
-keybind.category_next.name = Следваща Категория
-keybind.block_select_left.name = Избор на Блок: Наляво
-keybind.block_select_right.name = Избор на Блок: Надясно
-keybind.block_select_up.name = Избор на Блок: Нагоре
-keybind.block_select_down.name = Избор на Блок: Надолу
-keybind.block_select_01.name = Избор на Блок: Категория 1
-keybind.block_select_02.name = Избор на Блок: Категория 2
-keybind.block_select_03.name = Избор на Блок: Категория 3
-keybind.block_select_04.name = Избор на Блок: Категория 4
-keybind.block_select_05.name = Избор на Блок: Категория 5
-keybind.block_select_06.name = Избор на Блок: Категория 6
-keybind.block_select_07.name = Избор на Блок: Категория 7
-keybind.block_select_08.name = Избор на Блок: Категория 8
-keybind.block_select_09.name = Избор на Блок: Категория 9
-keybind.block_select_10.name = Избор на Блок: Категория 10
-keybind.fullscreen.name = Превключи на Цял Екран
-keybind.select.name = Избери/Стреляй
-keybind.diagonal_placement.name = Диагонално Поставяне
-keybind.pick.name = Вземи Блок
-keybind.break_block.name = Унищожи Блок
-keybind.select_all_units.name = Select All Units
-keybind.select_all_unit_factories.name = Select All Unit Factories
+keybind.rebuild_select.name = Възстановяване на региона
+keybind.schematic_select.name = Избери регион
+keybind.schematic_menu.name = Меню със схеми
+keybind.schematic_flip_x.name = Завърти схема по X
+keybind.schematic_flip_y.name = Завърти схема по Y
+keybind.category_prev.name = Предишна категория
+keybind.category_next.name = Следваща категория
+keybind.block_select_left.name = Избор на блок: Наляво
+keybind.block_select_right.name = Избор на блок: Надясно
+keybind.block_select_up.name = Избор на блок: Нагоре
+keybind.block_select_down.name = Избор на блок: Надолу
+keybind.block_select_01.name = Избор на блок: Категория 1
+keybind.block_select_02.name = Избор на блок: Категория 2
+keybind.block_select_03.name = Избор на блок: Категория 3
+keybind.block_select_04.name = Избор на блок: Категория 4
+keybind.block_select_05.name = Избор на блок: Категория 5
+keybind.block_select_06.name = Избор на блок: Категория 6
+keybind.block_select_07.name = Избор на блок: Категория 7
+keybind.block_select_08.name = Избор на блок: Категория 8
+keybind.block_select_09.name = Избор на блок: Категория 9
+keybind.block_select_10.name = Избор на блок: Категория 10
+keybind.fullscreen.name = Превключи на цял екран
+keybind.select.name = Избери/Стрелба
+keybind.diagonal_placement.name = Диагонално поставяне
+keybind.pick.name = Вземи блок
+keybind.break_block.name = Унищожи блок
+keybind.select_all_units.name = Избери всички единици
+keybind.select_all_unit_factories.name = Избиране на всички фабрики за единици
keybind.deselect.name = Премахни избора
-keybind.pickupCargo.name = Вземи Товар
-keybind.dropCargo.name = Остави Товар
+keybind.pickupCargo.name = Вземи товар
+keybind.dropCargo.name = Остави товар
keybind.shoot.name = Стреляй
keybind.zoom.name = Увеличи
keybind.menu.name = Меню
keybind.pause.name = Пауза
-keybind.pause_building.name = Спри/Продължи Строеж
-keybind.minimap.name = Мини-Карта
+keybind.skip_wave.name = Skip Wave
+keybind.pause_building.name = Спри/Продължи строеж
+keybind.minimap.name = Мини-карта
keybind.planet_map.name = Глобус/Карта на света
keybind.research.name = Проучвания
-keybind.block_info.name = Информация за Блок
+keybind.block_info.name = Информация за блок
keybind.chat.name = Чат
-keybind.player_list.name = Списък с Играчи
+keybind.player_list.name = Списък с играчи
keybind.console.name = Конзола
keybind.rotate.name = Завърти
-keybind.rotateplaced.name = Завърти Съществуващ Блок (задържане)
-keybind.toggle_menus.name = Покажи/Скрий Менюта
+keybind.rotateplaced.name = Завърти съществуващ блок (задържане)
+keybind.toggle_menus.name = Покажи/Скрий менюта
keybind.chat_history_prev.name = Предишно съобщение
keybind.chat_history_next.name = Следващо съобщение
keybind.chat_scroll.name = Превъртане на чата
keybind.chat_mode.name = Смени режим на чат
-keybind.drop_unit.name = Остави Единица
-keybind.zoom_minimap.name = Увеличи Мини-Карта
+keybind.drop_unit.name = Остави единица
+keybind.zoom_minimap.name = Увеличи мини-карта
mode.help.title = Описание на режими
-mode.survival.name = Оцеляване
-mode.survival.description = Нормалният режим на играта. Ограничени ресурси и автоматични вълни от нападатели.\n[gray]Картата трябва да съдържа начална точка на враговете.
+mode.survival.name = Survival
+
+mode.survival.description = Нормалният режим на играта. Ограничени ресурси и автоматични вълни от нападатели.\n[gray]Картата трябва да съдържа начална точка за враговете.
mode.sandbox.name = Пясъчник
mode.sandbox.description = Безкрайни ресурси и безкрайно време между вълните от нападатели.
mode.editor.name = Редактор
-mode.pvp.name = Играч Срещу Играч
+mode.pvp.name = Играч срещу играч
mode.pvp.description = Играйте срещу други играчи в локалната мрежа.\n[gray]Картата трябва да съдържа поне 2 ядра в различни цветове.
mode.attack.name = Нападение
mode.attack.description = Унищожете вражеската база. \n[gray]Картата трябва да съдържа червено ядро.
-mode.custom = Персонализирани Правила
-rules.invaliddata = Invalid clipboard data.
-rules.hidebannedblocks = Hide Banned Blocks
+mode.custom = Персонализирани правила
+rules.invaliddata = Невалидни данни от клипборда.
+rules.hidebannedblocks = Скрий забранените блокове
rules.infiniteresources = Безкрайни Ресурси
-rules.onlydepositcore = Only Allow Core Depositing
-rules.derelictrepair = Allow Derelict Block Repair
-rules.reactorexplosions = Експлозиращи Реактори
-rules.coreincinerates = Унищожаване на Ресурси при Преливане
-rules.disableworldprocessors = Disable World Processors
-rules.schematic = Позволена Употребата на Схеми
+rules.onlydepositcore = Разрешете доставяне само в ядрото
+rules.derelictrepair = Разрешете поправянето на изоставени блокове
+rules.reactorexplosions = Експлозивни реактори
+rules.coreincinerates = Унищожаване на ресурси при преливане
+rules.disableworldprocessors = Изключване на процесорите за света
+rules.schematic = Позволена употребата на схеми
rules.wavetimer = Таймер за Вълни
-rules.wavesending = Wave Sending
-rules.allowedit = Allow Editing Rules
-rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu.
+rules.wavesending = Изпращане на вълни
+rules.allowedit = Позволи е редактирането на правилата
+rules.allowedit.info = Когато включите тази опция, играчът може да променя правилата в играта чрез менюто Пауза и копчето в долният ляв ъгъл.
rules.alloweditworldprocessors = Allow Editing World Processors
rules.alloweditworldprocessors.info = When enabled, world logic blocks can be placed and edited even outside the editor.
rules.waves = Вълни
-rules.airUseSpawns = Air units use spawn points
-rules.attack = Режим Атака
-rules.buildai = Base Builder AI
-rules.buildaitier = Builder AI Tier
+rules.airUseSpawns = Въздушните единици използват точки за поява
+rules.attack = Режим атака
+rules.buildai = ИИ на строителят на бази
+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.rtsminsquadsize = Min Squad Size
-rules.rtsmaxsquadsize = Max Squad Size
-rules.rtsminattackweight = Min Attack Weight
-rules.cleanupdeadteams = Clean Up Defeated Team Buildings (PvP)
-rules.corecapture = Capture Core On Destruction
-rules.polygoncoreprotection = Polygonal Core Protection
-rules.placerangecheck = Placement Range Check
-rules.enemyCheat = Безкрайни Ресурси за Ботът (Червеният Отбор)
-rules.blockhealthmultiplier = Множител на Точките Живот на Блокове
-rules.blockdamagemultiplier = Множител на Щетите на Блокове
-rules.unitbuildspeedmultiplier = Множител на Скоростта на Производство на Единици
-rules.unitcostmultiplier = Unit Cost Multiplier
-rules.unithealthmultiplier = Множител на Точките Живот на Единици
-rules.unitdamagemultiplier = Множител на Щетите на Единици
-rules.unitcrashdamagemultiplier = Unit Crash Damage Multiplier
-rules.solarmultiplier = Solar Power Multiplier
-rules.unitcapvariable = Ядрата Увеличават Максималния Брой Единици
-rules.unitpayloadsexplode = Carried Payloads Explode With The Unit
-rules.unitcap = Максимален Брой Единици
-rules.limitarea = Limit Map Area
-rules.enemycorebuildradius = Радиус на Защитена от Строене Зона Около Ядрата:[lightgray] (полета)
-rules.wavespacing = Време Между Вълните:[lightgray] (секунди)
-rules.initialwavespacing = Initial Wave Spacing:[lightgray] (sec)
-rules.buildcostmultiplier = Множител на Необходимите Ресурси за Строене
-rules.buildspeedmultiplier = Множител на Скоростта за Строене
-rules.deconstructrefundmultiplier = Множител на Възстановени Ресурси при Деконструкция
-rules.waitForWaveToEnd = Вълните Изчакват за Врагове
-rules.wavelimit = Map Ends After Wave
-rules.dropzoneradius = Радиус на Начална Точка на Враговете:[lightgray] (полета)
-rules.unitammo = Единиците се Нуждаят от Боеприпаси
-rules.enemyteam = Enemy Team
-rules.playerteam = Player Team
+rules.rtsminsquadsize = Мин. размер на взводовете
+rules.rtsmaxsquadsize = Макс. размер на взводовете
+rules.rtsminattackweight = Мин. атакуваща тежест
+rules.cleanupdeadteams = Изчисти сградите на победения отбор (PvP)
+rules.corecapture = Завладей ядро при унищожение
+rules.polygoncoreprotection = Полигонална защита на ядрото
+rules.placerangecheck = Проверка за обхват при поставяне
+rules.enemyCheat = Безкрайни ресурси за компютъра (Червеният отбор)
+rules.blockhealthmultiplier = Множител на точките живот на блокове
+rules.blockdamagemultiplier = Множител на щетите на блокове
+rules.unitbuildspeedmultiplier = Множител на скоростта на производство на единици
+rules.unitcostmultiplier = Множител на цената за единици
+rules.unithealthmultiplier = Множител на точките живот на единици
+rules.unitdamagemultiplier = Множител на щетите на единици
+rules.unitcrashdamagemultiplier = Множител на вредата от разбиващи се единици
+rules.unitminespeedmultiplier = Unit Mine Speed Multiplier
+rules.solarmultiplier = Множител на слънчевата енергия
+rules.unitcapvariable = Ядрата увеличават максималния брой единици
+rules.unitpayloadsexplode = Носеният товар експлодира с единицата
+rules.unitcap = Максимален брой единици
+rules.limitarea = Ограничаване на картата
+rules.enemycorebuildradius = Радиус на защитена от строене зона около ядрата:[lightgray] (полета)
+rules.extracorebuildradius = Extra No-Build Radius:[lightgray] (tiles)
+rules.wavespacing = Време между вълните:[lightgray] (секунди)
+rules.initialwavespacing = Първоначално разполагане на вълните:[lightgray] (sec)
+rules.buildcostmultiplier = Множител на необходимите ресурси за строеж
+rules.buildspeedmultiplier = Множител на скоростта на строене
+rules.deconstructrefundmultiplier = Множител на възстановени ресурси при деконструкция
+rules.waitForWaveToEnd = Вълните изчакват враговете
+rules.wavelimit = Картата приключва след вълна
+rules.dropzoneradius = Радиус на начална точка на враговете:[lightgray] (полета)
+rules.unitammo = Единиците се нуждаят от боеприпаси
+rules.enemyteam = Вражески отбор
+rules.playerteam = Отбор на играча
+
rules.title.waves = Вълни
-rules.title.resourcesbuilding = Ресурси & Постройки
+rules.title.resourcesbuilding = Ресурси и постройки
rules.title.enemy = Врагове
rules.title.unit = Единици
rules.title.experimental = Експериментално
-rules.title.environment = Околна Среда
-rules.title.teams = Teams
-rules.title.planet = Planet
+rules.title.environment = Околна среда
+rules.title.teams = Отбори
+rules.title.planet = Планета
rules.lighting = Светкавици
-rules.fog = Fog of War
+rules.fog = Мъгла на войната
rules.invasions = Enemy Sector Invasions
+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.fire = Огън
rules.anyenv =
-rules.explosions = Block/Unit Explosion Damage
-rules.ambientlight = Светлина от Околната Среда
+rules.explosions = Блокирай/Единици вреда от експлозия
+rules.ambientlight = Светлина от околната среда
rules.weather = Климат
rules.weather.frequency = Честота:
rules.weather.always = Винаги
rules.weather.duration = Продължителност:
rules.randomwaveai.info = Makes units spawned in waves target random structures instead of directly attacking the core or power generators.
-rules.placerangecheck.info = Prevents players from placing anything near enemy buildings. When trying to place a turret, the range is increased, so the turret will not be able to reach the enemy.
-rules.onlydepositcore.info = Prevents units from depositing items into any buildings except cores.
+rules.placerangecheck.info = Не позволява на играчите да поставят нещо в близост до вражеските сгради. Когато се опитват да поставят оръдие, обхватът е увеличен, за да не може оръдието да достигне врага.
+rules.onlydepositcore.info = Не позволява на единиците да поставят предмети, в която и да е сграда, с изключение на ядро.
+
content.item.name = Предмети
content.liquid.name = Течности
content.unit.name = Единици
-content.block.name = Блокчета
-content.status.name = Статус-Ефекти
+content.block.name = Блокове
+content.status.name = Статус-ефекти
content.sector.name = Сектори
-content.team.name = Factions
-wallore = (Wall)
+content.team.name = Групировки
+wallore = (Стена)
item.copper.name = Мед
item.lead.name = Олово
@@ -1432,30 +1477,30 @@ item.thorium.name = Торий
item.silicon.name = Силикон
item.plastanium.name = Пластаний
item.phase-fabric.name = Фазова тъкан
-item.surge-alloy.name = Импулсна Сплав
-item.spore-pod.name = Сгъстени Спори
+item.surge-alloy.name = Импулсна сплав
+item.spore-pod.name = Сгъстени спори
item.sand.name = Пясък
item.blast-compound.name = Взривно съединение
item.pyratite.name = Пиратит
-item.metaglass.name = Метастъкло
+item.metaglass.name = Мета-стъкло
item.scrap.name = Скрап
-item.fissile-matter.name = Fissile Matter
-item.beryllium.name = Beryllium
-item.tungsten.name = Tungsten
-item.oxide.name = Oxide
-item.carbide.name = Carbide
-item.dormant-cyst.name = Dormant Cyst
+item.fissile-matter.name = Шистена материя
+item.beryllium.name = Берилий
+item.tungsten.name = Волфрам
+item.oxide.name = Оксид
+item.carbide.name = Карбид
+item.dormant-cyst.name = Латентна циста
liquid.water.name = Вода
liquid.slag.name = Шлака
liquid.oil.name = Нефт
-liquid.cryofluid.name = Криофлуид
-liquid.neoplasm.name = Neoplasm
-liquid.arkycite.name = Arkycite
-liquid.gallium.name = Gallium
-liquid.ozone.name = Ozone
-liquid.hydrogen.name = Hydrogen
-liquid.nitrogen.name = Nitrogen
-liquid.cyanogen.name = Cyanogen
+liquid.cryofluid.name = Криотечност
+liquid.neoplasm.name = Неоплазма
+liquid.arkycite.name = Аркицид
+liquid.gallium.name = Галий
+liquid.ozone.name = Озон
+liquid.hydrogen.name = Водород
+liquid.nitrogen.name = Въглерод
+liquid.cyanogen.name = Цианоген
unit.dagger.name = Кинжал
unit.mace.name = Боздуган
@@ -1472,7 +1517,7 @@ unit.flare.name = Факел
unit.horizon.name = Хоризонт
unit.zenith.name = Зенит
unit.antumbra.name = Антумбра
-unit.eclipse.name = Еклипс
+unit.eclipse.name = Затъмнение
unit.mono.name = Моно
unit.poly.name = Поли
unit.mega.name = Мега
@@ -1483,606 +1528,611 @@ unit.minke.name = Минке
unit.bryde.name = Брайд
unit.sei.name = Сей
unit.omura.name = Омура
-unit.retusa.name = Retusa
-unit.oxynoe.name = Oxynoe
-unit.cyerce.name = Cyerce
-unit.aegires.name = Aegires
-unit.navanax.name = Navanax
+unit.retusa.name = Ретуза
+unit.oxynoe.name = Оксиное
+unit.cyerce.name = Цирсе
+unit.aegires.name = Ежир
+unit.navanax.name = Наванакс
unit.alpha.name = Алфа
unit.beta.name = Бета
-unit.gamma.name = Гана
+unit.gamma.name = Гама
unit.scepter.name = Скиптър
-unit.reign.name = Реиг
+unit.reign.name = Власт
unit.vela.name = Вела
-unit.corvus.name = Корвус
-unit.stell.name = Stell
-unit.locus.name = Locus
-unit.precept.name = Precept
-unit.vanquish.name = Vanquish
-unit.conquer.name = Conquer
-unit.merui.name = Merui
-unit.cleroi.name = Cleroi
-unit.anthicus.name = Anthicus
-unit.tecta.name = Tecta
-unit.collaris.name = Collaris
-unit.elude.name = Elude
-unit.avert.name = Avert
-unit.obviate.name = Obviate
-unit.quell.name = Quell
-unit.disrupt.name = Disrupt
-unit.evoke.name = Evoke
-unit.incite.name = Incite
-unit.emanate.name = Emanate
-unit.manifold.name = Manifold
-unit.assembly-drone.name = Assembly Drone
-unit.latum.name = Latum
-unit.renale.name = Renale
+unit.corvus.name = Гарван
+unit.stell.name = Щел
+unit.locus.name = Рояк
+unit.precept.name = Правило
+unit.vanquish.name = Победа
+unit.conquer.name = Завоевание
+unit.merui.name = Меруи
+unit.cleroi.name = Клерой
+unit.anthicus.name = Антик
+unit.tecta.name = Текта
+unit.collaris.name = Коларис
+unit.elude.name = Бегач
+unit.avert.name = Отклонение
+unit.obviate.name = Заличител
+unit.quell.name = Потушение
+unit.disrupt.name = Възпиране
+unit.evoke.name = Пробуждане
+unit.incite.name = Подстрекател
+unit.emanate.name = Еманация
+unit.manifold.name = Разклонение
+unit.assembly-drone.name = Дрон-строител
+unit.latum.name = Латум
+unit.renale.name = Ренал
block.parallax.name = Паралакс
block.cliff.name = Скала
-block.sand-boulder.name = Пясъчен Камък
-block.basalt-boulder.name = Базалтов Камък
+block.sand-boulder.name = Пясъчен камък
+block.basalt-boulder.name = Базалтов камък
block.grass.name = Трева
block.molten-slag.name = Шлака
-block.pooled-cryofluid.name = Cryofluid
+block.pooled-cryofluid.name = Криотечност
block.space.name = Космос
block.salt.name = Сол
-block.salt-wall.name = Стена от Сол
+block.salt-wall.name = Стена от сол
block.pebbles.name = Камъчета
block.tendrils.name = Пипала
-block.sand-wall.name = Стена от Пясък
-block.spore-pine.name = Топка от Спори
-block.spore-wall.name = Стена от Спори
+block.sand-wall.name = Стена от пясък
+block.spore-pine.name = Топка от спори
+block.spore-wall.name = Стена от спори
block.boulder.name = Камък
-block.snow-boulder.name = Снежна Скала
+block.snow-boulder.name = Снежна скала
block.snow-pine.name = Снежна топка
block.shale.name = Глина
-block.shale-boulder.name = Глинена Скала
+block.shale-boulder.name = Глинена скала
block.moss.name = Мъх
block.shrubs.name = Храсти
block.spore-moss.name = Спорест мъх
-block.shale-wall.name = Стена от Храсти
-block.scrap-wall.name = Стена от Скрап
-block.scrap-wall-large.name = Голяма Стена от Скрап
-block.scrap-wall-huge.name = Огромня Стена от Скрап
-block.scrap-wall-gigantic.name = Гигантска Стена от Скрап
+block.shale-wall.name = Стена от храсти
+block.scrap-wall.name = Стена от скрап
+block.scrap-wall-large.name = Голяма стена от скрап
+block.scrap-wall-huge.name = Огромна стена от скрап
+block.scrap-wall-gigantic.name = Гигантска стена от скрап
block.thruster.name = Двигател
block.kiln.name = Пещ
-block.graphite-press.name = Графитна Преса
-block.multi-press.name = Мулти-Преса
-block.constructing = {0} [lightgray](конструиране)
-block.spawn.name = Вражеска Начална Точка
+block.graphite-press.name = Графитна преса
+block.multi-press.name = Мулти-преса
+block.constructing = {0} [lightgray](изграждане)
+block.spawn.name = Вражеска начална точка
block.remove-wall.name = Remove Wall
block.remove-ore.name = Remove Ore
-block.core-shard.name = Ядро: Шард
-block.core-foundation.name = Core: Фондация
-block.core-nucleus.name = Core: Център
-block.deep-water.name = Дълбока Вода
+block.core-shard.name = Ядро: Частица
+block.core-foundation.name = Ядро: Фондация
+block.core-nucleus.name = Ядро: Център
+block.deep-water.name = Дълбока вода
block.shallow-water.name = Вода
-block.tainted-water.name = Замърсена Вода
-block.deep-tainted-water.name = Deep Tainted Water
-block.darksand-tainted-water.name = Тъмен Пясък - Замърсена Вода
+block.tainted-water.name = Замърсена вода
+block.deep-tainted-water.name = Дълбоко замърсена вода
+block.darksand-tainted-water.name = Тъмен пясък - Замърсена вода
block.tar.name = Катран
block.stone.name = Камък
block.sand-floor.name = Пясък
-block.darksand.name = Тъмен Пясък
+block.darksand.name = Тъмен пясък
block.ice.name = Лед
block.snow.name = Сняг
block.crater-stone.name = Кратери
block.sand-water.name = Пясък - Вода
block.darksand-water.name = Тъмен Пясък - Вода
-block.char.name = Овъглен Камък
+block.char.name = Овъглен камък
block.dacite.name = Дацит
-block.rhyolite.name = Rhyolite
-block.dacite-wall.name = Стена от Дацит
-block.dacite-boulder.name = Скала от Дацит
+block.rhyolite.name = Риолит
+block.dacite-wall.name = Стена от дацит
+block.dacite-boulder.name = Скала от дацит
block.ice-snow.name = Лед - Сняг
-block.stone-wall.name = Стена от Камък
-block.ice-wall.name = Стена от Лед
-block.snow-wall.name = Стена от Сняг
-block.dune-wall.name = Стена от Дюна
+block.stone-wall.name = Стена от камък
+block.ice-wall.name = Стена от лед
+block.snow-wall.name = Стена от сняг
+block.dune-wall.name = Стена от дюна
block.pine.name = Бор
block.dirt.name = Пръст
-block.dirt-wall.name = Стена от Пръст
+block.dirt-wall.name = Стена от пръст
block.mud.name = Кал
-block.white-tree-dead.name = Мъртво Бяло Дърво
-block.white-tree.name = Бяло Дърво
-block.spore-cluster.name = Клъстер от спори
-block.metal-floor.name = Метален Под 1
-block.metal-floor-2.name = Метален Под 2
-block.metal-floor-3.name = Метален Под 3
-block.metal-floor-4.name = Metal Floor 4
-block.metal-floor-5.name = Метален Под 4
-block.metal-floor-damaged.name = Увреден Метален Под
-block.dark-panel-1.name = Тъмен Панел 1
-block.dark-panel-2.name = Тъмен Панел 2
-block.dark-panel-3.name = Тъмен Панел 3
-block.dark-panel-4.name = Тъмен Панел 4
-block.dark-panel-5.name = Тъмен Панел 5
-block.dark-panel-6.name = Тъмен Панел 6
-block.dark-metal.name = Тъмен Метал
+block.white-tree-dead.name = Мъртво бяло дърво
+block.white-tree.name = Бяло дърво
+block.spore-cluster.name = Купчина спори
+block.metal-floor.name = Метален под 1
+block.metal-floor-2.name = Метален под 2
+block.metal-floor-3.name = Метален под 3
+block.metal-floor-4.name = Метален под 4
+block.metal-floor-5.name = Метален под 4
+block.metal-floor-damaged.name = Повреден метален под
+block.dark-panel-1.name = Тъмен панел 1
+block.dark-panel-2.name = Тъмен панел 2
+block.dark-panel-3.name = Тъмен панел 3
+block.dark-panel-4.name = Тъмен панел 4
+block.dark-panel-5.name = Тъмен панел 5
+block.dark-panel-6.name = Тъмен панел 6
+block.dark-metal.name = Тъмен метал
block.basalt.name = Базалт
-block.hotrock.name = Топла Скала
-block.magmarock.name = Магмена Скала
-block.copper-wall.name = Стена от Мед
-block.copper-wall-large.name = Голяма Стена от Мед
-block.titanium-wall.name = Стена от Титан
-block.titanium-wall-large.name = Голяма Стена от Титан
-block.plastanium-wall.name = Стена от Пластаний
-block.plastanium-wall-large.name = Голяма Стена от Пластаний
-block.phase-wall.name = Фазова Стена
-block.phase-wall-large.name = Голяма Фазова Стена
-block.thorium-wall.name = Стена от Торий
-block.thorium-wall-large.name = Голяма Стена от Торий
+block.hotrock.name = Топла скала
+block.magmarock.name = Магмена скала
+block.copper-wall.name = Стена от мед
+block.copper-wall-large.name = Голяма стена от мед
+block.titanium-wall.name = Стена от титан
+block.titanium-wall-large.name = Голяма стена от титан
+block.plastanium-wall.name = Стена от пластаний
+block.plastanium-wall-large.name = Голяма стена от пластаний
+block.phase-wall.name = Фазова стена
+block.phase-wall-large.name = Голяма фазова стена
+block.thorium-wall.name = Стена от торий
+block.thorium-wall-large.name = Голяма стена от торий
block.door.name = Врата
-block.door-large.name = Голяма Врата
+block.door-large.name = Голяма врата
block.duo.name = Дуо
block.scorch.name = Горелка
block.scatter.name = Пръскач
block.hail.name = Градушка
block.lancer.name = Улан
-block.conveyor.name = Конвейер
-block.titanium-conveyor.name = Титаниев Конвейер
-block.plastanium-conveyor.name = Пластаниев Конвейер
-block.armored-conveyor.name = Брониран Конвейер
+block.conveyor.name = Лента
+block.titanium-conveyor.name = Титаниева лента
+block.plastanium-conveyor.name = Пластаниева лента
+block.armored-conveyor.name = Бронирана лента
block.junction.name = Кръстовище
block.router.name = Рутер
block.distributor.name = Разпределител
-block.sorter.name = Сортирач
-block.inverted-sorter.name = Обърнат сортирач
+block.sorter.name = Сортировач
+block.inverted-sorter.name = Обърнат сортировач
block.message.name = Съобщение
-block.reinforced-message.name = Reinforced Message
-block.world-message.name = World Message
-block.world-switch.name = World Switch
+block.reinforced-message.name = Подсилено съобщение
+block.world-message.name = Глобално съобщение
+block.world-switch.name = Глобален превключвател
block.illuminator.name = Осветител
-block.overflow-gate.name = Преливаща Порта
-block.underflow-gate.name = Обратна Преливаща Порта
-block.silicon-smelter.name = Силиконова Пещ
-block.phase-weaver.name = Тъкач на Фазова тъкан
+block.overflow-gate.name = Преливаща порта
+block.underflow-gate.name = Обратна преливаща порта
+block.silicon-smelter.name = Силиконова пещ
+block.phase-weaver.name = Тъкач на фазова тъкан
block.pulverizer.name = Пулверизатор
-block.cryofluid-mixer.name = Криофлуид Миксер
+block.cryofluid-mixer.name = Миксер за криотечност
block.melter.name = Разтопител
-block.incinerator.name = Инсинератор
-block.spore-press.name = Преса за Спори
+block.incinerator.name = Крематорий
+block.spore-press.name = Преса за спори
block.separator.name = Разделител
-block.coal-centrifuge.name = Центрифуга за Въглища
-block.power-node.name = Електрически Възел
-block.power-node-large.name = Голям Електрически Възел
+block.coal-centrifuge.name = Центрифуга за въглища
+block.power-node.name = Електрически възел
+block.power-node-large.name = Голям електрически възел
block.surge-tower.name = Трафопост
block.diode.name = Диод
block.battery.name = Батерия
-block.battery-large.name = Голяма Батерия
-block.combustion-generator.name = Горивен Генератор
-block.steam-generator.name = Парен Генератор
-block.differential-generator.name = Диференциален Генератор
+block.battery-large.name = Голяма батерия
+block.combustion-generator.name = Горивен генератор
+block.steam-generator.name = Парен генератор
+block.differential-generator.name = Диференциален генератор
block.impact-reactor.name = Ударен реактор
-block.mechanical-drill.name = Механично Свредло
-block.pneumatic-drill.name = Пневматично Свредло
-block.laser-drill.name = Лазерно Свредло
-block.water-extractor.name = Водна Сонда
+block.mechanical-drill.name = Механично свредло
+block.pneumatic-drill.name = Пневматично свредло
+block.laser-drill.name = Лазерно свредло
+block.water-extractor.name = Водна сонда
block.cultivator.name = Култиватор
block.conduit.name = Тръбопровод
-block.mechanical-pump.name = Механична Помпа
-block.item-source.name = Материализатор на Предмети
-block.item-void.name = Дематериализатор на Предмети
-block.liquid-source.name = Материализатор на Течности
-block.liquid-void.name = Дематериализатор на Течности
-block.power-void.name = Материализатор на Енергия
-block.power-source.name = Дематериализатор на Енергия
+block.mechanical-pump.name = Механична помпа
+block.item-source.name = Материализатор на предмети
+block.item-void.name = Дематериализатор на предмети
+block.liquid-source.name = Материализатор на течности
+block.liquid-void.name = Дематериализатор натТечности
+block.power-void.name = Материализатор на енергия
+block.power-source.name = Дематериализатор на енергия
block.unloader.name = Разтоварващо устройство
block.vault.name = Склад
block.wave.name = Вълна
block.tsunami.name = Цунами
-block.swarmer.name = Ракетна Установка
+block.swarmer.name = Ракетен рояк
block.salvo.name = Салво
block.ripple.name = Рипъл
-block.phase-conveyor.name = Фазов Конвейер
-block.bridge-conveyor.name = Мостов Конвейер
-block.plastanium-compressor.name = Пластаниев Конвейер
-block.pyratite-mixer.name = Смесител на Пиратит
-block.blast-mixer.name = Смесител на Взривно съединение
+block.phase-conveyor.name = Фазова лента
+block.bridge-conveyor.name = Мостова лента
+block.plastanium-compressor.name = Пластаниева лента
+block.pyratite-mixer.name = Смесител на пиратит
+block.blast-mixer.name = Смесител на взривно съединение
block.solar-panel.name = Фотоволтаик
-block.solar-panel-large.name = Голям Фотоволтаик
-block.oil-extractor.name = Нефтена Сонда
+block.solar-panel-large.name = Голям фотоволтаик
+block.oil-extractor.name = Нефтена сонда
block.repair-point.name = Точка за поправка
-block.repair-turret.name = Repair Turret
+block.repair-turret.name = Поправящо уръдие
block.pulse-conduit.name = Импулсен тръбопровод
block.plated-conduit.name = Тръбопровод с покритие
-block.phase-conduit.name = Фазов Тръбопровод
-block.liquid-router.name = Рутер за Течности
-block.liquid-tank.name = Резервоар за Течности
-block.liquid-container.name = Liquid Container
-block.liquid-junction.name = Тръбопроводно Кръстовище
-block.bridge-conduit.name = Мост за Течности
+block.phase-conduit.name = Фазов тръбопровод
+block.liquid-router.name = Рутер за течности
+block.liquid-tank.name = Резервоар за течности
+block.liquid-container.name = Контейнер за течности
+block.liquid-junction.name = Тръбопроводно кръстовище
+block.bridge-conduit.name = Мост за течности
block.rotary-pump.name = Ротационна помпа
block.thorium-reactor.name = Ториев реактор
-block.mass-driver.name = Масов Преносител
+block.mass-driver.name = Масов преносител
block.blast-drill.name = Въздушно свредло
-block.impulse-pump.name = Термична Помпа
-block.thermal-generator.name = Термичен Генератор
-block.surge-smelter.name = Претопител за Импулсна сплав
+block.impulse-pump.name = Термична помпа
+block.thermal-generator.name = Термичен генератор
+block.surge-smelter.name = Претопител за импулсна сплав
block.mender.name = Възстановител
-block.mend-projector.name = Възстановяващ Проектор
-block.surge-wall.name = Импулсна Стена
-block.surge-wall-large.name = Голяма Импулсна Стена
+block.mend-projector.name = Възстановяващ проектор
+block.surge-wall.name = Импулсна стена
+block.surge-wall-large.name = Голяма импулсна стена
block.cyclone.name = Циклон
block.fuse.name = Електрошок
block.shock-mine.name = Мина
-block.overdrive-projector.name = Ускоряващ Проектор
-block.force-projector.name = Силов Проектор
-block.arc.name = Волтова Дъга
+block.overdrive-projector.name = Ускоряващ проектор
+block.force-projector.name = Силов проектор
+block.arc.name = Волтова дъга
block.rtg-generator.name = RTG генератор
block.spectre.name = Спектър
block.meltdown.name = Разтопител
block.foreshadow.name = Предвестител
block.container.name = Контейнер
-block.launch-pad.name = Изстрелваща Площадка
+block.launch-pad.name = Изстрелваща площадка
+block.advanced-launch-pad.name = Launch Pad
+block.landing-pad.name = Landing Pad
block.segment.name = Сегмент
-block.ground-factory.name = Наземна Фабрика
-block.air-factory.name = Въздушна Фабрика
-block.naval-factory.name = Морска Фабрика
-block.additive-reconstructor.name = Добавящ Реконструктор
-block.multiplicative-reconstructor.name = Умножаващ Реконструктор
-block.exponential-reconstructor.name = Експоненциален Реконструктор
-block.tetrative-reconstructor.name = Тетративен Реконструктор
-block.payload-conveyor.name = Товарен Конвейер
-block.payload-router.name = Товарен Рутер
-block.duct.name = Duct
-block.duct-router.name = Duct Router
-block.duct-bridge.name = Duct Bridge
-block.large-payload-mass-driver.name = Large Payload Mass Driver
-block.payload-void.name = Payload Void
-block.payload-source.name = Payload Source
+block.ground-factory.name = Наземна фабрика
+block.air-factory.name = Въздушна фабрика
+block.naval-factory.name = Морска фабрика
+block.additive-reconstructor.name = Добавящ реконструктор
+block.multiplicative-reconstructor.name = Умножаващ реконструктор
+block.exponential-reconstructor.name = Експоненциален реконструктор
+block.tetrative-reconstructor.name = Тетративен реконструктор
+block.payload-conveyor.name = Товарна лента
+block.payload-router.name = Товарен рутер
+block.duct.name = Канал
+block.duct-router.name = Канален рутер
+block.duct-bridge.name = Канален мост
+block.large-payload-mass-driver.name = Масиран доставчик на едър товар
+block.payload-void.name = Товарна бездна
+block.payload-source.name = Товарен източник
block.disassembler.name = Разглобител
-block.silicon-crucible.name = Силиконов Тигел
-block.overdrive-dome.name = Ускоряващ Купол
-block.interplanetary-accelerator.name = Междупланетен Ускорител
-block.constructor.name = Constructor
-block.constructor.description = Fabricates structures up to 2x2 tiles in size.
-block.large-constructor.name = Large Constructor
-block.large-constructor.description = Fabricates structures up to 4x4 tiles in size.
-block.deconstructor.name = Deconstructor
-block.deconstructor.description = Deconstructs structures and units. Returns 100% of build cost.
-block.payload-loader.name = Payload Loader
-block.payload-loader.description = Load liquids and items into blocks.
-block.payload-unloader.name = Payload Unloader
-block.payload-unloader.description = Unloads liquids and items from blocks.
-block.heat-source.name = Heat Source
-block.heat-source.description = A 1x1 block that gives virtualy infinite heat.
-block.empty.name = Empty
-block.rhyolite-crater.name = Rhyolite Crater
-block.rough-rhyolite.name = Rough Rhyolite
-block.regolith.name = Regolith
-block.yellow-stone.name = Yellow Stone
-block.carbon-stone.name = Carbon Stone
-block.ferric-stone.name = Ferric Stone
-block.ferric-craters.name = Ferric Craters
-block.beryllic-stone.name = Beryllic Stone
-block.crystalline-stone.name = Crystalline Stone
-block.crystal-floor.name = Crystal Floor
-block.yellow-stone-plates.name = Yellow Stone Plates
-block.red-stone.name = Red Stone
-block.dense-red-stone.name = Dense Red Stone
-block.red-ice.name = Red Ice
-block.arkycite-floor.name = Arkycite Floor
-block.arkyic-stone.name = Arkyic Stone
-block.rhyolite-vent.name = Rhyolite Vent
-block.carbon-vent.name = Carbon Vent
-block.arkyic-vent.name = Arkyic Vent
-block.yellow-stone-vent.name = Yellow Stone Vent
-block.red-stone-vent.name = Red Stone Vent
-block.crystalline-vent.name = Crystalline Vent
-block.redmat.name = Redmat
-block.bluemat.name = Bluemat
-block.core-zone.name = Core Zone
-block.regolith-wall.name = Regolith Wall
-block.yellow-stone-wall.name = Yellow Stone Wall
-block.rhyolite-wall.name = Rhyolite Wall
-block.carbon-wall.name = Carbon Wall
-block.ferric-stone-wall.name = Ferric Stone Wall
-block.beryllic-stone-wall.name = Beryllic Stone Wall
-block.arkyic-wall.name = Arkyic Wall
-block.crystalline-stone-wall.name = Crystalline Stone Wall
-block.red-ice-wall.name = Red Ice Wall
-block.red-stone-wall.name = Red Stone Wall
-block.red-diamond-wall.name = Red Diamond Wall
-block.redweed.name = Redweed
-block.pur-bush.name = Pur Bush
-block.yellowcoral.name = Yellowcoral
-block.carbon-boulder.name = Carbon Boulder
-block.ferric-boulder.name = Ferric Boulder
-block.beryllic-boulder.name = Beryllic Boulder
-block.yellow-stone-boulder.name = Yellow Stone Boulder
-block.arkyic-boulder.name = Arkyic Boulder
-block.crystal-cluster.name = Crystal Cluster
-block.vibrant-crystal-cluster.name = Vibrant Crystal Cluster
-block.crystal-blocks.name = Crystal Blocks
-block.crystal-orbs.name = Crystal Orbs
-block.crystalline-boulder.name = Crystalline Boulder
-block.red-ice-boulder.name = Red Ice Boulder
-block.rhyolite-boulder.name = Rhyolite Boulder
-block.red-stone-boulder.name = Red Stone Boulder
-block.graphitic-wall.name = Graphitic Wall
-block.silicon-arc-furnace.name = Silicon Arc Furnace
-block.electrolyzer.name = Electrolyzer
-block.atmospheric-concentrator.name = Atmospheric Concentrator
-block.oxidation-chamber.name = Oxidation Chamber
-block.electric-heater.name = Electric Heater
-block.slag-heater.name = Slag Heater
-block.phase-heater.name = Phase Heater
-block.heat-redirector.name = Heat Redirector
+block.silicon-crucible.name = Силиконов тигел
+block.overdrive-dome.name = Ускоряващ купол
+block.interplanetary-accelerator.name = Междупланетен ускорител
+block.constructor.name = Строител
+block.constructor.description = Изработва сгради до размер 2х2 полета.
+block.large-constructor.name = Едър строител
+block.large-constructor.description = Изработва сгради до размер 4х4 полета.
+block.deconstructor.name = Деконструктор
+block.deconstructor.description = Разглабя сгради и единици. Възстановява 100% от разходите.
+block.payload-loader.name = Товарител
+block.payload-loader.description = Товари течности и предмети в блокове.
+block.payload-unloader.name = Разтоварител
+block.payload-unloader.description = Разтоварва течности и предмети от блокове.
+block.heat-source.name = Топлинен източник
+block.heat-source.description = Блок в размер 1х1. Отделя почти безкрайна топлина.
+block.empty.name = Празно
+block.rhyolite-crater.name = Риолитен кратер
+block.rough-rhyolite.name = Суров риолит
+block.regolith.name = Реголит
+block.yellow-stone.name = Жълт камък
+block.carbon-stone.name = Въглероден камък
+block.ferric-stone.name = Железен камък
+block.ferric-craters.name = Железни кратери
+block.beryllic-stone.name = Камък от берил
+block.crystalline-stone.name = Кристален камък
+block.crystal-floor.name = Кристален под
+block.yellow-stone-plates.name = Жълти каменни плочи
+block.red-stone.name = Червен камък
+block.dense-red-stone.name = Гъст червен камък
+block.red-ice.name = Червен лед
+block.arkycite-floor.name = Аркициден под
+block.arkyic-stone.name = Аркичен камък
+block.rhyolite-vent.name = Риолитен отвор
+block.carbon-vent.name = Въглероден отвор
+block.arkyic-vent.name = Аркичен отвор
+block.yellow-stone-vent.name = Отвор за жълт камък
+block.red-stone-vent.name = Отвор за червен камък
+block.crystalline-vent.name = Кристален отвор
+block.stone-vent.name = Stone Vent
+block.basalt-vent.name = Basalt Vent
+block.redmat.name = Червен килим
+block.bluemat.name = Син килим
+block.core-zone.name = Зона за ядро
+block.regolith-wall.name = Реголитна стена
+block.yellow-stone-wall.name = Стена от жълт камък
+block.rhyolite-wall.name = Риолитна стена
+block.carbon-wall.name = Въглеродна стена
+block.ferric-stone-wall.name = Железна стена
+block.beryllic-stone-wall.name = Стена от берил
+block.arkyic-wall.name = Аркична стена
+block.crystalline-stone-wall.name = Кристална стена
+block.red-ice-wall.name = Стена от червен лед
+block.red-stone-wall.name = Стена от червен камък
+block.red-diamond-wall.name = Стена от червен диамант
+block.redweed.name = Червена тръстика
+block.pur-bush.name = Пур храст
+block.yellowcoral.name = Жълт корал
+block.carbon-boulder.name = Въглеродна скала
+block.ferric-boulder.name = Желязна скала
+block.beryllic-boulder.name = Скала от берил
+block.yellow-stone-boulder.name = Скала от жълт камък
+block.arkyic-boulder.name = Аркична скала
+block.crystal-cluster.name = Куп кристали
+block.vibrant-crystal-cluster.name = Куп от ярки кристали
+block.crystal-blocks.name = Кристални блокове
+block.crystal-orbs.name = Кристални кълба
+block.crystalline-boulder.name = Кристални скали
+block.red-ice-boulder.name = Скала от червен лед
+block.rhyolite-boulder.name = Риолитна скала
+block.red-stone-boulder.name = Скала от червен камък
+block.graphitic-wall.name = Стена от графит
+block.silicon-arc-furnace.name = Аркова фурна за силикон
+block.electrolyzer.name = Електролизатор
+block.atmospheric-concentrator.name = Концентратор на атмосфера
+block.oxidation-chamber.name = Оксидационна камера
+block.electric-heater.name = Електрически нагревател
+block.slag-heater.name = Нагревател за слаг
+block.phase-heater.name = Фазов нагревател
+block.heat-redirector.name = Разпределител на топлина
block.small-heat-redirector.name = Small Heat Redirector
-block.heat-router.name = Heat Router
-block.slag-incinerator.name = Slag Incinerator
-block.carbide-crucible.name = Carbide Crucible
-block.slag-centrifuge.name = Slag Centrifuge
-block.surge-crucible.name = Surge Crucible
-block.cyanogen-synthesizer.name = Cyanogen Synthesizer
-block.phase-synthesizer.name = Phase Synthesizer
-block.heat-reactor.name = Heat Reactor
-block.beryllium-wall.name = Beryllium Wall
-block.beryllium-wall-large.name = Large Beryllium Wall
-block.tungsten-wall.name = Tungsten Wall
-block.tungsten-wall-large.name = Large Tungsten Wall
-block.blast-door.name = Blast Door
-block.carbide-wall.name = Carbide Wall
-block.carbide-wall-large.name = Large Carbide Wall
-block.reinforced-surge-wall.name = Reinforced Surge Wall
-block.reinforced-surge-wall-large.name = Large Reinforced Surge Wall
-block.shielded-wall.name = Shielded Wall
-block.radar.name = Radar
-block.build-tower.name = Build Tower
-block.regen-projector.name = Regen Projector
-block.shockwave-tower.name = Shockwave Tower
-block.shield-projector.name = Shield Projector
-block.large-shield-projector.name = Large Shield Projector
-block.armored-duct.name = Armored Duct
-block.overflow-duct.name = Overflow Duct
-block.underflow-duct.name = Underflow Duct
-block.duct-unloader.name = Duct Unloader
-block.surge-conveyor.name = Surge Conveyor
-block.surge-router.name = Surge Router
-block.unit-cargo-loader.name = Unit Cargo Loader
-block.unit-cargo-unload-point.name = Unit Cargo Unload Point
-block.reinforced-pump.name = Reinforced Pump
-block.reinforced-conduit.name = Reinforced Conduit
-block.reinforced-liquid-junction.name = Reinforced Liquid Junction
-block.reinforced-bridge-conduit.name = Reinforced Bridge Conduit
-block.reinforced-liquid-router.name = Reinforced Liquid Router
-block.reinforced-liquid-container.name = Reinforced Liquid Container
-block.reinforced-liquid-tank.name = Reinforced Liquid Tank
-block.beam-node.name = Beam Node
-block.beam-tower.name = Beam Tower
-block.beam-link.name = Beam Link
-block.turbine-condenser.name = Turbine Condenser
-block.chemical-combustion-chamber.name = Chemical Combustion Chamber
-block.pyrolysis-generator.name = Pyrolysis Generator
+block.heat-router.name = Топлинен рутер
+block.slag-incinerator.name = Фурна за слаг
+block.carbide-crucible.name = Тигел за карбид
+block.slag-centrifuge.name = Центрифуга за слаг
+block.surge-crucible.name = Импулсен тигел
+block.cyanogen-synthesizer.name = Цианогенен синтезатор
+block.phase-synthesizer.name = Фазов синтезатор
+block.heat-reactor.name = Топлинен реактор
+block.beryllium-wall.name = Стена от берилий
+block.beryllium-wall-large.name = Голяма стена от берилий
+block.tungsten-wall.name = Стена от волфрам
+block.tungsten-wall-large.name = Голяма стена от волфрам
+block.blast-door.name = Огнеупорна врата
+block.carbide-wall.name = Стена от карбид
+block.carbide-wall-large.name = Голяма стена от карбид
+block.reinforced-surge-wall.name = Подсилена импулсна стена
+block.reinforced-surge-wall-large.name = Голяма подсилена импулсна стена
+block.shielded-wall.name = Енергийна стена
+block.radar.name = Радар
+block.build-tower.name = Построй кула
+block.regen-projector.name = Прожектор за регенерация
+block.shockwave-tower.name = Шокова кула
+block.shield-projector.name = Щитов прожектор
+block.large-shield-projector.name = Голям щитов прожектор
+block.armored-duct.name = Брониран канал
+block.overflow-duct.name = Преливащ канал
+block.underflow-duct.name = Подливащ канал
+block.duct-unloader.name = Разтоварващ канал
+block.surge-conveyor.name = Импулсна лента
+block.surge-router.name = Импулсен рутер
+block.unit-cargo-loader.name = Товарител
+block.unit-cargo-unload-point.name = Точка за разтоварване
+block.reinforced-pump.name = Подсилена помпа
+block.reinforced-conduit.name = Подсилена тръба
+block.reinforced-liquid-junction.name = Подсилена свръзка за течности
+block.reinforced-bridge-conduit.name = Подсилена мостова тръба
+block.reinforced-liquid-router.name = Подсилен рутер за течности
+block.reinforced-liquid-container.name = Подсилен контейнер за течности
+block.reinforced-liquid-tank.name = Подсилен басейн за течности
+block.beam-node.name = Лъчева точка
+block.beam-tower.name = Лъчева кула
+block.beam-link.name = Лъчева свръзка
+block.turbine-condenser.name = Турбинен сгъстител
+block.chemical-combustion-chamber.name = Химическа камера за горене
+block.pyrolysis-generator.name = Пиролизен генератор
block.vent-condenser.name = Vent Condenser
-block.cliff-crusher.name = Cliff Crusher
+block.cliff-crusher.name = Трошачка за скали
block.large-cliff-crusher.name = Advanced Cliff Crusher
-block.plasma-bore.name = Plasma Bore
-block.large-plasma-bore.name = Large Plasma Bore
-block.impact-drill.name = Impact Drill
-block.eruption-drill.name = Eruption Drill
-block.core-bastion.name = Core Bastion
-block.core-citadel.name = Core Citadel
-block.core-acropolis.name = Core Acropolis
-block.reinforced-container.name = Reinforced Container
-block.reinforced-vault.name = Reinforced Vault
-block.breach.name = Breach
-block.sublimate.name = Sublimate
-block.titan.name = Titan
-block.disperse.name = Disperse
-block.afflict.name = Afflict
-block.lustre.name = Lustre
-block.scathe.name = Scathe
-block.tank-refabricator.name = Tank Refabricator
-block.mech-refabricator.name = Mech Refabricator
-block.ship-refabricator.name = Ship Refabricator
-block.tank-assembler.name = Tank Assembler
-block.ship-assembler.name = Ship Assembler
-block.mech-assembler.name = Mech Assembler
-block.reinforced-payload-conveyor.name = Reinforced Payload Conveyor
-block.reinforced-payload-router.name = Reinforced Payload Router
-block.payload-mass-driver.name = Payload Mass Driver
-block.small-deconstructor.name = Small Deconstructor
-block.canvas.name = Canvas
-block.world-processor.name = World Processor
-block.world-cell.name = World Cell
-block.tank-fabricator.name = Tank Fabricator
-block.mech-fabricator.name = Mech Fabricator
-block.ship-fabricator.name = Ship Fabricator
-block.prime-refabricator.name = Prime Refabricator
-block.unit-repair-tower.name = Unit Repair Tower
-block.diffuse.name = Diffuse
-block.basic-assembler-module.name = Basic Assembler Module
-block.smite.name = Smite
-block.malign.name = Malign
-block.flux-reactor.name = Flux Reactor
-block.neoplasia-reactor.name = Neoplasia Reactor
+block.plasma-bore.name = Плазмен свредел
+block.large-plasma-bore.name = Голям плазмен свредел
+block.impact-drill.name = Сблъсъчен свредел
+block.eruption-drill.name = Взривен свредел
+block.core-bastion.name = Ядро Убежище
+block.core-citadel.name = Ядро Цитадела
+block.core-acropolis.name = Ядро Акропол
+block.reinforced-container.name = Подсилен контейнер
+block.reinforced-vault.name = Подсилен трезор
+block.breach.name = Пробив
+block.sublimate.name = Сублимат
+block.titan.name = Титан
+block.disperse.name = Разпръсък
+block.afflict.name = Мъчител
+block.lustre.name = Блясък
+block.scathe.name = Поражение
+block.tank-refabricator.name = Рефабрикатор за танкове
+block.mech-refabricator.name = Рефабрикатор за машини
+block.ship-refabricator.name = Рефабрикатор за кораби
+block.tank-assembler.name = Производител на танкове
+block.ship-assembler.name = Производител на кораби
+block.mech-assembler.name = Производител на кораби
+block.reinforced-payload-conveyor.name = Подсилена лента за товар
+block.reinforced-payload-router.name = Подсилен рутер за товар
+block.payload-mass-driver.name = Масиран двигател за товари
+block.small-deconstructor.name = Малък разглобител
+block.canvas.name = Платно
+block.world-processor.name = Световен процесор
+block.world-cell.name = Световна клетка
+block.tank-fabricator.name = Фабрикатор за танкове
+block.mech-fabricator.name = Фабрикатор за роботи
+block.ship-fabricator.name = Фабрикатор за кораби
+block.prime-refabricator.name = Основен рефабрикатор
+block.unit-repair-tower.name = Поправяща кула за единици
+block.diffuse.name = Дифузия
+block.basic-assembler-module.name = Основен сглабящ модул
+block.smite.name = Небесен бич
+block.malign.name = Зло
+block.flux-reactor.name = Флюсов реактор
+block.neoplasia-reactor.name = Реактор на неоплазия
+
block.switch.name = Превключвател
block.micro-processor.name = Микропроцесор
block.logic-processor.name = Логически процесор
-block.hyper-processor.name = Хипер Процесор
-block.logic-display.name = Логически Дисплей
-block.large-logic-display.name = Голям Логически Дисплей
-block.memory-cell.name = Клетка Памет
-block.memory-bank.name = Банка Бамет
-team.malis.name = Malis
-team.crux.name = червен
-team.sharded.name = оранжев
-team.derelict.name = изоставен
-team.green.name = зелен
+block.hyper-processor.name = Хипер процесор
+block.logic-display.name = Логически дисплей
+block.large-logic-display.name = Голям логически дисплей
+block.memory-cell.name = Клетка памет
+block.memory-bank.name = Банка памет
+team.malis.name = Малис
+team.crux.name = Крукс
+team.sharded.name = Откъснатите
+team.derelict.name = Останки
+team.green.name = Зелен
-team.blue.name = син
+team.blue.name = Син
hint.skip = Прескочи
-hint.desktopMove = Използвайте [accent][[WASD][] за да се придвижвате.
+hint.desktopMove = Използвайте [accent][[WASD][], за да се придвижвате.
hint.zoom = [accent]Скролирайте[] за увеличаване или намаляване на мащаба.
-hint.desktopShoot = Задръжте [accent][[ляв клавиш][] за да стреляте.
-hint.depositItems = За да пренесете ресурси, завлачете от вашия кораб то ядрото.
+hint.desktopShoot = Задръжте [accent][[Ляв клавиш][], за да стреляте.
+hint.depositItems = За да пренесете ресурси, върнете кораба си при ядрото.
hint.respawn = За да се появите отново като кораб, натиснете [accent][[V][].
-hint.respawn.mobile = Вие активирахте режим на управление на единица/структура. За да се върнете във вашия кораб, [accent]докоснете аватара в горния ляв ъгъл[].
-hint.desktopPause = Натиснете [accent][[Интервал][] за да поставите играта на пауза или да я продължите.
-hint.breaking = Натиснете с [accent]Десен клавиш[] и плъзнете за да унищожите блокове.
+hint.respawn.mobile = Вие активирахте режим на управление на единица/структура. За да се върнете към Вашия кораб, [accent]докоснете аватара в горния ляв ъгъл[].
+hint.desktopPause = Натиснете [accent][[Интервал][], за да поставите играта на пауза или да я продължите.
+hint.breaking = Натиснете с [accent]Десен клавиш[] и местете мишката, за да унищожавате блокове.
hint.breaking.mobile = Активирайте \ue817 [accent]чука[] от долния десен ъгъл и натиснете за да унищожите блокове.\n\nЗадръжте за секунда и плъзнете за да унищожите всички блокове в избраната зона.
-hint.blockInfo = View information of a block by selecting it in the [accent]build menu[], then selecting the [accent][[?][] button at the right.
-hint.derelict = [accent]Derelict[] structures are broken remnants of old bases that no longer function.\n\nThese structures can be [accent]deconstructed[] for resources.
-hint.research = Използвайте бутонът \ue875 [accent]Проучване[] за да изследвате нови технологии.
-hint.research.mobile = Използвайте бутонът \ue875 [accent]Проучване[] в \ue88c [accent]Менюто[] за да изследвате нови технологии.
-hint.unitControl = Задръжте [accent][[L-Ctrl][] и [accent]кликнете[] за да управлявате ваша единици или кули.
-hint.unitControl.mobile = [accent][[Докоснете два пъти][] за да контролирате ваша единица или кула.
-hint.unitSelectControl = To control units, enter [accent]command mode[] by holding [accent]L-shift.[]\nWhile in command mode, click and drag to select units. [accent]Right-click[] a location or target to command units there.
-hint.unitSelectControl.mobile = To control units, enter [accent]command mode[] by pressing the [accent]command[] button in the bottom left.\nWhile in command mode, long-press and drag to select units. Tap a location or target to command units there.
+hint.blockInfo = Вижте информация за даден блок, като го посочите в [accent]менюто за строителство[], а после цъкнете върху копчето [accent][[?][] вдясно.
+hint.derelict = [accent]Изоставените[] сгради са порутените останки на стари бази, които вече не функционират.\n\nМожете да [accent]деконструирате[] тези сгради за ресурси.
+hint.research = Използвайте бутона \ue875 [accent]Проучване[], за да изследвате нови технологии.
+hint.research.mobile = Използвайте бутона \ue875 [accent]Проучване[] в \ue88c [accent]Менюто[], за да изследвате нови технологии.
+hint.unitControl = Задръжте [accent][[L-Ctrl][] и [accent]кликнете[], за да управлявате Ваши единици или оръдия.
+hint.unitControl.mobile = [accent][[Докоснете два пъти][], за да контролирате Ваша единица или оръдия.
+hint.unitSelectControl = За да управлявате единици, влезте в [accent]командния режим[], като задържите [accent]L-shift.[]\nДокато сте в командния режим, цъкнете и влачете, за да избирате единици. Цъкнете с [accent]дясно копче[] върху земята или мишена, за да изпратите единиците си там.
+hint.unitSelectControl.mobile = За да управлявате единици, влезте в [accent]командния режим[], като цъкнете копчето за [accent]команда[] долу вляво.\nДокато сте в командния режим, задръжте задълго, за да избирате единици, после може да натиснете върху земята или мишена, за да изпратите единиците си там.
hint.launch = След като съберете достатъчно ресурси, можете да [accent]Изстреляте[] ядро като изберете близък сектор от \ue827 [accent]Глобуса[] в долния десен ъгъл.
hint.launch.mobile = След като съберете достатъчно ресурси, можете да [accent]Изстреляте[] ядро като изберете близък сектор от \ue827 [accent]Глобуса[] в \ue88c [accent]Менюто[].
-hint.schematicSelect = Задръжте [accent][[F][] и плъзнете за да изберете/копирате група от блокчета.\n\n[accent][[Среден клик][] за да копирате едно блокче.
-hint.rebuildSelect = Hold [accent][[B][] and drag to select destroyed block plans.\nThis will rebuild them automatically.
-hint.rebuildSelect.mobile = Select the \ue874 copy button, then tap the \ue80f rebuild button and drag to select destroyed block plans.\nThis will rebuild them automatically.
-hint.conveyorPathfind = Задръжте [accent][[L-Ctrl][] докато поставяте пътека от конвейери за да генерирате пътека автоматично.
-hint.conveyorPathfind.mobile = Позволете \ue844 [accent]Диагонално Поставяне[] за автоматично намиране на пътека при поставяне на конвейери.
-hint.boost = Задръжте [accent][[L-Shift][] за да прелетите над препятствия с тази единица.\n\nСамо някои наземни единици имат двигатели за летене.
-hint.payloadPickup = Натиснете [accent][[[] за да вдигнете малки блокчета ил единици.
-hint.payloadPickup.mobile = [accent]Докоснете и задръжте[] върху малко блокче или единица за да го вдигнете.
-hint.payloadDrop = Натиснете [accent]][] за да оставите вашия товар.
-hint.payloadDrop.mobile = [accent]Докоснете и задръжте[] върху празна позиция за да оставите вашия товар там.
-hint.waveFire = Кулите [accent]Вълна[] заредени със вода ще действат и като пожарогасители.
-hint.generator = \uf879 [accent]Горивните генератори[] горят въглища и зареждат с електроенергия съседни блокове.\n\nРазстоянието за предаване на енергия може да се увеличи чрез \uf87f [accent]Електрически Възли[].
-hint.guardian = [accent]Пазителите[] са единици с повече броня. Слаби боеприпаси като [accent]Мед[] и [accent]Олово[] са [scarlet]неефективни[] срещу тях.\n\nИзползвайте по - мощни кули или заредете ващите \uf861Дуо/\uf859Салво с \uf835 [accent]Графит[] за да ги повалите.
-hint.coreUpgrade = Ядрата могат да бъдат подобрявани като [accent]поставите по - добро ядро върху тях[].\n\nПоставете \uf868 [accent]Фондация[] върху \uf869 [accent]Шард[] ядрото. Уверете се че няма други препятствия там, където поставяте ядрото.
-hint.presetLaunch = Към сивите [accent]сектори за кацане[], какъвто е [accent]Замръзнала Гора[] можете да изстреляте ядро от всякъде. Не е необходимо да превземането на съседна територия.\n\n[accent]Номерираните сектори[], като този, са [accent]пожелателни[].
-hint.presetDifficulty = This sector has a [scarlet]high enemy threat level[].\nLaunching to such sectors is [accent]not recommended[] without proper technology and preparation.
-hint.coreIncinerate = След като ядрото се препълни с конкретен тип ресурс, всички допълнителни доставени количества от него ще бъдат [accent]унищожени[].
-hint.factoryControl = To set a unit factory's [accent]output destination[], click a factory block while in command mode, then right-click a location.\nUnits produced by it will automatically move there.
-hint.factoryControl.mobile = To set a unit factory's [accent]output destination[], tap a factory block while in command mode, then tap a location.\nUnits produced by it will automatically move there.
-gz.mine = Move near the \uf8c4 [accent]copper ore[] on the ground and click to begin mining.
-gz.mine.mobile = Move near the \uf8c4 [accent]copper ore[] on the ground and tap it to begin mining.
-gz.research = Open the \ue875 tech tree.\nResearch the \uf870 [accent]Mechanical Drill[], then select it from the menu in the bottom right.\nClick on a copper patch to place it.
-gz.research.mobile = Open the \ue875 tech tree.\nResearch the \uf870 [accent]Mechanical Drill[], then select it from the menu in the bottom right.\nTap on a copper patch to place it.\n\nPress the \ue800 [accent]checkmark[] at the bottom right to confirm.
-gz.conveyors = Research and place \uf896 [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nClick and drag to place multiple conveyors.\n[accent]Scroll[] to rotate.
-gz.conveyors.mobile = Research and place \uf896 [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nHold down your finger for a second and drag to place multiple conveyors.
-gz.drills = Expand the mining operation.\nPlace more Mechanical Drills.\nMine 100 copper.
-gz.lead = \uf837 [accent]Lead[] is another commonly used resource.\nSet up drills to mine lead.
-gz.moveup = \ue804 Move up for further objectives.
-gz.turrets = Research and place 2 \uf861 [accent]Duo[] turrets to defend the core.\nDuo turrets require \uf838 [accent]ammo[] from conveyors.
-gz.duoammo = Supply the Duo turrets with [accent]copper[], using conveyors.
-gz.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace \uf8ae [accent]copper walls[] around the turrets.
-gz.defend = Enemy incoming, prepare to defend.
-gz.aa = Flying units cannot easily be dispatched with standard turrets.\n\uf860 [accent]Scatter[] turrets provide excellent anti-air, but require \uf837 [accent]lead[] as ammo.
-gz.scatterammo = Supply the Scatter turret with [accent]lead[], using conveyors.
-gz.supplyturret = [accent]Supply Turret
-gz.zone1 = This is the enemy drop zone.
-gz.zone2 = Anything built in the radius is destroyed when a wave starts.
-gz.zone3 = A wave will begin now.\nGet ready.
-gz.finish = Build more turrets, mine more resources,\nand defend against all the waves to [accent]capture the sector[].
-onset.mine = Click to mine \uf748 [accent]beryllium[] from walls.\n\nUse [accent][[WASD] to move.
-onset.mine.mobile = Tap to mine \uf748 [accent]beryllium[] from walls.
-onset.research = Open the \ue875 tech tree.\nResearch, then place a \uf73e [accent]turbine condenser[] on the vent.\nThis will generate [accent]power[].
-onset.bore = Research and place a \uf741 [accent]plasma bore[].\nThis automatically mines resources from walls.
-onset.power = To [accent]power[] the plasma bore, research and place a \uf73d [accent]beam node[].\nConnect the turbine condenser to the plasma bore.
-onset.ducts = Research and place \uf799 [accent]ducts[] to move the mined resources from the plasma bore to the core.\nClick and drag to place multiple ducts.\n[accent]Scroll[] to rotate.
-onset.ducts.mobile = Research and place \uf799 [accent]ducts[] to move the mined resources from the plasma bore to the core.\n\nHold down your finger for a second and drag to place multiple ducts.
-onset.moremine = Expand the mining operation.\nPlace more Plasma Bores and use beam nodes and ducts to support them.\nMine 200 beryllium.
-onset.graphite = More complex blocks require \uf835 [accent]graphite[].\nSet up plasma bores to mine graphite.
-onset.research2 = Begin researching [accent]factories[].\nResearch the \uf74d [accent]cliff crusher[] and \uf779 [accent]silicon arc furnace[].
-onset.arcfurnace = The arc furnace needs \uf834 [accent]sand[] and \uf835 [accent]graphite[] to create \uf82f [accent]silicon[].\n[accent]Power[] is also required.
-onset.crusher = Use \uf74d [accent]cliff crushers[] to mine sand.
-onset.fabricator = Use [accent]units[] to explore the map, defend buildings, and attack the enemy. Research and place a \uf6a2 [accent]tank fabricator[].
-onset.makeunit = Produce a unit.\nUse the "?" button to see selected factory requirements.
-onset.turrets = Units are effective, but [accent]turrets[] provide better defensive capabilities if used effectively.\nPlace a \uf6eb [accent]Breach[] turret.\nTurrets require \uf748 [accent]ammo[].
-onset.turretammo = Supply the turret with [accent]beryllium ammo.[]
-onset.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace some \uf6ee [accent]beryllium walls[] around the turret.
-onset.enemies = Enemy incoming, prepare to defend.
-onset.defenses = [accent]Set up defenses:[lightgray] {0}
-onset.attack = The enemy is vulnerable. Counter-attack.
-onset.cores = New cores can be placed on [accent]core tiles[].\nNew cores function as forward bases and share a resource inventory with other cores.\nPlace a \uf725 core.
-onset.detect = The enemy will be able to detect you in 2 minutes.\nSet up defenses, mining, and production.
-onset.commandmode = Hold [accent]shift[] to enter [accent]command mode[].\n[accent]Left-click and drag[] to select units.\n[accent]Right-click[] to order selected units to move or attack.
-onset.commandmode.mobile = Press the [accent]command button[] to enter [accent]command mode[].\nHold down a finger, then [accent]drag[] to select units.\n[accent]Tap[] to order selected units to move or attack.
-aegis.tungsten = Tungsten can be mined using an [accent]impact drill[].\nThis structure requires [accent]water[] and [accent]power[].
-split.pickup = Some blocks can be picked up by the core unit.\nPick up this [accent]container[] and place it onto the [accent]payload loader[].\n(Default keys are [ and ] to pick up and drop)
-split.pickup.mobile = Some blocks can be picked up by the core unit.\nPick up this [accent]container[] and place it onto the [accent]payload loader[].\n(To pick up or drop something, long-press it.)
-split.acquire = You must acquire some tungsten to build units.
-split.build = Units must be transported to the other side of the wall.\nPlace two [accent]Payload Mass Drivers[], one on each side of the wall.\nSet up the link by pressing one of them, then selecting the other.
-split.container = Similar to the container, units can also be transported using a [accent]Payload Mass Driver[].\nPlace a unit fabricator adjacent to a mass driver to load them, then send them across the wall to attack the enemy base.
+hint.schematicSelect = Задръжте [accent][[F][] и плъзнете за да изберете/копирате група от блокчета.\n\n[accent][[Среден клик][], за да копирате едно блокче.
+hint.rebuildSelect = Задръжте [accent][[B][] и влачете, за да изберете унищожени блокове.\nТова ще ги застрои наново автоматично.
+hint.rebuildSelect.mobile = Изберете копчето за \ue874 копиране, после натиснете копчето за \ue80f построяване и изтеглете, за да изберете унищожените блокове.\nТова ще ги застрои отново автоматично.
+hint.conveyorPathfind = Задръжте [accent][[L-Ctrl][] докато поставяте пътека от ленти за да генерирате пътека автоматично.
+hint.conveyorPathfind.mobile = Позволете \ue844 [accent]Диагонално поставяне[] за автоматично намиране на пътека при поставяне на конвейери.
+hint.boost = Задръжте [accent][[L-Shift][], за да прелетите над препятствия с тази единица.\n\nСамо някои наземни единици имат двигатели за летене.
+hint.payloadPickup = Натиснете [accent][[[], за да вдигнете малки блокчета или единици.
+hint.payloadPickup.mobile = [accent]Докоснете и задръжте[] върху малко блокче или единица, за да го вдигнете.
+hint.payloadDrop = Натиснете [accent]][], за да оставите товара си.
+hint.payloadDrop.mobile = [accent]Докоснете и задръжте[] върху празна позиция, за да оставите товара си там.
+hint.waveFire = Оръдията [accent]Вълна[] заредени със вода ще действат и като пожарогасители.
+hint.generator = \uf879 [accent]Горивните генератори[] горят въглища и зареждат с електроенергия съседни блокове.\n\nРазстоянието за предаване на енергия може да се увеличи чрез \uf87f [accent]Електрически възли[].
+hint.guardian = [accent]Пазителите[] са единици с повече броня. Слаби боеприпаси като [accent]Мед[] и [accent]Олово[] са [scarlet]неподходящи[] срещу тях.\n\nИзползвайте по-мощни оръдия или заредете Вашите \uf861Дуо/\uf859Салво с \uf835 [accent]Графит[], за да ги повалите.
+hint.coreUpgrade = Ядрата могат да бъдат подобрявани като [accent]поставите по-добро ядро върху тях[].\n\nПоставете \uf868 [accent]Фондация[] върху \uf869 ядрото [accent]Частица[]. Уверете се че няма други препятствия там, където поставяте ядрото.
+hint.presetLaunch = Към сивите [accent]сектори за кацане[], какъвто е [accent]Замръзнала Гора[] можете да изстреляте ядро отвсякъде. Не е необходимо да превземате съседна територия.\n\n[accent]Номерираните сектори[], като този, са [accent]пожелателни[].
+hint.presetDifficulty = Този сектор има [scarlet]висока вражеска заплаха[].\nИзстрелването към такива сектори е [accent]нежелателно[] без нухната технология и подготовка.
+hint.coreIncinerate = След като ядрото се препълни с конкретен тип ресурс, всички допълнителни доставени количества в него ще бъдат [accent]унищожени[].
+hint.factoryControl = За да поставите [accent]изходната точка [] на някоя единица, изберете фабричен блок, докато сте в команден режим, после цъкнете с дясно копче върху някое място.\nЕдиници, които се произвеждат оттам ще отидат автоматично до посоченото място.
+hint.factoryControl.mobile = За да поставите [accent]изходната точка [] на някоя единица, изберете фабричен блок, докато сте в команден режим, после натиснете върху някое мяст.\nЕдиници, които се произвеждат оттам ще отидат автоматично до посоченото място.
+gz.mine = Придвижете се близо до \uf8c4 [accent]медната руда[] на земята и цъкнете, за да започнете изкопаването.
+gz.mine.mobile = Придвижете се близо до \uf8c4 [accent]медната руда[] на земята и натиснете върху земята, за да започнете изкопаването.
+gz.research = Отворете \ue875 технологичния план.\nПроучете \uf870 [accent]Механичния свредел[], после го изберете от менюто долу вдясно.\nЦъкнете върху поле с мед, за да го поставите.
+gz.research.mobile = Отворете \ue875 технологичния план.\nПроучете \uf870 [accent]Механичния свредел[], после го изберете от менюто долу вдясно.\nНатиснете върху поле с мед, за да го поставите.\n\nНатиснете върху \ue800 [accent]тикчето[] долу вдясно, за да потвърдите.
+gz.conveyors = Проучете и поставете \uf896 [accent]ленти[], за да придвижите изкопани ресурси от \nсвредели към ядрото.\n\nЦъкнете и влачете, за да разположите множество ленти.\n[accent]Скролирайте[], за да завъртите.
+gz.conveyors.mobile = Проучете и поставете \uf896 [accent]ленти[], за да придвижите изкопани ресурси от \nсвредели към ядрото.\n\nЗадръжте пръста си една секунда, за да разположите множество ленти.
+gz.drills = Разришете изкопната дейност.\nПоставете повече механични свредели.\nИзкопайте 100 мед.
+gz.lead = \uf837 [accent]Оловото[] е друг често използван ресурс.\nПоставете свредели, за да го изкопавате.
+gz.moveup = \ue804 Придвижете се нагоре за следващите си задачи.
+gz.turrets = Проучете и поставете 2 оръдия \uf861 [accent]Дуо[], за да защитите ядрото.\nДуо се нуждаят от \uf838 [accent]муниции[] чрез лентите.
+gz.duoammo = Доставете [accent]мед[] на оръдията, като използвате ленти.
+gz.walls = [accent]Стените[] попречват на вражеския огън да достигне до сградите Ви.\nРазположете медни \uf8ae [accent]медни стени[] около оръдията си.
+gz.defend = Врагът наближава, пригответе се за отбрана.
+gz.aa = На обикновените оръдия им е непосилно да се справят с летящи единици.\n\uf860 [accent]Пръскачките[] предоставят отлична противовъздушна сила, но се нуждаят от \uf837 [accent]Олово[], за да функционират.
+gz.scatterammo = Снабдете Пръскачките с [accent]Олово[], използвайки ленти.
+gz.supplyturret = [accent]Снабдете оръдие.
+gz.zone1 = Това е вражеската начална зона.
+gz.zone2 = Всичко построено в нейния радиус ще бъде унищожено, когато настъпи новата вълна.
+gz.zone3 = Сега ще започне една такава вълна.\nПригответе се.
+gz.finish = Издигнете още оръдия, изкопайте повече ресурси\nи се защитете от всички прииждащи вълни, за да [accent]завладеете този сектор[].
+onset.mine = Цъкнете, за да копаете \uf748 [accent]берилий[] от стените.\n\nИзползвайте [accent][[WASD], за да се придвижвате.
+onset.mine.mobile = Натиснете, за да копаете \uf748 [accent]берилий[] от стените.
+onset.research = Отворете \ue875 технологичния план.\nПроучете, после поставете \uf73e [accent]турбинен сгъстител[] върху отвора.\nТова ще генерира [accent]електричество[].
+onset.bore = Проучете и поставете \uf741 [accent]плазмена бургия[].\nТя ще копае ресурси от стените автоматично.
+onset.power = За да [accent]задействате[] плазмената бургия, проучете и поставете \uf73d [accent]лъчева точка[].\nСвържете турбинния сгъстител към плазмената бургия.
+onset.ducts = Проучете и поставете \uf799 [accent]тръби[], за да придвижване изкопаните ресурси от плазмената бургия към ядрото.\nЦъкнете и изтеглете, за да поставите множество тръби.\n[accent]Скролирайте[], за да завъртите.
+onset.ducts.mobile = Проучете и поставете \uf799 [accent]тръби[], за да придвижване изкопаните ресурси от плазмената бургия към ядрото.\nЗадръжте пръста си за една секунда, за да поставите множество тръби.
+onset.moremine = Разришете минната си операция.\nПоставете повече плазмени бургии и използвайте лъчеви точки и тръби, за да ги поддържате.\nИзкопайте 200 берилий.
+onset.graphite = По-сложните блокове се нуждаят от \uf835 [accent]Графит[].\nПоставете плазмени бургии, за да копаете графит.
+onset.research2 = Започнете проучването на [accent]фабрики[].\nПроучете \uf74d [accent]Скалотрошача[] и \uf779 [accent]Аркова фурна за силикон[].
+onset.arcfurnace = Арковата фурна се нуждае от \uf834 [accent]Пясък[] и \uf835 [accent]Графит[], за да произведе \uf82f [accent]Силикон[].\n[accent]Електричеството[] също е важно.
+onset.crusher = Използвайте \uf74d [accent]Скалотрошачите[], за да копаете пясък.
+onset.fabricator = Използвайте [accent]единици[], за да изследвате картата, да пазите сгради и да атакувате врага. Проучете и поставете \uf6a2 [accent]Фабрика за танкове[].
+onset.makeunit = Произведете единица.\nИзползвайте копчето "?", за да видите изискванията на избраната фабрика.
+onset.turrets = Единиците са полезни, ала [accent]Оръдията[] предоставят повече защитни възможности, когато се използват правилно.\nПоставете \uf6eb [accent]Пробивно[] оръдие.\nОръдията се нуждаят от \uf748 [accent]муниции[].
+onset.turretammo = Снабдете оръдието с [accent]берилий.[]
+onset.walls = [accent]Стените[] пазят сградите Ви от вражески огън.\nПоставете няколко \uf6ee [accent]стени от берилий[] около оръдието.
+onset.enemies = Врагът приближава, пригответе се за защита.
+onset.defenses = [accent]Поставяне на защити:[lightgray] {0}
+onset.attack = Врагът е уязвим. Отвърнете на удара.
+onset.cores = Можете да поставите нови ядра върху [accent]полета за ядро[].\nНовите ядра вършат работа като предни бази и споделят ресурсен инвентар с други ядра.\nПоставете \uf725 ядро.
+onset.detect = Врагът ще Ви засече след 2 минути.\nРазположете защити, изкопна дейност и продукция.
+onset.commandmode = Задръжте [accent]shift[], за да влезете в [accent]командния режим[].\n[accent]Цъкнете с ляво копче и влачете[], за да избирате единици.\n[accent]Дясно копче[] дава заповеди за придвижване или атака
+onset.commandmode.mobile = Натиснете [accent]командното копче[], за да влезете в [accent]командния режим[].\nЗадръжте пръста си, после го [accent]придвижете[], за да изберете единици.\n[accent]Докоснете[], за да дадете заповед за придвижване или атака.
+aegis.tungsten = Можете да копаете волфрам чрез [accent]сблъсъчен свредел[].\nТази сграда се нуждае от [accent]вода[] и [accent]електричество[].
+split.pickup = Някои блокове могат да бъдат вдигани от кораба.\nВдигнете този [accent]контейнер[] и го поставете върху [accent]товарителя[].\n(Основните копчета за вдигане и поставяне са [ и ])
+split.pickup.mobile = Някои блокове могат да бъдат вдигани от кораба.\nВдигнете този [accent]контейнер[] и го поставете върху [accent]товарителя[].\n(За да вдигнете или оставите нещо, задръжте задълго върху него.)
+split.acquire = Нуждаете се от волфрам, за да строите единици.
+split.build = Единиците трябва да бъдат пренасяни до другата страна на стената.\nПоставете два [accent]Масирани товарители[], върху всяка от страните на стената.\nСвържете ги, като натиснете върху единия, после върху другия.
+split.container = Подобно на контейнерите, можете да пренасяте единици с [accent]масиран товарител[].\nПоставете фабрикатор за единици до масиран двигател, за да ги натоварите, после ги пратете зад стената, за да нападнат вражеската база.
-item.copper.description = Използван във всякакви типове конструкции и боеприпаси.
-item.copper.details = Мед. Copper. Необичайно изобилен метал на Serpulo. Структурно слаб, освен ако не е подсилен.
-item.lead.description = Използван в транспорт на течности и електрически структури.
-item.lead.details = Плътен. Инертен. Широко използван при изграждане на батерии.\nБележка: Вероятно токсичен за биологични форми на живот. Не че има много такива останали наоколо.
+item.copper.description = Използва се във всякакви типове конструкции и боеприпаси.
+item.copper.details = Мед. Необичайно изобилен метал на Серпул. Структурно слаб, освен ако бъде подсилен.
+item.lead.description = Използва се за транспорт на течности и електрически структури.
+item.lead.details = Плътен. Инертен. Широко използван при изграждане на батерии.\nБележка: Вероятно е токсичен за биологичните форми на живот. Не, че има много останали наоколо.
item.metaglass.description = Използва се в структури за транспорт и съхранение на течности.
item.graphite.description = Използва се в електрически компоненти и като боеприпас за някои видове кули.
item.sand.description = Използва се за производство на други рафинирани материали.
-item.coal.description = Използва се като гориво и за производство на радинирани материали.
-item.coal.details = Изглежда като вкаменена растителна материя, образувана много преди разпръсването на спорите.
-item.titanium.description = Използван в структури за транспорт, свредла и летящи технологии.
-item.thorium.description = Използван в здрави конструкции или като ядрено гориво.
-item.scrap.description = Използван в Разтопители и Пулверизатори за рафиниране в други материали.
+item.coal.description = Използва се като гориво и за производство на рафинирани материали.
+item.coal.details = Изглежда като вкаменена растителна материя, образувана много преди разпръскването на спорите.
+item.titanium.description = Използва се в транспортни структури, свредели и летателни технологии.
+item.thorium.description = Използва се в здрави конструкции или като ядрено гориво.
+item.scrap.description = Използва се в Разтопители и Пулверизатори за преработване в други материали.
item.scrap.details = Останки от стари структури и единици.
-item.silicon.description = Използва се в фотоволтаици, сложни електроники и самонасочващи се боеприпаси.
+item.silicon.description = Използва се във фотоволтаици, сложни електроники и самонасочващи се боеприпаси.
item.plastanium.description = Използва се в усъвършенствани единици, като изолация и за фрагментационни боеприпаси.
item.phase-fabric.description = Използва се в усъвършенствана електроника и възстановяващи структури.
item.surge-alloy.description = Използва се в усъвършенствани оръжия и импулсни защитни структури.
-item.spore-pod.description = Използва се за производство на нефт, експлозиви и гориво.
-item.spore-pod.details = Спори. Вероятно синтетична форма на живот. Изпускат токсични за останалите биологични организми газове. Изключително инвазивни. Лесно запалими при определени условия.
-item.blast-compound.description = Използва се в бомби и експлозивни боеприпаси.
-item.pyratite.description = Използва се в подпалващи оръжия и горивни генератори.
-item.beryllium.description = Used in many types of construction and ammunition on Erekir.
-item.tungsten.description = Used in drills, armor and ammunition. Required in the construction of more advanced structures.
-item.oxide.description = Used as a heat conductor and insulator for power.
-item.carbide.description = Used in advanced structures, heavier units, and ammunition.
+item.spore-pod.description = Използва се за производството на нефт, експлозиви и гориво.
+item.spore-pod.details = Спори. Вероятно синтетична форма на живот. Изпускат газове, които са токсични за биологични организми. Изключително инвазивни. Лесно запалими при определени условия.
+item.blast-compound.description = Използва се за бомби и експлозивни боеприпаси.
+item.pyratite.description = Използва се за подпалващи оръжия и горивни генератори.
+item.beryllium.description = Използва се в много видове строежи и муниции на Ерекир.
+item.tungsten.description = Използва се от свредели, броня и муниции. Нужен е за строежа на по-сложни структури.
+item.oxide.description = Използва се като топлопроводник и инсулатор за електричество.
+item.carbide.description = Използва се в сложни структури, тежки единици и муниции.
liquid.water.description = Използва се за охлаждане на машини и преработка на отпадъци.
-liquid.slag.description = Може да се рафинира в Разделители до съставните ѝ метали или да се пръска върху врагове като оръжие.
-liquid.oil.description = Използва се в напредналото производство на материали или като запалителен боеприпас.
-liquid.cryofluid.description = Използва се като охладител в реактори, кули и фабрики.
-liquid.arkycite.description = Used in chemical reactions for power generation and material synthesis.
-liquid.ozone.description = Used as an oxidizing agent in material production, and as fuel. Moderately explosive.
-liquid.hydrogen.description = Used in resource extraction, unit production and structure repair. Flammable.
-liquid.cyanogen.description = Used for ammunition, construction of advanced units, and various reactions in advanced blocks. Highly flammable.
-liquid.nitrogen.description = Used in resource extraction, gas creation and unit production. Inert.
-liquid.neoplasm.description = A dangerous biological byproduct of the Neoplasia reactor. Quickly spreads to any adjacent water-containing block it touches, damaging them in the process. Viscous.
-liquid.neoplasm.details = Neoplasm. An uncontrollable mass of rapidly-dividing synthetic cells with a sludge-like consistency. Heat-resistant. Extremely dangerous to any structures involving water.\n\nToo complex and unstable for standard analysis. Potential applications unknown. Incineration in slag pools is recommended.
-block.derelict = \uf77e [lightgray]Derelict
+liquid.slag.description = Може да се рафинира в Разделители до съставните си метали или да се използване за обливане на враговете.
+liquid.oil.description = Използва се в напредналото производство на материали или като запалимо оръжие.
+liquid.cryofluid.description = Използва се като охладител в реактори, оръдия и фабрики.
+liquid.arkycite.description = Използва се в химическите реакции за производство на електричество и синтез на материали.
+liquid.ozone.description = Използва се като окисляващ агент в производството на материал, както и за гориво. Относително експлозивен.
+liquid.hydrogen.description = Използва се в извличането на ресурси, производството на единици и в ремонти. Запалимо вещество.
+liquid.cyanogen.description = Използва се за муниции, строеж и напреднали единици, както и при различни реакции на по-сложните блокове. Силно запалим.
+liquid.nitrogen.description = Използва се в извличането на ресурси, създаването на газ и производство на единици. Инертен газ.
+liquid.neoplasm.description = Опасен биологичен страничен продукт от неоплазмения реактор. Бързо се разпростира до всеки съседен водосъдържащ блок и го поврежда. Леплив материал.
+liquid.neoplasm.details = Нео-плазма. Неконтрелируема маса от бързо делящи се синтетични клетки с консистенция подобна на тиня. Устойчива на жега. Изключително опасна за всяка сграда, която използва вода.\n\nТвърде сложна и нестабилна за стандартен анализ. Потенциалните приложения са неизвестни. Препоръчва се изгарянето в басейни от слаг.
+block.derelict = \uf77e [lightgray]Останки
block.armored-conveyor.description = Придвижва предмети напред. Не приема вход от страни.
block.illuminator.description = Излъчва светлина.
block.message.description = Съхранява съобщение за комуникация между съюзници.
-block.reinforced-message.description = Stores a message for communication between allies.
-block.world-message.description = A message block for use in mapmaking. Cannot be destroyed.
-block.graphite-press.description = Компресира въглища в графит.
-block.multi-press.description = Компресира въглища в графит. Изисква вода като охладител.
+block.reinforced-message.description = Съхранява съобщение за комуникация между съюзници.
+block.world-message.description = Съобщителен блок. Използван при създаването на карти. Неунищожим.
+block.graphite-press.description = Компресира въглища до графит.
+block.multi-press.description = Компресира въглища до графит. Изисква вода като охладител.
block.silicon-smelter.description = Рафинира силикон от пясък и въглища.
-block.kiln.description = Претяпя пясък и олово в метастъкло.
+block.kiln.description = Претапя пясък и олово в мета-стъкло.
block.plastanium-compressor.description = Произвежда пластаний от нефт и титан.
block.phase-weaver.description = Синтезира фазова тъкан от торий и пясък.
-block.surge-smelter.description = Разтопява титан, олово, силиций и мед в импулсна сплав.
-block.cryofluid-mixer.description = Смесва вода и фин титанов прах за производство на криофлуид.
+block.surge-smelter.description = Разтопява титан, олово, силиций и мед до импулсна сплав.
+block.cryofluid-mixer.description = Смесва вода и фин титаниев прах за производство на криотечност.
block.blast-mixer.description = Произвежда взривно съединение от пиратит и сгъстени спори.
block.pyratite-mixer.description = Смесва въглища, олово и пясък в пиратит.
-block.melter.description = Претапя скрап в шлака.
-block.separator.description = Разделя шлаката на нейните минерални компоненти.
-block.spore-press.description = Компресира сгъстени спори в нефт.
+block.melter.description = Претапя скрап до шлака.
+block.separator.description = Раздробява шлаката до нейните минерални компоненти.
+block.spore-press.description = Компресира сгъстени спори на нефт.
block.pulverizer.description = Натрошава скрап до състояние на фин пясък.
-block.coal-centrifuge.description = Преобразува нефт в въглища.
+block.coal-centrifuge.description = Преобразува нефт във въглища.
block.incinerator.description = Изпарява всеки предмет или течност, които получава.
block.power-void.description = Неутрализира цялата енергия в мрежата. Достъпно само в Пясъчника.
-block.power-source.description = Произвежда безкрайно енергия. Достъпно само в Пясъчника.
+block.power-source.description = Произвежда безкрайна енергия. Достъпно само в Пясъчника.
block.item-source.description = Извежда безкрайно количество предмети. Достъпно само в Пясъчника.
block.item-void.description = Унищожава всякакви предмети. Достъпно само в Пясъчника.
block.liquid-source.description = Извежда безкрайно количество течности. Достъпно само в Пясъчника.
block.liquid-void.description = Унищожава всякакви течности. Достъпно само в Пясъчника.
-block.payload-source.description = Infinitely outputs payloads. Sandbox only.
-block.payload-void.description = Destroys any payloads. Sandbox only.
+block.payload-source.description = Извежда безкрайни товари. Достъпно само в Пясъчника.
+block.payload-void.description = Унищожава всеки товар. Достъпно само в Пясъчника.
block.copper-wall.description = Защитава структури от вражески огън.
block.copper-wall-large.description = Защитава структури от вражески огън.
block.titanium-wall.description = Защитава структури от вражески огън.
block.titanium-wall-large.description = Защитава структури от вражески огън.
-block.plastanium-wall.description = Защитава структури от вражески огън. Абсорбира лазери и волтови дъги. Блокира автоматични електрически връзки.
-block.plastanium-wall-large.description = Защитава структури от вражески огън. Абсорбира лазери и волтови дъги. Блокира автоматични електрически връзки.
+block.plastanium-wall.description = Защитава структури от вражески огън. Поглъща лазери и волтови дъги. Блокира автоматични електрически връзки.
+block.plastanium-wall-large.description = Защитава структури от вражески огън. Поглъща лазери и волтови дъги. Блокира автоматични електрически връзки.
block.thorium-wall.description = Защитава структури от вражески огън.
block.thorium-wall-large.description = Защитава структури от вражески огън.
-block.phase-wall.description = Защитава структури от вражески огън, отразявайки повечето куршуми при удар.
-block.phase-wall-large.description = Защитава структури от вражески огън, отразявайки повечето куршуми при удар.
+block.phase-wall.description = Защитава структури от вражески огън, отразявайки повечето куршуми при контакт.
+block.phase-wall-large.description = Защитава структури от вражески огън, отразявайки повечето куршуми при контакт.
block.surge-wall.description = Защитава структури от вражески огън, периодично освобождавайки волтови дъги при контакт.
block.surge-wall-large.description = Защитава структури от вражески огън, периодично освобождавайки волтови дъги при контакт.
block.scrap-wall.description = Protects structures from enemy projectiles.
@@ -2091,267 +2141,271 @@ block.scrap-wall-huge.description = Protects structures from enemy projectiles.
block.scrap-wall-gigantic.description = Protects structures from enemy projectiles.
block.door.description = Стена, която може да бъде отворена и затворена.
block.door-large.description = Стена, която може да бъде отворена и затворена.
-block.mender.description = Периодично поправя близки блокове.\nОпционално използва силикон за да увеличи обхвата и ефективността си.
-block.mend-projector.description = Периодично поправя близки блокове.\nОпционално използва тъкан за да увеличи обхвата и ефективността си.
-block.overdrive-projector.description = Ускорява близки постройки.\nОпционално използва тъкан за да увеличи обхвата и ефективността си.
-block.force-projector.description = Създава шестоъгълно силово поле около себе си, предпазвайки сградите и единиците в него от повреда.\nПрегрява, ако претърпи твърде много щети. Можете да използвате охладителна течност за да предотвратите това. Можете да използвате фазова тъкан за да увеличите обхвата на силовото поле.
+block.mender.description = Периодично поправя близки блокове.\nМоже да използва силикон, за да увеличи обхвата и ефективността си.
+block.mend-projector.description = Периодично поправя близки блокове.\nМоже да използва силикон, за да увеличи обхвата и ефективността си.
+block.overdrive-projector.description = Ускорява близки постройки.\nМоже да използва фазова тъкан, за да увеличи обхвата и ефективността си.
+block.force-projector.description = Създава шестоъгълно силово поле около себе си, предпазвайки сградите и единиците в него от повреда.\nПрегрява, ако претърпи твърде много щети. Използвайте охладителна течност, за да предотвратите прегряване. Можете да използвате фазова тъкан, за да увеличите обхвата на силовото поле.
block.shock-mine.description = Освобождава електрически дъги при контакт с вражески единици.
block.conveyor.description = Пренася предмети напред.
-block.titanium-conveyor.description = Пренася предмети напред. По - бърз от стандартния конвейер.
-block.plastanium-conveyor.description = Пренася предмети напред на партиди. Приема предмети само в началото на веригата и ги разтоварва в края в 3 посоки. Изисква товарене и разтоварване от няколко страни за максимална ефективност.
+block.titanium-conveyor.description = Пренася предмети напред. По-бърз от стандартната лента.
+block.plastanium-conveyor.description = Пренася предмети напред на партиди. Приема предмети само в началото на веригата и ги разтоварва в 3 посоки. Изисква товарене и разтоварване от няколко страни за максимална ефективност.
block.junction.description = Действа като мост за две кръстосани конвейерни линии.
block.bridge-conveyor.description = Пренася предмети над терен или постройки.
-block.phase-conveyor.description = Мигновенно пренася предмети над терен или постройки. Има по - голям обхват от мостовия конвейер, но се нуждае от електроенергия.
+block.phase-conveyor.description = Мигновенно пренася предмети над терен или постройки. Има по-голям обхват от мостовата лента, но се нуждае от електроенергия.
block.sorter.description = Ако предметът съвпада на избрания го пренася напред, иначе го изкарва настрани.
-block.inverted-sorter.description = Подобно на стандартния сортирач, но извежда избрания предмет настрани.
-block.router.description = Разпределя внесените предмети в до 3 посоки равномерно.
+block.inverted-sorter.description = Подобно на стандартния сортировач, но извежда избраният предмет настрани.
+block.router.description = Разпределя внесените предмети на до 3 посоки равномерно.
block.router.details = Необходимо зло. Употребата му като вход на фабрики не се препоръчва, защото ще се запуши от изходните материали.
block.distributor.description = Разпределя внесените предмети в до 7 посоки равномерно.
-block.overflow-gate.description = Насочва предмети настрани само ако лентат отпред е препълнена или блокирана.
+block.overflow-gate.description = Насочва предмети настрани само ако лентата отпред е препълнена или блокирана.
block.underflow-gate.description = Насочва предмети напред само ако лентите отстрани са препълнени или блокирани.
-block.mass-driver.description = Структура за пренасяне на предмети на далечни растояния. Събира партиди от предмети и ги изстрелва до други Масови Преносители.
+block.mass-driver.description = Структура за пренасяне на предмети на далечни растояния. Събира партиди от предмети и ги изстрелва до други Масови преносители.
block.mechanical-pump.description = Изпомпва течности. Не изисква електричество.
block.rotary-pump.description = Изпомпва течности. Изисква електричество.
block.impulse-pump.description = Изпомпва течности.
block.conduit.description = Пренася течности еднопосочно. Използва се в комбинация с помпи и други тръбопроводи.
-block.pulse-conduit.description = Пренася течности еднопосочно. Пренася по - бързо и съхранява повече от стандартния тръбопровод.
-block.plated-conduit.description = Пренася течности еднопосочно. Не приема вход от страни. Не позволява течове.
-block.liquid-router.description = Разпределя внесените течности в до 3 посоки равномерно. Също може да съхранява някакво количество течност.
-block.liquid-container.description = Stores a sizeable amount of liquid. Outputs to all sides, similarly to a liquid router.
+block.pulse-conduit.description = Пренася течности еднопосочно. Пренася по-бързо и съхранява повече от стандартния тръбопровод.
+block.plated-conduit.description = Пренася течности еднопосочно. Не приема вход от страни. Не пропуска течове.
+block.liquid-router.description = Разпределя внесените течности в до 3 посоки равномерно. Също може да съхранява малко количество течност.
+block.liquid-container.description = Съхранява значително количество течност. Може да изкарва течност във всички посоки, подобно на рутер за течности.
block.liquid-tank.description = Съхранява голямо количество течност. Може да изкарва течност във всички посоки, подобно на рутер за течности.
block.liquid-junction.description = Действа като мост за два кръстосани тръбопровода.
block.bridge-conduit.description = Транспортира течности над терен или сгради.
-block.phase-conduit.description = TТранспортира течности над терен или сгради. Има по - голям обхват от мост за течности, но се нуждае от електроенергия.
+block.phase-conduit.description = Транспортира течности над терен или сгради. Има по-голям обхват от моста за течности, но се нуждае от електроенергия.
block.power-node.description = Пренася енергия между свързани или съседни структури.
-block.power-node-large.description = Подобрена версия на електрическия възел с по - голям обхват.
-block.surge-tower.description = Далекообхватен електрически възел, но може да се свърже само до две структури.
+block.power-node-large.description = Подобрена версия на електрическия възел с по-голям обхват.
+block.surge-tower.description = Далекообхватен електрически възел, но може да се свърже само две структури.
block.diode.description = Пренася енергия между батерии само в една посока, само ако източника има повече съхранена енергия от целта.
-block.battery.description = Съхранява мощност във времена на енергиен излишък. Извежда мощност по времена на енергиен дефицит.
-block.battery-large.description = Съхранява мощност във времена на енергиен излишък. Извежда мощност по времена на енергиен дефицит. Има по - голям капацитет от нормалната батерия.
-block.combustion-generator.description = Произвежда електроенергия като гори запалими материали, като въглища.
-block.thermal-generator.description = Генерира енергия когато е поставен върху нагорещена повърхност.
+block.battery.description = Съхранява мощност, когато има излишък. Извежда мощност по време на на дефицит.
+block.battery-large.description = Съхранява мощност, когато има излишък. Извежда мощност по време на дефицит. Има по-голям капацитет от нормалната батерия.
+block.combustion-generator.description = Произвежда електроенергия като гори запалими материали, например въглища.
+block.thermal-generator.description = Генерира енергия, когато е поставен върху нагорещена повърхност.
block.steam-generator.description = Генерира енергия като гори запалими материали и изпарява вода.
block.differential-generator.description = Генерира енергия в големи количества. Използва температурната разлика между криофлуида и изгарящия пиратит.
block.rtg-generator.description = Използва топлината на разлагащи се радиоактивни съединения, за да произвежда енергия с бавна скорост.
block.solar-panel.description = Осигурява малко количество енергия от слънцето.
-block.solar-panel-large.description = Осигурява малко количество енергия от слънцето. По - ефективен от стандартния фотоволтаик.
-block.thorium-reactor.description = Генерира значителни количества енергия, използвайки торий. Изисква постоянно охлаждане. Избухва агресивно ако се доставят недостатъчни количества охлаждаща течност.
-block.impact-reactor.description = Генерира огромни количества енергия при пикова ефективност. Изисква значителна входна мощност, за да стартира процеса.
+block.solar-panel-large.description = Осигурява малко количество енергия от слънцето. По-ефективен от стандартния фотоволтаик.
+block.thorium-reactor.description = Генерира значителни количества енергия, използвайки торий. Изисква постоянно охлаждане. Избухва агресивно ако се доставят недостатъчни количества охлаждане.
+block.impact-reactor.description = Генерира огромни количества енергия с пикова ефективност. Изисква значителна входова мощност, за да стартира процеса.
block.mechanical-drill.description = Когато се постави върху руда добива конкретния материал с бавно темпо за неопределено време. Може да добива само основни ресурси.
-block.pneumatic-drill.description = Подобрено свредло, което може да добива титан. Работи с по - бързо темпо от механичното свредло.
-block.laser-drill.description = Използва лазерна технология за да добива ресурси с още по - висока скорост, но консумира електроенергия. Може да добива торий.
-block.blast-drill.description = Използва изключително усъвършенствана технология за да постигне невероятна скорост на добив. Консумира голямо количество електроенергия.
-block.water-extractor.description = Извлича подземни води. Използва се на места без налична повърхностна вода.
+block.pneumatic-drill.description = Подобрено свредло, което може да добива титан. Работи с по-бързо темпо от механичното свредло.
+block.laser-drill.description = Използва лазерна технология, за да добива ресурси с още по-висока скорост, но консумира електроенергия. Може да добива торий.
+block.blast-drill.description = Използва изключително усъвършенствана технология, за да постигне невероятна скорост на добив. Консумира голямо количество електроенергия.
+block.water-extractor.description = Извлича подземни води. Използва се на места без повърхностна вода.
block.cultivator.description = Култивира малки концентрации на атмосферни спори под формата на плътно биологично вещество.
-block.cultivator.details = Възстановена технология. Използва се за да произвежда масивно количество биомаса с максимална ефективност. Вероятно първоначалният инкубатор на спорите, който сега покрива Серпуло.
-block.oil-extractor.description = Използва голямо количество електроенергия, пясък и вода за да добива нефт.
-block.core-shard.description = Ядро на базата. Веднъж унищожено, секторът се губи.
-block.core-shard.details = Първата итерация. Компактно. Самовъзпроизвеждащо се.Оборудвано с едноктарни стартови двигатели. Не е предназначено за междупланетарни полети.
-block.core-foundation.description = Ядро на базата. Добре бронирано. Съдържа повече ресурси от модел Шард.
+block.cultivator.details = Възстановена технология. Използва се, за да произвежда масивно количество биомаса с максимална ефективност. Вероятно първоначалният инкубатор на спорите, който сега покрива Серпуло.
+block.oil-extractor.description = Използва голямо количество електроенергия, пясък и вода, за да добива нефт.
+block.core-shard.description = Ядро на базата. Ако бъде унищожено, секторът се губи.
+block.core-shard.details = Първата итерация. Компактна. Самовъзпроизвежда се. Оборудвана с едноктарни стартови двигатели. Не е предназначена за междупланетарни полети.
+block.core-foundation.description = Ядро на базата. Добре бронирано. Съдържа повече ресурси от модел Частица.
block.core-foundation.details = Втората итерация.
block.core-nucleus.description = Ядро на базата. Изключително добре бронирано. Съхранява огромни количества ресурси.
block.core-nucleus.details = Третата и финална итерация.
-block.vault.description = Съхранява голямо количество материали от всеки тип. Съдържанието може да бъде достъпено чрез разтоварач.
-block.container.description = Съхранява малко количество материали от всеки тип. Съдържанието може да бъде достъпено чрез разтоварач.
+block.vault.description = Съхранява голямо количество материали от всеки тип. Съдържанието може да бъде достъпено чрез разтоварител.
+block.container.description = Съхранява малко количество материали от всеки тип. Съдържанието може да бъде достъпено чрез разтоварител.
block.unloader.description = Разтоварва избран материал от близки блокове.
block.launch-pad.description = Изстрелва патриди от елементи в избраните сектори.
-block.launch-pad.details = Sub-orbital system for point-to-point transportation of resources. Payload pods are fragile and incapable of surviving re-entry.
+block.advanced-launch-pad.description = Launches batches of items to selected sectors. Only accepts one item type at a time.
+block.advanced-launch-pad.details = Sub-orbital system for point-to-point transportation of resources.
+block.landing-pad.description = Receives items from launch pads in other sectors. Requires large amounts of water to protect against impacts of landings.
block.duo.description = Изстрелва редуващи се куршуми по враговете.
block.scatter.description = Изстрелва топки олово, скрап или метастъкло на съчми срещу вражески въздушни единици.
block.scorch.description = Изгаря всички наземни врагове в близост. Висока ефективност от близко разстояние.
block.hail.description = Изстрелва малки снаряди по наземни врагове на големи разстояния.
-block.wave.description = Изстрелва потоци течност по враговете. Автоматично гаси пожари, когато е се снабдява с вода.
+block.wave.description = Изстрелва потоци течност по враговете. Автоматично гаси пожари, когато се снабдява с вода.
block.lancer.description = Зарежда и изстрелва мощни лъчи енергия по наземни цели.
block.arc.description = Изстрелва волтови дъги по наземни цели.
-block.swarmer.description = Изстрелва ракети с автоматично насочване по врагове.
-block.salvo.description = Изстрелва бързи залпове от куршуми по врагове.
+block.swarmer.description = Изстрелва ракети с автоматично насочване.
+block.salvo.description = Изстрелва бързи залпове от куршуми.
block.fuse.description = Изстрелва три пробиващи взрива по врагове на близко разстояние.
block.ripple.description = Изстрелва клъстери от снаряди по наземни врагове на големи разстояния.
block.cyclone.description = Изстрелва взривоопасни топки от съчми по близки врагове.
block.spectre.description = Изстрелва големи бронепробивни куршуми по въздушни и наземни мишени.
-block.meltdown.description = Зарежда и изстрелва продължителен лазерен лъч по близки врагове. Изисква охладител за да функционира.
-block.foreshadow.description = Произвежда единични силни изстрели на дълго растояние. Приоритизира враговете с по - високи максимални точки живот.
-block.repair-point.description = Непрекъснато ремонтира най - близката повредена единица в обхват.
+block.meltdown.description = Зарежда и изстрелва продължителен лазерен лъч по близки врагове. Изисква охладител, за да функционира.
+block.foreshadow.description = Произвежда единични силни изстрели на дълго растояние. Приоритизира враговете с повече точки живот.
+block.repair-point.description = Непрекъснато ремонтира най-близката повредена единица в обхват.
block.segment.description = Поврежда и унищожава вражески снаряди. Не действа на лазери.
block.parallax.description = Активира прихващаш лъч, с който придърпва и уврежда въздушни единици.
block.tsunami.description = Изстрелва мощни потоци течност по враговете. Автоматично гаси пожари, когато се снабдява с вода.
-block.silicon-crucible.description = Рафинира силикон от пясък и въглища, използвайки пиратит като допълнителен източник на топлина. Действа по - ефективно върху топли повърхности.
-block.disassembler.description = Бавно извлича редки минерални компоненти от шлаката. Има шанс да извлече и торий.
-block.overdrive-dome.description = Повишава скоростта на близки сгради. Нуждае се от фазова тъкан и силикон за да оперира.
+block.silicon-crucible.description = Рафинира силикон от пясък и въглища, използвайки пиратит като допълнителен източник на топлина. Работи по-ефективно върху топли повърхности.
+block.disassembler.description = Бавно извлича редки минерални компоненти от шлака. Има шанс да извлече торий.
+block.overdrive-dome.description = Повишава скоростта на близки сгради. Нуждае се от фазова тъкан и силикон, за да работи.
block.payload-conveyor.description = Пренася големи товари, като единици от фабрика.
block.payload-router.description = Разпределя натоварените единици в 3 различни посоки.
-block.ground-factory.description = Произвежда наземни единици. Произведените единици могат да бъдат използвани директно или пренесени във Реконструктори за да бъдат подобрени.
-block.air-factory.description = Произвежда въздушни единици. Произведените единици могат да бъдат използвани директно или пренесени във Реконструктори за да бъдат подобрени.
-block.naval-factory.description = Произвежда морски единици. Произведените единици могат да бъдат използвани директно или пренесени във Реконструктори за да бъдат подобрени.
+block.ground-factory.description = Произвежда наземни единици. Произведените единици могат да бъдат използвани директно или пренесени във Реконструктори за подобрение.
+block.air-factory.description = Произвежда въздушни единици. Произведените единици могат да бъдат използвани директно или пренесени във Реконструктори за подобрение.
+block.naval-factory.description = Произвежда морски единици. Произведените единици могат да бъдат използвани директно или пренесени във Реконструктори за подобрение.
block.additive-reconstructor.description = Подобрява доставените единици до второ ниво.
block.multiplicative-reconstructor.description = Подобрява доставените единици до трето ниво.
block.exponential-reconstructor.description = Подобрява доставените единици до четвърто ниво.
block.tetrative-reconstructor.description = Подобрява доставените единици до петото и последно ниво.
block.switch.description = Превключвател. Може да се превключва ръчно и да се следи и управлява с процесор.
block.micro-processor.description = Многократно изпълнява поредица от логически инструкции. Може да управлява единици и постройки.
-block.logic-processor.description = Многократно изпълнява поредица от логически инструкции. Може да управлява единици и постройки. По - бърз от микропроцесор.
-block.hyper-processor.description = Многократно изпълнява поредица от логически инструкции. Може да управлява единици и постройки. По - бърз от логически процесор.
+block.logic-processor.description = Многократно изпълнява поредица от логически инструкции. Може да управлява единици и постройки. По-бърз от микропроцесор.
+block.hyper-processor.description = Многократно изпълнява поредица от логически инструкции. Може да управлява единици и постройки. По-бърз от логически процесор.
block.memory-cell.description = Съхранява информация, която може да се достъпва или променя от процесор.
block.memory-bank.description = Съхранява информация, която може да се достъпва или променя от процесор. Има голям капацитет.
block.logic-display.description = Позволява изобразяването на графика чрез процесор.
block.large-logic-display.description = Позволява изобразяването на графика чрез процесор.
-block.interplanetary-accelerator.description = Масивна електромагнитна релсова кула. Ускорява ядрата до необходимата скорост за междупланетно изстрелване.
-block.repair-turret.description = Continuously repairs the closest damaged unit in its vicinity. Optionally accepts coolant.
-block.core-bastion.description = Core of the base. Armored. Once destroyed, the sector is lost.
-block.core-citadel.description = Core of the base. Very well armored. Stores more resources than a Bastion core.
-block.core-acropolis.description = Core of the base. Exceptionally well armored. Stores more resources than a Citadel core.
-block.breach.description = Fires piercing beryllium or tungsten ammunition at enemy targets.
-block.diffuse.description = Fires a burst of bullets in a wide cone. Pushes enemy targets back.
-block.sublimate.description = Fires a continuous jet of flame at enemy targets. Pierces armor.
-block.titan.description = Fires a massive explosive artillery shell at ground targets. Requires hydrogen.
-block.afflict.description = Fires a massive charged orb of fragmentary flak. Requires heating.
-block.disperse.description = Fires bursts of flak at aerial targets.
-block.lustre.description = Fires a slow-moving single-target laser at enemy targets.
-block.scathe.description = Launches a powerful missile at ground targets over vast distances.
-block.smite.description = Fires bursts of piercing, lightning-emitting bullets.
-block.malign.description = Fires a barrage of homing laser charges at enemy targets. Requires extensive heating.
-block.silicon-arc-furnace.description = Refines silicon from sand and graphite.
-block.oxidation-chamber.description = Converts beryllium and ozone into oxide. Emits heat as a by-product.
-block.electric-heater.description = Heats facing blocks. Requires large amounts of power.
-block.slag-heater.description = Heats facing blocks. Requires slag.
-block.phase-heater.description = Heats facing blocks. Requires phase fabric.
-block.heat-redirector.description = Redirects accumulated heat to other blocks.
+block.interplanetary-accelerator.description = Масивна електромагнитна релсова кула. Ускорява ядрото до необходимата за междупланетно изстрелване скорост.
+block.repair-turret.description = Непрекъснато ремонтира най-близката повредена единица в обхват. Може да приема охладител.
+block.core-bastion.description = Ядро на базата. Добре бронирано. Ако бъде унищожено, секторът е загубен.
+block.core-citadel.description = Ядро на базата. Много добре бронирано. Съхранява повече ресурси от ядро Убежище.
+block.core-acropolis.description = Ядро на базата. Изключтилено бронирано. Съхранява повече ресурси от ядро Цитадела.
+block.breach.description = Изстрелва пробождащи муниции от берилий или волфрам.
+block.diffuse.description = Изстрелва облак от куршуми в широк конус. Изтласква враговете назад.
+block.sublimate.description = Изпуска продължителна струя от пламък към врага. Пробожда брони.
+block.titan.description = Изстрелва масивен артилерийски снаряд към наземни мишени. Нуждае се от водород.
+block.afflict.description = Изстрелва масивна заредена сфера от фрагментарна противовъздушна сила. Нуждае се от нагряване.
+block.disperse.description = Изстрелва противовъздушни снаряди към летящи мишени.
+block.lustre.description = Изстрелва бавноподвижен лазер към една мишена.
+block.scathe.description = Изстрелва могъща ракета към наземни мишени през огромни разстояния.
+block.smite.description = Изстрелва серия от пробождащи, наелектризирани куршуми.
+block.malign.description = Изстрелва порой от самонасочващи се лазерни заряди. Нуждае се от значително нагряване.
+block.silicon-arc-furnace.description = Рефинира силикон от пясък и графит.
+block.oxidation-chamber.description = Преобразува берилий и озон в оксид. Излъчва топлина като страничен продукт.
+block.electric-heater.description = Нагрява срещуположни блокове. Нуждае се от големи количества електричество.
+block.slag-heater.description = Нагрява срещуположни блокове. Нуждае се от слаг.
+block.phase-heater.description = Нагрява срещуположни блокове. Нуждае се от фазова тъкан.
+block.heat-redirector.description = Пренасочва натрупана топлина към други блокове.
block.small-heat-redirector.description = Redirects accumulated heat to other blocks.
-block.heat-router.description = Spreads accumulated heat in three output directions.
-block.electrolyzer.description = Converts water into hydrogen and ozone gas.
-block.atmospheric-concentrator.description = Concentrates nitrogen from the atmosphere. Requires heat.
-block.surge-crucible.description = Forms surge alloy from slag and silicon. Requires heat.
-block.phase-synthesizer.description = Synthesizes phase fabric from thorium, sand, and ozone. Requires heat.
-block.carbide-crucible.description = Fuses graphite and tungsten into carbide. Requires heat.
-block.cyanogen-synthesizer.description = Synthesizes cyanogen from arkycite and graphite. Requires heat.
-block.slag-incinerator.description = Incinerates non-volatile items or liquids. Requires slag.
-block.vent-condenser.description = Condenses vent gases into water. Consumes power.
-block.plasma-bore.description = When placed facing an ore wall, outputs items indefinitely. Requires small amounts of power.
-block.large-plasma-bore.description = A larger plasma bore. Capable of mining tungsten and thorium. Requires hydrogen and power.
-block.cliff-crusher.description = Crushes walls, outputting sand indefinitely. Requires power. Efficiency varies based on type of wall.
+block.heat-router.description = Разпределя натрупаната топлина в три изходящи посоки.
+block.electrolyzer.description = Превръща вода във водород и озонов газ.
+block.atmospheric-concentrator.description = Концентрира азот от атмосферата. Нуждае се от нагряване.
+block.surge-crucible.description = Образува импулсна сплав от слаг и силикон. Нуждае се от нагряване.
+block.phase-synthesizer.description = Синтезира фазова тъкан от торий, пясък и озон. Нуждае се от нагряване.
+block.carbide-crucible.description = Слива графит и волфрам в карбид. Нуждае се от нагряване.
+block.cyanogen-synthesizer.description = Синтезира цианоген от акрицид и графит. Нуждае се от нагряване.
+block.slag-incinerator.description = Изгаря устойчиви предмети или течности. Нуждае се от слаг.
+block.vent-condenser.description = Кондензира изпуснати газове във вода. Поглъща електричество.
+block.plasma-bore.description = Когато се постави срещуположно на стена с руда, извежда предмети безкрайно. Нуждае се от малко електричество.
+block.large-plasma-bore.description = По-голяма плазмена бургия. Способна е да изкопава волфрам и торий. Нуждае се от водород и електричество.
+block.cliff-crusher.description = Натрошава стени, за да генерира безкрайно количество пясък. Нуждае се от ток. Ефикасността варира спрямо вида стена.
block.large-cliff-crusher.description = Crushes walls, outputting sand indefinitely. Requires power and ozone. Efficiency varies based on type of wall. Optionally consumes tungsten to increase efficiency.
-block.impact-drill.description = When placed on ore, outputs items in bursts indefinitely. Requires power and water.
-block.eruption-drill.description = An improved impact drill. Capable of mining thorium. Requires hydrogen.
-block.reinforced-conduit.description = Moves fluids forward. Doesn't accept non-conduit inputs to the sides.
-block.reinforced-liquid-router.description = Distributes fluids equally to all sides.
-block.reinforced-liquid-tank.description = Stores a large amount of fluids.
-block.reinforced-liquid-container.description = Stores a sizeable amount of fluids.
-block.reinforced-bridge-conduit.description = Transports fluids over structures and terrain.
-block.reinforced-pump.description = Pumps and outputs liquids. Requires hydrogen.
-block.beryllium-wall.description = Protects structures from enemy projectiles.
-block.beryllium-wall-large.description = Protects structures from enemy projectiles.
-block.tungsten-wall.description = Protects structures from enemy projectiles.
-block.tungsten-wall-large.description = Protects structures from enemy projectiles.
-block.carbide-wall.description = Protects structures from enemy projectiles.
-block.carbide-wall-large.description = Protects structures from enemy projectiles.
-block.reinforced-surge-wall.description = Protects structures from enemy projectiles, periodically launching electric arcs upon projectile contact.
-block.reinforced-surge-wall-large.description = Protects structures from enemy projectiles, periodically launching electric arcs upon projectile contact.
-block.shielded-wall.description = Protects structures from enemy projectiles. Deploys a shield that absorbs most projectiles when power is provided. Conducts power.
-block.blast-door.description = A wall that opens when allied ground units are in range. Cannot be manually controlled.
-block.duct.description = Moves items forward. Only capable of storing a single item.
-block.armored-duct.description = Moves items forward. Does not accept non-duct inputs from the sides.
-block.duct-router.description = Distributes items equally across three directions. Only accepts items from the back side. Can be configured as an item sorter.
-block.overflow-duct.description = Only outputs items to the sides if the front path is blocked.
-block.duct-bridge.description = Moves items over structures and terrain.
-block.duct-unloader.description = Unloads the selected item from the block behind it. Cannot unload from cores.
-block.underflow-duct.description = Opposite of an overflow duct. Outputs to the front if the left and right paths are blocked.
-block.reinforced-liquid-junction.description = Acts as a junction between two crossing conduits.
-block.surge-conveyor.description = Moves items in batches. Can be sped up with power. Conducts power.
-block.surge-router.description = Equally distributes items in three directions from surge conveyors. Can be sped up with power. Conducts power.
-block.unit-cargo-loader.description = Constructs cargo drones. Drones automatically distribute items to Cargo Unload Points with a matching filter.
-block.unit-cargo-unload-point.description = Acts as an unloading point for cargo drones. Accepts items that match the selected filter.
-block.beam-node.description = Transmits power to other blocks orthogonally. Stores a small amount of power.
-block.beam-tower.description = Transmits power to other blocks orthogonally. Stores a large amount of power. Long-range.
-block.turbine-condenser.description = Generates power when placed on vents. Produces a small amount of water.
-block.chemical-combustion-chamber.description = Generates power from arkycite and ozone.
-block.pyrolysis-generator.description = Generates large amounts of power from arkycite and slag. Produces water as a byproduct.
-block.flux-reactor.description = Generates large amounts of power when heated. Requires cyanogen as a stabilizer. Power output and cyanogen requirements are proportional to heat input.\nExplodes if insufficient cyanogen is provided.
-block.neoplasia-reactor.description = Uses arkycite, water and phase fabric to generate large amounts of power. Produces heat and dangerous neoplasm as a byproduct.\nExplodes violently if neoplasm is not removed from the reactor via conduits.
-block.build-tower.description = Automatically rebuilds structures in range and assists other units in construction.
-block.regen-projector.description = Slowly repairs allied structures in a square perimeter. Requires hydrogen.
-block.reinforced-container.description = Stores a small amount of items. Contents can be retrieved via unloaders. Does not increase core storage capacity.
-block.reinforced-vault.description = Stores a large amount of items. Contents can be retrieved via unloaders. Does not increase core storage capacity.
-block.tank-fabricator.description = Constructs Stell units. Outputted units can be used directly, or moved into refabricators for upgrading.
-block.ship-fabricator.description = Constructs Elude units. Outputted units can be used directly, or moved into refabricators for upgrading.
-block.mech-fabricator.description = Constructs Merui units. Outputted units can be used directly, or moved into refabricators for upgrading.
-block.tank-assembler.description = Assembles large tanks out of inputted blocks and units. Output tier may be increased by adding modules.
-block.ship-assembler.description = Assembles large ships out of inputted blocks and units. Output tier may be increased by adding modules.
-block.mech-assembler.description = Assembles large mechs out of inputted blocks and units. Output tier may be increased by adding modules.
-block.tank-refabricator.description = Upgrades inputted tank units to the second tier.
-block.ship-refabricator.description = Upgrades inputted ship units to the second tier.
-block.mech-refabricator.description = Upgrades inputted mech units to the second tier.
-block.prime-refabricator.description = Upgrades inputted units to the third tier.
+block.impact-drill.description = Когато се постави върху руда, извежда предмети безкрайно на тласъци. Нуждае се от ток и вода.
+block.eruption-drill.description = Подобрен сблъсъчен свредел. Способен е да изкопава торий. Нуждае се от водород.
+block.reinforced-conduit.description = Придвижва течности напред. Не приема непроводими материали от страни.
+block.reinforced-liquid-router.description = Разпределя течности поравно на всички страни.
+block.reinforced-liquid-tank.description = Съхранява голямо количество течности.
+block.reinforced-liquid-container.description = Съхранява значително количество течности.
+block.reinforced-bridge-conduit.description = Пренася течности над структури и над терен.
+block.reinforced-pump.description = Изпомпва и изнася течности. Нуждае се от водород.
+block.beryllium-wall.description = Защитава сградите от вражески огън.
+block.beryllium-wall-large.description = Защитава сградите от вражески огън.
+block.tungsten-wall.description = Защитава сградите от вражески огън.
+block.tungsten-wall-large.description = Защитава сградите от вражески огън.
+block.carbide-wall.description = Защитава сградите от вражески огън.
+block.carbide-wall-large.description = Защитава сградите от вражески огън.
+block.reinforced-surge-wall.description = Защитава структури от вражески огън, периодично освобождавайки електрически дъги при контакт.
+block.reinforced-surge-wall-large.description = Защитава структури от вражески огън, периодично освобождавайки волтови дъги при контакт.
+block.shielded-wall.description = Защитава структури от вражески огън. Пуска щит, който поглъща повечето снаряди, докато има електричество. Нуждае се от ток.
+block.blast-door.description = Стена, която се отваря, когато в близост има приятелски наземни единици. Не може да се управлява ръчно.
+block.duct.description = Придвижва предмети напред. Може да съхранява само по един предмет.
+block.armored-duct.description = Придвижва предмети напред. Не приема чужди предмети от страни.
+block.duct-router.description = Разпределя предмети поравно в три посоки. Приема предмети единствено от задната си страна. Може да се настрои като сортировач на предмети.
+block.overflow-duct.description = Извежда предмети към стените единствено, ако предният път е възпрепятстван.
+block.duct-bridge.description = Придвижва предмети над сгради и терен.
+block.duct-unloader.description = Разтоварва избраният предмет от блока зад него. Не може да разтоварва от ядра.
+block.underflow-duct.description = Обратното на преливащ тръбопровод. Извежда напред, когато левият и десният път са блокирани.
+block.reinforced-liquid-junction.description = Действа като пресечна точка между два пресичащи се потока.
+block.surge-conveyor.description = Придвижва предмети на партити. Може да се ускори с електричество. Електропроводим.
+block.surge-router.description = Разпределя предмети в три посоки поравно от импулсни ленти. Може да се ускори с електричество. Електропроводим.
+block.unit-cargo-loader.description = Построява товарителни дрони. Дроните автоматично разпределят предмети към Разтоварителни точки със съвпадащ филтър.
+block.unit-cargo-unload-point.description = Действа като разтоварваща точка за товарителни дрони. Приема предмети, които съвпадат с посочения филтър.
+block.beam-node.description = Предава електричество ортогонално към други блокове. Съхранява малко количество ток.
+block.beam-tower.description = Предава електричество ортогонално към други блокове. Съхранява голямо количество ток. Висок обхват.
+block.beam-link.description = Transmits power over vast distances.\nOnly capable of connecting to adjacent structures or other beam links.
+block.turbine-condenser.description = Създава ток, когато се постави върху отвори. Произвежда малко количество вода.
+block.chemical-combustion-chamber.description = Създава ток от аркицид и озон.
+block.pyrolysis-generator.description = Създава голямо количество ток от аркицид и слаг. Произвежда вода като страничен продукт.
+block.flux-reactor.description = Когато се нагрее, създава големи количества електричество. Изисква цианоген, за да се стабилизира. Изходящият ток и нуждата от цианоген са пропорционални с подадената топлина.\nЕксплодира, ако не получи достатъчно цианоген.
+block.neoplasia-reactor.description = Използва аркицид, вода и фазова тъкан, за да създава високи количества електричество. Произвежда топлина и опасна нео-плазма като странични продукти.\nЕкслодира жестоко, когато нео-плазмата не се извежда от реактора с тръбопроводи.
+block.build-tower.description = Автоматично възстановява сгради в обхвата си и единици в производство.
+block.regen-projector.description = Бавно поправя приятелски сгради в квадратен периметър. Нуждае се от водород.
+block.reinforced-container.description = Съхранява малко количество предмети. Съдържанието може да бъде извеждано с разтоварители. Не увеличава размера на хранилището на ядрото.
+block.reinforced-vault.description = Съхранява голямо количество предмети. Съдържанието може да бъде извеждано с разтоварители. Не увеличава размера на хранилището на ядрото.
+block.tank-fabricator.description = Произвежда единици тип "Стел". Изведените единици могат да се управляват директно или да бъдат изпратени към рефабрикаторите за подобрение.
+block.ship-fabricator.description = Произвежда единици тип "Елуд". Изведените единици могат да се управляват директно или да бъдат изпратени към рефабрикаторите за подобрение.
+block.mech-fabricator.description = Произвежда единици тип "Меруи". Изведените единици могат да се управляват директно или да бъдат изпратени към рефабрикаторите за подобрение.
+block.tank-assembler.description = Изгражда огромни танкове от въведени блокове и единици. Изходящиата единица може да бъде подобрен чрез модули.
+block.ship-assembler.description = Изгражда огромни кораби от въведени блокове и единици. Изходящиата единица може да бъде подобрен чрез модули.
+block.mech-assembler.description = Изгражда огромни машини от въведени блокове и единици. Изходящиата единица може да бъде подобрен чрез модули.
+block.tank-refabricator.description = Подобрява въведените танкове до второ ниво.
+block.ship-refabricator.description = Подобрява въведените кораби до второ ниво.
+block.mech-refabricator.description = Подобрява въведените машини до второ ниво.
+block.prime-refabricator.description = Подобрява въведените единици до трето ниво.
block.basic-assembler-module.description = Increases assembler tier when placed next to a construction boundary. Requires power. Can be used as a payload input.
-block.small-deconstructor.description = Deconstructs inputted structures and units. Returns 100% of the build cost.
-block.reinforced-payload-conveyor.description = Moves payloads forward.
-block.reinforced-payload-router.description = Distributes payloads into adjacent blocks. Functions as a sorter when a filter is set.
-block.payload-mass-driver.description = Long-range payload transport structure. Shoots received payloads to linked payload mass drivers.
-block.large-payload-mass-driver.description = Long-range payload transport structure. Shoots received payloads to linked payload mass drivers.
-block.unit-repair-tower.description = Repairs all units in its vicinity. Requires ozone.
-block.radar.description = Gradually uncovers terrain and enemy units in a large radius. Requires power.
-block.shockwave-tower.description = Damages and destroys enemy projectiles in a radius. Requires cyanogen.
-block.canvas.description = Displays a simple image with a pre-defined palette. Editable.
+block.small-deconstructor.description = Деконструира въведени сгради и единици. Възвръща 100% от разхода им за производство.
+block.reinforced-payload-conveyor.description = Придвижва товарите напред.
+block.reinforced-payload-router.description = Разпределя товари в съседни блокове. Когато има посочен филтър, действа като сортировач.
+block.payload-mass-driver.description = Далекообхватна сграда за транспорт на товари. Изстрелва получените товари към свързани масирани двигатели.
+block.large-payload-mass-driver.description = Далекообхватна сграда за транспорт на товари. Изстрелва получените товари към свързани масирани двигатели.
+block.unit-repair-tower.description = Поправя всички единици в своя обхват. Нуждае се от озон.
+block.radar.description = Постепенно разкрива терена и вражески единици в широк радиус. Нуждае се от електричество.
+block.shockwave-tower.description = Поврежда и унищожава вражески снаряди в обхвата си. Нуждае се от цианоген.
+block.canvas.description = Показва просто изображение с предзададена палитра. Може да се редактира.
unit.dagger.description = Изстрелва стандартни боеприпаси по всички близки врагове.
unit.mace.description = Изстрелва поток от пламък по всички близки врагове.
unit.fortress.description = Далекообхватна атака срещу наземни единици.
unit.scepter.description = Изстрелва залп от заредени куршуми по всички близки врагове.
unit.reign.description = Изстрелва залп от масивни пронизващи куршуми по всички близки врагове.
-unit.nova.description = Изстрелва лазерни лъчи, които повреждат врагове и поправят приятелски структури. Може да лети.
-unit.pulsar.description = Активира волтови дъги, които повреждат врагове и поправят приятелски структури. Може да лети.
-unit.quasar.description = Изстрелва пронизващи лазерни лъчи, които повреждат врагове и поправят приятелски структури. Може да лети. Има защитно поле.
-unit.vela.description = Изстрелва масивен продължителен лазерен лъч, който поврежда врагове, причинява пожари и поправя приятелски структури. Може да лети.
-unit.corvus.description = Изстрелва масивен лазерен взрив, който поврежда врагове и поправя приятелски структури. Може да преминава над повечето терени.
-unit.crawler.description = Бяга към врагове и се самоунищожава, причинявайки голяма експлозия.
-unit.atrax.description = Изстрелва инвалидизиращи кълба от шлака по наземни цели. Може да прекрачи повечето терени.
-unit.spiroct.description = Изстрелва пронизващи лазерни лъчи по враговете, като се самовъзстановява в процеса. Може да преминава над повечето терени.
-unit.arkyid.description = Атакува врагове със големи източващи лазерни лъчи, самопоправяйки се в процеса. Може да преминава над повечето терени.
-unit.toxopid.description = Изстрелва големи електрически клъстерни снаряди и пронизващи лазери по врагове. Може да преминава над повечето терени.
+unit.nova.description = Изстрелва лазерни лъчи, които повреждат врагове и поправят приятелски сгради. Може да лети.
+unit.pulsar.description = Активира волтови дъги, които повреждат врагове и поправят приятелски сгради. Може да лети.
+unit.quasar.description = Изстрелва пронизващи лазерни лъчи, които повреждат врагове и поправят приятелски сгради. Може да лети. Има защитно поле.
+unit.vela.description = Изстрелва масивен продължителен лазерен лъч, който поврежда врагове, причинява пожари и поправя приятелски сгради. Може да лети.
+unit.corvus.description = Изстрелва масивен лазерен взрив, който поврежда врагове и поправя приятелски сгради. Може да преминава над повечето терени.
+unit.crawler.description = Бяга към врагове и се самоунищожава, предизвиквайки голяма експлозия.
+unit.atrax.description = Изстрелва обездвижващи кълба от шлака по наземни цели. Може да прекосява почти всякакъв терен.
+unit.spiroct.description = Изстрелва пронизващи лазерни лъчи по враговете и се самовъзстановява. Може да прекосява почти всякакъв терен.
+unit.arkyid.description = Атакува врагове с големи източващи лазерни лъчи и се самовъзстановява. Може да прекосява почти всякакъв терен.
+unit.toxopid.description = Изстрелва големи електрически клъстерни снаряди и пронизващи лазери по врагове. Може да прекосява почти всякакъв терен.
unit.flare.description = Изстрелва стандартни снаряди по близки наземни врагове.
-unit.horizon.description = Пуска серии от бомби по наземни мишени.
+unit.horizon.description = Пуска серия от бомби по наземни мишени.
unit.zenith.description = Изстрелва залпове от ракети по всички близки врагове.
-unit.antumbra.description = Изстрелва залп от боеприпаси по всички врагове в обхват.
+unit.antumbra.description = Изстрелва залп от боеприпаси по всички врагове в обхвата си.
unit.eclipse.description = Изстрелва два пробиващи лазера и залп от сачми по близки врагове.
unit.mono.description = Автоматично добива мед и олово, след което ги пренася в ядрото.
-unit.poly.description = Автоматично поправя или построява увредени и унищожени структури. Помага на други единици в строежи.
-unit.mega.description = Автоматично поправя повредени структури. Може да пренася блокове и малки наземни единици.
-unit.quad.description = Пуска големи бомби по земни мишени, поправяйки приятелски структури и повреждайки врагове. Може да пренася средни по размер наземни единици.
+unit.poly.description = Автоматично поправя или построява увредени и унищожени сгради. Помага на други единици в строежи.
+unit.mega.description = Автоматично поправя повредени сгради. Може да пренася блокове и малки наземни единици.
+unit.quad.description = Пуска големи бомби по наземни мишени, поправя приятелски сгради и поврежда враговете. Може да пренася средни по размер наземни единици.
unit.oct.description = Защитава приятелски единици чрез регенериращо защитно поле. Може да пренася повечето наземни единици.
unit.risso.description = Изстрелва залпове от ракети и боеприпаси по всички близки врагове.
unit.minke.description = Изстрелва сачми и стандартни муниции по наземни мишени.
unit.bryde.description = Изстрелва далекообхватни боеприпаси и ракети по врагове.
unit.sei.description = Изстрелва поредица от ракети и бронебойни куршуми по врагове.
unit.omura.description = Изстрелва далечни пробивни релсови лазери по врагове. Изгражда единици модел Факел.
-unit.alpha.description = Защитава ядро Шард от врагове. Строи структури.
-unit.beta.description = Защитава ядро Фондация от врагове. Строи структури.
-unit.gamma.description = Защитава ядро Център от врагове. Строи структури.
-unit.retusa.description = Fires homing torpedoes at nearby enemies. Repairs allied units.
-unit.oxynoe.description = Fires structure-repairing streams of flame at nearby enemies. Targets nearby enemy projectiles with a point defense turret.
-unit.cyerce.description = Fires seeking cluster-missiles at enemies. Repairs allied units.
-unit.aegires.description = Shocks all enemy units and structures that enter its energy field. Repairs all allies.
-unit.navanax.description = Fires explosive EMP projectiles, dealing significant damage to enemy power networks and repairing allied structures. Melts nearby enemies with 4 autonomous laser turrets.
-unit.stell.description = Fires standard bullets at enemy targets.
-unit.locus.description = Fires alternating bullets at enemy targets.
-unit.precept.description = Fires piercing cluster bullets at enemy targets.
-unit.vanquish.description = Fires large piercing splitting bullets at enemy targets.
-unit.conquer.description = Fires large piercing cascades of bullets at enemy targets.
-unit.merui.description = Fires long-range artillery at enemy ground targets. Can step over most terrain.
-unit.cleroi.description = Fires dual shells at enemy targets. Targets enemy projectiles with point defense turrets. Can step over most terrain.
-unit.anthicus.description = Fires long-range homing missiles at enemy targets. Can step over most terrain.
-unit.tecta.description = Fires homing plasma missiles at enemy targets. Protects itself with a directional shield. Can step over most terrain.
-unit.collaris.description = Fires long-range fragmenting artillery at enemy targets. Can step over most terrain.
-unit.elude.description = Fires pairs of homing bullets at enemy targets. Can float over bodies of liquid.
-unit.avert.description = Fires twisting pairs of bullets at enemy targets.
-unit.obviate.description = Fires twisting pairs of lightning orbs at enemy targets.
-unit.quell.description = Fires long-range homing missiles at enemy targets. Suppresses enemy structure repair blocks.
-unit.disrupt.description = Fires long-range homing suppression missiles at enemy targets. Suppresses enemy structure repair blocks.
-unit.evoke.description = Builds structures to defend the Bastion core. Repairs structures with a beam.
-unit.incite.description = Builds structures to defend the Citadel core. Repairs structures with a beam.
-unit.emanate.description = Builds structures to defend the Acropolis core. Repairs structures with beams.
+unit.alpha.description = Защитава ядро Частица от врагове. Строи сгради.
+unit.beta.description = Защитава ядро Фондация от врагове. Строи сгради.
+unit.gamma.description = Защитава ядро Център от врагове. Строи сгради.
+unit.retusa.description = Изстрелва самонасочващи се торпеда към близки врагове. Поправя приятелски единици.
+unit.oxynoe.description = Изстрелва потоци от огън, които вредят на враговете и поправят сгради. Насочва се към вражески снаряди с кула за точкова защита.
+unit.cyerce.description = Изстрелва търсещи клъстерни ракети по враговете. Поправя приятелски единици.
+unit.aegires.description = Шокира всички вражески единици и сгради в енергийното си поле. Поправя всички приятелски единици.
+unit.navanax.description = Изстрелва експлозивни ЕМП снаряди, които нанасят значителна вреда на вражеските силови мрежи и поправя приятелски сгради. Разтопява близки врагове с 4 автономни лазерни оръдия.
+unit.stell.description = Стреля със стандартни куршуми по вражески цели.
+unit.locus.description = Стреля последователни куршуми по вражески цели.
+unit.precept.description = Стреля с пронизващи клъстерни куршуми по вражески цели.
+unit.vanquish.description = Стреля с едри пронизващи и разцепващи се куршуми по вражески цели.
+unit.conquer.description = Стреля с едри пронизващи каскади от куршуми по вражески цели.
+unit.merui.description = Стреля с далекообхватна артилерия по вражески наземни цели. Може да прекосява почти всякакъв терен.
+unit.cleroi.description = Стреля с двойни снаряди по вражески цели. Насочва се към вражески снаряди с кули с точкова защита. Може да прекосява почти всякакъв терен.
+unit.anthicus.description = Изстрелва далекообхватни самонасочващи се ракети по вражески цели. Може да прекосява почти всякакъв терен.
+unit.tecta.description = Изстрелва самонасочващи се плазмени ракети по вражески цели. Защитава се с насочен щит. Може да прекосява почти всякакъв терен.
+unit.collaris.description = Изстрелва далекообхватна фрагментарна артилерия по вражески цели. Може да прекосява почти всякакъв терен.
+unit.elude.description = Изстрелва чифт самонасочващи се куршуми по вражески цели. Може да прелита над течни басейни.
+unit.avert.description = Изстрелва усукващи се чифтове куршуми по вражески цели.
+unit.obviate.description = Изстрелва усукващи се чифтове електрически сфери по вражески цели.
+unit.quell.description = Изстрелва далекообхватни самонасочващи се ракети по вражески цели. Възпира поправките на вражески блокове.
+unit.disrupt.description = Изстрелва далекообхватни самонасочващи се и възпиращи ракети по вражески цели. Възпира поправките на вражески блокове.
+unit.evoke.description = Строи сгради, за да защитава ядро Убежище. Поправя сгради с лъч.
+unit.incite.description = Строи сгради, за да защитава ядро Цитадела. Поправя сгради с лъч.
+unit.emanate.description = Строи сгради, за да защитава ядро Акропол. Поправя сгради с лъч.
lst.read = Прочети число от свързано хранилище за памет.
lst.write = Запиши число в свързано хранилище за памет.
lst.print = Добави текст в буфера за изписване.\nНе визуализира нищо докато не използвате [accent]Print Flush[].
+lst.printchar = Add a UTF-16 character or content icon to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used.
lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example"
lst.draw = Добавя операция в буфера за изображение.\nНе показва нищо докато не използвате [accent]Draw Flush[].
lst.drawflush = Изпълнява операции, поискани с команда [accent]Draw[] върху посочен дисплей.
@@ -2363,33 +2417,33 @@ lst.sensor = Взима информация от сграда или едини
lst.set = Задава променлива.
lst.operation = Изпълнява операция с 1 или 2 променливи.
lst.end = Започва списъка с инструкции от начало.
-lst.wait = Wait a certain number of seconds.
-lst.stop = Halt execution of this processor.
-lst.lookup = Look up an item/liquid/unit/block type by ID.\nTotal counts of each type can be accessed with:\n[accent]@unitCount[] / [accent]@itemCount[] / [accent]@liquidCount[] / [accent]@blockCount[]
-lst.jump = Прескача до друга позиция в програмата ако дадено условие е изпълнено.
+lst.wait = Изчаква определен брой секунди.
+lst.stop = Спира изпълнението на този процесор.
+lst.lookup = Търси предмет/течност/единица/вид блок чрез неговото ID.\nМожете да видите общият брой на всеки вид чрез:\n[accent]@unitCount[] / [accent]@itemCount[] / [accent]@liquidCount[] / [accent]@blockCount[]
+lst.jump = Прескача до друга позиция в програмата, когато дадено условие бъде изпълнено.
lst.unitbind = Поема контрол над следващата единица от избран тип и я записва в променливата [accent]@unit[].
lst.unitcontrol = Управлява контролираната в момента единица.
lst.unitradar = Засича единици около контролираната единица.
lst.unitlocate = Намира конкретен тип постройка/позиция на картата.\nНеобходимо е да контролирате единица за да го използвате.
-lst.getblock = Get tile data at any location.
-lst.setblock = Set tile data at any location.
-lst.spawnunit = Spawn unit at a location.
-lst.applystatus = Apply or clear a status effect from a uniut.
+lst.getblock = Получаване на данни за повърхност от всяка локация.
+lst.setblock = Задаване на данни за повърхност от всяка локация.
+lst.spawnunit = Създава единица върху дадена повърхност.
+lst.applystatus = Прилага или премахва определено състояние от единица.
lst.weathersense = Check if a type of weather is active.
lst.weatherset = Set the current state of a type of weather.
-lst.spawnwave = Simulate a wave being spawned at a arbitrary location.\nWill not increment the wave counter.
-lst.explosion = Create an explosion at a location.
+lst.spawnwave = Симулира пусната вълна на произволно място.\nНяма да увеличи бройката на вълните.
+lst.explosion = Създава експлозия на избрано място.
lst.setrate = Set processor execution speed in instructions/tick.
lst.fetch = Lookup units, cores, players or buildings by index.\nIndices start at 0 and end at their returned count.
lst.packcolor = Pack [0, 1] RGBA components into a single number for drawing or rule-setting.
-lst.setrule = Set a game rule.
-lst.flushmessage = Display a message on the screen from the text buffer.\nWill wait until the previous message finishes.
-lst.cutscene = Manipulate the player camera.
-lst.setflag = Set a global flag that can be read by all processors.
-lst.getflag = Check if a global flag is set.
-lst.setprop = Sets a property of a unit or building.
+lst.setrule = Поставяне на правило за игра.
+lst.flushmessage = Извежда съобщение на екрана от текстовия буфер.\nИзчаква до приключването на предишното съобщение.
+lst.cutscene = Манипулира камерата на играча.
+lst.setflag = Поставяне на глобално знаме, което може да се разчете от всички процесори.
+lst.getflag = Проверява дали е поставено глобално знаме.
+lst.setprop = Поставя притежанието на единица или сграда.
lst.effect = Create a particle effect.
-lst.sync = Sync a variable across the network.\nOnly invoked 10 times a second at most.
+lst.sync = Синхронизира променлива през мрежата.\nПредизвиква се най-много 10 пъти в секунда.
lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position.
lst.makemarker = Create a new logic marker in the world.\nAn ID to identify this marker must be provided.\nMarkers currently limited to 20,000 per world.
lst.setmarker = Set a property for a marker.\nThe ID used must be the same as in the Make Marker instruction.
@@ -2433,36 +2487,38 @@ lglobal.@clientMobile = True is the client running the code is on mobile, false
logic.nounitbuild = [red]Действия за строене на единици не са позволени тук.
-lenum.type = Тип сграда/единица\nНапример, за рутер това ще върне [accent]@router[].\nНе е текст.
+lenum.type = Тип сграда/единица\nНапример, за рутер, това ще върне [accent]@router[].\nНе е текст.
lenum.shoot = Стреля към позиция.
lenum.shootp = Прицелва се в единица/сграда, изчислявайки нейната скорост.
lenum.config = Building configuration, e.g. sorter item.
lenum.enabled = Дали блокът е активиран или забранен.
-laccess.currentammotype = Current ammo item/liquid of a turret.
+laccess.currentammotype = Текущите муниции/течност на оръдието.
+laccess.memorycapacity = Number of cells in a memory block.
laccess.color = Цвят на осветителя.
-laccess.controller = Връща кой контролира единицата.\nАко е управляване от процесор, връща процесора.\nАко е във формация, връща лидера.\nИначе, връща самата единица.
+laccess.controller = Показва кой контролира единицата.\nАко се управлява от процесор, показва него.\nАко е във формация, показва водача й.\nИначе ще покаже самата единица.
laccess.dead = Дали дадена единица/сграда е била унищожена или вече е невалидна.
-laccess.controlled = Връща:\n[accent]@ctrlProcessor[] ако единицата е контролирана от процесор\n[accent]@ctrlPlayer[] ако единицата/сградата е контролирана от играч\n[accent]@ctrlFormation[] ако единицата участва във формация\nИначе, връща 0.
+laccess.controlled = Показва:\n[accent]@ctrlProcessor[] ако единицата е контролирана от процесор\n[accent]@ctrlPlayer[] ако единицата/сградата е контролирана от играч\n[accent]@ctrlFormation[] ако единицата участва във формация\nИначе, връща 0.
laccess.progress = Action progress, 0 to 1.\nReturns production, turret reload or construction progress.
-laccess.speed = Top speed of a unit, in tiles/sec.
-laccess.id = ID of a unit/block/item/liquid.\nThis is the inverse of the lookup operation.
-lcategory.unknown = Unknown
-lcategory.unknown.description = Uncategorized instructions.
-lcategory.io = Input & Output
-lcategory.io.description = Modify contents of memory blocks and processor buffers.
-lcategory.block = Block Control
-lcategory.block.description = Interact with blocks.
-lcategory.operation = Operations
-lcategory.operation.description = Logical operations.
-lcategory.control = Flow Control
-lcategory.control.description = Manage execution order.
-lcategory.unit = Unit Control
-lcategory.unit.description = Give units commands.
-lcategory.world = World
-lcategory.world.description = Control how the world behaves.
+laccess.speed = Най-висока скорост за единица, измерено в полета/секунда.
+laccess.size = Size of a unit/building or the length of a string.
+laccess.id = ID на единица/блок/предмет/течност.\nТази операция е обратната на търсенето.
+lcategory.unknown = Неизвестно
+lcategory.unknown.description = Некатегоризирани указания.
+lcategory.io = Вход и изход
+lcategory.io.description = Модифицира съдържанията на помнещи блокове и процесорни буфери.
+lcategory.block = Контрол на блок
+lcategory.block.description = Взаимодействие с блокове.
+lcategory.operation = Операции
+lcategory.operation.description = Логически операции.
+lcategory.control = Контрол на течението
+lcategory.control.description = Управление на изпълнителния ред.
+lcategory.unit = Управление на единица
+lcategory.unit.description = Управляване на единици.
+lcategory.world = Свят
+lcategory.world.description = Управлява поведението на света.
-graphicstype.clear = Запълва с цвятr.
+graphicstype.clear = Запълва с цвят.
graphicstype.color = Задава цвят за следващи операции.
graphicstype.col = Equivalent to color, but packed.\nPacked colors are written as hex codes with a [accent]%[] prefix.\nExample: [accent]%ff0000[] would be red.
graphicstype.stroke = Задава дебелина на линията.
@@ -2473,7 +2529,7 @@ graphicstype.poly = Запълва правилен многоъгълник.
graphicstype.linepoly = Очертава правилен многоъгълник.
graphicstype.triangle = Запълва триъгълник.
graphicstype.image = Рисува изображение.\nНапример: [accent]@router[] или [accent]@dagger[].
-graphicstype.print = Draws text from the print buffer.\nClears the print buffer.
+graphicstype.print = Чертае текст от принтеровия буфер.\nИзчиства буфера.
lenum.always = Винаги вярно
lenum.idiv = Деление с цели числа.
@@ -2493,14 +2549,14 @@ lenum.xor = Побитово ИЗКЛЮЧВАЩО ИЛИ.
lenum.min = Минимална стойност от 2 числа.
lenum.max = Максимална стойност от 2 числа.
lenum.angle = Ъгъл на вектор в градуси.
-lenum.anglediff = Absolute distance between two angles in degrees.
+lenum.anglediff = Абсолютното разстояние между два ъгъла в градуси.
lenum.len = Дължина на вектор.
lenum.sin = Синус, в градуси.
lenum.cos = Косинус, в градуси.
lenum.tan = Тангенс, в градуси.
-lenum.asin = Arc sine, in degrees.
-lenum.acos = Arc cosine, in degrees.
-lenum.atan = Arc tangent, in degrees.
+lenum.asin = Дъгов синус, в градуси.
+lenum.acos = Дъгов косинус, в градуси.
+lenum.atan = Дъгов тангенс, в градуси.
#not a typo, look up 'range notation'
lenum.rand = Случайно число в регион [0, стойност).
lenum.log = Естествен логаритъм (ln).
@@ -2529,20 +2585,20 @@ lenum.generator = Електрогенератор.
lenum.factory = Сграда която обработва ресурси, фабрика.
lenum.repair = Точка за ремонт.
lenum.battery = Батерия.
-lenum.resupply = Точка за снабдяване.\nИма смисъл само ако [accent]"Единиците се Нуждаят от Боеприпаси"[] е активирано.
+lenum.resupply = Точка за снабдяване.\nИма смисъл само ако [accent]"Единиците се нуждаят от боеприпаси"[] е активирано.
lenum.reactor = Ударен или Ториев реактор.
lenum.turret = Всякаква кула.
sensor.in = Сградата/единицата, от която да вземе информация.
radar.from = Постройка от която да вземе информация.\nОбхватът е ограничен от обхвата за строене.
-radar.target = Филтър за единици, които да усети.
+radar.target = Филтър за единици, които ще засича.
radar.and = Допълнителни филтри.
radar.order = Ред на сортиране. 0 за обръщане.
radar.sort = Показател за сортиране.
-radar.output = Променлива в която да извете намерената единица.
+radar.output = Променлива, в която да изведе намерената единица.
-unitradar.target = Филтър за единици, които да усети.
+unitradar.target = Филтър за единици, които ще засича.
unitradar.and = Допълнителни филтри.
unitradar.order = Ред на сортиране. 0 за обръщане.
unitradar.sort = Показател за сортиране.
@@ -2558,28 +2614,28 @@ unitlocate.building = Променлива в която да запише на
unitlocate.outx = Резултатна X координата.
unitlocate.outy = Резултатна Y координата.
unitlocate.group = Група постройки за които да търси.
-playsound.limit = If true, prevents this sound from playing\nif it has already been played in the same frame.
+playsound.limit = Ако е вярно, предотвратява този звук,\nв случай, че вече е прозвучал в същия кадър.
-lenum.idle = Не се движи, но продължи да строиш/добиваш ресурси.\nСтандартното поведение.
+lenum.idle = Не се движи, но продължи да строиш/добиваш ресурси.\nСтандартно поведение.
lenum.stop = Спри да се движиш/добиваш ресурси/строиш.
-lenum.unbind = Completely disable logic control.\nResume standard AI.
+lenum.unbind = Напълно изключва логически контрол.\nПродължава стандартно поведение.
lenum.move = Премести се на конкретна позиция.
lenum.approach = Доближи се до позиция на определено разстояние.
lenum.pathfind = Намери пътека до вражеската начална точка.
-lenum.autopathfind = Automatically pathfinds to the nearest enemy core or drop point.\nThis is the same as standard wave enemy pathfinding.
+lenum.autopathfind = Автоматично намира пътя до най-близкото вражеско ядро или точка на кацане.\nТова е същото като обичайното ориентиране на вражеските вълни.
lenum.target = Стреляй към позиция.
lenum.targetp = Стреляй към цел, изчислявайки нейната скорост.
lenum.itemdrop = Разтовари предмет(и).
lenum.itemtake = Вземи предмет(и) от сграда.
lenum.paydrop = Разтовари товар.
lenum.paytake = Вземи товар от сегашната позиция.
-lenum.payenter = Enter/land on the payload block the unit is on.
+lenum.payenter = Влез/кацни на товарния блок, върху който се намира единицата.
lenum.flag = Числов флаг на единица.
lenum.mine = Добивай ресурси от позиция.
lenum.build = Построй структура.
-lenum.getblock = Fetch building, floor and block type at coordinates.\nUnit must be in range of the position, otherwise null is returned.
+lenum.getblock = Провери типа на постройката на дадени координати.\nПозицията трябва да е в обхвата на единицата.\nСолидни не-сгради ще имат типа [accent]@solid[].
lenum.within = Проверете дали дадена позиция е в обхват на единицата.
-lenum.boost = Започни/Спри ускорението.
+lenum.boost = Започни/Спри ускорението
lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle.
lenum.texture = Texture name straight from game's texture atlas (using kebab-case naming style).\nIf printFlush is set to true, consumes text buffer content as text argument.
lenum.texturesize = Size of texture in tiles. Zero value scales marker width to original texture's size.
@@ -2587,3 +2643,29 @@ lenum.autoscale = Whether to scale marker corresponding to player's zoom level.
lenum.posi = Indexed position, used for line and quad markers with index zero being the first position.
lenum.uvi = Texture's position ranging from zero to one, used for quad markers.
lenum.colori = Indexed position, used for line and quad markers with index zero being the first color.
+lenum.wavetimer = Whether the waves come automatically on a timer. If not, waves come when the play button is pressed.
+lenum.wave = Current wave number. Can be anything in non-wave modes.
+lenum.currentwavetime = Wave countdown in ticks.
+lenum.waves = Whether waves are spawnable at all.
+lenum.wavesending = Whether the waves can be manually summoned with the play button.
+lenum.attackmode = Determines if gamemode is attack mode.
+lenum.wavespacing = Time between waves in ticks.
+lenum.enemycorebuildradius = No-build zone around enemy core radius.
+lenum.dropzoneradius = Radius around enemy wave drop zones.
+lenum.unitcap = Base unit cap. Can still be increased by blocks.
+lenum.lighting = Whether ambient lighting is enabled.
+lenum.buildspeed = Multiplier for building speed.
+lenum.unithealth = How much health units start with.
+lenum.unitbuildspeed = How fast unit factories build units.
+lenum.unitcost = Multiplier of resources that units take to build.
+lenum.unitdamage = How much damage units deal.
+lenum.blockhealth = How much health blocks start with.
+lenum.blockdamage = How much damage blocks (turrets) deal.
+lenum.rtsminweight = Minimum "advantage" needed for a squad to attack. Higher -> more cautious.
+lenum.rtsminsquad = Minimum size of attack squads.
+lenum.maparea = Playable map area. Anything outside the area will not be interactable.
+lenum.ambientlight = Ambient light color. Used when lighting is enabled.
+lenum.solarmultiplier = Multiplies power output of solar panels.
+lenum.dragmultiplier = Environment drag multiplier.
+lenum.ban = Blocks or units that cannot be placed or built.
+lenum.unban = Unban a unit or block.
diff --git a/core/assets/bundles/bundle_ca.properties b/core/assets/bundles/bundle_ca.properties
index 472f13306e..981d5a4a2a 100644
--- a/core/assets/bundles/bundle_ca.properties
+++ b/core/assets/bundles/bundle_ca.properties
@@ -131,6 +131,7 @@ feature.unsupported = El vostre dispositiu no suporta aquesta característica.
mods.initfailed = [red]⚠[] L’anterior instància del Mindustry no va poder iniciar-se, probablement per l’error d’algun mod.\n\nPer evitar un bucle de fallades, [red]s’han desactivat tots els mods.[]
mods = Mods
+mods.name = Mod:
mods.none = [lightgray]No s’ha trobat cap mod!
mods.guide = Guia sobre els mods
mods.report = Informa d’un error
@@ -155,7 +156,7 @@ mod.erroredcontent = [scarlet]Errors del contingut
mod.circulardependencies = [red]Dependències circulars
mod.incompletedependencies = [red]Dependències incompletes
mod.requiresversion.details = Requereix la versió: [accent]{0}[]\nCal actualitzar la vostra versió del joc. El mod necessita una versió nova (potser una distribució alfa o beta) per a funcionar.
-mod.outdatedv7.details = Aquest mod és incompatible amb l’última versió del joc. L’autor l’ha d’actualitzar i afegir [accent]minGameVersion: 136[] al seu fitxer [accent]mod.json[].
+mod.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 = Aquest mod s’ha afegit manualment a la llista negra perquè causa problemes amb aquesta versió del joc. No el feu servir.
mod.missingdependencies.details = A aquest mod li falten dependències: {0}
mod.erroredcontent.details = Aquesta partida ha causat errors mentre es carregava. Pregunteu a l’autor del mod si pot arreglar-ho.
@@ -164,7 +165,6 @@ mod.incompletedependencies.details = Aquest mod no es pot carregar perquè té u
mod.requiresversion = Cal la versió [red]{0}[] del joc.
mod.errors = S’han produït errors quan es carregava el contingut.
mod.noerrorplay = [scarlet]S’executen mods amb errors.[] Desactiveu els mods afectats o arregleu les errades abans de jugar.
-mod.nowdisabled = [scarlet]Falten dependències del mod «{0}»s:[accent] {1}\n[lightgray]S’han de carregar els mods que fan falta.\nAquest mod es desactivarà automàticament.
mod.enable = Activa
mod.requiresrestart = El programa es tancarà per a aplicar els canvis.
mod.reloadrequired = [scarlet]Cal reiniciar
@@ -179,6 +179,15 @@ mod.missing = Aquesta partida desada conté mods que heu actualitzat fa poc o qu
mod.preview.missing = Abans de publicar aquest mod al Workshop, heu d’afegir una imatge de previsualització.\nPoseu una imatge amb el nom [accent]«preview.png»[] dins la carpeta del mod i proveu-ho de nou.
mod.folder.missing = Al Workshop només es poden publicar els mods organitzats degudament en una carpeta.\nPer convertir qualsevol mod en format *.zip, descomprimiu els continguts en una carpeta i esborreu el fitxer comprimit; després, reinicieu el programa o recarregueu els mods.
mod.scripts.disable = El vostre dispositiu no admet mods amb scripts. Heu de desactivar aquests mods per a jugar.
+mod.dependencies.error = [scarlet]Mods are missing dependencies
+mod.dependencies.soft = (optional)
+mod.dependencies.download = Import
+mod.dependencies.downloadreq = Import Required
+mod.dependencies.downloadall = Import All
+mod.dependencies.status = Import Results
+mod.dependencies.success = Successfully downloaded:
+mod.dependencies.failure = Failed to download:
+mod.dependencies.imported = This mod requires dependencies. Download?
about.button = Més informació
name = Nom:
@@ -295,6 +304,7 @@ disconnect.error = Error de connexió.
disconnect.closed = Connexió tancada.
disconnect.timeout = S’ha esgotat el temps d’espera.
disconnect.data = No s’han pogut carregar les dades del món!
+disconnect.snapshottimeout = Timed out while receiving UDP snapshots.\nThis may be caused by an unstable network or connection.
cantconnect = No és possible unir-se a la partida ([accent]{0}[]).
connecting = [accent]Es connecta…
reconnecting = [accent]Es torna a connectar…
@@ -463,6 +473,7 @@ editor.shiftx = Desplaça en l’eix X
editor.shifty = Desplaça en l’eix Y
workshop = Workshop
waves.title = Onades
+waves.team = Team
waves.remove = Treu
waves.every = cada
waves.waves = onada/es
@@ -716,14 +727,18 @@ loadout = Càrrega inicial
resources = Recursos
resources.max = Màx.
bannedblocks = Blocs no permesos
+unbannedblocks = Unbanned Blocks
objectives = Objectius
bannedunits = Unitats no permeses
+unbannedunits = Unbanned Units
bannedunits.whitelist = Unitats no permeses com a llista blanca
bannedblocks.whitelist = Blocs no permesos com a llista blanca
addall = Afegeix-ho tot
launch.from = Llançant des de [accent]{0}.
launch.capacity = Capacitat de càrrega per llançament: [accent]{0}
launch.destination = Destinació: {0}
+landing.sources = Source Sectors: [accent]{0}[]
+landing.import = Max Total Import: {0}[accent]{1}[lightgray]/min
configure.invalid = La quantitat ha de ser un nombre entre 0 i {0}.
add = Afegeix
guardian = Guardià
@@ -762,7 +777,9 @@ sectors.stored = Emmagatzemat:
sectors.resume = Continua
sectors.launch = Llança
sectors.select = Selecciona
+sectors.launchselect = Select Launch Destination
sectors.nonelaunch = [lightgray]cap (sol)
+sectors.redirect = Redirect Launch Pads
sectors.rename = Reanomena el sector
sectors.enemybase = [scarlet]Base enemiga
sectors.vulnerable = [scarlet]Vulnerable
@@ -794,6 +811,10 @@ difficulty.easy = Easy
difficulty.normal = Normal
difficulty.hard = Hard
difficulty.eradication = Eradication
+difficulty.enemyHealthMultiplier = Enemy Health: {0}
+difficulty.enemySpawnMultiplier = Enemy Amount: {0}
+difficulty.waveTimeMultiplier = Wave Timer: {0}
+difficulty.nomodifiers = [lightgray](No modifiers)
planets = Planetes
@@ -1025,6 +1046,7 @@ stat.buildspeedmultiplier = Multiplicador de velocitat de construcció
stat.reactive = Reacciona amb
stat.immunities = Immunitats
stat.healing = Reparador
+stat.efficiency = [stat]{0}% Efficiency
ability.forcefield = Camp de força
ability.forcefield.description = Projecta un camp de força que absorbeix les bales.
@@ -1071,6 +1093,7 @@ ability.stat.buildtime = [stat]{0} seg[lightgray] de temps de construcció
bar.onlycoredeposit = Només es permet depositar al nucli.
bar.drilltierreq = Cal una perforadora millor.
+bar.nobatterypower = Insufficieny Battery Power
bar.noresources = Falten recursos.
bar.corereq = Cal un nucli base.
bar.corefloor = Cal col·locar-ho en una zona designada per a nuclis.
@@ -1079,6 +1102,7 @@ bar.drillspeed = Velocitat de perforació: {0}/s
bar.pumpspeed = Velocitat de bombeig: {0}/s
bar.efficiency = Eficiència: {0} %
bar.boost = Potenciador: +{0} %
+bar.powerbuffer = Battery Power: {0}/{1}
bar.powerbalance = Potència: {0}/s
bar.powerstored = Emmagatzemat: {0}/{1}
bar.poweramount = Energia: {0}
@@ -1089,6 +1113,7 @@ bar.capacity = Capacitat: {0}
bar.unitcap = {0} {1}/{2}
bar.liquid = Líquid
bar.heat = Calor
+bar.cooldown = Cooldown
bar.instability = Inestabilitat
bar.heatamount = Calor: {0}
bar.heatpercent = Calor: {0} ({1} %)
@@ -1113,6 +1138,7 @@ bullet.interval = [stat]Interval de bales de {0}/s[lightgray]:
bullet.frags = [stat]{0}[lightgray]× de bales de fragmentació:
bullet.lightning = [stat]{0}[lightgray]× llampec ~ [stat]{1}[lightgray] de dany
bullet.buildingdamage = [stat]{0}%[lightgray] de dany a les estructures
+bullet.shielddamage = [stat]{0}%[lightgray] shield damage
bullet.knockback = [stat]{0}[lightgray] de bloqueig
bullet.pierce = [stat]{0}[lightgray]× de perforació
bullet.infinitepierce = [stat]perforador
@@ -1139,6 +1165,7 @@ unit.minutes = min
unit.persecond = /s
unit.perminute = /min
unit.timesspeed = × velocitat
+unit.multiplier = x
unit.percent = %
unit.shieldhealth = salut d’escut
unit.items = elements
@@ -1215,11 +1242,13 @@ setting.mutemusic.name = Silencia la música
setting.sfxvol.name = Volums dels efectes de so
setting.mutesound.name = Silencia el so
setting.crashreport.name = Envia informes d’error anònims
+setting.communityservers.name = Fetch Community Server List
setting.savecreate.name = Desa automàticament la partida
setting.steampublichost.name = Visibilitat de la partida pública
setting.playerlimit.name = Límit de jugadors
setting.chatopacity.name = Opacitat del xat
setting.lasersopacity.name = Opacitat dels làsers d’energia
+setting.unitlaseropacity.name = Unit Mining Beam Opacity
setting.bridgeopacity.name = Opacitat de cintes i canonades subterrànies
setting.playerchat.name = Mostra el xat bombolla de jugadors
setting.showweather.name = Mostra l’estat meteorològic
@@ -1228,6 +1257,9 @@ setting.macnotch.name = Adapta la interfície per a mostrar el notch
setting.macnotch.description = Cal reiniciar perquè s’apliquin els canvis
steam.friendsonly = Només amics
steam.friendsonly.tooltip = Indica si només els amics de Steam podran unir-se a la vostra partida.\nSi no es selecciona aquesta opció, la vostra partida serà pública i s’hi podrà unir qualsevol jugador.
+setting.maxmagnificationmultiplierpercent.name = Min Camera Distance
+setting.minmagnificationmultiplierpercent.name = Max Camera Distance
+setting.minmagnificationmultiplierpercent.description = High values may cause performance issues.
public.beta = Tingueu en compte que les versions beta no disposen de sales d’espera.
uiscale.reset = L’escala de la interfície ha canviat.\nPremeu «D’acord» per a confirmar-ho.\n[scarlet]Es revertiran els canvis en [accent]{0}[] segons.
uiscale.cancel = Cancel·la i surt
@@ -1308,6 +1340,7 @@ keybind.shoot.name = Dispara
keybind.zoom.name = Zoom
keybind.menu.name = Menú
keybind.pause.name = Posa en pausa
+keybind.skip_wave.name = Skip Wave
keybind.pause_building.name = Posa en pausa/Reprèn la construcció
keybind.minimap.name = Minimapa
keybind.planet_map.name = Mapa del planeta
@@ -1375,12 +1408,14 @@ rules.unitcostmultiplier = Multiplicador del cost de les unitats
rules.unithealthmultiplier = Multiplicador de la salut de les unitats
rules.unitdamagemultiplier = Multiplicador del dany de les unitats
rules.unitcrashdamagemultiplier = Multiplicador del dany de xoc de les unitats
+rules.unitminespeedmultiplier = Unit Mine Speed Multiplier
rules.solarmultiplier = Multiplicador de l’energia solar
rules.unitcapvariable = Els nuclis contribueixen al límit d’unitats
rules.unitpayloadsexplode = Els blocs carregats exploten juntament amb la unitat
rules.unitcap = Capacitat base d’unitats
rules.limitarea = Limita l’àrea del mapa
rules.enemycorebuildradius = Radi de no construcció del nucli enemic:[lightgray] (caselles)
+rules.extracorebuildradius = Extra No-Build Radius:[lightgray] (tiles)
rules.wavespacing = Interval entre onades:[lightgray] (s)
rules.initialwavespacing = Retard de l’onada inicial:[lightgray] (s)
rules.buildcostmultiplier = Multiplicador del cost de construcció
@@ -1403,6 +1438,9 @@ rules.title.planet = Planeta
rules.lighting = Il·luminació
rules.fog = Amaga el terreny inexplorat
rules.invasions = Enemy Sector Invasions
+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.fire = Foc
@@ -1723,6 +1761,8 @@ block.meltdown.name = Meltdown
block.foreshadow.name = Foreshadow
block.container.name = Contenidor
block.launch-pad.name = Plataforma de llançament
+block.advanced-launch-pad.name = Launch Pad
+block.landing-pad.name = Landing Pad
block.segment.name = Segment
block.ground-factory.name = Fàbrica d’unitats terrestres
block.air-factory.name = Fàbrica d’unitats aèries
@@ -1780,6 +1820,8 @@ block.arkyic-vent.name = Fumarola d’arquicita
block.yellow-stone-vent.name = Fumarola de pedra groga
block.red-stone-vent.name = Fumarola de pedra vermella
block.crystalline-vent.name = Fumarola cristal·lina
+block.stone-vent.name = Stone Vent
+block.basalt-vent.name = Basalt Vent
block.redmat.name = Mata vermella
block.bluemat.name = Mata blava
block.core-zone.name = Zona del nucli
@@ -1934,77 +1976,77 @@ hint.respawn = Per a reaparèixer com una nau, premeu [accent]V[].
hint.respawn.mobile = Ara esteu controlant una unitat o estructura. Per a reaparèixer com una nau, [accent]toqueu l’avatar[] de la part superior esquerra.
hint.desktopPause = Premeu la [accent]barra espaiadora[] per a posar en pausa i reprendre la partida.
hint.breaking = Feu clic amb el [accent]botó dret[] i arrossegueu per a treure blocs.
-hint.breaking.mobile = Activeu el \ue817 [accent]martell[] de la part inferior dreta i toqueu els blocs que vulgueu treure.\n\nManteniu premut el dit durant un segon i arrossegueu per a seleccionar un rectangle d’on treure tots els blocs.
+hint.breaking.mobile = Activeu el :hammer: [accent]martell[] de la part inferior dreta i toqueu els blocs que vulgueu treure.\n\nManteniu premut el dit durant un segon i arrossegueu per a seleccionar un rectangle d’on treure tots els blocs.
hint.blockInfo = Mostra la informació d’un bloc seleccionant-lo al [accent]menú de construcció[], Llavors seleccioneu el botó [accent][[?][] de la dreta.
hint.derelict = Les estructures [accent]en ruïnes[] són les restes de bases antigues que ja no funcionen.\n\nAquestes estructures es poden [accent]desmuntar[] per a recuperar recursos.
-hint.research = Empreu el botó de \ue875 [accent]Recerca[] per a investigar noves tecnologies.
-hint.research.mobile = Empreu el botó de \ue875 [accent]Recerca[] del \ue88c [accent]Menú[] per a investigar noves tecnologies.
+hint.research = Empreu el botó de :tree: [accent]Recerca[] per a investigar noves tecnologies.
+hint.research.mobile = Empreu el botó de :tree: [accent]Recerca[] del :menu: [accent]Menú[] per a investigar noves tecnologies.
hint.unitControl = Mantingueu premuda la tecla [accent][[ControlEsquerra][] i [accent]feu clic[] per a controlar torretes i unitats amistoses.
hint.unitControl.mobile = [accent]Toqueu dues vegades[] per a controlar torretes i unitats amistoses.
hint.unitSelectControl = Per a controlar unitats, entreu al [accent]mode de comandament[] amb la tecla [accent]Maj. esquerra[].\nMentre esteu al mode de comandament, feu clic i arrossegueu per a seleccionar unitats. Feu [accent]clic amb el botó esquerre[] en algun lloc o objectiu per a comandar-hi les unitats.
hint.unitSelectControl.mobile = Per a controlar unitats, entreu al [accent]mode de comandament[] amb el botó de[accent]comandament[] de la part superior esquerra.\nMentre esteu al mode de comandament, premeu uns segons i arrossegueu per a seleccionar unitats. Toqueu en algun lloc o objectiu per a comandar-hi les unitats.
-hint.launch = Un cop s’han recollit prou recursos, podeu iniciar un llançament seleccionant un sector proper del \ue827 [accent]Mapa[] de la part inferior dreta.
-hint.launch.mobile = Un cop s’han recollit prou recursos, podeu iniciar un llançament seleccionant un sector proper del \ue827 [accent]Mapa[] del \ue88c [accent]Menú[].
+hint.launch = Un cop s’han recollit prou recursos, podeu iniciar un llançament seleccionant un sector proper del :map: [accent]Mapa[] de la part inferior dreta.
+hint.launch.mobile = Un cop s’han recollit prou recursos, podeu iniciar un llançament seleccionant un sector proper del :map: [accent]Mapa[] del :menu: [accent]Menú[].
hint.schematicSelect = Manteniu premuda la tecla [accent]F[] i arrossegueu per a seleccionar els blocs que vulgueu copiar i enganxar.\n\nFeu clic amb el [accent]botó del mig[] del ratolí per a copiar només un tipus de bloc.
hint.rebuildSelect = Manteniu premuda la tecla [accent][[B][] i arrossegueu per a seleccionar els plànols dels blocs destruïts.\nAixí, es podran reconstruir automàticament.
-hint.rebuildSelect.mobile = Seleccioneu el botó de copiar \ue874. Després, toqueu el botó de reconstrucció \ue80f i arrossegueu per a triar quins blocs voleu que es reconstrueixin.\nAixò farà que es reconstrueixin de manera automàtica.
+hint.rebuildSelect.mobile = Seleccioneu el botó de copiar :copy:. Després, toqueu el botó de reconstrucció :wrench: i arrossegueu per a triar quins blocs voleu que es reconstrueixin.\nAixò farà que es reconstrueixin de manera automàtica.
hint.conveyorPathfind = Manteniu premuda la tecla [accent]ControlEsquerra[] i arrossegueu les cintes per a generar un camí automàticament.
-hint.conveyorPathfind.mobile = Activeu el \ue844 [accent]mode diagonal[] i arrossegueu les cintes per a generar un camí automàticament.
+hint.conveyorPathfind.mobile = Activeu el :diagonal: [accent]mode diagonal[] i arrossegueu les cintes per a generar un camí automàticament.
hint.boost = Manteniu premuda la tecla [accent]ControlEsquerra[] per a sobrevolar els obstacles amb la unitat actual.\n\nNomés algunes unitats terrestres tenen elevadors per a poder-ho fer.
hint.payloadPickup = Premeu [accent][[[] per a recollir blocs petits o unitats.
hint.payloadPickup.mobile = [accent]Manteniu premut[] un bloc petit per a recollir-lo. També es pot fer amb unitats.
hint.payloadDrop = Premeu [accent]][] per a deixar el bloc o la unitat.
hint.payloadDrop.mobile = [accent]Manteniu premuda[] una posició buida per a deixar-hi un bloc o una unitat.
hint.waveFire = Les torretes de tipus [accent]Wave[] que usin aigua com munició apagaran els focs propers automàticament.
-hint.generator = Els \uf879 [accent]Generadors a combustió[] cremen carbó i transmeten energia als blocs adjacents.\n\nL’abast de la transmissió d’energia es pot expandir amb \uf87f [accent]node d’energia[].
-hint.guardian = Les unitats de tipus [accent]Guardià[] són unitats blindades. La munició dèbil com ara el [accent]Coure[] i el [accent]Plom[] [scarlet]no és efectiva[].\n\nEmpreu torretes de nivell més alt o carregueu torretes \uf861Duo/\uf859Salvo amb \uf835 [accent]Grafit[] per a destruir-los.
+hint.generator = Els :combustion-generator: [accent]Generadors a combustió[] cremen carbó i transmeten energia als blocs adjacents.\n\nL’abast de la transmissió d’energia es pot expandir amb :power-node: [accent]node d’energia[].
+hint.guardian = Les unitats de tipus [accent]Guardià[] són unitats blindades. La munició dèbil com ara el [accent]Coure[] i el [accent]Plom[] [scarlet]no és efectiva[].\n\nEmpreu torretes de nivell més alt o carregueu torretes :duo:Duo/:salvo:Salvo amb :graphite: [accent]Grafit[] per a destruir-los.
hint.coreUpgrade = Els nuclis es poden millorar [accent]construint-hi a sobre nuclis amb millors característiques[].\n\nSitueu un nucli de tipus [accent]Fonament[] a sobre del nucli [accent]Estella[]. Assegureu-vos que no hi hagin obstruccions properes.
hint.presetLaunch = Als [accent]sectors amb zones d’aterratge[] de color gris, com ara [accent]El bosc gelat[], s’hi pot accedir des de qualsevol lloc. No cal capturar cap territori proper.\n\nEls [accent]sectors numerats[], com aquest, són [accent]opcionals[].
hint.presetDifficulty = Aquest sector té un [accent]nivell d’amenaça enemiga elevat[].\n[accent]No es recomana[] aterrar a aquests sectors sense les tecnologies i la preparació adequades.
hint.coreIncinerate = Després que s’hagi arribat al màxim d’emmagatzematge d’un determinat tipus d’element al nucli, tots els altres elements d’aquest tipus que entrin al nucli s’[accent]incineraran[].
hint.factoryControl = Per a establir la [accent]destinació de sortida[] de les unitats d’una fàbrica, feu clic en un bloc de fàbrica mentre esteu en mode de comandament i després feu clic amb el botó de la dreta a la posició desitjada.\nLes unitats produïdes s’hi dirigiran automàticament.
hint.factoryControl.mobile = Per a establir la [accent]destinació de sortida[] de les unitats d’una fàbrica, toqueu un bloc de fàbrica mentre esteu en mode de comandament i després toqueu la posició desitjada.\nLes unitats produïdes s’hi dirigiran automàticament.
-gz.mine = Apropeu-vos al \uf8c4 [accent]mineral de coure[] del terra i feu-hi clic per a començar a extreure’n coure.
-gz.mine.mobile = Apropeu-vos al \uf8c4 [accent]mineral de coure[] del terra i toqueu-lo per a començar a extreure’n coure.
-gz.research = Obriu l’\ue875 arbre tecnològic.\nInvestigueu la \uf870 [accent]perforadora mecànica[] i després trieu-la des del menú de sota a la dreta.\nFeu clic en un dipòsit de coure per a construir-la.
-gz.research.mobile = Obriu l’\ue875 arbre tecnològic.\nInvestigueu la \uf870 [accent]perforadora mecànica[] i després trieu-la des del menú de sota a la dreta.\nToqueu un dipòsit de coure per a construir-la.\n\nPer a acabar, premeu la icona de \ue800 [accent]confirmació[] a sota a l’esquerra.
-gz.conveyors = Investigueu i construïu \uf896 [accent]cintes transportadores[] per a moure els recursos extrets\nde les perforadores fins al nucli.\n\nFeu clic i arrossegueu per a construir-ne més d’una més fàcilment.\n[accent]Gireu la rodeta del mig[] del ratolí per a girar la direcció de la cinta.
-gz.conveyors.mobile = Investigueu i construïu \uf896 [accent]cintes transportadores[] per a moure els recursos extrets\nde les perforadores fins al nucli.\n\nPremeu, manteniu un moment el dit durant un segon i arrossegueu per a construir-ne més d’una més fàcilment.
+gz.mine = Apropeu-vos al :ore-copper: [accent]mineral de coure[] del terra i feu-hi clic per a començar a extreure’n coure.
+gz.mine.mobile = Apropeu-vos al :ore-copper: [accent]mineral de coure[] del terra i toqueu-lo per a començar a extreure’n coure.
+gz.research = Obriu l’:tree: arbre tecnològic.\nInvestigueu la :mechanical-drill: [accent]perforadora mecànica[] i després trieu-la des del menú de sota a la dreta.\nFeu clic en un dipòsit de coure per a construir-la.
+gz.research.mobile = Obriu l’:tree: arbre tecnològic.\nInvestigueu la :mechanical-drill: [accent]perforadora mecànica[] i després trieu-la des del menú de sota a la dreta.\nToqueu un dipòsit de coure per a construir-la.\n\nPer a acabar, premeu la icona de \ue800 [accent]confirmació[] a sota a l’esquerra.
+gz.conveyors = Investigueu i construïu :conveyor: [accent]cintes transportadores[] per a moure els recursos extrets\nde les perforadores fins al nucli.\n\nFeu clic i arrossegueu per a construir-ne més d’una més fàcilment.\n[accent]Gireu la rodeta del mig[] del ratolí per a girar la direcció de la cinta.
+gz.conveyors.mobile = Investigueu i construïu :conveyor: [accent]cintes transportadores[] per a moure els recursos extrets\nde les perforadores fins al nucli.\n\nPremeu, manteniu un moment el dit durant un segon i arrossegueu per a construir-ne més d’una més fàcilment.
gz.drills = Expandiu les operacions mineres.\nConstruïu més perforadores mecàniques.\nExtraieu 100 unitats de coure.
-gz.lead = \uf837 El [accent]plom[] és un altre recurs comú.\nSitueu perforadores al damunt de dipòsits de plom per a extreure’n.
-gz.moveup = \ue804 Moveu-mos amunt per a veure més objectius.
-gz.turrets = Investigueu i construïu 2 torretes \uf861 [accent]duo[] per a defensar el nucli.\nLes torretes duo necessiten rebre \uf838 [accent]munició[] amb cintes transportadores.
+gz.lead = :lead: El [accent]plom[] és un altre recurs comú.\nSitueu perforadores al damunt de dipòsits de plom per a extreure’n.
+gz.moveup = :up: Moveu-mos amunt per a veure més objectius.
+gz.turrets = Investigueu i construïu 2 torretes :duo: [accent]duo[] per a defensar el nucli.\nLes torretes duo necessiten rebre \uf838 [accent]munició[] amb cintes transportadores.
gz.duoammo = Subministreu [accent]coure[] a les torretes duo amb cintes transportadores.
-gz.walls = Els [accent]murs[] poden evitar que el dany arribi a les estructures importants.\nConstruïu alguns \uf6ee [accent]murs de coure[] al voltant de les torretes.
+gz.walls = Els [accent]murs[] poden evitar que el dany arribi a les estructures importants.\nConstruïu alguns :beryllium-wall: [accent]murs de coure[] al voltant de les torretes.
gz.defend = S’apropa l’enemic. Prepareu-vos per a defensar-vos.
-gz.aa = Les torretes estàndard no poden disparar fàcilment a les unitats aèries.\n\uf860 Les torretes [accent]scatter[] proporcionen una defensa antiaèria excel·lent, però necessiten munició de \uf837 [accent]plom[].
+gz.aa = Les torretes estàndard no poden disparar fàcilment a les unitats aèries.\n:scatter: Les torretes [accent]scatter[] proporcionen una defensa antiaèria excel·lent, però necessiten munició de :lead: [accent]plom[].
gz.scatterammo = Subministreu [accent]plom[] a la torreta scatter amb cintes transportadores.
gz.supplyturret = [accent]Subministreu munició a la torreta
gz.zone1 = Aquesta és la zona d’aterratge enemiga.
gz.zone2 = Tot el que es construeixi a dins es destruirà quan comenci la propera onada enemiga.
gz.zone3 = Ara comença una onada.\nPrepareu-vos.
gz.finish = Construïu més torretes, extraieu més recursos \ni defense-vos contra totes les onades per a [accent]capturar el sector[].
-onset.mine = Feu clic als murs per a extraure \uf748 [accent]beril·li[].\n\nFeu servir [accent][[WASD] per a moure-vos.
-onset.mine.mobile = Toqueu per a extraure \uf748 [accent]beril·li[] dels murs.
-onset.research = Obriu \ue875 l’arbre tecnològic.\nInvestigueu i després construïu una \uf73e [accent]turbina condensadora[] a la fumarola.\nAixí aconseguireu generar [accent]energia[].
-onset.bore = Investigueu i construïu una \uf741 [accent]perforadora de plasma[].\nAixí extraureu recursos automàticament dels murs.
-onset.power = Per a subministrar [accent]energia[] a la perforadora de plasma, investigueu i situeu un \uf73d [accent]node de transmissió d’energia per raigs[].\nConnecteu la turbina condensadora a la perforadora de plasma.
-onset.ducts = Investigueu i situeu \uf799 [accent]conductes[] per a moure els recursos extrets amb perforadores de plasma al nucli.\n\nFeu clic i arrossegueu per a situar més d’un conducte fàcilment.\nGireu la [accent]rodeta del ratolí[] per a canviar-ne la direcció.
-onset.ducts.mobile = Investigueu i situeu \uf799 [accent]conductes[] per a moure els recursos extrets amb perforadores de plasma al nucli.\n\nMantingueu premut el dit durant un segon i arrossegueu per a situar més d’un conducte fàcilment.
+onset.mine = Feu clic als murs per a extraure :beryllium: [accent]beril·li[].\n\nFeu servir [accent][[WASD] per a moure-vos.
+onset.mine.mobile = Toqueu per a extraure :beryllium: [accent]beril·li[] dels murs.
+onset.research = Obriu :tree: l’arbre tecnològic.\nInvestigueu i després construïu una :turbine-condenser: [accent]turbina condensadora[] a la fumarola.\nAixí aconseguireu generar [accent]energia[].
+onset.bore = Investigueu i construïu una :plasma-bore: [accent]perforadora de plasma[].\nAixí extraureu recursos automàticament dels murs.
+onset.power = Per a subministrar [accent]energia[] a la perforadora de plasma, investigueu i situeu un :beam-node: [accent]node de transmissió d’energia per raigs[].\nConnecteu la turbina condensadora a la perforadora de plasma.
+onset.ducts = Investigueu i situeu :duct: [accent]conductes[] per a moure els recursos extrets amb perforadores de plasma al nucli.\n\nFeu clic i arrossegueu per a situar més d’un conducte fàcilment.\nGireu la [accent]rodeta del ratolí[] per a canviar-ne la direcció.
+onset.ducts.mobile = Investigueu i situeu :duct: [accent]conductes[] per a moure els recursos extrets amb perforadores de plasma al nucli.\n\nMantingueu premut el dit durant un segon i arrossegueu per a situar més d’un conducte fàcilment.
onset.moremine = Amplieu les operacions mineres.\nSitueu més perforadores de plasma i feu servir nodes de transmissió d’energia per raigs i conductes per tal que puguin operar.\nExtraieu 200 unitats de beril·li.
-onset.graphite = Els blocs més complexos necessiten \uf835 [accent]grafit[].\nSitueu perforadores de plasma per a extraure’n.
-onset.research2 = Comenceu a investigar les [accent]fàbriques[].\nInvestigueu les \uf74d [accent]picadores d’espadats[] i \uf779 [accent]forn d’arc de silici[].
-onset.arcfurnace = El forn d’arc necessita \uf834 [accent]sorra[] i \uf835 [accent]grafit[] per a obtenir \uf82f [accent]silici[].\nTambé fa falta [accent]energia[].
-onset.crusher = Feu servir les \uf74d [accent]picadores d’espadats[] per a extraure sorra.
-onset.fabricator = Feu servir [accent]unitats[] per a explorar el mapa, defensar estructures i atacar als enemics. Investigueu i construïu una \uf6a2 [accent]fabricadora de tancs[].
+onset.graphite = Els blocs més complexos necessiten :graphite: [accent]grafit[].\nSitueu perforadores de plasma per a extraure’n.
+onset.research2 = Comenceu a investigar les [accent]fàbriques[].\nInvestigueu les :cliff-crusher: [accent]picadores d’espadats[] i :silicon-arc-furnace: [accent]forn d’arc de silici[].
+onset.arcfurnace = El forn d’arc necessita :sand: [accent]sorra[] i :graphite: [accent]grafit[] per a obtenir :silicon: [accent]silici[].\nTambé fa falta [accent]energia[].
+onset.crusher = Feu servir les :cliff-crusher: [accent]picadores d’espadats[] per a extraure sorra.
+onset.fabricator = Feu servir [accent]unitats[] per a explorar el mapa, defensar estructures i atacar als enemics. Investigueu i construïu una :tank-fabricator: [accent]fabricadora de tancs[].
onset.makeunit = Produïu una unitat.\nFeu servir el botó «?» per a veure els requisits de la fàbrica que trieu.
-onset.turrets = Les unitats són efectives, però les [accent]torretes[] proporcionen una capacitat defensiva millor si es fan servir adequadament.\nConstruïu Place una torreta \uf6eb [accent]breach[].\nLes torretes necessiten \uf748 [accent]munició[].
+onset.turrets = Les unitats són efectives, però les [accent]torretes[] proporcionen una capacitat defensiva millor si es fan servir adequadament.\nConstruïu Place una torreta :breach: [accent]breach[].\nLes torretes necessiten :beryllium: [accent]munició[].
onset.turretammo = Subministreu [accent]munició de beril·li[] a la torreta.
-onset.walls = Els [accent]murs[] poden evitar que el dany arribi a les estructures importants.\nConstruïu alguns \uf6ee [accent]murs de beril·li[] al voltant de la torreta.
+onset.walls = Els [accent]murs[] poden evitar que el dany arribi a les estructures importants.\nConstruïu alguns :beryllium-wall: [accent]murs de beril·li[] al voltant de la torreta.
onset.enemies = S’apropa un enemic. Prepareu la defensa.
onset.defenses = [accent]Establiu defenses:[lightgray] {0}
onset.attack = L’enemic és vulnerable. Contraataqueu.
-onset.cores = Els nuclis nous es poden construir en [accent]caselles de nucli[].\nEls nuclis nous funcionen com a bases i comparteixen un inventari de recursos amb altres nuclis.\nConstruïu un \uf725 nucli.
+onset.cores = Els nuclis nous es poden construir en [accent]caselles de nucli[].\nEls nuclis nous funcionen com a bases i comparteixen un inventari de recursos amb altres nuclis.\nConstruïu un :core-bastion: nucli.
onset.detect = L’enemic us detectarà d’aquí 2 minuts.\nEstabliu les defenses i les explotacions mineres i de producció.
onset.commandmode = Mantingueu premuda [accent]Maj.[] per a entrar al [accent]mode de comandament[].\n[accent]Feu clic amb el botó esquerre i arrossegueu[] per a seleccionar unitats.\n[accent]Feu clic amb el botó dret[] per a ordenar a les unitats seleccionades que ataquin o que es moguin.
onset.commandmode.mobile = Premeu el [accent]botó de comandament[] per a entrar al [accent]mode de comandament[].\nPremeu i [accent]arrossegueu[] per a seleccionar unitats.\n[accent]Toqueu[] per a ordenar a les unitats seleccionades que ataquin o que es moguin.
@@ -2165,7 +2207,9 @@ block.vault.description = Emmagatzema una quantitat gran d’elements de cada ti
block.container.description = Emmagatzema una quantitat petita d’elements de cada tipus. Millora la capacitat d’emmagatzemament al sector si es situa al costat d’un nucli. Es poden recuperar els continguts amb un descarregador.
block.unloader.description = Descarrega els elements seleccionats dels blocs adjacents.
block.launch-pad.description = Llança lots d’elements al sector seleccionat.
-block.launch-pad.details = Sistema suborbital de transport de recursos punt a punt. Les càpsules de càrrega només sobreviuen una sola reentrada i no es poden reutilitzar.
+block.advanced-launch-pad.description = Launches batches of items to selected sectors. Only accepts one item type at a time.
+block.advanced-launch-pad.details = Sub-orbital system for point-to-point transportation of resources.
+block.landing-pad.description = Receives items from launch pads in other sectors. Requires large amounts of water to protect against impacts of landings.
block.duo.description = Dispara munició als enemics.
block.scatter.description = Dispara projectils antiaeris de plom, ferralla o metavidre a les aeronaus enemigues.
block.scorch.description = Crema els enemics terrestres que tingui a prop. La torreta és molt efectiva a distàncies curtes.
@@ -2272,6 +2316,7 @@ block.unit-cargo-loader.description = Construeix drons de càrrega. Els drons di
block.unit-cargo-unload-point.description = Actua com un punt de descàrrega per als drons de càrrega. Accepta elements que coincideixin amb el filtre.
block.beam-node.description = Transmet energia a altres blocs ortogonalment. Emmagatzema una petita quantitat d’energia.
block.beam-tower.description = Transmet energia a altres blocs ortogonalment. Emmagatzema una gran quantitat d’energia. Té un abast gran.
+block.beam-link.description = Transmits power over vast distances.\nOnly capable of connecting to adjacent structures or other beam links.
block.turbine-condenser.description = Genera energia quan es situa en conductes de ventilació. Produeix una petita quantitat d’aigua.
block.chemical-combustion-chamber.description = Genera energia a partir d’arquicita i ozó.
block.pyrolysis-generator.description = Genera grans quantitats d’energia a partir d’arquicita i escòria. Produeix aigua com a subproducte.
@@ -2362,6 +2407,7 @@ unit.emanate.description = Construeix estructures per defensar el nucli Acròpol
lst.read = Llegeix un nombre des d’una cel·la de memòria connectada.
lst.write = Escriu un nombre en una cel·la de memòria connectada.
lst.print = Afegeix un text a la cua d’impressió.\nEl text no es mostrarà fins que s’apliqui «[accent]Print Flush[]».
+lst.printchar = Add a UTF-16 character or content icon to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used.
lst.format = Reemplaça el següent marcador de posició a la cua d’impressió amb un valor.\nNo fa res si el patró del marcador no és vàlid.\nPatró del marcador: "{[accent]número 0-9[]}"\nExemple:\n[accent]print "test {0}"\nformat "example"
lst.draw = Afegeix una instrucció de dibuix a la cua corresponent.\nEl resultat no es mostrarà fins que s’apliqui «[accent]Draw Flush[]».
lst.drawflush = Executa les operacions de la cua de dibuix al monitor lògic.
@@ -2449,6 +2495,7 @@ lenum.shootp = Dispara a una unitat/bloc tenint en compte la seva velocitat a l
lenum.config = Configuració de l’estructura, com ara el classificador.
lenum.enabled = Retorna si el bloc està activat.
laccess.currentammotype = Líquid o element de munició actual de la torreta.
+laccess.memorycapacity = Number of cells in a memory block.
laccess.color = Color de l’il·luminador.
laccess.controller = Controlador de la unitat. Si es controla per processador, retorna el processador.\nAltrament, retorna la mateixa unitat.
@@ -2456,6 +2503,7 @@ laccess.dead = Retorna si una unitat o bloc està destruïda o si ja no és vàl
laccess.controlled = Returna:\n[accent]@ctrlProcessor[] si el controlador de la unitat és un processador;\n[accent]@ctrlPlayer[] si el controlador de la unitat és un jugador;\n[accent]@ctrlCommand[] si el controlador és un comandament del jugador;\naltrament, és 0.
laccess.progress = Progrés de l’acció, entre 0 i 1.\nRetorna la producció, la recàrrega de la torreta o el progrés de la construcció.
laccess.speed = Velocitat màxima de la unitat, en caselles/s.
+laccess.size = Size of a unit/building or the length of a string.
laccess.id = Identificador d’unitat/bloc/element/líquid.\nÉs l’invers de l’operació lookup.
lcategory.unknown = Desconegut
lcategory.unknown.description = Instruccions sense categoria.
@@ -2600,3 +2648,29 @@ lenum.autoscale = Indica si cal escalar el marcador segons el nivell de zoom del
lenum.posi = Posició indexada que es fa servir per a marcadors de línia i de rectangles on l’índex zero és la primera posició.
lenum.uvi = Posició de la textura que va de zero a u i que es fa servir per a marcadors de tipus rectangle.
lenum.colori = Posició indexada que es fa servir per a marcadors de línies i rectangles on l’índex zero és el primer color.
+lenum.wavetimer = Whether the waves come automatically on a timer. If not, waves come when the play button is pressed.
+lenum.wave = Current wave number. Can be anything in non-wave modes.
+lenum.currentwavetime = Wave countdown in ticks.
+lenum.waves = Whether waves are spawnable at all.
+lenum.wavesending = Whether the waves can be manually summoned with the play button.
+lenum.attackmode = Determines if gamemode is attack mode.
+lenum.wavespacing = Time between waves in ticks.
+lenum.enemycorebuildradius = No-build zone around enemy core radius.
+lenum.dropzoneradius = Radius around enemy wave drop zones.
+lenum.unitcap = Base unit cap. Can still be increased by blocks.
+lenum.lighting = Whether ambient lighting is enabled.
+lenum.buildspeed = Multiplier for building speed.
+lenum.unithealth = How much health units start with.
+lenum.unitbuildspeed = How fast unit factories build units.
+lenum.unitcost = Multiplier of resources that units take to build.
+lenum.unitdamage = How much damage units deal.
+lenum.blockhealth = How much health blocks start with.
+lenum.blockdamage = How much damage blocks (turrets) deal.
+lenum.rtsminweight = Minimum "advantage" needed for a squad to attack. Higher -> more cautious.
+lenum.rtsminsquad = Minimum size of attack squads.
+lenum.maparea = Playable map area. Anything outside the area will not be interactable.
+lenum.ambientlight = Ambient light color. Used when lighting is enabled.
+lenum.solarmultiplier = Multiplies power output of solar panels.
+lenum.dragmultiplier = Environment drag multiplier.
+lenum.ban = Blocks or units that cannot be placed or built.
+lenum.unban = Unban a unit or block.
diff --git a/core/assets/bundles/bundle_cs.properties b/core/assets/bundles/bundle_cs.properties
index 41704a4ad4..c10411bab8 100644
--- a/core/assets/bundles/bundle_cs.properties
+++ b/core/assets/bundles/bundle_cs.properties
@@ -57,7 +57,7 @@ mods.browser.sortstars = Řadit podle hvězd
schematic = Šablona
schematic.add = Uložit šablonu...
schematics = Šablony
-schematic.search = Search schematics...
+schematic.search = Vyhledat šablonu...
schematic.replace = Šablona s tímto názvem již existuje. Chceš ji nahradit?
schematic.exists = Šablona s tímto názvem již existuje.
schematic.import = Importuji šablonu...
@@ -70,7 +70,7 @@ schematic.shareworkshop = Sdílet skrze Workshop na Steamu
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Převrátit šablonu
schematic.saved = Šablona byla uložena.
schematic.delete.confirm = Šablona bude kompletně vyhlazena.
-schematic.edit = Edit Schematic
+schematic.edit = Změnit šablonu
schematic.info = {0}x{1}, {2} bloků
schematic.disabled = [scarlet]Šablony jsou zakázány[]\nNa této [accent]mapě[] nebo [accent]serveru[] nemůžeš používat šablony.
schematic.tags = Značky:
@@ -79,7 +79,7 @@ schematic.addtag = Přidat Značku
schematic.texttag = Textová Značka
schematic.icontag = Ikonová Značka
schematic.renametag = Přejmenovat Značku
-schematic.tagged = {0} tagged
+schematic.tagged = {0} označené
schematic.tagdelconfirm = Smazat tuto značku?
schematic.tagexists = Tato značka již existuje.
@@ -109,7 +109,7 @@ newgame = Nová hra
none = <žádný>
none.found = [lightgray]
none.inmap = [lightgray]
-minimap = Mapička
+minimap = Mini mapa
position = Pozice
close = Zavřít
website = Webové stránky
@@ -131,6 +131,7 @@ 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\nK předcházení nekonečného padání hry, [red]všechny modifikace se vyply.[]
mods = Mody
+mods.name = Mod:
mods.none = [lightgray]Modifikace nebyly nalezeny.[]
mods.guide = Průvodce modifikacemi
mods.report = Nahlásit závadu
@@ -152,19 +153,18 @@ mod.incompatiblemod = [red]Nekompatibilní
mod.blacklisted = [red]Nepodporováno
mod.unmetdependencies = [red]Nesplněné Dependencies
mod.erroredcontent = [scarlet]V obsahu jsou chyby[]
-mod.circulardependencies = [red]Kruhové Dependencies
-mod.incompletedependencies = [red]Nedokončené Dependencies
+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.outdatedv7.details = Tento mod není kompatibilní s nejnovější verzí hry. Autor ho musí aktualizovat a přidat [accent]minGameVersion: 136[] ho do [accent]mod.json[] složky.
+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.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 = This mod is unable to be loaded due to invalid or missing dependencies: {0}.
-mod.requiresversion = Requires game version: [red]{0}
+mod.requiresversion = Vyžaduje verzi hry: [red]{0}
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.nowdisabled = [scarlet]Modifikaci '{0}' chybí tyto závislosti: [accent]{1}\n[lightgray]Tyto modifikace je třeba nejprve stáhnout.\nTato modifikace bude nyní automaticky zakázána.
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.
@@ -179,6 +179,15 @@ mod.missing = Toto uložení hra obsahuje modifikace, které byly nedávno aktua
mod.preview.missing = Než vystavíš svou modifikaci ve Workshopu na Steamu, musíš přidat obrázek pro náhled.\nUmísti obrázek pojmenovaný [accent]preview.png[] do složky modifikace a zkus to znovu.
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]Mods are missing dependencies
+mod.dependencies.soft = (optional)
+mod.dependencies.download = Import
+mod.dependencies.downloadreq = Import Required
+mod.dependencies.downloadall = Import All
+mod.dependencies.status = Import Results
+mod.dependencies.success = Successfully downloaded:
+mod.dependencies.failure = Failed to download:
+mod.dependencies.imported = This mod requires dependencies. Download?
about.button = O hře
name = Jméno:
@@ -191,10 +200,11 @@ unlocked = Byl odemmknut 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ň
-campaign.none = [lightgray]Select a planet to start on.\nThis can be switched at any time.
-campaign.erekir = Newer, more polished content. Mostly linear campaign progression.\n\nHigher quality maps and overall experience.
-campaign.serpulo = Older content; the classic experience. More open-ended.\n\nPotentially unbalanced maps and campaign mechanics. Less polished.
+campaign.none = [lightgray]Vyberte planetu, na které chcete začít.\nToto lze kdykoli přepnout.
+campaign.erekir = Novější, uhlazenější obsah. Většinou lineární průběh kampaně.\n\nVyšší kvalita map a celkový zážitek.
+campaign.serpulo = Starší obsah; klasický zážitek. Více otevřených.\n\nPotenciálně nevyvážené mapy a mechanismy kampaní. Méně leštěné.
campaign.difficulty = Difficulty
+
completed = [accent]Dokončeno[]
techtree = Technologie
techtree.select = Výběr Výzkumného Stromu
@@ -257,7 +267,7 @@ trace = Vystopovat hráče
trace.playername = Jméno hráče: [accent]{0}[]
trace.ip = Adresa IP: [accent]{0}[]
trace.id = Unikátní ID: [accent]{0}[]
-trace.language = Language: [accent]{0}
+trace.language = Jazyk: [accent]{0}
trace.mobile = Mobilní klient hry: [accent]{0}[]
trace.modclient = Upravený klient hry: [accent]{0}[]
trace.times.joined = Krát Připojen: [accent]{0}
@@ -287,7 +297,7 @@ confirmunban = Jsi si jistý, že chceš zrušit zákaz pro tohoto hráče?
confirmadmin = Jsi si jistý, že chceš hráče "{0}[white]" povýšit na správce?[]
confirmunadmin = Jsi si jistý, že chceš odebrat hráči "{0}[white]" roli správce?[]
votekick.reason = Vote-Kick Reason
-votekick.reason.message = Are you sure you want to vote-kick "{0}[white]"?\nIf yes, please enter the reason:
+votekick.reason.message = Jste si jisti, že chcete hlasovat? "{0}[white]"?\nPokud ano, uveďte důvod:
joingame.title = Připojit se ke hře
joingame.ip = Adresa IP:
disconnect = Odpojeno.
@@ -295,6 +305,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 = Timed out while receiving UDP snapshots.\nThis may be caused by an unstable network or connection.
cantconnect = Není možno se připojit ke hře ([accent]{0}[]).
connecting = [accent]Připojuji se...[]
reconnecting = [accent]Znovu se připojuji...
@@ -305,7 +316,7 @@ server.error.addressinuse = [scarlet]Failed to open server on port 6567.[]\n\nMa
server.error = [scarlet]Chyba při hostování serveru.[]
save.new = Nové uložení hry
save.overwrite = Jsi si jistý, že chceš přepsat\ntuto pozici pro uložení hry?
-save.nocampaign = Individual save files from the campaign cannot be imported.
+save.nocampaign = Jednotlivé uložené soubory z kampaně nelze importovat.
overwrite = Přepsat
save.none = Žádné uložené pozice nebyly nalezeny.
savefail = Nepodařilo se uložit hru!
@@ -343,25 +354,25 @@ open = Otevřít
customize = Přizpůsobit pravidla
cancel = Zrušit
command = Velet
-command.queue = Queue
+command.queue = Dát do řady
command.mine = Těžit
command.repair = Opravovat
command.rebuild = Přestavět
command.assist = Asistovat hráči
command.move = Pohyb
-
-command.boost = Boost
-command.enterPayload = Enter Payload Block
-command.loadUnits = Load Units
-command.loadBlocks = Load Blocks
-command.unloadPayload = Unload Payload
+command.boost = Posílení
+command.enterPayload = Zadejte blok užitečného zatížení
+command.loadUnits = Nahrát jednotky
+command.loadBlocks = Nahrát bloky
+command.unloadPayload = Vyložit blok užitečného zatížení
command.loopPayload = Loop Unit Transfer
-stance.stop = Cancel Orders
-stance.shoot = Stance: Shoot
-stance.holdfire = Stance: Hold Fire
-stance.pursuetarget = Stance: Pursue Target
-stance.patrol = Stance: Patrol Path
-stance.ram = Stance: Ram\n[lightgray]Straight line movement, no pathfinding
+stance.stop = Zrušit příkaz
+stance.shoot = Postoj: Střílejte
+stance.holdfire = Postoj: Přestaň střílet
+stance.pursuetarget = Postoj: Sleduj cíl
+stance.patrol = Postoj: Hlídej
+stance.ram = Postoj: Ram\n[lightgray]Přímý pohyb, žádné hledání cesty
+
openlink = Otevřít odkaz
copylink = Zkopírovat odkaz
back = Zpět
@@ -464,6 +475,7 @@ editor.shiftx = Shift X
editor.shifty = Shift Y
workshop = Workshop na Steamu
waves.title = Vlny
+waves.team = Team
waves.remove = Odebrat
waves.every = každých
waves.waves = vln(y)
@@ -506,7 +518,8 @@ details = Podrobnosti...
edit = Upravit...
variables = Hodnoty
logic.clear.confirm = Are you sure you want to clear all code from this processor?
-logic.globals = Built-in Variables
+logic.globals = Vestavěné proměnné
+
editor.name = Jméno:
editor.spawn = Zrodit jednotku
editor.removeunit = Odstranit jednotku
@@ -518,7 +531,7 @@ editor.errorlegacy = Tato mapa je příliš stará a používá formát mapy, kt
editor.errornot = Toto není soubor mapy.
editor.errorheader = Tento soubor mapy je buď neplatný nebo poškozen.
editor.errorname = Mapa nemá definované jméno. Nesnažíš se náhodou nahrát soubor s uložením hry?
-editor.errorlocales = Error reading invalid locale bundles.
+editor.errorlocales = Chyba při čtení neplatných balíčků národního prostředí.
editor.update = Aktualizovat
editor.randomize = Náhodně vygenerovat
editor.moveup = Pohyb Nahoru
@@ -530,7 +543,7 @@ editor.sectorgenerate = Generovat Sektor
editor.resize = Změnit velikost
editor.loadmap = Načíst mapu
editor.savemap = Uložit mapu
-editor.savechanges = [scarlet]You have unsaved changes!\n\n[]Do you want to save them?
+editor.savechanges = [scarlet]Máte neuložené změny!\n\n[]Chcete je uložit?
editor.saved = Uloženo!
editor.save.noname = Tvoje mapa nemá jméno! Jméno nastavíš v položce nabídky "Informace o mapě".
editor.save.overwrite = Tvoje mapa přepisuje vestavěnou mapu! Nastav jí radši jiné jméno v položce nabídky "Informace o mapě".
@@ -570,7 +583,7 @@ toolmode.eraseores.description = Maže jen rudy.
toolmode.fillteams = Doplnit týmy
toolmode.fillteams.description = Doplní týmy místo bloků.
toolmode.fillerase = Fill Erase
-toolmode.fillerase.description = Erase blocks of the same type.
+toolmode.fillerase.description = Vymažte bloky stejného typu.
toolmode.drawteams = Kreslit týmy
toolmode.drawteams.description = Kreslí týmy místo bloků.
toolmode.underliquid = Pod Kapalinami
@@ -619,23 +632,23 @@ filter.option.radius = Poloměr
filter.option.percentile = Percentil
filter.option.code = Code
filter.option.loop = Loop
-locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
-locales.deletelocale = Are you sure you want to delete this locale bundle?
-locales.applytoall = Apply Changes To All Locales
-locales.addtoother = Add To Other Locales
-locales.rollback = Rollback to last applied
-locales.filter = Property filter
-locales.searchname = Search name...
-locales.searchvalue = Search value...
-locales.searchlocale = Search locale...
-locales.byname = By name
-locales.byvalue = By value
-locales.showcorrect = Show properties that are present in all locales and have unique values everywhere
-locales.showmissing = Show properties that are missing in some locales
-locales.showsame = Show properties that have same values in different locales
-locales.viewproperty = View in all locales
-locales.viewing = Viewing property "{0}"
-locales.addicon = Add Icon
+locales.info = Zde můžete do mapy přidat balíčky národního prostředí pro konkrétní jazyky. V balíčcích národního prostředí má každá vlastnost název a hodnotu. Tyto vlastnosti mohou využívat světoví zpracovatelé a cíle pomocí svých jmen. Podporují formátování textu (nahrazení zástupných symbolů skutečnými hodnotami).\n\n[cyan]Příklad vlastnosti:\n[]název: [accent]timer[]\nvalue: [accent]Příklad časovače, zbývající čas: @[]\n\n[cyan]Usage:\n[]Nastavte jej jako text cíle: [accent]@timer\n\n[]Vytiskněte si to ve světovém procesoru:\n[accent]localeprint "timer"\nformat time\n[gray](kde čas je samostatně vypočítaná proměnná)
+locales.deletelocale = Opravdu chcete smazat tento balíček národního prostředí?
+locales.applytoall = Použít změny na všechna národní prostředí
+locales.addtoother = Přidat do jiných lokalit
+locales.rollback = Vrátit se k poslední aplikaci
+locales.filter = Filtr vlastností
+locales.searchname = Hledat jméno...
+locales.searchvalue = Hledat hodnotu...
+locales.searchlocale = Vyhledat národní prostředí...
+locales.byname = Podle jména
+locales.byvalue = Podle hodnoty
+locales.showcorrect = Zobrazit vlastnosti, které jsou přítomné ve všech národních prostředích a mají všude jedinečné hodnoty
+locales.showmissing = Zobrazit vlastnosti, které v některých národních prostředích chybí
+locales.showsame = Zobrazit vlastnosti, které mají stejné hodnoty v různých národních prostředích
+locales.viewproperty = Zobrazit ve všech lokalitách
+locales.viewing = Prohlížení nemovitosti "{0}"
+locales.addicon = Přidat ikonu
width = Šířka:
height = Výška:
@@ -693,35 +706,39 @@ marker.quad.name = Quad
marker.texture.name = Texture
marker.background = Pozadí
marker.outline = Outline
-objective.research = [accent]Research:\n[]{0}[lightgray]{1}
-objective.produce = [accent]Obtain:\n[]{0}[lightgray]{1}
-objective.destroyblock = [accent]Destroy:\n[]{0}[lightgray]{1}
-objective.destroyblocks = [accent]Destroy: [lightgray]{0}[white]/{1}\n{2}[lightgray]{3}
-objective.item = [accent]Obtain: [][lightgray]{0}[]/{1}\n{2}[lightgray]{3}
-objective.coreitem = [accent]Move into Core:\n[][lightgray]{0}[]/{1}\n{2}[lightgray]{3}
-objective.build = [accent]Build: [][lightgray]{0}[]x\n{1}[lightgray]{2}
-objective.buildunit = [accent]Build Unit: [][lightgray]{0}[]x\n{1}[lightgray]{2}
-objective.destroyunits = [accent]Destroy: [][lightgray]{0}[]x Units
-objective.enemiesapproaching = [accent]Enemies approaching in [lightgray]{0}[]
-objective.enemyescelating = [accent]Enemy production escalating in [lightgray]{0}[]
-objective.enemyairunits = [accent]Enemy air unit production beginning in [lightgray]{0}[]
-objective.destroycore = [accent]Destroy Enemy Core
-objective.command = [accent]Command Units
-objective.nuclearlaunch = [accent]⚠ Nuclear launch detected: [lightgray]{0}
-announce.nuclearstrike = [red]⚠ NUCLEAR STRIKE INBOUND ⚠
+objective.research = [accent]Výzkum:\n[]{0}[lightgray]{1}
+objective.produce = [accent]Zisk:\n[]{0}[lightgray]{1}
+objective.destroyblock = [accent]Zničení:\n[]{0}[lightgray]{1}
+objective.destroyblocks = [accent]Zničení: [lightgray]{0}[white]/{1}\n{2}[lightgray]{3}
+objective.item = [accent]Zisk: [][lightgray]{0}[]/{1}\n{2}[lightgray]{3}
+objective.coreitem = [accent]Obsah Jádra:\n[][lightgray]{0}[]/{1}\n{2}[lightgray]{3}
+objective.build = [accent]Postaveno: [][lightgray]{0}[]x\n{1}[lightgray]{2}
+objective.buildunit = [accent]Vytvořeno jednotek: [][lightgray]{0}[]x\n{1}[lightgray]{2}
+objective.destroyunits = [accent]Zničeno: [][lightgray]{0}[]x Units
+objective.enemiesapproaching = [accent]Nepřátelé se blíží [lightgray]{0}[]
+objective.enemyescelating = [accent]Produkce nepřátel eskaluje [lightgray]{0}[]
+objective.enemyairunits = [accent]Začátek výroby nepřátelských leteckých jednotek [lightgray]{0}[]
+objective.destroycore = [accent]Znič nepřátelské Jádro
+objective.command = [accent]Velitelské jednotky
+objective.nuclearlaunch = [accent]⚠ Zjištěna nukleární bomba: [lightgray]{0}
+announce.nuclearstrike = [red]⚠ JADERNÝ ÚDER ⚠
loadout = Načtení
resources = Zdroje
resources.max = Max
bannedblocks = Zakázané bloky
+unbannedblocks = Unbanned Blocks
objectives = Úkoly
bannedunits = Zakázané jednotky
-bannedunits.whitelist = Banned Units As Whitelist
-bannedblocks.whitelist = Banned Blocks As Whitelist
+unbannedunits = Unbanned Units
+bannedunits.whitelist = Zakázané jednotky jako Whitelist
+bannedblocks.whitelist = Zakázané bloky jako Whitelist
addall = Přidat vše
launch.from = Vysláno z: [accent]{0}
launch.capacity = Odpalovací kapacita: [accent]{0}
launch.destination = Cíl: {0}
+landing.sources = Source Sectors: [accent]{0}[]
+landing.import = Max Total Import: {0}[accent]{1}[lightgray]/min
configure.invalid = Hodnota musí být číslo mezi 0 a {0}.
add = Přidat...
guardian = Strážce
@@ -744,7 +761,7 @@ weather.sandstorm.name = Písečná ouře
weather.sporestorm.name = Spórová bouře
weather.fog.name = Mlha
campaign.playtime = \uf129 [lightgray]Sector Playtime: {0}
-campaign.complete = [accent]Congratulations.\n\nThe enemy on {0} has been defeated.\n[lightgray]The final sector has been conquered.
+campaign.complete = [accent]Nastavení.\n\nNepřítel na {0} byl poražen.\n[lightgray]Poslední sektor byl dobyt.
sectorlist = Sektory
sectorlist.attacked = {0} pod útokem
@@ -760,16 +777,18 @@ sectors.stored = Uskladněno:
sectors.resume = Pokračovat
sectors.launch = Vyslat
sectors.select = Vybrat
+sectors.launchselect = Select Launch Destination
sectors.nonelaunch = [lightgray]bez (slunce)[]
+sectors.redirect = Redirect Launch Pads
sectors.rename = Přejmenovat sektor
sectors.enemybase = [scarlet]Nepřátelská základna
sectors.vulnerable = [scarlet]Zranitelný
sectors.underattack = [scarlet]Pod palbou! [accent]{0}% poškozeno
-sectors.underattack.nodamage = [scarlet]Uncaptured
+sectors.underattack.nodamage = [scarlet]Neobsazen
sectors.survives = [accent]Přežívá již {0} vln
sectors.go = Jdi
sector.abandon = Opustit
-sector.abandon.confirm = This sector's core(s) will self-destruct.\nContinue?
+sector.abandon.confirm = Jádro(a) tohoto sektoru se zničí.\nPokračovat?
sector.curcapture = Sektor polapen
sector.curlost = Sektor ztracen
sector.missingresources = [scarlet]Nedostatečné zdroje v jádře
@@ -792,6 +811,10 @@ difficulty.easy = Easy
difficulty.normal = Normal
difficulty.hard = Hard
difficulty.eradication = Eradication
+difficulty.enemyHealthMultiplier = Enemy Health: {0}
+difficulty.enemySpawnMultiplier = Enemy Amount: {0}
+difficulty.waveTimeMultiplier = Wave Timer: {0}
+difficulty.nomodifiers = [lightgray](No modifiers)
planets = Planety
@@ -1014,15 +1037,16 @@ stat.abilities = Schopnosti
stat.canboost = Umí posilovat
stat.flying = Létající
stat.ammouse = Spotřeba Munice
-stat.ammocapacity = Ammo Capacity
-stat.damagemultiplier = Násobič Poškození
-stat.healthmultiplier = Násobič Životů
-stat.speedmultiplier = Násobič Rychlostí
-stat.reloadmultiplier = Násobič Přebití
+stat.ammocapacity = Kapacita nábojů
+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.reactive = Reaguje
-stat.immunities = Imunity
+stat.immunities = Imunita
stat.healing = Léčí se
+stat.efficiency = [stat]{0}% Efficiency
ability.forcefield = Silové pole
ability.forcefield.description = Projects a force shield that absorbs bullets
@@ -1040,13 +1064,14 @@ ability.armorplate = Armor Plate
ability.armorplate.description = Reduces damage taken while shooting
ability.shieldarc = Štítovy Oblouk
ability.shieldarc.description = Projects a force shield in an arc that absorbs bullets
-ability.suppressionfield = Regen Suppression Field
+ability.suppressionfield = Pole potlačení regenerace
ability.suppressionfield.description = Stops nearby repair buildings
ability.energyfield = Energetické pole
-ability.energyfield.description = Zaps nearby enemies
-ability.energyfield.healdescription = Zaps nearby enemies and heals allies
-ability.regen = Regeneration
-ability.regen.description = Regenerates own health over time
+ability.energyfield.description = Odpráskne blízké nepřátele
+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 = Liquid Absorption
ability.liquidregen.description = Absorbs liquid to heal itself
ability.spawndeath = Death Spawns
@@ -1070,14 +1095,16 @@ ability.stat.buildtime = [stat]{0} sec[lightgray] build time
bar.onlycoredeposit = Pouze Ukládání do Jádra je povoleno
bar.drilltierreq = Je vyžadován lepší vrt
+bar.nobatterypower = Insufficieny Battery Power
bar.noresources = Chybějí zdroje
bar.corereq = Je vyžadováno základní jádro
-bar.corefloor = Core Zone Tile Required
-bar.cargounitcap = Cargo Unit Cap Reached
+bar.corefloor = Je vyžadována pozice základní zóny
+bar.cargounitcap = Strop nákladové jednotky dosaženo
bar.drillspeed = Rychlost vrtu: {0}/s
bar.pumpspeed = Rychlost pumpy: {0}/s
bar.efficiency = Účinnost: {0}%
bar.boost = Posílení: +{0}%
+bar.powerbuffer = Battery Power: {0}/{1}
bar.powerbalance = Energie: {0}
bar.powerstored = Uskladněno: {0}/{1}
bar.poweramount = Energie celkem: {0}
@@ -1088,6 +1115,7 @@ bar.capacity = Kapacita: {0}
bar.unitcap = {0} {1}/{2}
bar.liquid = Chlazení
bar.heat = Teplo
+bar.cooldown = Cooldown
bar.instability = Nestabilita
bar.heatamount = Teplo: {0}
bar.heatpercent = Teplo: {0} ({1}%)
@@ -1105,13 +1133,14 @@ bullet.damage = [stat]{0}[lightgray] poškození[]
bullet.splashdamage = [stat]{0}[lightgray] plošného poškození ~[stat] {1}[lightgray] dlaždic
bullet.incendiary = [stat]zápalný
bullet.homing = [stat]samonaváděcí
-bullet.armorpierce = [stat]armor piercing
-bullet.maxdamagefraction = [stat]{0}%[lightgray] damage limit
-bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] kostek
+bullet.armorpierce = [stat]proražení brnění
+bullet.maxdamagefraction = [stat]{0}%[lightgray] limit poškození
+bullet.suppression = [stat]{0} sec[lightgray] potlačení opravy ~ [stat]{1}[lightgray] kostek
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
bullet.frags = [stat]{0}[lightgray]x frag střel:
bullet.lightning = [stat]{0}[lightgray]x jiskření ~ [stat]{1}[lightgray] poškození
bullet.buildingdamage = [stat]{0}%[lightgray] poškození budov
+bullet.shielddamage = [stat]{0}%[lightgray] shield damage
bullet.knockback = [stat]{0}[lightgray] odhození[]
bullet.pierce = [stat]{0}[lightgray]x průrazné[]
bullet.infinitepierce = [stat]průrazné[]
@@ -1138,6 +1167,7 @@ unit.minutes = minuty
unit.persecond = /s
unit.perminute = /min
unit.timesspeed = x větší rychlost
+unit.multiplier = x
unit.percent = %
unit.shieldhealth = zdraví štítu
unit.items = předměty
@@ -1202,7 +1232,7 @@ setting.console.name = Povolit Konzoli
setting.smoothcamera.name = Plynulá kamera
setting.vsync.name = Vertikální synchronizace
setting.pixelate.name = Rozpixlovat
-setting.minimap.name = Ukázat mapičku
+setting.minimap.name = Ukázat Mini mapu
setting.coreitems.name = Ukázat položky jádra
setting.position.name = Ukázat pozici hráče
setting.mouseposition.name = Zobrazit Pozici Myši
@@ -1214,11 +1244,13 @@ 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.savecreate.name = Automaticky ukládat hru
setting.steampublichost.name = Public Game Visibility
setting.playerlimit.name = Nejvyšší počet hráčů
setting.chatopacity.name = Průsvitnost kanálu zpráv
setting.lasersopacity.name = Průsvitnost energetického laseru
+setting.unitlaseropacity.name = Unit Mining Beam Opacity
setting.bridgeopacity.name = Průsvitnost přemostění
setting.playerchat.name = Zobrazit bublinu se zprávami hráče
setting.showweather.name = Zobrazit Grafiku Počasí
@@ -1227,6 +1259,9 @@ setting.macnotch.name = Přizpůsobte rozhraní zobrazení zářezu
setting.macnotch.description = Pro aplikování změn, je potřeba restart
steam.friendsonly = Přátele Pouze
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.
public.beta = Poznámka: nevydané verze her nemůžou být veřejné.
uiscale.reset = Škálování uživatelskho rozhraní se změnilo.\nZmáčkni "OK", abys potvrdil toto nastavení.\n[scarlet]Návrat k původním hodnotám proběhne za [accent]{0}[] vteřin...[]
uiscale.cancel = Ukončit a odejít
@@ -1253,14 +1288,14 @@ keybind.mouse_move.name = Následovat myš
keybind.pan.name = Následovat kameru
keybind.boost.name = Posílení
keybind.command_mode.name = Příkazový Režim
-keybind.command_queue.name = Unit Command Queue
-keybind.create_control_group.name = Create Control Group
-keybind.cancel_orders.name = Cancel Orders
-keybind.unit_stance_shoot.name = Unit Stance: Shoot
-keybind.unit_stance_hold_fire.name = Unit Stance: Hold Fire
-keybind.unit_stance_pursue_target.name = Unit Stance: Pursue Target
-keybind.unit_stance_patrol.name = Unit Stance: Patrol
-keybind.unit_stance_ram.name = Unit Stance: Ram
+keybind.command_queue.name = Fronta příkazů jednotky
+keybind.create_control_group.name = Vytvořit kontrolní skupinu
+keybind.cancel_orders.name = Zrušit příkaz
+keybind.unit_stance_shoot.name = Postoj jednotky: Střílejte
+keybind.unit_stance_hold_fire.name = Postoj jednotky: Zastavit palbu
+keybind.unit_stance_pursue_target.name = Postoj jednotky: Pronásleduj cíl
+keybind.unit_stance_patrol.name = Postoj jednotky: Hlídej
+keybind.unit_stance_ram.name = Postoj jednotky: Ram
keybind.unit_command_move.name = Unit Command: Move
keybind.unit_command_repair.name = Unit Command: Repair
keybind.unit_command_rebuild.name = Unit Command: Rebuild
@@ -1307,8 +1342,9 @@ keybind.shoot.name = Střílet
keybind.zoom.name = Přiblížení
keybind.menu.name = Hlavní nabídka
keybind.pause.name = Pozastavení hry
+keybind.skip_wave.name = Skip Wave
keybind.pause_building.name = Pozastavit nebo spustit stavění
-keybind.minimap.name = Mapička
+keybind.minimap.name = Mini mapa
keybind.planet_map.name = Planetární mapa
keybind.research.name = Výzkum
keybind.block_info.name = Info o Bloku
@@ -1335,7 +1371,7 @@ mode.pvp.description = Bojuj proti ostatním hráčům v lokální síti.\n[gray
mode.attack.name = Útok
mode.attack.description = Znič nepřátelskou základnu.\n[gray]Vyžaduje přítomnost červeného jádra na mapě.[]
mode.custom = Vlastní pravidla
-rules.invaliddata = Invalid clipboard data.
+rules.invaliddata = Neplatná data ze schránky.
rules.hidebannedblocks = Schovat Zakázané Kostky
rules.infiniteresources = Neomezeně surovin
@@ -1374,12 +1410,14 @@ rules.unitcostmultiplier = Násobek ceny jednotek
rules.unithealthmultiplier = Násobek zdraví jednotek
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.unitpayloadsexplode = Carried Payloads Explode With The Unit
rules.unitcap = Základní Maximum Počtu Jednotek
rules.limitarea = Limit Map Area
rules.enemycorebuildradius = Poloměr, ve kterém se okolo nepřátelského jádra nesmí stavět: [lightgray](dlaždic)[]
+rules.extracorebuildradius = Extra No-Build Radius:[lightgray] (tiles)
rules.wavespacing = Čas rozestupu mezi vlnami: [lightgray](vteřin)[]
rules.initialwavespacing = Initial Wave Spacing:[lightgray] (sec)
rules.buildcostmultiplier = Násobek ceny stavění
@@ -1402,6 +1440,9 @@ rules.title.planet = Planeta
rules.lighting = Osvětlení
rules.fog = Fog of War
rules.invasions = Enemy Sector Invasions
+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.fire = Výstřel
@@ -1463,59 +1504,59 @@ liquid.cyanogen.name = Kyanogen
unit.dagger.name = Dýka
unit.mace.name = Palcát
unit.fortress.name = Pevnost
-unit.nova.name = Nova
+unit.nova.name = Bratr
unit.pulsar.name = Pulzar
unit.quasar.name = Kvasar
unit.crawler.name = Slídil
unit.atrax.name = Atrax
-unit.spiroct.name = Spirokt
-unit.arkyid.name = Arkyid
-unit.toxopid.name = Toxopid
-unit.flare.name = Záře
-unit.horizon.name = Horizont
-unit.zenith.name = Zenit
-unit.antumbra.name = Antumbra
-unit.eclipse.name = Zatmění
+unit.spiroct.name = Chirurg
+unit.arkyid.name = Arkyd
+unit.toxopid.name = Toxo
+unit.flare.name = Sojka
+unit.horizon.name = Drozd
+unit.zenith.name = Racek
+unit.antumbra.name = Volavka
+unit.eclipse.name = Sup
unit.mono.name = Mono
unit.poly.name = Poly
unit.mega.name = Mega
unit.quad.name = Tetra
unit.oct.name = Hexo
-unit.risso.name = Risso
-unit.minke.name = Minke
-unit.bryde.name = Bryde
-unit.sei.name = Sei
-unit.omura.name = Omura
-unit.retusa.name = Retusa
-unit.oxynoe.name = Oxynón
-unit.cyerce.name = Cyerc
-unit.aegires.name = Aegirez
-unit.navanax.name = Navanax
+unit.risso.name = Vor
+unit.minke.name = Mělčina
+unit.bryde.name = Břečka
+unit.sei.name = Vodník
+unit.omura.name = Křižník
+unit.retusa.name = Ryba
+unit.oxynoe.name = Okoun
+unit.cyerce.name = Candát
+unit.aegires.name = Sumec
+unit.navanax.name = Vorvaň
unit.alpha.name = Alfa
unit.beta.name = Beta
unit.gamma.name = Gama
unit.scepter.name = Žezlo
-unit.reign.name = Panovník
+unit.reign.name = Vůdce
unit.vela.name = Vela
unit.corvus.name = Havran
-unit.stell.name = Stell
-unit.locus.name = Locus
-unit.precept.name = Precept
-unit.vanquish.name = Vanquish
+unit.stell.name = Hřebík
+unit.locus.name = Šroub
+unit.precept.name = Kruťák
+unit.vanquish.name = Vágus
unit.conquer.name = Dobyvatel
-unit.merui.name = Merui
-unit.cleroi.name = Cleroi
-unit.anthicus.name = Antikus
-unit.tecta.name = Tecta
-unit.collaris.name = Kolaris
-unit.elude.name = Elude
-unit.avert.name = Avert
-unit.obviate.name = Obviate
-unit.quell.name = Quell
-unit.disrupt.name = Disrupt
-unit.evoke.name = Evoke
-unit.incite.name = Incite
-unit.emanate.name = Emanate
+unit.merui.name = Merlin
+unit.cleroi.name = Čaroděj
+unit.anthicus.name = Darmoděj
+unit.tecta.name = Tvrďák
+unit.collaris.name = Přísňák
+unit.elude.name = Lehátko
+unit.avert.name = Frčák
+unit.obviate.name = Podkova
+unit.quell.name = Kněžna
+unit.disrupt.name = Zabiják
+unit.evoke.name = Evoker
+unit.incite.name = Radiátor
+unit.emanate.name = Eman
unit.manifold.name = Manifold
unit.assembly-drone.name = Montážní Dron
unit.latum.name = Latum
@@ -1720,6 +1761,8 @@ block.meltdown.name = Rozpékač
block.foreshadow.name = Znamení osudu
block.container.name = Kontejnér
block.launch-pad.name = Vysílací plošina
+block.advanced-launch-pad.name = Launch Pad
+block.landing-pad.name = Landing Pad
block.segment.name = Úsek
block.ground-factory.name = Pozemní továrna
block.air-factory.name = Letecká továrna
@@ -1757,121 +1800,124 @@ block.rhyolite-crater.name = Ryolitní Kráter
block.rough-rhyolite.name = Hrubý Ryolit
block.regolith.name = Regolit
block.yellow-stone.name = Žlutý Kámen
-block.carbon-stone.name = Krabonový Kámen
-block.ferric-stone.name = Ferric Stone
+block.carbon-stone.name = Uhlíkový kámen
+block.ferric-stone.name = Ferric kámen
block.ferric-craters.name = Ferric Craters
-block.beryllic-stone.name = Beryllic Stone
-block.crystalline-stone.name = Crystalline Stone
+block.beryllic-stone.name = Beryllic kámen
+block.crystalline-stone.name = Crystalline kámen
block.crystal-floor.name = Křišťalová Zem
block.yellow-stone-plates.name = Žluté Kamenné Pláty
block.red-stone.name = Červený Kámen
block.dense-red-stone.name = Hustý Červený Kámen
block.red-ice.name = Červený Led
-block.arkycite-floor.name = Arkycite Floor
-block.arkyic-stone.name = Arkyic Stone
-block.rhyolite-vent.name = Rhyolite Vent
-block.carbon-vent.name = Carbon Vent
-block.arkyic-vent.name = Arkyic Vent
-block.yellow-stone-vent.name = Yellow Stone Vent
-block.red-stone-vent.name = Red Stone Vent
-block.crystalline-vent.name = Crystalline Vent
+block.arkycite-floor.name = Arkycite podlaha
+block.arkyic-stone.name = Arkyic kámen
+block.rhyolite-vent.name = Rhyolite díra
+block.carbon-vent.name = Uhlíková díra
+block.arkyic-vent.name = Arkyic díra
+block.yellow-stone-vent.name = Yellow Stone díra
+block.red-stone-vent.name = Red Stone díra
+block.crystalline-vent.name = Crystalline díra
+block.stone-vent.name = Stone Vent
+block.basalt-vent.name = Basalt Vent
block.redmat.name = Redmat
block.bluemat.name = Bluemat
-block.core-zone.name = Jádrová Zona
-block.regolith-wall.name = Regolith Wall
-block.yellow-stone-wall.name = Yellow Stone Wall
-block.rhyolite-wall.name = Rhyolite Wall
-block.carbon-wall.name = Krabonová Zeď
-block.ferric-stone-wall.name = Ferric Stone Wall
-block.beryllic-stone-wall.name = Beryllic Stone Wall
-block.arkyic-wall.name = Arkyic Wall
-block.crystalline-stone-wall.name = Crystalline Stone Wall
+block.core-zone.name = Zóna pro jádro
+block.regolith-wall.name = Regolith zeď
+block.yellow-stone-wall.name = Yellow Stone zeď
+block.rhyolite-wall.name = Rhyolite zeď
+block.carbon-wall.name = Krabonová zeď
+block.ferric-stone-wall.name = Ferric Stone zeď
+block.beryllic-stone-wall.name = Beryllic Stone zeď
+block.arkyic-wall.name = Arkyic zeď
+block.crystalline-stone-wall.name = Crystalline Stone zeď
block.red-ice-wall.name = Červená Ledová Zeď
block.red-stone-wall.name = Červená Kamenná Zeď
block.red-diamond-wall.name = Červená Diamantová Zeď
block.redweed.name = Redweed
-block.pur-bush.name = Pur Bush
+block.pur-bush.name = Pur křoví
block.yellowcoral.name = Žlutý Korál
-block.carbon-boulder.name = Carbon Boulder
-block.ferric-boulder.name = Ferric Boulder
-block.beryllic-boulder.name = Beryllic Boulder
-block.yellow-stone-boulder.name = Yellow Stone Boulder
-block.arkyic-boulder.name = Arkyic Boulder
-block.crystal-cluster.name = Crystal Cluster
-block.vibrant-crystal-cluster.name = Vibrant Crystal Cluster
+block.carbon-boulder.name = Uhlíkový balvan
+block.ferric-boulder.name = Ferric balvan
+block.beryllic-boulder.name = Beryllic balvan
+block.yellow-stone-boulder.name = Yellow Stone balvan
+block.arkyic-boulder.name = Arkyic balvan
+block.crystal-cluster.name = Crystal shluk
+block.vibrant-crystal-cluster.name = Vibrant Crystal shluk
block.crystal-blocks.name = Křišťálové Bloky
block.crystal-orbs.name = Křišťálové Orby
-block.crystalline-boulder.name = Crystalline Boulder
-block.red-ice-boulder.name = Red Ice Boulder
-block.rhyolite-boulder.name = Rhyolite Boulder
-block.red-stone-boulder.name = Red Stone Boulder
-block.graphitic-wall.name = Graphitic Wall
-block.silicon-arc-furnace.name = Silicon Arc Furnace
+block.crystalline-boulder.name = Crystalline balvan
+block.red-ice-boulder.name = Red Ice balvan
+block.rhyolite-boulder.name = Rhyolite balvan
+block.red-stone-boulder.name = Red Stone balvan
+block.graphitic-wall.name = Graphitic zeď
+block.silicon-arc-furnace.name = Silicon Arc pec
block.electrolyzer.name = Elektrolyzer
block.atmospheric-concentrator.name = Atmospheric Concentrator
-block.oxidation-chamber.name = Oxidation Chamber
+block.oxidation-chamber.name = Oxidation komora
block.electric-heater.name = Elektrický Ohřívač
-block.slag-heater.name = Slag Heater
-block.phase-heater.name = Phase Heater
-block.heat-redirector.name = Heat Redirector
+block.slag-heater.name = struskový ohřívač
+block.phase-heater.name = Fázový ohřívač
+block.heat-redirector.name = Tepelné rozdělovač
block.small-heat-redirector.name = Small Heat Redirector
-block.heat-router.name = Tepelný Směrovač
-block.slag-incinerator.name = Slag Incinerator
-block.carbide-crucible.name = Carbide Crucible
-block.slag-centrifuge.name = Slag Centrifuge
-block.surge-crucible.name = Surge Crucible
-block.cyanogen-synthesizer.name = Cyanogen Synthesizer
-block.phase-synthesizer.name = Phase Synthesizer
+block.heat-router.name = Tepelný směrovač
+block.slag-incinerator.name = Strusková spalovna
+block.carbide-crucible.name = Karbidová nádoba
+block.slag-centrifuge.name = Odstředivka strusky
+block.surge-crucible.name = Přepěťová nádoba
+block.cyanogen-synthesizer.name = Syntetizátor kyanogenu
+block.phase-synthesizer.name = Syntetizátor fáze
block.heat-reactor.name = Tepelný Reaktor
-block.beryllium-wall.name = Beryllium Wall
-block.beryllium-wall-large.name = Large Beryllium Wall
+block.beryllium-wall.name = Beryliová zeď
+block.beryllium-wall-large.name = Velká Beryliová zeď
block.tungsten-wall.name = Wolframová Zeď
-block.tungsten-wall-large.name = Large Tungsten Wall
-block.blast-door.name = Blast Door
-block.carbide-wall.name = Carbide Wall
-block.carbide-wall-large.name = Large Carbide Wall
-block.reinforced-surge-wall.name = Reinforced Surge Wall
-block.reinforced-surge-wall-large.name = Large Reinforced Surge Wall
-block.shielded-wall.name = Shielded Wall
+block.tungsten-wall-large.name = Velká Tungstenová zeď
+block.blast-door.name = Velké dveře
+block.carbide-wall.name = Karbidová stěna
+block.carbide-wall-large.name = Velká karbidová stěna
+block.reinforced-surge-wall.name = Vyztužená přepěťová stěna
+block.reinforced-surge-wall-large.name = Velká vyztužená přepěťová stěna
+block.shielded-wall.name = Štítová stěna
block.radar.name = Radar
-block.build-tower.name = Build Tower
+block.build-tower.name = Postav věž
block.regen-projector.name = Regen Projector
-block.shockwave-tower.name = Shockwave Tower
+block.shockwave-tower.name = Blesková věž
block.shield-projector.name = Štítový Projektor
-block.large-shield-projector.name = Large Shield Projector
-block.armored-duct.name = Armored Duct
-block.overflow-duct.name = Overflow Duct
-block.underflow-duct.name = Underflow Duct
-block.duct-unloader.name = Duct Unloader
-block.surge-conveyor.name = Surge Conveyor
-block.surge-router.name = Surge Router
-block.unit-cargo-loader.name = Unit Cargo Loader
-block.unit-cargo-unload-point.name = Unit Cargo Unload Point
-block.reinforced-pump.name = Reinforced Pump
-block.reinforced-conduit.name = Reinforced Conduit
-block.reinforced-liquid-junction.name = Reinforced Liquid Junction
-block.reinforced-bridge-conduit.name = Reinforced Bridge Conduit
-block.reinforced-liquid-router.name = Reinforced Liquid Router
-block.reinforced-liquid-container.name = Reinforced Liquid Container
-block.reinforced-liquid-tank.name = Reinforced Liquid Tank
-block.beam-node.name = Beam Node
-block.beam-tower.name = Beam Tower
-block.beam-link.name = Beam Link
-block.turbine-condenser.name = Turbine Condenser
-block.chemical-combustion-chamber.name = Chemical Combustion Chamber
-block.pyrolysis-generator.name = Pyrolysis Generator
-block.vent-condenser.name = Vent Condenser
-block.cliff-crusher.name = Cliff Crusher
+block.large-shield-projector.name = Velká štítový Projektor
+block.armored-duct.name = Obrněný kanál
+block.overflow-duct.name = Přepadový kanál
+block.underflow-duct.name = Podtokové potrubí
+block.duct-unloader.name = Vykladač potrubí
+block.surge-conveyor.name = Přepěťový dopravník
+block.surge-router.name = Přepěťový směrovač
+block.unit-cargo-loader.name = Nakladač jednotek
+block.unit-cargo-unload-point.name = Místo vyložení jednotek
+block.reinforced-pump.name = Zesílené čerpadlo
+block.reinforced-conduit.name = Zesílené vedení
+block.reinforced-liquid-junction.name = Zesílený spoj pro kapaliny
+block.reinforced-bridge-conduit.name = Vyztužený mostní vedení
+block.reinforced-liquid-router.name = Zesílený směrovač kapalin
+block.reinforced-liquid-container.name = Zesílená nádrž na kapaliny
+block.reinforced-liquid-tank.name = Zesílená bazén na kapaliny
+block.beam-node.name = Uzel paprsku
+block.beam-tower.name = Věž paprsku
+block.beam-link.name = Vedení paprku
+block.turbine-condenser.name = Turbínový zkapalňovač
+block.chemical-combustion-chamber.name = Chemická spalovací komora
+block.pyrolysis-generator.name = Pyrolysový generátor
+block.vent-condenser.name = Ventilační zkapalňovač
+block.cliff-crusher.name = Útesový drtič
block.large-cliff-crusher.name = Advanced Cliff Crusher
-block.plasma-bore.name = Plasma Bore
-block.large-plasma-bore.name = Large Plasma Bore
-block.impact-drill.name = Impact Drill
-block.eruption-drill.name = Eruption Drill
-block.core-bastion.name = Core Bastion
-block.core-citadel.name = Core Citadel
-block.core-acropolis.name = Core Acropolis
-block.reinforced-container.name = Reinforced Container
-block.reinforced-vault.name = Reinforced Vault
+block.plasma-bore.name = Plazmový vrták
+block.large-plasma-bore.name = Velký plazmový vrták
+block.impact-drill.name = Příklepová vrták
+block.eruption-drill.name = Tavící vrták
+block.core-bastion.name = Jádro Pevnost
+block.core-citadel.name = Jádro Palác
+block.core-acropolis.name = Jádro Boží Poselství
+block.reinforced-container.name = Vyztužený kontejner
+block.reinforced-vault.name = Vyztužená klenba
+
block.breach.name = Breach
block.sublimate.name = Sublimate
block.titan.name = Titan
@@ -1879,30 +1925,30 @@ block.disperse.name = Disperse
block.afflict.name = Afflict
block.lustre.name = Lustre
block.scathe.name = Scathe
-block.tank-refabricator.name = Tank Refabricator
-block.mech-refabricator.name = Mech Refabricator
-block.ship-refabricator.name = Ship Refabricator
-block.tank-assembler.name = Tank Assembler
-block.ship-assembler.name = Ship Assembler
-block.mech-assembler.name = Mech Assembler
+block.tank-refabricator.name = Tanková dílna
+block.mech-refabricator.name = Robotická dílna
+block.ship-refabricator.name = Námořní dok
+block.tank-assembler.name = Tanková výzkumná stanice
+block.ship-assembler.name = Námořní výzkumná stanice
+block.mech-assembler.name = Robotická výzkumná stanice
block.reinforced-payload-conveyor.name = Reinforced Payload Conveyor
-block.reinforced-payload-router.name = Reinforced Payload Router
-block.payload-mass-driver.name = Payload Mass Driver
-block.small-deconstructor.name = Small Deconstructor
+block.reinforced-payload-router.name = Vyztužený zátěžový dopravník
+block.payload-mass-driver.name = Zátěžová ústředna
+block.small-deconstructor.name = Malý ničitel
block.canvas.name = Plátno
-block.world-processor.name = Světový Procesor
+block.world-processor.name = Řídící procesor
block.world-cell.name = Světová Buňka
-block.tank-fabricator.name = Frabrikátor tanků
-block.mech-fabricator.name = Mech Fabricator
-block.ship-fabricator.name = Ship Fabricator
-block.prime-refabricator.name = Prime Refabricator
-block.unit-repair-tower.name = Unit Repair Tower
-block.diffuse.name = Diffuse
+block.tank-fabricator.name = Tanková dílna
+block.mech-fabricator.name = Robotická dílna
+block.ship-fabricator.name = Námořní dok
+block.prime-refabricator.name = Prime dílna
+block.unit-repair-tower.name = Opravárenská věž
+block.diffuse.name = Rozšíření
block.basic-assembler-module.name = Běžný Skládací Modul
-block.smite.name = Smite
-block.malign.name = Malign
+block.smite.name = Úder
+block.malign.name = Pomluva
block.flux-reactor.name = Fluxní Reaktor
-block.neoplasia-reactor.name = Neoplasia Reaktor
+block.neoplasia-reactor.name = Neoplasmatický Reaktor
block.switch.name = Přepínač
block.micro-processor.name = Mikroprocesor
@@ -1936,8 +1982,8 @@ hint.research = Použij tlačítko \ue875 [accent]Výzkum[] pro vyzkoumání nov
hint.research.mobile = Použij tlačítko \ue875 [accent]Výzkum[] v \ue88c [accent]nabídce[] pro vyzkoumání nové technologie.
hint.unitControl = Podrž [accent][[Levý Ctrl][] a [accent]klikni[] pro ovládání spřátelených jednotek nebo věží.
hint.unitControl.mobile = [accent][[Dvojťupni][] pro ovládání spřátelených jednotek nebo věží.
-hint.unitSelectControl = To control units, enter [accent]command mode[] by holding [accent]L-shift.[]\nWhile in command mode, click and drag to select units. [accent]Right-click[] a location or target to command units there.
-hint.unitSelectControl.mobile = To control units, enter [accent]command mode[] by pressing the [accent]command[] button in the bottom left.\nWhile in command mode, long-press and drag to select units. Tap a location or target to command units there.
+hint.unitSelectControl = Chcete-li ovládat jednotky, zadejte [accent]příkazový režim[] přidržením [accent]L-shift.[]\nV příkazovém režimu kliknutím a tažením vyberte jednotky. [accent]Right-click[]místo nebo cíl pro velení tamních jednotek.
+hint.unitSelectControl.mobile = Chcete-li ovládat jednotky, zadejte [accent]příkazový režim[] stisknutím tlačítka[accent]command[] tlačítko vlevo dole.\nV příkazovém režimu vyberte jednotky dlouhým stisknutím a přetažením. Klepnutím na místo nebo cíl velíte tamním jednotkám.
hint.launch = Jakmile je nasbíráno dostatek zdrojových materiálů, můžeš se [accent]vyslat[] do přilehlých sektorů z \ue827 [accent]mapy[] v pravém dolním rohu.
hint.launch.mobile = Jakmile je nasbíráno dostatek zdrojových materiálů, můžeš se [accent]vyslat[] do přilehlých sektorů z \ue827 [accent]mapy[] v the \ue88c [accent]nabídce[].
hint.schematicSelect = Podrž [accent][[F][] a potáhni pro výběr bloků, které chceš zkopírovat.\n\nKlikni na [accent][[prostřední tlačítko][] myši pro zkopírování jednoho typu bloku.
@@ -1957,9 +2003,9 @@ hint.coreUpgrade = Jádro může být vylepšeno [accent]překrytím jádrem vy
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.factoryControl = To set a unit factory's [accent]output destination[], click a factory block while in command mode, then right-click a location.\nUnits produced by it will automatically move there.
-hint.factoryControl.mobile = To set a unit factory's [accent]output destination[], tap a factory block while in command mode, then tap a location.\nUnits produced by it will automatically move there.
-gz.mine = Move near the \uf8c4 [accent]copper ore[] on the ground and click to begin mining.
+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.
+gz.mine = Pohybujte se poblíž\uf8c4 [accent]měděnou rudu[] na zemi a kliknutím zahájíte těžbu.
gz.mine.mobile = Move near the \uf8c4 [accent]copper ore[] on the ground and tap it to begin mining.
gz.research = Open the \ue875 tech tree.\nResearch the \uf870 [accent]Mechanical Drill[], then select it from the menu in the bottom right.\nClick on a copper patch to place it.
gz.research.mobile = Open the \ue875 tech tree.\nResearch the \uf870 [accent]Mechanical Drill[], then select it from the menu in the bottom right.\nTap on a copper patch to place it.\n\nPress the \ue800 [accent]checkmark[] at the bottom right to confirm.
@@ -1976,11 +2022,11 @@ gz.aa = Flying units cannot easily be dispatched with standard turrets.\n\uf860
gz.scatterammo = Supply the Scatter turret with [accent]lead[], using conveyors.
gz.supplyturret = [accent]Supply Turret
gz.zone1 = This is the enemy drop zone.
-gz.zone2 = Anything built in the radius is destroyed when a wave starts.
+gz.zone2 = Vše, postaveno v tomto okruhu bude zničeno při začátku příětí vlny
gz.zone3 = A wave will begin now.\nGet ready.
gz.finish = Build more turrets, mine more resources,\nand defend against all the waves to [accent]capture the sector[].
onset.mine = Click to mine \uf748 [accent]beryllium[] from walls.\n\nUse [accent][[WASD] to move.
-onset.mine.mobile = Tap to mine \uf748 [accent]beryllium[] from walls.
+onset.mine.mobile = Stiskni pro těžení :beryllium: [accent]beryllium[] ze stěn.
onset.research = Open the \ue875 tech tree.\nResearch, then place a \uf73e [accent]turbine condenser[] on the vent.\nThis will generate [accent]power[].
onset.bore = Research and place a \uf741 [accent]plasma bore[].\nThis automatically mines resources from walls.
onset.power = To [accent]power[] the plasma bore, research and place a \uf73d [accent]beam node[].\nConnect the turbine condenser to the plasma bore.
@@ -1998,7 +2044,7 @@ onset.turretammo = Supply the turret with [accent]beryllium ammo.[]
onset.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace some \uf6ee [accent]beryllium walls[] around the turret.
onset.enemies = Enemy incoming, prepare to defend.
onset.defenses = [accent]Set up defenses:[lightgray] {0}
-onset.attack = The enemy is vulnerable. Counter-attack.
+onset.attack = The enemy is vulnerable Nepřítel je zranitelný. Zahaj proti útok.
onset.cores = New cores can be placed on [accent]core tiles[].\nNew cores function as forward bases and share a resource inventory with other cores.\nPlace a \uf725 core.
onset.detect = The enemy will be able to detect you in 2 minutes.\nSet up defenses, mining, and production.
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.
@@ -2160,7 +2206,9 @@ block.vault.description = Ukládá velké množství předmětů od každého ty
block.container.description = Ukládá menší množství předmětů od každého typu. K vyskladnění věcí z kontejneru je možné použít odbavovač.
block.unloader.description = Vyskladňuje vybrané položky z okolních bloků.
block.launch-pad.description = Vysílá dávky předmětů do přilehlých sektorů.
-block.launch-pad.details = Sub-orbital system for point-to-point transportation of resources. Payload pods are fragile and incapable of surviving re-entry.
+block.advanced-launch-pad.description = Vysílá dávky předmětů do vybraných sektorů. Pouze jeden předmět v dávce.
+block.advanced-launch-pad.details = Suborbitální systém pro přepravu zdrojů z bodu do bodu.
+block.landing-pad.description = Přijmá předměty z launchpadů z jiných sektorů. Vyžaduje velké množství vody pro ochranu před dopady.
block.duo.description = Střílí střídavé dávky kulek na nepřátele.
block.scatter.description = Střílí kusy olova, pláty šrotu nebo střepy metaskla na nepřátelské letectvo.
block.scorch.description = Sežehne pozemní jednotky blízkosti. Velmi efektivní na malé vzdálenosti.
@@ -2202,17 +2250,17 @@ block.logic-display.description = Zobrazuje libovolnou grafiku z logického proc
block.large-logic-display.description = Zobrazuje libovolnou grafiku z logického procesoru.
block.interplanetary-accelerator.description = Masivní elektromagnetická věž. Urychlí jádro na únikovou rychlost pro meziplanetární vyslání.
block.repair-turret.description = Nepřetržitě opravuje nejblížší poškozenou jednotku v jeho blízkosti. Lze volitelně dodávat chlazení pro jeho posílení.
-block.core-bastion.description = Core of the base. Armored. Once destroyed, the sector is lost.
-block.core-citadel.description = Core of the base. Very well armored. Stores more resources than a Bastion core.
-block.core-acropolis.description = Core of the base. Exceptionally well armored. Stores more resources than a Citadel core.
-block.breach.description = Fires piercing beryllium or tungsten ammunition at enemy targets.
+block.core-bastion.description = Jádro základny. Obrněné. Pokud je zničeno, sektor je ztracen.
+block.core-citadel.description = Jádro základny. Velmi dobře obrněné. Dokáže držet více předmětů než jádro bastion.
+block.core-acropolis.description = Jádro základny. Mimořádně obrněné. Dokáže držet více předmětů než jádro citadela.
+block.breach.description = Střílí průbojné beryllium nebo tungstenové náboje na nepřátele
block.diffuse.description = Fires a burst of bullets in a wide cone. Pushes enemy targets back.
block.sublimate.description = Fires a continuous jet of flame at enemy targets. Pierces armor.
block.titan.description = Fires a massive explosive artillery shell at ground targets. Requires hydrogen.
block.afflict.description = Fires a massive charged orb of fragmentary flak. Requires heating.
block.disperse.description = Fires bursts of flak at aerial targets.
block.lustre.description = Fires a slow-moving single-target laser at enemy targets.
-block.scathe.description = Launches a powerful missile at ground targets over vast distances.
+block.scathe.description = Vysílá silné střely na pozemní cíle přes velké vzdálenosti.
block.smite.description = Fires bursts of piercing, lightning-emitting bullets.
block.malign.description = Fires a barrage of homing laser charges at enemy targets. Requires extensive heating.
block.silicon-arc-furnace.description = Refines silicon from sand and graphite.
@@ -2243,12 +2291,12 @@ block.reinforced-liquid-tank.description = Stores a large amount of fluids.
block.reinforced-liquid-container.description = Stores a sizeable amount of fluids.
block.reinforced-bridge-conduit.description = Transports fluids over structures and terrain.
block.reinforced-pump.description = Pumps and outputs liquids. Requires hydrogen.
-block.beryllium-wall.description = Protects structures from enemy projectiles.
-block.beryllium-wall-large.description = Protects structures from enemy projectiles.
-block.tungsten-wall.description = Protects structures from enemy projectiles.
-block.tungsten-wall-large.description = Protects structures from enemy projectiles.
-block.carbide-wall.description = Protects structures from enemy projectiles.
-block.carbide-wall-large.description = Protects structures from enemy projectiles.
+block.beryllium-wall.description = Chrání struktury před nepřátelskými projektily.
+block.beryllium-wall-large.description = Chrání struktury před nepřátelskými projektily.
+block.tungsten-wall.description = Chrání struktury před nepřátelskými projektily.
+block.tungsten-wall-large.description = Chrání struktury před nepřátelskými projektily.
+block.carbide-wall.description = Chrání struktury před nepřátelskými projektily.
+block.carbide-wall-large.description = Chrání struktury před nepřátelskými projektily.
block.reinforced-surge-wall.description = Protects structures from enemy projectiles, periodically launching electric arcs upon projectile contact.
block.reinforced-surge-wall-large.description = Protects structures from enemy projectiles, periodically launching electric arcs upon projectile contact.
block.shielded-wall.description = Protects structures from enemy projectiles. Deploys a shield that absorbs most projectiles when power is provided. Conducts power.
@@ -2257,7 +2305,7 @@ block.duct.description = Moves items forward. Only capable of storing a single i
block.armored-duct.description = Moves items forward. Does not accept non-duct inputs from the sides.
block.duct-router.description = Distributes items equally across three directions. Only accepts items from the back side. Can be configured as an item sorter.
block.overflow-duct.description = Only outputs items to the sides if the front path is blocked.
-block.duct-bridge.description = Moves items over structures and terrain.
+block.duct-bridge.description = Přesouvá předměty přes struktury a terén.
block.duct-unloader.description = Unloads the selected item from the block behind it. Cannot unload from cores.
block.underflow-duct.description = Opposite of an overflow duct. Outputs to the front if the left and right paths are blocked.
block.reinforced-liquid-junction.description = Acts as a junction between two crossing conduits.
@@ -2267,6 +2315,7 @@ block.unit-cargo-loader.description = Constructs cargo drones. Drones automatica
block.unit-cargo-unload-point.description = Acts as an unloading point for cargo drones. Accepts items that match the selected filter.
block.beam-node.description = Transmits power to other blocks orthogonally. Stores a small amount of power.
block.beam-tower.description = Transmits power to other blocks orthogonally. Stores a large amount of power. Long-range.
+block.beam-link.description = Transmits power over vast distances.\nOnly capable of connecting to adjacent structures or other beam links.
block.turbine-condenser.description = Generates power when placed on vents. Produces a small amount of water.
block.chemical-combustion-chamber.description = Generates power from arkycite and ozone.
block.pyrolysis-generator.description = Generates large amounts of power from arkycite and slag. Produces water as a byproduct.
@@ -2357,6 +2406,7 @@ unit.emanate.description = Builds structures to defend the Acropolis core. Repai
lst.read = Přečte číslo z připojené paměti.
lst.write = Zapíše číslo do připojené paměti.
lst.print = Přídá text do vypisovacího buferu.\nNezobrazí nic dokud [accent]Print Flush[] je použít.
+lst.printchar = Add a UTF-16 character or content icon to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used.
lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example"
lst.draw = Přídá operaci do vykreslovacího buferu.\nNezobrazí nic dokud [accent]Draw Flush[] je použít.
lst.drawflush = Provede všechny [accent]Draw[] operace na zobrazovač logiky. Pak vyčistí vykreslovací bufer.
@@ -2402,27 +2452,27 @@ lst.localeprint = Add map locale property value to the text buffer.\nTo set map
lglobal.false = 0
lglobal.true = 1
lglobal.null = null
-lglobal.@pi = The mathematical constant pi (3.141...)
-lglobal.@e = The mathematical constant e (2.718...)
+lglobal.@pi = Matematická konstanta pi (3.141...)
+lglobal.@e = Matematická konstanta e (2.718...)
lglobal.@degToRad = Multiply by this number to convert degrees to radians
lglobal.@radToDeg = Multiply by this number to convert radians to degrees
-lglobal.@time = Playtime of current save, in milliseconds
-lglobal.@tick = Playtime of current save, in ticks (1 second = 60 ticks)
-lglobal.@second = Playtime of current save, in seconds
-lglobal.@minute = Playtime of current save, in minutes
-lglobal.@waveNumber = Current wave number, if waves are enabled
-lglobal.@waveTime = Countdown timer for waves, in seconds
-lglobal.@mapw = Map width in tiles
-lglobal.@maph = Map height in tiles
-lglobal.sectionMap = Map
-lglobal.sectionGeneral = General
+lglobal.@time = Odehraný čas stávající uložené hry, v milisekundách
+lglobal.@tick = Odehraný čas stávající uložené hry, v ticích (1 sekunda = 60 tiků)
+lglobal.@second = Odehraný čas stávající uložené hry, v sekundách
+lglobal.@minute = Odehraný čas stávající uložené hry, v minutách
+lglobal.@waveNumber = Aktuální číslo vlny, pokud jsou vlny povoleny
+lglobal.@waveTime = Odpočítávací časovač pro vlny, v sekundách
+lglobal.@mapw = Šířka mapy v dlaždicích
+lglobal.@maph = Výška mapy v dlaždicích
+lglobal.sectionMap = Mapa
+lglobal.sectionGeneral = Obecné
lglobal.sectionNetwork = Network/Clientside [World Processor Only]
-lglobal.sectionProcessor = Processor
-lglobal.sectionLookup = Lookup
-lglobal.@this = The logic block executing the code
-lglobal.@thisx = X coordinate of block executing the code
-lglobal.@thisy = Y coordinate of block executing the code
-lglobal.@links = Total number of blocks linked to this processors
+lglobal.sectionProcessor = Procesor
+lglobal.sectionLookup = Vyhledat
+lglobal.@this = Logický blok vyvolávající kód
+lglobal.@thisx = souřadnice X bloku provádějícího kód
+lglobal.@thisy = souřadnice Y bloku provádějícího kód
+lglobal.@links = Celkový počet bloků propojených s tímto procesorem
lglobal.@ipt = Execution speed of the processor in instructions per tick (60 ticks = 1 second)
lglobal.@unitCount = Total number of types of unit content in the game; used with the lookup instruction
lglobal.@blockCount = Total number of types of block content in the game; used with the lookup instruction
@@ -2444,6 +2494,7 @@ lenum.shootp = Vystřelí na jednotku/budovu s rychlostní předpovědí.
lenum.config = Konfigurace budovy, např. třídící věc pro třídičku.
lenum.enabled = Zda je blok povolen.
laccess.currentammotype = Current ammo item/liquid of a turret.
+laccess.memorycapacity = Počet buněk v paměťovém bloku.
laccess.color = Barva osvětlovače.
laccess.controller = Kontroler jednotky. Pokud procesor je kontrolován, vrátí procesor\nPokud je ve formaci, vrací vůdce.\nJinak vrací jednotku.
@@ -2451,6 +2502,7 @@ laccess.dead = Zda jednotka/budova je mrtvá/zničená nebo již neplatná.
laccess.controlled = Vrací:\n[accent]@ctrlProcessor[] pokud kontroler jednotky je procesor\n[accent]@ctrlPlayer[] pokud kontroloer jednotky/budovy je hráč\n[accent]@ctrlFormation[] pokud jednotka je ve formaci\nJiank, 0.
laccess.progress = Průběh akce, 0 do 1.\nVrací průběh výroby, přebití věže nebo stavby.
laccess.speed = Top speed of a unit, in tiles/sec.
+laccess.size = Size of a unit/building or the length of a string.
laccess.id = ID of a unit/block/item/liquid.\nThis is the inverse of the lookup operation.
lcategory.unknown = Neznámé
lcategory.unknown.description = Nezařazené instrukce.
@@ -2460,10 +2512,10 @@ lcategory.block = Ovládaní Bloku
lcategory.block.description = Interaktovat s bloky.
lcategory.operation = Operace
lcategory.operation.description = Logické operace.
-lcategory.control = Flow Control
-lcategory.control.description = Manage execution order.
-lcategory.unit = Unit Control
-lcategory.unit.description = Give units commands.
+lcategory.control = Kontrola proudu
+lcategory.control.description = Spravovat pořadí vyvolávání
+lcategory.unit = Kontrola jednotky
+lcategory.unit.description = Dát jednotkám příkazy
lcategory.world = Svět
lcategory.world.description = Ovládá, jak se svět chová.
@@ -2487,8 +2539,8 @@ lenum.mod = Modulo (Vydělí 2 hodnoty a vrací zbytek).
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ý-shift vlevo.
-lenum.shr = Bitový-shift vpravo.
+lenum.shl = Bitový posun vlevo.
+lenum.shr = Bitový posun vpravo.
lenum.or = Bitový OR.
lenum.land = Logický AND.
lenum.and = Bitový AND.
@@ -2595,3 +2647,29 @@ lenum.autoscale = Whether to scale marker corresponding to player's zoom level.
lenum.posi = Indexed position, used for line and quad markers with index zero being the first position.
lenum.uvi = Texture's position ranging from zero to one, used for quad markers.
lenum.colori = Indexed position, used for line and quad markers with index zero being the first color.
+lenum.wavetimer = Whether the waves come automatically on a timer. If not, waves come when the play button is pressed.
+lenum.wave = Current wave number. Can be anything in non-wave modes.
+lenum.currentwavetime = Wave countdown in ticks.
+lenum.waves = Whether waves are spawnable at all.
+lenum.wavesending = Whether the waves can be manually summoned with the play button.
+lenum.attackmode = Determines if gamemode is attack mode.
+lenum.wavespacing = Time between waves in ticks.
+lenum.enemycorebuildradius = No-build zone around enemy core radius.
+lenum.dropzoneradius = Radius around enemy wave drop zones.
+lenum.unitcap = Base unit cap. Can still be increased by blocks.
+lenum.lighting = Whether ambient lighting is enabled.
+lenum.buildspeed = Multiplier for building speed.
+lenum.unithealth = How much health units start with.
+lenum.unitbuildspeed = How fast unit factories build units.
+lenum.unitcost = Multiplier of resources that units take to build.
+lenum.unitdamage = Kolik poškození jednotky vydávají
+lenum.blockhealth = How much health blocks start with.
+lenum.blockdamage = How much damage blocks (turrets) deal.
+lenum.rtsminweight = Minimum "advantage" needed for a squad to attack. Higher -> more cautious.
+lenum.rtsminsquad = Minimum size of attack squads.
+lenum.maparea = Playable map area. Anything outside the area will not be interactable.
+lenum.ambientlight = Ambient light color. Used when lighting is enabled.
+lenum.solarmultiplier = Násobí výstup energie z solárních panelů.
+lenum.dragmultiplier = Environment drag multiplier.
+lenum.ban = Bloky nebo jednotky, které nemohou být umístěny nebo postaveny.
+lenum.unban = Povolit jednotku nebo blok.
diff --git a/core/assets/bundles/bundle_da.properties b/core/assets/bundles/bundle_da.properties
index 5c183ae4fd..4a3b9881c0 100644
--- a/core/assets/bundles/bundle_da.properties
+++ b/core/assets/bundles/bundle_da.properties
@@ -128,6 +128,7 @@ done = Færdig
feature.unsupported = Din enhed understøtter ikke denne funktion
mods.initfailed = [red]⚠[] The previous Mindustry instance failed to initialize. This was likely caused by misbehaving mods.\n\nTo prevent a crash loop, [red]all mods have been disabled.[]
mods = Mods
+mods.name = Mod:
mods.none = [LIGHT_GRAY]Ingen mods fundet!
mods.guide = Modding-guide
mods.report = Rapportér fejl
@@ -152,7 +153,7 @@ mod.erroredcontent = [scarlet]Indholds fejl
mod.circulardependencies = [red]Circular Dependencies
mod.incompletedependencies = [red]Incomplete Dependencies
mod.requiresversion.details = Requires game version: [accent]{0}[]\nYour game is outdated. This mod requires a newer version of the game (possibly a beta/alpha release) to function.
-mod.outdatedv7.details = This mod is incompatible with the latest version of the game. The author must update it, and add [accent]minGameVersion: 136[] to its [accent]mod.json[] file.
+mod.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 = This mod has been manually blacklisted for causing crashes or other issues with this version of the game. Do not use it.
mod.missingdependencies.details = This mod is missing dependencies: {0}
mod.erroredcontent.details = This game caused errors when loading. Ask the mod author to fix them.
@@ -161,7 +162,6 @@ mod.incompletedependencies.details = This mod is unable to be loaded due to inva
mod.requiresversion = Requires game version: [red]{0}
mod.errors = Fejl ved afhentning af indhold.
mod.noerrorplay = [scarlet]Du har mods med fejl.[] Deaktiver det eller løs fejl før du starter spillet.
-mod.nowdisabled = [scarlet]Mod '{0}' mangler afhængigheder:[accent] {1}\n[lightgray]Disse mods skal hentes først.\nDenne mod vil blive deaktiveret automatisk.
mod.enable = Aktiver
mod.requiresrestart = Spillet vil nu lukke for at tilføje mod ændringerne
mod.reloadrequired = [scarlet]Genindlæsning påkrævet
@@ -176,6 +176,15 @@ mod.missing = Dette spil benytter mods som ikke er tilgængelige. Er du sikker p
mod.preview.missing = Før du offentliggøre dette mod i workshoppen, skal du tilføje et billede.\nPlacer billedet i moddets mappe under navnet [accent] preview.png[] og forsøg igen.
mod.folder.missing = Kun mods i mappe-form kan offentliggøres til workshoppen.\nFor at konverter etvært mod til en mappe, udpak .zip-filen i en mappe and slet den herefter, genstart efterfølgende dit spil eller genindlæs dine mods.
mod.scripts.disable = Your device does not support mods with scripts. You must disable these mods to play the game.
+mod.dependencies.error = [scarlet]Mods are missing dependencies
+mod.dependencies.soft = (optional)
+mod.dependencies.download = Import
+mod.dependencies.downloadreq = Import Required
+mod.dependencies.downloadall = Import All
+mod.dependencies.status = Import Results
+mod.dependencies.success = Successfully downloaded:
+mod.dependencies.failure = Failed to download:
+mod.dependencies.imported = This mod requires dependencies. Download?
about.button = Om
name = Navn:
@@ -291,6 +300,7 @@ disconnect.error = Forbindelsesfejl.
disconnect.closed = Forbindelse afbrudt.
disconnect.timeout = Maksimal ventetid overskredet.
disconnect.data = Kunne ikke indlæse bane-data!
+disconnect.snapshottimeout = Timed out while receiving UDP snapshots.\nThis may be caused by an unstable network or connection.
cantconnect = Kunne ikke deltage i spil ([accent]{0}[]).
connecting = [accent]Forbinder...
reconnecting = [accent]Reconnecting...
@@ -459,6 +469,7 @@ editor.shiftx = Shift X
editor.shifty = Shift Y
workshop = Workshop
waves.title = Bølger
+waves.team = Team
waves.remove = Fjern
waves.every = hver
waves.waves = bølge(r)
@@ -706,14 +717,18 @@ loadout = Udrustning
resources = Resurser
resources.max = Max
bannedblocks = Banlyste blokke
+unbannedblocks = Unbanned Blocks
objectives = Objectives
bannedunits = Banned Units
+unbannedunits = Unbanned Units
bannedunits.whitelist = Banned Units As Whitelist
bannedblocks.whitelist = Banned Blocks As Whitelist
addall = Tilføj alle
launch.from = Launching From: [accent]{0}
launch.capacity = Launching Item Capacity: [accent]{0}
launch.destination = Destination: {0}
+landing.sources = Source Sectors: [accent]{0}[]
+landing.import = Max Total Import: {0}[accent]{1}[lightgray]/min
configure.invalid = Mængde skal være mellem 0 og {0}.
add = Tilføj...
guardian = Guardian
@@ -752,7 +767,9 @@ sectors.stored = Stored:
sectors.resume = Genoptag
sectors.launch = Affyr
sectors.select = Vælg
+sectors.launchselect = Select Launch Destination
sectors.nonelaunch = [lightgray]ingen (solen)
+sectors.redirect = Redirect Launch Pads
sectors.rename = Omdøb sektor
sectors.enemybase = [scarlet]Enemy Base
sectors.vulnerable = [scarlet]Vulnerable
@@ -783,6 +800,10 @@ difficulty.easy = Easy
difficulty.normal = Normal
difficulty.hard = Hard
difficulty.eradication = Eradication
+difficulty.enemyHealthMultiplier = Enemy Health: {0}
+difficulty.enemySpawnMultiplier = Enemy Amount: {0}
+difficulty.waveTimeMultiplier = Wave Timer: {0}
+difficulty.nomodifiers = [lightgray](No modifiers)
planets = Planets
planet.serpulo.name = Serpulo
@@ -1012,6 +1033,7 @@ stat.buildspeedmultiplier = Build Speed Multiplier
stat.reactive = Reacts
stat.immunities = Immunities
stat.healing = Healing
+stat.efficiency = [stat]{0}% Efficiency
ability.forcefield = Kraftfelt
ability.forcefield.description = Projects a force shield that absorbs bullets
@@ -1059,6 +1081,7 @@ ability.stat.buildtime = [stat]{0} sec[lightgray] build time
bar.onlycoredeposit = Only Core Depositing Allowed
bar.drilltierreq = Kræver bedre bor
+bar.nobatterypower = Insufficieny Battery Power
bar.noresources = Mangler resurser
bar.corereq = Kerne påkrævet
bar.corefloor = Core Zone Tile Required
@@ -1067,6 +1090,7 @@ bar.drillspeed = Borehastighed: {0}/s
bar.pumpspeed = Pumpehastighed: {0}/s
bar.efficiency = Effektivitet: {0}%
bar.boost = Boost: +{0}%
+bar.powerbuffer = Battery Power: {0}/{1}
bar.powerbalance = Strøm: {0}/s
bar.powerstored = Gemt: {0}/{1}
bar.poweramount = Strøm: {0}
@@ -1077,6 +1101,7 @@ bar.capacity = Kapacitet: {0}
bar.unitcap = {0} {1}/{2}
bar.liquid = Væske
bar.heat = Varme
+bar.cooldown = Cooldown
bar.instability = Instability
bar.heatamount = Heat: {0}
bar.heatpercent = Heat: {0} ({1}%)
@@ -1101,6 +1126,7 @@ bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
bullet.frags = [stat]{0}[lightgray]x frag bullets:
bullet.lightning = [stat]{0}[lightgray]x lightning ~ [stat]{1}[lightgray] damage
bullet.buildingdamage = [stat]{0}%[lightgray] building damage
+bullet.shielddamage = [stat]{0}%[lightgray] shield damage
bullet.knockback = [stat]{0}[lightgray] tilbageslag
bullet.pierce = [stat]{0}[lightgray]x gennemboring
bullet.infinitepierce = [stat]gennemboring
@@ -1127,6 +1153,7 @@ unit.minutes = minutter
unit.persecond = /sek
unit.perminute = /min
unit.timesspeed = x hastighed
+unit.multiplier = x
unit.percent = %
unit.shieldhealth = skjoldhelbred
unit.items = genstande
@@ -1203,11 +1230,13 @@ setting.mutemusic.name = Forstum musik
setting.sfxvol.name = SFX-volumen
setting.mutesound.name = Forstum lyde
setting.crashreport.name = Send anonyme fejlrapporter
+setting.communityservers.name = Fetch Community Server List
setting.savecreate.name = Gem automatisk
setting.steampublichost.name = Public Game Visibility
setting.playerlimit.name = Spiller-grænse
setting.chatopacity.name = Chat-gennemsigtighed
setting.lasersopacity.name = Strøm-laser-gennemsigtighed
+setting.unitlaseropacity.name = Unit Mining Beam Opacity
setting.bridgeopacity.name = Bro-gennemsigtighed
setting.playerchat.name = Vis spillers bobbel-chat
setting.showweather.name = Show Weather Graphics
@@ -1216,6 +1245,9 @@ setting.macnotch.name = Tilpas grænsefladen til at vise hak
setting.macnotch.description = Genstart påkrævet for at anvende ændringer
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.
public.beta = Bemærk at beta-versioner af spillet ikke kan tilslutte sig offentlige spil.
uiscale.reset = UI-størrelsen har ændret sig.\nTryk "OK" for at bekræfte størrelsen.\n[scarlet]Omgør og afslutter om[accent] {0}[] sekunder...
uiscale.cancel = Afblæs & Afslut
@@ -1296,6 +1328,7 @@ keybind.shoot.name = Skyd
keybind.zoom.name = Zoom
keybind.menu.name = Menu
keybind.pause.name = Pause
+keybind.skip_wave.name = Skip Wave
keybind.pause_building.name = Pause/Genoptag bygning
keybind.minimap.name = Minikort
keybind.planet_map.name = Planet Map
@@ -1363,12 +1396,14 @@ rules.unitcostmultiplier = Unit Cost Multiplier
rules.unithealthmultiplier = Enheds-helbreds-forstærker
rules.unitdamagemultiplier = Enheds-skade-forstærker
rules.unitcrashdamagemultiplier = Unit Crash Damage Multiplier
+rules.unitminespeedmultiplier = Unit Mine Speed Multiplier
rules.solarmultiplier = Solar Power Multiplier
rules.unitcapvariable = Cores Contribute To Unit Cap
rules.unitpayloadsexplode = Carried Payloads Explode With The Unit
rules.unitcap = Base Unit Cap
rules.limitarea = Limit Map Area
rules.enemycorebuildradius = Radius af fjendtlig kernes ubebyggelig zone:[lightgray] (felter)
+rules.extracorebuildradius = Extra No-Build Radius:[lightgray] (tiles)
rules.wavespacing = Bølge spredning:[lightgray] (sek)
rules.initialwavespacing = Initial Wave Spacing:[lightgray] (sec)
rules.buildcostmultiplier = Byggepris-forstærker
@@ -1391,6 +1426,9 @@ rules.title.planet = Planet
rules.lighting = Lys
rules.fog = Fog of War
rules.invasions = Enemy Sector Invasions
+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.fire = Ild
@@ -1707,6 +1745,8 @@ block.meltdown.name = Meltdown
block.foreshadow.name = Foreshadow
block.container.name = Beholder
block.launch-pad.name = Affyringsrampe
+block.advanced-launch-pad.name = Launch Pad
+block.landing-pad.name = Landing Pad
block.segment.name = Segment
block.ground-factory.name = Fodgænger-fabrik
block.air-factory.name = Flyver-fabrik
@@ -1762,6 +1802,8 @@ block.arkyic-vent.name = Arkyic Vent
block.yellow-stone-vent.name = Yellow Stone Vent
block.red-stone-vent.name = Red Stone Vent
block.crystalline-vent.name = Crystalline Vent
+block.stone-vent.name = Stone Vent
+block.basalt-vent.name = Basalt Vent
block.redmat.name = Redmat
block.bluemat.name = Bluemat
block.core-zone.name = Core Zone
@@ -1915,77 +1957,77 @@ hint.respawn = To respawn as a ship, press [accent][[V][].
hint.respawn.mobile = You have switched control to a unit/structure. To respawn as a ship, [accent]tap the avatar in the top left.[]
hint.desktopPause = Press [accent][[Space][] to pause and unpause the game.
hint.breaking = [accent]Right-click[] and drag to break blocks.
-hint.breaking.mobile = Activate the \ue817 [accent]hammer[] in the bottom right and tap to break blocks.\n\nHold down your finger for a second and drag to break in a selection.
+hint.breaking.mobile = Activate the :hammer: [accent]hammer[] in the bottom right and tap to break blocks.\n\nHold down your finger for a second and drag to break in a selection.
hint.blockInfo = View information of a block by selecting it in the [accent]build menu[], then selecting the [accent][[?][] button at the right.
hint.derelict = [accent]Derelict[] structures are broken remnants of old bases that no longer function.\n\nThese structures can be [accent]deconstructed[] for resources.
-hint.research = Use the \ue875 [accent]Research[] button to research new technology.
-hint.research.mobile = Use the \ue875 [accent]Research[] button in the \ue88c [accent]Menu[] to research new technology.
+hint.research = Use the :tree: [accent]Research[] button to research new technology.
+hint.research.mobile = Use the :tree: [accent]Research[] button in the :menu: [accent]Menu[] to research new technology.
hint.unitControl = Hold [accent][[L-ctrl][] and [accent]click[] to control friendly units or turrets.
hint.unitControl.mobile = [accent][[Double-tap][] to control friendly units or turrets.
hint.unitSelectControl = To control units, enter [accent]command mode[] by holding [accent]L-shift.[]\nWhile in command mode, click and drag to select units. [accent]Right-click[] a location or target to command units there.
hint.unitSelectControl.mobile = To control units, enter [accent]command mode[] by pressing the [accent]command[] button in the bottom left.\nWhile in command mode, long-press and drag to select units. Tap a location or target to command units there.
-hint.launch = Once enough resources are collected, you can [accent]Launch[] by selecting nearby sectors from the \ue827 [accent]Map[] in the bottom right.
-hint.launch.mobile = Once enough resources are collected, you can [accent]Launch[] by selecting nearby sectors from the \ue827 [accent]Map[] in the \ue88c [accent]Menu[].
+hint.launch = Once enough resources are collected, you can [accent]Launch[] by selecting nearby sectors from the :map: [accent]Map[] in the bottom right.
+hint.launch.mobile = Once enough resources are collected, you can [accent]Launch[] by selecting nearby sectors from the :map: [accent]Map[] in the :menu: [accent]Menu[].
hint.schematicSelect = Hold [accent][[F][] and drag to select blocks to copy and paste.\n\n[accent][[Middle Click][] to copy a single block type.
hint.rebuildSelect = Hold [accent][[B][] and drag to select destroyed block plans.\nThis will rebuild them automatically.
-hint.rebuildSelect.mobile = Select the \ue874 copy button, then tap the \ue80f rebuild button and drag to select destroyed block plans.\nThis will rebuild them automatically.
+hint.rebuildSelect.mobile = Select the :copy: copy button, then tap the :wrench: rebuild button and drag to select destroyed block plans.\nThis will rebuild them automatically.
hint.conveyorPathfind = Hold [accent][[L-Ctrl][] while dragging conveyors to automatically generate a path.
-hint.conveyorPathfind.mobile = Enable \ue844 [accent]diagonal mode[] and drag conveyors to automatically generate a path.
+hint.conveyorPathfind.mobile = Enable :diagonal: [accent]diagonal mode[] and drag conveyors to automatically generate a path.
hint.boost = Hold [accent][[L-Shift][] to fly over obstacles with your current unit.\n\nOnly a few ground units have boosters.
hint.payloadPickup = Press [accent][[[] to pick up small blocks or units.
hint.payloadPickup.mobile = [accent]Tap and hold[] a small block or unit to pick it up.
hint.payloadDrop = Press [accent]][] to drop a payload.
hint.payloadDrop.mobile = [accent]Tap and hold[] an empty location to drop a payload there.
hint.waveFire = [accent]Wave[] turrets with water as ammunition will automatically put out nearby fires.
-hint.generator = \uf879 [accent]Combustion Generators[] burn coal and transmit power to adjacent blocks.\n\nPower transmission range can be extended with \uf87f [accent]Power Nodes[].
-hint.guardian = [accent]Guardian[] units are armored. Weak ammo such as [accent]Copper[] and [accent]Lead[] is [scarlet]not effective[].\n\nUse higher tier turrets or \uf835 [accent]Graphite[] \uf861Duo/\uf859Salvo ammunition to take Guardians down.
-hint.coreUpgrade = Cores can be upgraded by [accent]placing higher-tier cores over them[].\n\nPlace a \uf868 [accent]Foundation[] core over the \uf869 [accent]Shard[] core. Make sure it is free from nearby obstructions.
+hint.generator = :combustion-generator: [accent]Combustion Generators[] burn coal and transmit power to adjacent blocks.\n\nPower transmission range can be extended with :power-node: [accent]Power Nodes[].
+hint.guardian = [accent]Guardian[] units are armored. Weak ammo such as [accent]Copper[] and [accent]Lead[] is [scarlet]not effective[].\n\nUse higher tier turrets or :graphite: [accent]Graphite[] :duo:Duo/:salvo:Salvo ammunition to take Guardians down.
+hint.coreUpgrade = Cores can be upgraded by [accent]placing higher-tier cores over them[].\n\nPlace a :core-foundation: [accent]Foundation[] core over the :core-shard: [accent]Shard[] core. Make sure it is free from nearby obstructions.
hint.presetLaunch = Gray [accent]landing zone sectors[], such as [accent]Frozen Forest[], can be launched to from anywhere. They do not require capture of nearby territory.\n\n[accent]Numbered sectors[], such as this one, are [accent]optional[].
hint.presetDifficulty = This sector has a [scarlet]high enemy threat level[].\nLaunching to such sectors is [accent]not recommended[] without proper technology and preparation.
hint.coreIncinerate = After the core is filled to capacity with an item, any extra items of that type it receives will be [accent]incinerated[].
hint.factoryControl = To set a unit factory's [accent]output destination[], click a factory block while in command mode, then right-click a location.\nUnits produced by it will automatically move there.
hint.factoryControl.mobile = To set a unit factory's [accent]output destination[], tap a factory block while in command mode, then tap a location.\nUnits produced by it will automatically move there.
-gz.mine = Move near the \uf8c4 [accent]copper ore[] on the ground and click to begin mining.
-gz.mine.mobile = Move near the \uf8c4 [accent]copper ore[] on the ground and tap it to begin mining.
-gz.research = Open the \ue875 tech tree.\nResearch the \uf870 [accent]Mechanical Drill[], then select it from the menu in the bottom right.\nClick on a copper patch to place it.
-gz.research.mobile = Open the \ue875 tech tree.\nResearch the \uf870 [accent]Mechanical Drill[], then select it from the menu in the bottom right.\nTap on a copper patch to place it.\n\nPress the \ue800 [accent]checkmark[] at the bottom right to confirm.
-gz.conveyors = Research and place \uf896 [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nClick and drag to place multiple conveyors.\n[accent]Scroll[] to rotate.
-gz.conveyors.mobile = Research and place \uf896 [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nHold down your finger for a second and drag to place multiple conveyors.
+gz.mine = Move near the :ore-copper: [accent]copper ore[] on the ground and click to begin mining.
+gz.mine.mobile = Move near the :ore-copper: [accent]copper ore[] on the ground and tap it to begin mining.
+gz.research = Open the :tree: tech tree.\nResearch the :mechanical-drill: [accent]Mechanical Drill[], then select it from the menu in the bottom right.\nClick on a copper patch to place it.
+gz.research.mobile = Open the :tree: tech tree.\nResearch the :mechanical-drill: [accent]Mechanical Drill[], then select it from the menu in the bottom right.\nTap on a copper patch to place it.\n\nPress the \ue800 [accent]checkmark[] at the bottom right to confirm.
+gz.conveyors = Research and place :conveyor: [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nClick and drag to place multiple conveyors.\n[accent]Scroll[] to rotate.
+gz.conveyors.mobile = Research and place :conveyor: [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nHold down your finger for a second and drag to place multiple conveyors.
gz.drills = Expand the mining operation.\nPlace more Mechanical Drills.\nMine 100 copper.
-gz.lead = \uf837 [accent]Lead[] is another commonly used resource.\nSet up drills to mine lead.
-gz.moveup = \ue804 Move up for further objectives.
-gz.turrets = Research and place 2 \uf861 [accent]Duo[] turrets to defend the core.\nDuo turrets require \uf838 [accent]ammo[] from conveyors.
+gz.lead = :lead: [accent]Lead[] is another commonly used resource.\nSet up drills to mine lead.
+gz.moveup = :up: Move up for further objectives.
+gz.turrets = Research and place 2 :duo: [accent]Duo[] turrets to defend the core.\nDuo turrets require \uf838 [accent]ammo[] from conveyors.
gz.duoammo = Supply the Duo turrets with [accent]copper[], using conveyors.
-gz.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace \uf8ae [accent]copper walls[] around the turrets.
+gz.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace :copper-wall: [accent]copper walls[] around the turrets.
gz.defend = Enemy incoming, prepare to defend.
-gz.aa = Flying units cannot easily be dispatched with standard turrets.\n\uf860 [accent]Scatter[] turrets provide excellent anti-air, but require \uf837 [accent]lead[] as ammo.
+gz.aa = Flying units cannot easily be dispatched with standard turrets.\n:scatter: [accent]Scatter[] turrets provide excellent anti-air, but require :lead: [accent]lead[] as ammo.
gz.scatterammo = Supply the Scatter turret with [accent]lead[], using conveyors.
gz.supplyturret = [accent]Supply Turret
gz.zone1 = This is the enemy drop zone.
gz.zone2 = Anything built in the radius is destroyed when a wave starts.
gz.zone3 = A wave will begin now.\nGet ready.
gz.finish = Build more turrets, mine more resources,\nand defend against all the waves to [accent]capture the sector[].
-onset.mine = Click to mine \uf748 [accent]beryllium[] from walls.\n\nUse [accent][[WASD] to move.
-onset.mine.mobile = Tap to mine \uf748 [accent]beryllium[] from walls.
-onset.research = Open the \ue875 tech tree.\nResearch, then place a \uf73e [accent]turbine condenser[] on the vent.\nThis will generate [accent]power[].
-onset.bore = Research and place a \uf741 [accent]plasma bore[].\nThis automatically mines resources from walls.
-onset.power = To [accent]power[] the plasma bore, research and place a \uf73d [accent]beam node[].\nConnect the turbine condenser to the plasma bore.
-onset.ducts = Research and place \uf799 [accent]ducts[] to move the mined resources from the plasma bore to the core.\nClick and drag to place multiple ducts.\n[accent]Scroll[] to rotate.
-onset.ducts.mobile = Research and place \uf799 [accent]ducts[] to move the mined resources from the plasma bore to the core.\n\nHold down your finger for a second and drag to place multiple ducts.
+onset.mine = Click to mine :beryllium: [accent]beryllium[] from walls.\n\nUse [accent][[WASD] to move.
+onset.mine.mobile = Tap to mine :beryllium: [accent]beryllium[] from walls.
+onset.research = Open the :tree: tech tree.\nResearch, then place a :turbine-condenser: [accent]turbine condenser[] on the vent.\nThis will generate [accent]power[].
+onset.bore = Research and place a :plasma-bore: [accent]plasma bore[].\nThis automatically mines resources from walls.
+onset.power = To [accent]power[] the plasma bore, research and place a :beam-node: [accent]beam node[].\nConnect the turbine condenser to the plasma bore.
+onset.ducts = Research and place :duct: [accent]ducts[] to move the mined resources from the plasma bore to the core.\nClick and drag to place multiple ducts.\n[accent]Scroll[] to rotate.
+onset.ducts.mobile = Research and place :duct: [accent]ducts[] to move the mined resources from the plasma bore to the core.\n\nHold down your finger for a second and drag to place multiple ducts.
onset.moremine = Expand the mining operation.\nPlace more Plasma Bores and use beam nodes and ducts to support them.\nMine 200 beryllium.
-onset.graphite = More complex blocks require \uf835 [accent]graphite[].\nSet up plasma bores to mine graphite.
-onset.research2 = Begin researching [accent]factories[].\nResearch the \uf74d [accent]cliff crusher[] and \uf779 [accent]silicon arc furnace[].
-onset.arcfurnace = The arc furnace needs \uf834 [accent]sand[] and \uf835 [accent]graphite[] to create \uf82f [accent]silicon[].\n[accent]Power[] is also required.
-onset.crusher = Use \uf74d [accent]cliff crushers[] to mine sand.
-onset.fabricator = Use [accent]units[] to explore the map, defend buildings, and attack the enemy. Research and place a \uf6a2 [accent]tank fabricator[].
+onset.graphite = More complex blocks require :graphite: [accent]graphite[].\nSet up plasma bores to mine graphite.
+onset.research2 = Begin researching [accent]factories[].\nResearch the :cliff-crusher: [accent]cliff crusher[] and :silicon-arc-furnace: [accent]silicon arc furnace[].
+onset.arcfurnace = The arc furnace needs :sand: [accent]sand[] and :graphite: [accent]graphite[] to create :silicon: [accent]silicon[].\n[accent]Power[] is also required.
+onset.crusher = Use :cliff-crusher: [accent]cliff crushers[] to mine sand.
+onset.fabricator = Use [accent]units[] to explore the map, defend buildings, and attack the enemy. Research and place a :tank-fabricator: [accent]tank fabricator[].
onset.makeunit = Produce a unit.\nUse the "?" button to see selected factory requirements.
-onset.turrets = Units are effective, but [accent]turrets[] provide better defensive capabilities if used effectively.\nPlace a \uf6eb [accent]Breach[] turret.\nTurrets require \uf748 [accent]ammo[].
+onset.turrets = Units are effective, but [accent]turrets[] provide better defensive capabilities if used effectively.\nPlace a :breach: [accent]Breach[] turret.\nTurrets require :beryllium: [accent]ammo[].
onset.turretammo = Supply the turret with [accent]beryllium ammo.[]
-onset.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace some \uf6ee [accent]beryllium walls[] around the turret.
+onset.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace some :beryllium-wall: [accent]beryllium walls[] around the turret.
onset.enemies = Enemy incoming, prepare to defend.
onset.defenses = [accent]Set up defenses:[lightgray] {0}
onset.attack = The enemy is vulnerable. Counter-attack.
-onset.cores = New cores can be placed on [accent]core tiles[].\nNew cores function as forward bases and share a resource inventory with other cores.\nPlace a \uf725 core.
+onset.cores = New cores can be placed on [accent]core tiles[].\nNew cores function as forward bases and share a resource inventory with other cores.\nPlace a :core-bastion: core.
onset.detect = The enemy will be able to detect you in 2 minutes.\nSet up defenses, mining, and production.
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.
@@ -2143,7 +2185,9 @@ block.vault.description = Opbevarer en masse genstande. En aflæsser-blok kan br
block.container.description = Opbevarer en lille mængde genstande. En aflæsser-blok kan bruges til at hive ting ud af en container.
block.unloader.description = Aflæsser genstande fra sidestående blokke. Typen af blok, der skal aflæsses kan justeres.
block.launch-pad.description = Affyrer samlinger af genstande løbende. Kræver ikke affyring af kernen.
-block.launch-pad.details = Sub-orbital system for point-to-point transportation of resources. Payload pods are fragile and incapable of surviving re-entry.
+block.advanced-launch-pad.description = Launches batches of items to selected sectors. Only accepts one item type at a time.
+block.advanced-launch-pad.details = Sub-orbital system for point-to-point transportation of resources.
+block.landing-pad.description = Receives items from launch pads in other sectors. Requires large amounts of water to protect against impacts of landings.
block.duo.description = En bette, billig kanon. Effektiv mod fodgængere.
block.scatter.description = Et vigtigt luftangreb. Skyder klumper af skud mod flyvere.
block.scorch.description = Brænder alle forbipasserende fodgængere. Meget god til hvad den gør.
@@ -2250,6 +2294,7 @@ block.unit-cargo-loader.description = Constructs cargo drones. Drones automatica
block.unit-cargo-unload-point.description = Acts as an unloading point for cargo drones. Accepts items that match the selected filter.
block.beam-node.description = Transmits power to other blocks orthogonally. Stores a small amount of power.
block.beam-tower.description = Transmits power to other blocks orthogonally. Stores a large amount of power. Long-range.
+block.beam-link.description = Transmits power over vast distances.\nOnly capable of connecting to adjacent structures or other beam links.
block.turbine-condenser.description = Generates power when placed on vents. Produces a small amount of water.
block.chemical-combustion-chamber.description = Generates power from arkycite and ozone.
block.pyrolysis-generator.description = Generates large amounts of power from arkycite and slag. Produces water as a byproduct.
@@ -2338,6 +2383,7 @@ unit.emanate.description = Builds structures to defend the Acropolis core. Repai
lst.read = Read a number from a linked memory cell.
lst.write = Write a number to a linked memory cell.
lst.print = Add text to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used.
+lst.printchar = Add a UTF-16 character or content icon to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used.
lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example"
lst.draw = Add an operation to the drawing buffer.\nDoes not display anything until [accent]Draw Flush[] is used.
lst.drawflush = Flush queued [accent]Draw[] operations to a display.
@@ -2423,12 +2469,14 @@ lenum.shootp = Shoot at a unit/building with velocity prediction.
lenum.config = Building configuration, e.g. sorter item.
lenum.enabled = Whether the block is enabled.
laccess.currentammotype = Current ammo item/liquid of a turret.
+laccess.memorycapacity = Number of cells in a memory block.
laccess.color = Illuminator color.
laccess.controller = Unit controller. If processor controlled, returns processor.\nIf in a formation, returns leader.\nOtherwise, returns the unit itself.
laccess.dead = Whether a unit/building is dead or no longer valid.
laccess.controlled = Returns:\n[accent]@ctrlProcessor[] if unit controller is processor\n[accent]@ctrlPlayer[] if unit/building controller is player\n[accent]@ctrlFormation[] if unit is in formation\nOtherwise, 0.
laccess.progress = Action progress, 0 to 1.\nReturns production, turret reload or construction progress.
laccess.speed = Top speed of a unit, in tiles/sec.
+laccess.size = Size of a unit/building or the length of a string.
laccess.id = ID of a unit/block/item/liquid.\nThis is the inverse of the lookup operation.
lcategory.unknown = Unknown
lcategory.unknown.description = Uncategorized instructions.
@@ -2557,3 +2605,29 @@ lenum.autoscale = Whether to scale marker corresponding to player's zoom level.
lenum.posi = Indexed position, used for line and quad markers with index zero being the first position.
lenum.uvi = Texture's position ranging from zero to one, used for quad markers.
lenum.colori = Indexed position, used for line and quad markers with index zero being the first color.
+lenum.wavetimer = Whether the waves come automatically on a timer. If not, waves come when the play button is pressed.
+lenum.wave = Current wave number. Can be anything in non-wave modes.
+lenum.currentwavetime = Wave countdown in ticks.
+lenum.waves = Whether waves are spawnable at all.
+lenum.wavesending = Whether the waves can be manually summoned with the play button.
+lenum.attackmode = Determines if gamemode is attack mode.
+lenum.wavespacing = Time between waves in ticks.
+lenum.enemycorebuildradius = No-build zone around enemy core radius.
+lenum.dropzoneradius = Radius around enemy wave drop zones.
+lenum.unitcap = Base unit cap. Can still be increased by blocks.
+lenum.lighting = Whether ambient lighting is enabled.
+lenum.buildspeed = Multiplier for building speed.
+lenum.unithealth = How much health units start with.
+lenum.unitbuildspeed = How fast unit factories build units.
+lenum.unitcost = Multiplier of resources that units take to build.
+lenum.unitdamage = How much damage units deal.
+lenum.blockhealth = How much health blocks start with.
+lenum.blockdamage = How much damage blocks (turrets) deal.
+lenum.rtsminweight = Minimum "advantage" needed for a squad to attack. Higher -> more cautious.
+lenum.rtsminsquad = Minimum size of attack squads.
+lenum.maparea = Playable map area. Anything outside the area will not be interactable.
+lenum.ambientlight = Ambient light color. Used when lighting is enabled.
+lenum.solarmultiplier = Multiplies power output of solar panels.
+lenum.dragmultiplier = Environment drag multiplier.
+lenum.ban = Blocks or units that cannot be placed or built.
+lenum.unban = Unban a unit or block.
diff --git a/core/assets/bundles/bundle_de.properties b/core/assets/bundles/bundle_de.properties
index d878eb1143..4a9458e193 100644
--- a/core/assets/bundles/bundle_de.properties
+++ b/core/assets/bundles/bundle_de.properties
@@ -57,7 +57,7 @@ mods.browser.sortstars = Nach Sternen sortieren
schematic = Entwurf
schematic.add = Entwurf speichern...
schematics = Entwürfe
-schematic.search = Search schematics...
+schematic.search = Suche nach Entwürfen...
schematic.replace = Es gibt bereits einen Entwurf mit diesem Namen. Diesen ersetzen?
schematic.exists = Es gibt schon einen Entwurf mit diesem Namen.
schematic.import = Entwurf importieren...
@@ -70,7 +70,7 @@ schematic.shareworkshop = Im Workshop teilen
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Entwurf umkehren
schematic.saved = Entwurf gespeichert.
schematic.delete.confirm = Dieser Entwurf wird vollständig vernichtet.
-schematic.edit = Edit Schematic
+schematic.edit = Entwurf bearbeiten
schematic.info = {0}x{1}, {2} Blöcke
schematic.disabled = [scarlet]Entwürfe deaktiviert[]\nAuf dieser [accent]Karte[] oder [accent]Server[] dürfen keine Entwürfe verwendet werden.
schematic.tags = Tags:
@@ -131,6 +131,7 @@ feature.unsupported = Dein System unterstützt dieses Feature nicht.
mods.initfailed = [red]⚠[] Die vorherige Mindustry-Instanz konnte nicht starten. Dies lag wahrscheinlich an fehlerhaften Mods.\n\nDamit das Spiel starten kann, [red]wurden alle Mods deaktiviert.[]\n\nWenn du nicht willst, dass das passiert, kannst du es unter [accent]Einstellungen->Spiel->Mods bei Absturz deaktivieren[] ändern.
mods = Mods
+mods.name = Mod:
mods.none = [lightgray]Keine Mods gefunden!
mods.guide = Modding-Anleitung
mods.report = Problem melden
@@ -157,8 +158,8 @@ mod.circulardependencies = [red]Wechselseitige Abhängigkeiten
mod.incompletedependencies = [red]Fehlende Abhängigkeiten
mod.requiresversion.details = Benötigt Spielversion [accent]{0}[]\nDein Spiel ist veraltet. Diese Mod benötigt eine neuere (möglicherweise Alpha- oder Beta-) Spielversion.
-mod.outdatedv7.details = Diese Mod ist nicht mit der neuesten Version von Mindustry kompatibel. Der Autor muss diesen aktualisieren und [accent]minGameVersion: 136[] in der [accent]mod.json[]-Datei hinzufügen.
-mod.blacklisted.details = Diese Mod würde manuell gesperrt, weil er diese Spielversion zum Abstürzen bringt oder andere Fehler verursacht. Benutze diese Mod nicht.
+mod.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 = Diese Mod wurde manuell gesperrt, weil sie diese Spielversion zum Abstürzen bringt oder andere Fehler verursacht. Benutze diese Mod nicht.
mod.missingdependencies.details = Dieser Mod fehlen folgende Abhängigkeiten: {0}
mod.erroredcontent.details = Diese Mod hat beim Laden Fehler verursacht. Bitte den Mod-Autor, diese zu beheben.
mod.circulardependencies.details = Diese Mod hat Abhängigkeiten, die von einander abhängen.
@@ -167,7 +168,6 @@ mod.requiresversion = Benötigt Spielversion: [red]{0}
mod.errors = Beim Laden von Inhalt sind Fehler aufgetreten.
mod.noerrorplay = [red]Du hast Mods mit Fehlern.[] Deaktiviere die Mods oder behebe die Fehler, bevor du spielst.
-mod.nowdisabled = [red]Mod '{0}' fehlen Abhängigkeiten:[accent] {1}\n[lightgray]Diese Mods müssen erst installiert werden.\nDieser Mod wird automatisch deaktiviert.
mod.enable = Aktivieren
mod.requiresrestart = Das Spiel wird jetzt beendet, um die Mod-Änderungen anzuwenden.
mod.reloadrequired = [red]Neuladen benötigt
@@ -181,7 +181,16 @@ mod.author = [lightgray]Autor:[] {0}
mod.missing = Dieser Spielstand enthält Mods, welche nicht mehr vorhanden sind oder aktualisiert wurden. Spielstandfehler könnten passieren. Bist du dir sicher, dass du ihn laden möchtest?\n[lightgray]Mods:\n{0}
mod.preview.missing = Bevor du diese Mod hochladen kannst, musst du eine Bildvorschau einbinden.\nLade ein Bild namens [accent]preview.png[] in den Modordner und versuche es nochmal.
mod.folder.missing = Nur Mods in Ordnerform können in den Workshop hochgeladen werden.\nUm eine Mod in einen Ordner zu konvertieren, extrahiere das Archiv und lösche das alte Archiv danach. Starte dann das Spiel neu oder lade die Mods neu.
-mod.scripts.disable = Ihr Gerät unterstützt keine Mods mit Skripten. Du musst diese Mods deaktivieren, um spielen zu können.
+mod.scripts.disable = Dein Gerät unterstützt keine Mods mit Skripten. Du musst diese Mods deaktivieren, um spielen zu können.
+mod.dependencies.error = [scarlet]Mods are missing dependencies
+mod.dependencies.soft = (optional)
+mod.dependencies.download = Import
+mod.dependencies.downloadreq = Import Required
+mod.dependencies.downloadall = Import All
+mod.dependencies.status = Import Results
+mod.dependencies.success = Successfully downloaded:
+mod.dependencies.failure = Failed to download:
+mod.dependencies.imported = This mod requires dependencies. Download?
about.button = Info
name = Name:
@@ -196,8 +205,9 @@ unlock.incampaign = < Für Details in Kampagne freischalten >
campaign.select = Startkampagne auswählen
campaign.none = [lightgray]Wähle einen Planeten, auf dem du starten möchtest.\nDies kannst du jederzeit ändern.
campaign.erekir = Neuerer, besserer Inhalt. Größtenteils linearer Fortschritt.\n\nSchwieriger. Höhere Karten- und Spielqualität.
-campaign.serpulo = Ältere Inhalt; das klassische Spiel. Offener, mehr Inhalt. \n\nKarten und Spielmechanismen möglicherweise qualitativ schlechter und ohne Balance.
+campaign.serpulo = Älterer Inhalt; das klassische Spiel. Offener, mehr Inhalt. \n\nKarten und Spielmechanismen möglicherweise qualitativ schlechter und ohne Balance.
campaign.difficulty = Difficulty
+
completed = [accent]Abgeschlossen
techtree = Forschung
techtree.select = Forschungsauswahl
@@ -260,19 +270,19 @@ trace = Spieler verfolgen
trace.playername = Spielername: [accent]{0}
trace.ip = IP: [accent]{0}
trace.id = ID: [accent]{0}
-trace.language = Language: [accent]{0}
+trace.language = Sprache: [accent]{0}
trace.mobile = Mobiler Client: [accent]{0}
trace.modclient = Gemoddeter Client: [accent]{0}
trace.times.joined = Beigetreten: [accent]{0}[] Mal
trace.times.kicked = Rausgeworfen: [accent]{0}[] Mal
trace.ips = IPs:
-trace.names = Names:
+trace.names = Namen:
invalidid = Ungültige Client-ID! Berichte den Fehler.
-player.ban = Ban
-player.kick = Kick
-player.trace = Trace
-player.admin = Toggle Admin
-player.team = Change Team
+player.ban = Verbannen
+player.kick = Rauswerfen
+player.trace = Verfolgen
+player.admin = Admin an/aus
+player.team = Team wechseln
server.bans = Verbannungen
server.bans.none = Keine verbannten Spieler gefunden!
server.admins = Administratoren
@@ -289,8 +299,8 @@ confirmkick = Bist du sicher, dass du diesen Spieler rauswerfen willst?
confirmunban = Bist du sicher, dass du die Verbannung des Spielers rückgängig machen willst?
confirmadmin = Bist du sicher, dass du diesen Spieler zu einem Administrator machen möchtest?
confirmunadmin = Bist du sicher, dass dieser Spieler kein Administrator mehr sein soll?
-votekick.reason = Vote-Kick Reason
-votekick.reason.message = Are you sure you want to vote-kick "{0}[white]"?\nIf yes, please enter the reason:
+votekick.reason = Vote-Kick Grund
+votekick.reason.message = Bist du sicher, dass du "{0}[white]" rauswerfen willst?\nWenn ja, gib bitte einen Grund ein:
joingame.title = Spiel beitreten
joingame.ip = IP:
disconnect = Verbindung unterbrochen.
@@ -298,6 +308,7 @@ disconnect.error = Verbindungsfehler.
disconnect.closed = Verbindung geschlossen.
disconnect.timeout = Zeitüberschreitung.
disconnect.data = Fehler beim Laden der Welt!
+disconnect.snapshottimeout = Timed out while receiving UDP snapshots.\nThis may be caused by an unstable network or connection.
cantconnect = Nicht möglich beizutreten ([accent]{0}[]).
connecting = [accent] Verbinde...
reconnecting = [accent]Verbindung wird wiederhergestellt...
@@ -353,17 +364,18 @@ command.rebuild = Wiederaufbauen
command.assist = Spieler unterstützen
command.move = Bewegen
command.boost = Boost
-command.enterPayload = Enter Payload Block
-command.loadUnits = Load Units
-command.loadBlocks = Load Blocks
-command.unloadPayload = Unload Payload
+command.enterPayload = Frachtblock betreten
+command.loadUnits = Einheiten laden
+command.loadBlocks = Blöcke laden
+command.unloadPayload = Fracht entladen
command.loopPayload = Loop Unit Transfer
-stance.stop = Cancel Orders
-stance.shoot = Stance: Shoot
-stance.holdfire = Stance: Hold Fire
-stance.pursuetarget = Stance: Pursue Target
-stance.patrol = Stance: Patrol Path
-stance.ram = Stance: Ram\n[lightgray]Straight line movement, no pathfinding
+stance.stop = Befehle abbrechen
+stance.shoot = Stellung: schießen
+stance.holdfire = Stellung: nicht schießen
+stance.pursuetarget = Stellung: Ziel verfolgen
+stance.patrol = Stellung: Pfad patroullieren
+stance.ram = Stellung: rammen[lightgray]in einer geraden Lilie bewegen, gegen Wände laufen
+
openlink = Link öffnen
copylink = Link kopieren
back = Zurück
@@ -446,7 +458,7 @@ editor.generation = Generator
editor.objectives = Ziele
editor.locales = Locale Bundles
editor.worldprocessors = World Processors
-editor.worldprocessors.editname = Edit Name
+editor.worldprocessors.editname = Name bearbeiten
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
editor.worldprocessors.nospace = No free space to place a world processor!\nDid you fill the map with structures? Why would you do this?
editor.worldprocessors.delete.confirm = Are you sure you want to delete this world processor?\n\nIf it is surrounded by walls, it will be replaced by an environmental wall.
@@ -462,10 +474,11 @@ editor.filters.type = Kartentyp:
editor.filters.search = Suchen nach:
editor.filters.author = Autor
editor.filters.description = Beschreibung
-editor.shiftx = Shift X
-editor.shifty = Shift Y
+editor.shiftx = Verschieben X
+editor.shifty = Verschieben Y
workshop = Workshop
waves.title = Wellen
+waves.team = Team
waves.remove = Entfernen
waves.every = alle
waves.waves = Welle(n)
@@ -482,7 +495,7 @@ waves.guardian = Boss
waves.preview = Vorschau
waves.edit = Bearbeiten...
waves.random = Zufällig
-waves.copy = Aus der Zwischenablage kopieren
+waves.copy = In die Zwischenablage kopieren
waves.load = Aus der Zwischenablage laden
waves.invalid = Ungültige Wellen in der Zwischenablage.
waves.copied = Wellen kopiert.
@@ -492,8 +505,8 @@ waves.sort.reverse = Reihenfolge umkehren
waves.sort.begin = Anfang
waves.sort.health = Lebenspunkte
waves.sort.type = Sorte
-waves.search = Search waves...
-waves.filter = Unit Filter
+waves.search = Wellen durchsuchen...
+waves.filter = Einheiten Filter
waves.units.hide = Alle verstecken
waves.units.show = Alle anzeigen
@@ -507,8 +520,8 @@ editor.default = [lightgray]
details = Details
edit = Bearbeiten
variables = Variablen
-logic.clear.confirm = Are you sure you want to clear all code from this processor?
-logic.globals = Built-in Variables
+logic.clear.confirm = Willst du wirklich den gesamten code aus diesem prozessor löschen?
+logic.globals = Eingebaute Variablen
editor.name = Name:
editor.spawn = Spawnbereich
editor.removeunit = Bereich entfernen
@@ -532,7 +545,7 @@ editor.sectorgenerate = Sektor generieren
editor.resize = Größe\nanpassen
editor.loadmap = Karte\nladen
editor.savemap = Karte\nspeichern
-editor.savechanges = [scarlet]You have unsaved changes!\n\n[]Do you want to save them?
+editor.savechanges = [scarlet]Du hast ungespeicherte Änderungen!\n\n[]Möchtest du sie speichern?
editor.saved = Gespeichert!
editor.save.noname = Deine Karte hat keinen Namen! Setze einen Namen im [accent]Karten-Info[]-Menü.
editor.save.overwrite = Deine Karte überschreibt eine Standardkarte! Wähle einen anderen Karten Namen im [accent]Karten-Info[]-Menü.
@@ -691,12 +704,12 @@ objective.commandmode.name = Steuerungsmodus
objective.flag.name = Flag
marker.shapetext.name = Geformter Text
-marker.point.name = Point
+marker.point.name = Punkt
marker.shape.name = Form
marker.text.name = Text
marker.line.name = Line
-marker.quad.name = Quad
-marker.texture.name = Texture
+marker.quad.name = Quadrat
+marker.texture.name = Textur
marker.background = Hintergrund
marker.outline = Umriss
@@ -723,14 +736,18 @@ loadout = Anfangsressourcen
resources = Ressourcen
resources.max = Max
bannedblocks = Gesperrte Blöcke
+unbannedblocks = Unbanned Blocks
objectives = Ziele
bannedunits = Gesperrte Einheiten
+unbannedunits = Unbanned Units
bannedunits.whitelist = Gesperrte Einheiten als Whitelist
bannedblocks.whitelist = Gesperrte Blöcke als Whitelist
addall = Alle hinzufügen
launch.from = Materialen werden von [accent]{0} []gestartet
launch.capacity = Ressourcenkapazität: [accent]{0}
launch.destination = Ziel: {0}
+landing.sources = Source Sectors: [accent]{0}[]
+landing.import = Max Total Import: {0}[accent]{1}[lightgray]/min
configure.invalid = Anzahl muss eine Zahl zwischen 0 und {0} sein.
add = Hinzufügen...
guardian = Boss
@@ -770,7 +787,9 @@ sectors.stored = Gelagert:
sectors.resume = Weiterspielen
sectors.launch = Start
sectors.select = Auswählen
+sectors.launchselect = Select Launch Destination
sectors.nonelaunch = [lightgray]keiner (Sonne)
+sectors.redirect = Redirect Launch Pads
sectors.rename = Sektor umbenennen
sectors.enemybase = [scarlet]Gegnerische Basis
sectors.vulnerable = [scarlet]Angriffsgefährdet
@@ -802,6 +821,10 @@ difficulty.easy = Easy
difficulty.normal = Normal
difficulty.hard = Hard
difficulty.eradication = Eradication
+difficulty.enemyHealthMultiplier = Enemy Health: {0}
+difficulty.enemySpawnMultiplier = Enemy Amount: {0}
+difficulty.waveTimeMultiplier = Wave Timer: {0}
+difficulty.nomodifiers = [lightgray](No modifiers)
planets = Planeten
@@ -809,7 +832,7 @@ planet.serpulo.name = Serpulo
planet.erekir.name = Erekir
planet.sun.name = Sonne
-sector.impact0078.name = Impact 0078
+sector.impact0078.name = Einschlag 0078
sector.groundZero.name = Ground Zero
sector.craters.name = Die Krater
sector.frozenForest.name = Gefrorener Wald
@@ -915,7 +938,7 @@ status.electrified.name = Elektrisch
status.spore-slowed.name = Sporen-verlangsamt
status.tarred.name = Teerend
status.overdrive.name = Overdrive
-status.overclock.name = Übertaktend
+status.overclock.name = Übertaktet
status.shocked.name = Schockend
status.blasted.name = Sprengend
status.unmoving.name = Unbeweglich
@@ -1034,53 +1057,56 @@ stat.buildspeedmultiplier = Baugeschwindigkeit-Multiplikator
stat.reactive = Reagiert mit
stat.immunities = Immunitäten
stat.healing = Heilung
+stat.efficiency = [stat]{0}% Efficiency
ability.forcefield = Kraftfeld
-ability.forcefield.description = Projects a force shield that absorbs bullets
+ability.forcefield.description = Projeziert ein Kraftfeld, welches Kugeln aufhält
ability.repairfield = Heilungsfeld
-ability.repairfield.description = Repairs nearby units
+ability.repairfield.description = repariert Einheiten in der Nähe
ability.statusfield = Statusfeld
-ability.statusfield.description = Applies a status effect to nearby units
+ability.statusfield.description = Gibt Einheiten in der Nähe einen Statuseffekt
ability.unitspawn = Fabrik
-ability.unitspawn.description = Constructs units
+ability.unitspawn.description = Baut Einheiten
ability.shieldregenfield = Schildregenerationsfeld
-ability.shieldregenfield.description = Regenerates shields of nearby units
+ability.shieldregenfield.description = Regeneriert Schilder von Einheiten in der Nähe
ability.movelightning = Bewegungsblitze
-ability.movelightning.description = Releases lightning while moving
+ability.movelightning.description = Entfesselt bei Bewegung Blitze
ability.armorplate = Armor Plate
ability.armorplate.description = Reduces damage taken while shooting
ability.shieldarc = Lichtbogenschild
-ability.shieldarc.description = Projects a force shield in an arc that absorbs bullets
+ability.shieldarc.description = Projeziert ein Kraftfeld in einem Bogen, welches Kugeln aufhält
ability.suppressionfield = Heilungsunterdrückungsfeld
-ability.suppressionfield.description = Stops nearby repair buildings
+ability.suppressionfield.description = Unterdrückt Heilungsblöcke in der Nähe
ability.energyfield = Energiefeld
-ability.energyfield.description = Zaps nearby enemies
-ability.energyfield.healdescription = Zaps nearby enemies and heals allies
+ability.energyfield.description = Schockt Feinde in der Nähe
+ability.energyfield.healdescription = Schockt Feinde und heilt alliierte in der Nähe
ability.regen = Regeneration
-ability.regen.description = Regenerates own health over time
-ability.liquidregen = Liquid Absorption
-ability.liquidregen.description = Absorbs liquid to heal itself
-ability.spawndeath = Death Spawns
-ability.spawndeath.description = Releases units on death
-ability.liquidexplode = Death Spillage
-ability.liquidexplode.description = Spills liquid on death
-ability.stat.firingrate = [stat]{0}/sec[lightgray] firing rate
-ability.stat.regen = [stat]{0}[lightgray] health/sec
+ability.regen.description = Regeneriert eigene Lebenspunkte mit der Zeit
+ability.liquidregen = Flüssigkeitsabsorbtion
+ability.liquidregen.description = Nimmt Flüssigkeit auf, um sich selbst zu heilen
+ability.spawndeath = Fragmentierung
+ability.spawndeath.description = Entlässt beim Tod neue Einheiten
+ability.liquidexplode = Auslaufen
+ability.liquidexplode.description = Verschüttet Flüssigkeit beim Tod
+ability.stat.firingrate = [stat]{0}/sek[lightgray] Feuerrate
+ability.stat.regen = [stat]{0}[lightgray] Lebenspunkte/sek
ability.stat.pulseregen = [stat]{0}[lightgray] health/pulse
-ability.stat.shield = [stat]{0}[lightgray] shield
-ability.stat.repairspeed = [stat]{0}/sec[lightgray] repair speed
-ability.stat.slurpheal = [stat]{0}[lightgray] health/liquid unit
-ability.stat.cooldown = [stat]{0} sec[lightgray] cooldown
-ability.stat.maxtargets = [stat]{0}[lightgray] max targets
+ability.stat.shield = [stat]{0}[lightgray] Schild
+ability.stat.repairspeed = [stat]{0}/sek[lightgray] Repariergeschwindigkeit
+ability.stat.slurpheal = [stat]{0}[lightgray] Lebenspunkte/Flüssigkeitseinheit
+ability.stat.cooldown = [stat]{0} sek[lightgray] cooldown
+ability.stat.maxtargets = [stat]{0}[lightgray] max Ziele
+
ability.stat.sametypehealmultiplier = [stat]{0}%[lightgray] same type repair amount
-ability.stat.damagereduction = [stat]{0}%[lightgray] damage reduction
-ability.stat.minspeed = [stat]{0} tiles/sec[lightgray] min speed
-ability.stat.duration = [stat]{0} sec[lightgray] duration
-ability.stat.buildtime = [stat]{0} sec[lightgray] build time
+ability.stat.damagereduction = [stat]{0}%[lightgray] Schadensreduktion
+ability.stat.minspeed = [stat]{0} tiles/sec[lightgray] min Geschwindigkeit
+ability.stat.duration = [stat]{0} sek[lightgray] Dauer
+ability.stat.buildtime = [stat]{0} sek[lightgray] Baudauer
bar.onlycoredeposit = Nur Kernablage möglich
bar.drilltierreq = Besserer Bohrer benötigt
+bar.nobatterypower = Insufficieny Battery Power
bar.noresources = Fehlende Ressourcen
bar.corereq = Kern-Basis erforderlich
bar.corefloor = Kernzone erforderlich
@@ -1089,6 +1115,7 @@ bar.drillspeed = Bohrgeschwindigkeit: {0}/s
bar.pumpspeed = Pumpengeschwindigkeit: {0}/s
bar.efficiency = Effizienz: {0}%
bar.boost = Beschleunigung: +{0}%
+bar.powerbuffer = Battery Power: {0}/{1}
bar.powerbalance = Strom: {0}/s
bar.powerstored = Gespeichert: {0}/{1}
bar.poweramount = Strom: {0}
@@ -1099,6 +1126,7 @@ bar.capacity = Kapazität: {0}
bar.unitcap = {0} {1}/{2}
bar.liquid = Flüssigkeit
bar.heat = Hitze
+bar.cooldown = Cooldown
bar.instability = Instabilität
bar.heatamount = Hitze: {0}
bar.heatpercent = Hitze: {0} ({1}%)
@@ -1123,6 +1151,7 @@ bullet.interval = [stat]{0}/sec[lightgray] Intervallgeschosse:
bullet.frags = [stat]{0}[lightgray]x Splittergeschosse:
bullet.lightning = [stat]{0}[lightgray]x Blitz ~ [stat]{1}[lightgray] Schaden
bullet.buildingdamage = [stat]{0}%[lightgray]Blockschaden
+bullet.shielddamage = [stat]{0}%[lightgray] shield damage
bullet.knockback = [stat]{0}[lightgray] zurückstoßend
bullet.pierce = [stat]{0}[lightgray]x Durchstechkraft
bullet.infinitepierce = [stat]Durchstechkraft
@@ -1145,17 +1174,18 @@ unit.powerunits = Stromeinheiten
unit.heatunits = Hitzeeinheiten
unit.degrees = Grad
unit.seconds = Sekunden
-unit.minutes = mins
+unit.minutes = Minuten
unit.persecond = /sek
unit.perminute = /min
unit.timesspeed = x Geschwindigkeit
+unit.multiplier = x
unit.percent = %
unit.shieldhealth = Schildlebenspunkte
unit.items = Materialeinheiten
unit.thousands = k
unit.millions = Mio
unit.billions = Mrd
-unit.shots = shots
+unit.shots = Schuss
unit.pershot = /Schuss
category.purpose = Beschreibung
category.general = Allgemeines
@@ -1165,8 +1195,8 @@ category.items = Materialien
category.crafting = Erzeugung
category.function = Funktion
category.optional = Optionale Zusätze
-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 = Immer Musik spielen
+setting.alwaysmusic.description = An: Musik spielt ständig im Spiel\n Aus: Musik spielt hin und wieder in zufälligen Abständen
setting.skipcoreanimation.name = Kern Start- und Lande-Animation überspringen
setting.landscape.name = Querformat sperren
setting.shadows.name = Schatten
@@ -1225,19 +1255,24 @@ setting.mutemusic.name = Musik stummschalten
setting.sfxvol.name = Audioeffekt-Lautstärke
setting.mutesound.name = Audioeffekte stummschalten
setting.crashreport.name = Anonyme Absturzberichte senden
+setting.communityservers.name = Fetch Community Server List
setting.savecreate.name = Automatisch speichern
setting.steampublichost.name = Public Game Visibility
setting.playerlimit.name = Spielerbegrenzung
setting.chatopacity.name = Chat-Deckkraft
setting.lasersopacity.name = Power-Laser-Deckkraft
+setting.unitlaseropacity.name = Unit Mining Beam Opacity
setting.bridgeopacity.name = Brücken-Deckkraft
setting.playerchat.name = Chat im Spiel anzeigen
setting.showweather.name = Wetter anzeigen
setting.hidedisplays.name = Logik-Bildschirme verdecken
-setting.macnotch.name = Passen Sie die Schnittstelle an die Anzeigekerbe an
+setting.macnotch.name = Passe die Schnittstelle an die Anzeigekerbe an
setting.macnotch.description = Neustart erforderlich
steam.friendsonly = Nur Freunde
-steam.friendsonly.tooltip = Ob nur Steam-Freunde dein Spiel beitreten können.\nDiese Einstellung zu deaktivieren macht dein Spiel öffentlich - jeder kann beitreten.
+steam.friendsonly.tooltip = Ob nur Steam-Freunde deinem Spiel beitreten können.\nDiese Einstellung zu deaktivieren macht dein Spiel öffentlich - jeder kann beitreten.
+setting.maxmagnificationmultiplierpercent.name = Min Camera Distance
+setting.minmagnificationmultiplierpercent.name = Max Camera Distance
+setting.minmagnificationmultiplierpercent.description = High values may cause performance issues.
public.beta = Bemerke: Beta-Versionen des Spiels können keine öffentlichen Spiele machen.
uiscale.reset = UI-Skalierung wurde geändert.\nDrücke "OK", um diese Skalierung zu bestätigen.\n[scarlet]Zurückkehren und Beenden in[accent] {0}[] Einstellungen...
uiscale.cancel = Abbrechen & Beenden
@@ -1246,7 +1281,7 @@ keybind.title = Tasten zuweisen
keybinds.mobile = [scarlet]Die meisten Tastenzuweisungen hier funktionieren auf mobilen Geräten nicht. Nur grundlegende Bewegung wird unterstützt.
category.general.name = Allgemein
category.view.name = Ansicht
-category.command.name = Unit Command
+category.command.name = Einheitenbefehle
category.multiplayer.name = Mehrspieler
category.blocks.name = Blockauswahl
placement.blockselectkeys = \n[lightgray]Taste: [{0},
@@ -1264,23 +1299,23 @@ keybind.mouse_move.name = Der Maus folgen
keybind.pan.name = Kamera alleine bewegen
keybind.boost.name = Boost
keybind.command_mode.name = Steuerungsmodus
-keybind.command_queue.name = Unit Command Queue
+keybind.command_queue.name = Befehl-Warteschlange
keybind.create_control_group.name = Create Control Group
-keybind.cancel_orders.name = Cancel Orders
-keybind.unit_stance_shoot.name = Unit Stance: Shoot
-keybind.unit_stance_hold_fire.name = Unit Stance: Hold Fire
-keybind.unit_stance_pursue_target.name = Unit Stance: Pursue Target
-keybind.unit_stance_patrol.name = Unit Stance: Patrol
-keybind.unit_stance_ram.name = Unit Stance: Ram
-keybind.unit_command_move.name = Unit Command: Move
-keybind.unit_command_repair.name = Unit Command: Repair
-keybind.unit_command_rebuild.name = Unit Command: Rebuild
-keybind.unit_command_assist.name = Unit Command: Assist
-keybind.unit_command_mine.name = Unit Command: Mine
-keybind.unit_command_boost.name = Unit Command: Boost
-keybind.unit_command_load_units.name = Unit Command: Load Units
-keybind.unit_command_load_blocks.name = Unit Command: Load Blocks
-keybind.unit_command_unload_payload.name = Unit Command: Unload Payload
+keybind.cancel_orders.name = Befehle abbrechen
+keybind.unit_stance_shoot.name = Stellung: schießen
+keybind.unit_stance_hold_fire.name = Stellung: nicht schießen
+keybind.unit_stance_pursue_target.name = Stellung: Ziel verfolgen
+keybind.unit_stance_patrol.name = Stellung: patroullieren
+keybind.unit_stance_ram.name = Stellung: rammen
+keybind.unit_command_move.name = Befehl: bewegen
+keybind.unit_command_repair.name = Befehl: reparieren
+keybind.unit_command_rebuild.name = Befehl: wiederaufbauen
+keybind.unit_command_assist.name = Befehl: Spieler helfen
+keybind.unit_command_mine.name = Befehl: Ressourcen abbauen
+keybind.unit_command_boost.name = Befehl: Boost
+keybind.unit_command_load_units.name = Befehl: Einheiten aufnehmen
+keybind.unit_command_load_blocks.name = Befehl: Blöcke aufnehmen
+keybind.unit_command_unload_payload.name = Befehl: Last abladen
keybind.unit_command_enter_payload.name = Unit Command: Enter Payload
keybind.unit_command_loop_payload.name = Unit Command: Loop Unit Transfer
keybind.rebuild_select.name = Region wiederaufbauen
@@ -1318,6 +1353,7 @@ keybind.shoot.name = Schießen
keybind.zoom.name = Zoomen
keybind.menu.name = Menü
keybind.pause.name = Pause
+keybind.skip_wave.name = Skip Wave
keybind.pause_building.name = Pausieren/Fortsetzen des Bauens
keybind.minimap.name = Minimap
keybind.planet_map.name = Planetenkarte
@@ -1346,7 +1382,7 @@ mode.pvp.description = Kämpfe lokal gegen andere Spieler.\n[gray]Benötigt mind
mode.attack.name = Angriff
mode.attack.description = Keine Wellen, das Ziel ist es, die gegnerische Basis zu zerstören.\n[gray]Benötigt einen roten Kern auf der Karte.
mode.custom = Angepasste Regeln
-rules.invaliddata = Invalid clipboard data.
+rules.invaliddata = Ungültige Daten in der Zwischenablage
rules.hidebannedblocks = Gesperrte Blöcke verstecken
rules.infiniteresources = Unbegrenzte Ressourcen
@@ -1358,21 +1394,21 @@ rules.disableworldprocessors = Deaktiviere Weltprozessoren
rules.schematic = Entwürfe erlaubt
rules.wavetimer = Wellen-Timer
rules.wavesending = Manuelle Wellen möglich
-rules.allowedit = Allow Editing Rules
-rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu.
+rules.allowedit = Regeln bearbeiten erlauben
+rules.allowedit.info = Erlaubt dem Spieler, diese Regeln im Spiel über den Button unten links im Pause-Menü zu bearbeiten.
rules.alloweditworldprocessors = Allow Editing World Processors
rules.alloweditworldprocessors.info = When enabled, world logic blocks can be placed and edited even outside the editor.
rules.waves = Wellen
-rules.airUseSpawns = Air units use spawn points
+rules.airUseSpawns = Lufteinheiten spawnen am Spawnpunkt
rules.attack = Angriff-Modus
-rules.buildai = Base Builder AI
-rules.buildaitier = Builder AI Tier
+rules.buildai = Bau-KI
+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.rtsminsquadsize = Min. Squadgröße
rules.rtsmaxsquadsize = Max. Squadgröße
-rules.rtsminattackweight = Min. Attackiergewicht
+rules.rtsminattackweight = Min. Angriffsgröße
rules.cleanupdeadteams = Blöcke von erorberten Teams zerstören (PvP)
rules.corecapture = Kern nach Zerstörung einnehmen
rules.polygoncoreprotection = Polygonaler Kernschutz
@@ -1385,19 +1421,21 @@ rules.unitcostmultiplier = Einheit-Baukosten Multiplikator
rules.unithealthmultiplier = Einheit-Lebenspunkte-Multiplikator
rules.unitdamagemultiplier = Einheit-Schaden-Multiplikator
rules.unitcrashdamagemultiplier = Einheiten-Absturzschaden-Multiplikator
+rules.unitminespeedmultiplier = Unit Mine Speed Multiplier
rules.solarmultiplier = Solarstrom-Multiplikator
rules.unitcapvariable = Kerne zählen zum Einheiten-Limit dazu
rules.unitpayloadsexplode = Carried Payloads Explode With The Unit
rules.unitcap = Einheiten-Limit
rules.limitarea = Kartenbereich begrenzen
rules.enemycorebuildradius = Bauverbot-Radius durch feindlichen Kern:[lightgray] (Kacheln)
+rules.extracorebuildradius = Extra No-Build Radius:[lightgray] (tiles)
rules.wavespacing = Wellen-Abstand:[lightgray] (Sek)
rules.initialwavespacing = Erster Wellenabstand:[lightgray] (Sek)
rules.buildcostmultiplier = Bau-Kosten Multiplikator
rules.buildspeedmultiplier = Bau-Schnelligkeit Multiplikator
rules.deconstructrefundmultiplier = Abbau Ressourcen-Rückerstattung
rules.waitForWaveToEnd = Warten bis Welle endet
-rules.wavelimit = Map Ends After Wave
+rules.wavelimit = Letzte Welle
rules.dropzoneradius = Drop-Zonen-Radius:[lightgray] (Kacheln)
rules.unitammo = Einheiten benötigen Munition [red](wird vielleicht entfernt)
rules.enemyteam = Gegnerteam
@@ -1413,6 +1451,9 @@ rules.title.planet = Planet
rules.lighting = Blitze
rules.fog = Kriegsnebel
rules.invasions = Enemy Sector Invasions
+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.fire = Feuer
@@ -1424,8 +1465,9 @@ rules.weather.frequency = Häufigkeit:
rules.weather.always = Immer
rules.weather.duration = Dauer:
rules.randomwaveai.info = Makes units spawned in waves target random structures instead of directly attacking the core or power generators.
-rules.placerangecheck.info = Prevents players from placing anything near enemy buildings. When trying to place a turret, the range is increased, so the turret will not be able to reach the enemy.
-rules.onlydepositcore.info = Prevents units from depositing items into any buildings except cores.
+rules.placerangecheck.info = Hindert den Spieler daran, in der Nähe von feindlichen Blöcken zu bauen. Geschütze können nur platziert werden, wenn keine Feindlichen Blöcke in ihrer Reichweite sind.
+rules.onlydepositcore.info = Lässt Einheiten Materialen nur in den Kern ablegen. Nicht in andere Blöcke.
+
content.item.name = Materialien
content.liquid.name = Flüssigkeiten
@@ -1540,7 +1582,7 @@ block.sand-boulder.name = Sandbrocken
block.basalt-boulder.name = Basaltbrocken
block.grass.name = Gras
block.molten-slag.name = Schlacke
-block.pooled-cryofluid.name = Cryoflüssigkeit
+block.pooled-cryofluid.name = Kryoflüssigkeit
block.space.name = Weltall
block.salt.name = Salz
block.salt-wall.name = Salzwand
@@ -1733,6 +1775,8 @@ block.meltdown.name = Kernschmelze
block.foreshadow.name = Vorschatten
block.container.name = Behälter
block.launch-pad.name = Launchpad
+block.advanced-launch-pad.name = Launch Pad
+block.landing-pad.name = Landing Pad
block.segment.name = Segment
block.ground-factory.name = Bodenfabrik
block.air-factory.name = Luftfabrik
@@ -1790,6 +1834,8 @@ block.arkyic-vent.name = Arkyzitschlot
block.yellow-stone-vent.name = Gelbsteinschlot
block.red-stone-vent.name = Rotsteinschlot
block.crystalline-vent.name = Kristalliner Schlot
+block.stone-vent.name = Stone Vent
+block.basalt-vent.name = Basalt Vent
block.redmat.name = Rote Erde
block.bluemat.name = Blaue Erde
block.core-zone.name = Kernzone
@@ -1945,52 +1991,52 @@ hint.respawn.mobile = Du steuerst nun eine Einheit oder einen Block. Um wieder z
hint.desktopPause = Benutze [accent][[Leertaste][], um das Spiel zu pausieren oder entpausieren.
hint.breaking = Benutze [accent]Rechtsklick[] und bewege deine Maus, um zu zerstören.
-hint.breaking.mobile = Aktiviere den \ue817 [accent]Hammer[] unten rechts und tippe, um Blöcke zu zerstören.\n\nHalte deinen Finger auf dem Bildschirm, um eine Fläche auszuwählen.
+hint.breaking.mobile = Aktiviere den :hammer: [accent]Hammer[] unten rechts und tippe, um Blöcke zu zerstören.\n\nHalte deinen Finger auf dem Bildschirm, um eine Fläche auszuwählen.
hint.blockInfo = Genauere Blockinformationen können im [accent]Baumenü[] rechts beim [accent][[?][]-Symbol gefunden werden.
hint.derelict = [accent]Derelikte[] Blöcke sind kaputte Teile alter Basen, die nicht mehr funktionieren.\n\nSie können für Ressourcen [accent]abgebaut[] werden.
-hint.research = Klicke auf den \ue875 [accent]Forschen[]-Knopf um neue Technologien zu erforschen.
-hint.research.mobile = Klicke auf den \ue875 [accent]Forschen[]-Knopf im \ue88c [accent]Menü[], um neue Technologien zu erforschen.
+hint.research = Klicke auf den :tree: [accent]Forschen[]-Knopf um neue Technologien zu erforschen.
+hint.research.mobile = Klicke auf den :tree: [accent]Forschen[]-Knopf im :menu: [accent]Menü[], um neue Technologien zu erforschen.
hint.unitControl = Halte [accent][[L-STRG][] und [accent]klicke[], um alliierte Einheiten oder Geschütze zu steuern.
hint.unitControl.mobile = [accent][[Doppelklicke][], um alliierte Einheiten oder Geschütze zu steuern.
hint.unitSelectControl = Du kannst [accent]L-Shift[] gedrückt halten, um den Steuerungsmodus zu aktivieren.\nIm Steuerungsmodus hältst du [accent]Linksklick[] gedrückt, um Einheiten auswählen zu können. Mit [accent]Rechtsklick[] bestimmst du, wo die ausgewählten Einheiten hingehen sollen.
hint.unitSelectControl.mobile = Um Einheiten zu steuern, kannst du den [accent]Steuerungsmodus[] mit dem Knopf unten links aktivieren.\nIm Steuerungsmodus kannst du Einheiten auswählen, indem du lang drückst und den Finger über den Bildschirm ziehst. Dann kannst du einen Ort oder ein Ziel auswählen, wo die Einheiten hingehen sollen.
-hint.launch = Sobald du genug Ressourcen gesammelt hast, kannst du [accent]Starten[], indem du andere Sektoren auf der \ue827 [accent]Karte[] unten rechts auswählst.
-hint.launch.mobile = Sobald du genug Ressourcen gesammelt hast, kannst du [accent]Starten[], indem du andere Sektoren auf der \ue827 [accent]Karte[] im \ue88c [accent]Menü[] auswählst.
+hint.launch = Sobald du genug Ressourcen gesammelt hast, kannst du [accent]Starten[], indem du andere Sektoren auf der :map: [accent]Karte[] unten rechts auswählst.
+hint.launch.mobile = Sobald du genug Ressourcen gesammelt hast, kannst du [accent]Starten[], indem du andere Sektoren auf der :map: [accent]Karte[] im :menu: [accent]Menü[] auswählst.
hint.schematicSelect = Halte [accent][[F][] gedrückt und bewege deine Maus, um Blöcke zu kopieren.\n\nMit [accent][[Mittelklick][] kannst du einen einzelnen Block kopieren.
hint.rebuildSelect = Halte [accent][[B][] gedrückt und bewege deine Maus, um Überreste zerstörter Blöcke auszuwählen.\nDiese werden dann automatisch wiederaufgebaut.
-hint.rebuildSelect.mobile = Select the \ue874 copy button, then tap the \ue80f rebuild button and drag to select destroyed block plans.\nThis will rebuild them automatically.
+hint.rebuildSelect.mobile = Select the :copy: copy button, then tap the :wrench: rebuild button and drag to select destroyed block plans.\nThis will rebuild them automatically.
hint.conveyorPathfind = Halte [accent][[L-STRG][] während du Förderbänder baust, um automatisch einen Weg zu finden.
-hint.conveyorPathfind.mobile = Aktiviere den \ue844 [accent]Diagonal-Modus[] unten rechts und platziere Förderbänder, um automatisch einen Weg zu generieren.
+hint.conveyorPathfind.mobile = Aktiviere den :diagonal: [accent]Diagonal-Modus[] unten rechts und platziere Förderbänder, um automatisch einen Weg zu generieren.
hint.boost = Halte [accent][[L-Shift][] gedrückt, um über Hindernisse zu boosten.\n\nNur manche Bodeneinheiten können das.
hint.payloadPickup = Du kannst [accent][[[] drücken, um kleine Einheiten oder Blöcke hochzuheben.
hint.payloadPickup.mobile = [accent]Halte deinen Finger[] auf eine kleine Einheit oder einen kleinen Block, um ihn aufzuheben.
hint.payloadDrop = Drücke [accent]][], um etwas fallen zu lassen.
hint.payloadDrop.mobile = [accent]Halte deinen Finger[] auf einen freien Ort, um eine Einheit oder einen Block da fallen zu lassen.
hint.waveFire = [accent]Wellen[]-Geschütze mit Wassermunition löschen automatisch Feuer.
-hint.generator = \uf879 [accent]Verbrennungsgeneratoren[] verbrennen Kohle und übertragen diesen Strom in angrenzende Blöcke.\n\nDie Reichweite der Stromübertragung kann mit \uf87f [accent]Stromknoten[] erweitert werden.
-hint.guardian = [accent]Boss[]-Einheiten sind gepanzert. Schwache Munition wie [accent]Kupfer[] und [accent]Blei[] sind [scarlet]nicht effektiv[].\n\nBenutze bessere Geschütze oder \uf835 [accent]Graphit[] als \uf861Duo-/\uf859Salvenmunition um einen Boss zu besiegen.
-hint.coreUpgrade = Kerne können aufgerüstet werden, indem man [accent]bessere Kerne über sie platziert[].\n\nPlatziere einen \uf868 [accent]Fundament[]-Kern über einen \uf869 [accent]Scherben[]-Kern. Stelle sicher, dass ausreichend Platz verfügbar ist.
+hint.generator = :combustion-generator: [accent]Verbrennungsgeneratoren[] verbrennen Kohle und übertragen diesen Strom in angrenzende Blöcke.\n\nDie Reichweite der Stromübertragung kann mit :power-node: [accent]Stromknoten[] erweitert werden.
+hint.guardian = [accent]Boss[]-Einheiten sind gepanzert. Schwache Munition wie [accent]Kupfer[] und [accent]Blei[] sind [scarlet]nicht effektiv[].\n\nBenutze bessere Geschütze oder :graphite: [accent]Graphit[] als :duo:Duo-/:salvo:Salvenmunition um einen Boss zu besiegen.
+hint.coreUpgrade = Kerne können aufgerüstet werden, indem man [accent]bessere Kerne über sie platziert[].\n\nPlatziere einen :core-foundation: [accent]Fundament[]-Kern über einen :core-shard: [accent]Scherben[]-Kern. Stelle sicher, dass ausreichend Platz verfügbar ist.
hint.presetLaunch = Zu grauen [accent]Sektoren[] wie dem [accent]Frozen Forest[] kann man von überall aus hin starten. Es ist nicht nötig, benachbarte Sektoren zu erobern.\n\n[accent]Nummerierte Sektoren[] wie dieser hier sind [accent]optional[].
hint.presetDifficulty = Dieser Sektor hat eine [scarlet]hohe Gefahrenstufe[].\nOhne richtige Technologie und Vorbereitung ist es [accent]nicht empfohlen[], zu diesem Sektor zu starten.
hint.coreIncinerate = Wenn dem Kern Materialien zugeführt werden, für die er keinen Platz mehr hat, werden diese [accent]verbrannt[].
hint.factoryControl = Um den [accent]Zielort einer Fabrik[] zu bestimmen, kannst du im Steuerungsmodus die Fabrik auswählen und einen Ort mit Rechtsklick markieren.\nEinheiten, die in der Fabrik hergestellt werden, bewegen sich dann automatisch dahin.
hint.factoryControl.mobile = Um den [accent]Zielort einer Fabrik[] zu bestimmen, kannst du im Steuerungsmodus zuerst die Fabrik und dann einen Ort auswählen.\nEinheiten, die in der Fabrik hergestellt werden, bewegen sich dann automatisch dahin.
-gz.mine = Bewege dich in die Nähe von dem \uf8c4 [accent]Kupfererz[]\n und klicke drauf, um es abzubauen.
-gz.mine.mobile = Bewege dich in die Nähe von dem \uf8c4 [accent]Kupfererz[] und tippe drauf, um es abzubauen.
-gz.research = Öffne das \ue875 Forschungsmenü.\nErforsche den \uf870 [accent]Mechanischen Bohrer[]\n und wähle ihn im Menü unten rechts aus.\nKlicke auf Kupfererz, um ihn zu platzieren.
-gz.research.mobile = Öffne das \ue875 Forschungsmenü.\nErforsche den \uf870 [accent]Mechanischen Bohrer[] und wähle ihn im Menü unten rechts aus.\nTippe auf Kupfererz, um ihn zu platzieren.\n\nWähle zuletzt das Häkchen unten rechts zur Bestätigung.
-gz.conveyors = Erforsche und platziere \uf896 [accent]Förderbänder[], um abgebaute Ressourcen zum Kern zu transportieren.\n\nZiehe die Maus über den Bildschirm, um mehrere Förderbänder zu platzieren.\n[accent]Scrolle[], um die Richtung zu ändern.
-gz.conveyors.mobile = Erforsche und platziere \uf896 [accent]Förderbänder[], um abgebaute Ressourcen zum Kern zu transportieren.\n\nDrücke kurz und ziehe deinen Finger über den Bildschirm, um mehrere Förderbänder zu platzieren.
+gz.mine = Bewege dich in die Nähe von dem :ore-copper: [accent]Kupfererz[]\n und klicke drauf, um es abzubauen.
+gz.mine.mobile = Bewege dich in die Nähe von dem :ore-copper: [accent]Kupfererz[] und tippe drauf, um es abzubauen.
+gz.research = Öffne das :tree: Forschungsmenü.\nErforsche den :mechanical-drill: [accent]Mechanischen Bohrer[]\n und wähle ihn im Menü unten rechts aus.\nKlicke auf Kupfererz, um ihn zu platzieren.
+gz.research.mobile = Öffne das :tree: Forschungsmenü.\nErforsche den :mechanical-drill: [accent]Mechanischen Bohrer[] und wähle ihn im Menü unten rechts aus.\nTippe auf Kupfererz, um ihn zu platzieren.\n\nWähle zuletzt das Häkchen unten rechts zur Bestätigung.
+gz.conveyors = Erforsche und platziere :conveyor: [accent]Förderbänder[], um abgebaute Ressourcen zum Kern zu transportieren.\n\nZiehe die Maus über den Bildschirm, um mehrere Förderbänder zu platzieren.\n[accent]Scrolle[], um die Richtung zu ändern.
+gz.conveyors.mobile = Erforsche und platziere :conveyor: [accent]Förderbänder[], um abgebaute Ressourcen zum Kern zu transportieren.\n\nDrücke kurz und ziehe deinen Finger über den Bildschirm, um mehrere Förderbänder zu platzieren.
gz.drills = Erweitere den Bergbau.\nBaue mehr mechanische Bohrer.\nBaue 100 Kupfer ab.
-gz.lead = \uf837 [accent]Blei[] ist ein anderer wichtiger Rohstoff.\nBaue Bohrer, um Blei abzubauen.
-gz.moveup = \ue804 Bewege dich weiter nach oben, um weitere Ziele zu erhalten.
-gz.turrets = Erforsche und platziere 2 \uf861 [accent]Doppelgeschütze[], um den Kern zu beschützen.\nDoppelgeschütze benötigen \uf838 [accent]Munition[] von Förderbändern.
+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.walls = [accent]Mauern[] können andere Blöcke vor Schaden schützen.\nBaue \uf8ae [accent]Kufpermauern[] um die Geschütze.
+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\uf860 [accent]Luftgeschütze[] können dies deutlich besser, benötigen aber \uf837 [accent]Blei[] als Munition.
+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.zone1 = Dies ist die feindliche Drop-Zone.
@@ -1998,27 +2044,27 @@ gz.zone2 = Alle Blöcke in der Zone werden zerstört, wenn eine Welle kommt.
gz.zone3 = Jetzt kommt eine Welle.\nBereite dich vor.
gz.finish = Baue mehr Geschütze, sammele mehr Ressourcen\nund besiege alle Wellen, um den [accent]Sektor zu erobern[].
-onset.mine = Klicke, um \uf748 [accent]Beryllium[] aus Wänden abzubauen.\n\nBenutze [accent][WASD], um dich zu bewegen.
-onset.mine.mobile = Tippe, um \uf748 [accent]Beryllium[] aus Wänden abzubauen.
-onset.research = Öffne das \ue875 Forschungsmenü.\nErforsche und platziere einen \uf73e [accent]Turbinenkondensator[] auf einen Schlot.\nDieser erzeugt [accent]Strom[].
-onset.bore = Erforsche und platziere einen \uf741 [accent]Plasmabohrer[].\nDieser baut Rohstoffe aus Wänden automatisch ab.
-onset.power = Um den Plasmabohrer mit [accent]Strom[] zu versorgen, kannst du \uf73d [accent]Strahlknoten[] erforschen und bauen.\nVerbinde den Turbinenkondensator mit dem Plasmabohrer.
-onset.ducts = Erforsche und platziere \uf799 [accent]Rohrleitungen[], um die abgebauten Ressourcen zum Kern zu transportieren.\nZiehe die Maus über den Bildschirm, um mehrere Rohrleitungen zu platzieren.\n[accent]Scrolle[], um die Richtung zu ändern.
-onset.ducts.mobile = Erforsche und platziere \uf799 [accent]Rohrleitungen[], um die abgebauten Ressourcen zum Kern zu transportieren.\n\nDrücke kurz und ziehe deinen Finger über den Bildschirm, um mehrere Rohrleitungen zu platzieren.
+onset.mine = Klicke, um :beryllium: [accent]Beryllium[] aus Wänden abzubauen.\n\nBenutze [accent][WASD], um dich zu bewegen.
+onset.mine.mobile = Tippe, um :beryllium: [accent]Beryllium[] aus Wänden abzubauen.
+onset.research = Öffne das :tree: Forschungsmenü.\nErforsche und platziere einen :turbine-condenser: [accent]Turbinenkondensator[] auf einen Schlot.\nDieser erzeugt [accent]Strom[].
+onset.bore = Erforsche und platziere einen :plasma-bore: [accent]Plasmabohrer[].\nDieser baut Rohstoffe aus Wänden automatisch ab.
+onset.power = Um den Plasmabohrer mit [accent]Strom[] zu versorgen, kannst du :beam-node: [accent]Strahlknoten[] erforschen und bauen.\nVerbinde den Turbinenkondensator mit dem Plasmabohrer.
+onset.ducts = Erforsche und platziere :duct: [accent]Rohrleitungen[], um die abgebauten Ressourcen zum Kern zu transportieren.\nZiehe die Maus über den Bildschirm, um mehrere Rohrleitungen zu platzieren.\n[accent]Scrolle[], um die Richtung zu ändern.
+onset.ducts.mobile = Erforsche und platziere :duct: [accent]Rohrleitungen[], um die abgebauten Ressourcen zum Kern zu transportieren.\n\nDrücke kurz und ziehe deinen Finger über den Bildschirm, um mehrere Rohrleitungen zu platzieren.
onset.moremine = Erweitere den Bergbau.\nPlatziere mehr Plasmabohrer und verbinde sie mit Rohrleitungen und Strahlknoten.\nBaue 200 Beryllium ab.
-onset.graphite = Komplexere Blöcke benötigen \uf835 [accent]Graphit[].\nStelle Plasmabohrer auf, um Graphit abzubauen.
-onset.research2 = Fange an, [accent]Fabriken[] zu erforschen.\nEroforsche den \uf74d [accent]Klippenbohrer[] und den \uf779 [accent]Silizium-Lichtbogenofen[].
-onset.arcfurnace = Der Lichtbogenofen verschmilzt \uf834 [accent]Sand[] und \uf835 [accent]Graphit[], um \uf82f [accent]Silizium[] herzustellen.\n[accent]Strom[] wird auch benötigt.
-onset.crusher = Benutze \uf74d [accent]Klippenbohrer[], um Sand abzubauen.
-onset.fabricator = Mit [accent]Einheiten[] kannst du die Karte erkunden, Gebäude beschützen und Feinde angreifen. Erforsche und platziere einen \uf6a2 [accent]Panzerhersteller[].
+onset.graphite = Komplexere Blöcke benötigen :graphite: [accent]Graphit[].\nStelle Plasmabohrer auf, um Graphit abzubauen.
+onset.research2 = Fange an, [accent]Fabriken[] zu erforschen.\nEroforsche den :cliff-crusher: [accent]Klippenbohrer[] und den :silicon-arc-furnace: [accent]Silizium-Lichtbogenofen[].
+onset.arcfurnace = Der Lichtbogenofen verschmilzt :sand: [accent]Sand[] und :graphite: [accent]Graphit[], um :silicon: [accent]Silizium[] herzustellen.\n[accent]Strom[] wird auch benötigt.
+onset.crusher = Benutze :cliff-crusher: [accent]Klippenbohrer[], um Sand abzubauen.
+onset.fabricator = Mit [accent]Einheiten[] kannst du die Karte erkunden, Gebäude beschützen und Feinde angreifen. Erforsche und platziere einen :tank-fabricator: [accent]Panzerhersteller[].
onset.makeunit = Stelle eine Einheit her.\nDrücke den "?"-Knopf, um zu sehen, was gebraucht wird.
-onset.turrets = Einheiten sind effektiv, aber [accent]Geschütze[] sind beim Verteidigen stärker, wenn sie gut eingesetzt werden.\n Baue ein [accent]Brecher[]-Geschütz.\nGeschütze benötigen \uf748 [accent]Munition[].
+onset.turrets = Einheiten sind effektiv, aber [accent]Geschütze[] sind beim Verteidigen stärker, wenn sie gut eingesetzt werden.\n Baue ein [accent]Brecher[]-Geschütz.\nGeschütze benötigen :beryllium: [accent]Munition[].
onset.turretammo = Versorge das Geschütz mit [accent]Berylliummunition[].
-onset.walls = [accent]Mauern[] können andere Blöcke vor Schaden schützen.\nBaue \uf6ee [accent]Berylliummauern[] um die Geschütze.
+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.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 \uf725 Kern.
+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.
#Don't translate these yet!
@@ -2186,7 +2232,9 @@ block.vault.description = Speichert eine große Menge an Materialien pro Typ. Ei
block.container.description = Speichert eine kleine Menge an Materialien pro Typ. Ein[lightgray] Entlader[] kann verwendet werden, um Materialien auszuladen.
block.unloader.description = Entlädt Materialien aus einem Block.
block.launch-pad.description = Startet Materialien in andere Sektoren.
-block.launch-pad.details = Planetnahes Transportsystem für Ressourcen. Frachtpods sind zu instabil, um heil durch eine Atmosphäre zu fallen.
+block.advanced-launch-pad.description = Launches batches of items to selected sectors. Only accepts one item type at a time.
+block.advanced-launch-pad.details = Sub-orbital system for point-to-point transportation of resources.
+block.landing-pad.description = Receives items from launch pads in other sectors. Requires large amounts of water to protect against impacts of landings.
block.duo.description = Schießt auf Gegner.
block.scatter.description = Ein mittelgroßer Anti-Luft-Turm. Sprüht Blei- oder Schrottklumpen auf feindliche Lufteinheiten.
block.scorch.description = Verbrennt alle Bodenfeinde in der Nähe. Hochwirksam im Nahbereich.
@@ -2295,6 +2343,7 @@ block.unit-cargo-loader.description = Baut Transportdrohnen. Drohnen verteilen M
block.unit-cargo-unload-point.description = Funktioniert als Entladungspunkt für Transportdrohnen. Nimmt nur Materialien an, die dem Filter passen.
block.beam-node.description = Verteilt Strom in rechten Winkeln. Speichert eine kleine Menge Strom.
block.beam-tower.description = Verteilt Strom in rechten Winkeln. Speichert eine große Menge Strom. Höhere Reichweite.
+block.beam-link.description = Transmits power over vast distances.\nOnly capable of connecting to adjacent structures or other beam links.
block.turbine-condenser.description = Generiert Strom, wenn auf einem Schlot platziert. Stellt eine kleine Menge Wasser her.
block.chemical-combustion-chamber.description = Generiert aus Arkyzit und Ozon Strom.
block.pyrolysis-generator.description = Erzeugt aus Arkyzit und Schlacke große Mengen Strom. Erzeugt als Nebenprodukt Wasser.
@@ -2387,6 +2436,7 @@ unit.emanate.description = Baut Blöcke, um den Akropolis-Kern zu beschützen. H
lst.read = Liest einen Wert aus einer verbundenen Speicherzelle.
lst.write = Schreibt eine Zahl in einer verbundene Speicherzelle.
lst.print = Fügt Text zum Textspeicher hinzu.\nZeigt nichts an, bis [accent]Print Flush[] verwendet wird.
+lst.printchar = Add a UTF-16 character or content icon to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used.
lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example"
lst.draw = Fügt eine [accent]Draw[]-Aufgabe zum Bildspeicher hinzu.\nZeigt nichts an, bis [accent]Draw Flush[] verwendet wird.
lst.drawflush = Druckt [accent]Draw[]-Aufgaben aus dem Bildspeicher auf einen Bildschirm.
@@ -2423,48 +2473,48 @@ lst.cutscene = Verschiebe die Spielerkamera.
lst.setflag = Setze eine Flag, die von allen Prozessoren gelesen werden kann.
lst.getflag = Überprüfe, ob eine Flag gesetzt ist.
lst.setprop = Setzt eine Eigenschaft einer Einheit oder eines Blockes.
-lst.effect = Create a particle effect.
-lst.sync = Sync a variable across the network.\nOnly invoked 10 times a second at most.
-lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position.
-lst.makemarker = Create a new logic marker in the world.\nAn ID to identify this marker must be provided.\nMarkers currently limited to 20,000 per world.
-lst.setmarker = Set a property for a marker.\nThe ID used must be the same as in the Make Marker instruction.
+lst.effect = Erstelle einen Partikeleffekt
+lst.sync = Synchronisiert eine Variable im Netzwerk.\nWird maximal 10 Mal pro Sekunde ausgefürht.
+lst.playsound = Spielt einen Ton.\nDie Lautstärke kann ein fester Wert sein, oder anhand der Position berechnet werden. (weiter weg: leiser)
+lst.makemarker = Erstelle einen neuen Logikmarker in der Welt.\nEine ID zur Identifizierung muss angegeben werden.\nDerzeit können nur maximal 20.000 Marker pro Welt platziert werden.
+lst.setmarker = Lege eine Eigenschaft für einen Marker fest.\nDie ID muss die selbe wie bei der Erstellung des Markers sein.
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.
lglobal.false = 0
lglobal.true = 1
lglobal.null = null
-lglobal.@pi = The mathematical constant pi (3.141...)
-lglobal.@e = The mathematical constant e (2.718...)
-lglobal.@degToRad = Multiply by this number to convert degrees to radians
-lglobal.@radToDeg = Multiply by this number to convert radians to degrees
-lglobal.@time = Playtime of current save, in milliseconds
-lglobal.@tick = Playtime of current save, in ticks (1 second = 60 ticks)
-lglobal.@second = Playtime of current save, in seconds
-lglobal.@minute = Playtime of current save, in minutes
-lglobal.@waveNumber = Current wave number, if waves are enabled
-lglobal.@waveTime = Countdown timer for waves, in seconds
-lglobal.@mapw = Map width in tiles
-lglobal.@maph = Map height in tiles
-lglobal.sectionMap = Map
+lglobal.@pi = Die mathematische Konstante pi (3.141...)
+lglobal.@e = Die mathematische Konstante e (2.718...)
+lglobal.@degToRad = Multipliziere mit dieser Zahl um Grad in Radianten umzuwandeln
+lglobal.@radToDeg = Multipliziere mit dieser Zahl um Radianten in Grad umzuwandeln
+lglobal.@time = Spielzeit des aktuellen Speicherstandes in Millisekunden
+lglobal.@tick = Spielzeit des aktuellen Speicherstandes in Ticks (1 Sekunde = 60 Ticks)
+lglobal.@second = Spielzeit des aktuellen Speicherstandes in Sekunden
+lglobal.@minute = Spielzeit des aktuellen Speicherstandes in Minuten
+lglobal.@waveNumber = Nummer der aktuellen Welle, wenn Wellen aktiviert sind
+lglobal.@waveTime = Countdown zur nächsten Welle in Sekunden
+lglobal.@mapw = Breite der Karte in Kacheln
+lglobal.@maph = Höhe der Karte in Kacheln
+lglobal.sectionMap = Karte
lglobal.sectionGeneral = General
lglobal.sectionNetwork = Network/Clientside [World Processor Only]
lglobal.sectionProcessor = Processor
lglobal.sectionLookup = Lookup
-lglobal.@this = The logic block executing the code
-lglobal.@thisx = X coordinate of block executing the code
-lglobal.@thisy = Y coordinate of block executing the code
-lglobal.@links = Total number of blocks linked to this processors
-lglobal.@ipt = Execution speed of the processor in instructions per tick (60 ticks = 1 second)
-lglobal.@unitCount = Total number of types of unit content in the game; used with the lookup instruction
-lglobal.@blockCount = Total number of types of block content in the game; used with the lookup instruction
-lglobal.@itemCount = Total number of types of item content in the game; used with the lookup instruction
-lglobal.@liquidCount = Total number of types of liquid content in the game; used with the lookup instruction
-lglobal.@server = True if the code is running on a server or in singleplayer, false otherwise
-lglobal.@client = True if the code is running on a client connected to a server
-lglobal.@clientLocale = Locale of the client running the code. For example: en_US
-lglobal.@clientUnit = Unit of client running the code
-lglobal.@clientName = Player name of client running the code
-lglobal.@clientTeam = Team ID of client running the code
-lglobal.@clientMobile = True is the client running the code is on mobile, false otherwise
+lglobal.@this = Der Logikblock, der den Code ausführt
+lglobal.@thisx = X-Koordinate des Blocks, der den Code ausführt
+lglobal.@thisy = Y-Koordinate des Blocks, der den Code ausführt
+lglobal.@links = Gesamtzahl der Blöcke, die mit diesem Prozessor verbunden sind
+lglobal.@ipt = Ausführungsgeschwindigkeit in Anweisungen pro Tick (1 Sekunde = 60 Ticks)
+lglobal.@unitCount = Gesamtzahl der verschiedenen Einheiten im Spiel; mit dem Lookup-Befehl benutzt
+lglobal.@blockCount = Gesamtzahl der verschiedenen Blöcke im Spiel; mit dem Lookup-Befehl benutzt
+lglobal.@itemCount = Gesamtzahl der verschiedenen Materialien im Spiel; mit dem Lookup-Befehl benutzt
+lglobal.@liquidCount = Gesamtzahl der verschiedenen Flüssigkeiten im Spiel; mit dem Lookup-Befehl benutzt
+lglobal.@server = true, wenn der Code auf einem Server oder im Einzelspielermodus ausgeführt wird, sonst false
+lglobal.@client = true, wenn der Code auf einem Client läuft, der mit einem Server verbunden ist
+lglobal.@clientLocale = Gebiet des Clients, der den Code ausführt. Zum Beispiel: en_US
+lglobal.@clientUnit = Einheit des Clients, der den Code ausführt
+lglobal.@clientName = Spielername des Clients, der diesen Code ausführt
+lglobal.@clientTeam = Team ID des Clients, der diesen Code ausführt
+lglobal.@clientMobile = true, wenn der Client ein Mobilgerät ist, sonst false
logic.nounitbuild = [red]Logik, die Blöcke baut, ist hier nicht erlaubt.
@@ -2473,7 +2523,8 @@ lenum.shoot = Schießt auf eine Position.
lenum.shootp = Schießt auf eine Einheit / einen Block und sagt deren Position voraus.
lenum.config = Blockkonfiguration, z.B. das ausgewählte Item in einem Sortierer.
lenum.enabled = Ob der Block an oder aus ist.
-laccess.currentammotype = Current ammo item/liquid of a turret.
+laccess.currentammotype = Aktuelle Munitionsart eines Geschützes
+laccess.memorycapacity = Number of cells in a memory block.
laccess.color = Illuminiererfarbe.
laccess.controller = Einheitensteurer. Gibt "processor" zurück, wenn die Einheit prozessorgesteuert ist,.\nGibt den Steuerer zurück, wenn die Einheit Teil einer Formation ist.\nSonst wird einfach die Einheit zurückgegeben.
@@ -2481,7 +2532,8 @@ laccess.dead = Ob ein Block / eine Einheit tot oder nicht mehr gültig ist.
laccess.controlled = Gibt zurück:\n[accent]@ctrlProcessor[] wenn die Einheit prozessorgesteuert ist\n[accent]@ctrlPlayer[] wenn die Einheit / der Block von einem Spieler gesteuert wird\n[accent]@ctrlFormation[] wenn die Einheit Teil einer Formation ist\nSonst 0.
laccess.progress = Fortschritt, von 0 bis 1.\nGibt Produktion, Nachladestatus or Baufortschritt zurück.
laccess.speed = Höchstgeschwindigkeit einer Einheit, gemessen in Blöcke/Sekunde.
-laccess.id = ID of a unit/block/item/liquid.\nThis is the inverse of the lookup operation.
+laccess.size = Size of a unit/building or the length of a string.
+laccess.id = ID einer Einheit/eines Blocks/eines Materials/einer Flüssigkeit\nThis is the inverse of the lookup operation.
lcategory.unknown = Unbekannt
lcategory.unknown.description = Unbekannte Anweisungen
@@ -2509,7 +2561,7 @@ graphicstype.poly = Füllt ein gleichmäßiges Polygon.
graphicstype.linepoly = Zeichnet den Umriss eines gleichmäßigen Polygons.
graphicstype.triangle = Zeichnet ein Dreieck.
graphicstype.image = Zeichnet ein Bild von einem englischen Namen.\nz.B. [accent]@router[] oder [accent]@dagger[].
-graphicstype.print = Draws text from the print buffer.\nClears the print buffer.
+graphicstype.print = Zeichnet Text aus dem Textspeicher und leert diesen.
lenum.always = Immer.
lenum.idiv = Division mit ganzen Zahlen.
@@ -2529,7 +2581,7 @@ lenum.xor = Bitweises XOR.
lenum.min = Die Größte von zwei Zahlen.
lenum.max = Die Kleinste von zwei Zahlen.
lenum.angle = Vektorwinkel in Grad.
-lenum.anglediff = Absolute distance between two angles in degrees.
+lenum.anglediff = Absolute Entfernung zwischen zwei Winkeln in Grad.
lenum.len = Vektorlänge.
lenum.sin = Sinus in Grad.
@@ -2597,7 +2649,7 @@ unitlocate.building = Variable für das Ergebnis.
unitlocate.outx = Variable für die X-Koordinate.
unitlocate.outy = Variable für die Y-Koordinate.
unitlocate.group = Gesuchter Blocktyp.
-playsound.limit = If true, prevents this sound from playing\nif it has already been played in the same frame.
+playsound.limit = Wenn true: verhindert, dass dieser Ton abgespielt wird,\nwenn er im gleichen Frame schon einmal gespielt wurde.
lenum.idle = Bewegt sich nicht, baut aber weiter ab.\nDer normale Zustand.
lenum.stop = Bewegung / Abbau / Bau abbrechen.
@@ -2605,7 +2657,7 @@ lenum.unbind = Logiksteuerung deaktivieren.\nNormale KI übernimmt.
lenum.move = Geht zu diese Position.
lenum.approach = Geht auf einen Punkt mit einem bestimmten Radius zu.
lenum.pathfind = Geht zum gegnerischen Spawnpunkt.
-lenum.autopathfind = Automatically pathfinds to the nearest enemy core or drop point.\nThis is the same as standard wave enemy pathfinding.
+lenum.autopathfind = Läuft zum nächsten feindlichen Kern oder Spawnbereich.
lenum.target = Schießt auf eine Position.
lenum.targetp = Schießt auf eine Einheit und sagt deren Position voraus.
lenum.itemdrop = Materialien abwerfen.
@@ -2616,13 +2668,39 @@ lenum.payenter = Betritt den Fracht-Block, auf dem sich die Einheit befindet.
lenum.flag = Zahl, mit der eine Einheit identifiziert werden kann.
lenum.mine = Erz von einer Position abbauen.
lenum.build = Einen Block bauen.
-lenum.getblock = Fetch building, floor and block type at coordinates.\nUnit must be in range of the position, otherwise null is returned.
+lenum.getblock = Gibt den Gebäude-, Boden- und Blocktyp and den gegebenen Koordinaten zurück.\nDie Position muss in Reichweite der Einheit sein, sonst wird null zurückgegeben.
lenum.within = Prüft, ob eine Einheit in einem Radius um einen Punkt ist.
lenum.boost = Aktiviert / deaktiviert den Boost.
-lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle.
-lenum.texture = Texture name straight from game's texture atlas (using kebab-case naming style).\nIf printFlush is set to true, consumes text buffer content as text argument.
-lenum.texturesize = Size of texture in tiles. Zero value scales marker width to original texture's size.
-lenum.autoscale = Whether to scale marker corresponding to player's zoom level.
+lenum.flushtext = Verschiebt den Inhalt des Print Buffers wenn möglich zu einem Marker.\nWenn fetch true ist, wird versucht, Eigenschaften vom Locale Bundle der Karte oder des Spiels zu lesen.
+lenum.texture = Name einer Textur direkt aus dem Texturatlas des Spiels (bennant mit kebab-case naming style).\nWenn printFlush true ist, wird der Inhalt des Textspeichers als Argument genommen und gelöscht.
+lenum.texturesize = Größe einer Textur in Kacheln. Zero value scales marker width to original texture's size.
+lenum.autoscale = Ob der Marker entsprechend des Zoom-Levels des Spielers skaliert werden soll.
lenum.posi = Indexed position, used for line and quad markers with index zero being the first position.
-lenum.uvi = Texture's position ranging from zero to one, used for quad markers.
+lenum.uvi = Positionen auf der Textur von 0 bis 1, für quad marker benutzt.
lenum.colori = Indexed position, used for line and quad markers with index zero being the first color.
+lenum.wavetimer = Whether the waves come automatically on a timer. If not, waves come when the play button is pressed.
+lenum.wave = Current wave number. Can be anything in non-wave modes.
+lenum.currentwavetime = Wave countdown in ticks.
+lenum.waves = Whether waves are spawnable at all.
+lenum.wavesending = Whether the waves can be manually summoned with the play button.
+lenum.attackmode = Determines if gamemode is attack mode.
+lenum.wavespacing = Time between waves in ticks.
+lenum.enemycorebuildradius = No-build zone around enemy core radius.
+lenum.dropzoneradius = Radius around enemy wave drop zones.
+lenum.unitcap = Base unit cap. Can still be increased by blocks.
+lenum.lighting = Whether ambient lighting is enabled.
+lenum.buildspeed = Multiplier for building speed.
+lenum.unithealth = How much health units start with.
+lenum.unitbuildspeed = How fast unit factories build units.
+lenum.unitcost = Multiplier of resources that units take to build.
+lenum.unitdamage = How much damage units deal.
+lenum.blockhealth = How much health blocks start with.
+lenum.blockdamage = How much damage blocks (turrets) deal.
+lenum.rtsminweight = Minimum "advantage" needed for a squad to attack. Higher -> more cautious.
+lenum.rtsminsquad = Minimum size of attack squads.
+lenum.maparea = Playable map area. Anything outside the area will not be interactable.
+lenum.ambientlight = Ambient light color. Used when lighting is enabled.
+lenum.solarmultiplier = Multiplies power output of solar panels.
+lenum.dragmultiplier = Environment drag multiplier.
+lenum.ban = Blocks or units that cannot be placed or built.
+lenum.unban = Unban a unit or block.
diff --git a/core/assets/bundles/bundle_es.properties b/core/assets/bundles/bundle_es.properties
index 927a67c6ef..19bb2d0096 100644
--- a/core/assets/bundles/bundle_es.properties
+++ b/core/assets/bundles/bundle_es.properties
@@ -14,7 +14,7 @@ link.f-droid.description = Ver en F-Droid
link.wiki.description = Wiki oficial de Mindustry
link.suggestions.description = Sugerir nuevas características
link.bug.description = ¿Encontraste un error? Puedes reportarlo aquí
-linkopen = This server has sent you a link. Are you sure you want to open it?\n\n[sky]{0}
+linkopen = Este servidor te ha enviado un enlace. ¿Estás seguro de que quieres abrirlo?\n\n[sky]{0}
linkfail = ¡Error al abrir el enlace!\nLa URL se ha copiado al portapapeles.
screenshot = Captura de pantalla guardada en {0}
screenshot.invalid = El mapa es demasiado grande, no hay suficiente memoria para la captura de pantalla.
@@ -131,6 +131,7 @@ feature.unsupported = Tu dispositivo no es compatible con esta característica.
mods.initfailed = [red]⚠[] La anterior ejecución de Mindustry no pudo inicializarse correctamente. Seguramente fue causado por algún mod erróneo.\n\nPara evitar un bucle de errores al iniciar el juego, [red]se han desactivado todos los mods.[]
mods = Mods
+mods.name = Mod:
mods.none = [lightgray]¡No se han encontrado mods!
mods.guide = Guía sobre mods
mods.report = Reportar error
@@ -155,7 +156,7 @@ mod.erroredcontent = [scarlet]Contenido erróneo
mod.circulardependencies = [red]Circular Dependencies
mod.incompletedependencies = [red]Incomplete Dependencies
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.outdatedv7.details = Este mod no es compatible con la última versión del juego. Su autor debe actualizarlo, y añadir [accent]minGameVersion: 136[] al fichero [accent]mod.json[].
+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 = 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.
@@ -164,7 +165,6 @@ mod.incompletedependencies.details = Este mod no se puede cargar debido a depend
mod.requiresversion = Requiere la versión del juego: [red]{0}
mod.errors = Ha ocurrido un fallo al cargar el contenido.
mod.noerrorplay = [scarlet]Se están ejecutando algunos mods con fallos.[]Debes deshabilitarlos o arreglar los errores antes de jugar.
-mod.nowdisabled = [scarlet]El mod '{0}' necesita ejecutarse junto a otros mods de los que depende:[accent] {1}\n[lightgray]Es necesario descargar primero estos mods.\nEste mod se desactivará automaticamente.
mod.enable = Activar
mod.requiresrestart = El juego se cerrará para aplicar los cambios del mod.
mod.reloadrequired = [scarlet]Es necesario reiniciar
@@ -179,11 +179,20 @@ mod.missing = Esta partida guardada usa mods que has actualizado recientemente o
mod.preview.missing = Antes de publicar este mod en Steam Workshop, debes añadir una imagen de vista previa.\nAñade una imagen llamada[accent] preview.png[] en la carpeta del mod e inténtalo de nuevo.
mod.folder.missing = Sólo los mods en forma de carpeta se pueden publicar en Steam Workshop.\nPara convertir cualquier mod en una carpeta, descomprime su archivo a una carpeta y elimina el zip anterior, luego reinicia el juego o vuelve a cargar tus mods.
mod.scripts.disable = Tu dispositivo no soporta mods con scripts. Debes desactivar esos mods para jugar.
+mod.dependencies.error = [scarlet]A los mods les faltan dependencias
+mod.dependencies.soft = (opcional)
+mod.dependencies.download = Importar
+mod.dependencies.downloadreq = Se requiere importar
+mod.dependencies.downloadall = Importar TODO
+mod.dependencies.status = Resultados de importación
+mod.dependencies.success = Descargado exitosamente:
+mod.dependencies.failure = Descarga fallida:
+mod.dependencies.imported = "Este mod requiere dependencias. ¿Quieres descargarlo?
about.button = Más información
name = Nombre:
noname = Elige un[accent] nombre de jugador[] primero.
-search = Search:
+search = Buscar:
planetmap = Mapa del planeta
launchcore = Lanzar núcleo
filename = Nombre del archivo:
@@ -295,6 +304,7 @@ 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.
cantconnect = No es posible unirse a la partida ([accent]{0}[]).
connecting = [accent]Conectando...
reconnecting = [accent]Reconectado...
@@ -463,6 +473,7 @@ editor.shiftx = Trasladar X
editor.shifty = Trasladar Y
workshop = Steam Workshop
waves.title = Oleadas
+waves.team = Team
waves.remove = Borrar
waves.every = cada
waves.waves = oleada(s)
@@ -720,14 +731,18 @@ loadout = Carga inicial
resources = Recursos
resources.max = Max
bannedblocks = Bloques prohibidos
+unbannedblocks = Unbanned Blocks
objectives = Objetivos
bannedunits = Unidades prohibidas
+unbannedunits = Unbanned Units
bannedunits.whitelist = Sólo permitir unidades seleccionadas
bannedblocks.whitelist = Sólo permitir bloques seleccionados
addall = Añadir todo
launch.from = Lanzando desde: [accent]{0}
launch.capacity = Capacidad de objetos por envío: [accent]{0}
launch.destination = Destino: {0}
+landing.sources = Source Sectors: [accent]{0}[]
+landing.import = Max Total Import: {0}[accent]{1}[lightgray]/min
configure.invalid = La cantidad debe ser un número entre 0 y {0}.
add = Añadir...
guardian = Guardián
@@ -766,7 +781,9 @@ sectors.stored = Almacenado:
sectors.resume = Reanudar
sectors.launch = Lanzar
sectors.select = Seleccionar
+sectors.launchselect = Select Launch Destination
sectors.nonelaunch = [lightgray]Ninguno (sol)
+sectors.redirect = Redirect Launch Pads
sectors.rename = Renombrar sector
sectors.enemybase = [scarlet]Base enemiga
sectors.vulnerable = [scarlet]Vulnerable
@@ -798,6 +815,10 @@ difficulty.easy = Easy
difficulty.normal = Normal
difficulty.hard = Hard
difficulty.eradication = Eradication
+difficulty.enemyHealthMultiplier = Enemy Health: {0}
+difficulty.enemySpawnMultiplier = Enemy Amount: {0}
+difficulty.waveTimeMultiplier = Wave Timer: {0}
+difficulty.nomodifiers = [lightgray](No modifiers)
planets = Planetas
@@ -1031,6 +1052,7 @@ stat.buildspeedmultiplier = Multiplicador de velocidad de construcción
stat.reactive = Reacciona con
stat.immunities = Inmune a
stat.healing = Curación
+stat.efficiency = [stat]{0}% Efficiency
ability.forcefield = Área de Escudo
ability.forcefield.description = Projecta un campo de fuerza que absorve balas
@@ -1077,6 +1099,7 @@ ability.stat.buildtime = [stat]{0} sec[lightgray] build time
bar.onlycoredeposit = Sólo se permite depositar en el núcleo
bar.drilltierreq = Requiere un taladro mejor
+bar.nobatterypower = Insufficieny Battery Power
bar.noresources = Recursos insuficientes
bar.corereq = Requiere un núcleo base
bar.corefloor = Requiere colocarse en una zona designada para ello
@@ -1085,6 +1108,7 @@ bar.drillspeed = Velocidad del taladro: {0}/s
bar.pumpspeed = Velocidad de bombeado: {0}/s
bar.efficiency = Eficiencia: {0}%
bar.boost = Aceleración: +{0}%
+bar.powerbuffer = Battery Power: {0}/{1}
bar.powerbalance = Energía: {0}/s
bar.powerstored = Almacenado: {0}/{1}
bar.poweramount = Energía: {0}
@@ -1095,6 +1119,7 @@ bar.capacity = Capacidad: {0}
bar.unitcap = {0} {1}/{2}
bar.liquid = Líquido
bar.heat = Calor
+bar.cooldown = Cooldown
bar.instability = Inestabilidad
bar.heatamount = Calor: {0}
bar.heatpercent = Calor: {0} ({1}%)
@@ -1119,6 +1144,7 @@ bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
bullet.frags = [stat]{0}[lightgray]x proyectiles fragmentados:
bullet.lightning = [stat]{0}[lightgray]x rayos ~ [stat]{1}[lightgray] daño
bullet.buildingdamage = [stat]{0}%[lightgray] daño a estructuras
+bullet.shielddamage = [stat]{0}%[lightgray] shield damage
bullet.knockback = [stat]{0}[lightgray] empuje
bullet.pierce = [stat]{0}[lightgray]x perforación
bullet.infinitepierce = [stat]perforante
@@ -1145,6 +1171,7 @@ unit.minutes = mins
unit.persecond = /seg
unit.perminute = /min
unit.timesspeed = x velocidad
+unit.multiplier = x
unit.percent = %
unit.shieldhealth = Escudo
unit.items = objetos
@@ -1221,11 +1248,13 @@ 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.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.bridgeopacity.name = Opacidad de puentes
setting.playerchat.name = Mostrar chat de burbuja de jugadores
setting.showweather.name = Efectos visuales climáticos
@@ -1234,6 +1263,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.
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
@@ -1314,6 +1346,7 @@ keybind.shoot.name = Disparar
keybind.zoom.name = Zoom
keybind.menu.name = Menú
keybind.pause.name = Pausa
+keybind.skip_wave.name = Skip Wave
keybind.pause_building.name = Pausar/Reanudar construcción
keybind.minimap.name = Minimapa
keybind.planet_map.name = Mapa del planeta
@@ -1381,12 +1414,14 @@ rules.unitcostmultiplier = Unit Cost Multiplier
rules.unithealthmultiplier = Multiplicador de vida de unidades
rules.unitdamagemultiplier = Multiplicador de daño de unidades
rules.unitcrashdamagemultiplier = Unit Crash Damage Multiplier
+rules.unitminespeedmultiplier = Unit Mine Speed Multiplier
rules.solarmultiplier = Multiplicador de energía solar
rules.unitcapvariable = Las categorías del núcleo alteran el límite máximo de unidades
rules.unitpayloadsexplode = Carried Payloads Explode With The Unit
rules.unitcap = Límite base de unidades
rules.limitarea = Limitar área del mapa
rules.enemycorebuildradius = Radio de zona anti-construcción del núcleo enemigo:[lightgray] (bloques)
+rules.extracorebuildradius = Extra No-Build Radius:[lightgray] (tiles)
rules.wavespacing = Intervalo entre oleadas:[lightgray] (seg)
rules.initialwavespacing = Retraso inicial de oleadas:[lightgray] (seg)
rules.buildcostmultiplier = Multiplicador de coste de construcción
@@ -1409,6 +1444,9 @@ rules.title.planet = Planeta
rules.lighting = Iluminación
rules.fog = Ocultar terreno inexplorado (Fog of War)
rules.invasions = Enemy Sector Invasions
+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.fire = Fuego
@@ -1645,7 +1683,7 @@ block.inverted-sorter.name = Clasificador invertido
block.message.name = Mensaje
block.reinforced-message.name = Mensaje reforzado
block.world-message.name = Mensaje estático
-block.world-switch.name = World Switch
+block.world-switch.name = Interruptor estático
block.illuminator.name = Iluminador
block.overflow-gate.name = Compuerta de desborde
block.underflow-gate.name = Compuerta de subdesbordamiento
@@ -1729,6 +1767,8 @@ block.meltdown.name = Meltdown
block.foreshadow.name = Foreshadow
block.container.name = Contenedor
block.launch-pad.name = Plataforma de lanzamiento
+block.advanced-launch-pad.name = Plataforma de lanzamiento
+block.landing-pad.name = Plataforma de aterrizaje
block.segment.name = Segment
block.ground-factory.name = Fábrica terrestre
block.air-factory.name = Fábrica aérea
@@ -1786,6 +1826,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.redmat.name = Manto rojo
block.bluemat.name = Manto azul
block.core-zone.name = Zona de núcleo
@@ -1825,7 +1867,7 @@ block.electric-heater.name = Radiador eléctrico
block.slag-heater.name = Caldera de magma
block.phase-heater.name = Radiador de fase
block.heat-redirector.name = Redireccionador térmico
-block.small-heat-redirector.name = Small Heat Redirector
+block.small-heat-redirector.name = Redireccionador térmico pequeño
block.heat-router.name = Enrutador térmico
block.slag-incinerator.name = Incinerador de magma
block.carbide-crucible.name = Crisol de carburo
@@ -1873,7 +1915,7 @@ block.chemical-combustion-chamber.name = Cámara de combustión química
block.pyrolysis-generator.name = Generador pirolítico
block.vent-condenser.name = Condensador de grietas
block.cliff-crusher.name = Triturador de paredes
-block.large-cliff-crusher.name = Advanced Cliff Crusher
+block.large-cliff-crusher.name = Triturador de paredes avanzado
block.plasma-bore.name = Perforador de plasma
block.large-plasma-bore.name = Perforador de plasma grande
block.impact-drill.name = Taladro de impacto
@@ -1953,7 +1995,7 @@ hint.launch = Cuando tengas sufientes recursos, puedes [accent]Lanzar el núcleo
hint.launch.mobile = Cuando tengas sufientes recursos, puedes [accent]Lanzar el núcleo[] escogiendo como objetivo sectores cercanos en el [accent]Mapa[], disponible desde el [accent]Menú de pausa[].
hint.schematicSelect = Mantén [accent][[F][] y arrastra para crear una selección de bloques que puedes copiar y pegar.\n\nUsa [accent][[Clic central][] para seleccionar un tipo de bloque.
hint.rebuildSelect = Mantén [accent][[B][] y arrastra para seleccionar planos de bloques destruidos.\nEsto los reconstruirá automáticamente.
-hint.rebuildSelect.mobile = Select the \ue874 copy button, then tap the \ue80f rebuild button and drag to select destroyed block plans.\nThis will rebuild them automatically.
+hint.rebuildSelect.mobile = Select the :copy: copy button, then tap the :wrench: rebuild button and drag to select destroyed block plans.\nThis will rebuild them automatically.
hint.conveyorPathfind = Mantener [accent][[L-Ctrl][] mientras arrastras cintas transportadoras generará automáticamente una ruta.
hint.conveyorPathfind.mobile = Activa el [accent]modo diagonal[] y arrastra cintas transportadoras para generar una ruta inteligente.
hint.boost = Mantén [accent][[L-Shift][] para sobrevolar obstáculos con tu unidad actual.\n\nSólo algunas unidades terrestres disponen de propulsores que les otorgan esta habilidad.
@@ -1971,47 +2013,47 @@ hint.coreIncinerate = Tras completar la capacidad máxima de almacenamiento en e
hint.factoryControl = Para establecer el [accent]destino de salida[] de una fábrica de unidades, haz clic sobre dicho bloque desde el modo comando, luego clic derecho en el destino a elegir.\nLas unidades fabricadas intentarán desplazarse allí automáticamente.
hint.factoryControl.mobile = Para establecer el [accent]destino de salida[] de una fábrica de unidades, toca dicho bloque en modo comando, y luego toca el destino que quieras elegir.\nLas unidades fabricadas intentarán desplazarse hasta esta ubicación automáticamente.
-gz.mine = Acércate al \uf8c4 [accent]mineral de cobre[] del suelo y haz clic sobre él para empezar a minarlo.
-gz.mine.mobile = Acércate al \uf8c4 [accent]mineral de cobre[] del suelo y tócalo para empezar a minarlo.
-gz.research = Abre el menú de \ue875 investigaciones tecnológicas.\nInvestiga el \uf870 [accent]taladro mecánico[], luego selecciónalo en el menú inferior derecho.\nHaz clic sobre una veta de cobre para colocar el taladro.
-gz.research.mobile = Abre el menú de \ue875 investigaciones tecnológicas.\nInvestiga el \uf870 [accent]taladro mecánico[], luego selecciónalo en el menú inferior derecho.\nToca una veta de cobre para colocar el taladro.\n\nPulsa el \ue800 [accent]botón de confirmación[] de abajo a la derecha para confirmar.
-gz.conveyors = Investiga y construye \uf896 [accent]cintas transportadoras[] para mover los recursos minados\ndesde los taladros hasta el núcleo.\n\nArrastra para colocar múltiples bloques de cintas transportadoras.\nUsa la [accent]rueda del ratón[] para cambiar su dirección.
-gz.conveyors.mobile = Investiga y construye \uf896 [accent]cintas transportadoras[] para mover los recursos minados \ndesde los taladros hasta el núcleo.\n\nMantén pulsado un segundo y arrastra para colocar múltiples bloques de cintas transportadoras.
+gz.mine = Acércate al :ore-copper: [accent]mineral de cobre[] del suelo y haz clic sobre él para empezar a minarlo.
+gz.mine.mobile = Acércate al :ore-copper: [accent]mineral de cobre[] del suelo y tócalo para empezar a minarlo.
+gz.research = Abre el menú de :tree: investigaciones tecnológicas.\nInvestiga el :mechanical-drill: [accent]taladro mecánico[], luego selecciónalo en el menú inferior derecho.\nHaz clic sobre una veta de cobre para colocar el taladro.
+gz.research.mobile = Abre el menú de :tree: investigaciones tecnológicas.\nInvestiga el :mechanical-drill: [accent]taladro mecánico[], luego selecciónalo en el menú inferior derecho.\nToca una veta de cobre para colocar el taladro.\n\nPulsa el \ue800 [accent]botón de confirmación[] de abajo a la derecha para confirmar.
+gz.conveyors = Investiga y construye :conveyor: [accent]cintas transportadoras[] para mover los recursos minados\ndesde los taladros hasta el núcleo.\n\nArrastra para colocar múltiples bloques de cintas transportadoras.\nUsa la [accent]rueda del ratón[] para cambiar su dirección.
+gz.conveyors.mobile = Investiga y construye :conveyor: [accent]cintas transportadoras[] para mover los recursos minados \ndesde los taladros hasta el núcleo.\n\nMantén pulsado un segundo y arrastra para colocar múltiples bloques de cintas transportadoras.
gz.drills = Expande la operación minera.\nConstruye más taladros mecánicos.\nExtrae 100 de cobre.
-gz.lead = El \uf837 [accent]plomo[] es otro recurso muy usado.\nConstruye taladros para extraer plomo.
-gz.moveup = \ue804 Sigue explorando para más objetivos.
-gz.turrets = Investiga y construye 2 torretas \uf861 [accent]Duo[] para defender el núcleo.\nLas torretas Duo requieren un suministro de \uf838 [accent]munición[] mediante cintas transportadoras.
+gz.lead = El :lead: [accent]plomo[] es otro recurso muy usado.\nConstruye taladros para extraer plomo.
+gz.moveup = :up: Sigue explorando para más objetivos.
+gz.turrets = Investiga y construye 2 torretas :duo: [accent]Duo[] para defender el núcleo.\nLas torretas Duo requieren un suministro de \uf838 [accent]munición[] mediante cintas transportadoras.
gz.duoammo = Suministra [accent]cobre[] a las torretas Duo, usando cintas transportadoras.
-gz.walls = Los [accent]muros[] pueden evitar que las estructuras reciban daño.\nConstruye \uf8ae [accent]muros de cobre[] alrededor de las torretas.
+gz.walls = Los [accent]muros[] pueden evitar que las estructuras reciban daño.\nConstruye :copper-wall: [accent]muros de cobre[] alrededor de las torretas.
gz.defend = Se aproxima un enemigo, prepárate para defenderte.
-gz.aa = Las unidades aéreas no son tan fáciles de eliminar con torretas comunes.\n\uf860 Las torretas [accent]Scatter[] proporcionan una excelente defensa anti-aérea, pero utilizan \uf837 [accent]plomo[] como munición.
+gz.aa = Las unidades aéreas no son tan fáciles de eliminar con torretas comunes.\n:scatter: Las torretas [accent]Scatter[] proporcionan una excelente defensa anti-aérea, pero utilizan :lead: [accent]plomo[] como munición.
gz.scatterammo = Suministra [accent]plomo[] a la torreta Scatter mediante cintas transportadoras.
gz.supplyturret = [accent]Cargar torreta
gz.zone1 = Esta es la zona de aterrizaje del enemigo.
gz.zone2 = Cualquier estructura en el área será destruida al comenzar una oleada.
gz.zone3 = Ahora comenzará una oleada.\nPrepárate.
gz.finish = Construye más torretas, extrae más recursos,\ny defiéndete de todas las oleadas para [accent]capturar este sector[].
-onset.mine = Haz clic para minar \uf748 [accent]berilio[] de las paredes.\n\nUsa [accent][[WASD] para moverte.
-onset.mine.mobile = Toca para minar \uf748 [accent]berilio[] de las paredes.
-onset.research = Abre el \ue875 menú de investigaciones.\nInvestiga y construye una \uf73e [accent]turbina condensadora[] en la grieta.\nEsto generará [accent]energía[].
-onset.bore = Investiga y construye un \uf741 [accent]perforador de plasma[].\nEste minará recursos de las paredes automáticamente.
-onset.power = Para [accent]encender[] el perforador de plasma, investiga y coloca un \uf73d [accent]nodo de energía ortogonal[].\nConecta la turbina condensadora al perforador de plasma.
-onset.ducts = Investiga y construye \uf799 [accent]conductos[] para mover los recursos minados desde el perforador de plasma hasta el núcleo.\nArrastra para formar una cadena de transporte con múltiples bloques de conducto.\nUsa la [accent]rueda del ratón[] para cambiar la dirección.
-onset.ducts.mobile = Investiga y construye \uf799 [accent]conductos[] para mover los recursos minados desde el perforador de plasma hasta el núcleo.\n\nPresiona por un segundo y arrastra para crear múltiples bloques de conducto.
+onset.mine = Haz clic para minar :beryllium: [accent]berilio[] de las paredes.\n\nUsa [accent][[WASD] para moverte.
+onset.mine.mobile = Toca para minar :beryllium: [accent]berilio[] de las paredes.
+onset.research = Abre el :tree: menú de investigaciones.\nInvestiga y construye una :turbine-condenser: [accent]turbina condensadora[] en la grieta.\nEsto generará [accent]energía[].
+onset.bore = Investiga y construye un :plasma-bore: [accent]perforador de plasma[].\nEste minará recursos de las paredes automáticamente.
+onset.power = Para [accent]encender[] el perforador de plasma, investiga y coloca un :beam-node: [accent]nodo de energía ortogonal[].\nConecta la turbina condensadora al perforador de plasma.
+onset.ducts = Investiga y construye :duct: [accent]conductos[] para mover los recursos minados desde el perforador de plasma hasta el núcleo.\nArrastra para formar una cadena de transporte con múltiples bloques de conducto.\nUsa la [accent]rueda del ratón[] para cambiar la dirección.
+onset.ducts.mobile = Investiga y construye :duct: [accent]conductos[] para mover los recursos minados desde el perforador de plasma hasta el núcleo.\n\nPresiona por un segundo y arrastra para crear múltiples bloques de conducto.
onset.moremine = Expande la operación minera.\nConstruye más perforadores de plasma y usa nodos de energía ortogonales y conductos para complementarlos.\nExtrae 200 de berilio.
-onset.graphite = Otros bloques más complejos requieren \uf835 [accent]grafito[].\nConstruye perforadores de plasma para extraer grafito.
-onset.research2 = Empieza a investigar las [accent]fábricas[].\nDesbloquea el \uf74d [accent]triturador de paredes[] y el \uf779 [accent]horno de arco de silicio[].
-onset.arcfurnace = El horno de arco necesita \uf834 [accent]arena[] y \uf835 [accent]grafito[] para producir \uf82f [accent]silicio[].\nTambién requiere [accent]energía[] para funcionar.
-onset.crusher = Usa los \uf74d [accent]trituradores de paredes[] para conseguir arena.
-onset.fabricator = Usa [accent]unidades[] para explorar el mapa, defender tus estructuras, y atacar al enemigo. Investiga y construye un \uf6a2 [accent]fabricador de tanques[].
+onset.graphite = Otros bloques más complejos requieren :graphite: [accent]grafito[].\nConstruye perforadores de plasma para extraer grafito.
+onset.research2 = Empieza a investigar las [accent]fábricas[].\nDesbloquea el :cliff-crusher: [accent]triturador de paredes[] y el :silicon-arc-furnace: [accent]horno de arco de silicio[].
+onset.arcfurnace = El horno de arco necesita :sand: [accent]arena[] y :graphite: [accent]grafito[] para producir :silicon: [accent]silicio[].\nTambién requiere [accent]energía[] para funcionar.
+onset.crusher = Usa los :cliff-crusher: [accent]trituradores de paredes[] para conseguir arena.
+onset.fabricator = Usa [accent]unidades[] para explorar el mapa, defender tus estructuras, y atacar al enemigo. Investiga y construye un :tank-fabricator: [accent]fabricador de tanques[].
onset.makeunit = Produce una unidad.\nUsa el botón "?" para ver los requisitos de la fábrica seleccionada.
-onset.turrets = Las unidades son efectivas, pero las [accent]torretas[] pueden ofrecer mejores capacidades defensivas si se usan de forma efectiva.\nConstruye una torreta \uf6eb [accent]Breach[].\nLas torretas requieren \uf748 [accent]munición[].
+onset.turrets = Las unidades son efectivas, pero las [accent]torretas[] pueden ofrecer mejores capacidades defensivas si se usan de forma efectiva.\nConstruye una torreta :breach: [accent]Breach[].\nLas torretas requieren :beryllium: [accent]munición[].
onset.turretammo = Suministra [accent]munición de berilio[] a la torreta.
-onset.walls = Los [accent]muros[] pueden evitar que las estructuras reciban daño.\nColoca unos \uf6ee [accent]muros de berilio[] alrededor de la torreta.
+onset.walls = Los [accent]muros[] pueden evitar que las estructuras reciban daño.\nColoca unos :beryllium-wall: [accent]muros de berilio[] alrededor de la torreta.
onset.enemies = Se aproxima un enemigo, prepárate para defenderte.
onset.defenses = [accent]Set up defenses:[lightgray] {0}
onset.attack = El enemigo es ahora vulnerable. Contraataca.
-onset.cores = Se pueden colocar nuevos núcleos sobre las [accent]zonas de núcleo[].\nLos núcleos adicionales funcionan como bases avanzadas y comparten el inventario de recursos con otros núcleos.\nColoca un \uf725 núcleo.
+onset.cores = Se pueden colocar nuevos núcleos sobre las [accent]zonas de núcleo[].\nLos núcleos adicionales funcionan como bases avanzadas y comparten el inventario de recursos con otros núcleos.\nColoca un :core-bastion: núcleo.
onset.detect = El enemigo te detectará en 2 minutos.\nEstablece sistemas de defensa, minería, y producción.
#Don't translate these yet!
@@ -2178,7 +2220,9 @@ block.vault.description = Almacena una gran cantidad de objetos de cada tipo. Su
block.container.description = Almacena una pequeña cantidad de objetos de cada tipo. Su contenido se puede recuperar con un descargador.
block.unloader.description = Descarga el objeto seleccionado de bloques cercanos.
block.launch-pad.description = Lanza lotes de recursos a los sectores seleccionados.
-block.launch-pad.details = Sistema suborbital para transportar recursos. Las cápsulas de carga son frágiles e incapaces de sobrevivir al aterrizaje.
+block.advanced-launch-pad.description = Launches batches of items to selected sectors. Only accepts one item type at a time.
+block.advanced-launch-pad.details = Sub-orbital system for point-to-point transportation of resources.
+block.landing-pad.description = Receives items from launch pads in other sectors. Requires large amounts of water to protect against impacts of landings.
block.duo.description = Dispara balas sencillas a los enemigos.
block.scatter.description = Dispara proyectiles de plomo, chatarra o metacristal a las unidades aéreas enemigas.
block.scorch.description = Quema a cualquier enemigo terrestre cercano a él. Altamente efectivo a corto alcance.
@@ -2287,6 +2331,7 @@ block.unit-cargo-loader.description = Construye drones de carga. Estos drones di
block.unit-cargo-unload-point.description = Puntos de descarga para los drones de carga. Aceptan objetos que coincidan con el filtro seleccionado.
block.beam-node.description = Transmite energía a otros bloques ortogonalmente. Almacena una pequeña cantidad de energía.
block.beam-tower.description = Transmite energía a otros bloques ortogonalmente. Almacena grandes cantidades de energía. Tiene un mayor alcance.
+block.beam-link.description = Transmits power over vast distances.\nOnly capable of connecting to adjacent structures or other beam links.
block.turbine-condenser.description = Genera energía si se coloca sobre grietas de gases en el terreno. Produce pequeñas cantidades de agua.
block.chemical-combustion-chamber.description = Genera energía mediante arquicita y ozono.
block.pyrolysis-generator.description = Genera grandes cantidades de energía mediante arquicita y magma. También produce agua.
@@ -2380,6 +2425,7 @@ unit.emanate.description = Construye estructuras para defender el núcleo Acropo
lst.read = Lee un número desde una unidad de memoria conectada.
lst.write = Escribe un número en una unidad de memoria conectada.
lst.print = Añade texto a la cola para imprimir texto.\nNo mostrará nada hasta que se use [accent]Print Flush[].
+lst.printchar = Add a UTF-16 character or content icon to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used.
lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example"
lst.draw = Añade una operación a la cola para dibujar.\nNo mostrará nada hasta que se use [accent]Draw Flush[].
lst.drawflush = Muestra los datos en cola de operaciones [accent]Draw[] en un monitor gráfico.
@@ -2467,6 +2513,7 @@ lenum.shootp = Dispara a una unidad/estructura con predicción de velocidad.
lenum.config = Configuración de estructura, por ejemplo: el objeto seleccionado en un clasificador.
lenum.enabled = Si el bloque está activado.
laccess.currentammotype = Current ammo item/liquid of a turret.
+laccess.memorycapacity = Number of cells in a memory block.
laccess.color = Color del iluminador.
laccess.controller = Controlador de unidad. Si se controla mediante un procesador, devuelve dicho procesador.\nSi está en formación, devuelve su líder.\nDe otra forma, devuelve la misma unidad.
@@ -2474,6 +2521,7 @@ laccess.dead = Si una unidad/bloque es destruída o inválida.
laccess.controlled = Devuelve:\n[accent]@ctrlProcessor[] si el control de la unidad lo tiene un procesador\n[accent]@ctrlPlayer[] si el control de la unidad/bloque lo tiene un jugador\n[accent]@ctrlFormation[] si la unidad está en formación\nDe otra forma, devuelve 0.
laccess.progress = Progreso de una acción, 0 a 1.\nDevuelve el valor de una producción, la recarga de una torreta o el progreso de una construcción.
laccess.speed = Velocidad máxima de una unidad, en bloques/segundo.
+laccess.size = Size of a unit/building or the length of a string.
laccess.id = ID of a unit/block/item/liquid.\nThis is the inverse of the lookup operation.
lcategory.unknown = Desconocido
@@ -2619,3 +2667,29 @@ lenum.autoscale = Whether to scale marker corresponding to player's zoom level.
lenum.posi = Indexed position, used for line and quad markers with index zero being the first position.
lenum.uvi = Texture's position ranging from zero to one, used for quad markers.
lenum.colori = Indexed position, used for line and quad markers with index zero being the first color.
+lenum.wavetimer = Whether the waves come automatically on a timer. If not, waves come when the play button is pressed.
+lenum.wave = Current wave number. Can be anything in non-wave modes.
+lenum.currentwavetime = Wave countdown in ticks.
+lenum.waves = Whether waves are spawnable at all.
+lenum.wavesending = Whether the waves can be manually summoned with the play button.
+lenum.attackmode = Determines if gamemode is attack mode.
+lenum.wavespacing = Time between waves in ticks.
+lenum.enemycorebuildradius = No-build zone around enemy core radius.
+lenum.dropzoneradius = Radius around enemy wave drop zones.
+lenum.unitcap = Base unit cap. Can still be increased by blocks.
+lenum.lighting = Whether ambient lighting is enabled.
+lenum.buildspeed = Multiplier for building speed.
+lenum.unithealth = How much health units start with.
+lenum.unitbuildspeed = How fast unit factories build units.
+lenum.unitcost = Multiplier of resources that units take to build.
+lenum.unitdamage = How much damage units deal.
+lenum.blockhealth = How much health blocks start with.
+lenum.blockdamage = How much damage blocks (turrets) deal.
+lenum.rtsminweight = Minimum "advantage" needed for a squad to attack. Higher -> more cautious.
+lenum.rtsminsquad = Minimum size of attack squads.
+lenum.maparea = Playable map area. Anything outside the area will not be interactable.
+lenum.ambientlight = Ambient light color. Used when lighting is enabled.
+lenum.solarmultiplier = Multiplies power output of solar panels.
+lenum.dragmultiplier = Environment drag multiplier.
+lenum.ban = Blocks or units that cannot be placed or built.
+lenum.unban = Unban a unit or block.
diff --git a/core/assets/bundles/bundle_et.properties b/core/assets/bundles/bundle_et.properties
index d03ad98755..ab9b8c4fd7 100644
--- a/core/assets/bundles/bundle_et.properties
+++ b/core/assets/bundles/bundle_et.properties
@@ -3,131 +3,135 @@ credits = Tegijad
contributors = Tõlkijad ja panustajad
discord = Liitu Mindustry Discordi serveriga!
link.discord.description = Ametlik Discordi server
-link.reddit.description = The Mindustry subreddit
+link.reddit.description = Mindustry subreddit
link.github.description = Mängu lähtekood
link.changelog.description = Uuenduste nimekiri versioonide kaupa
link.dev-builds.description = Arendusversioonide ajalugu
link.trello.description = Plaanitud uuenduste nimekiri
link.itch.io.description = Kõik PC-platvormide versioonid
link.google-play.description = Androidi versioon Google Play poes
-link.f-droid.description = F-Droid catalogue listing
+link.f-droid.description = F-Droid kataloog
link.wiki.description = Mängu ametlik viki
-link.suggestions.description = Suggest new features
-link.bug.description = Found one? Report it here
-linkopen = This server has sent you a link. Are you sure you want to open it?\n\n[sky]{0}
+link.suggestions.description = Anna soovitusi
+link.bug.description = Leidsid vea? Kirjuta siia
+linkopen = See server saatis sulle lingi. Oled kindel, et tahad avada?\n\n[sky]{0}
linkfail = Lingi avamine ebaõnnestus!\nVeebiaadress kopeeriti.
screenshot = Kuvatõmmis salvestati: {0}
screenshot.invalid = Maailm on liiga suur: kuvatõmmise salvestamiseks ei pruugi olla piisavalt mälu.
gameover = Mäng läbi!
-gameover.disconnect = Disconnect
+gameover.disconnect = Lahku
gameover.pvp = Võistkond[accent] {0}[] võitis!
-gameover.waiting = [accent]Waiting for next map...
+gameover.waiting = [accent]Ootan järgmist kaarti...
highscore = [accent]Uus rekord!
-copied = Copied.
-indev.notready = This part of the game isn't ready yet
+copied = Kopeeritud.
+indev.notready = See osa mängust ei ole veel valmis
load.sound = Helid
load.map = Maailmad
load.image = Pildid
load.content = Sisu
load.system = Süsteem
-load.mod = Mods
-load.scripts = Scripts
+load.mod = Modid
+load.scripts = Skriptid
-be.update = A new Bleeding Edge build is available:
-be.update.confirm = Download it and restart now?
-be.updating = Updating...
-be.ignore = Ignore
-be.noupdates = No updates found.
-be.check = Check for updates
-mods.browser = Mod Browser
-mods.browser.selected = Selected mod
-mods.browser.add = Install
-mods.browser.reinstall = Reinstall
-mods.browser.view-releases = View Releases
-mods.browser.noreleases = [scarlet]No Releases Found\n[accent]Couldn't find any releases for this mod. Check if the mod's repository has any releases published.
-mods.browser.latest =
-mods.browser.releases = Releases
+be.update = Uus arendusversioon on saadaval:
+be.update.confirm = Lae alla ja taaskäivita?
+be.updating = Värskendan...
+be.ignore = Ignoreeri
+be.noupdates = Ei leidnud värskendusi.
+be.check = Otsi värskendusi
+
+mods.browser = Modi Brauser
+mods.browser.selected = Valitud mod
+mods.browser.add = Paigalda
+mods.browser.reinstall = Taaspaigalda
+mods.browser.view-releases = Kuva Versioonid
+mods.browser.noreleases = [scarlet]Ei leidnud versioone\n[accent]Ei leidnud selle modi jaoks ühtegi väljaannet. Kontrollige, kas modi repositooriumis on avaldatud versioone.
+mods.browser.latest =
+mods.browser.releases = Versioonid
mods.github.open = Repo
-mods.github.open-release = Release Page
-mods.browser.sortdate = Sort by recent
-mods.browser.sortstars = Sort by stars
+mods.github.open-release = Väljastusleht
+mods.browser.sortdate = Sorteeri uusimad enne
+mods.browser.sortstars = Sorteeri tähtede järgi
-schematic = Schematic
-schematic.add = Save Schematic...
-schematics = Schematics
-schematic.search = Search schematics...
-schematic.replace = A schematic by that name already exists. Replace it?
-schematic.exists = A schematic by that name already exists.
-schematic.import = Import Schematic...
-schematic.exportfile = Export File
-schematic.importfile = Import File
-schematic.browseworkshop = Browse Workshop
-schematic.copy = Copy to Clipboard
-schematic.copy.import = Import from Clipboard
-schematic.shareworkshop = Share on Workshop
-schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Flip Schematic
-schematic.saved = Schematic saved.
-schematic.delete.confirm = This schematic will be utterly eradicated.
-schematic.edit = Edit Schematic
-schematic.info = {0}x{1}, {2} blocks
-schematic.disabled = [scarlet]Schematics disabled[]\nYou are not allowed to use schematics on this [accent]map[] or [accent]server.
-schematic.tags = Tags:
-schematic.edittags = Edit Tags
-schematic.addtag = Add Tag
-schematic.texttag = Text Tag
-schematic.icontag = Icon Tag
-schematic.renametag = Rename Tag
-schematic.tagged = {0} tagged
-schematic.tagdelconfirm = Delete this tag completely?
-schematic.tagexists = That tag already exists.
-stats = Stats
-stats.wave = Waves Defeated
-stats.unitsCreated = Units Created
-stats.enemiesDestroyed = Enemies Destroyed
-stats.built = Buildings Built
-stats.destroyed = Buildings Destroyed
-stats.deconstructed = Buildings Deconstructed
-stats.playtime = Time Played
+schematic = Skeem
+schematic.add = Salvesta Skeem...
+schematics = Skeemid
+schematic.search = Otsi skeemide hulgast...
+schematic.replace = Selle nimega skeem juba eksisteerib. Asenda?
+schematic.exists = Selle nimega skeem juba eksisteerib.
+schematic.import = Impordi Skeem...
+schematic.exportfile = Ekspordi Fail
+schematic.importfile = Impordi Fail
+schematic.browseworkshop = Lehitse Workshop'i
+schematic.copy = Kopeeri Lõikelauale
+schematic.copy.import = Impordi Lõikelaualt
+schematic.shareworkshop = Jaga Workshop'is
+schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Peegelda Skeem
+schematic.saved = Skeem salvestatud.
+schematic.delete.confirm = See skeem hävitatakse täielikult.
+schematic.edit = Muuda Skeemi
+schematic.info = {0}x{1}, {2} plokki
+schematic.disabled = [scarlet]Skeemid välja lülitatud[]\nSa ei tohi kasutada skeeme selles [accent]maailmas[] või [accent]serveris.
+schematic.tags = Sildid:
+schematic.edittags = Muuda Silte
+schematic.addtag = Lisa Silt
+schematic.texttag = Tekstisilt
+schematic.icontag = Ikoonisilt
+schematic.renametag = Nimeta Silt Ümber
+schematic.tagged = {0} sildistatud
+schematic.tagdelconfirm = Kustuta see silt täielikult?
+schematic.tagexists = See silt juba eksisteerib.
-globalitems = [accent]Global Items
+stats = Statistika
+stats.wave = Läbitud Laineid
+stats.unitsCreated = Üksusi Loodud
+stats.enemiesDestroyed = Vastaseid Hävitatud
+stats.built = Ehitisi Ehitatud
+stats.destroyed = Ehitisi Hävitatud
+stats.deconstructed = Ehitisi Lammutatud
+stats.playtime = Mängitud Aeg
+
+globalitems = [accent]Globaalsed Materjalid
map.delete = Kas oled kindel, et soovid kustutada\nmaailma "[accent]{0}[]"?
level.highscore = Rekord: [accent]{0}
-level.select = Taseme valimine
+level.select = Taseme valik
level.mode = Mänguviis:
-coreattack = < Tuumik on rünnaku all! >
-nearpoint = [[ [scarlet]LAHKU VAENLASTE MAANDUMISE ALALT[] ]\nVaenlaste maandumisel hävib siin kõik.
-database = Andmebaas
-database.button = Database
-savegame = Salvesta mäng
-loadgame = Lae mäng
-joingame = Liitu mänguga
-customgame = Kohandatud mäng
+coreattack = < Tuum on rünnaku all! >
+nearpoint = [[ [scarlet]LAHKU KOHESELT MAANDUMISPLATSILT[] ]\nVaenlaste maandumisel hävib siin kõik.
+database = Tuumandmebaas
+database.button = Andmebaas
+savegame = Salvesta Mäng
+loadgame = Lae Mäng
+joingame = Liitu Mänguga
+customgame = Kohandatud Mäng
newgame = Uus mäng
none =
-none.found = [lightgray]
-none.inmap = [lightgray]
+none.found = [lightgray]
+none.inmap = [lightgray]
minimap = Kaart
-position = Position
+position = Positsioon
close = Sulge
website = Veebileht
quit = Välju
-save.quit = Salvesta ja välju
+save.quit = Salvesta ja Välju
maps = Maailmad
-maps.browse = Sirvi maailmu
+maps.browse = Sirvi Maailmu
continue = Jätka
maps.none = [lightgray]Ühtegi maailma ei leitud!
invalid = Kehtetu
-pickcolor = Pick Color
-preparingconfig = Konfiguratsiooni ettevalmistamine
-preparingcontent = Sisu ettevalmistamine
-uploadingcontent = Sisu üleslaadimine
-uploadingpreviewfile = Eelvaate faili üleslaadimine
-committingchanges = Muudatuste teostamine
+pickcolor = Vali Värv
+preparingconfig = Konfiguratsiooni Ettevalmistamine
+preparingcontent = Sisu Ettevalmistamine
+uploadingcontent = Sisu Üleslaadimine
+uploadingpreviewfile = Eelvaate Faili Üleslaadimine
+committingchanges = Muudatuste Teostamine
done = Valmis
-feature.unsupported = Your device does not support this feature.
+feature.unsupported = Seade ei toeta seda funktsiooni.
+
mods.initfailed = [red]⚠[] The previous Mindustry instance failed to initialize. This was likely caused by misbehaving mods.\n\nTo prevent a crash loop, [red]all mods have been disabled.[]
mods = Mods
+mods.name = Mod:
mods.none = [lightgray]No mods found!
mods.guide = Modding Guide
mods.report = Report Bug
@@ -152,7 +156,7 @@ mod.erroredcontent = [scarlet]Content Errors
mod.circulardependencies = [red]Circular Dependencies
mod.incompletedependencies = [red]Incomplete Dependencies
mod.requiresversion.details = Requires game version: [accent]{0}[]\nYour game is outdated. This mod requires a newer version of the game (possibly a beta/alpha release) to function.
-mod.outdatedv7.details = This mod is incompatible with the latest version of the game. The author must update it, and add [accent]minGameVersion: 136[] to its [accent]mod.json[] file.
+mod.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 = This mod has been manually blacklisted for causing crashes or other issues with this version of the game. Do not use it.
mod.missingdependencies.details = This mod is missing dependencies: {0}
mod.erroredcontent.details = This game caused errors when loading. Ask the mod author to fix them.
@@ -161,7 +165,6 @@ mod.incompletedependencies.details = This mod is unable to be loaded due to inva
mod.requiresversion = Requires game version: [red]{0}
mod.errors = Errors have occurred loading content.
mod.noerrorplay = [scarlet]You have mods with errors.[] Either disable the affected mods or fix the errors before playing.
-mod.nowdisabled = [scarlet]Mod '{0}' is missing dependencies:[accent] {1}\n[lightgray]These mods need to be downloaded first.\nThis mod will be automatically disabled.
mod.enable = Enable
mod.requiresrestart = The game will now close to apply the mod changes.
mod.reloadrequired = [scarlet]Reload Required
@@ -176,6 +179,15 @@ mod.missing = This save contains mods that you have recently updated or no longe
mod.preview.missing = Before publishing this mod in the workshop, you must add an image preview.\nPlace an image named[accent] preview.png[] into the mod's folder and try again.
mod.folder.missing = Only mods in folder form can be published on the workshop.\nTo convert any mod into a folder, simply unzip its file into a folder and delete the old zip, then restart your game or reload your mods.
mod.scripts.disable = Your device does not support mods with scripts. You must disable these mods to play the game.
+mod.dependencies.error = [scarlet]Mods are missing dependencies
+mod.dependencies.soft = (optional)
+mod.dependencies.download = Import
+mod.dependencies.downloadreq = Import Required
+mod.dependencies.downloadall = Import All
+mod.dependencies.status = Import Results
+mod.dependencies.success = Successfully downloaded:
+mod.dependencies.failure = Failed to download:
+mod.dependencies.imported = This mod requires dependencies. Download?
about.button = Info
name = Nimi:
@@ -291,6 +303,7 @@ disconnect.error = Ühenduse viga.
disconnect.closed = Ühendus on suletud.
disconnect.timeout = Ühendus aegus.
disconnect.data = Maailma andmete allalaadimine ebaõnnestus!
+disconnect.snapshottimeout = Timed out while receiving UDP snapshots.\nThis may be caused by an unstable network or connection.
cantconnect = Mänguga ei saanud liituda ([accent]{0}[]).
connecting = [accent]Ühendamine...
reconnecting = [accent]Reconnecting...
@@ -459,6 +472,7 @@ editor.shiftx = Shift X
editor.shifty = Shift Y
workshop = Workshop
waves.title = Lahingulained
+waves.team = Team
waves.remove = Eemalda
waves.every = iga
waves.waves = laine järel
@@ -706,14 +720,18 @@ loadout = Loadout
resources = Resources
resources.max = Max
bannedblocks = Banned Blocks
+unbannedblocks = Unbanned Blocks
objectives = Objectives
bannedunits = Banned Units
+unbannedunits = Unbanned Units
bannedunits.whitelist = Banned Units As Whitelist
bannedblocks.whitelist = Banned Blocks As Whitelist
addall = Add All
launch.from = Launching From: [accent]{0}
launch.capacity = Launching Item Capacity: [accent]{0}
launch.destination = Destination: {0}
+landing.sources = Source Sectors: [accent]{0}[]
+landing.import = Max Total Import: {0}[accent]{1}[lightgray]/min
configure.invalid = Arv peab olema 0 ja {0} vahel.
add = Lisa...
guardian = Guardian
@@ -752,7 +770,9 @@ sectors.stored = Stored:
sectors.resume = Resume
sectors.launch = Launch
sectors.select = Select
+sectors.launchselect = Select Launch Destination
sectors.nonelaunch = [lightgray]none (sun)
+sectors.redirect = Redirect Launch Pads
sectors.rename = Rename Sector
sectors.enemybase = [scarlet]Enemy Base
sectors.vulnerable = [scarlet]Vulnerable
@@ -783,6 +803,10 @@ difficulty.easy = Easy
difficulty.normal = Normal
difficulty.hard = Hard
difficulty.eradication = Eradication
+difficulty.enemyHealthMultiplier = Enemy Health: {0}
+difficulty.enemySpawnMultiplier = Enemy Amount: {0}
+difficulty.waveTimeMultiplier = Wave Timer: {0}
+difficulty.nomodifiers = [lightgray](No modifiers)
planets = Planets
planet.serpulo.name = Serpulo
@@ -1012,6 +1036,7 @@ stat.buildspeedmultiplier = Build Speed Multiplier
stat.reactive = Reacts
stat.immunities = Immunities
stat.healing = Healing
+stat.efficiency = [stat]{0}% Efficiency
ability.forcefield = Force Field
ability.forcefield.description = Projects a force shield that absorbs bullets
@@ -1059,6 +1084,7 @@ ability.stat.buildtime = [stat]{0} sec[lightgray] build time
bar.onlycoredeposit = Only Core Depositing Allowed
bar.drilltierreq = Nõuab paremat puuri
+bar.nobatterypower = Insufficieny Battery Power
bar.noresources = Missing Resources
bar.corereq = Core Base Required
bar.corefloor = Core Zone Tile Required
@@ -1067,6 +1093,7 @@ bar.drillspeed = Puurimise kiirus: {0}/s
bar.pumpspeed = Pump Speed: {0}/s
bar.efficiency = Kasutegur: {0}%
bar.boost = Boost: +{0}%
+bar.powerbuffer = Battery Power: {0}/{1}
bar.powerbalance = Bilanss: {0}/s
bar.powerstored = Puhver: {0}/{1}
bar.poweramount = Laeng: {0}
@@ -1077,6 +1104,7 @@ bar.capacity = Mahutavus: {0}
bar.unitcap = {0} {1}/{2}
bar.liquid = Vedelik
bar.heat = Kuumus
+bar.cooldown = Cooldown
bar.instability = Instability
bar.heatamount = Heat: {0}
bar.heatpercent = Heat: {0} ({1}%)
@@ -1101,6 +1129,7 @@ bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
bullet.frags = [stat]{0}[lightgray]x frag bullets:
bullet.lightning = [stat]{0}[lightgray]x lightning ~ [stat]{1}[lightgray] damage
bullet.buildingdamage = [stat]{0}%[lightgray] building damage
+bullet.shielddamage = [stat]{0}%[lightgray] shield damage
bullet.knockback = [stat]{0}[lightgray]x tagasilöögi kordaja
bullet.pierce = [stat]{0}[lightgray]x pierce
bullet.infinitepierce = [stat]pierce
@@ -1127,6 +1156,7 @@ unit.minutes = mins
unit.persecond = /s
unit.perminute = /min
unit.timesspeed = x kiirus
+unit.multiplier = x
unit.percent = %
unit.shieldhealth = shield health
unit.items = ressursiühikut
@@ -1203,11 +1233,13 @@ setting.mutemusic.name = Vaigista muusika
setting.sfxvol.name = Heliefektide tugevus
setting.mutesound.name = Vaigista heli
setting.crashreport.name = Saada automaatseid veateateid
+setting.communityservers.name = Fetch Community Server List
setting.savecreate.name = Loo automaatseid salvestisi
setting.steampublichost.name = Public Game Visibility
setting.playerlimit.name = Player Limit
setting.chatopacity.name = Vestlusakna läbipaistmatus
setting.lasersopacity.name = Power Laser Opacity
+setting.unitlaseropacity.name = Unit Mining Beam Opacity
setting.bridgeopacity.name = Bridge Opacity
setting.playerchat.name = Näita mängusisest vestlusakent
setting.showweather.name = Show Weather Graphics
@@ -1216,6 +1248,9 @@ setting.macnotch.name = Kohandage liidest sälku kuvamiseks
setting.macnotch.description = Muudatuste rakendamiseks on vaja taaskäivitada
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.
public.beta = Note that beta versions of the game cannot make public lobbies.
uiscale.reset = Kasutajaliidese suurust on muudetud.\nVajuta nupule "OK", et uus suurus kinnitada.\n[scarlet]Esialgne suurus taastatakse[accent] {0}[] sekundi pärast...
uiscale.cancel = Tühista ja välju
@@ -1296,6 +1331,7 @@ keybind.shoot.name = Tulista
keybind.zoom.name = Muuda suumi
keybind.menu.name = Menüü
keybind.pause.name = Paus
+keybind.skip_wave.name = Skip Wave
keybind.pause_building.name = Pause/Resume Building
keybind.minimap.name = Kaart
keybind.planet_map.name = Planet Map
@@ -1363,12 +1399,14 @@ rules.unitcostmultiplier = Unit Cost Multiplier
rules.unithealthmultiplier = Väeüksuste elude kordaja
rules.unitdamagemultiplier = Väeüksuste hävitusvõime kordaja
rules.unitcrashdamagemultiplier = Unit Crash Damage Multiplier
+rules.unitminespeedmultiplier = Unit Mine Speed Multiplier
rules.solarmultiplier = Solar Power Multiplier
rules.unitcapvariable = Cores Contribute To Unit Cap
rules.unitpayloadsexplode = Carried Payloads Explode With The Unit
rules.unitcap = Base Unit Cap
rules.limitarea = Limit Map Area
rules.enemycorebuildradius = Vaenlaste tuumiku ehitistevaba ala raadius:[lightgray] (ühik)
+rules.extracorebuildradius = Extra No-Build Radius:[lightgray] (tiles)
rules.wavespacing = Aeg lainete vahel:[lightgray] (sekund)
rules.initialwavespacing = Initial Wave Spacing:[lightgray] (sec)
rules.buildcostmultiplier = Ehitamise maksumuse kordaja
@@ -1391,6 +1429,9 @@ rules.title.planet = Planet
rules.lighting = Lighting
rules.fog = Fog of War
rules.invasions = Enemy Sector Invasions
+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.fire = Fire
@@ -1707,6 +1748,8 @@ block.meltdown.name = Valguskiir
block.foreshadow.name = Foreshadow
block.container.name = Hoidla
block.launch-pad.name = Stardiplatvorm
+block.advanced-launch-pad.name = Launch Pad
+block.landing-pad.name = Landing Pad
block.segment.name = Segment
block.ground-factory.name = Ground Factory
block.air-factory.name = Air Factory
@@ -1762,6 +1805,8 @@ block.arkyic-vent.name = Arkyic Vent
block.yellow-stone-vent.name = Yellow Stone Vent
block.red-stone-vent.name = Red Stone Vent
block.crystalline-vent.name = Crystalline Vent
+block.stone-vent.name = Stone Vent
+block.basalt-vent.name = Basalt Vent
block.redmat.name = Redmat
block.bluemat.name = Bluemat
block.core-zone.name = Core Zone
@@ -1915,77 +1960,77 @@ hint.respawn = To respawn as a ship, press [accent][[V][].
hint.respawn.mobile = You have switched control to a unit/structure. To respawn as a ship, [accent]tap the avatar in the top left.[]
hint.desktopPause = Press [accent][[Space][] to pause and unpause the game.
hint.breaking = [accent]Right-click[] and drag to break blocks.
-hint.breaking.mobile = Activate the \ue817 [accent]hammer[] in the bottom right and tap to break blocks.\n\nHold down your finger for a second and drag to break in a selection.
+hint.breaking.mobile = Activate the :hammer: [accent]hammer[] in the bottom right and tap to break blocks.\n\nHold down your finger for a second and drag to break in a selection.
hint.blockInfo = View information of a block by selecting it in the [accent]build menu[], then selecting the [accent][[?][] button at the right.
hint.derelict = [accent]Derelict[] structures are broken remnants of old bases that no longer function.\n\nThese structures can be [accent]deconstructed[] for resources.
-hint.research = Use the \ue875 [accent]Research[] button to research new technology.
-hint.research.mobile = Use the \ue875 [accent]Research[] button in the \ue88c [accent]Menu[] to research new technology.
+hint.research = Use the :tree: [accent]Research[] button to research new technology.
+hint.research.mobile = Use the :tree: [accent]Research[] button in the :menu: [accent]Menu[] to research new technology.
hint.unitControl = Hold [accent][[L-ctrl][] and [accent]click[] to control friendly units or turrets.
hint.unitControl.mobile = [accent][[Double-tap][] to control friendly units or turrets.
hint.unitSelectControl = To control units, enter [accent]command mode[] by holding [accent]L-shift.[]\nWhile in command mode, click and drag to select units. [accent]Right-click[] a location or target to command units there.
hint.unitSelectControl.mobile = To control units, enter [accent]command mode[] by pressing the [accent]command[] button in the bottom left.\nWhile in command mode, long-press and drag to select units. Tap a location or target to command units there.
-hint.launch = Once enough resources are collected, you can [accent]Launch[] by selecting nearby sectors from the \ue827 [accent]Map[] in the bottom right.
-hint.launch.mobile = Once enough resources are collected, you can [accent]Launch[] by selecting nearby sectors from the \ue827 [accent]Map[] in the \ue88c [accent]Menu[].
+hint.launch = Once enough resources are collected, you can [accent]Launch[] by selecting nearby sectors from the :map: [accent]Map[] in the bottom right.
+hint.launch.mobile = Once enough resources are collected, you can [accent]Launch[] by selecting nearby sectors from the :map: [accent]Map[] in the :menu: [accent]Menu[].
hint.schematicSelect = Hold [accent][[F][] and drag to select blocks to copy and paste.\n\n[accent][[Middle Click][] to copy a single block type.
hint.rebuildSelect = Hold [accent][[B][] and drag to select destroyed block plans.\nThis will rebuild them automatically.
-hint.rebuildSelect.mobile = Select the \ue874 copy button, then tap the \ue80f rebuild button and drag to select destroyed block plans.\nThis will rebuild them automatically.
+hint.rebuildSelect.mobile = Select the :copy: copy button, then tap the :wrench: rebuild button and drag to select destroyed block plans.\nThis will rebuild them automatically.
hint.conveyorPathfind = Hold [accent][[L-Ctrl][] while dragging conveyors to automatically generate a path.
-hint.conveyorPathfind.mobile = Enable \ue844 [accent]diagonal mode[] and drag conveyors to automatically generate a path.
+hint.conveyorPathfind.mobile = Enable :diagonal: [accent]diagonal mode[] and drag conveyors to automatically generate a path.
hint.boost = Hold [accent][[L-Shift][] to fly over obstacles with your current unit.\n\nOnly a few ground units have boosters.
hint.payloadPickup = Press [accent][[[] to pick up small blocks or units.
hint.payloadPickup.mobile = [accent]Tap and hold[] a small block or unit to pick it up.
hint.payloadDrop = Press [accent]][] to drop a payload.
hint.payloadDrop.mobile = [accent]Tap and hold[] an empty location to drop a payload there.
hint.waveFire = [accent]Wave[] turrets with water as ammunition will automatically put out nearby fires.
-hint.generator = \uf879 [accent]Combustion Generators[] burn coal and transmit power to adjacent blocks.\n\nPower transmission range can be extended with \uf87f [accent]Power Nodes[].
-hint.guardian = [accent]Guardian[] units are armored. Weak ammo such as [accent]Copper[] and [accent]Lead[] is [scarlet]not effective[].\n\nUse higher tier turrets or \uf835 [accent]Graphite[] \uf861Duo/\uf859Salvo ammunition to take Guardians down.
-hint.coreUpgrade = Cores can be upgraded by [accent]placing higher-tier cores over them[].\n\nPlace a \uf868 [accent]Foundation[] core over the \uf869 [accent]Shard[] core. Make sure it is free from nearby obstructions.
+hint.generator = :combustion-generator: [accent]Combustion Generators[] burn coal and transmit power to adjacent blocks.\n\nPower transmission range can be extended with :power-node: [accent]Power Nodes[].
+hint.guardian = [accent]Guardian[] units are armored. Weak ammo such as [accent]Copper[] and [accent]Lead[] is [scarlet]not effective[].\n\nUse higher tier turrets or :graphite: [accent]Graphite[] :duo:Duo/:salvo:Salvo ammunition to take Guardians down.
+hint.coreUpgrade = Cores can be upgraded by [accent]placing higher-tier cores over them[].\n\nPlace a :core-foundation: [accent]Foundation[] core over the :core-shard: [accent]Shard[] core. Make sure it is free from nearby obstructions.
hint.presetLaunch = Gray [accent]landing zone sectors[], such as [accent]Frozen Forest[], can be launched to from anywhere. They do not require capture of nearby territory.\n\n[accent]Numbered sectors[], such as this one, are [accent]optional[].
hint.presetDifficulty = This sector has a [scarlet]high enemy threat level[].\nLaunching to such sectors is [accent]not recommended[] without proper technology and preparation.
hint.coreIncinerate = After the core is filled to capacity with an item, any extra items of that type it receives will be [accent]incinerated[].
hint.factoryControl = To set a unit factory's [accent]output destination[], click a factory block while in command mode, then right-click a location.\nUnits produced by it will automatically move there.
hint.factoryControl.mobile = To set a unit factory's [accent]output destination[], tap a factory block while in command mode, then tap a location.\nUnits produced by it will automatically move there.
-gz.mine = Move near the \uf8c4 [accent]copper ore[] on the ground and click to begin mining.
-gz.mine.mobile = Move near the \uf8c4 [accent]copper ore[] on the ground and tap it to begin mining.
-gz.research = Open the \ue875 tech tree.\nResearch the \uf870 [accent]Mechanical Drill[], then select it from the menu in the bottom right.\nClick on a copper patch to place it.
-gz.research.mobile = Open the \ue875 tech tree.\nResearch the \uf870 [accent]Mechanical Drill[], then select it from the menu in the bottom right.\nTap on a copper patch to place it.\n\nPress the \ue800 [accent]checkmark[] at the bottom right to confirm.
-gz.conveyors = Research and place \uf896 [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nClick and drag to place multiple conveyors.\n[accent]Scroll[] to rotate.
-gz.conveyors.mobile = Research and place \uf896 [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nHold down your finger for a second and drag to place multiple conveyors.
+gz.mine = Move near the :ore-copper: [accent]copper ore[] on the ground and click to begin mining.
+gz.mine.mobile = Move near the :ore-copper: [accent]copper ore[] on the ground and tap it to begin mining.
+gz.research = Open the :tree: tech tree.\nResearch the :mechanical-drill: [accent]Mechanical Drill[], then select it from the menu in the bottom right.\nClick on a copper patch to place it.
+gz.research.mobile = Open the :tree: tech tree.\nResearch the :mechanical-drill: [accent]Mechanical Drill[], then select it from the menu in the bottom right.\nTap on a copper patch to place it.\n\nPress the \ue800 [accent]checkmark[] at the bottom right to confirm.
+gz.conveyors = Research and place :conveyor: [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nClick and drag to place multiple conveyors.\n[accent]Scroll[] to rotate.
+gz.conveyors.mobile = Research and place :conveyor: [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nHold down your finger for a second and drag to place multiple conveyors.
gz.drills = Expand the mining operation.\nPlace more Mechanical Drills.\nMine 100 copper.
-gz.lead = \uf837 [accent]Lead[] is another commonly used resource.\nSet up drills to mine lead.
-gz.moveup = \ue804 Move up for further objectives.
-gz.turrets = Research and place 2 \uf861 [accent]Duo[] turrets to defend the core.\nDuo turrets require \uf838 [accent]ammo[] from conveyors.
+gz.lead = :lead: [accent]Lead[] is another commonly used resource.\nSet up drills to mine lead.
+gz.moveup = :up: Move up for further objectives.
+gz.turrets = Research and place 2 :duo: [accent]Duo[] turrets to defend the core.\nDuo turrets require \uf838 [accent]ammo[] from conveyors.
gz.duoammo = Supply the Duo turrets with [accent]copper[], using conveyors.
-gz.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace \uf8ae [accent]copper walls[] around the turrets.
+gz.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace :copper-wall: [accent]copper walls[] around the turrets.
gz.defend = Enemy incoming, prepare to defend.
-gz.aa = Flying units cannot easily be dispatched with standard turrets.\n\uf860 [accent]Scatter[] turrets provide excellent anti-air, but require \uf837 [accent]lead[] as ammo.
+gz.aa = Flying units cannot easily be dispatched with standard turrets.\n:scatter: [accent]Scatter[] turrets provide excellent anti-air, but require :lead: [accent]lead[] as ammo.
gz.scatterammo = Supply the Scatter turret with [accent]lead[], using conveyors.
gz.supplyturret = [accent]Supply Turret
gz.zone1 = This is the enemy drop zone.
gz.zone2 = Anything built in the radius is destroyed when a wave starts.
gz.zone3 = A wave will begin now.\nGet ready.
gz.finish = Build more turrets, mine more resources,\nand defend against all the waves to [accent]capture the sector[].
-onset.mine = Click to mine \uf748 [accent]beryllium[] from walls.\n\nUse [accent][[WASD] to move.
-onset.mine.mobile = Tap to mine \uf748 [accent]beryllium[] from walls.
-onset.research = Open the \ue875 tech tree.\nResearch, then place a \uf73e [accent]turbine condenser[] on the vent.\nThis will generate [accent]power[].
-onset.bore = Research and place a \uf741 [accent]plasma bore[].\nThis automatically mines resources from walls.
-onset.power = To [accent]power[] the plasma bore, research and place a \uf73d [accent]beam node[].\nConnect the turbine condenser to the plasma bore.
-onset.ducts = Research and place \uf799 [accent]ducts[] to move the mined resources from the plasma bore to the core.\nClick and drag to place multiple ducts.\n[accent]Scroll[] to rotate.
-onset.ducts.mobile = Research and place \uf799 [accent]ducts[] to move the mined resources from the plasma bore to the core.\n\nHold down your finger for a second and drag to place multiple ducts.
+onset.mine = Click to mine :beryllium: [accent]beryllium[] from walls.\n\nUse [accent][[WASD] to move.
+onset.mine.mobile = Tap to mine :beryllium: [accent]beryllium[] from walls.
+onset.research = Open the :tree: tech tree.\nResearch, then place a :turbine-condenser: [accent]turbine condenser[] on the vent.\nThis will generate [accent]power[].
+onset.bore = Research and place a :plasma-bore: [accent]plasma bore[].\nThis automatically mines resources from walls.
+onset.power = To [accent]power[] the plasma bore, research and place a :beam-node: [accent]beam node[].\nConnect the turbine condenser to the plasma bore.
+onset.ducts = Research and place :duct: [accent]ducts[] to move the mined resources from the plasma bore to the core.\nClick and drag to place multiple ducts.\n[accent]Scroll[] to rotate.
+onset.ducts.mobile = Research and place :duct: [accent]ducts[] to move the mined resources from the plasma bore to the core.\n\nHold down your finger for a second and drag to place multiple ducts.
onset.moremine = Expand the mining operation.\nPlace more Plasma Bores and use beam nodes and ducts to support them.\nMine 200 beryllium.
-onset.graphite = More complex blocks require \uf835 [accent]graphite[].\nSet up plasma bores to mine graphite.
-onset.research2 = Begin researching [accent]factories[].\nResearch the \uf74d [accent]cliff crusher[] and \uf779 [accent]silicon arc furnace[].
-onset.arcfurnace = The arc furnace needs \uf834 [accent]sand[] and \uf835 [accent]graphite[] to create \uf82f [accent]silicon[].\n[accent]Power[] is also required.
-onset.crusher = Use \uf74d [accent]cliff crushers[] to mine sand.
-onset.fabricator = Use [accent]units[] to explore the map, defend buildings, and attack the enemy. Research and place a \uf6a2 [accent]tank fabricator[].
+onset.graphite = More complex blocks require :graphite: [accent]graphite[].\nSet up plasma bores to mine graphite.
+onset.research2 = Begin researching [accent]factories[].\nResearch the :cliff-crusher: [accent]cliff crusher[] and :silicon-arc-furnace: [accent]silicon arc furnace[].
+onset.arcfurnace = The arc furnace needs :sand: [accent]sand[] and :graphite: [accent]graphite[] to create :silicon: [accent]silicon[].\n[accent]Power[] is also required.
+onset.crusher = Use :cliff-crusher: [accent]cliff crushers[] to mine sand.
+onset.fabricator = Use [accent]units[] to explore the map, defend buildings, and attack the enemy. Research and place a :tank-fabricator: [accent]tank fabricator[].
onset.makeunit = Produce a unit.\nUse the "?" button to see selected factory requirements.
-onset.turrets = Units are effective, but [accent]turrets[] provide better defensive capabilities if used effectively.\nPlace a \uf6eb [accent]Breach[] turret.\nTurrets require \uf748 [accent]ammo[].
+onset.turrets = Units are effective, but [accent]turrets[] provide better defensive capabilities if used effectively.\nPlace a :breach: [accent]Breach[] turret.\nTurrets require :beryllium: [accent]ammo[].
onset.turretammo = Supply the turret with [accent]beryllium ammo.[]
-onset.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace some \uf6ee [accent]beryllium walls[] around the turret.
+onset.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace some :beryllium-wall: [accent]beryllium walls[] around the turret.
onset.enemies = Enemy incoming, prepare to defend.
onset.defenses = [accent]Set up defenses:[lightgray] {0}
onset.attack = The enemy is vulnerable. Counter-attack.
-onset.cores = New cores can be placed on [accent]core tiles[].\nNew cores function as forward bases and share a resource inventory with other cores.\nPlace a \uf725 core.
+onset.cores = New cores can be placed on [accent]core tiles[].\nNew cores function as forward bases and share a resource inventory with other cores.\nPlace a :core-bastion: core.
onset.detect = The enemy will be able to detect you in 2 minutes.\nSet up defenses, mining, and production.
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.
@@ -2145,7 +2190,9 @@ block.vault.description = Hoiustab suurt hulka igat tüüpi ressursse. Hoidlast
block.container.description = Hoiustab väikest hulka igat tüüpi ressursse. Hoidlast ressursside kättesaamiseks kasutatakse mahalaadijat.
block.unloader.description = Transpordib ressursse tuumikust ja hoidlatest konveieritele või külgnevatesse ehitistesse. Mahalaetava ressursi tüüpi saab valida mahalaadijale vajutades.
block.launch-pad.description = Saadab ressursse tagasi emalaeva, ilma et oleks vaja tuumikuga lendu tõusta.
-block.launch-pad.details = Sub-orbital system for point-to-point transportation of resources. Payload pods are fragile and incapable of surviving re-entry.
+block.advanced-launch-pad.description = Launches batches of items to selected sectors. Only accepts one item type at a time.
+block.advanced-launch-pad.details = Sub-orbital system for point-to-point transportation of resources.
+block.landing-pad.description = Receives items from launch pads in other sectors. Requires large amounts of water to protect against impacts of landings.
block.duo.description = Väike ja odav kahur, mis on kasulik maapealsete väeüksuste tõrjumiseks.
block.scatter.description = Õhutõrjekahur, mis tulistab pliid või vanametalli lendavate väeüksuste pihta.
block.scorch.description = Heidab tuld maapealsetele väeüksustele. Eriti efektiivne lähedal asuvate väeüksuste tõrjumiseks.
@@ -2252,6 +2299,7 @@ block.unit-cargo-loader.description = Constructs cargo drones. Drones automatica
block.unit-cargo-unload-point.description = Acts as an unloading point for cargo drones. Accepts items that match the selected filter.
block.beam-node.description = Transmits power to other blocks orthogonally. Stores a small amount of power.
block.beam-tower.description = Transmits power to other blocks orthogonally. Stores a large amount of power. Long-range.
+block.beam-link.description = Transmits power over vast distances.\nOnly capable of connecting to adjacent structures or other beam links.
block.turbine-condenser.description = Generates power when placed on vents. Produces a small amount of water.
block.chemical-combustion-chamber.description = Generates power from arkycite and ozone.
block.pyrolysis-generator.description = Generates large amounts of power from arkycite and slag. Produces water as a byproduct.
@@ -2340,6 +2388,7 @@ unit.emanate.description = Builds structures to defend the Acropolis core. Repai
lst.read = Read a number from a linked memory cell.
lst.write = Write a number to a linked memory cell.
lst.print = Add text to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used.
+lst.printchar = Add a UTF-16 character or content icon to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used.
lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example"
lst.draw = Add an operation to the drawing buffer.\nDoes not display anything until [accent]Draw Flush[] is used.
lst.drawflush = Flush queued [accent]Draw[] operations to a display.
@@ -2425,12 +2474,14 @@ lenum.shootp = Shoot at a unit/building with velocity prediction.
lenum.config = Building configuration, e.g. sorter item.
lenum.enabled = Whether the block is enabled.
laccess.currentammotype = Current ammo item/liquid of a turret.
+laccess.memorycapacity = Number of cells in a memory block.
laccess.color = Illuminator color.
laccess.controller = Unit controller. If processor controlled, returns processor.\nIf in a formation, returns leader.\nOtherwise, returns the unit itself.
laccess.dead = Whether a unit/building is dead or no longer valid.
laccess.controlled = Returns:\n[accent]@ctrlProcessor[] if unit controller is processor\n[accent]@ctrlPlayer[] if unit/building controller is player\n[accent]@ctrlFormation[] if unit is in formation\nOtherwise, 0.
laccess.progress = Action progress, 0 to 1.\nReturns production, turret reload or construction progress.
laccess.speed = Top speed of a unit, in tiles/sec.
+laccess.size = Size of a unit/building or the length of a string.
laccess.id = ID of a unit/block/item/liquid.\nThis is the inverse of the lookup operation.
lcategory.unknown = Unknown
lcategory.unknown.description = Uncategorized instructions.
@@ -2559,3 +2610,29 @@ lenum.autoscale = Whether to scale marker corresponding to player's zoom level.
lenum.posi = Indexed position, used for line and quad markers with index zero being the first position.
lenum.uvi = Texture's position ranging from zero to one, used for quad markers.
lenum.colori = Indexed position, used for line and quad markers with index zero being the first color.
+lenum.wavetimer = Whether the waves come automatically on a timer. If not, waves come when the play button is pressed.
+lenum.wave = Current wave number. Can be anything in non-wave modes.
+lenum.currentwavetime = Wave countdown in ticks.
+lenum.waves = Whether waves are spawnable at all.
+lenum.wavesending = Whether the waves can be manually summoned with the play button.
+lenum.attackmode = Determines if gamemode is attack mode.
+lenum.wavespacing = Time between waves in ticks.
+lenum.enemycorebuildradius = No-build zone around enemy core radius.
+lenum.dropzoneradius = Radius around enemy wave drop zones.
+lenum.unitcap = Base unit cap. Can still be increased by blocks.
+lenum.lighting = Whether ambient lighting is enabled.
+lenum.buildspeed = Multiplier for building speed.
+lenum.unithealth = How much health units start with.
+lenum.unitbuildspeed = How fast unit factories build units.
+lenum.unitcost = Multiplier of resources that units take to build.
+lenum.unitdamage = How much damage units deal.
+lenum.blockhealth = How much health blocks start with.
+lenum.blockdamage = How much damage blocks (turrets) deal.
+lenum.rtsminweight = Minimum "advantage" needed for a squad to attack. Higher -> more cautious.
+lenum.rtsminsquad = Minimum size of attack squads.
+lenum.maparea = Playable map area. Anything outside the area will not be interactable.
+lenum.ambientlight = Ambient light color. Used when lighting is enabled.
+lenum.solarmultiplier = Multiplies power output of solar panels.
+lenum.dragmultiplier = Environment drag multiplier.
+lenum.ban = Blocks or units that cannot be placed or built.
+lenum.unban = Unban a unit or block.
diff --git a/core/assets/bundles/bundle_eu.properties b/core/assets/bundles/bundle_eu.properties
index 0d890cd3ac..15c7ba7393 100644
--- a/core/assets/bundles/bundle_eu.properties
+++ b/core/assets/bundles/bundle_eu.properties
@@ -128,6 +128,7 @@ done = Egina
feature.unsupported = Zure gailuak ez du ezaugarri hau onartzen.
mods.initfailed = [red]⚠[] Aurreko Mindustry instantziak ezin izan du abiatu. Ziur aski mod-en erruz.\n\nEtengabeko kraskatzean ekiditeko, [red]mod guztiak desgaitu dira.[]
mods = Mod-ak
+mods.name = Mod:
mods.none = [lightgray]Ez da mod-ik aurkitu!
mods.guide = Mod-ak sortzeko gida
mods.report = Eman akatsaren berri
@@ -152,7 +153,7 @@ mod.erroredcontent = [scarlet]Edukiaren erroreak
mod.circulardependencies = [red]Circular Dependencies
mod.incompletedependencies = [red]Incomplete Dependencies
mod.requiresversion.details = Requires game version: [accent]{0}[]\nYour game is outdated. This mod requires a newer version of the game (possibly a beta/alpha release) to function.
-mod.outdatedv7.details = This mod is incompatible with the latest version of the game. The author must update it, and add [accent]minGameVersion: 136[] to its [accent]mod.json[] file.
+mod.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 = This mod has been manually blacklisted for causing crashes or other issues with this version of the game. Do not use it.
mod.missingdependencies.details = This mod is missing dependencies: {0}
mod.erroredcontent.details = This mod caused errors when loading. Ask the mod author to fix them.
@@ -161,7 +162,6 @@ mod.incompletedependencies.details = This mod is unable to be loaded due to inva
mod.requiresversion = Requires game version: [red]{0}
mod.errors = Erroreak gertatu dira edukia kargatzean.
mod.noerrorplay = [scarlet]Erroreak dituzten mod-ak dituzu.[] Desgaitu kaltetutako mod-ak edo konpondu erroreak jolastu aurretik.
-mod.nowdisabled = [scarlet]'{0}' mod-ak menpekotasunak ditu faltan:[accent] {1}\n[lightgray]Aurretik beste mod hauek deskargatu behar dira.\nMod hau automatikoki desgaituko da.
mod.enable = Gaitu
mod.requiresrestart = Jolasa itxi egingo da mod-aren aldaketak aplikatzeko.
mod.reloadrequired = [scarlet]Birkargatu behar da
@@ -176,6 +176,15 @@ mod.missing = Gordetako partida honek eguneratu dituzun edo jada instalatuta ez
mod.preview.missing = Mod hau tailerrean argitaratu aurretik, aurrebista bat gehitu behar diozu.\nKokatu[accent] preview.png[] izeneko irudi bat mod-aren karpetan eta saiatu berriro.
mod.folder.missing = Karpeta formatuko mod-ak besterik ezin dira argitaratu tailerrean.\nEdozein mod karpetara bihurtzeko, deskopnrimitu fitxategia eta ezabatu zip zaharra, gero berrabiarazi jolasa edo birkargatu zure mod-ak.
mod.scripts.disable = Zure gailuak ez ditu scrit-ak dituzten mod-ak onartzen. Mod hauek desgaitu behar dituzu jolasteko.
+mod.dependencies.error = [scarlet]Mods are missing dependencies
+mod.dependencies.soft = (optional)
+mod.dependencies.download = Import
+mod.dependencies.downloadreq = Import Required
+mod.dependencies.downloadall = Import All
+mod.dependencies.status = Import Results
+mod.dependencies.success = Successfully downloaded:
+mod.dependencies.failure = Failed to download:
+mod.dependencies.imported = This mod requires dependencies. Download?
about.button = Honi buruz
name = Izena:
@@ -293,6 +302,7 @@ disconnect.error = Konexio errorea.
disconnect.closed = Konexioa itxita.
disconnect.timeout = Denbor-muga agortuta.
disconnect.data = Huts egin du munduaren datuak eskuratzean!
+disconnect.snapshottimeout = Timed out while receiving UDP snapshots.\nThis may be caused by an unstable network or connection.
cantconnect = Ezin izan da partidara elkartu ([accent]{0}[]).
connecting = [accent]Konektatzen...
reconnecting = [accent]Reconnecting...
@@ -461,6 +471,7 @@ editor.shiftx = Shift X
editor.shifty = Shift Y
workshop = Lantegia
waves.title = Boladak
+waves.team = Team
waves.remove = Kendu
waves.every = maiztasuna
waves.waves = bolada
@@ -708,14 +719,18 @@ loadout = Loadout
resources = Resources
resources.max = Max
bannedblocks = Debekatutako blokeak
+unbannedblocks = Unbanned Blocks
objectives = Objectives
bannedunits = Banned Units
+unbannedunits = Unbanned Units
bannedunits.whitelist = Banned Units As Whitelist
bannedblocks.whitelist = Banned Blocks As Whitelist
addall = Gehitu denak
launch.from = Launching From: [accent]{0}
launch.capacity = Launching Item Capacity: [accent]{0}
launch.destination = Destination: {0}
+landing.sources = Source Sectors: [accent]{0}[]
+landing.import = Max Total Import: {0}[accent]{1}[lightgray]/min
configure.invalid = Kopurua 0 eta {0} bitarteko zenbaki bat izan behar da.
add = Gehitu
guardian = Guardian
@@ -754,7 +769,9 @@ sectors.stored = Stored:
sectors.resume = Resume
sectors.launch = Launch
sectors.select = Select
+sectors.launchselect = Select Launch Destination
sectors.nonelaunch = [lightgray]none (sun)
+sectors.redirect = Redirect Launch Pads
sectors.rename = Rename Sector
sectors.enemybase = [scarlet]Enemy Base
sectors.vulnerable = [scarlet]Vulnerable
@@ -785,6 +802,10 @@ difficulty.easy = Easy
difficulty.normal = Normal
difficulty.hard = Hard
difficulty.eradication = Eradication
+difficulty.enemyHealthMultiplier = Enemy Health: {0}
+difficulty.enemySpawnMultiplier = Enemy Amount: {0}
+difficulty.waveTimeMultiplier = Wave Timer: {0}
+difficulty.nomodifiers = [lightgray](No modifiers)
planets = Planets
planet.serpulo.name = Serpulo
@@ -1014,6 +1035,7 @@ stat.buildspeedmultiplier = Build Speed Multiplier
stat.reactive = Reacts
stat.immunities = Immunities
stat.healing = Healing
+stat.efficiency = [stat]{0}% Efficiency
ability.forcefield = Force Field
ability.forcefield.description = Projects a force shield that absorbs bullets
@@ -1061,6 +1083,7 @@ ability.stat.buildtime = [stat]{0} sec[lightgray] build time
bar.onlycoredeposit = Only Core Depositing Allowed
bar.drilltierreq = Zulagailu hobea behar da
+bar.nobatterypower = Insufficieny Battery Power
bar.noresources = Missing Resources
bar.corereq = Core Base Required
bar.corefloor = Core Zone Tile Required
@@ -1069,6 +1092,7 @@ bar.drillspeed = Ustiatze-abiadura: {0}/s
bar.pumpspeed = Ponpatze abiadura: {0}/s
bar.efficiency = Eraginkortasuna: {0}%
bar.boost = Boost: +{0}%
+bar.powerbuffer = Battery Power: {0}/{1}
bar.powerbalance = Energia: {0}/s
bar.powerstored = Bilduta: {0}/{1}
bar.poweramount = Energia: {0}
@@ -1079,6 +1103,7 @@ bar.capacity = Edukiera: {0}
bar.unitcap = {0} {1}/{2}
bar.liquid = Likidoa
bar.heat = Beroa
+bar.cooldown = Cooldown
bar.instability = Instability
bar.heatamount = Heat: {0}
bar.heatpercent = Heat: {0} ({1}%)
@@ -1103,6 +1128,7 @@ bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
bullet.frags = [stat]{0}[lightgray]x frag bullets:
bullet.lightning = [stat]{0}[lightgray]x lightning ~ [stat]{1}[lightgray] damage
bullet.buildingdamage = [stat]{0}%[lightgray] building damage
+bullet.shielddamage = [stat]{0}%[lightgray] shield damage
bullet.knockback = [stat]{0}[lightgray] kontusioa
bullet.pierce = [stat]{0}[lightgray]x pierce
bullet.infinitepierce = [stat]pierce
@@ -1129,6 +1155,7 @@ unit.minutes = mins
unit.persecond = /seg
unit.perminute = /min
unit.timesspeed = x abiadura
+unit.multiplier = x
unit.percent = %
unit.shieldhealth = shield health
unit.items = elementu
@@ -1205,11 +1232,13 @@ setting.mutemusic.name = Isilarazi musika
setting.sfxvol.name = Efektuen bolumena
setting.mutesound.name = Isilarazi soinua
setting.crashreport.name = Bidali kraskatze txosten automatikoak
+setting.communityservers.name = Fetch Community Server List
setting.savecreate.name = Gorde automatikoki
setting.steampublichost.name = Public Game Visibility
setting.playerlimit.name = Player Limit
setting.chatopacity.name = Txataren opakotasuna
setting.lasersopacity.name = Energia laserraren opakutasuna
+setting.unitlaseropacity.name = Unit Mining Beam Opacity
setting.bridgeopacity.name = Bridge Opacity
setting.playerchat.name = Erakutsi jolas barneko txata
setting.showweather.name = Show Weather Graphics
@@ -1218,6 +1247,9 @@ setting.macnotch.name = Egokitu interfazea bistaratzeko
setting.macnotch.description = Berrabiarazi behar da aldaketak aplikatzeko
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.
public.beta = Kontuan izan jolasaren beta bertsioek ezin dituztela jokalarien gela publokoak sortu.
uiscale.reset = Interfazearen eskala aldatu da.\nSakatu "Ados" eskala hau berresteko.\n[scarlet][accent] {0}[] segundo atzera egin eta irteteko...
uiscale.cancel = Utzi eta irten
@@ -1298,6 +1330,7 @@ keybind.shoot.name = Tirokatu
keybind.zoom.name = Zoom
keybind.menu.name = Menua
keybind.pause.name = Pausatu
+keybind.skip_wave.name = Skip Wave
keybind.pause_building.name = Pausatu/berrekin eraikiketa
keybind.minimap.name = Mapatxoa
keybind.planet_map.name = Planet Map
@@ -1365,12 +1398,14 @@ rules.unitcostmultiplier = Unit Cost Multiplier
rules.unithealthmultiplier = Unitateen osasun-biderkatzailea
rules.unitdamagemultiplier = Unitateen kalte-biderkatzailea
rules.unitcrashdamagemultiplier = Unit Crash Damage Multiplier
+rules.unitminespeedmultiplier = Unit Mine Speed Multiplier
rules.solarmultiplier = Solar Power Multiplier
rules.unitcapvariable = Cores Contribute To Unit Cap
rules.unitpayloadsexplode = Carried Payloads Explode With The Unit
rules.unitcap = Base Unit Cap
rules.limitarea = Limit Map Area
rules.enemycorebuildradius = Etsaien muinaren ez-eraikitze erradioa:[lightgray] (lauzak)
+rules.extracorebuildradius = Extra No-Build Radius:[lightgray] (tiles)
rules.wavespacing = Boladen tartea:[lightgray] (seg)
rules.initialwavespacing = Initial Wave Spacing:[lightgray] (sec)
rules.buildcostmultiplier = Eraikitze kostu-biderkatzailea
@@ -1393,6 +1428,9 @@ rules.title.planet = Planet
rules.lighting = Lighting
rules.fog = Fog of War
rules.invasions = Enemy Sector Invasions
+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.fire = Fire
@@ -1709,6 +1747,8 @@ block.meltdown.name = Nukleofusio
block.foreshadow.name = Foreshadow
block.container.name = Edukiontzia
block.launch-pad.name = Egozketa-plataforma
+block.advanced-launch-pad.name = Launch Pad
+block.landing-pad.name = Landing Pad
block.segment.name = Segment
block.ground-factory.name = Ground Factory
block.air-factory.name = Air Factory
@@ -1764,6 +1804,8 @@ block.arkyic-vent.name = Arkyic Vent
block.yellow-stone-vent.name = Yellow Stone Vent
block.red-stone-vent.name = Red Stone Vent
block.crystalline-vent.name = Crystalline Vent
+block.stone-vent.name = Stone Vent
+block.basalt-vent.name = Basalt Vent
block.redmat.name = Redmat
block.bluemat.name = Bluemat
block.core-zone.name = Core Zone
@@ -1917,77 +1959,77 @@ hint.respawn = To respawn as a ship, press [accent][[V][].
hint.respawn.mobile = You have switched control to a unit/structure. To respawn as a ship, [accent]tap the avatar in the top left.[]
hint.desktopPause = Press [accent][[Space][] to pause and unpause the game.
hint.breaking = [accent]Right-click[] and drag to break blocks.
-hint.breaking.mobile = Activate the \ue817 [accent]hammer[] in the bottom right and tap to break blocks.\n\nHold down your finger for a second and drag to break in a selection.
+hint.breaking.mobile = Activate the :hammer: [accent]hammer[] in the bottom right and tap to break blocks.\n\nHold down your finger for a second and drag to break in a selection.
hint.blockInfo = View information of a block by selecting it in the [accent]build menu[], then selecting the [accent][[?][] button at the right.
hint.derelict = [accent]Derelict[] structures are broken remnants of old bases that no longer function.\n\nThese structures can be [accent]deconstructed[] for resources.
-hint.research = Use the \ue875 [accent]Research[] button to research new technology.
-hint.research.mobile = Use the \ue875 [accent]Research[] button in the \ue88c [accent]Menu[] to research new technology.
+hint.research = Use the :tree: [accent]Research[] button to research new technology.
+hint.research.mobile = Use the :tree: [accent]Research[] button in the :menu: [accent]Menu[] to research new technology.
hint.unitControl = Hold [accent][[L-ctrl][] and [accent]click[] to control friendly units or turrets.
hint.unitControl.mobile = [accent][[Double-tap][] to control friendly units or turrets.
hint.unitSelectControl = To control units, enter [accent]command mode[] by holding [accent]L-shift.[]\nWhile in command mode, click and drag to select units. [accent]Right-click[] a location or target to command units there.
hint.unitSelectControl.mobile = To control units, enter [accent]command mode[] by pressing the [accent]command[] button in the bottom left.\nWhile in command mode, long-press and drag to select units. Tap a location or target to command units there.
-hint.launch = Once enough resources are collected, you can [accent]Launch[] by selecting nearby sectors from the \ue827 [accent]Map[] in the bottom right.
-hint.launch.mobile = Once enough resources are collected, you can [accent]Launch[] by selecting nearby sectors from the \ue827 [accent]Map[] in the \ue88c [accent]Menu[].
+hint.launch = Once enough resources are collected, you can [accent]Launch[] by selecting nearby sectors from the :map: [accent]Map[] in the bottom right.
+hint.launch.mobile = Once enough resources are collected, you can [accent]Launch[] by selecting nearby sectors from the :map: [accent]Map[] in the :menu: [accent]Menu[].
hint.schematicSelect = Hold [accent][[F][] and drag to select blocks to copy and paste.\n\n[accent][[Middle Click][] to copy a single block type.
hint.rebuildSelect = Hold [accent][[B][] and drag to select destroyed block plans.\nThis will rebuild them automatically.
-hint.rebuildSelect.mobile = Select the \ue874 copy button, then tap the \ue80f rebuild button and drag to select destroyed block plans.\nThis will rebuild them automatically.
+hint.rebuildSelect.mobile = Select the :copy: copy button, then tap the :wrench: rebuild button and drag to select destroyed block plans.\nThis will rebuild them automatically.
hint.conveyorPathfind = Hold [accent][[L-Ctrl][] while dragging conveyors to automatically generate a path.
-hint.conveyorPathfind.mobile = Enable \ue844 [accent]diagonal mode[] and drag conveyors to automatically generate a path.
+hint.conveyorPathfind.mobile = Enable :diagonal: [accent]diagonal mode[] and drag conveyors to automatically generate a path.
hint.boost = Hold [accent][[L-Shift][] to fly over obstacles with your current unit.\n\nOnly a few ground units have boosters.
hint.payloadPickup = Press [accent][[[] to pick up small blocks or units.
hint.payloadPickup.mobile = [accent]Tap and hold[] a small block or unit to pick it up.
hint.payloadDrop = Press [accent]][] to drop a payload.
hint.payloadDrop.mobile = [accent]Tap and hold[] an empty location to drop a payload there.
hint.waveFire = [accent]Wave[] turrets with water as ammunition will automatically put out nearby fires.
-hint.generator = \uf879 [accent]Combustion Generators[] burn coal and transmit power to adjacent blocks.\n\nPower transmission range can be extended with \uf87f [accent]Power Nodes[].
-hint.guardian = [accent]Guardian[] units are armored. Weak ammo such as [accent]Copper[] and [accent]Lead[] is [scarlet]not effective[].\n\nUse higher tier turrets or \uf835 [accent]Graphite[] \uf861Duo/\uf859Salvo ammunition to take Guardians down.
-hint.coreUpgrade = Cores can be upgraded by [accent]placing higher-tier cores over them[].\n\nPlace a \uf868 [accent]Foundation[] core over the \uf869 [accent]Shard[] core. Make sure it is free from nearby obstructions.
+hint.generator = :combustion-generator: [accent]Combustion Generators[] burn coal and transmit power to adjacent blocks.\n\nPower transmission range can be extended with :power-node: [accent]Power Nodes[].
+hint.guardian = [accent]Guardian[] units are armored. Weak ammo such as [accent]Copper[] and [accent]Lead[] is [scarlet]not effective[].\n\nUse higher tier turrets or :graphite: [accent]Graphite[] :duo:Duo/:salvo:Salvo ammunition to take Guardians down.
+hint.coreUpgrade = Cores can be upgraded by [accent]placing higher-tier cores over them[].\n\nPlace a :core-foundation: [accent]Foundation[] core over the :core-shard: [accent]Shard[] core. Make sure it is free from nearby obstructions.
hint.presetLaunch = Gray [accent]landing zone sectors[], such as [accent]Frozen Forest[], can be launched to from anywhere. They do not require capture of nearby territory.\n\n[accent]Numbered sectors[], such as this one, are [accent]optional[].
hint.presetDifficulty = This sector has a [scarlet]high enemy threat level[].\nLaunching to such sectors is [accent]not recommended[] without proper technology and preparation.
hint.coreIncinerate = After the core is filled to capacity with an item, any extra items of that type it receives will be [accent]incinerated[].
hint.factoryControl = To set a unit factory's [accent]output destination[], click a factory block while in command mode, then right-click a location.\nUnits produced by it will automatically move there.
hint.factoryControl.mobile = To set a unit factory's [accent]output destination[], tap a factory block while in command mode, then tap a location.\nUnits produced by it will automatically move there.
-gz.mine = Move near the \uf8c4 [accent]copper ore[] on the ground and click to begin mining.
-gz.mine.mobile = Move near the \uf8c4 [accent]copper ore[] on the ground and tap it to begin mining.
-gz.research = Open the \ue875 tech tree.\nResearch the \uf870 [accent]Mechanical Drill[], then select it from the menu in the bottom right.\nClick on a copper patch to place it.
-gz.research.mobile = Open the \ue875 tech tree.\nResearch the \uf870 [accent]Mechanical Drill[], then select it from the menu in the bottom right.\nTap on a copper patch to place it.\n\nPress the \ue800 [accent]checkmark[] at the bottom right to confirm.
-gz.conveyors = Research and place \uf896 [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nClick and drag to place multiple conveyors.\n[accent]Scroll[] to rotate.
-gz.conveyors.mobile = Research and place \uf896 [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nHold down your finger for a second and drag to place multiple conveyors.
+gz.mine = Move near the :ore-copper: [accent]copper ore[] on the ground and click to begin mining.
+gz.mine.mobile = Move near the :ore-copper: [accent]copper ore[] on the ground and tap it to begin mining.
+gz.research = Open the :tree: tech tree.\nResearch the :mechanical-drill: [accent]Mechanical Drill[], then select it from the menu in the bottom right.\nClick on a copper patch to place it.
+gz.research.mobile = Open the :tree: tech tree.\nResearch the :mechanical-drill: [accent]Mechanical Drill[], then select it from the menu in the bottom right.\nTap on a copper patch to place it.\n\nPress the \ue800 [accent]checkmark[] at the bottom right to confirm.
+gz.conveyors = Research and place :conveyor: [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nClick and drag to place multiple conveyors.\n[accent]Scroll[] to rotate.
+gz.conveyors.mobile = Research and place :conveyor: [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nHold down your finger for a second and drag to place multiple conveyors.
gz.drills = Expand the mining operation.\nPlace more Mechanical Drills.\nMine 100 copper.
-gz.lead = \uf837 [accent]Lead[] is another commonly used resource.\nSet up drills to mine lead.
-gz.moveup = \ue804 Move up for further objectives.
-gz.turrets = Research and place 2 \uf861 [accent]Duo[] turrets to defend the core.\nDuo turrets require \uf838 [accent]ammo[] from conveyors.
+gz.lead = :lead: [accent]Lead[] is another commonly used resource.\nSet up drills to mine lead.
+gz.moveup = :up: Move up for further objectives.
+gz.turrets = Research and place 2 :duo: [accent]Duo[] turrets to defend the core.\nDuo turrets require \uf838 [accent]ammo[] from conveyors.
gz.duoammo = Supply the Duo turrets with [accent]copper[], using conveyors.
-gz.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace \uf8ae [accent]copper walls[] around the turrets.
+gz.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace :copper-wall: [accent]copper walls[] around the turrets.
gz.defend = Enemy incoming, prepare to defend.
-gz.aa = Flying units cannot easily be dispatched with standard turrets.\n\uf860 [accent]Scatter[] turrets provide excellent anti-air, but require \uf837 [accent]lead[] as ammo.
+gz.aa = Flying units cannot easily be dispatched with standard turrets.\n:scatter: [accent]Scatter[] turrets provide excellent anti-air, but require :lead: [accent]lead[] as ammo.
gz.scatterammo = Supply the Scatter turret with [accent]lead[], using conveyors.
gz.supplyturret = [accent]Supply Turret
gz.zone1 = This is the enemy drop zone.
gz.zone2 = Anything built in the radius is destroyed when a wave starts.
gz.zone3 = A wave will begin now.\nGet ready.
gz.finish = Build more turrets, mine more resources,\nand defend against all the waves to [accent]capture the sector[].
-onset.mine = Click to mine \uf748 [accent]beryllium[] from walls.\n\nUse [accent][[WASD] to move.
-onset.mine.mobile = Tap to mine \uf748 [accent]beryllium[] from walls.
-onset.research = Open the \ue875 tech tree.\nResearch, then place a \uf73e [accent]turbine condenser[] on the vent.\nThis will generate [accent]power[].
-onset.bore = Research and place a \uf741 [accent]plasma bore[].\nThis automatically mines resources from walls.
-onset.power = To [accent]power[] the plasma bore, research and place a \uf73d [accent]beam node[].\nConnect the turbine condenser to the plasma bore.
-onset.ducts = Research and place \uf799 [accent]ducts[] to move the mined resources from the plasma bore to the core.\nClick and drag to place multiple ducts.\n[accent]Scroll[] to rotate.
-onset.ducts.mobile = Research and place \uf799 [accent]ducts[] to move the mined resources from the plasma bore to the core.\n\nHold down your finger for a second and drag to place multiple ducts.
+onset.mine = Click to mine :beryllium: [accent]beryllium[] from walls.\n\nUse [accent][[WASD] to move.
+onset.mine.mobile = Tap to mine :beryllium: [accent]beryllium[] from walls.
+onset.research = Open the :tree: tech tree.\nResearch, then place a :turbine-condenser: [accent]turbine condenser[] on the vent.\nThis will generate [accent]power[].
+onset.bore = Research and place a :plasma-bore: [accent]plasma bore[].\nThis automatically mines resources from walls.
+onset.power = To [accent]power[] the plasma bore, research and place a :beam-node: [accent]beam node[].\nConnect the turbine condenser to the plasma bore.
+onset.ducts = Research and place :duct: [accent]ducts[] to move the mined resources from the plasma bore to the core.\nClick and drag to place multiple ducts.\n[accent]Scroll[] to rotate.
+onset.ducts.mobile = Research and place :duct: [accent]ducts[] to move the mined resources from the plasma bore to the core.\n\nHold down your finger for a second and drag to place multiple ducts.
onset.moremine = Expand the mining operation.\nPlace more Plasma Bores and use beam nodes and ducts to support them.\nMine 200 beryllium.
-onset.graphite = More complex blocks require \uf835 [accent]graphite[].\nSet up plasma bores to mine graphite.
-onset.research2 = Begin researching [accent]factories[].\nResearch the \uf74d [accent]cliff crusher[] and \uf779 [accent]silicon arc furnace[].
-onset.arcfurnace = The arc furnace needs \uf834 [accent]sand[] and \uf835 [accent]graphite[] to create \uf82f [accent]silicon[].\n[accent]Power[] is also required.
-onset.crusher = Use \uf74d [accent]cliff crushers[] to mine sand.
-onset.fabricator = Use [accent]units[] to explore the map, defend buildings, and attack the enemy. Research and place a \uf6a2 [accent]tank fabricator[].
+onset.graphite = More complex blocks require :graphite: [accent]graphite[].\nSet up plasma bores to mine graphite.
+onset.research2 = Begin researching [accent]factories[].\nResearch the :cliff-crusher: [accent]cliff crusher[] and :silicon-arc-furnace: [accent]silicon arc furnace[].
+onset.arcfurnace = The arc furnace needs :sand: [accent]sand[] and :graphite: [accent]graphite[] to create :silicon: [accent]silicon[].\n[accent]Power[] is also required.
+onset.crusher = Use :cliff-crusher: [accent]cliff crushers[] to mine sand.
+onset.fabricator = Use [accent]units[] to explore the map, defend buildings, and attack the enemy. Research and place a :tank-fabricator: [accent]tank fabricator[].
onset.makeunit = Produce a unit.\nUse the "?" button to see selected factory requirements.
-onset.turrets = Units are effective, but [accent]turrets[] provide better defensive capabilities if used effectively.\nPlace a \uf6eb [accent]Breach[] turret.\nTurrets require \uf748 [accent]ammo[].
+onset.turrets = Units are effective, but [accent]turrets[] provide better defensive capabilities if used effectively.\nPlace a :breach: [accent]Breach[] turret.\nTurrets require :beryllium: [accent]ammo[].
onset.turretammo = Supply the turret with [accent]beryllium ammo.[]
-onset.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace some \uf6ee [accent]beryllium walls[] around the turret.
+onset.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace some :beryllium-wall: [accent]beryllium walls[] around the turret.
onset.enemies = Enemy incoming, prepare to defend.
onset.defenses = [accent]Set up defenses:[lightgray] {0}
onset.attack = The enemy is vulnerable. Counter-attack.
-onset.cores = New cores can be placed on [accent]core tiles[].\nNew cores function as forward bases and share a resource inventory with other cores.\nPlace a \uf725 core.
+onset.cores = New cores can be placed on [accent]core tiles[].\nNew cores function as forward bases and share a resource inventory with other cores.\nPlace a :core-bastion: core.
onset.detect = The enemy will be able to detect you in 2 minutes.\nSet up defenses, mining, and production.
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.
@@ -2147,7 +2189,9 @@ block.vault.description = Mota bakoitzeko elementuen kopuru handiak biltegiratze
block.container.description = Mota bakoitzeko elementuen kopuru txiki bat gordetzen du. Bloke deskargagailu bat erabili daiteke elementuak edukiontzitik ateratzeko.
block.unloader.description = Edukiontzi, kripta edo muin batetik elementuak deskargatzen ditu garraiagailu batera edo zuzenean ondoan dagoen bloke batera. Deskargatu beharreko elementu mota sakatuz aldatu daiteke.
block.launch-pad.description = Baliabide multzoak egotzi ditzake muina egotzi gabe.
-block.launch-pad.details = Sub-orbital system for point-to-point transportation of resources. Payload pods are fragile and incapable of surviving re-entry.
+block.advanced-launch-pad.description = Launches batches of items to selected sectors. Only accepts one item type at a time.
+block.advanced-launch-pad.details = Sub-orbital system for point-to-point transportation of resources.
+block.landing-pad.description = Receives items from launch pads in other sectors. Requires large amounts of water to protect against impacts of landings.
block.duo.description = Dorre txiki eta merke bat. Lurreko unitateen aurka erabilgarria.
block.scatter.description = Aire defentsarako ezinbesteko dorrea. Berun edo txatarrezko koskorrekin ihinztatzen ditu unitate etsaiak.
block.scorch.description = Inguruko lurreko etsaiak kiskaltzen ditu. Oso eraginkorra distantzia hurbilera.
@@ -2254,6 +2298,7 @@ block.unit-cargo-loader.description = Constructs cargo drones. Drones automatica
block.unit-cargo-unload-point.description = Acts as an unloading point for cargo drones. Accepts items that match the selected filter.
block.beam-node.description = Transmits power to other blocks orthogonally. Stores a small amount of power.
block.beam-tower.description = Transmits power to other blocks orthogonally. Stores a large amount of power. Long-range.
+block.beam-link.description = Transmits power over vast distances.\nOnly capable of connecting to adjacent structures or other beam links.
block.turbine-condenser.description = Generates power when placed on vents. Produces a small amount of water.
block.chemical-combustion-chamber.description = Generates power from arkycite and ozone.
block.pyrolysis-generator.description = Generates large amounts of power from arkycite and slag. Produces water as a byproduct.
@@ -2342,6 +2387,7 @@ unit.emanate.description = Builds structures to defend the Acropolis core. Repai
lst.read = Read a number from a linked memory cell.
lst.write = Write a number to a linked memory cell.
lst.print = Add text to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used.
+lst.printchar = Add a UTF-16 character or content icon to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used.
lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example"
lst.draw = Add an operation to the drawing buffer.\nDoes not display anything until [accent]Draw Flush[] is used.
lst.drawflush = Flush queued [accent]Draw[] operations to a display.
@@ -2427,12 +2473,14 @@ lenum.shootp = Shoot at a unit/building with velocity prediction.
lenum.config = Building configuration, e.g. sorter item.
lenum.enabled = Whether the block is enabled.
laccess.currentammotype = Current ammo item/liquid of a turret.
+laccess.memorycapacity = Number of cells in a memory block.
laccess.color = Illuminator color.
laccess.controller = Unit controller. If processor controlled, returns processor.\nIf in a formation, returns leader.\nOtherwise, returns the unit itself.
laccess.dead = Whether a unit/building is dead or no longer valid.
laccess.controlled = Returns:\n[accent]@ctrlProcessor[] if unit controller is processor\n[accent]@ctrlPlayer[] if unit/building controller is player\n[accent]@ctrlFormation[] if unit is in formation\nOtherwise, 0.
laccess.progress = Action progress, 0 to 1.\nReturns production, turret reload or construction progress.
laccess.speed = Top speed of a unit, in tiles/sec.
+laccess.size = Size of a unit/building or the length of a string.
laccess.id = ID of a unit/block/item/liquid.\nThis is the inverse of the lookup operation.
lcategory.unknown = Unknown
lcategory.unknown.description = Uncategorized instructions.
@@ -2561,3 +2609,29 @@ lenum.autoscale = Whether to scale marker corresponding to player's zoom level.
lenum.posi = Indexed position, used for line and quad markers with index zero being the first position.
lenum.uvi = Texture's position ranging from zero to one, used for quad markers.
lenum.colori = Indexed position, used for line and quad markers with index zero being the first color.
+lenum.wavetimer = Whether the waves come automatically on a timer. If not, waves come when the play button is pressed.
+lenum.wave = Current wave number. Can be anything in non-wave modes.
+lenum.currentwavetime = Wave countdown in ticks.
+lenum.waves = Whether waves are spawnable at all.
+lenum.wavesending = Whether the waves can be manually summoned with the play button.
+lenum.attackmode = Determines if gamemode is attack mode.
+lenum.wavespacing = Time between waves in ticks.
+lenum.enemycorebuildradius = No-build zone around enemy core radius.
+lenum.dropzoneradius = Radius around enemy wave drop zones.
+lenum.unitcap = Base unit cap. Can still be increased by blocks.
+lenum.lighting = Whether ambient lighting is enabled.
+lenum.buildspeed = Multiplier for building speed.
+lenum.unithealth = How much health units start with.
+lenum.unitbuildspeed = How fast unit factories build units.
+lenum.unitcost = Multiplier of resources that units take to build.
+lenum.unitdamage = How much damage units deal.
+lenum.blockhealth = How much health blocks start with.
+lenum.blockdamage = How much damage blocks (turrets) deal.
+lenum.rtsminweight = Minimum "advantage" needed for a squad to attack. Higher -> more cautious.
+lenum.rtsminsquad = Minimum size of attack squads.
+lenum.maparea = Playable map area. Anything outside the area will not be interactable.
+lenum.ambientlight = Ambient light color. Used when lighting is enabled.
+lenum.solarmultiplier = Multiplies power output of solar panels.
+lenum.dragmultiplier = Environment drag multiplier.
+lenum.ban = Blocks or units that cannot be placed or built.
+lenum.unban = Unban a unit or block.
diff --git a/core/assets/bundles/bundle_fi.properties b/core/assets/bundles/bundle_fi.properties
index 84b0acaaf0..01a71beba2 100644
--- a/core/assets/bundles/bundle_fi.properties
+++ b/core/assets/bundles/bundle_fi.properties
@@ -128,6 +128,7 @@ done = Valmis
feature.unsupported = Laitteesi ei tue tätä toimintoa.
mods.initfailed = [red]⚠[] Edellisen Mindustryn instanssin initialisointi epäonnistui. Tämä aiheutui todennäköisesti virheistä lisäosissa.\n\nJatkuvien kaatumisten estämiseksi [red]kaikki lisäosat on poistettu käytöstä.[]
mods = Modit
+mods.name = Mod:
mods.none = [lightgray]Modeja ei löytynyt!
mods.guide = Modaamisopas
mods.report = Raportoi ohjelmistovirhe
@@ -152,7 +153,7 @@ mod.erroredcontent = [scarlet]Sisältövirheet
mod.circulardependencies = [red]Circular Dependencies
mod.incompletedependencies = [red]Incomplete Dependencies
mod.requiresversion.details = Requires game version: [accent]{0}[]\nYour game is outdated. This mod requires a newer version of the game (possibly a beta/alpha release) to function.
-mod.outdatedv7.details = This mod is incompatible with the latest version of the game. The author must update it, and add [accent]minGameVersion: 136[] to its [accent]mod.json[] file.
+mod.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 = This mod has been manually blacklisted for causing crashes or other issues with this version of the game. Do not use it.
mod.missingdependencies.details = This mod is missing dependencies: {0}
mod.erroredcontent.details = This game caused errors when loading. Ask the mod author to fix them.
@@ -161,7 +162,6 @@ mod.incompletedependencies.details = This mod is unable to be loaded due to inva
mod.requiresversion = Requires game version: [red]{0}
mod.errors = Virheitä on tapahtunut pelin ladatessa.
mod.noerrorplay = [scarlet]Sinulla on virheellisiä modeja.[] Joko poista ne käytöstä tai korjaa virheet.
-mod.nowdisabled = [scarlet]Lisäosa '{0}' tarvitsee muita lisäosia toimiakseen:[accent] {1}\n[lightgray]Nämä lisäosat täytyy asentaa ensin.\nTämä lisäosa poistetaan automaattisesti käytöstä.
mod.enable = Käytä
mod.requiresrestart = Peli suljetaan jotta muutokset voisivat toteutua.
mod.reloadrequired = [scarlet]Vaatii Uudelleenkäynnistystä
@@ -176,6 +176,15 @@ mod.missing = Tämä tallennus on tallennettu sellaisen lisäosan kanssa, jonka
mod.preview.missing = Ennen kuin julkaiset tämän lisäosan Workshopissa, sinun täytyy lisätä kuvake.\nLisää kuva, joka on nimetty tiedostonimellä [accent] preview.png[] lisäosan kansioon ja yritä uudestaan.
mod.folder.missing = Vain kansion muodossa olevia lisäosia voi julkaista Workshopissa.\nMuuttaaksesi pakatun lisäosan kansioksi, pura se kansioon ja poista vanha arkisto.\nKäynnistä sen jälkeen peli uudelleen tai lataa uudelleen lisäosasi.
mod.scripts.disable = Laitteesi ei tue modeja skripteillä. Sinun on sammutettava nämä modit pelataksesi peliä.
+mod.dependencies.error = [scarlet]Mods are missing dependencies
+mod.dependencies.soft = (optional)
+mod.dependencies.download = Import
+mod.dependencies.downloadreq = Import Required
+mod.dependencies.downloadall = Import All
+mod.dependencies.status = Import Results
+mod.dependencies.success = Successfully downloaded:
+mod.dependencies.failure = Failed to download:
+mod.dependencies.imported = This mod requires dependencies. Download?
about.button = Tietoa
name = Nimi:
@@ -227,9 +236,9 @@ server.kicked.serverRestarting = Tämä palvelin on uudelleenkäynnistymässä.
server.versions = Versiosi:[accent] {0}[]\nPalvelimen versio:[accent] {1}[]
host.info = [accent]Isännöi[] -nappi luo palvelimen portille [scarlet]6567[]. \nKenen tahansa samassa [lightgray]wifi-yhteydessä tai paikallisessa verkossa[] pitäisi voida nähdä palvelimesi heidän palvelinlistassaan.\n\nJos haluat muiden voivan yhdistää kaikkialta IP:n perusteella, [accent]port forwardingia[] vaaditaan.\n\n[lightgray]Huomio: Jos jollakulla on ongelmia LAN-palvelimeesi yhdistämisessä, varmista palomuurisi asetuksista, että olet sallinut Mindustrylle oikeuden paikalliseen verkkoosi. Huomaa, että julkiset verkot eivät joskus salli havaita itseään.
join.info = Tässä voit syöttää [accent]palvelimen IP-osoitteen[] johon yhdistää, tai etsiä [accent]paikallisesta verkosta[] palvelimia, joille littyä.\nSekä LAN- että WAN-moninpeluuta tuetaan.\n\n[lightgray]Huomio: Automaattista globaalia palvelinlistaa ei ole; jos haluat yhdistää jonnekin IP-osoitteella, sinun on selvitettävä palvelimen IP-osoite.
-hostserver = Pidä yllä monipelaaja peliä
-invitefriends = Pyydä Ystäviä
-hostserver.mobile = Isäntä\nPeli
+hostserver = Isännöi moninpeli
+invitefriends = Kutsu ystäviä
+hostserver.mobile = Isännöi\npeli
host = Isäntä
hosting = [accent]Avataan palvelinta...
hosts.refresh = Päivitä
@@ -291,6 +300,7 @@ disconnect.error = Yhteysvirhe.
disconnect.closed = Yhteys poistettu.
disconnect.timeout = Yhteys aikakatkaistiin.
disconnect.data = Maailman tietojen lataaminen epäonnistui!
+disconnect.snapshottimeout = Timed out while receiving UDP snapshots.\nThis may be caused by an unstable network or connection.
cantconnect = Peliin ei voitu liittyä ([accent]{0}[]).
connecting = [accent]Yhdistetään...
reconnecting = [accent]Yhdistetään uudelleen...
@@ -361,7 +371,7 @@ openlink = Avaa linkki
copylink = Kopioi linkki
back = Takaisin
max = Max
-objective = Maailman tehtävä
+objective = Alueen tehtävä
crash.export = Vie kaatumislokit
crash.none = Kaatumislokeja ei löytynyt.
crash.exported = Kaatumislokit on viety.
@@ -459,6 +469,7 @@ editor.shiftx = Siirrä X-akselin suunnassa
editor.shifty = Siirrä Y-akselin suunnassa
workshop = Työpaja
waves.title = Tasot
+waves.team = Team
waves.remove = Poista
waves.every = jokainen
waves.waves = tasot
@@ -574,7 +585,7 @@ filters.empty = [lightgray]Ei filttereitä! Lisää yksi alla olevasta napista.
filter.distort = Vääristää
filter.noise = Melu
filter.enemyspawn = Vihollissyntypisteen valinta
-filter.spawnpath = Polku syntypisteelle
+filter.spawnpath = Reitti syntypisteelle
filter.corespawn = Valitse Ydin
filter.median = Mediaani
filter.oremedian = Malmin keskiarvo
@@ -634,7 +645,7 @@ width = Leveys:
height = Korkeus:
menu = Valikko
play = Pelaa
-campaign = Polku
+campaign = Kampanja
load = Lataa
save = Tallenna
fps = FPS: {0}
@@ -706,14 +717,18 @@ loadout = Lasti
resources = Resurssit
resources.max = Max
bannedblocks = Kielletyt Palikat
+unbannedblocks = Unbanned Blocks
objectives = Tehtävät
bannedunits = Kielletyt yksiköt
+unbannedunits = Unbanned Units
bannedunits.whitelist = Banned Units As Whitelist
bannedblocks.whitelist = Banned Blocks As Whitelist
addall = Lisää kaikki
launch.from = Laukaistaan kohteesta: [accent]{0}
launch.capacity = Tavaratila laukaistaessa: [accent]{0}
launch.destination = Määränpää: {0}
+landing.sources = Source Sectors: [accent]{0}[]
+landing.import = Max Total Import: {0}[accent]{1}[lightgray]/min
configure.invalid = Lukumäärän täytyy olla numero väliltä 0 ja {0}.
add = Lisää...
guardian = Vartija
@@ -752,7 +767,9 @@ sectors.stored = Säilötty:
sectors.resume = Jatka
sectors.launch = Laukaise
sectors.select = Valitse
+sectors.launchselect = Select Launch Destination
sectors.nonelaunch = [lightgray]ei mitään (sun)
+sectors.redirect = Redirect Launch Pads
sectors.rename = Nimeä sektori
sectors.enemybase = [scarlet]Vihollistukikohta
sectors.vulnerable = [scarlet]Haavoittuvainen
@@ -783,6 +800,10 @@ difficulty.easy = Easy
difficulty.normal = Normal
difficulty.hard = Hard
difficulty.eradication = Eradication
+difficulty.enemyHealthMultiplier = Enemy Health: {0}
+difficulty.enemySpawnMultiplier = Enemy Amount: {0}
+difficulty.waveTimeMultiplier = Wave Timer: {0}
+difficulty.nomodifiers = [lightgray](No modifiers)
planets = Planeetat
planet.serpulo.name = Serpulo
@@ -834,8 +855,8 @@ sector.windsweptIslands.description = Kauempana rantaviivan takana on tämä kau
sector.extractionOutpost.description = Kaukainen vartioasema, jonka vihollinen rakensi laukaistakseen resursseja muihin sektoreihin.\n\nSektorien välinen kuljetusteknologia on olennaista myöhemmälle valloitukselle. Tuhoa tämä tukikohta. Tutki heidän laukaisualustansa.
sector.impact0078.description = Täällä lepäävät tähtienvälisen aluksen, joka ensimmäisenä kulki tähän aurinkokuntaan, jäännökset.\n\nPelasta hylystä mahdollisimman paljon. Tutki kaikki säilynyt teknologia.
sector.planetaryTerminal.description = Viimeinen kohde.\n\nTämä rannikkotukikohta sisältää rakennuksen, joka pystyy laukaisemaan ytimiä paikallisille planeetoille. Se on vartioitu äärimmäisen hyvin.\n\nRakenna laivayksiköitä. Eliminoi vihollinen mahdollisimman pian. Tutki laukaisurakennus.
-sector.coastline.description = Remnants of naval unit technology have been detected at this location. Repel the enemy attacks, capture this sector, and acquire the technology.
-sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it.
+sector.coastline.description = Tällä alueella on havaittu jälkiä meriyksikköjen teknologiasta. Torju vihollisen hyökkäykset, valtaa tämä sektori ja hanki teknologia.
+sector.navalFortress.description = Vihollinen on perustanut tukikohdan syrjäiselle, luonnostaan linnoitetulle saarelle. Tuhoa tämä etuvartioasema. Hanki heidän kehittynyt merialusteknologiansa ja tutki se.
sector.cruxscape.name = Cruxscape
sector.geothermalStronghold.name = Geothermal Stronghold
sector.facility32m.description = WIP, map submission by Stormride_R
@@ -865,23 +886,25 @@ sector.siege.name = Siege
sector.crossroads.name = Crossroads
sector.karst.name = Karst
sector.origin.name = Origin
-sector.onset.description = Tutoriaalisektori. Tätä tehtävää ei ole vielä luotu. Odota myöhempää tietoa.
-sector.aegis.description = This sector contains deposits of tungsten.\nResearch the [accent]Impact Drill[] to mine this resource, and destroy the enemy base in the area.
-sector.lake.description = This sector's slag lake greatly limits viable units. A hover unit is the only option.\nResearch the [accent]ship fabricator[] and produce an [accent]elude[] unit as soon as possible.
-sector.intersect.description = Scans suggest that this sector will be attacked from multiple sides soon after landing.\nSet up defenses quickly and expand as soon as possible.\n[accent]Mech[] units will be required for the area's rough terrain.
-sector.atlas.description = This sector contains varied terrain and will require a variety of units to attack effectively.\nUpgraded units may also be necessary to get past some of the tougher enemy bases detected here.\nResearch the [accent]Electrolyzer[] and the [accent]Tank Refabricator[].
-sector.split.description = The minimal enemy presence in this sector makes it perfect for testing new transport tech.
-sector.basin.description = Large enemy presence detected in this sector.\nBuild units quickly and capture enemy cores to gain a foothold.
-sector.marsh.description = This sector has an abundance of arkycite, but has limited vents.\nBuild [accent]Chemical Combustion Chambers[] to generate power.
-sector.peaks.description = The mountainous terrain in this sector make most units useless. Flying units will be required.\nBe aware of enemy anti-air installations. It may be possible to disable some of these installations by targeting their supporting buildings.
-sector.ravine.description = No enemy cores detected in the sector, although it's an important transportation route for the enemy. Expect variety of enemy forces.\nProduce [accent]surge alloy[]. Construct [accent]Afflict[] turrets.
-sector.caldera-erekir.description = The resources detected in this sector are scattered across several islands.\nResearch and deploy drone-based transportation.
-sector.stronghold.description = The large enemy encampment in this sector guards significant deposits of [accent]thorium[].\nUse it to develop higher tier units and turrets.
-sector.crevice.description = The enemy will send fierce attack forces to take out your base in this sector.\nDeveloping [accent]carbide[] and the [accent]Pyrolysis Generator[] may be imperative for survival.
-sector.siege.description = This sector features two parallel canyons that will force a two-pronged attack.\nResearch [accent]cyanogen[] to gain the capability to create even stronger tank units.\nCaution: enemy long-range missiles have been detected. The missiles may be shot down before impact.
-sector.crossroads.description = The enemy bases in this sector have been established in varying terrain. Research different units to adapt.\nAdditionally, some bases are protected by shields. Figure out how they are powered.
-sector.karst.description = This sector is rich in resources, but will be attacked by the enemy once a new core lands.\nTake advantage of the resources and research [accent]phase fabric[].
-sector.origin.description = The final sector with a significant enemy presence.\nNo probable research opportunities remain - focus solely on destroying all enemy cores.
+
+sector.onset.description = Aloita Erekirin valloitus. Kerää resursseja, tuota yksiköitä ja aloita teknologian tutkiminen.
+sector.aegis.description = Tässä sektorissa on volfram-esiintymiä.\nTutki [accent]iskupora[] louhiaksesi tätä resurssia ja tuhoa alueen vihollistukikohta.
+sector.lake.description = Tämän sektorin kuona-järvi rajoittaa merkittävästi käyttökelpoisia yksiköitä. Ilma-alus on ainoa vaihtoehto.\nTutki [accent]Ilma-alusrakentaja[] ja valmista elude -yksikkö mahdollisimman pian.
+sector.intersect.description = Skannaukset viittaavat siihen, että tämä sektori joutuu hyökkäyksen kohteeksi useilta suunnilta pian laskeutumisen jälkeen.\nPerusta puolustukset nopeasti ja laajenna mahdollisimman pian.\n[accent]Merui[] -yksiköitä tarvitaan alueen karuun maastoon.
+sector.atlas.description = Tässä sektorissa on monimuotoinen maasto ja tehokkaaseen hyökkäyksen tarvitaan monipuolisia yksiköitä.\nPäivitetyt yksiköt voivat myös olla tarpeen, tiettyjen vihollistukikohtien läpäisemiseksi.\nTutki [accent]Elektrolysoija[] ja [accent]Tankkijälleenrakentaja[].
+sector.split.description = Vähäinen vihollisaktiivisuus tekee tästä sektorista täydellisen uusien kuljetusteknologioiden testaamiseen.
+sector.basin.description = Tässä sektorissa havaittiin suuri vihollisjoukko.\nRakenna yksiköitä nopeasti ja valtaa vihollisen ytimet saadaksesi jalansijan.
+sector.marsh.description = Tässä sektorissa on runsaasti arkysiittiä, mutta rajoitetusti purkauksia.\nRakenna [accent]kemiallisia polttokammioita[] tuottaaksesi energiaa.
+sector.peaks.description = Sektorin vuoristoinen maasto tekee suurimman osan yksiköistä hyödyttömiksi. Lentäviä ksiköitä tarvitaan.\nHuomioi vihollisen ilmatorjuntajärjestelmät. Joitain näistä järjestelmistä voi olla mahdollista lamauttaa kohdistamalla hyökkäys niiden tukirakennuksiin.
+sector.ravine.description = Sektorissa ei ole havaittu vihollisen ytimiä, vaikka se on vihollisen tärkeä kuljetusreitti. Odota kuitenkin monenlaisia vihollisjoukkoja.\nTuota [accent]jänniteseosta[]. Rakenna [accent]Aiheuttaja[]-tykkejä.
+sector.caldera-erekir.description = Tämän sektorin resurssit ovat hajallaan useilla saarilla.\nTutki ja ota käyttöön drone-pohjainen kuljetus.
+sector.stronghold.description = Suuri vihollisleiri tässä sektorissa puolustaa merkittäviä [accent]torium[]-esiintymiä.\nKäytä sitä kehittyneempien yksiköiden ja tykkien valmistamiseen.
+sector.crevice.description = Vihollinen lähettää rajuja hyökkäysjoukkoja tuhotakseen tukikohtasi tässä sektorissa. [accent]Karbidin[] ja [accent]Pyrolyysigeneraattorin[] kehittäminen voi olla elintärkeää selviytymisen kannalta.
+sector.siege.description = Tässä sektorissa on kaksi rinnakkaista kanjonia, jotka pakottavat kaksisuuntaisen hyökkäyksen.\nTutki [accent]syanogeeni[] kehittääksesi vieläkin vahvempia tankkiyksiköitä.\nVaroitus: vihollisen pitkän kantaman ohjuksia havaittu. Ohjukset on kuitenkin mahdollista ampua alas ennen kuin ne osuvat kohteeseensa.
+sector.crossroads.description = Tämän sektorin vihollistukikohdat on perustettu vaihtelevaan maastoon. Tutki erilaisia yksiköitä mukautuaksesi.\nLisäksi joitakin tukikohtia suojaavat kilvet. Selvitä, mistä ne saavat voimansa.
+sector.karst.description = Tässä sektorissa on runsaasti resursseja, mutta vihollinen hyökkää heti, kun uusi ydin laskeutuu.\nHyödynnä resursseja ja tutki [accent]kiihtokuitu[].
+sector.origin.description = Viimeinen sektori, jossa on merkittävä määrä vihollisia.\nVarteenotettavia tutkimusmahdollisuuksia ei ole jäljellä – keskity yksinomaan kaikkien vihollisytimien tuhoamiseen.
+
status.burning.name = Palaminen
status.freezing.name = Jäätyminen
status.wet.name = Märkä
@@ -914,8 +937,8 @@ settings.clearsaves.confirm = Oletko varma, että haluat tyhjentää kaikki tall
settings.clearsaves = Poista tallennukset
settings.clearresearch = Poista tutkimukset
settings.clearresearch.confirm = Oletko varma, että haluat tyhjentää kaikki tutkimuksesi polussa?
-settings.clearcampaignsaves = Poista polkutallennukset
-settings.clearcampaignsaves.confirm = Oletko varma, että haluat poistaa kaikki polkutallennuksesi?
+settings.clearcampaignsaves = Poista kampanjatallennukset
+settings.clearcampaignsaves.confirm = Oletko varma, että haluat poistaa kaikki kampanjatallennuksesi?
paused = [accent]< Pysäytetty >
clear = Tyhjä
banned = [scarlet]Kielletty
@@ -963,7 +986,7 @@ stat.productiontime = Tuotantoaika
stat.repairtime = Kokonaisen palikan korjausaika
stat.repairspeed = Korjausnopeus
stat.weapons = Aseet
-stat.bullet = Ammus
+stat.bullet = Ammukset
stat.moduletier = Moduulin taso
stat.unittype = Unit Type
stat.speedincrease = Nopeuden kasvu
@@ -1011,6 +1034,7 @@ stat.buildspeedmultiplier = Rakennusnopeuskerroin
stat.reactive = Reagoi
stat.immunities = Immuuni
stat.healing = Parantuu
+stat.efficiency = [stat]{0}% Efficiency
ability.forcefield = Voimakenttä
ability.forcefield.description = Projects a force shield that absorbs bullets
@@ -1058,6 +1082,7 @@ ability.stat.buildtime = [stat]{0} sec[lightgray] build time
bar.onlycoredeposit = Sijoittaminen sallittua vain ytimeen
bar.drilltierreq = Parempi pora vaadittu
+bar.nobatterypower = Insufficieny Battery Power
bar.noresources = Resursseja Puuttuu
bar.corereq = Pohjaydin vaadittu
bar.corefloor = 'Ydinpohja'-laatta vaadittu
@@ -1066,6 +1091,7 @@ bar.drillspeed = Poran nopeus: {0}/s
bar.pumpspeed = Pumpun nopeus: {0}/s
bar.efficiency = Tehokkuus: {0}%
bar.boost = Tehostus: +{0}%
+bar.powerbuffer = Battery Power: {0}/{1}
bar.powerbalance = Energia: {0}/s
bar.powerstored = Säilöttynä: {0}/{1}
bar.poweramount = Energia: {0}
@@ -1076,6 +1102,7 @@ bar.capacity = Kapasiteetti: {0}
bar.unitcap = {0} {1}/{2}
bar.liquid = Neste
bar.heat = Lämpö
+bar.cooldown = Cooldown
bar.instability = Epävakaus
bar.heatamount = Lämpö: {0}
bar.heatpercent = Lämpö: {0} ({1}%)
@@ -1100,6 +1127,7 @@ bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
bullet.frags = [stat]{0}[lightgray]x sirpaleammuksia:
bullet.lightning = [stat]{0}[lightgray]x salama ~ [stat]{1}[lightgray] vahinkoa
bullet.buildingdamage = [stat]{0}%[lightgray] vahinko rakennuksiin
+bullet.shielddamage = [stat]{0}%[lightgray] shield damage
bullet.knockback = [stat]{0}[lightgray] tönäisy
bullet.pierce = [stat]{0}[lightgray]x lävistys
bullet.infinitepierce = [stat]lävistys
@@ -1126,6 +1154,7 @@ unit.minutes = minuuttia
unit.persecond = /s
unit.perminute = /min
unit.timesspeed = x nopeus
+unit.multiplier = x
unit.percent = %
unit.shieldhealth = suojan elinpisteet
unit.items = esinettä
@@ -1202,11 +1231,13 @@ setting.mutemusic.name = Mykistä musiikki
setting.sfxvol.name = SFX-voimakkuus
setting.mutesound.name = Mykistä äänet
setting.crashreport.name = Lähetä anonyymejä kaatumisilmoituksia
+setting.communityservers.name = Fetch Community Server List
setting.savecreate.name = Luo tallenuksia automaattisesti
setting.steampublichost.name = Public Game Visibility
setting.playerlimit.name = Pelaajaraja
setting.chatopacity.name = Keskustelun läpinäkymättömyys
setting.lasersopacity.name = Energia laserin läpinäkymättömyys
+setting.unitlaseropacity.name = Unit Mining Beam Opacity
setting.bridgeopacity.name = Siltojen läpinäkyvyys
setting.playerchat.name = Näytä pelinsisäinen keskustelu
setting.showweather.name = Näytä säägrafiikat
@@ -1215,6 +1246,9 @@ setting.macnotch.name = Mukauta käyttöliittymä näyttämään lovi
setting.macnotch.description = Muutosten toteuttaminen vaatii uudelleenkäynnistyksen
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.
public.beta = Huomaa, että pelin betaversiot eivät voi luoda julkisia auloja.
uiscale.reset = UI:n skaalaa on muutettu.\nPaina "OK" hyväksyäksesi tämän skaalan.\n[scarlet]Palautetaan ja poistutaan[accent] {0}[] sekunnissa...
uiscale.cancel = Peruuta ja poistu
@@ -1295,6 +1329,7 @@ keybind.shoot.name = Ammu
keybind.zoom.name = Zoomaa
keybind.menu.name = Valikko
keybind.pause.name = Pysäytä
+keybind.skip_wave.name = Skip Wave
keybind.pause_building.name = Pysäytä/Jatka rakennusta
keybind.minimap.name = Pienoiskartta
keybind.planet_map.name = Planeettakartta
@@ -1362,12 +1397,14 @@ rules.unitcostmultiplier = Unit Cost Multiplier
rules.unithealthmultiplier = Yksikköjen elämäpistekerroin
rules.unitdamagemultiplier = Yksikköjen vahinkokerroin
rules.unitcrashdamagemultiplier = Unit Crash Damage Multiplier
+rules.unitminespeedmultiplier = Unit Mine Speed Multiplier
rules.solarmultiplier = Aurinkovoimakerroin
rules.unitcapvariable = Ytimet vaikuttavat yksikkörajaan
rules.unitpayloadsexplode = Carried Payloads Explode With The Unit
rules.unitcap = Perusyksikköraja
rules.limitarea = Rajoita kartan aluetta
rules.enemycorebuildradius = Vihollisytimen rakennuksenestosäde:[lightgray] (laattoina)
+rules.extracorebuildradius = Extra No-Build Radius:[lightgray] (tiles)
rules.wavespacing = Tasojen väliaika:[lightgray] (sec)
rules.initialwavespacing = Ensimmäinen tason väliaika:[lightgray] (sec)
rules.buildcostmultiplier = Rakentamisen hintakerroin
@@ -1390,6 +1427,9 @@ rules.title.planet = Planeetta
rules.lighting = Salamointi
rules.fog = Sodan sumu (Fog of War)
rules.invasions = Enemy Sector Invasions
+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.fire = Tuli
@@ -1708,6 +1748,8 @@ block.meltdown.name = Sulamispiste
block.foreshadow.name = Foreshadow
block.container.name = Säiliö
block.launch-pad.name = Laukaisualusta
+block.advanced-launch-pad.name = Launch Pad
+block.landing-pad.name = Landing Pad
block.segment.name = Segmentti
block.ground-factory.name = Maatehdas
block.air-factory.name = Ilmatehdas
@@ -1758,12 +1800,14 @@ block.dense-red-stone.name = Tiheä punakivi
block.red-ice.name = Punajää
block.arkycite-floor.name = Arkysiittilattia
block.arkyic-stone.name = Arkyinen lattia
-block.rhyolite-vent.name = Ryoliittihalkio
-block.carbon-vent.name = Hiilihalkio
-block.arkyic-vent.name = Arkyinen halkio
-block.yellow-stone-vent.name = Keltakivihalkio
-block.red-stone-vent.name = Punakivihalkio
-block.crystalline-vent.name = Crystalline Vent
+block.rhyolite-vent.name = Ryoliittipurkaus
+block.carbon-vent.name = Hiilipurkaus
+block.arkyic-vent.name = Arkyinen purkaus
+block.yellow-stone-vent.name = Keltakivipurkaus
+block.red-stone-vent.name = Punakivipurkaus
+block.crystalline-vent.name = Kiteinen purkaus
+block.stone-vent.name = Stone Vent
+block.basalt-vent.name = Basalt Vent
block.redmat.name = Punamatto
block.bluemat.name = Sinimatto
block.core-zone.name = Ydinpohja
@@ -1849,12 +1893,12 @@ block.beam-link.name = Sädelinkki
block.turbine-condenser.name = Turbiinitiivistäjä
block.chemical-combustion-chamber.name = Kemiallinen polttokammio
block.pyrolysis-generator.name = Pyrolyysigeneraattori
-block.vent-condenser.name = Halkiotiivistäjä
+block.vent-condenser.name = Purkaustiivistäjä
block.cliff-crusher.name = Kallionmurskaaja
block.large-cliff-crusher.name = Advanced Cliff Crusher
block.plasma-bore.name = Plasmapora
block.large-plasma-bore.name = Suuri plasmapora
-block.impact-drill.name = Törmäyspora
+block.impact-drill.name = Iskupora
block.eruption-drill.name = Purkauspora
block.core-bastion.name = Linnake-ydin
block.core-citadel.name = Linnoitus-ydin
@@ -1917,77 +1961,77 @@ hint.respawn = Uudelleensyntyäksesi aluksena, paina näppäintä [accent][[V][]
hint.respawn.mobile = Olet siirtynyt hallitsemaan yksikköä/rakennusta. Uudelleensyntyäksesi aluksena, [accent]paina avataria ylhäällä vasemmalla.[]
hint.desktopPause = Paina [accent][[Välilyöntiä][] pysäyttääksesi ja jatkaaksesi peliä.
hint.breaking = Paina [accent]Hiiren oikea[] ja vedä rikkoaksesi palikoita.
-hint.breaking.mobile = Aktivoi \ue817 [accent]vasara[] alhaalla oikealla ja kosketa rikkoaksesi palikoita.\n\nPidä sormeasi pohjassa hetki ja vedä poistaaksesi valinnalla.
+hint.breaking.mobile = Aktivoi :hammer: [accent]vasara[] alhaalla oikealla ja kosketa rikkoaksesi palikoita.\n\nPidä sormeasi pohjassa hetki ja vedä poistaaksesi valinnalla.
hint.blockInfo = Näytä tietoa palikasta valitsemalla se [accent]rakennusvalikossa[], ja painamalla sitten [accent][[?][]-nappia oikella.
hint.derelict = [accent]Hylky[]-rakennukset ovat hajonneita jäännöksiä vanhoista tukikohdista, jotka eivät enää toimi.\n\nNämä rakennukset on mahdollista [accent]purkaa[] resurssien saamiseksi.
-hint.research = Käytä \ue875 [accent]Tutki[]-nappia tutkiaksesi uutta teknologiaa.
-hint.research.mobile = Käytä \ue875 [accent]Tutki[]-nappia \ue88c[accent]Valikossa[] tutkiaksesi uutta teknologiaa.
+hint.research = Käytä :tree: [accent]Tutki[]-nappia tutkiaksesi uutta teknologiaa.
+hint.research.mobile = Käytä :tree: [accent]Tutki[]-nappia :menu:[accent]Valikossa[] tutkiaksesi uutta teknologiaa.
hint.unitControl = Pidä pohjassa [accent][[Vasen ctrl][] ja [accent]klikkaa[] hallitaksesi ystävällisiä yksikköjä tai rakennuksia.
hint.unitControl.mobile = [accent][[Kaksoisklikkaa][] hallitaksesi ystävällisiä yksikköjä tai rakennuksia.
hint.unitSelectControl = To control units, enter [accent]command mode[] by holding [accent]L-shift.[]\nWhile in command mode, click and drag to select units. [accent]Right-click[] a location or target to command units there.
hint.unitSelectControl.mobile = To control units, enter [accent]command mode[] by pressing the [accent]command[] button in the bottom left.\nWhile in command mode, long-press and drag to select units. Tap a location or target to command units there.
-hint.launch = Kun olet kerännyt riittävästi resursseja, voit [accent]Laukaista[] valitsemalla läheisen sektorin \ue827[accent]Kartasta[] alhaalla oikealla.
-hint.launch.mobile = Kun olet kerännyt riittävästi resursseja, voit [accent]Laukaista[] valitsemalla läheisen sektorin \ue827[accent]Kartasta[], joka löytyy \ue88c[accent]Valikosta[].
+hint.launch = Kun olet kerännyt riittävästi resursseja, voit [accent]Laukaista[] valitsemalla läheisen sektorin :map:[accent]Kartasta[] alhaalla oikealla.
+hint.launch.mobile = Kun olet kerännyt riittävästi resursseja, voit [accent]Laukaista[] valitsemalla läheisen sektorin :map:[accent]Kartasta[], joka löytyy :menu:[accent]Valikosta[].
hint.schematicSelect = Pidä näppäintä [accent][[F][] pohjassa ja vedä valitaksesi palikoita kopioitavaksi ja liitettäväksi.\n\n[accent] Paina [[Hiiren keskinäppäin][] kopioidaksesi yksittäisen palikan.
hint.rebuildSelect = Hold [accent][[B][] and drag to select destroyed block plans.\nThis will rebuild them automatically.
-hint.rebuildSelect.mobile = Select the \ue874 copy button, then tap the \ue80f rebuild button and drag to select destroyed block plans.\nThis will rebuild them automatically.
+hint.rebuildSelect.mobile = Select the :copy: copy button, then tap the :wrench: rebuild button and drag to select destroyed block plans.\nThis will rebuild them automatically.
hint.conveyorPathfind = Pidä näppäintä [accent][[Vasen ctrl][] pohjassa, kun vedät liukuhihnoja luodaksesi polun automaattisesti.
-hint.conveyorPathfind.mobile = Salli \ue844[accent]Viisto tila[] ja vedä liukuhihnoja luodaksesi polun automaattisesti.
+hint.conveyorPathfind.mobile = Salli :diagonal:[accent]Viisto tila[] ja vedä liukuhihnoja luodaksesi polun automaattisesti.
hint.boost = Pidä [accent][[Vasen shift][] pohjassa lentääksesi esteiden yli yksikölläsi.\n\nVain harvoilla maajoukoilla on tehostin.
hint.payloadPickup = Paina näppäintä [accent][[[] lastataksesi pieniä palikoita ja joukkoja.
hint.payloadPickup.mobile = [accent]Paina ja pidä pohjassa[] pientä palikkaa tai yksikköä lastataksesi sen.
hint.payloadDrop = Paina [accent]][] pudottaaksesi lastin.
hint.payloadDrop.mobile = [accent]Paina ja pidä pohjassa[] tyhjässä kohdassa pudottaaksesi lastin sinne.
hint.waveFire = [accent]Aalto[]-tykit, jotka on ladattu vedellä, sammuttavat kantamalla olevia tulipaloja automaattisesti.
-hint.generator = \uf879 [accent]Aggregaatit[] polttavat hiiltä ja lähettävät energiaa viereisille palikoille.\n\nEnergiansiirtokantamaa voi laajentaa \uf87f[accent]Sähkötolpilla[].
-hint.guardian = [accent]Vartija[]yksiköt ovat haarniskoituja. Heikot ammukset kuten [accent]kupari[] ja [accent]lyijy[][scarlet]eivät ole tehokkaita[].\n\nKäytä korkeamman tason tykkejä tai \uf835[accent]Grafiittia[] \uf861Duon/\uf859Salvon ammuksena voittaaksesi vartijan.
-hint.coreUpgrade = Ytimen voi päivittää [accent]sijoittamalla suuremman tason ytimen niiden päälle[].\n\nSijoita \uf868[accent]Pohjaus[]-ydin \uf869[accent]Siru[]-ytimen päälle. Varmista, että tiellä ei ole esteitä.
+hint.generator = :combustion-generator: [accent]Aggregaatit[] polttavat hiiltä ja lähettävät energiaa viereisille palikoille.\n\nEnergiansiirtokantamaa voi laajentaa :power-node:[accent]Sähkötolpilla[].
+hint.guardian = [accent]Vartija[]yksiköt ovat haarniskoituja. Heikot ammukset kuten [accent]kupari[] ja [accent]lyijy[][scarlet]eivät ole tehokkaita[].\n\nKäytä korkeamman tason tykkejä tai :graphite:[accent]Grafiittia[] :duo:Duon/:salvo:Salvon ammuksena voittaaksesi vartijan.
+hint.coreUpgrade = Ytimen voi päivittää [accent]sijoittamalla suuremman tason ytimen niiden päälle[].\n\nSijoita :core-foundation:[accent]Pohjaus[]-ydin :core-shard:[accent]Siru[]-ytimen päälle. Varmista, että tiellä ei ole esteitä.
hint.presetLaunch = Harmaisiin [accent]laskeutumisaluesektoreihin[], kuten [accent]Jäätyneisiin metsiin[], voi laukaista kaikkialta. Ne eivät vaadi valtausta tai läheistä aluetta.\n\n[accent]Numeroidut sektorit[], kuten tämä, ovat [accent]valinnaisia[].
hint.presetDifficulty = Tässä sektorissa on [scarlet]korkea uhkataso[].\nLaukaiseminen korkean uhkatason sektoreihin [accent]ei ole suositeltua[] ilman asianmukaista teknologiaa ja valmistautumista.
hint.coreIncinerate = Kun ydin on täynnä tiettyä tavaraa, ylimääräinen samanlainen tavara, joa tulee ytimeen, [accent]höyrystetään[].
hint.factoryControl = To set a unit factory's [accent]output destination[], click a factory block while in command mode, then right-click a location.\nUnits produced by it will automatically move there.
hint.factoryControl.mobile = To set a unit factory's [accent]output destination[], tap a factory block while in command mode, then tap a location.\nUnits produced by it will automatically move there.
-gz.mine = Move near the \uf8c4 [accent]copper ore[] on the ground and click to begin mining.
-gz.mine.mobile = Move near the \uf8c4 [accent]copper ore[] on the ground and tap it to begin mining.
-gz.research = Open the \ue875 tech tree.\nResearch the \uf870 [accent]Mechanical Drill[], then select it from the menu in the bottom right.\nClick on a copper patch to place it.
-gz.research.mobile = Open the \ue875 tech tree.\nResearch the \uf870 [accent]Mechanical Drill[], then select it from the menu in the bottom right.\nTap on a copper patch to place it.\n\nPress the \ue800 [accent]checkmark[] at the bottom right to confirm.
-gz.conveyors = Research and place \uf896 [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nClick and drag to place multiple conveyors.\n[accent]Scroll[] to rotate.
-gz.conveyors.mobile = Research and place \uf896 [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nHold down your finger for a second and drag to place multiple conveyors.
+gz.mine = Move near the :ore-copper: [accent]copper ore[] on the ground and click to begin mining.
+gz.mine.mobile = Move near the :ore-copper: [accent]copper ore[] on the ground and tap it to begin mining.
+gz.research = Open the :tree: tech tree.\nResearch the :mechanical-drill: [accent]Mechanical Drill[], then select it from the menu in the bottom right.\nClick on a copper patch to place it.
+gz.research.mobile = Open the :tree: tech tree.\nResearch the :mechanical-drill: [accent]Mechanical Drill[], then select it from the menu in the bottom right.\nTap on a copper patch to place it.\n\nPress the \ue800 [accent]checkmark[] at the bottom right to confirm.
+gz.conveyors = Research and place :conveyor: [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nClick and drag to place multiple conveyors.\n[accent]Scroll[] to rotate.
+gz.conveyors.mobile = Research and place :conveyor: [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nHold down your finger for a second and drag to place multiple conveyors.
gz.drills = Expand the mining operation.\nPlace more Mechanical Drills.\nMine 100 copper.
-gz.lead = \uf837 [accent]Lead[] is another commonly used resource.\nSet up drills to mine lead.
-gz.moveup = \ue804 Move up for further objectives.
-gz.turrets = Research and place 2 \uf861 [accent]Duo[] turrets to defend the core.\nDuo turrets require \uf838 [accent]ammo[] from conveyors.
+gz.lead = :lead: [accent]Lead[] is another commonly used resource.\nSet up drills to mine lead.
+gz.moveup = :up: Move up for further objectives.
+gz.turrets = Research and place 2 :duo: [accent]Duo[] turrets to defend the core.\nDuo turrets require \uf838 [accent]ammo[] from conveyors.
gz.duoammo = Supply the Duo turrets with [accent]copper[], using conveyors.
-gz.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace \uf8ae [accent]copper walls[] around the turrets.
+gz.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace :copper-wall: [accent]copper walls[] around the turrets.
gz.defend = Enemy incoming, prepare to defend.
-gz.aa = Flying units cannot easily be dispatched with standard turrets.\n\uf860 [accent]Scatter[] turrets provide excellent anti-air, but require \uf837 [accent]lead[] as ammo.
+gz.aa = Flying units cannot easily be dispatched with standard turrets.\n:scatter: [accent]Scatter[] turrets provide excellent anti-air, but require :lead: [accent]lead[] as ammo.
gz.scatterammo = Supply the Scatter turret with [accent]lead[], using conveyors.
gz.supplyturret = [accent]Supply Turret
gz.zone1 = This is the enemy drop zone.
gz.zone2 = Anything built in the radius is destroyed when a wave starts.
gz.zone3 = A wave will begin now.\nGet ready.
gz.finish = Build more turrets, mine more resources,\nand defend against all the waves to [accent]capture the sector[].
-onset.mine = Click to mine \uf748 [accent]beryllium[] from walls.\n\nUse [accent][[WASD] to move.
-onset.mine.mobile = Tap to mine \uf748 [accent]beryllium[] from walls.
-onset.research = Open the \ue875 tech tree.\nResearch, then place a \uf73e [accent]turbine condenser[] on the vent.\nThis will generate [accent]power[].
-onset.bore = Research and place a \uf741 [accent]plasma bore[].\nThis automatically mines resources from walls.
-onset.power = To [accent]power[] the plasma bore, research and place a \uf73d [accent]beam node[].\nConnect the turbine condenser to the plasma bore.
-onset.ducts = Research and place \uf799 [accent]ducts[] to move the mined resources from the plasma bore to the core.\nClick and drag to place multiple ducts.\n[accent]Scroll[] to rotate.
-onset.ducts.mobile = Research and place \uf799 [accent]ducts[] to move the mined resources from the plasma bore to the core.\n\nHold down your finger for a second and drag to place multiple ducts.
+onset.mine = Click to mine :beryllium: [accent]beryllium[] from walls.\n\nUse [accent][[WASD] to move.
+onset.mine.mobile = Tap to mine :beryllium: [accent]beryllium[] from walls.
+onset.research = Open the :tree: tech tree.\nResearch, then place a :turbine-condenser: [accent]turbine condenser[] on the vent.\nThis will generate [accent]power[].
+onset.bore = Research and place a :plasma-bore: [accent]plasma bore[].\nThis automatically mines resources from walls.
+onset.power = To [accent]power[] the plasma bore, research and place a :beam-node: [accent]beam node[].\nConnect the turbine condenser to the plasma bore.
+onset.ducts = Research and place :duct: [accent]ducts[] to move the mined resources from the plasma bore to the core.\nClick and drag to place multiple ducts.\n[accent]Scroll[] to rotate.
+onset.ducts.mobile = Research and place :duct: [accent]ducts[] to move the mined resources from the plasma bore to the core.\n\nHold down your finger for a second and drag to place multiple ducts.
onset.moremine = Expand the mining operation.\nPlace more Plasma Bores and use beam nodes and ducts to support them.\nMine 200 beryllium.
-onset.graphite = More complex blocks require \uf835 [accent]graphite[].\nSet up plasma bores to mine graphite.
-onset.research2 = Begin researching [accent]factories[].\nResearch the \uf74d [accent]cliff crusher[] and \uf779 [accent]silicon arc furnace[].
-onset.arcfurnace = The arc furnace needs \uf834 [accent]sand[] and \uf835 [accent]graphite[] to create \uf82f [accent]silicon[].\n[accent]Power[] is also required.
-onset.crusher = Use \uf74d [accent]cliff crushers[] to mine sand.
-onset.fabricator = Use [accent]units[] to explore the map, defend buildings, and attack the enemy. Research and place a \uf6a2 [accent]tank fabricator[].
+onset.graphite = More complex blocks require :graphite: [accent]graphite[].\nSet up plasma bores to mine graphite.
+onset.research2 = Begin researching [accent]factories[].\nResearch the :cliff-crusher: [accent]cliff crusher[] and :silicon-arc-furnace: [accent]silicon arc furnace[].
+onset.arcfurnace = The arc furnace needs :sand: [accent]sand[] and :graphite: [accent]graphite[] to create :silicon: [accent]silicon[].\n[accent]Power[] is also required.
+onset.crusher = Use :cliff-crusher: [accent]cliff crushers[] to mine sand.
+onset.fabricator = Use [accent]units[] to explore the map, defend buildings, and attack the enemy. Research and place a :tank-fabricator: [accent]tank fabricator[].
onset.makeunit = Produce a unit.\nUse the "?" button to see selected factory requirements.
-onset.turrets = Units are effective, but [accent]turrets[] provide better defensive capabilities if used effectively.\nPlace a \uf6eb [accent]Breach[] turret.\nTurrets require \uf748 [accent]ammo[].
+onset.turrets = Units are effective, but [accent]turrets[] provide better defensive capabilities if used effectively.\nPlace a :breach: [accent]Breach[] turret.\nTurrets require :beryllium: [accent]ammo[].
onset.turretammo = Supply the turret with [accent]beryllium ammo.[]
-onset.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace some \uf6ee [accent]beryllium walls[] around the turret.
+onset.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace some :beryllium-wall: [accent]beryllium walls[] around the turret.
onset.enemies = Enemy incoming, prepare to defend.
onset.defenses = [accent]Set up defenses:[lightgray] {0}
onset.attack = The enemy is vulnerable. Counter-attack.
-onset.cores = New cores can be placed on [accent]core tiles[].\nNew cores function as forward bases and share a resource inventory with other cores.\nPlace a \uf725 core.
+onset.cores = New cores can be placed on [accent]core tiles[].\nNew cores function as forward bases and share a resource inventory with other cores.\nPlace a :core-bastion: core.
onset.detect = The enemy will be able to detect you in 2 minutes.\nSet up defenses, mining, and production.
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.
@@ -2147,7 +2191,9 @@ block.vault.description = Varastoi suuren määrän jokaista tavaratyyppiä. Pur
block.container.description = Varastoi pienen määrän jokaista tavaratyyppiä. Purkajapalikkaa voi tavaroiden palauttamiseen säiliöstä.
block.unloader.description = Purkaa tavaroita säiliöstä, holvista tai ytimestä liukuhihnalle tai suoraan viereiseen palikkaan. Purettavan tavaran tyyppi voidaan vaihtaa painamalla.
block.launch-pad.description = Laukaisee tavarajoukkoja ilman tarvetta ytimen laukaisulle.
-block.launch-pad.details = Kiertoradan alapuolinen järjestelmä resurssien pisteestä pisteeseen -kuljetukselle . Lastikapselit ovat herkästi särkyviä ja kykenemättömiä selviytymään uudelleensaapumista.
+block.advanced-launch-pad.description = Launches batches of items to selected sectors. Only accepts one item type at a time.
+block.advanced-launch-pad.details = Sub-orbital system for point-to-point transportation of resources.
+block.landing-pad.description = Receives items from launch pads in other sectors. Requires large amounts of water to protect against impacts of landings.
block.duo.description = Pieni ja halpa tykki, hyvä maavihollisia vastaan.
block.scatter.description = Olennainen tykki ilma-aluksia vastaan. Ampuu lyijy- tai romusirpalerykelmiä vihollisjoukkoihin.
@@ -2255,6 +2301,7 @@ block.unit-cargo-loader.description = Constructs cargo drones. Drones automatica
block.unit-cargo-unload-point.description = Acts as an unloading point for cargo drones. Accepts items that match the selected filter.
block.beam-node.description = Transmits power to other blocks orthogonally. Stores a small amount of power.
block.beam-tower.description = Transmits power to other blocks orthogonally. Stores a large amount of power. Long-range.
+block.beam-link.description = Transmits power over vast distances.\nOnly capable of connecting to adjacent structures or other beam links.
block.turbine-condenser.description = Generates power when placed on vents. Produces a small amount of water.
block.chemical-combustion-chamber.description = Generates power from arkycite and ozone.
block.pyrolysis-generator.description = Generates large amounts of power from arkycite and slag. Produces water as a byproduct.
@@ -2343,6 +2390,7 @@ unit.emanate.description = Builds structures to defend the Acropolis core. Repai
lst.read = Lue numero yhdistetystä muistisolusta.
lst.write = Kirjoita numero yhdistettyyn muistisoluun.
lst.print = Lisää tekstiä tekstipuskuriin.\nEi näytä mitään, kunnes [accent]Painosyötettä[] käytetään.
+lst.printchar = Add a UTF-16 character or content icon to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used.
lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example"
lst.draw = Lisää operaation piirtopuskuriin.\nEi näytä mitään, kunnes [accent]Piirtosyötettä[] käytetään.
lst.drawflush = Syöttää jonottavat [accent]Piirto[]-operaatiot näyttöön.
@@ -2428,12 +2476,14 @@ lenum.shootp = Ammu yksikköä/rakennusta nopeudenennustus päällä.
lenum.config = Rakennuksen säätö, esim. lajittelijan valinta.
lenum.enabled = Selvitä, onko palikka päällä.
laccess.currentammotype = Current ammo item/liquid of a turret.
+laccess.memorycapacity = Number of cells in a memory block.
laccess.color = Lampun väri.
laccess.controller = Yksikön hallitsija. Jos yksikköä hallitsee prosessori, palauttaa prosessorin.\nJos yksikkö on muodostelmassa, palauttaa johtajan.\nPalauttaa muulloin itse yksikön.
laccess.dead = Selvitä, onko yksikkö/rakennus tuhoutunut tai ei enää kelvollinen.
laccess.controlled = Palauttaa:\n[accent]@ctrlProcessor[], jos yksikön hallitsija on prosessori.\n[accent]@ctrlPlayer[], jos yksikön/rakennuksen hallitsija on pelaaja.\n[accent]@ctrlFormation[], jos yksikkö on muodostelmassa\nMuussa tapauksessa palauttaa 0.
laccess.progress = Toiminnon edistys asteikolla nollasta yhteen.\nPalauttaa tuotannon, tykin latauksen tai rakennuksen edistymisen.
laccess.speed = Yksikön huippunopeus laattoina/sekunti.
+laccess.size = Size of a unit/building or the length of a string.
laccess.id = ID of a unit/block/item/liquid.\nThis is the inverse of the lookup operation.
lcategory.unknown = Tuntematon
lcategory.unknown.description = Luokittelemattomat ohjeet.
@@ -2539,9 +2589,9 @@ lenum.idle = Lopeta liikkuminen, mutta jatka rakentamista/kaivamista.\nOletustil
lenum.stop = Lopeta liikkuminen/kaivaminen/rakentaminen.
lenum.unbind = Poista logiikkahallinta kokonaan.\nAnna hallinta tavalliselle AI:lle.
lenum.move = Liiku tarkkaan sijaintiin.
-lenum.approach = Lähesty sijaintia tietylle säteelle.
-lenum.pathfind = Etsi polku vihollisen syntypisteelle.
-lenum.autopathfind = Automatically pathfinds to the nearest enemy core or drop point.\nThis is the same as standard wave enemy pathfinding.
+lenum.approach = Lähesty sijaintia tietylle etäisyydelle.
+lenum.pathfind = Etsi reitti määritettyyn sijaintiin.
+lenum.autopathfind = Reitittää automaattisesti lähimpään vihollisen ytimeen tai pudotuspisteeseen.\nTämä vastaa tavallista aaltojen vihollisten reititystä.
lenum.target = Ammu tiettyä sijaintia.
lenum.targetp = Ammu kohdetta nopeudenennustuksen ollessa päällä.
lenum.itemdrop = Pudota tavaroita.
@@ -2562,3 +2612,29 @@ lenum.autoscale = Whether to scale marker corresponding to player's zoom level.
lenum.posi = Indexed position, used for line and quad markers with index zero being the first position.
lenum.uvi = Texture's position ranging from zero to one, used for quad markers.
lenum.colori = Indexed position, used for line and quad markers with index zero being the first color.
+lenum.wavetimer = Whether the waves come automatically on a timer. If not, waves come when the play button is pressed.
+lenum.wave = Current wave number. Can be anything in non-wave modes.
+lenum.currentwavetime = Wave countdown in ticks.
+lenum.waves = Whether waves are spawnable at all.
+lenum.wavesending = Whether the waves can be manually summoned with the play button.
+lenum.attackmode = Determines if gamemode is attack mode.
+lenum.wavespacing = Time between waves in ticks.
+lenum.enemycorebuildradius = No-build zone around enemy core radius.
+lenum.dropzoneradius = Radius around enemy wave drop zones.
+lenum.unitcap = Base unit cap. Can still be increased by blocks.
+lenum.lighting = Whether ambient lighting is enabled.
+lenum.buildspeed = Multiplier for building speed.
+lenum.unithealth = How much health units start with.
+lenum.unitbuildspeed = How fast unit factories build units.
+lenum.unitcost = Multiplier of resources that units take to build.
+lenum.unitdamage = How much damage units deal.
+lenum.blockhealth = How much health blocks start with.
+lenum.blockdamage = How much damage blocks (turrets) deal.
+lenum.rtsminweight = Minimum "advantage" needed for a squad to attack. Higher -> more cautious.
+lenum.rtsminsquad = Minimum size of attack squads.
+lenum.maparea = Playable map area. Anything outside the area will not be interactable.
+lenum.ambientlight = Ambient light color. Used when lighting is enabled.
+lenum.solarmultiplier = Multiplies power output of solar panels.
+lenum.dragmultiplier = Environment drag multiplier.
+lenum.ban = Blocks or units that cannot be placed or built.
+lenum.unban = Unban a unit or block.
diff --git a/core/assets/bundles/bundle_fil.properties b/core/assets/bundles/bundle_fil.properties
index e7e08db132..4cbe14b77e 100644
--- a/core/assets/bundles/bundle_fil.properties
+++ b/core/assets/bundles/bundle_fil.properties
@@ -1,27 +1,28 @@
credits.text = Ginawa ni [royal]Anuken[] - [sky]anukendev@gmail.com[]
-credits = Credits
-contributors = Mga Tagasalin at Contributor
-discord = Sumali sa Mindustry Discord!
+credits = Mga Kredito
+contributors = Mga Tagasalin at Tagapagkontributo
+discord = Sumali sa Discord Server ng Mindustry!
link.discord.description = Ang opisyal na Mindustry Discord chatroom.
link.reddit.description = Ang Mindustry subreddit
-link.github.description = Source code ng Mindustry
+link.github.description = Pinagmulang kodigo ng Mindustry
link.changelog.description = Listahan ng mga pagbabagong ginawa
-link.dev-builds.description = Unstable development builds
+link.dev-builds.description = Builds na masirain at iginagawa.
link.trello.description = Opisyal na Trello board para sa mga nakalatag na features
-link.itch.io.description = itch.io page na may PC download
+link.itch.io.description = itch.io page na may download para sa personal na kompyuter
link.google-play.description = Listing sa Google Play Store
link.f-droid.description = Catalogue listing sa F-Droid
-link.wiki.description = Opsiyal na Mindustry wiki
+link.wiki.description = Opsiyal na ensiklopedya ng Mindustry
link.suggestions.description = Magmungkahi ng mga bagong feature
-link.bug.description = Nakahanap ng isa? I-report dito!
-linkopen = This server has sent you a link. Are you sure you want to open it?\n\n[sky]{0}
-linkfail = 'Di mabuksan ang link!\nKinopya na sa 'yong clipboard ang URL.
+
+link.bug.description = Nakahanap ng isang sira? Ipaulat dito!
+linkopen = Ang server na ito ay nagbigay ng isang link. Gusto mo ba na ibukas?\n\n[sky]{0}
+linkfail = Hindi mabuksan ang link!\nKinopya na sa iyong clipboard ang URL.
screenshot = Ini-adya na ang screenshot sa {0}
screenshot.invalid = Masiyadong malaki ang mapa; maaaring kulang ang memory para sa screenshot.
-gameover = Tapos na ang Laro
-gameover.disconnect = Na-disconnect
-gameover.pvp = Ang[accent] {0}[] team ay nanalo!
-gameover.waiting = [accent]Hintayin ang bagong map...
+gameover = Ang laro ay natapos.
+gameover.disconnect = Nawalan ka ng koneksyon.
+gameover.pvp = Ang[accent] {0}[] na grupo ay nanalo!
+gameover.waiting = [accent]Hintayin ang bagong mapa...
highscore = [accent]Panibagong mataas na Iskor!
copied = Kinopya.
indev.notready = Ang bahaging ito ng laro ay hindi pa handa
@@ -30,36 +31,36 @@ load.sound = Mga Tunog
load.map = Mga Mapa
load.image = Mga Litrato
load.content = Nilalaman
-load.system = System
+load.system = Sistema
load.mod = Mga Mod
load.scripts = Mga Iskrip
-be.update = Mayroong baong Bleeding Edge build na makukuha:
+be.update = Mayroong bagong Bleeding Edge build na makukuha:
be.update.confirm = I-download at i-restart?
be.updating = I-na-update...
be.ignore = Huwag Pansinin
be.noupdates = Walang nahanap na update.
be.check = Tignan kung may mga update.
-mods.browser = Browser ng mga Mod
+mods.browser = Hanapan ng mga Mod
mods.browser.selected = Mga selektadong mod
mods.browser.add = I-install
-mods.browser.reinstall = I-Reinstall
-mods.browser.view-releases = View Releases
-mods.browser.noreleases = [scarlet]No Releases Found\n[accent]Couldn't find any releases for this mod. Check if the mod's repository has any releases published.
-mods.browser.latest =
-mods.browser.releases = Releases
+mods.browser.reinstall = I-install ulit
+mods.browser.view-releases = Tingan ang mga ipinalabas na bersyon
+mods.browser.noreleases = [scarlet]Walang ipinalabas na bersyon na nahanap.\n[accent]Hindi makahanap ng bersyon sa mod na ito. Tingan kung may ipinalabas na bersyon ang repositoryo ng mod nito.
+mods.browser.latest =
+mods.browser.releases = Ipinalabas na bersyon
mods.github.open = Repositoryo
-mods.github.open-release = Release Page
-mods.browser.sortdate = Sort by recent
-mods.browser.sortstars = Sort by stars
+mods.github.open-release = Pahina ng mga ipinalabas na bersyon
+mods.browser.sortdate = Uriin sa pinakabago
+mods.browser.sortstars = Uriin sa kasikatan
-schematic = Schematic
-schematic.add = I-adya ang Schematic...
-schematics = Mga Schematic
-schematic.search = Search schematics...
-schematic.replace = Ang schematic na ito ay magkaparehas ang pangalan. Gusto mo bang palitan ito?
-schematic.exists = Ang schematic na ito ay magkaparehas ang pangalan.
-schematic.import = I-angkat ang Schematic...
+schematic = Eskematiko
+schematic.add = I-adya ang Eskematiko...
+schematics = Mga Eskematiko
+schematic.search = Search eskematiko...
+schematic.replace = Ang eskematiko na ito ay magkaparehas ang pangalan. Gusto mo bang palitan ito?
+schematic.exists = Ang eskematiko na ito ay magkaparehas ang pangalan.
+schematic.import = I-angkat ang eskematiko...
schematic.exportfile = Mag-export ng File
schematic.importfile = Mag-angkat ng File
schematic.browseworkshop = Maghanap sa Workshop
@@ -69,45 +70,45 @@ schematic.shareworkshop = Ibahagi sa Workshop
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Baligtarin ang Schematic
schematic.saved = Na-i-adya na ang schematic.
schematic.delete.confirm = Ang schematic na'to ay tuluyang mawawala.
-schematic.edit = Edit Schematic
+schematic.edit = I-edit ang Schematic
schematic.info = {0}x{1}, {2} blocks
schematic.disabled = [scarlet]Ang mga schematics ay pinagbabawalan.[]\nBawal ka gumamit gang schematics sa [accent]mapa[] or [accent]server[] na ito.
schematic.tags = Mga Tag:
schematic.edittags = Mag-edit ng Tag
schematic.addtag = Mag-dagdag ng Tag
-schematic.texttag = Text Tag
-schematic.icontag = Icon Tag
+schematic.texttag = Tag sa teksto
+schematic.icontag = Tag sa larawan
schematic.renametag = Palitan ang pangalan ng Tag
-schematic.tagged = {0} tagged
+schematic.tagged = {0} na na-tag
schematic.tagdelconfirm = I-delete itong tag?
schematic.tagexists = Meron nang tag na ganito.
stats = Mga Statistiko
stats.wave = Mga Wave na nalagpasan
stats.unitsCreated = Mga Unit na nagawa
-stats.enemiesDestroyed = Mga kalabang nasira
+stats.enemiesDestroyed = Mga kalabang napasira
stats.built = Mga Building na napatayo
stats.destroyed = Mga Building na nasira
stats.deconstructed = Mga Building na binaklas
stats.playtime = Oras ng paglalaro
-globalitems = [accent]Mga Pangkalahatang Aytem
+globalitems = [accent]Mga Pangkalahatang Gamit
map.delete = Sigurado ka bang buburahin ang mapang "[accent]{0}[]"?
level.highscore = Pinakamataas na Iskor: [accent]{0}
level.select = Mamili ng Lebel
level.mode = Paraan ng Paglalaro:
coreattack = < Ang core ay inaatake! >
-nearpoint = [[ [scarlet]UMALIS KAAGAD SA DROP POINT[] ]\nnaghihintay si kamatayan…
+nearpoint = [[ [scarlet]UMALIS KAAGAD SA DROP POINT[] ]\npagkamatay ay palapit
database = Database ng Core
database.button = Database
savegame = I-save ang Laro
-loadgame = I-Load Game
+loadgame = I-Load ang Laro
joingame = Sumali sa Laro
-customgame = Custom na Laro
+customgame = Hindi-karaniwan na Laro
newgame = Bagong Laro
none =
none.found = [lightgray]
-none.inmap = [lightgray]
-minimap = Minimap
+none.inmap = [lightgray]
+minimap = Maliit na mapa
position = Posisyon
close = Isara
website = Website
@@ -125,9 +126,10 @@ uploadingcontent = Ini-a-upload ang Nilalaman
uploadingpreviewfile = Ini-a-upload ang Preview File
committingchanges = Gumagawa ng mga Pagbabago
done = Tapos Na
-feature.unsupported = Hindi suportado ng 'yong device ang feature na'to.
+feature.unsupported = Hindi suportado ng iyong device ang feature na ito.
mods.initfailed = [red]⚠[] Nabigong masimulan ang nakaraang instance ng Mindustry. Malamang na sanhi ito ng maling pagkilos ng mga mod.\n\nPara maiwasan ang crash loop, [red]lahat ng mga mod ay pinahinto.[]
mods = Mga Mod
+mods.name = Mod:
mods.none = [lightgray]Walang mga mod na nahanap!
mods.guide = Gabay para sa Paggawa ng Mod
mods.report = Mag-ulat ng Depekto
@@ -144,24 +146,24 @@ mod.disable = 'Wag Paganahin
mod.version = Version:
mod.content = Nilalaman:
mod.delete.error = 'Di matanggal ang mod. Maaaring ginagamit pa 'to.
-mod.incompatiblegame = [red]Outdated Game
-mod.incompatiblemod = [red]Incompatible
-mod.blacklisted = [red]Unsupported
-mod.unmetdependencies = [red]Unmet Dependencies
-mod.erroredcontent = [scarlet]Mga Error sa Nilalaman
+mod.incompatiblegame = [red]Larong luma na
+mod.incompatiblemod = [red]Hindi magkatugma
+mod.blacklisted = [red]Hindi pwede
+mod.unmetdependencies = [red]Pagpapaasa ay hindi magkatulad
+mod.erroredcontent = [scarlet]Mga sira sa Nilalaman
mod.circulardependencies = [red]Circular Dependencies
-mod.incompletedependencies = [red]Incomplete Dependencies
-mod.requiresversion.details = Requires game version: [accent]{0}[]\nYour game is outdated. This mod requires a newer version of the game (possibly a beta/alpha release) to function.
-mod.outdatedv7.details = This mod is incompatible with the latest version of the game. The author must update it, and add [accent]minGameVersion: 136[] to its [accent]mod.json[] file.
-mod.blacklisted.details = This mod has been manually blacklisted for causing crashes or other issues with this version of the game. Do not use it.
-mod.missingdependencies.details = This mod is missing dependencies: {0}
-mod.erroredcontent.details = This game caused errors when loading. Ask the mod author to fix them.
-mod.circulardependencies.details = This mod has dependencies that depends on each other.
-mod.incompletedependencies.details = This mod is unable to be loaded due to invalid or missing dependencies: {0}.
-mod.requiresversion = Requires game version: [red]{0}
+mod.incompletedependencies = [red]Pagpapaasa ay hindi kompleto
+mod.requiresversion.details = Kailangan ng bersyon: [accent]{0}[]\nAng iyong laro ay hindi bago. Ang mod na ito ay kailangan ng bagong bersyon ng larong ito (pwedeng beta o alpha na bersyon) para gumana.
+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 = Ang mod na ito ay manu-manong na-blacklist para sa pagdudulot ng mga pag-crash o iba pang isyu sa bersyong ito ng laro. Huwag gamitin ito.
+mod.missingdependencies.details = Ang mod na ito ay walang mga dependencies: {0}
+mod.erroredcontent.details = Nagdulot ng mga error ang larong ito kapag naglo-load. Hilingin sa may-akda ng mod na ayusin ang mga ito.
+mod.circulardependencies.details = Ang mod na ito ay may mga dependency na umaasa sa isa't isa.
+mod.incompletedependencies.details = Hindi ma-load ang mod na ito dahil sa di-wasto o nawawalang mga dependency: {0}.
+mod.requiresversion = Nangangailangan ng bersyon ng laro: [red]{0}
+
mod.errors = May mga error na naitala habang ni-lo-load ang nilalaman.
mod.noerrorplay = [scarlet]May mga mod kang may error.[] Maaaring 'wag munang paganahin ang mga apektadong mod o 'di kaya'y ayusin ang mga error bago maglaro.
-mod.nowdisabled = [scarlet]Ang mod na '{0}' ay ma kulang na mga dependency:[accent] {1}\n[lightgray]Ang mga ito'y kinakailangang i-download muna.\nAng mod na'to ay kusang 'di papaganahin.
mod.enable = Paganahin
mod.requiresrestart = Ang laro'y magsasara upang mai-apply ang mga pagbabago sa mod.
mod.reloadrequired = [scarlet]Kinakalingang I-restart
@@ -176,35 +178,47 @@ mod.missing = Ang larong 'to ay may nilalaman na mod na in-update kamakailan o b
mod.preview.missing = Bago mong ilathala ang mod sa workshop, dapat maglagay ka nang image preview.\nMaglagay ka ng litratong nagngangalang[accent] preview.png[] sa folder ng mod at subukan mo muli.
mod.folder.missing = Tanging mga mod lang nasa loob ng folder ay maaaring ma-ilathala sa workshop.\nTo convert any mod into a folder, simply unzip its file into a folder and delete the old zip, then restart your game or reload your mods.
mod.scripts.disable = Ang device mo ay hindi sumusuporta ng mga mod na may iskrip. Kailangan mo itong pahintuin upang makapaglaro.
+mod.dependencies.error = [scarlet]Mods are missing dependencies
+mod.dependencies.soft = (optional)
+mod.dependencies.download = Import
+mod.dependencies.downloadreq = Import Required
+mod.dependencies.downloadall = Import All
+mod.dependencies.status = Import Results
+mod.dependencies.success = Successfully downloaded:
+mod.dependencies.failure = Failed to download:
+mod.dependencies.imported = This mod requires dependencies. Download?
about.button = Tungkol
name = Pangalan:
noname = Pumili ng[accent] pangalan[] muna.
-search = Search:
-planetmap = Planet Map
+search = Maghanap:
+planetmap = Mapa ng Planeta:
+
launchcore = I-Launch Ang Core
-filename = File Name:
+filename = Pangalan ng File:
unlocked = Bagong content na na-unlock!
available = Bagong research na available!
unlock.incampaign = < I-unlock sa campaign para sa detalye >
-campaign.select = Select Starting Campaign
-campaign.none = [lightgray]Select a planet to start on.\nThis can be switched at any time.
-campaign.erekir = Newer, more polished content. Mostly linear campaign progression.\n\nHigher quality maps and overall experience.
-campaign.serpulo = Older content; the classic experience. More open-ended.\n\nPotentially unbalanced maps and campaign mechanics. Less polished.
+campaign.select = Piliin ang Starting Campaign
+campaign.none = [lightgray]Pumili ng planetang sisimulan.\nMaaari itong ilipat anumang oras.
+campaign.erekir = Mas bago, mas pinakintab na content. Kadalasan ay linear na pag-unlad ng kampanya.\n\nMas mataas na kalidad at pangkalahatang karanasan.
+campaign.serpulo = Mas lumang nilalaman; ang klasikong karanasan. Mas open-ended.\n\nPotensyal na hindi balanseng mga mapa at mechanics ng campaign. Hindi gaanong pulido.
campaign.difficulty = Difficulty
-completed = [accent]Completed
+completed = [accent]Nakumpleto
+
techtree = Tech Tree
-techtree.select = Tech Tree Selection
+techtree.select = Pagpili ng Tech Tree
techtree.serpulo = Serpulo
techtree.erekir = Erekir
research.load = Load
research.discard = Discard
-research.list = [lightgray]Research:
-research = Research
-researched = [lightgray]{0} researched.
-research.progress = {0}% complete
-players = {0} player
-players.single = {0} player
+research.list = [lightgray]Pananaliksik:
+research = Pananaliksik
+researched = [lightgray]{0} nagsaliksik.
+research.progress = {0}% kumpleto
+players = {0} manlalaro
+players.single = {0} manlalaro
+
players.search = mag-search
players.notfound = [gray]walang nahanap na players
server.closing = [accent]Sinasarado ang server...
@@ -212,8 +226,8 @@ server.kicked.kick = Sinipa ka mula sa server!
server.kicked.whitelist = Hindi ka naka whitelist.
server.kicked.serverClose = Ang server ay isinarado.
server.kicked.vote = Na-vote-kick ka na. Paalam.
-server.kicked.clientOutdated = Outdated client! I-Update yung laro mo!
-server.kicked.serverOutdated = Outdated server! Hilingin sa host na mag-update!
+server.kicked.clientOutdated = Outdated na kliyente! I-Update yung laro mo!
+server.kicked.serverOutdated = Lumang server! Hilingin sa host na mag-update!
server.kicked.banned = Ikaw ay pinagbawalan sa server na ito.
server.kicked.typeMismatch = Ang server na ito ay hindi tugma sa iyong uri ng build.
server.kicked.playerLimit = Puno na ang server na ito. maghintay ng libreng slot.
@@ -222,25 +236,25 @@ server.kicked.nameInUse = May ganyang pangalan\nsa server na ito.
server.kicked.nameEmpty = Invalid ang pangalan mo.
server.kicked.idInUse = Nandito kana sa server, bawal mag-join gamit nang dalawan accounts.
server.kicked.customClient = Hindi sinusuportahan ng server na ito ang mga custom na build. Mag-download ng opisyal na bersyon.
-server.kicked.gameover = Game over!
+server.kicked.gameover = Tapos na ang laro!
server.kicked.serverRestarting = Nag rerestart ang server.
-server.versions = Your version:[accent] {0}[]\nServer version:[accent] {1}[]
-host.info = The [accent]host[] button hosts a server on port [scarlet]6567[]. \nAnybody on the same [lightgray]wifi or local network[] should be able to see your server in their server list.\n\nIf you want people to be able to connect from anywhere by IP, [accent]port forwarding[] is required.\n\n[lightgray]Note: If someone is experiencing trouble connecting to your LAN game, make sure you have allowed Mindustry access to your local network in your firewall settings. Note that public networks sometimes do not allow server discovery.
-join.info = Dito, maaari mong ipasok ang isang [accent]server IP[] para ikonekta, o pag diskubre ng [accent]local network[] or [accent]global[] servers pwedeng konektahin.\nBoth LAN and WAN multiplayer is supported.\n\n[lightgray]If you want to connect to someone by IP, you would need to ask the host for their IP, which can be found by googling "my ip" from their device.
-hostserver = Host Multiplayer Game
+server.versions = Iyong bersyon:[accent] {0}[]\nBersyon ng server:[accent] {1}[]
+host.info = Ang [accent]host[] button ay nagho-host ng server sa port [scarlet]6567[]. \nAng sinuman sa parehong [lightgray]wifi o lokal na network[] ay dapat na makita ang iyong server sa kanilang listahan ng server.\n\nKung gusto mong makakonekta ang mga tao mula sa kahit saan sa pamamagitan ng IP, [accent]port forwarding[] ay kinakailangan.\n\n[lightgray]Tandaan: Kung may nakakaranas ng problema sa pagkonekta sa iyong LAN game, tiyaking pinayagan mo ang Mindustry na ma-access ang iyong lokal na network sa iyong mga setting ng firewall. Tandaan na minsan ay hindi pinapayagan ng mga pampublikong network ang pagtuklas ng server.
+join.info = Dito, maaari mong ipasok ang isang [accent]server IP[] para ikonekta, o pag diskubre ng [accent]local network[] or [accent]global[] servers pwedeng konektahin.\nBoth LAN and WAN multiplayer is supported.\n\n[lightgray]Kung gusto mong kumonekta sa isang tao sa pamamagitan ng IP, kakailanganin mong hilingin sa host ang kanilang IP, na makikita sa pamamagitan ng pag-googling sa "aking ip" mula sa kanilang device.
+hostserver = Mag-host ng Multiplayer Game
invitefriends = Mag-imbita ng mga kaibigan
hostserver.mobile = Host\nGame
host = Host
hosting = [accent]Opening server...
-hosts.refresh = Refresh
-hosts.discovering = Discovering LAN games
-hosts.discovering.any = Discovering games
-server.refreshing = Refreshing server
-hosts.none = [lightgray]walang nahanap na local games!
+hosts.refresh = I-refresh
+hosts.discovering = Pagtuklas ng mga LAN games...
+hosts.discovering.any = Pagtuklas ng mga laro...
+server.refreshing = Nagre-refresh ng server
+hosts.none = [lightgray]Walang nahanap na local games!
host.invalid = [scarlet]Hindi makakonekta sa Host.
servers.local = Local Servers
-servers.local.steam = Open Games & Local Servers
+servers.local.steam = Buksan ang Mga Laro at Lokal na Server
servers.remote = Remote Servers
servers.global = Community Servers
servers.disclaimer = Ang mga server ng komunidad ay [accent]hindi pagmamay-ari o kinokontrol[] ng developer.\n\nServers may contain user-generated content that is not appropriate for all ages.
@@ -291,6 +305,7 @@ disconnect.error = Connection error.
disconnect.closed = Connection closed.
disconnect.timeout = Na-time out.
disconnect.data = Pumalya ang pag-load ng world data!
+disconnect.snapshottimeout = Timed out while receiving UDP snapshots.\nThis may be caused by an unstable network or connection.
cantconnect = Hindi kayant sumali sa larong ([accent]{0}[]).
connecting = [accent]Connecting...
reconnecting = [accent]Reconnecting...
@@ -337,36 +352,37 @@ workshop.listing = I-edit ang Listahan sa Workshop
ok = OK
open = Open
customize = I-customize ang Mga Panuntunan
-cancel = Cancel
+cancel = I-kansel
command = Command
command.queue = [lightgray][Queuing]
-command.mine = Mine
-command.repair = Repair
-command.rebuild = Rebuild
-command.assist = Assist Player
-command.move = Move
-command.boost = Boost
-command.enterPayload = Enter Payload Block
+
+command.mine = Mina
+command.repair = Ipagawa
+command.rebuild = Itayo
+command.assist = Asistahan ang maglalaro
+command.move = Galaw
+command.boost = Magpabilis
+command.enterPayload = Pumasok sa payload na tipak
command.loadUnits = Load Units
command.loadBlocks = Load Blocks
command.unloadPayload = Unload Payload
command.loopPayload = Loop Unit Transfer
-stance.stop = Cancel Orders
-stance.shoot = Stance: Shoot
-stance.holdfire = Stance: Hold Fire
-stance.pursuetarget = Stance: Pursue Target
-stance.patrol = Stance: Patrol Path
-stance.ram = Stance: Ram\n[lightgray]Straight line movement, no pathfinding
-openlink = Open Link
-copylink = Copy Link
-back = Back
-max = Max
+stance.stop = Tigilan ang mga sunurin
+stance.shoot = Paninindigan: Barilan
+stance.holdfire = Paninindigan: Huwag Bumaril
+stance.pursuetarget = Paninindigan: Habulin ang Target
+stance.patrol = Paninindigan: Patrolyang Lakarin
+stance.ram = Paninindigan: Daan\n[lightgray]Tuwid na linyang paggalaw, walang paghanag ng path
+openlink = Buksan Link
+copylink = Koypa Link
+back = Balik
+max = Pinakarami
objective = Objective sa Map
crash.export = I-Export Crash Logs
crash.none = Walang nahanap na crash logs.
crash.exported = Na-export ang mga crash log.
-data.export = Export Data
-data.import = Import Data
+data.export = Export ang Data
+data.import = Import ang Data
data.openfolder = Buksan ang Data Folder
data.exported = Na-i-export ang data.
data.invalid = Hindi ito wastong data.
@@ -396,8 +412,8 @@ wave.enemycore = [accent]{0}[lightgray] Enemy Core
wave.enemy = [lightgray]{0} Natitirang Kaaway
wave.guardianwarn = Ang Guardian ay papalapit na ng mga [accent]{0}[] wave.
wave.guardianwarn.one = Ang Guardian ay papalapit na ng [accent]{0}[] wave.
-loadimage = I-Load Image
-saveimage = I-Save Image
+loadimage = I-Load ng Imahe
+saveimage = I-Save ng Imahe
unknown = Unknown
custom = Custom
builtin = Built-In
@@ -433,10 +449,10 @@ editor.mapinfo = Map Info
editor.author = Author:
editor.description = Description:
editor.nodescription = Dapat meron paglalarawan ng hindi bababa sa 4 na character bago i-publish.
-editor.waves = Waves:
-editor.rules = Rules:
+editor.waves = Mga Waves:
+editor.rules = Mga Rules:
editor.generation = Generation:
-editor.objectives = Objectives
+editor.objectives = Mga Objectives
editor.locales = Locale Bundles
editor.worldprocessors = World Processors
editor.worldprocessors.editname = Edit Name
@@ -459,6 +475,7 @@ editor.shiftx = Shift X
editor.shifty = Shift Y
workshop = Workshop
waves.title = Waves
+waves.team = Team
waves.remove = Remove
waves.every = every
waves.waves = wave(s)
@@ -493,7 +510,7 @@ waves.units.show = Ipakita lahat
wavemode.counts = counts
wavemode.totals = totals
wavemode.health = health
-all = All
+all = Lahat
editor.default = [lightgray]
details = Details...
@@ -522,38 +539,38 @@ editor.apply = Apply
editor.generate = Generate
editor.sectorgenerate = Sector Generate
editor.resize = Resize
-editor.loadmap = Load Map
-editor.savemap = Save Map
+editor.loadmap = I-load ang Mapa
+editor.savemap = I-save ang Mapa
editor.savechanges = [scarlet]You have unsaved changes!\n\n[]Do you want to save them?
editor.saved = Saved!
editor.save.noname = Walang pangalan ang iyong mapa! Itakda ang isa sa menu na 'impormasyon ng mapa'.
editor.save.overwrite = Ino-overwrite ng iyong mapa ang isang built-in na mapa! Pumili ng ibang pangalan sa menu na 'impormasyon ng mapa'.
editor.import.exists = [scarlet]Hindi kayang ma-import:[] mayroon nang built-in na mapa na '{0}'!
editor.import = Import...
-editor.importmap = Import Map
+editor.importmap = Import ang Mapa
editor.importmap.description = Mag-import ng umiiral nang mapa
-editor.importfile = Import File
+editor.importfile = Import ang File
editor.importfile.description = Mag-import ng panlabas na file ng mapa
editor.importimage = Mag-import ng File ng Larawan
editor.importimage.description = Mag-import ng panlabas na file ng imahe ng mapa
editor.export = Export...
-editor.exportfile = Export File
+editor.exportfile = I-export ang File
editor.exportfile.description = Mag-Export nang map file
-editor.exportimage = Export Terrain Image
+editor.exportimage = I-export ang Terrain Image
editor.exportimage.description = Mag-export ng image file na naglalaman lamang ng basic terrain
-editor.loadimage = Import Terrain
-editor.saveimage = Export Terrain
+editor.loadimage = Import ang Terrain
+editor.saveimage = I-export ang Terrain
editor.unsaved = [scarlet]Mayroon kang mga hindi na-adyang mga pagbabago![]\nSigurado ka bang gusto mong mag-exit?
editor.resizemap = Resize Map
-editor.mapname = Map Name:
+editor.mapname = Pangalan ng Mapa:
editor.overwrite = [accent]Warning!\nIno-overwrite nito ang isang existing na mapa.
editor.overwrite.confirm = [scarlet]Warning![] Umiiral na ang isang mapa na may ganitong pangalan. Sigurado ka bang gusto mong i-overwrite ito?\n"[accent]{0}[]"
editor.exists = Umiiral na ang isang mapa na may ganitong pangalan.
editor.selectmap = Pumili ng mapa na ilo-load:
-toolmode.replace = Replace
+toolmode.replace = Palitan
toolmode.replace.description = Gumuhit lamang sa mga solidong blocks.
-toolmode.replaceall = Replace All
+toolmode.replaceall = Palitan Lahat
toolmode.replaceall.description = Palitan ang lahat ng mga blocks sa mapa.
toolmode.orthogonal = Orthogonal
toolmode.orthogonal.description = Gumuhit lamang ng mga orthogonal na linya.
@@ -706,19 +723,23 @@ loadout = Loadout
resources = Resources
resources.max = Max
bannedblocks = Mga Pinagbabawalan na Blocks
+unbannedblocks = Unbanned Blocks
objectives = Objectives
bannedunits = Mga Pinagbabawalan na Units
+unbannedunits = Unbanned Units
bannedunits.whitelist = Banned Units As Whitelist
bannedblocks.whitelist = Banned Blocks As Whitelist
addall = Add All
launch.from = Launching From: [accent]{0}
launch.capacity = Launching Item Capacity: [accent]{0}
launch.destination = Destination: {0}
+landing.sources = Source Sectors: [accent]{0}[]
+landing.import = Max Total Import: {0}[accent]{1}[lightgray]/min
configure.invalid = Ang halaga ay dapat na isang numero sa pagitan ng 0 at {0}.
-add = Add...
+add = I-Add...
guardian = Guardian
-connectfail = [scarlet]Connection error:\n\n[accent]{0}
+connectfail = [scarlet]Error sa Koneksyon:\n\n[accent]{0}
error.unreachable = Hindi maabot ang server.\nTama ba ang spelling ng address?
error.invalidaddress = Invalid address.
error.timedout = Timed out!\nTiyaking may naka-set up na port forwarding ang host, at tama ang address!
@@ -730,36 +751,39 @@ error.any = Unknown network error.
error.bloom = Nabigong simulan ang bloom.\nMaaaring hindi ito sinusuportahan ng iyong device.
error.moddex = Mindustry is unable to load this mod.\nYour device is blocking import of Java mods due to recent changes in Android.\nThere is no known workaround to this issue.
-weather.rain.name = Rain
-weather.snowing.name = Snow
+weather.rain.name = Ulan
+weather.snowing.name = Niyebe
weather.sandstorm.name = Sandstorm
weather.sporestorm.name = Sporestorm
weather.fog.name = Fog
campaign.playtime = \uf129 [lightgray]Sector Playtime: {0}
campaign.complete = [accent]Congratulations.\n\nThe enemy on {0} has been defeated.\n[lightgray]The final sector has been conquered.
-sectorlist = Sectors
+sectorlist = Mga Sector
sectorlist.attacked = {0} ay inaatake
sectors.unexplored = [lightgray]Unexplored
sectors.resources = Resources:
-sectors.production = Production:
+sectors.production = Produksyon:
sectors.export = Export:
sectors.import = Import:
-sectors.time = Time:
+sectors.time = Oras:
sectors.threat = Threat:
-sectors.wave = Wave:
+sectors.wave = Mga Waves:
sectors.stored = Stored:
sectors.resume = Resume
-sectors.launch = Launch
-sectors.select = Select
+sectors.launch = I-Launch
+sectors.select = I-Select
+sectors.launchselect = Select Launch Destination
sectors.nonelaunch = [lightgray]none (sun)
-sectors.rename = Rename Sector
+sectors.redirect = Redirect Launch Pads
+sectors.rename = Palitan ang pangalan ng Sector
+
sectors.enemybase = [scarlet]Enemy Base
sectors.vulnerable = [scarlet]Vulnerable
sectors.underattack = [scarlet]Under attack! [accent]{0}% damaged
sectors.underattack.nodamage = [scarlet]Uncaptured
sectors.survives = [accent]Survives {0} waves
-sectors.go = Go
+sectors.go = Punta
sector.abandon = Abandonahin
sector.abandon.confirm = Ang core (o mga core) sa sector ay mag se-self-destruct.\nSigurado ka?
sector.curcapture = Nai-capture ang sector
@@ -769,10 +793,10 @@ sector.attacked = Ang sector [accent]{0}[white] ay inaatake!
sector.lost = Ang sector [accent]{0}[white] ay nawala!
sector.capture = Sector [accent]{0}[white]Captured!
sector.capture.current = Sector Captured!
-sector.changeicon = Change Icon
-sector.noswitch.title = Unable to Switch Sectors
-sector.noswitch = You may not switch sectors while an existing sector is under attack.\n\nSector: [accent]{0}[] on [accent]{1}[]
-sector.view = View Sector
+sector.changeicon = I-Change ang Icon
+sector.noswitch.title = Hindi ka mapalit sa ibang Sectors
+sector.noswitch = Hindi ka pwede magpalit ng sectors habang ina-atake ang isang sector mo.\n\nSector: [accent]{0}[] on [accent]{1}[]
+sector.view = Tingnan ang Sector
threat.low = Mababa
threat.medium = Medium
threat.high = Mataas
@@ -783,6 +807,10 @@ difficulty.easy = Easy
difficulty.normal = Normal
difficulty.hard = Hard
difficulty.eradication = Eradication
+difficulty.enemyHealthMultiplier = Enemy Health: {0}
+difficulty.enemySpawnMultiplier = Enemy Amount: {0}
+difficulty.waveTimeMultiplier = Wave Timer: {0}
+difficulty.nomodifiers = [lightgray](No modifiers)
planets = Mga planeta
planet.serpulo.name = Serpulo
@@ -791,25 +819,25 @@ planet.sun.name = Araw
sector.impact0078.name = Impact 0078
sector.groundZero.name = Ground Zero
-sector.craters.name = The Craters
-sector.frozenForest.name = Frozen Forest
+sector.craters.name = Mga Bunganga
+sector.frozenForest.name = Kagubatang Nagyelo
sector.ruinousShores.name = Ruinous Shores
sector.stainedMountains.name = Stained Mountains
sector.desolateRift.name = Desolate Rift
-sector.nuclearComplex.name = Nuclear Production Complex
-sector.overgrowth.name = Overgrowth
+sector.nuclearComplex.name = Complex para sa Nuklear na Produksyon
+sector.overgrowth.name = Labis ng paglalaki
sector.tarFields.name = Tar Fields
sector.saltFlats.name = Salt Flats
sector.fungalPass.name = Fungal Pass
sector.biomassFacility.name = Biomass Synthesis Facility
sector.windsweptIslands.name = Windswept Islands
sector.extractionOutpost.name = Extraction Outpost
-sector.facility32m.name = Facility 32 M
+sector.facility32m.name = Pasilidad 32 M
sector.taintedWoods.name = Tainted Woods
sector.infestedCanyons.name = Infested Canyons
sector.planetaryTerminal.name = Planetary Launch Terminal
sector.coastline.name = Coastline
-sector.navalFortress.name = Naval Fortress
+sector.navalFortress.name = Kutang Pantubig
sector.polarAerodrome.name = Polar Aerodrome
sector.atolls.name = Atolls
sector.testingGrounds.name = Testing Grounds
@@ -850,21 +878,21 @@ sector.weatheredChannels.description = WIP, map submission by Skeledragon
sector.mycelialBastion.description = WIP, map submission by Skeledragon
sector.onset.name = The Onset
sector.aegis.name = Aegis
-sector.lake.name = Lake
+sector.lake.name = Lawa
sector.intersect.name = Intersect
sector.atlas.name = Atlas
-sector.split.name = Split
+sector.split.name = Hati
sector.basin.name = Basin
sector.marsh.name = Marsh
-sector.peaks.name = Peaks
+sector.peaks.name = Itaas
sector.ravine.name = Ravine
sector.caldera-erekir.name = Caldera
sector.stronghold.name = Stronghold
sector.crevice.name = Crevice
sector.siege.name = Siege
-sector.crossroads.name = Crossroads
+sector.crossroads.name = Sangang Daanan
sector.karst.name = Karst
-sector.origin.name = Origin
+sector.origin.name = Pinaggalingan
sector.onset.description = Ang tutorial sector. Ang objective ay hindi pa nagawa. Maghintay para sa kinabukasang impormasyon.
sector.aegis.description = This sector contains deposits of tungsten.\nResearch the [accent]Impact Drill[] to mine this resource, and destroy the enemy base in the area.
sector.lake.description = This sector's slag lake greatly limits viable units. A hover unit is the only option.\nResearch the [accent]ship fabricator[] and produce an [accent]elude[] unit as soon as possible.
@@ -882,28 +910,28 @@ sector.siege.description = This sector features two parallel canyons that will f
sector.crossroads.description = The enemy bases in this sector have been established in varying terrain. Research different units to adapt.\nAdditionally, some bases are protected by shields. Figure out how they are powered.
sector.karst.description = This sector is rich in resources, but will be attacked by the enemy once a new core lands.\nTake advantage of the resources and research [accent]phase fabric[].
sector.origin.description = The final sector with a significant enemy presence.\nNo probable research opportunities remain - focus solely on destroying all enemy cores.
-status.burning.name = Burning
-status.freezing.name = Freezing
-status.wet.name = Wet
-status.muddy.name = Muddy
-status.melting.name = Melting
-status.sapped.name = Sapped
-status.electrified.name = Electrified
-status.spore-slowed.name = Spore Slowed
+status.burning.name = Nasusunog
+status.freezing.name = Nayeyelo
+status.wet.name = Basa
+status.muddy.name = Naputikan
+status.melting.name = Natutunaw
+status.sapped.name = Napahina
+status.electrified.name = Napakuryente
+status.spore-slowed.name = Binagalan ng Spore
status.tarred.name = Tarred
status.overdrive.name = Overdrive
status.overclock.name = Overclock
status.shocked.name = Shocked
status.blasted.name = Blasted
-status.unmoving.name = Unmoving
-status.boss.name = Guardian
+status.unmoving.name = Di-magalaw
+status.boss.name = Namumuno
-settings.language = Language
+settings.language = Wika
settings.data = Game Data
-settings.reset = Reset to Defaults
-settings.rebind = Rebind
-settings.resetKey = Reset
-settings.controls = Controls
+settings.reset = I-Reset sa mga Default
+settings.rebind = I-Rebind
+settings.resetKey = I-Reset
+settings.controls = Mga Controls
settings.game = Game
settings.sound = Sound
settings.graphics = Graphics
@@ -911,8 +939,8 @@ settings.cleardata = I-Clear ang Game Data...
settings.clear.confirm = Sigurado ka bang gusto mong i-clear ang data na ito?\nHindi na mababawi ang nagawa!
settings.clearall.confirm = [scarlet]WARNING![]\nIki-clear nito ang lahat ng data, kabilang ang mga pag-save, mapa, pag-unlock at keybinds.\nKapag pinindot mo ang 'ok', ibubura ng laro ang lahat ng data at awtomatikong lalabas.
settings.clearsaves.confirm = Sigurado ka bang gusto mong i-clear ang lahat ng iyong saves?
-settings.clearsaves = Clear Saves
-settings.clearresearch = Clear Research
+settings.clearsaves = I-Clear Saves
+settings.clearresearch = I-Clear Research
settings.clearresearch.confirm = Sigurado ka bang gusto mong i-clear ang lahat ng iyong campaign research?
settings.clearcampaignsaves = Tanggalin ang mga Campaign Save
settings.clearcampaignsaves.confirm = Sigurado ka bang gusto mong i-clear ang lahat ng iyong mga campaign save?
@@ -930,87 +958,88 @@ lastaccessed = [lightgray]Last Accessed: {0}
lastcommanded = [lightgray]Last Commanded: {0}
block.unknown = [lightgray]???
stat.showinmap =
-stat.description = Purpose
+stat.description = Layunin
stat.input = Input
stat.output = Output
-stat.maxefficiency = Max Efficiency
-stat.booster = Booster
-stat.tiles = Required Tiles
-stat.affinities = Affinities
-stat.opposites = Opposites
-stat.powercapacity = Power Capacity
-stat.powershot = Power/Shot
-stat.damage = Damage
-stat.targetsair = Targets Air
-stat.targetsground = Targets Ground
-stat.itemsmoved = Move Speed
-stat.launchtime = Time Between Launches
-stat.shootrange = Range
-stat.size = Size
-stat.displaysize = Display Size
+stat.maxefficiency = Max ng Kahusayan
+stat.booster = Pampalakas
+stat.tiles = Kinakailangan mga Tiles
+stat.affinities = Pagkakaugnay
+stat.opposites = Kabaligtaran
+stat.powercapacity = Kapasidad ng Kuryente
+stat.powershot = Kuryente/Putok
+stat.damage = Pinsala
+stat.targetsair = Tinatarget ng mga Air
+stat.targetsground = Tinatarget ng mga Ground
+stat.itemsmoved = Bilis ng Pag-galaw
+stat.launchtime = Oras sa pagitan ng mga launches
+stat.shootrange = Saklaw
+stat.size = Laki
+stat.displaysize = Laki ng Display
stat.liquidcapacity = Liquid Capacity
-stat.powerrange = Power Range
-stat.linkrange = Link Range
-stat.instructions = Instructions
-stat.powerconnections = Max Connections
-stat.poweruse = Power Use
-stat.powerdamage = Power/Damage
-stat.itemcapacity = Item Capacity
-stat.memorycapacity = Memory Capacity
-stat.basepowergeneration = Base Power Generation
-stat.productiontime = Production Time
+stat.powerrange = Saklaw ng Kuryente
+stat.linkrange = Saklaw ng Link
+stat.instructions = Tagubilin
+stat.powerconnections = Max na Koneksyon
+stat.poweruse = Ginagamit ng Kuryente
+stat.powerdamage = Kuryente/Pinsala
+stat.itemcapacity = Kapasidad ng mga Aytem
+stat.memorycapacity = Kapasidad ng Memorya
+stat.basepowergeneration = Pagbuo ng Kuryente
+stat.productiontime = Oras ng Produksyon
stat.repairtime = Block Full Repair Time
-stat.repairspeed = Repair Speed
-stat.weapons = Weapons
-stat.bullet = Bullet
+stat.repairspeed = Bilis ng pagkumpuni
+stat.weapons = Armas
+stat.bullet = Bala
stat.moduletier = Module Tier
-stat.unittype = Unit Type
-stat.speedincrease = Speed Increase
-stat.range = Range
-stat.drilltier = Drillables
-stat.drillspeed = Base Drill Speed
-stat.boosteffect = Boost Effect
+stat.unittype = Uri ng mga Unit
+stat.speedincrease = Pag-taas ng bilis
+stat.range = Saklaw
+stat.drilltier = Mga Drillable
+stat.drillspeed = Base na Bilis ng Drill
+stat.boosteffect = Epekto ng Lakas
stat.maxunits = Max Active Units
stat.health = Health
-stat.armor = Armor
-stat.buildtime = Build Time
+stat.armor = Baluti
+stat.buildtime = Oras ng pagbuo
stat.maxconsecutive = Max Consecutive
-stat.buildcost = Build Cost
-stat.inaccuracy = Inaccuracy
-stat.shots = Shots
-stat.reload = Shots/Second
-stat.ammo = Ammo
-stat.shieldhealth = Shield Health
-stat.cooldowntime = Cooldown Time
-stat.explosiveness = Explosiveness
+stat.buildcost = Gastos ng pagbuo
+stat.inaccuracy = Ang Inaccuracy
+stat.shots = Mga Putok
+stat.reload = Putok/Segundo
+stat.ammo = Mga Bala
+stat.shieldhealth = Health ng Kalasag
+stat.cooldowntime = Oras ng Cooldown
+stat.explosiveness = Pagkasabog
stat.basedeflectchance = Base Deflect Chance
-stat.lightningchance = Lightning Chance
-stat.lightningdamage = Lightning Damage
-stat.flammability = Flammability
-stat.radioactivity = Radioactivity
+stat.lightningchance = Pagkakataon ng Lightning
+stat.lightningdamage = Pinsala ng Lightning
+stat.flammability = Pagkasunog
+stat.radioactivity = Radyaktibidad
stat.charge = Charge
-stat.heatcapacity = HeatCapacity
-stat.viscosity = Viscosity
-stat.temperature = Temperature
-stat.speed = Speed
-stat.buildspeed = Build Speed
-stat.minespeed = Mine Speed
+stat.heatcapacity = Kapasidad ng Init
+stat.viscosity = Lagkit
+stat.temperature = Temperatura
+stat.speed = Bilis
+stat.buildspeed = Bilis ng Pag-buo
+stat.minespeed = Bilis ng Pagmimina
stat.minetier = Mine Tier
-stat.payloadcapacity = Payload Capacity
-stat.abilities = Abilities
-stat.canboost = Can Boost
-stat.flying = Flying
-stat.ammouse = Ammo Use
-stat.ammocapacity = Ammo Capacity
-stat.damagemultiplier = Damage Multiplier
-stat.healthmultiplier = Health Multiplier
-stat.speedmultiplier = Speed Multiplier
-stat.reloadmultiplier = Reload Multiplier
-stat.buildspeedmultiplier = Build Speed Multiplier
+stat.payloadcapacity = Kapasidad ng Payload
+stat.abilities = Mga Abilidad
+stat.canboost = Maaaring Magpalakas
+stat.flying = Maaring Maglipad
+stat.ammouse = Paggamit ng Bala
+stat.ammocapacity = Kapasidad ng Bala
+stat.damagemultiplier = Multiplier ng Pinsala
+stat.healthmultiplier = Multiplier ng Health
+stat.speedmultiplier = Multiplier ng Bilis
+stat.reloadmultiplier = Multiplier ng BReload
+stat.buildspeedmultiplier = Multiplier ng Bilis ng Pag-buo
stat.reactive = Reacts
stat.immunities = Immunities
stat.healing = Healing
+stat.efficiency = [stat]{0}% Efficiency
ability.forcefield = Force Field
ability.forcefield.description = Projects a force shield that absorbs bullets
@@ -1048,39 +1077,43 @@ ability.stat.shield = [stat]{0}[lightgray] shield
ability.stat.repairspeed = [stat]{0}/sec[lightgray] repair speed
ability.stat.slurpheal = [stat]{0}[lightgray] health/liquid unit
ability.stat.cooldown = [stat]{0} sec[lightgray] cooldown
-ability.stat.maxtargets = [stat]{0}[lightgray] max targets
+ability.stat.maxtargets = [stat]{0}[lightgray] max ng mga target
ability.stat.sametypehealmultiplier = [stat]{0}%[lightgray] same type repair amount
-ability.stat.damagereduction = [stat]{0}%[lightgray] damage reduction
-ability.stat.minspeed = [stat]{0} tiles/sec[lightgray] min speed
-ability.stat.duration = [stat]{0} sec[lightgray] duration
-ability.stat.buildtime = [stat]{0} sec[lightgray] build time
+ability.stat.damagereduction = [stat]{0}%[lightgray] pagbabawas ng pinsala
+ability.stat.minspeed = [stat]{0} tiles/sec[lightgray] min ng bilis
+ability.stat.duration = [stat]{0} sec[lightgray] na tagal
+ability.stat.buildtime = [stat]{0} sec[lightgray] oras na pagbuo
-bar.onlycoredeposit = Only Core Depositing Allowed
+bar.onlycoredeposit = Pinapayag lang ang Cire Depositing
-bar.drilltierreq = Better Drill Required
-bar.noresources = Missing Resources
-bar.corereq = Core Base Required
-bar.corefloor = Core Zone Tile Required
-bar.cargounitcap = Cargo Unit Cap Reached
-bar.drillspeed = Drill Speed: {0}/s
-bar.pumpspeed = Pump Speed: {0}/s
-bar.efficiency = Efficiency: {0}%
-bar.boost = Boost: +{0}%
-bar.powerbalance = Power: {0}/s
-bar.powerstored = Stored: {0}/{1}
-bar.poweramount = Power: {0}
-bar.poweroutput = Power Output: {0}
-bar.powerlines = Connections: {0}/{1}
-bar.items = Items: {0}
-bar.capacity = Capacity: {0}
+bar.drilltierreq = Kinakailangan ang Mas mahusay na Drill
+bar.nobatterypower = Insufficient Battery Power
+bar.noresources = Walang mga Kinakailangang Resources
+bar.corereq = Kinakailangang Core Base
+bar.corefloor = Kinakailangang Tile ng Core Zone
+bar.cargounitcap = Naabot ng Limit ng Cargo Unit
+bar.drillspeed = Bilis ng Drill: {0}/s
+bar.pumpspeed = Bilis ng Pump: {0}/s
+bar.efficiency = Kahusayan: {0}%
+bar.boost = Palakas: +{0}%
+bar.powerbuffer = Batteries: {0}/{1}
+bar.powerbalance = Kuryente: {0}/s
+bar.powerstored = Nakaimbak: {0}/{1}
+bar.poweramount = Kuryente: {0}
+bar.poweroutput = Output ng Kuryente: {0}
+bar.powerlines = Mga Connection: {0}/{1}
+bar.items = Aytems: {0}
+bar.capacity = Kapasidad: {0}
bar.unitcap = {0} {1}/{2}
-bar.liquid = Liquid
-bar.heat = Heat
+bar.liquid = Likido
+bar.heat = Init
+bar.cooldown = Cooldown
+
bar.instability = Instability
-bar.heatamount = Heat: {0}
-bar.heatpercent = Heat: {0} ({1}%)
-bar.power = Power
-bar.progress = Build Progress
+bar.heatamount = Init: {0}
+bar.heatpercent = Init: {0} ({1}%)
+bar.power = Kuryente
+bar.progress = Progress ng Bumuo
bar.loadprogress = Progress
bar.launchcooldown = Launch Cooldown
bar.input = Input
@@ -1100,6 +1133,7 @@ bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
bullet.frags = [stat]{0}[lightgray]x frag bullets:
bullet.lightning = [stat]{0}[lightgray]x lightning ~ [stat]{1}[lightgray] damage
bullet.buildingdamage = [stat]{0}%[lightgray] building damage
+bullet.shielddamage = [stat]{0}%[lightgray] shield damage
bullet.knockback = [stat]{0}[lightgray] knockback
bullet.pierce = [stat]{0}[lightgray]x pierce
bullet.infinitepierce = [stat]pierce
@@ -1117,31 +1151,32 @@ unit.powersecond = mga yunit ng kuryente/segundo
unit.tilessecond = tile/segundo
unit.liquidsecond = mga yunit ng likido/segundo
unit.itemssecond = aytem/segundo
-unit.liquidunits = liquid units
-unit.powerunits = power units
-unit.heatunits = heat units
-unit.degrees = degrees
-unit.seconds = seconds
+unit.liquidunits = mga yunit ng likido
+unit.powerunits = mga yunit ng kuryente
+unit.heatunits = mga yunit ng init
+unit.degrees = digri
+unit.seconds = segundo
unit.minutes = mins
-unit.persecond = /sec
+unit.persecond = /seg
unit.perminute = /min
-unit.timesspeed = x speed
+unit.timesspeed = x bilis
+unit.multiplier = x
unit.percent = %
-unit.shieldhealth = shield health
-unit.items = items
+unit.shieldhealth = health ng kalasag
+unit.items = aytems
unit.thousands = k
unit.millions = mil
unit.billions = bil
unit.shots = shots
unit.pershot = /shot
-category.purpose = Purpose
-category.general = General
-category.power = Power
-category.liquids = Liquids
-category.items = Items
+category.purpose = Ang Purpose
+category.general = Pangkalahatan
+category.power = Kuryente
+category.liquids = Mga Likido
+category.items = Mga Aytem
category.crafting = Input/Output
category.function = Function
-category.optional = Optional Enhancements
+category.optional = Opsyonal na mga enchantment
setting.alwaysmusic.name = Always Play Music
setting.alwaysmusic.description = When enabled, music will always play on loop in-game.\nWhen disabled, it only plays at random intervals.
setting.skipcoreanimation.name = Laktawan ang Core Launch/Land Animation
@@ -1155,7 +1190,7 @@ setting.backgroundpause.name = Pause In Background
setting.buildautopause.name = Auto-Pause Building
setting.doubletapmine.name = Double-Tap to Mine
setting.commandmodehold.name = Hold For Command Mode
-setting.distinctcontrolgroups.name = Limit One Control Group Per Unit
+setting.distinctcontrolgroups.name = Limit One Control Group Per Unit
setting.modcrashdisable.name = Huwag paganahin ang Mods Sa Startup Crash
setting.animatedwater.name = Animated Fluids
setting.animatedshields.name = Animated Shields
@@ -1202,11 +1237,13 @@ setting.mutemusic.name = Mute Music
setting.sfxvol.name = SFX Volume
setting.mutesound.name = Mute Sound
setting.crashreport.name = Mag-send ng Anonymous Crash Reports
+setting.communityservers.name = Fetch Community Server List
setting.savecreate.name = Auto-Create Saves
setting.steampublichost.name = Public Game Visibility
setting.playerlimit.name = Player Limit
setting.chatopacity.name = Chat Opacity
setting.lasersopacity.name = Power Laser Opacity
+setting.unitlaseropacity.name = Unit Mining Beam Opacity
setting.bridgeopacity.name = Bridge Opacity
setting.playerchat.name = Ipakita Player Bubble Chat
setting.showweather.name = Show Weather Graphics
@@ -1215,6 +1252,9 @@ setting.macnotch.name = Iangkop ang interface upang ipakita ang bingaw
setting.macnotch.description = Kinakailangan ang pag-restart upang mailapat ang mga pagbabago
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.
public.beta = Tandaan na ang mga beta na bersyon ng laro ay hindi maaaring gumawa ng mga pampublikong lobby.
uiscale.reset = Nabago ang sukat ng UI.\nPindutin ang "OK" upang kumpirmahin ang sukat na ito.\n[scarlet]Binabalik at lalabas sa dating anyo ng[accent] {0}[] segundo...
uiscale.cancel = I-Cancel & Exit
@@ -1295,13 +1335,14 @@ keybind.shoot.name = Shoot
keybind.zoom.name = Zoom
keybind.menu.name = Menu
keybind.pause.name = Pause
+keybind.skip_wave.name = Skip Wave
keybind.pause_building.name = Pause/Resume Building
keybind.minimap.name = Minimap
-keybind.planet_map.name = Planet Map
-keybind.research.name = Research
-keybind.block_info.name = Block Info
+keybind.planet_map.name = Mapa ng Planeta
+keybind.research.name = Mga Research
+keybind.block_info.name = Info ng Block
keybind.chat.name = Chat
-keybind.player_list.name = Player List
+keybind.player_list.name = Lista ng mga Players
keybind.console.name = Console
keybind.rotate.name = Rotate
keybind.rotateplaced.name = Rotate Existing (Hold)
@@ -1362,12 +1403,14 @@ rules.unitcostmultiplier = Unit Cost Multiplier
rules.unithealthmultiplier = Unit Health Multiplier
rules.unitdamagemultiplier = Unit Damage Multiplier
rules.unitcrashdamagemultiplier = Unit Crash Damage Multiplier
+rules.unitminespeedmultiplier = Unit Mine Speed Multiplier
rules.solarmultiplier = Solar Power Multiplier
rules.unitcapvariable = Cores Contribute To Unit Cap
rules.unitpayloadsexplode = Carried Payloads Explode With The Unit
rules.unitcap = Base Unit Cap
rules.limitarea = Limit Map Area
rules.enemycorebuildradius = Enemy Core No-Build Radius:[lightgray] (tiles)
+rules.extracorebuildradius = Extra No-Build Radius:[lightgray] (tiles)
rules.wavespacing = Wave Spacing:[lightgray] (sec)
rules.initialwavespacing = Initial Wave Spacing:[lightgray] (sec)
rules.buildcostmultiplier = Build Cost Multiplier
@@ -1376,27 +1419,30 @@ rules.deconstructrefundmultiplier = Deconstruct Refund Multiplier
rules.waitForWaveToEnd = Waves Wait for Enemies
rules.wavelimit = Map Ends After Wave
rules.dropzoneradius = Drop Zone Radius:[lightgray] (tiles)
-rules.unitammo = Units Require Ammo
-rules.enemyteam = Enemy Team
-rules.playerteam = Player Team
+rules.unitammo = Mga yunit nangangailangan ng Munisyon
+rules.enemyteam = Pangkat ng mga Kaaway
+rules.playerteam = Pangkat ng Player
rules.title.waves = Waves
rules.title.resourcesbuilding = Resources & Building
-rules.title.enemy = Enemies
-rules.title.unit = Units
+rules.title.enemy = Mga Kaaway
+rules.title.unit = Mga Yunit
rules.title.experimental = Experimental
-rules.title.environment = Environment
-rules.title.teams = Teams
-rules.title.planet = Planet
+rules.title.environment = Kapaligiran
+rules.title.teams = Mga Team
+rules.title.planet = Planeta
rules.lighting = Lighting
rules.fog = Fog of War
rules.invasions = Enemy Sector Invasions
+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.fire = Fire
rules.anyenv =
rules.explosions = Block/Unit Explosion Damage
rules.ambientlight = Ambient Light
-rules.weather = Weather
+rules.weather = Panahon
rules.weather.frequency = Frequency:
rules.weather.always = Always
rules.weather.duration = Duration:
@@ -1404,41 +1450,43 @@ rules.randomwaveai.info = Makes units spawned in waves target random structures
rules.placerangecheck.info = Prevents players from placing anything near enemy buildings. When trying to place a turret, the range is increased, so the turret will not be able to reach the enemy.
rules.onlydepositcore.info = Prevents units from depositing items into any buildings except cores.
-content.item.name = Items
-content.liquid.name = Liquids
-content.unit.name = Units
-content.block.name = Blocks
-content.status.name = Status Effects
-content.sector.name = Sectors
-content.team.name = Factions
+content.item.name = Aytems
+content.liquid.name = Likido
+content.unit.name = Yunits
+content.block.name = Mga Block
+content.status.name = Status ng mga Epekto
+content.sector.name = Mga Sector
+content.team.name = Mga Faction
wallore = (Wall)
-item.copper.name = Copper
-item.lead.name = Lead
+item.copper.name = Tanso
+item.lead.name = Tingga
+
item.coal.name = Coal
-item.graphite.name = Graphite
-item.titanium.name = Titanium
+item.graphite.name = Grapayt
+item.titanium.name = Titanyo
item.thorium.name = Thorium
-item.silicon.name = Silicon
+item.silicon.name = Silikon
item.plastanium.name = Plastanium
-item.phase-fabric.name = Phase Fabric
+item.phase-fabric.name = Phase Pabriko
item.surge-alloy.name = Surge Alloy
item.spore-pod.name = Spore Pod
-item.sand.name = Sand
+item.sand.name = Buhangin
item.blast-compound.name = Blast Compound
item.pyratite.name = Pyratite
item.metaglass.name = Metaglass
-item.scrap.name = Scrap
+item.scrap.name = Piraso
item.fissile-matter.name = Fissile Matter
-item.beryllium.name = Beryllium
+item.beryllium.name = Berilyo
item.tungsten.name = Tungsten
item.oxide.name = Oxide
item.carbide.name = Carbide
item.dormant-cyst.name = Dormant Cyst
-liquid.water.name = Water
+liquid.water.name = Tubig
liquid.slag.name = Slag
-liquid.oil.name = Oil
-liquid.cryofluid.name = Cryofluid
+liquid.oil.name = Langis
+liquid.cryofluid.name = Lamigtubig
+
liquid.neoplasm.name = Neoplasm
liquid.arkycite.name = Arkycite
liquid.gallium.name = Gallium
@@ -1504,24 +1552,24 @@ unit.evoke.name = Evoke
unit.incite.name = Incite
unit.emanate.name = Emanate
unit.manifold.name = Manifold
-unit.assembly-drone.name = Assembly Drone
+unit.assembly-drone.name = Drone sa Paggagawa
unit.latum.name = Latum
unit.renale.name = Renale
block.parallax.name = Parallax
block.cliff.name = Cliff
-block.sand-boulder.name = Sand Boulder
-block.basalt-boulder.name = Basalt Boulder
-block.grass.name = Grass
+block.sand-boulder.name = Batong Buhangin
+block.basalt-boulder.name = Batong Basalt
+block.grass.name = Damo
block.molten-slag.name = Slag
block.pooled-cryofluid.name = Cryofluid
-block.space.name = Space
-block.salt.name = Salt
-block.salt-wall.name = Salt Wall
+block.space.name = Kalawakan
+block.salt.name = Asin
+block.salt-wall.name = Asin na Pader
block.pebbles.name = Pebbles
block.tendrils.name = Tendrils
-block.sand-wall.name = Sand Wall
+block.sand-wall.name = Buhangin na Pader
block.spore-pine.name = Spore Pine
-block.spore-wall.name = Spore Wall
+block.spore-wall.name = Spore na Pader
block.boulder.name = Boulder
block.snow-boulder.name = Snow Boulder
block.snow-pine.name = Snow Pine
@@ -1531,13 +1579,13 @@ block.moss.name = Moss
block.shrubs.name = Shrubs
block.spore-moss.name = Spore Moss
block.shale-wall.name = Shale Wall
-block.scrap-wall.name = Scrap Wall
-block.scrap-wall-large.name = Malaking Scrap Wall
-block.scrap-wall-huge.name = Masmalaking Scrap Wall
-block.scrap-wall-gigantic.name = Pinakamalaking Scrap Wall
+block.scrap-wall.name = Pirasong Pader
+block.scrap-wall-large.name = Malaking Pirasong Pader
+block.scrap-wall-huge.name = Masmalaking Pirasong Pader
+block.scrap-wall-gigantic.name = Pinakamalaking Pirasong Pader
block.thruster.name = Thruster
block.kiln.name = Kiln
-block.graphite-press.name = Graphite Press
+block.graphite-press.name = Grapayt Press
block.multi-press.name = Multi-Press
block.constructing = {0} [lightgray](Constructing)
block.spawn.name = Enemy Spawn
@@ -1546,19 +1594,20 @@ block.remove-ore.name = Remove Ore
block.core-shard.name = Core: Shard
block.core-foundation.name = Core: Foundation
block.core-nucleus.name = Core: Nucleus
-block.deep-water.name = Deep Water
-block.shallow-water.name = Water
-block.tainted-water.name = Tainted Water
-block.deep-tainted-water.name = Deep Tainted Water
-block.darksand-tainted-water.name = Dark Sand Tainted Water
+block.deep-water.name = Malalim ng Tubig
+block.shallow-water.name = Tubig
+block.tainted-water.name = Bahid ng Tubig
+block.deep-tainted-water.name = Malalim na bahid ng tubig
+block.darksand-tainted-water.name = Madilim na buhangin na may bahid ng tubig
block.tar.name = Tar
-block.stone.name = Stone
-block.sand-floor.name = Sand
-block.darksand.name = Dark Sand
-block.ice.name = Ice
+block.stone.name = Bato
+block.sand-floor.name = Buhangin
+block.darksand.name = Madilim na Buhangin
+
+block.ice.name = Yelo
block.snow.name = Snow
block.crater-stone.name = Craters
-block.sand-water.name = Sand water
+block.sand-water.name = Buhangin na Tubig
block.darksand-water.name = Dark Sand Water
block.char.name = Char
block.dacite.name = Dacite
@@ -1566,107 +1615,107 @@ block.rhyolite.name = Rhyolite
block.dacite-wall.name = Dacite Wall
block.dacite-boulder.name = Dacite Boulder
block.ice-snow.name = Ice Snow
-block.stone-wall.name = Stone Wall
-block.ice-wall.name = Ice Wall
-block.snow-wall.name = Snow Wall
-block.dune-wall.name = Dune Wall
+block.stone-wall.name = Pader na Bato
+block.ice-wall.name = Pader na Yelo
+block.snow-wall.name = Pader na Niyebe
+block.dune-wall.name = Pader ng Dune
block.pine.name = Pine
-block.dirt.name = Dirt
-block.dirt-wall.name = Dirt Wall
-block.mud.name = Mud
-block.white-tree-dead.name = White Tree Dead
-block.white-tree.name = White Tree
-block.spore-cluster.name = Spore Cluster
-block.metal-floor.name = Metal Floor 1
-block.metal-floor-2.name = Metal Floor 2
-block.metal-floor-3.name = Metal Floor 3
-block.metal-floor-4.name = Metal Floor 4
-block.metal-floor-5.name = Metal Floor 4
-block.metal-floor-damaged.name = Metal Floor Damaged
-block.dark-panel-1.name = Dark Panel 1
-block.dark-panel-2.name = Dark Panel 2
-block.dark-panel-3.name = Dark Panel 3
-block.dark-panel-4.name = Dark Panel 4
-block.dark-panel-5.name = Dark Panel 5
-block.dark-panel-6.name = Dark Panel 6
-block.dark-metal.name = Dark Metal
+block.dirt.name = Dumi
+block.dirt-wall.name = Pader ng Dumi
+block.mud.name = Putik
+block.white-tree-dead.name = Namatay na Puting Puno
+block.white-tree.name = Puting Puno
+block.spore-cluster.name = Kumpol ng Spore
+block.metal-floor.name = Bakal na Sahig 1
+block.metal-floor-2.name = Bakal na Sahig 2
+block.metal-floor-3.name = Bakal na Sahig 3
+block.metal-floor-4.name = Bakal na Sahig 4
+block.metal-floor-5.name = Bakal na Sahig 4
+block.metal-floor-damaged.name = Wasak na Bakal na Sahig
+block.dark-panel-1.name = Madilim na Panel 1
+block.dark-panel-2.name = Madilim na Panel 2
+block.dark-panel-3.name = Madilim na Panel 3
+block.dark-panel-4.name = Madilim na Panel 4
+block.dark-panel-5.name = Madilim na Panel 5
+block.dark-panel-6.name = Madilim na Panel
+block.dark-metal.name = Madilim na Bakal
block.basalt.name = Basalt
-block.hotrock.name = Hot Rock
-block.magmarock.name = Magma Rock
-block.copper-wall.name = Copper Wall
-block.copper-wall-large.name = Malaking Copper Wall
-block.titanium-wall.name = Titanium Wall
-block.titanium-wall-large.name = Malaking Titanium Wall
-block.plastanium-wall.name = Plastanium Wall
-block.plastanium-wall-large.name = Malaking Plastanium Wall
-block.phase-wall.name = Phase Wall
-block.phase-wall-large.name = Malaking Phase Wall
-block.thorium-wall.name = Thorium Wall
-block.thorium-wall-large.name = Malaking Thorium Wall
-block.door.name = Door
-block.door-large.name = Malaking Door
+block.hotrock.name = Mainit na Bato
+block.magmarock.name = Batong Magma
+block.copper-wall.name = Tanso na Pader
+block.copper-wall-large.name = Malaking Tanso na Pader
+block.titanium-wall.name = Titanyo na Pader
+block.titanium-wall-large.name = Malaking Titanyo na Pader
+block.plastanium-wall.name = Plastanium na Pader
+block.plastanium-wall-large.name = Malaking Plastanium na Pader
+block.phase-wall.name = Phase na Pader
+block.phase-wall-large.name = Malaking Phase na Pader
+block.thorium-wall.name = Thorium na Pader
+block.thorium-wall-large.name = Malaking Thorium na Pader
+block.door.name = Pinto
+block.door-large.name = Malaking Pinto
block.duo.name = Duo
block.scorch.name = Scorch
block.scatter.name = Scatter
block.hail.name = Hail
block.lancer.name = Lancer
block.conveyor.name = Conveyor
-block.titanium-conveyor.name = Titanium Conveyor
-block.plastanium-conveyor.name = Plastanium Conveyor
-block.armored-conveyor.name = Armored Conveyor
+block.titanium-conveyor.name = Titanyo na Conveyor
+block.plastanium-conveyor.name = Plastanium na Conveyor
+block.armored-conveyor.name = Nakabaluti na Conveyor
block.junction.name = Junction
block.router.name = Router
-block.distributor.name = Distributor
+block.distributor.name = Distribyutor
block.sorter.name = Sorter
block.inverted-sorter.name = Inverted Sorter
-block.message.name = Message
-block.reinforced-message.name = Reinforced Message
-block.world-message.name = World Message
+block.message.name = Mensahe
+block.reinforced-message.name = Pinatibay na Mensahe
+block.world-message.name = Mensahe ng Mundo
block.world-switch.name = World Switch
block.illuminator.name = Illuminator
block.overflow-gate.name = Overflow Gate
block.underflow-gate.name = Underflow Gate
-block.silicon-smelter.name = Silicon Smelter
+block.silicon-smelter.name = Silikon na Smelter
block.phase-weaver.name = Phase Weaver
block.pulverizer.name = Pulverizer
block.cryofluid-mixer.name = Cryofluid Mixer
-block.melter.name = Melter
+block.melter.name = Pangtunaw
block.incinerator.name = Incinerator
block.spore-press.name = Spore Press
-block.separator.name = Separator
+block.separator.name = Panghiwalay
block.coal-centrifuge.name = Coal Centrifuge
-block.power-node.name = Power Node
-block.power-node-large.name = Malaking Power Node
-block.surge-tower.name = Surge Tower
-block.diode.name = Battery Diode
-block.battery.name = Battery
-block.battery-large.name = Malaking Battery
+block.power-node.name = Kuryente na Node
+block.power-node-large.name = Malaking Kuryente na Node
+block.surge-tower.name = Tore na Surge
+block.diode.name = Bateryang Diode
+block.battery.name = Baterya
+block.battery-large.name = Malaking Baterya
block.combustion-generator.name = Combustion Generator
block.steam-generator.name = Steam Generator
block.differential-generator.name = Differential Generator
block.impact-reactor.name = Impact Reactor
-block.mechanical-drill.name = Mechanical Drill
-block.pneumatic-drill.name = Pneumatic Drill
+block.mechanical-drill.name = Mekanikal na Drill
+block.pneumatic-drill.name = Niyumatik na Drill
block.laser-drill.name = Laser Drill
block.water-extractor.name = Water Extractor
block.cultivator.name = Cultivator
-block.conduit.name = Conduit
-block.mechanical-pump.name = Mechanical Pump
-block.item-source.name = Item Source
-block.item-void.name = Item Void
-block.liquid-source.name = Liquid Source
-block.liquid-void.name = Liquid Void
-block.power-void.name = Power Void
-block.power-source.name = Power Source
-block.unloader.name = Unloader
+block.conduit.name = Tubo
+block.mechanical-pump.name = Mekanikal na Pump
+block.item-source.name = Pinagmulan ng Aytem
+block.item-void.name = Void ng Aytem
+block.liquid-source.name = Pinagmulan ng Likido
+block.liquid-void.name = Void ng Likido
+block.power-void.name = Void ng Kuryente
+block.power-source.name = Pinagmulan ng Kuryente
+block.unloader.name = Diskargahan
block.vault.name = Vault
block.wave.name = Wave
block.tsunami.name = Tsunami
block.swarmer.name = Swarmer
block.salvo.name = Salvo
block.ripple.name = Ripple
-block.phase-conveyor.name = Phase Conveyor
-block.bridge-conveyor.name = Bridge Conveyor
+block.phase-conveyor.name = Phase na Conveyor
+block.bridge-conveyor.name = Tulay ng Conveyor
block.plastanium-compressor.name = Plastanium Compressor
block.pyratite-mixer.name = Pyratite Mixer
block.blast-mixer.name = Blast Mixer
@@ -1675,14 +1724,14 @@ block.solar-panel-large.name = Large Solar Panel
block.oil-extractor.name = Oil Extractor
block.repair-point.name = Repair Point
block.repair-turret.name = Repair Turret
-block.pulse-conduit.name = Pulse Conduit
-block.plated-conduit.name = Plated Conduit
-block.phase-conduit.name = Phase Conduit
-block.liquid-router.name = Liquid Router
-block.liquid-tank.name = Liquid Tank
-block.liquid-container.name = Liquid Container
-block.liquid-junction.name = Liquid Junction
-block.bridge-conduit.name = Bridge Conduit
+block.pulse-conduit.name = Pulse na Conduit
+block.plated-conduit.name = Plated na Conduit
+block.phase-conduit.name = Phase na Conduit
+block.liquid-router.name = Likidong Router
+block.liquid-tank.name = Likidong Tangke
+block.liquid-container.name = Likidong Lalagyan
+block.liquid-junction.name = Likidong Junction
+block.bridge-conduit.name = Tubong Tulay
block.rotary-pump.name = Rotary Pump
block.thorium-reactor.name = Thorium Reactor
block.mass-driver.name = Mass Driver
@@ -1692,12 +1741,12 @@ block.thermal-generator.name = Thermal Generator
block.surge-smelter.name = Surge Smelter
block.mender.name = Mender
block.mend-projector.name = Mend Projector
-block.surge-wall.name = Surge Wall
-block.surge-wall-large.name = Malaking Surge Wall
+block.surge-wall.name = Surge na Pader
+block.surge-wall-large.name = Malaking Surge na Pader
block.cyclone.name = Cyclone
block.fuse.name = Fuse
-block.shock-mine.name = Shock Mine
-block.overdrive-projector.name = Overdrive Projector
+block.shock-mine.name = Mina ng Kuryente
+block.overdrive-projector.name = Projector ng Overdrive
block.force-projector.name = Force Projector
block.arc.name = Arc
block.rtg-generator.name = RTG Generator
@@ -1706,10 +1755,12 @@ block.meltdown.name = Meltdown
block.foreshadow.name = Foreshadow
block.container.name = Container
block.launch-pad.name = Launch Pad
+block.advanced-launch-pad.name = Launch Pad
+block.landing-pad.name = Landing Pad
block.segment.name = Segment
-block.ground-factory.name = Ground Factory
-block.air-factory.name = Air Factory
-block.naval-factory.name = Naval Factory
+block.ground-factory.name = Pabrika ng Lupa
+block.air-factory.name = Pabrika ng Langit
+block.naval-factory.name = Pabrika ng Pandagat
block.additive-reconstructor.name = Additive Reconstructor
block.multiplicative-reconstructor.name = Multiplicative Reconstructor
block.exponential-reconstructor.name = Exponential Reconstructor
@@ -1761,6 +1812,8 @@ block.arkyic-vent.name = Arkyic Vent
block.yellow-stone-vent.name = Yellow Stone Vent
block.red-stone-vent.name = Red Stone Vent
block.crystalline-vent.name = Crystalline Vent
+block.stone-vent.name = Stone Vent
+block.basalt-vent.name = Basalt Vent
block.redmat.name = Redmat
block.bluemat.name = Bluemat
block.core-zone.name = Core Zone
@@ -1914,20 +1967,20 @@ hint.respawn = To respawn as a ship, press [accent][[V][].
hint.respawn.mobile = You have switched control to a unit/structure. To respawn as a ship, [accent]tap the avatar in the top left.[]
hint.desktopPause = Press [accent][[Space][] to pause and unpause the game.
hint.breaking = [accent]Right-click[] and drag to break blocks.
-hint.breaking.mobile = I-activate ang \ue817 [accent]hammer[] sa kanang bahagi sa ibaba at i-tap para masira ang mga bloke.\n\nI-hold ang iyong daliri sa isang segundo at i-drag para masira ang isang seleksyon.
+hint.breaking.mobile = I-activate ang :hammer: [accent]hammer[] sa kanang bahagi sa ibaba at i-tap para masira ang mga bloke.\n\nI-hold ang iyong daliri sa isang segundo at i-drag para masira ang isang seleksyon.
hint.blockInfo = Tingnan ang impormasyon ng isang block sa pamamagitan ng pagpili nito sa [accent]build menu[], pagkatapos ay pagpili sa [accent][[?][] na button sa kanan.
hint.derelict = Ang [accent]Derelict[] na mga istraktura ay mga sirang labi ng mga lumang base na hindi na gumagana.\n\nAng mga istrukturang ito ay maaaring [accent]deconstructed[] para sa mga mapagkukunan.
-hint.research = Gamitin ang button na \ue875 [accent]Research[] para magsaliksik ng bagong teknolohiya.
-hint.research.mobile = Gamitin ang button na \ue875 [accent]Research[] sa \ue88c [accent]Menu[] para magsaliksik ng bagong teknolohiya.
+hint.research = Gamitin ang button na :tree: [accent]Research[] para magsaliksik ng bagong teknolohiya.
+hint.research.mobile = Gamitin ang button na :tree: [accent]Research[] sa :menu: [accent]Menu[] para magsaliksik ng bagong teknolohiya.
hint.unitControl = Pindutin ang [accent][[L-ctrl][] at [accent]click[] upang kontrolin ang mga friendly na unit o turrets.
hint.unitControl.mobile = [accent][[Double-tap][] para kontrolin ang mga friendly na unit o turrets.
hint.unitSelectControl = To control units, enter [accent]command mode[] by holding [accent]L-shift.[]\nWhile in command mode, click and drag to select units. [accent]Right-click[] a location or target to command units there.
hint.unitSelectControl.mobile = To control units, enter [accent]command mode[] by pressing the [accent]command[] button in the bottom left.\nWhile in command mode, long-press and drag to select units. Tap a location or target to command units there.
-hint.launch = Kapag sapat na ang mga mapagkukunan, maaari mong [accent]Ilunsad[] sa pamamagitan ng pagpili sa mga kalapit na sektor mula sa \ue827 [accent]Map[] sa kanang ibaba.
-hint.launch.mobile = Kapag sapat na ang mga mapagkukunan, maaari mong [accent]Ilunsad[] sa pamamagitan ng pagpili sa mga kalapit na sektor mula sa \ue827 [accent]Map[] sa \ue88c [accent]Menu[].
+hint.launch = Kapag sapat na ang mga mapagkukunan, maaari mong [accent]Ilunsad[] sa pamamagitan ng pagpili sa mga kalapit na sektor mula sa :map: [accent]Map[] sa kanang ibaba.
+hint.launch.mobile = Kapag sapat na ang mga mapagkukunan, maaari mong [accent]Ilunsad[] sa pamamagitan ng pagpili sa mga kalapit na sektor mula sa :map: [accent]Map[] sa :menu: [accent]Menu[].
hint.schematicSelect = Pindutin ang [accent][[F][] at i-drag upang pumili ng mga bloke na kokopyahin at ipe-paste.\n\n[accent][[Middle Click][] upang kopyahin ang isang uri ng block.
hint.rebuildSelect = Hold [accent][[B][] and drag to select destroyed block plans.\nThis will rebuild them automatically.
-hint.rebuildSelect.mobile = Select the \ue874 copy button, then tap the \ue80f rebuild button and drag to select destroyed block plans.\nThis will rebuild them automatically.
+hint.rebuildSelect.mobile = Select the :copy: copy button, then tap the :wrench: rebuild button and drag to select destroyed block plans.\nThis will rebuild them automatically.
hint.conveyorPathfind = Hold [accent][[L-Ctrl][] while dragging conveyors to automatically generate a path.
hint.conveyorPathfind.mobile = Pindutin ang [accent][[L-Ctrl][] habang dina-drag ang mga conveyor para awtomatikong bumuo ng landas.
hint.boost = Pindutin ang [accent][[L-Shift][] para lumipad sa mga obstacle kasama ang iyong kasalukuyang unit.\n\nIlang ground unit lang ang may mga booster
@@ -1936,55 +1989,55 @@ hint.payloadPickup.mobile = [accent]I-tap nang matagal ang[] isang maliit na blo
hint.payloadDrop = Pindutin ang [accent]][] para mag-drop ng payload.
hint.payloadDrop.mobile = [accent]Tap and hold[] an empty location to drop a payload there.
hint.waveFire = [accent]Wave[] turrets with water as ammunition will automatically put out nearby fires.
-hint.generator = \uf879 [accent]Combustion Generators[] burn coal and transmit power to adjacent blocks.\n\nPower transmission range can be extended with \uf87f [accent]Power Nodes[].
-hint.guardian = [accent]Guardian[] units are armored. Weak ammo such as [accent]Copper[] and [accent]Lead[] is [scarlet]not effective[].\n\nUse higher tier turrets or \uf835 [accent]Graphite[] \uf861Duo/\uf859Salvo ammunition to take Guardians down.
-hint.coreUpgrade = Cores can be upgraded by [accent]placing higher-tier cores over them[].\n\nPlace a \uf868 [accent]Foundation[] core over the \uf869 [accent]Shard[] core. Make sure it is free from nearby obstructions.
+hint.generator = :combustion-generator: [accent]Combustion Generators[] burn coal and transmit power to adjacent blocks.\n\nPower transmission range can be extended with :power-node: [accent]Power Nodes[].
+hint.guardian = [accent]Guardian[] units are armored. Weak ammo such as [accent]Copper[] and [accent]Lead[] is [scarlet]not effective[].\n\nUse higher tier turrets or :graphite: [accent]Graphite[] :duo:Duo/:salvo:Salvo ammunition to take Guardians down.
+hint.coreUpgrade = Cores can be upgraded by [accent]placing higher-tier cores over them[].\n\nPlace a :core-foundation: [accent]Foundation[] core over the :core-shard: [accent]Shard[] core. Make sure it is free from nearby obstructions.
hint.presetLaunch = Gray [accent]landing zone sectors[], such as [accent]Frozen Forest[], can be launched to from anywhere. They do not require capture of nearby territory.\n\n[accent]Numbered sectors[], such as this one, are [accent]optional[].
hint.presetDifficulty = This sector has a [scarlet]high enemy threat level[].\nLaunching to such sectors is [accent]not recommended[] without proper technology and preparation.
hint.coreIncinerate = After the core is filled to capacity with an item, any extra items of that type it receives will be [accent]incinerated[].
hint.factoryControl = To set a unit factory's [accent]output destination[], click a factory block while in command mode, then right-click a location.\nUnits produced by it will automatically move there.
hint.factoryControl.mobile = To set a unit factory's [accent]output destination[], tap a factory block while in command mode, then tap a location.\nUnits produced by it will automatically move there.
-gz.mine = Move near the \uf8c4 [accent]copper ore[] on the ground and click to begin mining.
-gz.mine.mobile = Move near the \uf8c4 [accent]copper ore[] on the ground and tap it to begin mining.
-gz.research = Open the \ue875 tech tree.\nResearch the \uf870 [accent]Mechanical Drill[], then select it from the menu in the bottom right.\nClick on a copper patch to place it.
-gz.research.mobile = Open the \ue875 tech tree.\nResearch the \uf870 [accent]Mechanical Drill[], then select it from the menu in the bottom right.\nTap on a copper patch to place it.\n\nPress the \ue800 [accent]checkmark[] at the bottom right to confirm.
-gz.conveyors = Research and place \uf896 [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nClick and drag to place multiple conveyors.\n[accent]Scroll[] to rotate.
-gz.conveyors.mobile = Research and place \uf896 [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nHold down your finger for a second and drag to place multiple conveyors.
+gz.mine = Move near the :ore-copper: [accent]copper ore[] on the ground and click to begin mining.
+gz.mine.mobile = Move near the :ore-copper: [accent]copper ore[] on the ground and tap it to begin mining.
+gz.research = Open the :tree: tech tree.\nResearch the :mechanical-drill: [accent]Mechanical Drill[], then select it from the menu in the bottom right.\nClick on a copper patch to place it.
+gz.research.mobile = Open the :tree: tech tree.\nResearch the :mechanical-drill: [accent]Mechanical Drill[], then select it from the menu in the bottom right.\nTap on a copper patch to place it.\n\nPress the \ue800 [accent]checkmark[] at the bottom right to confirm.
+gz.conveyors = Research and place :conveyor: [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nClick and drag to place multiple conveyors.\n[accent]Scroll[] to rotate.
+gz.conveyors.mobile = Research and place :conveyor: [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nHold down your finger for a second and drag to place multiple conveyors.
gz.drills = Expand the mining operation.\nPlace more Mechanical Drills.\nMine 100 copper.
-gz.lead = \uf837 [accent]Lead[] is another commonly used resource.\nSet up drills to mine lead.
-gz.moveup = \ue804 Move up for further objectives.
-gz.turrets = Research and place 2 \uf861 [accent]Duo[] turrets to defend the core.\nDuo turrets require \uf838 [accent]ammo[] from conveyors.
+gz.lead = :lead: [accent]Lead[] is another commonly used resource.\nSet up drills to mine lead.
+gz.moveup = :up: Move up for further objectives.
+gz.turrets = Research and place 2 :duo: [accent]Duo[] turrets to defend the core.\nDuo turrets require \uf838 [accent]ammo[] from conveyors.
gz.duoammo = Supply the Duo turrets with [accent]copper[], using conveyors.
-gz.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace \uf8ae [accent]copper walls[] around the turrets.
+gz.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace :copper-wall: [accent]copper walls[] around the turrets.
gz.defend = Enemy incoming, prepare to defend.
-gz.aa = Flying units cannot easily be dispatched with standard turrets.\n\uf860 [accent]Scatter[] turrets provide excellent anti-air, but require \uf837 [accent]lead[] as ammo.
+gz.aa = Flying units cannot easily be dispatched with standard turrets.\n:scatter: [accent]Scatter[] turrets provide excellent anti-air, but require :lead: [accent]lead[] as ammo.
gz.scatterammo = Supply the Scatter turret with [accent]lead[], using conveyors.
gz.supplyturret = [accent]Supply Turret
gz.zone1 = This is the enemy drop zone.
gz.zone2 = Anything built in the radius is destroyed when a wave starts.
gz.zone3 = A wave will begin now.\nGet ready.
gz.finish = Build more turrets, mine more resources,\nand defend against all the waves to [accent]capture the sector[].
-onset.mine = Click to mine \uf748 [accent]beryllium[] from walls.\n\nUse [accent][[WASD] to move.
-onset.mine.mobile = Tap to mine \uf748 [accent]beryllium[] from walls.
-onset.research = Open the \ue875 tech tree.\nResearch, then place a \uf73e [accent]turbine condenser[] on the vent.\nThis will generate [accent]power[].
-onset.bore = Research and place a \uf741 [accent]plasma bore[].\nThis automatically mines resources from walls.
-onset.power = To [accent]power[] the plasma bore, research and place a \uf73d [accent]beam node[].\nConnect the turbine condenser to the plasma bore.
-onset.ducts = Research and place \uf799 [accent]ducts[] to move the mined resources from the plasma bore to the core.\nClick and drag to place multiple ducts.\n[accent]Scroll[] to rotate.
-onset.ducts.mobile = Research and place \uf799 [accent]ducts[] to move the mined resources from the plasma bore to the core.\n\nHold down your finger for a second and drag to place multiple ducts.
+onset.mine = Click to mine :beryllium: [accent]beryllium[] from walls.\n\nUse [accent][[WASD] to move.
+onset.mine.mobile = Tap to mine :beryllium: [accent]beryllium[] from walls.
+onset.research = Open the :tree: tech tree.\nResearch, then place a :turbine-condenser: [accent]turbine condenser[] on the vent.\nThis will generate [accent]power[].
+onset.bore = Research and place a :plasma-bore: [accent]plasma bore[].\nThis automatically mines resources from walls.
+onset.power = To [accent]power[] the plasma bore, research and place a :beam-node: [accent]beam node[].\nConnect the turbine condenser to the plasma bore.
+onset.ducts = Research and place :duct: [accent]ducts[] to move the mined resources from the plasma bore to the core.\nClick and drag to place multiple ducts.\n[accent]Scroll[] to rotate.
+onset.ducts.mobile = Research and place :duct: [accent]ducts[] to move the mined resources from the plasma bore to the core.\n\nHold down your finger for a second and drag to place multiple ducts.
onset.moremine = Expand the mining operation.\nPlace more Plasma Bores and use beam nodes and ducts to support them.\nMine 200 beryllium.
-onset.graphite = More complex blocks require \uf835 [accent]graphite[].\nSet up plasma bores to mine graphite.
-onset.research2 = Begin researching [accent]factories[].\nResearch the \uf74d [accent]cliff crusher[] and \uf779 [accent]silicon arc furnace[].
-onset.arcfurnace = The arc furnace needs \uf834 [accent]sand[] and \uf835 [accent]graphite[] to create \uf82f [accent]silicon[].\n[accent]Power[] is also required.
-onset.crusher = Use \uf74d [accent]cliff crushers[] to mine sand.
-onset.fabricator = Use [accent]units[] to explore the map, defend buildings, and attack the enemy. Research and place a \uf6a2 [accent]tank fabricator[].
+onset.graphite = More complex blocks require :graphite: [accent]graphite[].\nSet up plasma bores to mine graphite.
+onset.research2 = Begin researching [accent]factories[].\nResearch the :cliff-crusher: [accent]cliff crusher[] and :silicon-arc-furnace: [accent]silicon arc furnace[].
+onset.arcfurnace = The arc furnace needs :sand: [accent]sand[] and :graphite: [accent]graphite[] to create :silicon: [accent]silicon[].\n[accent]Power[] is also required.
+onset.crusher = Use :cliff-crusher: [accent]cliff crushers[] to mine sand.
+onset.fabricator = Use [accent]units[] to explore the map, defend buildings, and attack the enemy. Research and place a :tank-fabricator: [accent]tank fabricator[].
onset.makeunit = Produce a unit.\nUse the "?" button to see selected factory requirements.
-onset.turrets = Units are effective, but [accent]turrets[] provide better defensive capabilities if used effectively.\nPlace a \uf6eb [accent]Breach[] turret.\nTurrets require \uf748 [accent]ammo[].
+onset.turrets = Units are effective, but [accent]turrets[] provide better defensive capabilities if used effectively.\nPlace a :breach: [accent]Breach[] turret.\nTurrets require :beryllium: [accent]ammo[].
onset.turretammo = Supply the turret with [accent]beryllium ammo.[]
-onset.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace some \uf6ee [accent]beryllium walls[] around the turret.
+onset.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace some :beryllium-wall: [accent]beryllium walls[] around the turret.
onset.enemies = Enemy incoming, prepare to defend.
onset.defenses = [accent]Set up defenses:[lightgray] {0}
onset.attack = The enemy is vulnerable. Counter-attack.
-onset.cores = New cores can be placed on [accent]core tiles[].\nNew cores function as forward bases and share a resource inventory with other cores.\nPlace a \uf725 core.
+onset.cores = New cores can be placed on [accent]core tiles[].\nNew cores function as forward bases and share a resource inventory with other cores.\nPlace a :core-bastion: core.
onset.detect = The enemy will be able to detect you in 2 minutes.\nSet up defenses, mining, and production.
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.
@@ -2111,26 +2164,26 @@ block.liquid-tank.description = Stores a large amount of liquids. Use for creati
block.liquid-junction.description = Acts as a bridge for two crossing conduits. Useful in situations with two different conduits carrying different liquids to different locations.
block.bridge-conduit.description = Advanced liquid transport block. Allows transporting liquids over up to 3 tiles of any terrain or building.
block.phase-conduit.description = Advanced liquid transport block. Uses power to teleport liquids to a connected phase conduit over several tiles.
-block.power-node.description = Transmits power to connected nodes. The node will receive power from or supply power to any adjacent blocks.
-block.power-node-large.description = An advanced power node with greater range.
-block.surge-tower.description = An extremely long-range power node with fewer available connections.
-block.diode.description = Battery power can flow through this block in only one direction, but only if the other side has less power stored.
-block.battery.description = Stores power as a buffer in times of surplus energy. Outputs power in times of deficit.
-block.battery-large.description = Stores much more power than a regular battery.
-block.combustion-generator.description = Generates power by burning flammable materials, such as coal.
-block.thermal-generator.description = Generates power when placed in hot locations.
-block.steam-generator.description = An advanced combustion generator. More efficient, but requires additional water for generating steam.
-block.differential-generator.description = Generates large amounts of energy. Utilizes the temperature difference between cryofluid and burning pyratite.
-block.rtg-generator.description = A simple, reliable generator. Uses the heat of decaying radioactive compounds to produce energy at a slow rate.
-block.solar-panel.description = Provides a small amount of power from the sun.
-block.solar-panel-large.description = A significantly more efficient version of the standard solar panel.
-block.thorium-reactor.description = Generates significant amounts of power from thorium. Requires constant cooling. Will explode violently if insufficient amounts of coolant are supplied. Power output depends on fullness, with base power generated at full capacity.
-block.impact-reactor.description = An advanced generator, capable of creating massive amounts of power at peak efficiency. Requires a significant power input to kickstart the process.
-block.mechanical-drill.description = A cheap drill. When placed on appropriate tiles, outputs items at a slow pace indefinitely. Only capable of mining basic resources.
-block.pneumatic-drill.description = An improved drill, capable of mining titanium. Mines at a faster pace than a mechanical drill.
-block.laser-drill.description = Allows drilling even faster through laser technology, but requires power. Capable of mining thorium.
-block.blast-drill.description = The ultimate drill. Requires large amounts of power.
-block.water-extractor.description = Extracts groundwater. Used in locations with no surface water available.
+block.power-node.description = Nagpapadala ng kuryente sa mga konektadong node. Ang node ay makakatanggap ng kuryente mula sa o magsu-supply ng kuryente sa anumang katabing block.
+block.power-node-large.description = Isang advanced na node na may mas malawak na hanay.
+block.surge-tower.description = Isang napakahabang kuryente na node, pero mas kaunting lamang magagamit na mga koneksyon.
+block.diode.description = Ang kuryente ng baterya ay maaaring dumaloy sa block na to sa isang direksyon lamang, ngunit kung ang kabilang panig ay may mas kaunting kuryenteng nakaimbak.
+block.battery.description = Nag-iimbak ng Kuryente bilang buffer sa mga oras ng sobrang enerhiya. Nag output ng mga kuryente sa oras ng kakulangan.
+block.battery-large.description = Nag-iimbak ng mas maraming kuryente kaysa sa normal na baterya.
+block.combustion-generator.description = Bumubuo ng kuryente sa pamamagitan ng pagsunog ng mga nasusunog na materyales, tulad ng coal.
+block.thermal-generator.description = Bumubuo ng kuryente sa mga maiinit na lugar.
+block.steam-generator.description = Isang advanced combustion generator. Mas efficient pero nangangailangan ng karagdagang tubig para sa pagbuo ng singaw.
+block.differential-generator.description = Bumubuo ng malaking halaga ng enerhiya. Ginagamit ang pagkakaiba ng temperatura sa pagitan ng cryofluid at nasusunog na pyratite.
+block.rtg-generator.description = Isang simpleng at maaasahang na generator. Gumagamit ng init ng mga nabubulok na radioactive compound upang makagawa ng enerhiya sa mabagal na bilis.
+block.solar-panel.description = Nagbibigay ng kaunting kuryente mula sa araw.
+block.solar-panel-large.description = Isang makabuluhang mas efficient na bersyon ng karaniwang solar panel.
+block.thorium-reactor.description = Bumubuo ng malaking halaga ng kuryente mula sa thorium. Nangangailangan ng patuloy na lamigin gamit ang cryofluid. Marahas na sasabog kung hindi sapat ang dami ng coolant na ibinibigay. Ang output ng kuryente ay depende sa kapunuan, na may base na kuryente na nabuo sa buong kapasidad.
+block.impact-reactor.description = Isang advanced na generator, na may kakayahang lumikha ng napakalaking halaga ng kuryente sa pinakamataas na efficiency. Nangangailangan lang ng makabuluhang input ng kuryente upang masimulan ang proseso.
+block.mechanical-drill.description = Pinaka-mura na drill. Kapag inilagay sa mga appropriate tiles, naglalabas ng items na mabagal na walang katiyakan. Kaya mag drill ng basic resources.
+block.pneumatic-drill.description = Isang upgrade sa nakaraan ng drill, kaya mag drill ang titanyo. Mas mabilis kaysa sa Mekanikal na Drill.
+block.laser-drill.description = Pwede mag drill na mas mabilis lalo na sa teknolohiya ng laser, pero kailangan kuryente. Kaya mag drill ang thorium.
+block.blast-drill.description = Ang pangwakas ng drill na ito. Kailangan ng malaking input sa kuryente.
+block.water-extractor.description = Nag e-extract ng groundwater. Ginagamit sa mga sahig na walang ibabaw na tubig.
block.cultivator.description = Cultivates tiny concentrations of spores in the atmosphere into industry-ready pods.
block.cultivator.details = Recovered technology. Used to produce massive amounts of biomass as efficiently as possible. Likely the initial incubator of the spores now covering Serpulo.
block.oil-extractor.description = Uses large amounts of power, sand and water to drill for oil.
@@ -2144,7 +2197,9 @@ block.vault.description = Stores a large amount of items of each type. An unload
block.container.description = Stores a small amount of items of each type. An unloader block can be used to retrieve items from the container.
block.unloader.description = Unloads items from any nearby non-transportation block. The type of item to be unloaded can be changed by tapping.
block.launch-pad.description = Launches batches of items without any need for a core launch.
-block.launch-pad.details = Sub-orbital system for point-to-point transportation of resources. Payload pods are fragile and incapable of surviving re-entry.
+block.advanced-launch-pad.description = Launches batches of items to selected sectors. Only accepts one item type at a time.
+block.advanced-launch-pad.details = Sub-orbital system for point-to-point transportation of resources.
+block.landing-pad.description = Receives items from launch pads in other sectors. Requires large amounts of water to protect against impacts of landings.
block.duo.description = A small, cheap turret. Useful against ground units.
block.scatter.description = An essential anti-air turret. Sprays clumps of lead, scrap or metaglass flak at enemy units.
block.scorch.description = Burns any ground enemies close to it. Highly effective at close range.
@@ -2251,6 +2306,7 @@ block.unit-cargo-loader.description = Constructs cargo drones. Drones automatica
block.unit-cargo-unload-point.description = Acts as an unloading point for cargo drones. Accepts items that match the selected filter.
block.beam-node.description = Transmits power to other blocks orthogonally. Stores a small amount of power.
block.beam-tower.description = Transmits power to other blocks orthogonally. Stores a large amount of power. Long-range.
+block.beam-link.description = Transmits power over vast distances.\nOnly capable of connecting to adjacent structures or other beam links.
block.turbine-condenser.description = Generates power when placed on vents. Produces a small amount of water.
block.chemical-combustion-chamber.description = Generates power from arkycite and ozone.
block.pyrolysis-generator.description = Generates large amounts of power from arkycite and slag. Produces water as a byproduct.
@@ -2339,6 +2395,7 @@ unit.emanate.description = Builds structures to defend the Acropolis core. Repai
lst.read = Read a number from a linked memory cell.
lst.write = Write a number to a linked memory cell.
lst.print = Add text to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used.
+lst.printchar = Add a UTF-16 character or content icon to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used.
lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example"
lst.draw = Add an operation to the drawing buffer.\nDoes not display anything until [accent]Draw Flush[] is used.
lst.drawflush = Flush queued [accent]Draw[] operations to a display.
@@ -2424,12 +2481,14 @@ lenum.shootp = Shoot at a unit/building with velocity prediction.
lenum.config = Building configuration, e.g. sorter item.
lenum.enabled = Whether the block is enabled.
laccess.currentammotype = Current ammo item/liquid of a turret.
+laccess.memorycapacity = Number of cells in a memory block.
laccess.color = Illuminator color.
laccess.controller = Unit controller. If processor controlled, returns processor.\nIf in a formation, returns leader.\nOtherwise, returns the unit itself.
laccess.dead = Whether a unit/building is dead or no longer valid.
laccess.controlled = Returns:\n[accent]@ctrlProcessor[] if unit controller is processor\n[accent]@ctrlPlayer[] if unit/building controller is player\n[accent]@ctrlFormation[] if unit is in formation\nOtherwise, 0.
laccess.progress = Action progress, 0 to 1.\nReturns production, turret reload or construction progress.
laccess.speed = Top speed of a unit, in tiles/sec.
+laccess.size = Size of a unit/building or the length of a string.
laccess.id = ID of a unit/block/item/liquid.\nThis is the inverse of the lookup operation.
lcategory.unknown = Unknown
lcategory.unknown.description = Uncategorized instructions.
@@ -2558,3 +2617,29 @@ lenum.autoscale = Whether to scale marker corresponding to player's zoom level.
lenum.posi = Indexed position, used for line and quad markers with index zero being the first position.
lenum.uvi = Texture's position ranging from zero to one, used for quad markers.
lenum.colori = Indexed position, used for line and quad markers with index zero being the first color.
+lenum.wavetimer = Whether the waves come automatically on a timer. If not, waves come when the play button is pressed.
+lenum.wave = Current wave number. Can be anything in non-wave modes.
+lenum.currentwavetime = Wave countdown in ticks.
+lenum.waves = Whether waves are spawnable at all.
+lenum.wavesending = Whether the waves can be manually summoned with the play button.
+lenum.attackmode = Determines if gamemode is attack mode.
+lenum.wavespacing = Time between waves in ticks.
+lenum.enemycorebuildradius = No-build zone around enemy core radius.
+lenum.dropzoneradius = Radius around enemy wave drop zones.
+lenum.unitcap = Base unit cap. Can still be increased by blocks.
+lenum.lighting = Whether ambient lighting is enabled.
+lenum.buildspeed = Multiplier for building speed.
+lenum.unithealth = How much health units start with.
+lenum.unitbuildspeed = How fast unit factories build units.
+lenum.unitcost = Multiplier of resources that units take to build.
+lenum.unitdamage = How much damage units deal.
+lenum.blockhealth = How much health blocks start with.
+lenum.blockdamage = How much damage blocks (turrets) deal.
+lenum.rtsminweight = Minimum "advantage" needed for a squad to attack. Higher -> more cautious.
+lenum.rtsminsquad = Minimum size of attack squads.
+lenum.maparea = Playable map area. Anything outside the area will not be interactable.
+lenum.ambientlight = Ambient light color. Used when lighting is enabled.
+lenum.solarmultiplier = Multiplies power output of solar panels.
+lenum.dragmultiplier = Environment drag multiplier.
+lenum.ban = Blocks or units that cannot be placed or built.
+lenum.unban = Unban a unit or block.
diff --git a/core/assets/bundles/bundle_fr.properties b/core/assets/bundles/bundle_fr.properties
index f0088a4831..96a65e265f 100644
--- a/core/assets/bundles/bundle_fr.properties
+++ b/core/assets/bundles/bundle_fr.properties
@@ -131,6 +131,7 @@ feature.unsupported = Votre appareil ne prend pas en charge cette fonctionnalit
mods.initfailed = [red]⚠[] L'instance précédente de Mindustry n’a pas pu s’initialiser. Cela a probablement été causé par des mods.\n\nPour éviter une boucle de plantage, [red]tous les mods ont été désactivés.[]
mods = Mods
+mods.name = Mod:
mods.none = [lightgray]Aucun Mod trouvé !
mods.guide = Guide de Modding
mods.report = Signaler un Bug
@@ -157,7 +158,7 @@ mod.circulardependencies = [red]Dépendances circulaires
mod.incompletedependencies = [red]Dépendances incomplètes
mod.requiresversion.details = Requiert la version: [accent]{0}[]\nVotre jeu n'est pas à jour. Ce mod a besoin d'une version récente du jeu (la beta ou l'alpha) pour fonctionner.
-mod.outdatedv7.details = Ce mod est incompatible avec la version la plus récente du jeu. L'auteur doit le mettre à jour et ajouter [accent]minGameVersion: 136[] dans le fichier [accent]mod.json[].
+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 = Ce mod à été mis sur liste noire, car il cause des plantages ou d'autres problèmes avec la version actuelle du jeu. Ne l'utilisez pas.
mod.missingdependencies.details = Ce mod à des dépendances manquantes: {0}
mod.erroredcontent.details = Ce mod cause des erreurs lors du chargement. Demandez à l'auteur de les régler.
@@ -168,7 +169,6 @@ mod.requiresversion = Requiert la version: [red]{0}
mod.errors = Des erreurs se sont produites lors du chargement du contenu.
mod.noerrorplay = [scarlet]Vous avez des mods avec des erreurs.[] Désactivez les mods concernés ou corrigez les erreurs avant de jouer.
-mod.nowdisabled = [scarlet]Le mod '{0}' a des dépendances manquantes: [accent]{1}\n[lightgray]Ces mods doivent d'abord être téléchargés.\nCe mod sera automatiquement désactivé.
mod.enable = Activer
mod.requiresrestart = Le jeu va maintenant se fermer pour appliquer les modifications du mod.
mod.reloadrequired = [scarlet]Redémarrage requis
@@ -183,6 +183,15 @@ mod.missing = Cette sauvegarde contient des mods que vous avez récemment mis à
mod.preview.missing = Avant de publier ce mod dans le Steam Workshop, vous devez ajouter une image servant d'aperçu.\nPlacez une image nommée [accent]preview.png[] dans le dossier du mod et réessayez.
mod.folder.missing = Seuls les mods sous forme de dossiers peuvent être publiés sur le Steam Workshop.\nPour convertir n'importe quel mod en un dossier, décompressez-le tout simplement dans un dossier et supprimez l'ancien zip, puis redémarrez votre jeu ou rechargez vos mods.
mod.scripts.disable = Votre appareil ne prend pas en charge les mods avec des scripts. Vous devez désactiver ces mods pour pouvoir jouer.
+mod.dependencies.error = [scarlet]Mods are missing dependencies
+mod.dependencies.soft = (optional)
+mod.dependencies.download = Import
+mod.dependencies.downloadreq = Import Required
+mod.dependencies.downloadall = Import All
+mod.dependencies.status = Import Results
+mod.dependencies.success = Successfully downloaded:
+mod.dependencies.failure = Failed to download:
+mod.dependencies.imported = This mod requires dependencies. Download?
about.button = À propos
name = Nom :
@@ -301,6 +310,7 @@ disconnect.error = Un problème est survenu lors de la connexion.
disconnect.closed = Connexion fermée.
disconnect.timeout = Délai de connexion expiré.
disconnect.data = Les données du monde n'ont pas pu être chargées !
+disconnect.snapshottimeout = Timed out while receiving UDP snapshots.\nThis may be caused by an unstable network or connection.
cantconnect = Impossible de rejoindre ([accent]{0}[]).
connecting = [accent]Connexion...
reconnecting = [accent]Reconnexion...
@@ -469,6 +479,7 @@ editor.shiftx = Décalage X
editor.shifty = Décalage Y
workshop = Steam Workshop
waves.title = Vagues
+waves.team = Team
waves.remove = Supprimer
waves.every = tous les
waves.waves = vague(s)
@@ -726,14 +737,18 @@ loadout = Chargement
resources = Ressources
resources.max = Max
bannedblocks = Blocs bannis
+unbannedblocks = Unbanned Blocks
objectives = Objectifs
bannedunits = Unités bannies
+unbannedunits = Unbanned Units
bannedunits.whitelist = Unités bannies en tant que liste blanche
bannedblocks.whitelist = Blocs bannis en tant que liste blanche
addall = Ajouter TOUT
launch.from = Décollage depuis : [accent]{0}
launch.capacity = Capacité de Lancement d'Objets : [accent]{0}
launch.destination = Destination : {0}
+landing.sources = Source Sectors: [accent]{0}[]
+landing.import = Max Total Import: {0}[accent]{1}[lightgray]/min
configure.invalid = La quantité doit être un nombre compris entre 0 et {0}.
add = Ajouter
guardian = Gardien
@@ -773,7 +788,9 @@ sectors.stored = Stockage :
sectors.resume = Reprendre
sectors.launch = Décoller
sectors.select = Sélectionner
+sectors.launchselect = Select Launch Destination
sectors.nonelaunch = [lightgray]Vide (soleil)
+sectors.redirect = Redirect Launch Pads
sectors.rename = Renommer le secteur
sectors.enemybase = [scarlet]Base ennemie
sectors.vulnerable = [scarlet]Vulnérable
@@ -805,6 +822,10 @@ difficulty.easy = Easy
difficulty.normal = Normal
difficulty.hard = Hard
difficulty.eradication = Eradication
+difficulty.enemyHealthMultiplier = Enemy Health: {0}
+difficulty.enemySpawnMultiplier = Enemy Amount: {0}
+difficulty.waveTimeMultiplier = Wave Timer: {0}
+difficulty.nomodifiers = [lightgray](No modifiers)
planets = Planètes
@@ -1037,6 +1058,7 @@ stat.buildspeedmultiplier = Multiplicateur de vitesse de construction
stat.reactive = Réactions
stat.immunities = Immunités
stat.healing = Guérison
+stat.efficiency = [stat]{0}% Efficiency
ability.forcefield = Champ de Force
ability.forcefield.description = Projects a force shield that absorbs bullets
@@ -1083,6 +1105,7 @@ ability.stat.buildtime = [stat]{0} sec[lightgray] build time
bar.onlycoredeposit = Seul le dépôt de ressources dans le Noyau est autorisé
bar.drilltierreq = Meilleure Foreuse Requise
+bar.nobatterypower = Insufficieny Battery Power
bar.noresources = Ressources manquantes
bar.corereq = Noyau de base requis
bar.corefloor = Tuiles de Zone de Noyau requis
@@ -1091,6 +1114,7 @@ bar.drillspeed = Vitesse de Forage: {0}/s
bar.pumpspeed = Vitesse de Pompage: {0}/s
bar.efficiency = Efficacité: {0}%
bar.boost = Boost: +{0}%
+bar.powerbuffer = Battery Power: {0}/{1}
bar.powerbalance = Énergie: {0}/s
bar.powerstored = Réserves d'Énergie: {0}/{1}
bar.poweramount = Énergie: {0}
@@ -1101,6 +1125,7 @@ bar.capacity = Capacité: {0}
bar.unitcap = {0} {1}/{2}
bar.liquid = Liquides
bar.heat = Chaleur
+bar.cooldown = Cooldown
bar.instability = Instabilité
bar.heatamount = Chaleur: {0}
bar.heatpercent = Chaleur: {0} ({1}%)
@@ -1125,6 +1150,7 @@ bullet.interval = [stat]{0}/sec[lightgray] Balle secondaire:
bullet.frags = [stat]{0}[lightgray]x Balle à fragmentation:
bullet.lightning = [stat]{0}[lightgray]x foudre ~ [stat]{1}[lightgray] dégâts
bullet.buildingdamage = [stat]{0}%[lightgray] des dégâts aux bâtiments
+bullet.shielddamage = [stat]{0}%[lightgray] shield damage
bullet.knockback = [stat]{0}[lightgray] recul
bullet.pierce = [stat]{0}[lightgray]x perçant
bullet.infinitepierce = [stat]perçant
@@ -1151,6 +1177,7 @@ unit.minutes = min
unit.persecond = /sec
unit.perminute = /min
unit.timesspeed = x vitesse
+unit.multiplier = x
unit.percent = %
unit.shieldhealth = santé du bouclier
unit.items = objets
@@ -1227,11 +1254,13 @@ setting.mutemusic.name = Couper la Musique
setting.sfxvol.name = Volume des Sons et Effets
setting.mutesound.name = Couper les Sons et Effets
setting.crashreport.name = Envoyer des Rapports de crash anonymes
+setting.communityservers.name = Fetch Community Server List
setting.savecreate.name = Sauvegardes Automatiques
setting.steampublichost.name = Public Game Visibility
setting.playerlimit.name = Limite de Joueurs
setting.chatopacity.name = Opacité du Chat
setting.lasersopacity.name = Opacité des Connexions laser
+setting.unitlaseropacity.name = Unit Mining Beam Opacity
setting.bridgeopacity.name = Opacité des ponts
setting.playerchat.name = Montrer les bulles de discussion des joueurs
setting.showweather.name = Montrer les Effets météo
@@ -1240,6 +1269,9 @@ setting.macnotch.name = Adapter l'interface pour afficher l'encoche
setting.macnotch.description = Redémarrage du jeu nécessaire pour appliquer les changements
steam.friendsonly = Amis seulement
steam.friendsonly.tooltip = Indique si seuls les amis Steam peuvent rejoindre votre partie.\nSi vous décochez cette case, votre partie deviendra publique et tout le monde pourra la rejoindre.
+setting.maxmagnificationmultiplierpercent.name = Min Camera Distance
+setting.minmagnificationmultiplierpercent.name = Max Camera Distance
+setting.minmagnificationmultiplierpercent.description = High values may cause performance issues.
public.beta = Notez que les versions bêta du jeu ne peuvent pas créer de salons publics.
uiscale.reset = L'échelle de l'interface a été modifiée.\nAppuyez sur "OK" pour confirmer.\n[scarlet]Rétablissement des anciens paramètres et fermeture du jeu dans [accent] {0}[] secondes...
uiscale.cancel = Annuler & Quitter
@@ -1322,6 +1354,7 @@ keybind.shoot.name = Tirer
keybind.zoom.name = Zoomer
keybind.menu.name = Menu
keybind.pause.name = Pause
+keybind.skip_wave.name = Skip Wave
keybind.pause_building.name = Pauser/Reprendre la Construction
keybind.minimap.name = Mini-carte
keybind.planet_map.name = Carte de la Planète
@@ -1389,12 +1422,14 @@ rules.unitcostmultiplier = Multiplicateur du coût de fabrication des Unités
rules.unithealthmultiplier = Multiplicateur de Santé des Unités
rules.unitdamagemultiplier = Multiplicateur de Dégât des Unités
rules.unitcrashdamagemultiplier = Multiplicateur de Dégât de chute des Unités
+rules.unitminespeedmultiplier = Unit Mine Speed Multiplier
rules.solarmultiplier = Multiplicateur de l'Efficacité des Panneaux Solaires
rules.unitcapvariable = Les Noyaux contribuent à la limite d'Unités actives
rules.unitpayloadsexplode = Carried Payloads Explode With The Unit
rules.unitcap = Limite initiale d'Unités actives
rules.limitarea = Limite de la zone de jeu de la Carte
rules.enemycorebuildradius = Périmètre Non-Constructible autour du Noyau ennemi :[lightgray] (blocs)
+rules.extracorebuildradius = Extra No-Build Radius:[lightgray] (tiles)
rules.wavespacing = Temps entre les Vagues :[lightgray] (sec)
rules.initialwavespacing = Temps de Vague Initial :[lightgray] (sec)
rules.buildcostmultiplier = Multiplicateur du prix de construction
@@ -1417,6 +1452,9 @@ rules.title.planet = Planète
rules.lighting = Éclairage
rules.fog = Brouillard de Guerre
rules.invasions = Enemy Sector Invasions
+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.fire = Feu
@@ -1737,6 +1775,8 @@ block.meltdown.name = Fusion
block.foreshadow.name = Présage
block.container.name = Conteneur
block.launch-pad.name = Rampe de lancement
+block.advanced-launch-pad.name = Launch Pad
+block.landing-pad.name = Landing Pad
block.segment.name = Diviseur
block.ground-factory.name = Usine d'Unités Terrestres
block.air-factory.name = Usine d'Unités Aériennes
@@ -1794,6 +1834,8 @@ block.arkyic-vent.name = Évent d'Arkyic
block.yellow-stone-vent.name = Évent de Pierre Jaune
block.red-stone-vent.name = Évent de Pierre Rouge
block.crystalline-vent.name = Évent Crystallin
+block.stone-vent.name = Stone Vent
+block.basalt-vent.name = Basalt Vent
block.redmat.name = Redmat
block.bluemat.name = Bluemat
block.core-zone.name = Zone de Noyau
@@ -1948,51 +1990,51 @@ hint.respawn = Pour réapparaître en tant que vaisseau, pressez [accent][[V][].
hint.respawn.mobile = Vous avez pris le contrôle d'une unité/structure. Pour réapparaître en tant qu'unité de base, [accent]touchez l'avatar en haut à gauche.[]
hint.desktopPause = Pressez [accent][[Espace][] pour mettre en pause et reprendre le jeu.
hint.breaking = Maintenez [accent]Clic-droit[] pour détruire des blocs.
-hint.breaking.mobile = Activez le \ue817 [accent]marteau[] en bas à droite, Touchez pour détruire des blocs.\n\nRetenez votre doigt pendant une seconde et déplacez-le pour détruire les blocs dans la zone de sélection.
+hint.breaking.mobile = Activez le :hammer: [accent]marteau[] en bas à droite, Touchez pour détruire des blocs.\n\nRetenez votre doigt pendant une seconde et déplacez-le pour détruire les blocs dans la zone de sélection.
hint.blockInfo = Pour afficher les informations relatives à un bloc, il suffit de le sélectionner dans le [accent]menu de construction[], puis de cliquer sur le bouton [accent][[?][] à droite.
hint.derelict = [accent]Les structures abandonnées[] sont des vestiges brisés d'anciennes bases qui ne fonctionnent plus. Ces structures peuvent être [accent]déconstruites pour obtenir des ressources.
-hint.research = Utilisez le bouton \ue875 [accent]Recherche[] pour rechercher de nouvelles technologies.
-hint.research.mobile = Utilisez le bouton \ue875 [accent]Recherche[] dans le \ue88c [accent]Menu[] pour rechercher de nouvelles technologies.
+hint.research = Utilisez le bouton :tree: [accent]Recherche[] pour rechercher de nouvelles technologies.
+hint.research.mobile = Utilisez le bouton :tree: [accent]Recherche[] dans le :menu: [accent]Menu[] pour rechercher de nouvelles technologies.
hint.unitControl = Retenez [accent][[Ctrl-gauche][] et [accent]cliquez[] pour contrôler une tourelle ou une unité alliée.
hint.unitControl.mobile = [accent][[Tapez][] 2 fois une tourelle ou une unité alliée pour la contrôler.
hint.unitSelectControl = Pour contrôler les unités, entrez en mode [accent]« Commande »[] en pressant [accent]Maj gauche[].\nEn mode « Commande », cliquez et faites glisser la souris pour sélectionner des unités. Faites un [accent]Clic droit[] à un emplacement ou une cible pour que les unités s'y déplacent.
hint.unitSelectControl.mobile = Pour contrôler les unités, entrez en mode [accent]« Commande »[] en pressant le bouton de [accent]commande[] en bas à gauche de l'écran.\nEn mode « Commande », pressez longuement et faites glisser pour sélectionner des unités. Tapez un emplacement ou une cible pour que les unités s'y déplacent.
-hint.launch = Une fois que vous avez collecté assez de ressources, vous pouvez [accent]Lancer[] votre Noyau en sélectionnant un secteur depuis la \ue827 [accent]Carte[] en bas à droite.
-hint.launch.mobile = Une fois que vous avez collecté assez de ressources, vous pouvez [accent]Lancer[] votre Noyau en sélectionnant un secteur depuis la \ue827 [accent]Carte[] dans le \ue88c [accent]Menu[].
+hint.launch = Une fois que vous avez collecté assez de ressources, vous pouvez [accent]Lancer[] votre Noyau en sélectionnant un secteur depuis la :map: [accent]Carte[] en bas à droite.
+hint.launch.mobile = Une fois que vous avez collecté assez de ressources, vous pouvez [accent]Lancer[] votre Noyau en sélectionnant un secteur depuis la :map: [accent]Carte[] dans le :menu: [accent]Menu[].
hint.schematicSelect = Retenez [accent][[F][] pour sélectionner des blocs dans une zone afin de les copier et les coller.\n\n[accent][[Clic molette][] pour copier un seul type de bloc.
hint.rebuildSelect = Retenez [accent][[B][] et faites glissez pour selectionner les plans des blocs détruits.\nCela va automatiquement les reconstruire.
-hint.rebuildSelect.mobile = Selectionnez le \ue874 bouton de copie, ensuite tapez le \ue80f bouton de reconstruction et faites glisser pour sélectionner les plans des blocs détruits.\nCela va les reconstruire automatiquement.
+hint.rebuildSelect.mobile = Selectionnez le :copy: bouton de copie, ensuite tapez le :wrench: bouton de reconstruction et faites glisser pour sélectionner les plans des blocs détruits.\nCela va les reconstruire automatiquement.
hint.conveyorPathfind = Retenez [accent][[Ctrl-gauche][] pendant que vous placez des convoyeurs, afin de générer un chemin automatiquement.
-hint.conveyorPathfind.mobile = Activez le mode \ue844 [accent]Diagonale[] et déplacez des convoyeurs, afin de générer un chemin automatiquement.
+hint.conveyorPathfind.mobile = Activez le mode :diagonal: [accent]Diagonale[] et déplacez des convoyeurs, afin de générer un chemin automatiquement.
hint.boost = Retenez [accent][[Maj-gauche][] pour voler au-dessus des obstacles avec votre unité actuelle.\n\nSeules quelques unités terrestres peuvent voler.
hint.payloadPickup = Pressez [accent][[[] pour transporter des blocs ou des unités.
hint.payloadPickup.mobile = [accent]Tapez et retenez[] votre doigt pour transporter des blocs ou des unités.
hint.payloadDrop = Pressez [accent]][] pour larguer votre chargement.
hint.payloadDrop.mobile = [accent]Tapez et retenez[] votre doigt pour larguer votre chargement.
hint.waveFire = [accent]Les tourelles à liquides[], approvisionnées en eau en tant que munition, peuvent automatiquement éteindre les incendies proches.
-hint.generator = \uf879 Les [accent]Générateurs à combustion[] brûlent du Charbon et transmettent de l'énergie aux blocs adjacents.\n\nLa transmission d'énergie peut être étendue avec des \uf87f [accent]Transmetteurs Énergétiques[].
-hint.guardian = Les [accent]Gardiens[] sont protégés par un bouclier. Les munitions faibles telles que le [accent]Cuivre[] et le [accent]Plomb[] ne seront [scarlet]pas efficaces[].\n\nUtilisez des tourelles de plus haut niveau, ou de meilleures munitions comme le \uf835 [accent]Graphite[] avec un \uf861Duo/\uf859Salve pour pouvoir tuer le gardien.
-hint.coreUpgrade = Les Noyaux peuvent être améliorés [accent]en plaçant un Noyau de plus haut niveau sur eux[].\n\nPlacez un \uf868 Noyau [accent]Fondation[] sur le \uf869 Noyau [accent]Fragment[]. Soyez sûrs que rien n'obstrue la construction.
+hint.generator = :combustion-generator: Les [accent]Générateurs à combustion[] brûlent du Charbon et transmettent de l'énergie aux blocs adjacents.\n\nLa transmission d'énergie peut être étendue avec des :power-node: [accent]Transmetteurs Énergétiques[].
+hint.guardian = Les [accent]Gardiens[] sont protégés par un bouclier. Les munitions faibles telles que le [accent]Cuivre[] et le [accent]Plomb[] ne seront [scarlet]pas efficaces[].\n\nUtilisez des tourelles de plus haut niveau, ou de meilleures munitions comme le :graphite: [accent]Graphite[] avec un :duo:Duo/:salvo:Salve pour pouvoir tuer le gardien.
+hint.coreUpgrade = Les Noyaux peuvent être améliorés [accent]en plaçant un Noyau de plus haut niveau sur eux[].\n\nPlacez un :core-foundation: Noyau [accent]Fondation[] sur le :core-shard: Noyau [accent]Fragment[]. Soyez sûrs que rien n'obstrue la construction.
hint.presetLaunch = Les [accent]secteurs[] gris, tels que [accent]Frozen Forest[], peuvent être lancés de n'importe où. Ils ne requièrent pas la capture d'un secteur adjacent.\n\n[accent]Il y a beaucoup de secteurs[] comme celui-ci, qui sont [accent]optionnels[].
hint.presetDifficulty = Ce secteur a un niveau de menace ennemi [scarlet]élevé[].\nIl n'est [accent]pas recommandé[] de se lancer dans de tels secteurs sans la technologie et la préparation appropriées.
hint.coreIncinerate = Lorsqu'un Noyau est rempli d'une ressource en particulier, le surplus qui y rentrera sera [accent]incinéré[].
hint.factoryControl = Pour régler la [accent]destination[] d'une usine à unités, cliquez sur l'usine en mode « Commande », puis clic-droit sur la destination souhaitée.\nLes unités produites s'y déplaceront automatiquement.
hint.factoryControl.mobile = Pour régler la [accent]destination[] d'une usine à unités, tapez sur l'usine en mode « Commande », puis tapez sur la destination souhaitée.\nLes unités produites s'y déplaceront automatiquement.
-gz.mine = Déplacez-vous près du \uf8c4 [accent]minerai de cuivre[] sur le sol et cliquez pour commencer à miner.
-gz.mine.mobile = Déplacez-vous près du \uf8c4 [accent]minerai de cuivre[] sur le sol et Tapez dessus pour commencer à miner.
-gz.research = Ouvrez \ue875 l'Arbre technologique.\nRecherchez la \uf870 [accent]Foreuse méchanique[], ensuite sélectionnez-la dans le menu en bas à droite.\nCliquez sur le filon de cuivre pour la placer.
-gz.research.mobile = Ouvrez \ue875 l'Arbre technologique.\nRecherchez la \uf870 [accent]Foreuse méchanique[], ensuite sélectionnez-la dans le menu en bas à droite.\nTapez sur le filon de cuivre pour la placer.\n\nPressez la \ue800 [accent]coche[] en bas à droite pour confirmer.
-gz.conveyors = Recherchez et placez des \uf896 [accent]convoyeurs[] pour déplacer les resources minées par vos\nforeuses vers le noyau.\n\nCliquez et retenez pour placer plusieurs convoyeurs.\n[accent]Scrollez[] pour les faire pivoter.
-gz.conveyors.mobile = Recherchez et placez des \uf896 [accent]convoyeurs[] pour déplacer les resources minées par vos\nforeuses vers le noyau.\n\nRetenez pendant une seconde et faites glisser pour placer plusieurs convoyeurs.
+gz.mine = Déplacez-vous près du :ore-copper: [accent]minerai de cuivre[] sur le sol et cliquez pour commencer à miner.
+gz.mine.mobile = Déplacez-vous près du :ore-copper: [accent]minerai de cuivre[] sur le sol et Tapez dessus pour commencer à miner.
+gz.research = Ouvrez :tree: l'Arbre technologique.\nRecherchez la :mechanical-drill: [accent]Foreuse méchanique[], ensuite sélectionnez-la dans le menu en bas à droite.\nCliquez sur le filon de cuivre pour la placer.
+gz.research.mobile = Ouvrez :tree: l'Arbre technologique.\nRecherchez la :mechanical-drill: [accent]Foreuse méchanique[], ensuite sélectionnez-la dans le menu en bas à droite.\nTapez sur le filon de cuivre pour la placer.\n\nPressez la \ue800 [accent]coche[] en bas à droite pour confirmer.
+gz.conveyors = Recherchez et placez des :conveyor: [accent]convoyeurs[] pour déplacer les resources minées par vos\nforeuses vers le noyau.\n\nCliquez et retenez pour placer plusieurs convoyeurs.\n[accent]Scrollez[] pour les faire pivoter.
+gz.conveyors.mobile = Recherchez et placez des :conveyor: [accent]convoyeurs[] pour déplacer les resources minées par vos\nforeuses vers le noyau.\n\nRetenez pendant une seconde et faites glisser pour placer plusieurs convoyeurs.
gz.drills = Étendez vos exploitations minières.\nPlacez plus de Foreuses méchaniques.\nMinez 100 minerais de cuivre.
-gz.lead = \uf837 Le [accent]Plomb[] est un autre minerai assez utilisé en tant que ressource.\nConstruisez des foreuses pour miner du plomb.
-gz.moveup = \ue804 Déplacez-vous vers le haut pour la suite des objectifs.
-gz.turrets = Recherchez et placez 2 \uf861 [accent]Duos[] pour défendre votre noyau.\nLes Duos requierent du \uf838 cuivre en tant que [accent]munitions[] depuis des convoyeurs.
+gz.lead = :lead: Le [accent]Plomb[] est un autre minerai assez utilisé en tant que ressource.\nConstruisez des foreuses pour miner du plomb.
+gz.moveup = :up: Déplacez-vous vers le haut pour la suite des objectifs.
+gz.turrets = Recherchez et placez 2 :duo: [accent]Duos[] pour défendre votre noyau.\nLes Duos requierent du \uf838 cuivre en tant que [accent]munitions[] depuis des convoyeurs.
gz.duoammo = Rechargez vos Duos avec du [accent]cuivre[], en utilisant les convoyeurs.
-gz.walls = Les [accent]Murs[] peuvent empêcher les attaques ennemies d'atteindre vos constructions.\nPlacez des \uf8ae [accent]murs de cuivre[] autour de vos tourelles.
+gz.walls = Les [accent]Murs[] peuvent empêcher les attaques ennemies d'atteindre vos constructions.\nPlacez des :copper-wall: [accent]murs de cuivre[] autour de vos tourelles.
gz.defend = Ennemis en approche, préparez-vous à défendre.
-gz.aa = Les unités aériennes ne peuvent pas être facilement repoussées avec des tourelles standard.\n\uf860 Les [accent]Disperseurs[] sont d'excellentes tourelles anti-aériennes, mais requièrent du \uf837 [accent]plomb[] en tant que munition.
+gz.aa = Les unités aériennes ne peuvent pas être facilement repoussées avec des tourelles standard.\n:scatter: Les [accent]Disperseurs[] sont d'excellentes tourelles anti-aériennes, mais requièrent du :lead: [accent]plomb[] en tant que munition.
gz.scatterammo = Approvisionnez le Disperseur avec du [accent]plomb[] en utilisant des convoyeurs.
gz.supplyturret = [accent]Approvisionnez la tourelle
gz.zone1 = Ceci est la zone d'apparition ennemie.
@@ -2000,27 +2042,27 @@ gz.zone2 = Tout ce qui est construit dans le rayon est détruit lors du commence
gz.zone3 = Une vague va commencer maintenant.\nPréparez-vous.
gz.finish = Construisez plus de tourelles, minez plus de resources,\net défendez-vous contre toutes les vagues ennemies afin de [accent]capturer ce secteur[].
-onset.mine = Cliquez pour miner le \uf748 [accent]béryllium[] contenu dans les murs.\n\nUtilisez [accent][[ZQSD] pour bouger.
-onset.mine.mobile = Tapez pour miner le \uf748 [accent]béryllium[] contenu dans les murs.
-onset.research = Ouvrez \ue875 l'arbre technologique.\nRecherchez et placez un \uf73e [accent]condenseur à turbine[] sur l'évent.\nCela va générer de [accent]l'énergie[].
-onset.bore = Recherchez et placez une \uf741 [accent]foreuse à plasma[].\nElle va automatiquement miner les ressources contenues dans les murs.
-onset.power = Pour [accent]alimenter[] la foreuse à plasma, recherchez et placez un \uf73d [accent]transmetteur à rayons[].\nConnectez le condenseur à la foreuse.
-onset.ducts = Recherchez et placez des \uf799 [accent]conduits[] pour déplacer les ressources minées depuis la foreuse vers le noyau.\nCliquez et faites glisser pour placer plusieurs conduits.\n[accent]Scrollez[] pour les faire pivoter.
-onset.ducts.mobile = Recherchez et placez des \uf799 [accent]conduits[] pour déplacer les ressources minées depuis la foreuse vers le noyau.\n\nRetenez votre doigt pendant une seconde et déplacez-le pour placer plusieurs conduits.
+onset.mine = Cliquez pour miner le :beryllium: [accent]béryllium[] contenu dans les murs.\n\nUtilisez [accent][[ZQSD] pour bouger.
+onset.mine.mobile = Tapez pour miner le :beryllium: [accent]béryllium[] contenu dans les murs.
+onset.research = Ouvrez :tree: l'arbre technologique.\nRecherchez et placez un :turbine-condenser: [accent]condenseur à turbine[] sur l'évent.\nCela va générer de [accent]l'énergie[].
+onset.bore = Recherchez et placez une :plasma-bore: [accent]foreuse à plasma[].\nElle va automatiquement miner les ressources contenues dans les murs.
+onset.power = Pour [accent]alimenter[] la foreuse à plasma, recherchez et placez un :beam-node: [accent]transmetteur à rayons[].\nConnectez le condenseur à la foreuse.
+onset.ducts = Recherchez et placez des :duct: [accent]conduits[] pour déplacer les ressources minées depuis la foreuse vers le noyau.\nCliquez et faites glisser pour placer plusieurs conduits.\n[accent]Scrollez[] pour les faire pivoter.
+onset.ducts.mobile = Recherchez et placez des :duct: [accent]conduits[] pour déplacer les ressources minées depuis la foreuse vers le noyau.\n\nRetenez votre doigt pendant une seconde et déplacez-le pour placer plusieurs conduits.
onset.moremine = Étendez vos exploitations minières.\nPlacez plus de foreuses à plasma et utilisez des transmetteurs à rayons pour les relier.\nMinez 200 minerais de béryllium.
-onset.graphite = Les blocs plus complexes requièrent du \uf835 [accent]graphite[].\nPlacez quelques foreuses à plasma pour miner du graphite.
-onset.research2 = Commencez à rechercher des [accent]usines[].\nRecherchez le \uf74d [accent]broyeur de parois[] et le \uf779 [accent]four de silicium[].
-onset.arcfurnace = Le four de silicium a besoin de \uf834 [accent]sable[] et de \uf835 [accent]graphite[] pour créer du \uf82f [accent]silicium[].\nDe [accent]l'énergie[] est aussi requise.
-onset.crusher = Utilisez des \uf74d [accent]broyeurs de parois[] pour miner du sable.
-onset.fabricator = Utilisez des [accent]Unités[] pour explorer la carte, défendre vos constructions et attaquer l'ennemi. Recherchez et placez un \uf6a2 [accent]Fabricateur de Tanks[].
+onset.graphite = Les blocs plus complexes requièrent du :graphite: [accent]graphite[].\nPlacez quelques foreuses à plasma pour miner du graphite.
+onset.research2 = Commencez à rechercher des [accent]usines[].\nRecherchez le :cliff-crusher: [accent]broyeur de parois[] et le :silicon-arc-furnace: [accent]four de silicium[].
+onset.arcfurnace = Le four de silicium a besoin de :sand: [accent]sable[] et de :graphite: [accent]graphite[] pour créer du :silicon: [accent]silicium[].\nDe [accent]l'énergie[] est aussi requise.
+onset.crusher = Utilisez des :cliff-crusher: [accent]broyeurs de parois[] pour miner du sable.
+onset.fabricator = Utilisez des [accent]Unités[] pour explorer la carte, défendre vos constructions et attaquer l'ennemi. Recherchez et placez un :tank-fabricator: [accent]Fabricateur de Tanks[].
onset.makeunit = Produisez une unité.\nUtilisez le bouton "?" pour voir les ressources requises par le fabricateur.
-onset.turrets = Les unités sont efficaces, mais les [accent]tourelles[] ont de meilleures capacités défensives si elles sont bien utilisées.\nPlacez une tourelle \uf6eb [accent]brèche[].\nLes tourelles requièrent des [accent]munitions[] \uf748.
+onset.turrets = Les unités sont efficaces, mais les [accent]tourelles[] ont de meilleures capacités défensives si elles sont bien utilisées.\nPlacez une tourelle :breach: [accent]brèche[].\nLes tourelles requièrent des [accent]munitions[] :beryllium:.
onset.turretammo = Approvisionnez les tourelles avec du [accent]béryllium[].
-onset.walls = Les [accent]murs[] peuvent encaisser les dégâts des attaques ennemies avant qu'elles atteignent vos constructions.\nPlacez quelques \uf6ee [accent]murs de béryllium[] autour de la tourelle.
+onset.walls = Les [accent]murs[] peuvent encaisser les dégâts des attaques ennemies avant qu'elles atteignent vos constructions.\nPlacez quelques :beryllium-wall: [accent]murs de béryllium[] autour de la tourelle.
onset.enemies = Ennemis en approche, préparez-vous à défendre.
onset.defenses = [accent]Set up defenses:[lightgray] {0}
onset.attack = L'ennemi est vulnérable. Contre-attaquez !
-onset.cores = Les noyaux peuvent être placés sur des [accent]tuiles de noyau[].\nCes nouveaux noyaux servent à faire avancer votre base et partager vos ressources avec d'autres noyaux.\nPlacez un noyau \uf725.
+onset.cores = Les noyaux peuvent être placés sur des [accent]tuiles de noyau[].\nCes nouveaux noyaux servent à faire avancer votre base et partager vos ressources avec d'autres noyaux.\nPlacez un noyau :core-bastion:.
onset.detect = L'ennemi sera capable de vous détecter dans 2 minutes.\nAméliorez vos défenses, vos exploitations minières ainsi que votre production.
onset.commandmode = Retenez [accent]Maj-gauche[] pour entrer en [accent]Mode « Commande »[].\n[accent]Clic-gauche tout en bougeant la souris[] pour sélectionner des unités.\n[accent]Clic-droit[] pour ordonner aux unités sélectionnées de bouger ou attaquer.
onset.commandmode.mobile = Pressez le [accent]bouton de commande[] pour entrer en [accent]Mode « Commande »[].\nRetenez votre doigt, et [accent]bougez-le[] pour sélectionner des unités.\n[accent]Tapez[] pour ordonner aux unités sélectionnées de bouger ou attaquer.
@@ -2186,7 +2228,9 @@ block.vault.description = Stocke un grand nombre d'objets de chaque type. Utilis
block.container.description = Stocke un petit nombre d'objets de chaque type. Utilisez un déchargeur pour les récupérer.\nUtile pour réguler le flux d'objets quand la demande de matériaux est inconstante.
block.unloader.description = Permet de décharger l'objet choisi, depuis les blocs adjacents.
block.launch-pad.description = Permet de transférer des ressources vers les secteurs sélectionnés.
-block.launch-pad.details = Système suborbital pour le transport point à point de ressources. Les Charges utiles sont fragiles et incapables de survivre à la rentrée atmosphérique.
+block.advanced-launch-pad.description = Launches batches of items to selected sectors. Only accepts one item type at a time.
+block.advanced-launch-pad.details = Sub-orbital system for point-to-point transportation of resources.
+block.landing-pad.description = Receives items from launch pads in other sectors. Requires large amounts of water to protect against impacts of landings.
block.duo.description = Une petite tourelle à faible coût. Fonctionne bien contre les ennemis terrestres.
block.scatter.description = Une tourelle anti-aérienne essentielle. Mitraille les ennemis de débris de plomb, de ferraille ou de verre trempé.
block.scorch.description = Brûle les ennemis terrestres près de lui. Très efficace à courte portée.
@@ -2295,6 +2339,7 @@ block.unit-cargo-loader.description = Construit des drones cargo. Ces drones dis
block.unit-cargo-unload-point.description = Agit comme un point de déchargement pour les drones cargo. Accepte les objets qui correspondent au filtre sélectionné.
block.beam-node.description = Transmet l'énergie à d'autres blocs orthogonalement. Stocke une petite quantité d'énergie.
block.beam-tower.description = Transmet l'énergie à d'autres blocs orthogonalement. Stocke une grande quantité d'énergie. Longue portée.
+block.beam-link.description = Transmits power over vast distances.\nOnly capable of connecting to adjacent structures or other beam links.
block.turbine-condenser.description = Génère de l'énergie lorsqu'il est placé sur des évents. Produit une petite quantité d'eau.
block.chemical-combustion-chamber.description = Génère de l'énergie à partir d'arkycite et d'ozone.
block.pyrolysis-generator.description = Génère de grandes quantités d'énergie à partir d'arkycite et de scories. Produit de l'eau comme sous-produit.
@@ -2387,6 +2432,7 @@ unit.emanate.description = Construit des structures pour défendre le Noyau acro
lst.read = Lit un nombre depuis un bloc de mémoire relié au processeur.
lst.write = Écrit un nombre dans un bloc de mémoire relié au processeur.
lst.print = Ajoute du texte dans la mémoire tampon de l'imprimante.\nNe montrera aucun texte tant que [accent]Print Flush[] ne sera pas utilisé.
+lst.printchar = Add a UTF-16 character or content icon to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used.
lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example"
lst.draw = Ajoute une opération dans la mémoire tampon de dessin.\nNe montrera aucune image tant que [accent]Draw Flush[] ne sera pas utilisé.
lst.drawflush = Affiche les opérations [accent]Draw[] en file d'attente vers un écran.
@@ -2474,6 +2520,7 @@ lenum.shootp = Tire à une unité/bâtiment avec la prédiction de mouvement.
lenum.config = La configuration d'un bâtiment. Par exemple, l'objet sélectionné dans un trieur.
lenum.enabled = Retourne si le bloc est activé ou pas.
laccess.currentammotype = Current ammo item/liquid of a turret.
+laccess.memorycapacity = Number of cells in a memory block.
laccess.color = La couleur d'un illuminateur.
laccess.controller = Le contrôleur de l'Unité.\nSi l'Unité est contrôlée par un processeur, cela retournera le processeur en question.\nSi l'Unité est en formation, cela retournera le leader de la formation.\nSinon, renvoie l’unité elle-même.
@@ -2481,6 +2528,7 @@ laccess.dead = Retourne si l'Unité/Bâtiment est morte/détruit ou plus valide.
laccess.controlled = Retourne:\n[accent]@ctrlProcessor[] si le contrôleur de l'Unité est un processeur\n[accent]@ctrlPlayer[] si l'Unité/Bâtiment est contrôlé par un joueur\n[accent]@ctrlFormation[] si l'Unité est en formation\nSinon, retourne 0.
laccess.progress = Progression de l'action, 0 à 1.\nRenvoie la progression de la production, du rechargement de la tourelle ou de la construction.
laccess.speed = La vitesse maximale d'une unité, en blocs/sec.
+laccess.size = Size of a unit/building or the length of a string.
laccess.id = L'ID d'une unité/bloc/ressource/liquide.\nCeci est l'inverse de l'instruction de recherche.
lcategory.unknown = Inconnu
@@ -2626,3 +2674,29 @@ lenum.autoscale = Whether to scale marker corresponding to player's zoom level.
lenum.posi = Indexed position, used for line and quad markers with index zero being the first position.
lenum.uvi = Texture's position ranging from zero to one, used for quad markers.
lenum.colori = Indexed position, used for line and quad markers with index zero being the first color.
+lenum.wavetimer = Whether the waves come automatically on a timer. If not, waves come when the play button is pressed.
+lenum.wave = Current wave number. Can be anything in non-wave modes.
+lenum.currentwavetime = Wave countdown in ticks.
+lenum.waves = Whether waves are spawnable at all.
+lenum.wavesending = Whether the waves can be manually summoned with the play button.
+lenum.attackmode = Determines if gamemode is attack mode.
+lenum.wavespacing = Time between waves in ticks.
+lenum.enemycorebuildradius = No-build zone around enemy core radius.
+lenum.dropzoneradius = Radius around enemy wave drop zones.
+lenum.unitcap = Base unit cap. Can still be increased by blocks.
+lenum.lighting = Whether ambient lighting is enabled.
+lenum.buildspeed = Multiplier for building speed.
+lenum.unithealth = How much health units start with.
+lenum.unitbuildspeed = How fast unit factories build units.
+lenum.unitcost = Multiplier of resources that units take to build.
+lenum.unitdamage = How much damage units deal.
+lenum.blockhealth = How much health blocks start with.
+lenum.blockdamage = How much damage blocks (turrets) deal.
+lenum.rtsminweight = Minimum "advantage" needed for a squad to attack. Higher -> more cautious.
+lenum.rtsminsquad = Minimum size of attack squads.
+lenum.maparea = Playable map area. Anything outside the area will not be interactable.
+lenum.ambientlight = Ambient light color. Used when lighting is enabled.
+lenum.solarmultiplier = Multiplies power output of solar panels.
+lenum.dragmultiplier = Environment drag multiplier.
+lenum.ban = Blocks or units that cannot be placed or built.
+lenum.unban = Unban a unit or block.
diff --git a/core/assets/bundles/bundle_hu.properties b/core/assets/bundles/bundle_hu.properties
index b765d37661..44a2c17951 100644
--- a/core/assets/bundles/bundle_hu.properties
+++ b/core/assets/bundles/bundle_hu.properties
@@ -17,11 +17,11 @@ link.bug.description = Találtál egy szoftverhibát? Itt jelentheted
linkopen = Ez a kiszolgáló egy hivatkozást küldött. Biztosan megnyitod?\nAkár kártékony is lehet!\n\n[sky]{0}
linkfail = Nem sikerült megnyitni a hivatkozást!\nA webcím a vágólapra lett másolva.
screenshot = Képernyőkép mentve ide: {0}
-screenshot.invalid = Túl nagy a pálya, nincs elég memória a képernyőképhez.
+screenshot.invalid = A pálya túl nagy és nem áll rendelkezésre elegendő memória a képernyőkép elkészítéséhez.
gameover = A játéknak vége
gameover.disconnect = A kapcsolat megszakadt
gameover.pvp = A(z)[accent] {0}[] csapat nyert!
-gameover.waiting = [accent]Várakozás a következő pályára...
+gameover.waiting = [accent]Várakozás a következő pályára…
highscore = [accent]Új rekord!
copied = Másolva.
indev.notready = A játéknak ez a része még nincs kész
@@ -36,7 +36,7 @@ load.scripts = Parancsfájlok
be.update = Új Bleeding Edge verzió áll rendelkezésre:
be.update.confirm = Letöltöd és frissíted a játékot?\n\nAmint kész a frissítés, a játék automatikusan újraindul.
-be.updating = Frissítés...
+be.updating = Frissítés…
be.ignore = Most nem
be.noupdates = Nem található frissítés.
be.check = Frissítések keresése
@@ -55,12 +55,12 @@ mods.browser.sortdate = Rendezés dátum szerint
mods.browser.sortstars = Rendezés értékelés szerint
schematic = Vázlat
-schematic.add = Vázlat mentése...
+schematic.add = Vázlat mentése…
schematics = Vázlatok
-schematic.search = Vázlat keresése...
+schematic.search = Vázlat keresése…
schematic.replace = Már van ilyen nevű vázlat. Lecseréled?
schematic.exists = Már van ilyen nevű vázlat.
-schematic.import = Vázlat importálása...
+schematic.import = Vázlat importálása…
schematic.exportfile = Exportálás fájlba
schematic.importfile = Importálás fájlból
schematic.browseworkshop = Steam Műhely megtekintése
@@ -98,7 +98,7 @@ level.highscore = Legmagasabb pontszám: [accent]{0}
level.select = Szint kiválasztása
level.mode = Játékmód:
coreattack = < A támaszpont támadás alatt áll! >
-nearpoint = [[ [scarlet]AZONNAL HAGYD EL A LEDOBÁSI PONTOT![] ]\nA megsemmisülés fenyeget!
+nearpoint = [[ [scarlet]AZONNAL HAGYD EL A LEDOBÁSI PONTOT[] ]\nA megsemmisülés fenyeget
database = Támaszpont adatbázisa
database.button = Adatbázis
savegame = Játék mentése
@@ -118,7 +118,7 @@ save.quit = Mentés és kilépés
maps = Pályák
maps.browse = Pályák böngészése
continue = Folytatás
-maps.none = [lightgray]Nem található ilyen pálya!
+maps.none = [lightgray]Nem találhatók pályák!
invalid = Érvénytelen
pickcolor = Válassz színt
preparingconfig = Konfiguráció előkészítése
@@ -131,6 +131,7 @@ feature.unsupported = Ez az eszköz nem támogatja ezt a funkciót.
mods.initfailed = [red]⚠[] Az előző Mindustry példány előkészítése nem sikerült. Ezt valószínűleg egy rosszul működő mod okozta.\n\nAz ismételt összeomlások elkerülése érdekében [red]minden mod le lett tiltva.[]
mods = Modok
+mods.name = Mod neve:
mods.none = [lightgray]Nem találhatók modok!
mods.guide = Modkészítési útmutató
mods.report = Hiba jelentése
@@ -144,7 +145,7 @@ mod.enabled = [lightgray]Aktív
mod.disabled = [red]Inaktív
mod.multiplayer.compatible = [gray]Többjátékos kompatibilis
mod.disable = Letiltás
-mod.version = Version:
+mod.version = Verzió:
mod.content = Tartalom:
mod.delete.error = Nem lehet törölni a modot. Lehet, hogy egy másik folyamat használja.
@@ -156,9 +157,9 @@ mod.erroredcontent = [red]Hibás tartalom
mod.circulardependencies = [red]Körkörös függőségek
mod.incompletedependencies = [red]Hiányos függőségek
-mod.requiresversion.details = Szükséges játékverzió: [accent]{0}[]\nA játék ezen verziója elavult! A mod működéséhez újabb verzió szükséges (valószínűleg egy béta vagy alfa kiadás).
-mod.outdatedv7.details = Ez a mod nem kompatibilis a játék legújabb verziójával! A mod készítőjének frissítenie kell azt és hozzá kell adnia ezt a [accent]mod.json[] fájlhoz: [accent]minGameVersion: 136[].
-mod.blacklisted.details = Ez a mod automatikusan tiltólistára került, mert a játék összeomlott tőle, vagy más problémát okozott. Ne használd!
+mod.requiresversion.details = Szükséges játékverzió: [accent]{0}[]\nA játék ezen verziója elavult. A mod működéséhez újabb verzió szükséges (valószínűleg egy béta vagy alfa kiadás).
+mod.incompatiblemod.details = Ez a mod nem kompatibilis a játék legújabb verziójával. A mod készítőjének frissítenie kell azt és hozzá kell adnia a következőt a [accent]mod.json[] fájlhoz: [accent]minGameVersion: 147[].
+mod.blacklisted.details = Ezt a modot a Mindustry fejlesztői kézzel tiltólistára tették, mert a játék összeomlott tőle, vagy más problémát okozott. Ne használd.
mod.missingdependencies.details = Ez a mod függőségeket hiányol: {0}
mod.erroredcontent.details = Ez a mod hibákat okozott a betöltésnél. Kérd meg a mod készítőjét, hogy javítsa őket.
mod.circulardependencies.details = Ennek a modnak egymástól függő függőségei vannak.
@@ -168,7 +169,6 @@ mod.requiresversion = Szükséges játékverzió: [red]{0}[]
mod.errors = Hiba történt a tartalom betöltése közben.
mod.noerrorplay = [red]Hibákkal rendelkező modjaid vannak.[] Kapcsold ki, vagy javítsd ki őket a játék elindítása előtt.
-mod.nowdisabled = [red]A(z) „{0}” modnak nincs megfelelő függősége:[accent] {1}\n[lightgray]Ezeket előbb le kell tölteni.\nEz a mod automatikusan ki lesz kapcsolva.
mod.enable = Engedélyezés
mod.requiresrestart = A játék most kilép, hogy a módosítások érvénybe lépjenek a következő indításkor.
mod.reloadrequired = [red]Újraindítás szükséges
@@ -184,6 +184,16 @@ mod.preview.missing = Mielőtt közzéteszed ezt a modot a Steam Műhelyben, adj
mod.folder.missing = Csak mappa formában lehet feltölteni a Steam Műhelybe.\nAhhoz, hogy átalakítsd, ki kell bontanod a ZIP-fájlt egy mappába és le kell törölnöd a régit, majd indítsd újra a játékot, vagy töltsd újra a modokat.
mod.scripts.disable = Ez az eszköz nem támogatja a parancsfájlokkal rendelkező modokat.\nA játékhoz tiltsd le ezeket a modokat.
+mod.dependencies.error = [scarlet]A modoknak hiányzó függőségeik vannak
+mod.dependencies.soft = (nem kötelező)
+mod.dependencies.download = Importálás
+mod.dependencies.downloadreq = Importálás szükséges
+mod.dependencies.downloadall = Összes importálása
+mod.dependencies.status = Eredmények importálása
+mod.dependencies.success = Sikeresen letöltve:
+mod.dependencies.failure = Nem sikerült letölteni:
+mod.dependencies.imported = Ennek a modnak függőségei vannak. Letöltöd?
+
about.button = Névjegy
name = Név:
noname = Előbb válassz egy[accent] nevet[].
@@ -200,8 +210,8 @@ campaign.erekir = Újabb, csiszoltabb tartalom. Többnyire lineáris játékmene
campaign.serpulo = Régebbi tartalom. A klasszikus élmény. Nyíltabb végű, több tartalommal.\n\nPotenciálisan kiegyensúlyozatlan pályák és hadjárat. Kevésbé csiszolt.
campaign.difficulty = Nehézségi szint
completed = [accent]Kifejlesztve
-techtree = Technológia fa
-techtree.select = Technológia fa kiválasztása
+techtree = Technológiafa
+techtree.select = Technológiafa kiválasztása
techtree.serpulo = Serpulo
techtree.erekir = Erekir
research.load = Betöltés
@@ -214,11 +224,11 @@ players = {0} játékos
players.single = {0} játékos
players.search = Keresés
players.notfound = [gray]Nem található játékos
-server.closing = [accent]Kiszolgáló bezárása...
+server.closing = [accent]Kiszolgáló bezárása…
server.kicked.kick = Ki lettél rúgva a kiszolgálóról!
server.kicked.whitelist = Nem vagy az engedélyezési listán.
server.kicked.serverClose = A kiszolgáló be lett zárva.
-server.kicked.vote = Ki lettél szavazva. Viszlát!
+server.kicked.vote = Ki lettél szavazva. Viszlát.
server.kicked.clientOutdated = Elavult játékverziót használsz! Frissítsd a játékot!
server.kicked.serverOutdated = Elavult a kiszolgáló! Kérd meg a tulajdonost, hogy frissítse!
server.kicked.banned = Ki vagy tiltva erről a kiszolgálóról.
@@ -228,17 +238,17 @@ server.kicked.recentKick = Nemrég lettél kirúgva.\nVárj egy kicsit az újbó
server.kicked.nameInUse = Már van egy ilyen nevű játékos\nezen a kiszolgálón.
server.kicked.nameEmpty = A kiválasztott név érvénytelen.
server.kicked.idInUse = Már kapcsolódva vagy ehhez a kiszolgálóhoz! Nem lehet egyszerre két fiókot használni.
-server.kicked.customClient = Ez a kiszolgáló nem támogatja a saját készítésű játék-összeállításokat. Használj egy hivatalos változatot!
+server.kicked.customClient = Ez a kiszolgáló nem támogatja az egyéni készítésű játék-összeállításokat. Használj egy hivatalos változatot.
server.kicked.gameover = Vége a játéknak!
server.kicked.serverRestarting = Ez a kiszolgáló újraindul.
server.versions = A te játékverziód:[accent] {0}[]\nA kiszolgáló verziója:[accent] {1}[]
-host.info = A [accent]kiszolgáló indítása[] gomb egy kiszolgálót indít a [scarlet]6567-es[] porton.\nEzen a [lightgray]Wi-Fi-n vagy a helyi hálózaton[] bárki láthatja a kiszolgálót a kiszolgálólistán.\n\nHa azt szeretnéd, hogy bárki, aki ismeri az IP-címedet, bárhonnan kapcsolódhasson a kiszolgálódhoz, akkor a [accent]porttovábbítás[] beállítására lesz szükséged.\n\n[lightgray]Megjegyzés: ha problémáid vannak a LAN-játékhoz való kapcsolódással, győződj meg arról, hogy a tűzfal beállításaiban engedélyezted-e a Mindustry hozzáférését a helyi hálózathoz. Ne feledd, hogy a nyilvános hálózatok néha nem teszik lehetővé a kiszolgálók felderítését.
+host.info = A [accent]kiszolgáló indítása[] gomb egy kiszolgálót indít egy meghatározott porton.\nEzen a [lightgray]Wi-Fi-n vagy a helyi hálózaton[] bárki láthatja a kiszolgálót a kiszolgálólistán.\n\nHa azt szeretnéd, hogy bárki, aki ismeri az IP-címedet, bárhonnan kapcsolódhasson a kiszolgálódhoz, akkor a [accent]porttovábbítás[] beállítására lesz szükséged.\n\n[lightgray]Megjegyzés: ha problémáid vannak a LAN-játékhoz való kapcsolódással, győződj meg arról, hogy a tűzfal beállításaiban engedélyezted-e a Mindustry hozzáférését a helyi hálózathoz. Ne feledd, hogy a nyilvános hálózatok néha nem teszik lehetővé a kiszolgálók felderítését.
join.info = Itt megadhatod egy [accent]kiszolgáló IP-címét[] a kapcsolódáshoz, vagy felfedezhetsz [accent]helyi[] vagy [accent]globális[] kiszolgálókat.\nA LAN és WAN többjátékos mód is támogatott.\n\n[lightgray]Ha valakihez IP-cím alapján szeretnél kapcsolódni, akkor meg kell tudnod az IP-címét, amelyet például a „my ip” webes kereséssel találhatsz meg.
hostserver = Többjátékos játék
invitefriends = Barátok meghívása
hostserver.mobile = Többjátékos játék
host = Kiszolgáló nyitása
-hosting = [accent]Kiszolgáló megnyitása...
+hosting = [accent]Kiszolgáló megnyitása…
hosts.refresh = Frissítés
hosts.discovering = LAN játékok felderítése
hosts.discovering.any = Játékok felderítése
@@ -273,25 +283,25 @@ invalidid = Érvénytelen kliensazonosító (ID)! Küldj hibajelentést.
player.ban = Kitiltás
player.kick = Kirúgás
player.trace = Követés
-player.admin = Admin be/ki
+player.admin = Adminisztrátor be/ki
player.team = Csapatváltás
server.bans = Tiltólista
-server.bans.none = Nincsenek tiltott játékosok!
-server.admins = Adminok
-server.admins.none = Nem található admin!
+server.bans.none = Nem találhatók tiltott játékosok!
+server.admins = Adminisztrátorok
+server.admins.none = Nem találhatók adminisztrátorok!
server.add = Kiszolgáló hozzáadása
server.delete = Biztosan törlöd ezt a kiszolgálót?
server.edit = Kiszolgáló szerkesztése
server.outdated = [scarlet]Elavult kiszolgáló![]
server.outdated.client = [scarlet]Elavult kliens![]
server.version = [gray]v{0} {1}
-server.custombuild = [accent]Saját összeállítás
+server.custombuild = [accent]Egyéni összeállítás
confirmban = Biztosan kitiltod a(z) „{0}[white]” nevű játékost?
confirmkick = Biztosan kirúgod a(z) „{0}[white]” nevű játékost?
confirmunban = Biztosan újra engedélyezed ezt a játékost?
-confirmadmin = Biztosan előlépteted a(z) „{0}[white]” nevű játékost adminná?
-confirmunadmin = Biztosan meg akarod szüntetni a(z) „{0}[white]” nevű játékos adminisztrátori státuszát?
+confirmadmin = Biztosan előlépteted a(z) „{0}[white]” nevű játékost adminisztrátorrá?
+confirmunadmin = Biztosan meg akarod szüntetni a(z) „{0}[white]” nevű játékos adminisztrátori rangját?
votekick.reason = Kiszavazás oka
votekick.reason.message = Valóban ki akarod szavazni a(z) „{0}[white]” nevű játékost?\nHa igen, írd be az okát:
joingame.title = Kapcsolódás a játékhoz
@@ -301,19 +311,20 @@ disconnect.error = Kapcsolódási hiba.
disconnect.closed = Kapcsolat lezárva.
disconnect.timeout = Időtúllépés.
disconnect.data = Nem sikerült betölteni a világ adatait!
+disconnect.snapshottimeout = Időtúllépés történt az UDP-pillanatképek fogadása közben.\nEzt instabil hálózat vagy -kapcsolat okozhatja.
cantconnect = Nem sikerült kapcsolódni a(z) ([accent]{0}[]) játékhoz.
-connecting = [accent]Kapcsolódás...
-reconnecting = [accent]Újrakapcsolódás...
-connecting.data = [accent]Világadatok betöltése...
+connecting = [accent]Kapcsolódás…
+reconnecting = [accent]Újrakapcsolódás…
+connecting.data = [accent]Világadatok betöltése…
server.port = Port:
server.invalidport = Érvénytelen port!
-server.error.addressinuse = [scarlet]Nem sikerült megnyitni a kiszolgálót a 6567-es porton.[]\n\nGyőződj meg arról, hogy nem fut más Mindustry-kiszolgáló az eszközön vagy a hálózaton!
+server.error.addressinuse = [scarlet]Nem sikerült megnyitni a kiszolgálót a 6567-es porton.[]\n\nGyőződj meg arról, hogy nem fut más Mindustry kiszolgáló az eszközön vagy a hálózaton!
server.error = [scarlet]Kiszolgálóhiba.
save.new = Új mentés
save.overwrite = Biztosan felülírod\nezt a mentést?
save.nocampaign = A hadjáratból származó egyes mentési fájlok nem importálhatók.
overwrite = Felülírás
-save.none = Nem található mentés!
+save.none = Nem találhatók mentések!
savefail = Nem sikerült elmenteni a játékot!
save.delete.confirm = Biztosan törlöd ezt a mentést?
save.delete = Törlés
@@ -332,7 +343,7 @@ save.corrupted = A mentési fájl sérült vagy érvénytelen!
empty = <üres>
on = Be
off = Ki
-save.search = Keresés a mentett játékok között...
+save.search = Keresés a mentett játékok között…
save.autosave = Automatikus mentés: {0}
save.map = Pálya: {0}
save.wave = Hullám: {0}
@@ -373,7 +384,7 @@ back = Vissza
max = Max
objective = A pálya célja
crash.export = Az összeomlási napló exportálása
-crash.none = Nem található az összeomlási napló.
+crash.none = Nem találhatók az összeomlási naplók.
crash.exported = Az összeomlási napló exportálva.
data.export = Adatok exportálása
data.import = Adatok importálása
@@ -382,9 +393,9 @@ data.exported = Adatok exportálva.
data.invalid = Ezek érvénytelen játékadatok.
data.import.confirm = A külső adatok importálása felülírja[scarlet] minden[] jelenlegi játékadatodat.\n[accent]Ezt a műveletet nem lehet visszavonni![]\n\nAmint kész az importálás, a játék automatikusan kilép.
quit.confirm = Biztosan kilépsz?
-loading = [accent]Betöltés...
-downloading = [accent]Letöltés...
-saving = [accent]Mentés...
+loading = [accent]Betöltés…
+downloading = [accent]Letöltés…
+saving = [accent]Mentés…
respawn = [accent][[{0}][] az újraéledéshez
cancelbuilding = [accent][[{0}][] a tervrajz törléséhez
selectschematic = [accent][[{0}][] a kijelöléshez és másoláshoz
@@ -398,8 +409,8 @@ wave = [accent]{0}. hullám
wave.cap = [accent]{0}./{1} hullám
wave.waiting = [lightgray]A következő hullám elkezdődik: {0} mp múlva
wave.waveInProgress = [lightgray]Hullám folyamatban
-waiting = [lightgray]Várakozás...
-waiting.players = Várakozás a játékosokra...
+waiting = [lightgray]Várakozás…
+waiting.players = Várakozás a játékosokra…
wave.enemies = [lightgray]{0} ellenség maradt
wave.enemycores = [accent]{0}[lightgray] ellenséges támaszpont
wave.enemycore = [accent]{0}[lightgray] ellenséges támaszpont
@@ -413,21 +424,21 @@ custom = Egyéni
builtin = Beépített
map.delete.confirm = Biztosan törlöd ezt a pályát? Ezt a műveletet nem lehet visszavonni!
map.random = [accent]Véletlenszerű pálya
-map.nospawn = Ez a pálya nem rendelkezik támaszponttal, amellyel a játékos kezdhetne. Adj hozzá egy {0} támaszpontot a pályához a szerkesztőben.
-map.nospawn.pvp = Ezen a pályán nincs ellenséges támaszpont, amellyel egy játékos kezdhet. Adj hozzá egy [scarlet]nem narancssárga[] támaszpontot a pályához a szerkesztőben.
-map.nospawn.attack = Ezen a pályán nincs ellenséges támaszpont. Adj hozzá {0} támaszpontot ehhez a pályához a szerkesztőben.
+map.nospawn = Ezen a pályán nincs egyetlen támaszpont sem, amellyel a játékos kezdhet! Adj hozzá egy {0} támaszpontot a pályához a szerkesztőben.
+map.nospawn.pvp = Ezen a pályán nincs egyetlen ellenséges támaszpont sem, amellyel a játékos támadhat! Adj hozzá egy [scarlet]nem narancssárga[] támaszpontot a pályához a szerkesztőben.
+map.nospawn.attack = Ezen a pályán nincs egyetlen ellenséges támaszpont sem, amellyel a játékos támadhat! Adj hozzá {0} támaszpontot ehhez a pályához a szerkesztőben.
map.invalid = Hiba történt a pálya betöltésekor: sérült vagy érvénytelen fájl.
workshop.update = Elem frissítése
workshop.error = Hiba történt a Steam Műhely részleteinek lekérdezésekor: {0}
-map.publish.confirm = Biztosan közzéteszed ezt a pályát?\n\n[lightgray]Győződj meg arról, hogy elfogadtad a Steam Műhely EULA-t, különben a pályáid nem jelennek meg.
+map.publish.confirm = Biztosan közzéteszed ezt a pályát?\n\n[lightgray]Győződj meg arról, hogy elfogadtad a Steam Műhely EULA-t, máskülönben a pályáid nem jelennek meg!
workshop.menu = Válaszd ki, hogy mit szeretnél csinálni ezzel az elemmel.
workshop.info = Eleminformációk
changelog = Változáslista (nem kötelező):
updatedesc = Cím és leírás felülírása
eula = Steam EULA
missing = Ezt az elemet törölték vagy áthelyezték.\n[lightgray]A Steam Műhely adatai automatikusan le lettek választva.
-publishing = [accent]Közzététel...
-publish.confirm = Biztosan közzéteszed ezt az elemet?\n\n[lightgray]Győződj meg arról, hogy elfogadtad a Steam Műhely EULA-t, különben az elemeid nem jelennek meg!
+publishing = [accent]Közzététel…
+publish.confirm = Biztosan közzéteszed ezt az elemet?\n\n[lightgray]Győződj meg arról, hogy elfogadtad a Steam Műhely EULA-t, máskülönben az elemeid nem jelennek meg!
publish.error = Hiba az elem közzétételekor: {0}
steam.error = Nem sikerült előkészíteni a Steam szolgáltatásokat.\nHiba: {0}
@@ -450,7 +461,7 @@ editor.objectives = Célok
editor.locales = Helyi csomagok
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.
+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.
editor.worldprocessors.nospace = Nincs szabad hely egy világprocesszor elhelyezéséhez!\nKitöltötted a pályát struktúrákkal? Miért tetted ezt?
editor.worldprocessors.delete.confirm = Biztosan törölni akarod ezt a világprocesszort?\n\nHa falakkal van körülvéve, akkor egy környezeti fal fog a helyére kerülni.
editor.ingame = Szerkesztés a játékban
@@ -458,7 +469,7 @@ editor.playtest = Teszt a játékban
editor.publish.workshop = Közzététel a Steam Műhelyben
editor.newmap = Új pálya
editor.center = Ugrás középre
-editor.search = Pályák keresése...
+editor.search = Pályák keresése…
editor.filters = Pályák szűrése
editor.filters.mode = Játékmódok:
editor.filters.type = Pályatípus:
@@ -469,6 +480,7 @@ editor.shiftx = X eltolás
editor.shifty = Y eltolás
workshop = Steam Műhely
waves.title = Hullámok
+waves.team = Csapat
waves.remove = Eltávolítás
waves.every = minden
waves.waves = hullámonként
@@ -479,11 +491,11 @@ waves.to = -
waves.spawn = kezdőpont:
waves.spawn.all =
waves.spawn.select = Kezdőpont kiválasztása
-waves.spawn.none = [scarlet]nem találhatók kezdőpontok a pályán
+waves.spawn.none = [scarlet]Nem találhatók kezdőpontok a pályán
waves.max = egységkorlát
waves.guardian = Őrző
waves.preview = Előnézet
-waves.edit = Szerkesztés...
+waves.edit = Szerkesztés…
waves.random = Véletlenszerű
waves.copy = Másolás a vágólapra
waves.load = Betöltés a vágólapról
@@ -495,7 +507,7 @@ waves.sort.reverse = Rendezés visszafelé
waves.sort.begin = Kezdés
waves.sort.health = Élet
waves.sort.type = Típus
-waves.search = Hullám keresése...
+waves.search = Hullám keresése…
waves.filter = Egységszűrő
waves.units.hide = Összes elrejtése
waves.units.show = Összes megjelenítése
@@ -506,8 +518,8 @@ wavemode.totals = összesítés
wavemode.health = életpontok
all = Összes
-editor.default = [lightgray]
-details = Részletek...
+editor.default = [lightgray]
+details = Részletek…
edit = Szerkesztés
variables = Változók
logic.clear.confirm = Biztosan törölni akarod az összes kódot ebből a processzorból?
@@ -541,14 +553,14 @@ editor.saved = Mentve!
editor.save.noname = A pályádnak nincs neve! Állíts be egyet a „pályainformációk” menüben.
editor.save.overwrite = A pályád felülír egy beépített pályát! Válassz egy másik nevet a „pályainformációk” menüben.
editor.import.exists = [scarlet]Nem lehet importálni:[] Már létezik a(z) „{0}” nevű beépített pálya!
-editor.import = Importálás...
+editor.import = Importálás…
editor.importmap = Pálya importálása
editor.importmap.description = Létező pálya importálása
editor.importfile = Fájl importálása
editor.importfile.description = Egy külső pályafájl importálása
editor.importimage = Képfájl importálása
editor.importimage.description = Egy külső pályaképfájl importálása
-editor.export = Exportálás...
+editor.export = Exportálás…
editor.exportfile = Fájl exportálása
editor.exportfile.description = Exportálás egy pályafájlba
editor.exportimage = Domborzati kép exportálása
@@ -634,12 +646,12 @@ locales.applytoall = Változások alkalmazása az összes nyelvi csomagra
locales.addtoother = Hozzáadás más nyelvi csomagokhoz
locales.rollback = Visszaállítás az utoljára elfogadottra
locales.filter = Tulajdonságszűrő
-locales.searchname = Név keresése...
-locales.searchvalue = Érték keresése...
-locales.searchlocale = Nyelvi csomag keresése...
+locales.searchname = Név keresése…
+locales.searchvalue = Érték keresése…
+locales.searchlocale = Nyelvi csomag keresése…
locales.byname = Név szerint
locales.byvalue = Érték szerint
-locales.showcorrect = Azon tulajdonságok megjelenítése, amelyek mindenhol egyedi értékekkel rendelkeznek és jelen vannak minden nyelvi csomagban.
+locales.showcorrect = Azon tulajdonságok megjelenítése, amelyek mindenhol egyedi értékekkel rendelkeznek és jelen vannak minden nyelvi csomagban
locales.showmissing = Azon tulajdonságok megjelenítése, amelyek hiányoznak egyes nyelvi csomagokból
locales.showsame = Azon tulajdonságok megjelenítése, amelyek azonos értékekkel rendelkeznek különböző nyelvi csomagokban
locales.viewproperty = Megtekintés minden nyelvi csomagban
@@ -722,22 +734,26 @@ objective.destroycore = [accent]Semmisítsd meg az ellenséges támaszpontot
objective.command = [accent]Irányítsd az egységeket
objective.nuclearlaunch = [accent]⚠ Rakétakilövés észlelve: [lightgray]{0}
-announce.nuclearstrike = [red]⚠ BEÉRKEZŐ RAKÉTACSAPÁS ⚠\n[lightgray]Azonnal építs tartalék támaszpontokat!
+announce.nuclearstrike = [red]⚠ BEÉRKEZŐ RAKÉTACSAPÁS ⚠\n[lightgray]Azonnal építs tartalék támaszpontokat
loadout = Rakomány
resources = Nyersanyagok
resources.max = Maximum
bannedblocks = Tiltott épületek
+unbannedblocks = Újraengedélyezett épületek
objectives = Feladatok
bannedunits = Tiltott egységek
+unbannedunits = Újraengedélyezett egységek
bannedunits.whitelist = Tiltott egységek engedélyezése
bannedblocks.whitelist = Tiltott épületek engedélyezése
addall = Összes hozzáadása
launch.from = Kilövés a(z) [accent]{0} szektorból
launch.capacity = Nyersanyag-kapacitás a kilövéskor: [accent]{0}
launch.destination = Úti cél: {0}
+landing.sources = Forrásszektorok: [accent]{0}[]
+landing.import = Maximális összmennyiség: {0}[accent]{1}[lightgray]/perc
configure.invalid = A mennyiségnek 0 és {0} között kell lennie.
-add = Hozzáadás...
+add = Hozzáadás…
guardian = Őrző
connectfail = [scarlet]Kapcsolódási hiba:\n\n[accent]{0}
@@ -750,7 +766,7 @@ error.mapnotfound = A pályafájl nem található!
error.io = Internet I/O hiba.
error.any = Ismeretlen hálózati hiba.
error.bloom = A bloom hatás előkészítése nem sikerült.\nElőfordulhat, hogy az eszköz nem támogatja.
-error.moddex = A Mindustry nem tudja betölteni ezt a modot.\nAz eszközöd blokkolja a Java modok importálását az Android legújabb változásai miatt.\nNincs ismert megoldás erre a problémára.
+error.moddex = A Mindustry nem tudja betölteni ezt a modot.\nAz eszközöd blokkolja a Java modok importálását az Android legújabb változásai miatt.\nEz a hiba nem lesz javítva, mert nincs ismert megoldás erre a problémára.
weather.rain.name = Eső
weather.snowing.name = Hóesés
@@ -759,7 +775,7 @@ weather.sporestorm.name = Spóravihar
weather.fog.name = Köd
campaign.playtime = \uf129 [lightgray]Játékidő a szektorban: {0}
-campaign.complete = [accent]Gratulálunk!\n\nLegyőzted az ellenséget a(z) {0} bolygón.\n[lightgray]Meghódítottad az utolsó szektor is.
+campaign.complete = [accent]Gratulálunk.\n\nLegyőzted az ellenséget a(z) {0} bolygón.\n[lightgray]Meghódítottad az utolsó szektor is.
sectorlist = Szektorok
sectorlist.attacked = {0} támadás alatt
@@ -775,7 +791,9 @@ sectors.stored = Tárolt nyersanyagok:
sectors.resume = Folytatás
sectors.launch = Kilövés
sectors.select = Kiválasztás
+sectors.launchselect = Célállomás kiválasztása
sectors.nonelaunch = [lightgray]semmi (nap)
+sectors.redirect = Kilövőállások átirányítása
sectors.rename = Szektor átnevezése
sectors.enemybase = [scarlet]Ellenséges bázis
sectors.vulnerable = [scarlet]Sebezhető
@@ -809,6 +827,10 @@ difficulty.normal = Normál
difficulty.hard = Nehéz
difficulty.eradication = Irtózatos
+difficulty.enemyHealthMultiplier = Ellenség életereje: {0}
+difficulty.enemySpawnMultiplier = Ellenségek száma: {0}
+difficulty.waveTimeMultiplier = Hullámidőzítő: {0}
+difficulty.nomodifiers = [lightgray](Nincsenek módosítók)
planets = Bolygók
planet.serpulo.name = Serpulo
@@ -827,7 +849,7 @@ sector.overgrowth.name = Túlburjánzás
sector.tarFields.name = Kátránymezők
sector.saltFlats.name = Sós síkságok
sector.fungalPass.name = Gombahágó
-sector.biomassFacility.name = Biomassza szintetizáló létesítmény
+sector.biomassFacility.name = Biomassza-szintetizáló-létesítmény
sector.windsweptIslands.name = Szélfútta szigetek
sector.extractionOutpost.name = Kivonási helyőrség
sector.facility32m.name = 32M-es létesítmény
@@ -844,28 +866,28 @@ sector.weatheredChannels.name = Viharvert csatornák
sector.mycelialBastion.name = Micéliumbástya
sector.frontier.name = Frontvidék
-sector.groundZero.description = Az ideális helyszín, hogy ismét belekezdjünk. Alacsony ellenséges fenyegetés. Kevés nyersanyag.\nGyűjts annyi rezet és ólmot, amennyit csak tudsz.\nHaladj tovább.
-sector.frozenForest.description = Még itt, a hegyekhez közel is elterjedtek a spórák. A fagypont alatti hőmérséklet nem tudja örökké fogva tartani őket.\n\nFedezd fel az elektromosság erejét! Építs égetőerőműveket! Tanuld meg a foltozók használatát!
-sector.saltFlats.description = A sivatag peremén terülnek el a Sós síkságok. Kevés nyersanyag található errefelé.\n\nAz ellenség egy raktárkomplexumot létesített itt. Pusztítsd el a támaszpontjukat! Kő kövön ne maradjon!
-sector.craters.description = Víz gyűlt össze ebben a kráterben, amely régi háborúk emlékét őrzi. Szerezd vissza a területet. Gyűjts homokot! Olvassz üveget! Szivattyúzz vizet, hogy lehűtsd a fúróidat és lövegtornyaidat.
-sector.ruinousShores.description = A pusztaság mögött a partvonal húzódik. Valaha ezen a helyen egy partvédelmi rendszer állt. Nem sok minden maradt belőle. Csak a legalapvetőbb védelmi szerkezetek maradtak érintetlenül, minden más csak törmelék lett.\nFolytasd a terjeszkedést! Fedezd fel újra a technológiát!
-sector.stainedMountains.description = Mélyebben a szárazföldön fekszenek a hegyek, a spóráktól még érintetlenül.\nTermeld ki a bőséges titán készleteket a körzetben. Tanuld meg felhasználni!.\n\nAz ellenség itt nagyobb létszámban van jelen. Ne hagyj nekik időt, hogy a legerősebb egységeiket hadba állíthassák!
-sector.overgrowth.description = Ez a terület közelebb esik a spórák forrásához, a spórák már kinőtték.\nAz ellenség egy helyőrséget létesített itt. Építs Mace egységeket! Pusztítsd el a bázist!
-sector.tarFields.description = Egy olajtermelő övezet peremvidéke a hegyek és a sivatag között. Egy azon kevés szektorok közül, ahol még hasznosítható kátránykészletek találhatók.\nBár a terület elhagyatott, veszélyes ellenséges erők fészkelnek a közelben. Ne becsüld alá őket!\n\n[lightgray]Fedezd fel az olajfeldolgozási lehetőségeket, ha tudod!
-sector.desolateRift.description = Egy extrém veszélyes zóna. Nyersanyagokban gazdag, de szűkös a hely. Magas a kockázat. Építs szárazföldi és légvédelmet, amint csak tudsz. Ne tévesszen meg a hosszú szünet az ellenség támadásai között.
-sector.nuclearComplex.description = Egy néhai tóriumkitermelő és feldolgozó létesítmény, romokban.\n[lightgray]Fedezd fel a tóriumot és a sokrétű felhasználását!\n\nAz ellenség nagy létszámban van jelen, és folyamatosan megfigyelés alatt tartják a környéket.
-sector.fungalPass.description = Átmeneti terület a magas hegyek és a mélyebben fekvő, spórák uralta lapály között. Egy kisebb ellenséges megfigyelő állomás található itt.\nSemmisítsd meg!\nHasználj Dagger és Crawler egységeket! Pusztítsd el a két támaszpontot!
-sector.biomassFacility.description = A spórák származási helye. Ebben a létesítményben fejlesztették ki őket, és eredetileg itt is gyártották őket.\nFedezd fel az itt található technológiákat. Tenyészd ki a spórákat üzemanyag és műanyagok gyártásához.\n\n[lightgray]A létesítmény pusztulása nyomán a spórák elszabadultak és szétszóródtak a légkörben. A helyi ökoszisztémában semmi sem tudta felvenni a versenyt egy ennyire invazív életformával.
-sector.windsweptIslands.description = Távolabb, a partvonalon túl fekszik ez az elszigetelt szigetcsoport. A feljegyzések szerint egykor [accent]műanyagot[] gyártottak itt.\n\nVerd vissza az ellenség vízi egységeit! Állíts fel egy bázist a szigeteken! Fedezd fel az itt talált gyárakat!
+sector.groundZero.description = Az ideális helyszín, hogy ismét belekezdjünk. Alacsony ellenséges fenyegetés. Kevés nyersanyag.\nGyűjts annyi rezet és ólmot, amennyit csak tudsz.\nFolytasd a küldetést.
+sector.frozenForest.description = Még itt, a hegyekhez közel is elterjedtek a spórák. A fagypont alatti hőmérséklet nem tudja örökké fogva tartani őket.\n\nFedezd fel az elektromosság erejét. Építs égetőerőműveket. Tanuld meg, hogyan használd a foltozókat.
+sector.saltFlats.description = A sivatag peremén terülnek el a Sós síkságok. Kevés nyersanyag található errefelé.\n\nAz ellenség egy raktárkomplexumot létesített itt. Pusztítsd el a támaszpontjukat. Kő kövön ne maradjon.
+sector.craters.description = Víz gyűlt össze ebben a kráterben, amely régi háborúk emlékét őrzi. Szerezd vissza a területet. Gyűjts homokot. Olvassz üveget, és szivattyúzz vizet a fúróid és lövegtornyaid hűtéséhez.
+sector.ruinousShores.description = A pusztaság mögött a partvonal húzódik. Valaha ezen a helyen egy partvédelmi rendszer állt. Nem sok minden maradt belőle. Csak a legalapvetőbb védelmi szerkezetek maradtak érintetlenül, minden más csak törmelék lett.\nFolytasd a terjeszkedést. Fedezd fel újra a technológiát.
+sector.stainedMountains.description = Mélyebben a szárazföldön fekszenek a hegyek, a spóráktól még érintetlenül.\nTermeld ki a bőséges titán készleteket a körzetben. Tanuld meg felhasználni.\n\nAz ellenség itt nagyobb létszámban van jelen. Ne hagyj nekik időt, hogy a legerősebb egységeiket hadba állíthassák.
+sector.overgrowth.description = Ez a terület közelebb esik a spórák forrásához, a spórák már kinőtték.\nAz ellenség egy helyőrséget létesített itt. Építs Mace egységeket. Pusztítsd el a bázist.
+sector.tarFields.description = Egy olajtermelő övezet peremvidéke a hegyek és a sivatag határán. Egy azon kevés szektorok közül, ahol még hasznosítható kátránykészletek találhatók.\nBár a terület elhagyatott, veszélyes ellenséges erők fészkelnek a közelben. Ne becsüld alá őket.\n\n[lightgray]Fedezd fel az olajfeldolgozási lehetőségeket, ha tudod.
+sector.desolateRift.description = Ez egy rendkívül veszélyes zóna. Bár nyersanyagokban gazdag, kevés hely áll rendelkezésre. Magas a kockázat. Építs szárazföldi és légvédelmet, amint csak tudsz. Ne tévesszen meg a hosszú szünet az ellenség támadásai között.
+sector.nuclearComplex.description = Egy néhai tóriumkitermelő és feldolgozó létesítmény, romokban.\n[lightgray]Fedezd fel a tóriumot és a sokrétű felhasználását.\n\nAz ellenség nagy létszámban van jelen, és folyamatosan megfigyelés alatt tartják a környéket.
+sector.fungalPass.description = Átmeneti terület a magas hegyek és a mélyebben fekvő, spórák uralta lapály között. Egy kisebb ellenséges megfigyelő állomás található itt.\nSemmisítsd meg.\nHasználj Dagger és Crawler egységeket. Pusztítsd el a két támaszpontot.
+sector.biomassFacility.description = A spórák származási helye. Ebben a létesítményben fejlesztették ki őket, és eredetileg itt is gyártották őket.\nFedezd fel az itt található technológiákat. Tenyészd ki a spórákat, és használd őket tüzelőanyagok vagy műanyagok gyártásához.\n\n[lightgray]A létesítmény pusztulása nyomán a spórák elszabadultak és szétszóródtak a légkörben. A helyi ökoszisztémában semmi sem tudta felvenni a versenyt egy ennyire invazív életformával.
+sector.windsweptIslands.description = Távolabb, a partvonalon túl fekszik ez az elszigetelt szigetcsoport. A feljegyzések szerint egykor [accent]műanyagot[] gyártottak itt.\n\nVerd vissza az ellenség vízi egységeit. Állíts fel egy bázist a szigeteken. Fedezd fel az itt talált gyárakat.
sector.extractionOutpost.description = Egy távoli ellenséges támaszpont, amelyet az ellenség azért épített, hogy nyersanyagokat juttasson el más szektorokba.\n\nA szektorok közötti szállítási technológia elengedhetetlen a további hódításhoz. Pusztítsd el a bázist. Fejleszd ki a kilövőállást.
-sector.impact0078.description = Itt nyugszanak az ebbe a csillagrendszerbe érkező első csillagközi űrhajó maradványai.\n\nMents ki a romok alól mindent amit csak tudsz. Fedezd fel az épen maradt technológiákat.
-sector.planetaryTerminal.description = A végső célpont.\n\nEzen a vízparti bázison egy olyan építmény található, amely képes támaszpontokat kilőni a közeli bolygókra. Rendkívül jól őrzik.\n\nGyárts vízi egységeket! Ártalmatlanítsd az ellenséget, amilyen gyorsan csak tudod! Találd meg a kilövőszerkezetet!
+sector.impact0078.description = Itt nyugszanak az ebbe a csillagrendszerbe érkező első csillagközi űrhajó maradványai.\n\nMents ki mindent a romok alól, amit csak lehet. Fedezd fel az épségben maradt technológiákat.
+sector.planetaryTerminal.description = A végső célpont.\n\nEzen a vízparti bázison egy olyan építmény található, amely képes támaszpontokat kilőni a közeli bolygókra. Rendkívül jól őrzik.\n\nGyárts vízi egységeket, és semmisítsd meg az ellenséget a lehető leggyorsabban. Találd meg a kilövőszerkezetet.
sector.coastline.description = Ezen a helyen egy haditengerészeti egység technológiájának maradványait azonosították. Verd vissza az ellenséges támadásokat, foglald el ezt a szektort, és szerezd meg a technológiát.
sector.navalFortress.description = Az ellenség bázist létesített egy távoli, természetes erődítményes szigeten. Pusztítsd el ezt az előőrsöt. Szerezd meg a fejlett hadihajó-technológiájukat, és fejleszd ki te is.
sector.cruxscape.name = Zord vidék
sector.geothermalStronghold.name = Geotermikus erődítmény
-#A következő sorokat ne fordítsd le!
+#A következő sorokat ne fordítsd le
sector.facility32m.description = WIP, map submission by Stormride_R
sector.taintedWoods.description = WIP, map submission by Stormride_R
sector.atolls.description = WIP, map submission by Stormride_R
@@ -938,7 +960,7 @@ settings.controls = Irányítás
settings.game = Játék
settings.sound = Hangok
settings.graphics = Grafika
-settings.cleardata = Játékadatok törlése...
+settings.cleardata = Játékadatok törlése…
settings.clear.confirm = Biztosan törlöd ezeket az adatokat?\nEzt a műveletet nem lehet visszavonni!
settings.clearall.confirm = [scarlet]FIGYELEM![]\nEz törli az összes adatot, beleértve a mentéseket, pályákat, felfedezéseket és a billentyűbeállításokat.\nAz „OK” gomb megnyomásával a játék minden adatot töröl, és automatikusan kilép.
settings.clearsaves.confirm = Biztosan törlöd az összes mentést?
@@ -965,7 +987,7 @@ stat.showinmap =
stat.description = Rendeltetés
stat.input = Bemenet
stat.output = Kimenet
-stat.maxefficiency = Maximális hatékonyság
+stat.maxefficiency = Maximális hatásfok
stat.booster = Erősítő
stat.tiles = Szükséges talaj
stat.affinities = Módosító körülmények
@@ -1042,6 +1064,7 @@ stat.buildspeedmultiplier = Építési sebességszorzó
stat.reactive = Reakciók
stat.immunities = Immunitások
stat.healing = Gyógyulás
+stat.efficiency = [stat]{0}% Hatásfok
ability.forcefield = Erőpajzs
ability.forcefield.description = Olyan erőpajzsot vetít ki, amely elnyeli a lövedékeket
@@ -1087,8 +1110,9 @@ ability.stat.minspeed = [stat]{0} mező/mp[lightgray] min. sebesség
ability.stat.duration = [stat]{0} mp[lightgray] időtartam
ability.stat.buildtime = [stat]{0} mp[lightgray] építési idő
-bar.onlycoredeposit = Nyersanyagtárolás csak a támaszpontban.
+bar.onlycoredeposit = Nyersanyagtárolás csak a támaszpontban
bar.drilltierreq = Erősebb fúró szükséges
+bar.nobatterypower = Alacsony akkumulátor-töltöttség
bar.noresources = Hiányzó nyersanyagok
bar.corereq = Támaszpont szükséges
bar.corefloor = Támaszpont-zónamező szükséges
@@ -1097,6 +1121,7 @@ bar.drillspeed = Termelés: {0}/mp
bar.pumpspeed = Termelés: {0}/mp
bar.efficiency = Hatásfok: {0}%
bar.boost = Erősítés: +{0}%
+bar.powerbuffer = Akkumulátorok: {0}/{1}
bar.powerbalance = Áram: {0}/mp
bar.powerstored = Eltárolva: {0}/{1}
bar.poweramount = Kapacitás: {0}
@@ -1107,6 +1132,7 @@ bar.capacity = Tárhely: {0}
bar.unitcap = {0} {1}/{2}
bar.liquid = Folyadék
bar.heat = Hő
+bar.cooldown = Lehűlés
bar.instability = Instabilitás
bar.heatamount = Hő: {0}
bar.heatpercent = Hő: {0} ({1}%)
@@ -1131,6 +1157,7 @@ bullet.interval = [stat]{0}/mp[lightgray] gyakoriságú lövedékek:
bullet.frags = [stat]{0}[lightgray]db repeszlövedék:
bullet.lightning = [stat]{0}[lightgray]db villámcsapás ~[stat]{1}[lightgray] sebzés
bullet.buildingdamage = [stat]{0}%[lightgray] épületsebzés
+bullet.shielddamage = [stat]{0}%[lightgray] pajzssebzés
bullet.knockback = [stat]{0}[lightgray] hátralökés
bullet.pierce = [stat]{0}[lightgray]x átütő erő
bullet.infinitepierce = [stat]átütő erő
@@ -1139,8 +1166,8 @@ bullet.healamount = [stat]{0}[lightgray] közvetlen javítás
bullet.multiplier = [stat]{0}[lightgray] lőszer/nyersanyag
bullet.reload = [stat]{0}%[lightgray] tüzelési sebesség
bullet.range = [stat]{0}[lightgray] mezős hatótávolság
-bullet.notargetsmissiles = [stat] ignores buildings
-bullet.notargetsbuildings = [stat] ignores missiles
+bullet.notargetsmissiles = [stat] Nem veszi célba a rakétákat
+bullet.notargetsbuildings = [stat] Nem veszi célba az épületeket
unit.blocks = blokk
unit.blockssquared = blokk²
@@ -1157,6 +1184,7 @@ unit.minutes = perc
unit.persecond = /mp
unit.perminute = /perc
unit.timesspeed = x sebesség
+unit.multiplier = x
unit.percent = %
unit.shieldhealth = erőpajzs életereje
unit.items = nyersanyag
@@ -1175,7 +1203,7 @@ category.function = Funkció
category.optional = Lehetséges fejlesztések
setting.alwaysmusic.name = Folyamatos zenelejátszás
setting.alwaysmusic.description = Amikor engedélyezve van, akkor a zene folyamatosan szól a játékban.\nHa ki van kapcsolva, akkor csak véletlenszerű időközönként szólal meg.
-setting.skipcoreanimation.name = Támaszpont kilövés/leszállás animáció kihagyása
+setting.skipcoreanimation.name = Támaszpont animácójának kihagyása kilövéskor és leszálláskor
setting.landscape.name = Fekvő mód zárolása
setting.shadows.name = Árnyékok
setting.blockreplace.name = Automatikus blokkjavaslatok
@@ -1233,11 +1261,13 @@ setting.mutemusic.name = Zene némítása
setting.sfxvol.name = Hanghatások hangereje
setting.mutesound.name = Hang némítása
setting.crashreport.name = Névtelen összeomlási jelentések
+setting.communityservers.name = Közösségi kiszolgálók listájának lekérdezése
setting.savecreate.name = Automatikus mentés
setting.steampublichost.name = Nyilvános játék láthatósága
setting.playerlimit.name = Játékoskorlát
setting.chatopacity.name = Csevegő átlátszatlansága
setting.lasersopacity.name = Villanyvezeték átlátszatlansága
+setting.unitlaseropacity.name = Egység bányászósugarának átlátszatlansága
setting.bridgeopacity.name = Híd átlátszatlansága
setting.playerchat.name = Játékosok csevegőbuborékainak megjelenítése
setting.showweather.name = Időjárás-grafika megjelenítése
@@ -1245,9 +1275,12 @@ setting.hidedisplays.name = Logikai kijelzők elrejtése
setting.macnotch.name = A felület igazítása a kijelző bevágásához
setting.macnotch.description = A változtatások érvénybe lépéséhez újraindítás szükséges
steam.friendsonly = Csak barátok
-steam.friendsonly.tooltip = Csak a Steam-barátok tudnak kapcsolódni a játékodhoz.\nHa nem jelölöd be ezt a négyzetet, a játékod nyilvános lesz – bárki kapcsolódhat hozzá.
+steam.friendsonly.tooltip = Független attól, hogy csak a Steam-barátok tudnak-e kapcsolódni a játékodhoz.\nHa nem jelölöd be ezt a négyzetet, a játékod nyilvános lesz – bárki kapcsolódhat hozzá.
+setting.maxmagnificationmultiplierpercent.name = Minimális kameratávolság
+setting.minmagnificationmultiplierpercent.name = Maximális kameratávolság
+setting.minmagnificationmultiplierpercent.description = A magas értékek teljesítményproblémákat okozhatnak.
public.beta = Ne feledd, hogy a játék béta verziójában nem tudsz nyilvános szobát nyitni.
-uiscale.reset = A felület mérete megváltozott.\nAz „OK” gombbal megerősítheted ezt a méretet.\n[scarlet]Automatikus visszavonás és kilépés [accent] {0}[] másodperc múlva...
+uiscale.reset = A felület mérete megváltozott.\nAz „OK” gombbal megerősítheted ezt a méretet.\n[scarlet]Automatikus visszavonás és kilépés [accent] {0}[] másodperc múlva…
uiscale.cancel = Mégse és kilépés
setting.bloom.name = Bloom
keybind.title = Billentyűk átállítása
@@ -1261,8 +1294,8 @@ placement.blockselectkeys = \n[lightgray]Kulcs: [{0},
keybind.respawn.name = Újraéledés
keybind.control.name = Egység irányítása
keybind.clear_building.name = Épület törlése
-keybind.press = Nyomj meg egy gombot...
-keybind.press.axis = Nyomj meg egy kart vagy gombot...
+keybind.press = Nyomj meg egy gombot…
+keybind.press.axis = Nyomj meg egy kart vagy gombot…
keybind.screenshot.name = Pálya képernyőképe
keybind.toggle_power_lines.name = Villanyvezetékek be/ki
keybind.toggle_block_status.name = Blokkállapotok be/ki
@@ -1329,11 +1362,12 @@ keybind.shoot.name = Lövés
keybind.zoom.name = Nagyítás
keybind.menu.name = Menü
keybind.pause.name = Szünet
+keybind.skip_wave.name = Hullám kihagyása
keybind.pause_building.name = Építés szüneteltetése/folytatása
keybind.minimap.name = Minitérkép
keybind.planet_map.name = Bolygótérkép
keybind.research.name = Fejlesztés
-keybind.block_info.name = Blokk infó
+keybind.block_info.name = Blokkinformáció
keybind.chat.name = Csevegés
keybind.player_list.name = Játékosok listája
keybind.console.name = Konzol
@@ -1361,7 +1395,7 @@ mode.custom = Egyéni szabályok
rules.invaliddata = Érvénytelen adatok vannak a vágólapon.
rules.hidebannedblocks = Tiltott épületek elrejtése
rules.infiniteresources = Végtelen nyersanyagforrás
-rules.onlydepositcore = Csak a támaszpontok elhelyezése engedélyezett
+rules.onlydepositcore = Csak a támaszpontokba engedélyezett a nyersanyagok elhelyezése
rules.derelictrepair = Az elhagyatott épületek javításának engedélyezése
rules.reactorexplosions = Reaktorrobbanások
rules.coreincinerates = Többletnyersanyagok megsemmisítése a támaszpontban
@@ -1396,12 +1430,14 @@ rules.unitcostmultiplier = Egység költségszorzója
rules.unithealthmultiplier = Egység életpontszorzója
rules.unitdamagemultiplier = Egység sebzésszorzója
rules.unitcrashdamagemultiplier = Egység ütközési sebzésszorzója
+rules.unitminespeedmultiplier = Egység bányászási sebességszorzója
rules.solarmultiplier = Napenergia szorzója
rules.unitcapvariable = A támaszpontok befolyásolják a gyártható egységek darabszámát
rules.unitpayloadsexplode = A szállított rakományok az egységgel együtt felrobbannak
rules.unitcap = Alap egységdarabszám
rules.limitarea = Játékterület korlátozása
-rules.enemycorebuildradius = Ellenséges támaszpont körüli tiltott zóna sugara:[lightgray] (mező)
+rules.enemycorebuildradius = Ellenséges támaszpont körüli tiltott építkezési zóna sugara:[lightgray] (mező)
+rules.extracorebuildradius = Tiltott építkezési zóna sugarának további mérete:[lightgray] (mező)
rules.wavespacing = A hullámok közötti szünetek ideje:[lightgray] (mp)
rules.initialwavespacing = Az első hullám előtti szünet ideje:[lightgray] (mp)
rules.buildcostmultiplier = Építési költség szorzója
@@ -1424,12 +1460,15 @@ rules.title.planet = Bolygó
rules.lighting = Világítás
rules.fog = A háború köde
rules.invasions = Ellenséges szektorokból érkező inváziók
+rules.legacylaunchpads = Hagyományos kilövőállás-mechanizmus
+rules.legacylaunchpads.info = Lehetővé teszi a kilövőállások használatát landolóállások nélkül, mint a v7.0-ban.
+landingpad.legacy.disabled = [scarlet]\ue815 Letiltva[lightgray] (Hagyományos kilövőállás engedélyezve)
rules.showspawns = Ellenséges kezdőpontok megjelenítése a minitérképen
rules.randomwaveai = Kiszámíthatatlan ellenséges támadások (MI)
rules.fire = Tűz
rules.anyenv =
rules.explosions = Épület/egység robbanási sebzése
-rules.ambientlight = Háttérvilágítás
+rules.ambientlight = Környezeti\nvilágítás
rules.weather = Időjárás
rules.weather.frequency = Gyakoriság:
rules.weather.always = Mindig
@@ -1716,14 +1755,14 @@ block.repair-point.name = Javítási pont
block.repair-turret.name = Javítótorony
block.pulse-conduit.name = Impulzus-csővezeték
block.plated-conduit.name = Lemezelt csővezeték
-block.phase-conduit.name = Tóritkvarc-csővezeték
+block.phase-conduit.name = Tóritkvarc csővezeték
block.liquid-router.name = Folyadékelosztó
block.liquid-tank.name = Folyadéktartály
block.liquid-container.name = Folyadéktározó
block.liquid-junction.name = Csővezeték-átkötés
block.bridge-conduit.name = Csővezetékhíd
block.rotary-pump.name = Fogaskerekes szivattyú
-block.thorium-reactor.name = Tóriumerőmű
+block.thorium-reactor.name = Tórium erőmű
block.mass-driver.name = Tömegmozgató
block.blast-drill.name = Légrobbanásos fúró
block.impulse-pump.name = Impulzusszivattyú
@@ -1744,7 +1783,10 @@ block.spectre.name = Spectre
block.meltdown.name = Meltdown
block.foreshadow.name = Foreshadow
block.container.name = Konténer
-block.launch-pad.name = Kilövőállás
+block.launch-pad.name = Kilövőállás [lightgray](Hagyományos)
+block.advanced-launch-pad.name = Kilövőállás
+block.landing-pad.name = Landolóállás
+
block.segment.name = Segment
block.ground-factory.name = Földiegységgyár
block.air-factory.name = Repülőgépgyár
@@ -1802,6 +1844,8 @@ block.arkyic-vent.name = Arkicites kürtő
block.yellow-stone-vent.name = Sárgakő-kürtő
block.red-stone-vent.name = Vöröskő-kürtő
block.crystalline-vent.name = Kristályos kürtő
+block.stone-vent.name = Kőkürtő
+block.basalt-vent.name = Bazaltkürtő
block.redmat.name = Vörös padló
block.bluemat.name = Kék padló
block.core-zone.name = Támaszpontzóna
@@ -1812,7 +1856,7 @@ block.carbon-wall.name = Szénfal
block.ferric-stone-wall.name = Vasaskő-fal
block.beryllic-stone-wall.name = Berilliumoskő-fal
block.arkyic-wall.name = Arkicites fal
-block.crystalline-stone-wall.name = Kristályos kőfal
+block.crystalline-stone-wall.name = Kristályoskő-fal
block.red-ice-wall.name = Vörösjég-fal
block.red-stone-wall.name = Vöröskő-fal
block.red-diamond-wall.name = Vörösgyémánt-fal
@@ -1841,7 +1885,7 @@ block.electric-heater.name = Elektromos fűtőtest
block.slag-heater.name = Salakos fűtőtest
block.phase-heater.name = Tóritkvarcos fűtőtest
block.heat-redirector.name = Hőelvezető
-block.small-heat-redirector.name = Small Heat Redirector
+block.small-heat-redirector.name = Kis hőelvezető
block.heat-router.name = Hőelosztó
block.slag-incinerator.name = Salakos égetőkamra
block.carbide-crucible.name = Karbidolvasztó
@@ -1870,8 +1914,8 @@ block.armored-duct.name = Páncélozott szállítószalag
block.overflow-duct.name = Túlcsorduló kapu
block.underflow-duct.name = Alulcsorduló kapu
block.duct-unloader.name = Szállítószalag-kirakodó
-block.surge-conveyor.name = Elektrometál-szállítószalag
-block.surge-router.name = Elektrometál-elosztó
+block.surge-conveyor.name = Elektrometál szállítószalag
+block.surge-router.name = Elektrometál elosztó
block.unit-cargo-loader.name = Egységrakomány-berakodó
block.unit-cargo-unload-point.name = Egységrakomány-kirakodó pont
block.reinforced-pump.name = Megerősített szivattyú
@@ -1883,15 +1927,15 @@ block.reinforced-liquid-container.name = Megerősített folyadéktározó
block.reinforced-liquid-tank.name = Megerősített folyadéktartály
block.beam-node.name = Sugárcsomópont
block.beam-tower.name = Sugártorony
-block.beam-link.name = Sugárhálózat
+block.beam-link.name = Sugárpilon
block.turbine-condenser.name = Kondenzációs turbina
block.chemical-combustion-chamber.name = Kémiai égetőkamra
block.pyrolysis-generator.name = Pirolízis-erőmű
block.vent-condenser.name = Vízleválasztó
block.cliff-crusher.name = Sziklazúzó
-block.large-cliff-crusher.name = Advanced Cliff Crusher
+block.large-cliff-crusher.name = Fejlett sziklazúzó
block.plasma-bore.name = Plazmafúró
-block.large-plasma-bore.name = Nagy plazmafúró
+block.large-plasma-bore.name = Fejlett plazmafúró
block.impact-drill.name = Ütvefúró
block.eruption-drill.name = Kitöréses fúró
block.core-bastion.name = Bástya
@@ -1943,7 +1987,7 @@ block.memory-bank.name = Memóriabank
team.malis.name = Lila
team.crux.name = Piros
team.sharded.name = Narancssárga
-team.derelict.name = Szürke
+team.derelict.name = Szürke (elhagyatott)
team.green.name = Zöld
team.blue.name = Kék
@@ -1956,82 +2000,82 @@ hint.respawn = Ahhoz, hogy drónként újraéledj, nyomd meg a [accent][[V][] go
hint.respawn.mobile = Átvetted az irányítást egy egység vagy épület felett. Ahhoz, hogy drónként újraéledj, [accent]koppints a profilképre a bal felső sarokban.[]
hint.desktopPause = Nyomd meg a [accent][[szóközt][] a játék szüneteltetéséhez vagy folytatásához.
hint.breaking = [accent]Jobb egérgombbal[] és húzással lebonthatod a blokkokat.
-hint.breaking.mobile = Használd a jobb alsó sarokban lévő \ue817 [accent]kalapács[] gombot a blokkok törléséhez.\n\nTartsd lenyomva az ujjad és húzd, hogy nagyobb területet tudj kijelölni.
-hint.blockInfo = Egy blokk információinak megtekintéséhez válaszd ki az épületet az [accent]építési menüben[], majd válaszd a [accent][[?][] gomb jobb oldalt.
+hint.breaking.mobile = Használd a jobb alsó sarokban lévő :hammer: [accent]kalapács[] gombot a blokkok törléséhez.\n\nTartsd lenyomva az ujjad és húzd, hogy nagyobb területet tudj kijelölni.
+hint.blockInfo = Egy blokk építési költségeinek, bemeneti nyersanyagainak és statisztikáinak megtekintéséhez válaszd ki az épületet az [accent]építési menüben[], majd használd a jobb oldalon megjelenő [accent][[?][] gombot.
hint.derelict = Az [accent]elhagyatott[] szerkezetek régi bázisok maradványai, amelyek már nem működnek.\n\nEzeket az épületeket le lehet [accent]bontani[] nyersanyagokért, vagy meg is lehet javítani őket.
-hint.research = Használd a \ue875 [accent]technológia fa[] gombot, hogy új technológiákat fedezz fel.
-hint.research.mobile = Használd a \ue875 [accent]technológia fa[] gombot a \ue88c [accent]menüben[], hogy új technológiákat fedezz fel.
+hint.research = Használd a :tree: [accent]technológiafa[] gombot, hogy új technológiákat fedezz fel.
+hint.research.mobile = Használd a :tree: [accent]technológiafa[] gombot a :menu: [accent]menüben[], hogy új technológiákat fedezz fel.
hint.unitControl = Nyomd le a [accent][[bal Ctrl][] gombot, és kattints [accent]jobb egérgombbal[] a baráti egység vagy lövegtorony irányításához.
hint.unitControl.mobile = [accent][[Dupla koppintással][] a szövetséges egységek vagy lövegtornyok kézileg irányíthatók.
-hint.unitSelectControl = Az egységek irányításához lépj be [accent]parancs módba[] a [accent]bal shift[] lenyomva tartásával.\nParancs módban az egységek kijelöléséhez kattints, és húzd az egeret. A [accent]jobb egérgombbal[] küldd az egységeket a helyszínre vagy a célponthoz.
+hint.unitSelectControl = Az egységek irányításához lépj be [accent]parancs módba[] a [accent]bal Shift[] lenyomva tartásával.\nParancs módban az egységek kijelöléséhez kattints, és húzd az egeret. A [accent]jobb egérgombbal[] küldd az egységeket a helyszínre vagy a célponthoz.
hint.unitSelectControl.mobile = Az egységek irányításához lépj be [accent]parancs módba[] a bal alsó sarokban lévő [accent]parancs[] gombbal.\nParancs módban az egységek kiválasztásához érintsd meg a kijelzőt és húzással jelöld ki az egységeket. Koppintással küldd az egységeket a helyszínre vagy a célponthoz.
hint.launch = Ha elegendő nyersanyagot gyűjtöttél össze, akkor [accent]lődd ki[] a támaszpontot a következő szektorba, úgy, hogy megnyitod a \ue827 [accent]bolygótérképet[] a jobb alsó sarokban, és átforgatod az új helyszínre.
-hint.launch.mobile = Ha elegendő nyersanyagot gyűjtöttél össze, akkor [accent]lődd ki[] a támaszpontot egy közeli szektorba, úgy, hogy kiválasztasz egy szektort a \ue88c [accent]menüben[] a \ue827 [accent]bolygótérképről[].
-hint.schematicSelect = Tartsd nyomja az [accent][[F][] gombot több épület kijelöléséhez és másolásához.\n\n[accent][[Középső kattintással][] egy adott blokktípus másolható.
-hint.rebuildSelect = Tartsd nyomva a [accent][[B][] gombot és húzással jelöld ki a megsemmisített blokkterveket.\nEz automatikusan újraépíti őket.
-hint.rebuildSelect.mobile = Válaszd a \ue874 másolás gombot, majd koppints az \ue80f újraépítés gombra, és húzd a megsemmisült blokktervek kijelöléséhez.\nEz automatikusan újraépíti őket.
-hint.conveyorPathfind = Tartsd nyomva a [accent][[bal ctrl][] gombot a szállítószalagok lerakása közben, hogy a játék útvonalat állítson elő.
-hint.conveyorPathfind.mobile = Engedélyezd az \ue844 [accent]átlós módot[], és tegyél le egyszerre több szállítószalagot, hogy a játék útvonalat állítson elő.
-hint.boost = Tartsd nyomva a [accent][[bal shift][] gombot, hogy átrepülj az akadályok felett.\n\nErre csak néhány földi egység képes.
+hint.launch.mobile = Ha elegendő nyersanyagot gyűjtöttél össze, akkor [accent]lődd ki[] a támaszpontot egy közeli szektorba, úgy, hogy kiválasztasz egy szektort a :menu: [accent]menüben[] a \ue827 [accent]bolygótérképről[].
+hint.schematicSelect = Tartsd lenyomva az [accent][[F][] gombot több épület kijelöléséhez és másolásához.\n\n[accent][[Középső kattintással][] egy adott blokktípus másolható.
+hint.rebuildSelect = Tartsd lenyomva a [accent][[B][] gombot, majd húzással jelöld ki a megsemmisített blokkterveket.\nEz automatikusan újraépíti őket.
+hint.rebuildSelect.mobile = Válaszd a :copy: másolás gombot, majd koppints az :wrench: újraépítés gombra, és húzd a megsemmisült blokktervek kijelöléséhez.\nEz automatikusan újraépíti őket.
+hint.conveyorPathfind = Tartsd lenyomva a [accent][[bal Ctrl][] gombot a szállítószalagok lerakása közben, hogy a játék útvonalat állítson elő.
+hint.conveyorPathfind.mobile = Engedélyezd az :diagonal: [accent]átlós módot[], és tegyél le egyszerre több szállítószalagot, hogy a játék útvonalat állítson elő.
+hint.boost = Tartsd lenyomva a [accent][[bal Shift][] gombot, hogy átrepülj az akadályok felett.\n\nErre csak néhány földi egység képes.
hint.payloadPickup = Nyomd meg a [accent][[[] gombot a kis blokkok vagy egységek felemeléséhez.
hint.payloadPickup.mobile = [accent]Koppints és tartsd lenyomva az ujjad[] egy kis blokk vagy egység felemeléséhez.
hint.payloadDrop = Nyomd le a [accent]][] gombot a rakomány lerakásához.
hint.payloadDrop.mobile = [accent]Koppints és tartsd lenyomva az ujjad[] egy üres területen a rakomány lerakásához.
hint.waveFire = A vizet lőszerként használó [accent]Wave[] lövegtornyok automatikusan eloltják a közeli tüzeket.
-hint.generator = Az \uf879 [accent]égetőerőmű[] szenet éget, és áramot ad át a vele érintkező épületeknek.\n\nAz áramszállítás távolsága további \uf87f [accent]villanyoszlopokkal[] növelhető.
-hint.guardian = Az [accent]őrzők[] páncélozottak. A gyenge lövedékek, mint a [accent]réz[] vagy az [accent]ólom[] [scarlet]nem hatásosak[] az Őrző páncéljával szemben.\n\nHasználj magasabb szintű lövegtornyokat, vagy juttass \uf835 [accent]grafitot[] a \uf861 Duo / \uf859 Salvo lövegtornyokba, hogy leszedd az őrzőket.
-hint.coreUpgrade = A támaszpont úgy fejleszthető, hogy [accent]magasabb szintű támaszpontot teszel rá[].\n\nHelyezz egy \uf868 [accent]Alapítvány[] támaszpontot a \uf869 [accent]Szilánk[] támaszpontra. Figyelj rá, hogy ne legyenek az új támaszpont területén épületek.
+hint.generator = Az :combustion-generator: [accent]égetőerőmű[] szenet éget, és áramot ad át a vele érintkező épületeknek.\n\nAz áramszállítás távolsága további \uf87f [accent]villanyoszlopokkal[] növelhető.
+hint.guardian = Az [accent]őrzők[] páncélozottak. A gyenge lövedékek, mint a [accent]réz[] vagy az [accent]ólom[] [scarlet]nem hatásosak[] az Őrző páncéljával szemben.\n\nHasználj magasabb szintű lövegtornyokat, vagy juttass :graphite: [accent]grafitot[] a :duo: Duo / \uf859 Salvo lövegtornyokba, hogy leszedd az őrzőket.
+hint.coreUpgrade = A támaszpont úgy fejleszthető, hogy [accent]magasabb szintű támaszpontot teszel rá[].\n\nHelyezz egy :core-foundation: [accent]alapítvány[] támaszpontot a \uf869 [accent]szilánk[] támaszpontra. Figyelj rá, hogy ne legyenek az új támaszpont területén épületek.
hint.presetLaunch = A szürke [accent]landolási zónát tartalmazó szektorokba[], amilyen például a [accent]Fagyott erdő[], bárhonnan kilőhetsz. Nem szükséges hozzá szomszédos területet elfoglalnod.\n\nA [accent]számozott szektorokat[], mint ez is, a játékmenet szempontjából [accent]nem fontos[] elfoglalni.
hint.presetDifficulty = Ebben a szektorban [scarlet]magas az ellenséges fenyegetettségi szint[].\nAz ilyen szektorokba való indulás [accent]nem ajánlott[] megfelelő technológia és felkészülés nélkül.
hint.coreIncinerate = Ha a támaszpont egy nyersanyagból elérte a maximumot, a beérkező további nyersanyagok azonnal [accent]megsemmisítésre kerülnek[].
hint.factoryControl = Egy egységgyár [accent]kimeneti célpontjának[] beállításához kattints parancs módban egy gyárépületre, majd kattints jobb egérgombbal egy helyre.\nAz előállított egységek automatikusan odamennek.
hint.factoryControl.mobile = Egy egységgyár [accent]kimeneti célpontjának[] beállításához koppints parancs módban egy gyárépületre, majd koppints egy helyre.\nAz előállított egységek automatikusan odamennek.
-gz.mine = Menj a földön lévő \uf8c4 [accent]rézérc[] közelébe, és kattints a bányászat megkezdéséhez.
-gz.mine.mobile = Menj a földön lévő \uf8c4 [accent]rézérc[] közelébe, és koppints a bányászat megkezdéséhez.
-gz.research = Nyisd meg a \ue875 Technológia fát.\nFejleszd ki a \uf870 [accent]mechanikus fúrót[], majd válaszd ki a jobb alsó sarokban lévő \ue85e menüből.\nKattints egy rézfoltra az elhelyezéséhez.
-gz.research.mobile = Nyisd meg a \ue875 Technológia fát.\nFejleszd ki a \uf870 [accent]mechanikus fúrót[], majd válaszd ki a jobb alsó sarokban lévő \ue85e menüből.\nKattints egy rézfoltra az elhelyezéséhez.\n\nA megerősítéshez nyomd meg a jobb alsó sarokban lévő \ue800 [accent]pipát[].
-gz.conveyors = Fejleszd ki, és építs \uf896 [accent]szállítsszalagokat[], hogy a kitermelt\nnyersanyagokat eljuttasd a fúróktól a támaszpontba.\n\nKattints és húzd az egeret, hogy több szállítószalagot helyezz el.\nHasználd a [accent]görgőt[] a forgatáshoz.
-gz.conveyors.mobile = Fejleszd ki, és építs \uf896 [accent]Szállítószalagokat[], hogy a kitermelt\nnyersanyagokat eljuttasd a fúróktól a támaszpontba.\n\nTartsd lenyomva az ujjad és húzd el, hogy több szállítószalagot helyezz el.
+gz.mine = Menj a földön lévő :ore-copper: [accent]rézérc[] közelébe, és kattints a bányászat megkezdéséhez.
+gz.mine.mobile = Menj a földön lévő :ore-copper: [accent]rézérc[] közelébe, és koppints a bányászat megkezdéséhez.
+gz.research = Nyisd meg a :tree: Technológiafát.\nFejleszd ki a :mechanical-drill: [accent]mechanikus fúrót[], majd válaszd ki a jobb alsó sarokban lévő \ue85e menüből.\nKattints egy rézfoltra az elhelyezéséhez.
+gz.research.mobile = Nyisd meg a :tree: Technológiafát.\nFejleszd ki a :mechanical-drill: [accent]mechanikus fúrót[], majd válaszd ki a jobb alsó sarokban lévő \ue85e menüből.\nKattints egy rézfoltra az elhelyezéséhez.\n\nA megerősítéshez nyomd meg a jobb alsó sarokban lévő \ue800 [accent]pipát[].
+gz.conveyors = Fejleszd ki, és építs :conveyor: [accent]szállítószalagokat[], hogy a kitermelt\nnyersanyagokat eljuttasd a fúróktól a támaszpontba.\n\nKattints és húzd az egeret, hogy több szállítószalagot helyezz el.\nHasználd a [accent]görgőt[] a forgatáshoz.
+gz.conveyors.mobile = Fejleszd ki, és építs :conveyor: [accent]szállítószalagokat[], hogy a kitermelt\nnyersanyagokat eljuttasd a fúróktól a támaszpontba.\n\nTartsd lenyomva az ujjad, majd húzd el, hogy több szállítószalagot helyezz el.
gz.drills = Bővítsd a bányászati kapacitást.\nÉpíts több mechanikus fúrót.\nBányássz 100 rezet.
-gz.lead = Az \uf837 [accent]ólom[] egy másik gyakran használt nyersanyag.\nÉpíts fúrókat az ólom kitermelésére.
-gz.moveup = \ue804 Menj tovább a további utasításokért.
-gz.turrets = Fejleszd ki, és építs két \uf861 [accent]Duo[] lövegtornyot, hogy megvédd a támaszpontot.\nA Duo lövegtornyoknak \uf838 [accent]lőszerre[] van szükségük, amelyet szállítószalaggal juttathatsz el hozzájuk.
+gz.lead = Az :lead: [accent]ólom[] egy másik gyakran használt nyersanyag.\nÉpíts fúrókat az ólom kitermelésére.
+gz.moveup = :up: Fedezd fel a szektort, hogy megtaláld a küldetés további utasításait.
+gz.turrets = Fejleszd ki, és építs két :duo: [accent]Duo[] lövegtornyot, hogy megvédd a támaszpontot.\nA Duo lövegtornyoknak :copper: [accent]lőszerre[] van szükségük, amelyet szállítószalaggal juttathatsz el hozzájuk.
gz.duoammo = Szállítószalagok segítségével lásd el [accent]rézzel[] a Duo lövegtornyokat.
-gz.walls = A [accent]falak[] megakadályozhatják, hogy az épületekben károk keletkezzenek.\nÉpíts \uf8ae [accent]Rézfalakat[] a lövegtornyok köré.
+gz.walls = A [accent]falak[] megakadályozhatják, hogy az épületekben károk keletkezzenek.\nÉpíts :copper-wall: [accent]rézfalakat[] a lövegtornyok köré.
gz.defend = Az ellenség közeledik, készülj fel a védekezésre.
-gz.aa = A légi egységeket nem lehet könnyen elintézni a hagyományos lövegtornyokkal.\nA \uf860 [accent]Scatter[] lövegtornyok kiváló légelhárítást biztosítanak, de lőszerként \uf837 [accent]ólomra[] van szükségük.
-gz.scatterammo = Szállítószalagok segítségével lásd el \uf837 [accent]ólommal[] a Scatter lövegtornyokat.
+gz.aa = A légi egységeket nem lehet könnyen elintézni a hagyományos lövegtornyokkal.\nA :scatter: [accent]Scatter[] lövegtornyok kiváló légelhárítást biztosítanak, de lőszerként :lead: [accent]ólomra[] van szükségük.
+gz.scatterammo = Szállítószalagok segítségével lásd el :lead: [accent]ólommal[] a Scatter lövegtornyokat.
gz.supplyturret = [accent]Lövegtorony ellátása
gz.zone1 = Ez az ellenség leszállóhelye.
gz.zone2 = Bármi, ami a hatósugarában épült, elpusztul, amikor egy hullám elindul.
-gz.zone3 = Egy hullám most kezdődik.\nKészülj fel!
+gz.zone3 = Egy hullám most kezdődik.\nKészülj fel.
gz.finish = Építs több lövegtornyot, bányássz több nyersanyagot,\nés védekezz az ellenséges hullámok ellen, hogy [accent]elfoglald a szektort[].
-onset.mine = Kattints bal egérgombbal a \uf748 [accent]berillium[] kibányászáshoz a falakból.\n\nA mozgáshoz használd a [accent][[WASD] gombokat.
-onset.mine.mobile = Koppints a \uf748 [accent]berillium[] kibányászáshoz a falakból.
-onset.research = Nyisd meg a \ue875 Technológia fát.\nFejleszd ki, és építs egy \uf73e [accent]kondenzációs turbinát[] a kürtőn.\nEz [accent]áramot[] fog termelni.
-onset.bore = Fejleszd ki, és építs egy \uf741 [accent]plazmafúrót[].\nEz automatikusan bányássza ki a nyersanyagokat a falakból.
-onset.power = Ahhoz, hogy [accent]árammal[] lásd el a plazmafúrót, fejleszd ki, és helyezz el egy \uf73d [accent]sugárcsomópontot[].\nSegítségükkel összekötheted a kondenzációs turbinát a plazmafúróval.
-onset.ducts = Fejleszd ki, és építs \uf799 [accent]szállítószalagot[], hogy a kitermelt nyersanyagokat eljuttasd a plazmafúrótól a támaszpontba.\nKattints, és húzd az egeret több szállítószalag elhelyezéséhez.\nHasználd a [accent]görgőt[] a forgatáshoz.
-onset.ducts.mobile = Fejleszd ki, és építs \uf799 [accent]szállítószalagot[], hogy a kitermelt nyersanyagokat eljuttasd a plazmafúrótól a támaszpontba.\n\nTartsd lenyomva az ujjad és húzd el, hogy több szállítószalagot helyezz el.
+onset.mine = Kattints bal egérgombbal a :beryllium: [accent]berillium[] kibányászáshoz a falakból.\n\nA mozgáshoz használd a [accent][[WASD] gombokat.
+onset.mine.mobile = Koppints a :beryllium: [accent]berillium[] kibányászáshoz a falakból.
+onset.research = Nyisd meg a :tree: Technológiafát.\nFejleszd ki, és építs egy :turbine-condenser: [accent]kondenzációs turbinát[] a kürtőn.\nEz [accent]áramot[] fog termelni.
+onset.bore = Fejleszd ki, és építs egy :plasma-bore: [accent]plazmafúrót[].\nEz automatikusan bányássza ki a nyersanyagokat a falakból.
+onset.power = Ahhoz, hogy [accent]árammal[] lásd el a plazmafúrót, fejleszd ki, és helyezz el egy :beam-node: [accent]sugárcsomópontot[].\nSegítségükkel összekötheted a kondenzációs turbinát a plazmafúróval.
+onset.ducts = Fejleszd ki, és építs :duct: [accent]szállítószalagot[], hogy a kitermelt nyersanyagokat eljuttasd a plazmafúrótól a támaszpontba.\nKattints, és húzd az egeret több szállítószalag elhelyezéséhez.\nHasználd a [accent]görgőt[] a forgatáshoz.
+onset.ducts.mobile = Fejleszd ki, és építs :duct: [accent]szállítószalagot[], hogy a kitermelt nyersanyagokat eljuttasd a plazmafúrótól a támaszpontba.\n\nTartsd lenyomva az ujjad, majd húzd el, hogy több szállítószalagot helyezz el.
onset.moremine = Bővítsd a bányászati kapacitást.\nHelyezz el több plazmavágót, és a támogatásukhoz használj sugárcsomópontokat és szállítószalagokat.\nBányássz 200 berilliumot.
-onset.graphite = Az összetettebb épületekhez \uf835 [accent]grafit[] szükséges.\nÉpíts plazmavágókat a grafit kibányászásához.
-onset.research2 = Kezdd el a [accent]gyárak[] fejlesztését.\nFejleszd ki a \uf74d [accent]sziklazúzót[] és a \uf779 [accent]szilícium-ívkemencét[].
-onset.arcfurnace = A szilícium-ívkemencének \uf834 [accent]homokra[] és \uf835 [accent]grafitra[] van szüksége, hogy \uf82f [accent]szilíciumot[] gyártson.\nTovábbá [accent]áram[] is szükséges a működéséhez.
-onset.crusher = Használj \uf74d [accent]sziklazúzókat[], hogy homokot bányássz.
-onset.fabricator = Használd az [accent]egységeket[], hogy felfedezd a pályát, megvédd az épületeket, és megtámadhasd velük az ellenséget. Fejleszd ki, és helyezz el egy \uf6a2 [accent]tankgyártót[].
+onset.graphite = Az összetettebb épületekhez :graphite: [accent]grafit[] szükséges.\nÉpíts plazmavágókat a grafit kibányászásához.
+onset.research2 = Kezdd el a [accent]gyárak[] fejlesztését.\nFejleszd ki a :cliff-crusher: [accent]sziklazúzót[] és a :silicon-arc-furnace: [accent]szilícium-ívkemencét[].
+onset.arcfurnace = A szilícium-ívkemencének :sand: [accent]homokra[] és :graphite: [accent]grafitra[] van szüksége, hogy :silicon: [accent]szilíciumot[] gyártson.\nTovábbá [accent]áram[] is szükséges a működéséhez.
+onset.crusher = Használj :cliff-crusher: [accent]sziklazúzókat[], hogy homokot bányássz.
+onset.fabricator = Használd az [accent]egységeket[], hogy felfedezd a pályát, megvédd az épületeket, és megtámadhasd velük az ellenséget. Fejleszd ki, és helyezz el egy :tank-fabricator: [accent]tankgyártót[].
onset.makeunit = Állíts elő egy egységet.\nHasználd a „?” gombot, hogy megnézd a kiválasztott gyár követelményeit.
-onset.turrets = Az egységek hatékonyak, de hatásosan alkalmazva a [accent]lövegtornyok[] jobb védelmi képességeket biztosítanak.\nHelyezz el egy \uf6eb [accent]Breach[] lövegtornyot.\nA lövegtornyoknak \uf748 [accent]lőszerre[] van szüksége.
-onset.turretammo = Szállítótalagok használatával lásd el a lövegtornyokat [accent]berillium[] lőszerrel.
-onset.walls = A [accent]falak[] megakadályozhatják, hogy az épületekben károk keletkezzenek.\nÉpíts \uf6ee [accent]berilliumfalakat[] a lövegtornyok körül.
+onset.turrets = Az egységek hatékonyak, de hatásosan alkalmazva a [accent]lövegtornyok[] jobb védelmi képességeket biztosítanak.\nHelyezz el egy :breach: [accent]Breach[] lövegtornyot.\nA lövegtornyoknak :beryllium: [accent]lőszerre[] van szükségük.
+onset.turretammo = Szállítószalagok használatával lásd el a lövegtornyokat [accent]berillium[] lőszerrel.
+onset.walls = A [accent]falak[] megakadályozhatják, hogy az épületekben károk keletkezzenek.\nÉpíts :beryllium-wall: [accent]berilliumfalakat[] a lövegtornyok körül.
onset.enemies = Az ellenség közeledik, készülj fel a védekezésre.
onset.defenses = [accent]Állíts fel védelmet:[lightgray] {0}
-onset.attack = Az ellenség most sebezhető. Indíts ellentámadást!
-onset.cores = Új támaszpont csak a [accent]támaszpontmezőre[] helyezhető.\nAz új támaszpontok előretolt bázisként működnek, és megosztják a nyersanyagkészletüket más támaszpontokkal.\nHelyezz el egy \uf725 támaszpontot.
+onset.attack = Az ellenség most sebezhető. Indíts ellentámadást.
+onset.cores = Új támaszpont csak a [accent]támaszpontmezőre[] helyezhető.\nAz új támaszpontok előretolt bázisként működnek, és megosztják a nyersanyagkészletüket más támaszpontokkal.\nHelyezz el egy :core-bastion: bástya támaszpontot.
onset.detect = Az ellenség 2 percen belül észrevesz téged.\nÁllíts fel védelmet, bányászatot és termelést.
-onset.commandmode = Tartsd nyomva a [accent]shift[] gombot, hogy [accent]parancs módba[] lépj.\n[accent]Bal egérgombbal és húzással[] lehet egységeket kijelölni.\n[accent]Jobb egérgombbal[] az egységek mozgásra vagy támadásra utasíthatók.
-onset.commandmode.mobile = Nyomd meg a [accent]parancs gombot[], hogy [accent]parancs módba[] lépj.\nTartsd nyomva az ujjad, majd [accent]húzd[] az egységek kiválasztásához.\n[accent]Koppintással[] az egységek mozgásra vagy támadásra utasíthatók.
+onset.commandmode = Tartsd lenyomva a [accent]bal Shift[] gombot, hogy [accent]parancs módba[] lépj.\n[accent]Bal egérgombbal és húzással[] lehet egységeket kijelölni.\n[accent]Jobb egérgombbal[] az egységek mozgásra vagy támadásra utasíthatók.
+onset.commandmode.mobile = Nyomd meg a [accent]parancs gombot[], hogy [accent]parancs módba[] lépj.\nTartsd lenyomva az ujjad, majd [accent]húzd[] az egységek kiválasztásához.\n[accent]Koppintással[] az egységek mozgásra vagy támadásra utasíthatók.
aegis.tungsten = Volfrámot [accent]ütvefúróval[] lehet bányászni.\nEnnek az épületnek [accent]vízre[] és [accent]áramra[] van szüksége.
split.pickup = Egyes blokkok a támaszpont drónjával is felvehetők.\nVedd fel ezt a [accent]konténert[] és helyezd egy [accent]rakománycsomagolóba[].\n(A felvétel és lerakás alapértelmezett gombjai: [[ és ].)
@@ -2051,7 +2095,7 @@ item.coal.description = Tüzelőanyagként és finomított nyersanyagok gyártá
item.coal.details = Fosszilizálódott növényi anyagnak tűnik, jóval a „spóra incidens” előttről.
item.titanium.description = Folyadékszállító épületekben, fúrókban és gyárakban használatos.
item.thorium.description = Strapabíró szerkezetekben használatos nukleáris fűtőanyag.
-item.scrap.description = Olvasztókban és porítókban használatos már nyersanyagok finomításához.
+item.scrap.description = Olvasztókban és porítókban használatos más nyersanyagok finomításához.
item.scrap.details = Ősi építmények és egységek hátrahagyott maradványai.
item.silicon.description = Napelemekben, összetett áramkörökben és nyomkövető lőszerekben használatos.
item.plastanium.description = Fejlett egységek alapanyagaként, hőszigetelésben és repeszlövedékekben használatos.
@@ -2075,7 +2119,7 @@ liquid.cryofluid.description = Reaktorokban, lövegtornyokban és gyárakban has
#Erekir
liquid.arkycite.description = Kémiai reakciókban használatos energiatermelésre és anyagszintézisre.
-liquid.ozone.description = Az anyaggyártásban oxidálószerként, illetve üzemanyagként használatos. Mérsékelten robbanékony.
+liquid.ozone.description = Tüzelőanyagként és oxidálószerként használják a nyersanyaggyártásban. Mérsékelten robbanékony.
liquid.hydrogen.description = A nyersanyagok kitermelésében, egységgyártásban és szerkezetjavításban használatos. Gyúlékony.
liquid.cyanogen.description = Lőszerként, fejlett egységek építéséhez és különböző reakciókhoz használatos a fejlett blokkokban. Erősen gyúlékony.
liquid.nitrogen.description = A nyersanyagok kitermelésénél, gáztermelésnél és egységgyártásnál is használatos. Semleges gáz.
@@ -2130,9 +2174,9 @@ block.scrap-wall-huge.description = Megvédi az épületeket az ellenséges löv
block.scrap-wall-gigantic.description = Megvédi az épületeket az ellenséges lövedékektől.
block.door.description = Nyitható és zárható fal.
block.door-large.description = Nyitható és zárható fal.
-block.mender.description = Időnként javítja a közeli épületeket.\nSzilíciummal növelhető a hatósugara és hatékonysága.
-block.mend-projector.description = Javítja a közeli épületeket.\nTóritkvarccal növelhető a hatósugara és hatékonysága.
-block.overdrive-projector.description = Megöveli a környező épületek termelési sebességét.\nTóritkvarccal növelhető a hatósugara és hatékonysága.
+block.mender.description = Időnként javítja a közeli épületeket.\nSzilíciummal növelhető a hatósugara és hatásfoka.
+block.mend-projector.description = Javítja a közeli épületeket.\nTóritkvarccal növelhető a hatósugara és hatásfoka.
+block.overdrive-projector.description = Megnöveli a környező épületek termelési sebességét.\nTóritkvarccal növelhető a hatósugara és hatásfoka.
block.force-projector.description = Hatszögletű erőpajzsot hoz létre maga körül, amely megvédi a benne lévő épületeket és egységeket a sérüléstől.\nTúlmelegszik, ha túl sok sérülést szenved. Hűtőfolyadék használatával megakadályozható a túlmelegedés. A tóritkvarc megnöveli az erőpajzs méretét.
block.shock-mine.description = Elektromos kisülést hoz létre, ha ellenséggel érintkezik.
block.conveyor.description = Nyersanyagokat szállít.
@@ -2145,7 +2189,7 @@ block.sorter.description = Csak a kiválasztott nyersanyagot engedi tovább egye
block.inverted-sorter.description = Hasonló a szokásos válogatóhoz, de a kiválasztott nyersanyagot oldalra adja ki.
block.router.description = Egyenletesen háromfelé osztja szét a beérkező nyersanyagokat.
block.router.details = Egy szükséges rossz. Nem ajánlott termelőegységek mellett használni, mert a kimenet eltömíti.
-block.distributor.description = Egyenletesen hétfelé osztja szét a beérkező nyersanyagokat.
+block.distributor.description = Egyenletesen, hétfelé osztja szét a beérkező nyersanyagokat.
block.overflow-gate.description = Csak akkor ad ki nyersanyagot oldalra, ha előrefelé már nem tud.
block.underflow-gate.description = A túlcsorduló kapu ellentettje. Csak akkor ad ki nyersanyagot előrefelé, ha oldalra már nem tud.
block.mass-driver.description = Nagy hatótávolságú nyersanyagszállító eszköz. Rakományokat gyűjt össze, és átlövi egy másik, hozzákapcsolt tömegmozgatónak.
@@ -2167,7 +2211,7 @@ block.surge-tower.description = Hosszútávú villanyoszlop, kevesebb elérhető
block.diode.description = Az eltárolt áramot egy irányba engedi át, de csak akkor, ha a fogadó oldalon kevesebb van tárolva.
block.battery.description = Áramot tárol el, ha túltermelés van. Leadja az áramot, ha hiány van.
block.battery-large.description = Áramot tárol el, ha túltermelés van. Leadja az áramot, ha hiány van. Nagyobb kapacitású a szokásos akkumulátornál.
-block.combustion-generator.description = Áramot termel éghető anyagok, például szén, elégetésével.
+block.combustion-generator.description = Áramot termel éghető anyagok, például a szén elégetésével.
block.thermal-generator.description = Forró környezetben áramot termel.
block.steam-generator.description = Éghető anyagok elégetésével és víz gőzzé alakításával áramot termel.
block.differential-generator.description = Nagy mennyiségű áramot termel. A hűtőfolyadék és az égő piratit hőmérséklet-különbségét használja ki.
@@ -2186,15 +2230,17 @@ block.cultivator.details = Visszaszerzett technológia. Hatalmas tömegű biomas
block.oil-extractor.description = Nagy mennyiségű áramot fogyaszt, továbbá homokot és vizet igényel az olajfúráshoz.
block.core-shard.description = Támaszpont. Ha elpusztul, a szektor elveszett.
block.core-shard.details = Az első modell. Kompakt. Önsokszorosító. Egyszer használatos gyorsítórakétákkal van felszerelve, nem bolygóközi utazásra tervezték.
-block.core-foundation.description = Támaszpont. Jól páncélozott. Több nyersanyagot tárol, mint a Szilánk.
+block.core-foundation.description = Támaszpont. Jól páncélozott. Több nyersanyagot tárol, mint a szilánk.
block.core-foundation.details = A második modell.
block.core-nucleus.description = Támaszpont. Rendkívül jól páncélozott. Hatalmas mennyiségű nyersanyag tárolására képes.
block.core-nucleus.details = A harmadik, végső modell.
block.vault.description = Nagy mennyiséget tárol minden nyersanyagtípusból. Növeli a támaszpont tárolókapacitását, ha egy támaszpont mellé van helyezve. A tartalma kirakodó segítségével nyerhető ki.
block.container.description = Kis mennyiséget tárol minden nyersanyagtípusból. Növeli a támaszpont tárolókapacitását, ha egy támaszpont mellé van helyezve. A tartalma kirakodó segítségével nyerhető ki.
block.unloader.description = Kirakodja a szomszédos épületekből a kiválasztott nyersanyagot.
-block.launch-pad.description = Nyersanyagokat juttat el más szektorokba.
-block.launch-pad.details = Szuborbitális rendszer a nyersanyagok szektorok között történő szállítására. A teherkapszulák törékenyek, ezért nem képesek túlélni a légkörbe való visszatérést.
+block.launch-pad.description = Nyersanyagokat juttat el a kiválasztott szektorokba.
+block.advanced-launch-pad.description = Nyersanyagokat juttat el a kiválasztott szektorokba. Egyszerre csak egy nyersanyagtípust fogad el.
+block.advanced-launch-pad.details = Szuborbitális rendszer a nyersanyagok szektorok között történő szállítására.
+block.landing-pad.description = Fogadja a más szektorok kilövőállásaiból érkező nyersanyagokat. Nagy mennyiségű vizet igényel a landolások okozta hatásokkal szembeni védekezéshez.
block.duo.description = Változatos lövedékekkel lő az ellenségre.
block.scatter.description = Ólom-, törmelék- vagy ólomüvegdarabokat lő az ellenséges légi egységekre.
block.scorch.description = Megégeti az ellenség közeli földi egységeit. Kis távolságra nagyon hatékony.
@@ -2215,9 +2261,9 @@ block.segment.description = Megsemmisíti a beérkező lövedékeket. A lézerre
block.parallax.description = Vonónyalábot bocsát ki, amivel magához vonzza, és közben sebzi a légi egységeket.
block.tsunami.description = Erős folyadékhullámot lő az ellenségre. Eloltja a tüzeket, ha vízzel van ellátva.
block.silicon-crucible.description = Szilíciumot finomít homokból és szénből, piratitot igényel kiegészítő hőforrásként. Forró környezetben még hatékonyabb.
-block.disassembler.description = Ritka ásványi összetevőire bontja le a salakot, alacsony hatékonysággal. Képes tóriumot kinyerni.
+block.disassembler.description = Ritka ásványi összetevőire bontja le a salakot, alacsony hatásfokkal. Képes tóriumot kinyerni.
block.overdrive-dome.description = Megnöveli a környező épületek termelési sebességét. A működtetése tóritkvarcot és szilíciumot igényel.
-block.payload-conveyor.description = Nagy méretű terhet mozgat, például gyárakból érkező egységeket. Mágneses. Használható súlytalanságban.
+block.payload-conveyor.description = Nagy méretű terhet mozgat, például a gyárakból érkező egységeket. Mágneses. Használható súlytalanságban.
block.payload-router.description = Háromfelé osztja szét a beérkező terhet. Rendezőként is szolgál, ha van megadva szűrő. Mágneses. Használható súlytalanságban.
block.ground-factory.description = Földi egységeket gyárt. Az elkészült egységek azonnal hadra foghatók, vagy újratervezőkben továbbfejleszthetők.
block.air-factory.description = Légi egységeket gyárt. Az elkészült egységek azonnal hadra foghatók, vagy újratervezőkben továbbfejleszthetők.
@@ -2239,16 +2285,16 @@ block.repair-turret.description = Folyamatosan javítja a hatósugarában lévő
#Erekir
block.core-bastion.description = Támaszpont. Páncélozott. Ha elpusztul, a szektor elveszett.
-block.core-citadel.description = Támaszpont. Nagyon jól páncélozott. Több nyersanyagot tárol, mint a Bástya.
-block.core-acropolis.description = Támaszpont. Kivételesen jól páncélozott. Több nyersanyagot tárol, mint a Citadella.
-block.breach.description = Átütő erejű berillium- vagy volfrámlövedéket lő az ellenséges célpontokra.
-block.diffuse.description = Széles kúpban lő ki lövedékeket. Visszalöki az ellenséges célpontokat.
+block.core-citadel.description = Támaszpont. Nagyon jól páncélozott. Több nyersanyagot tárol, mint a bástya.
+block.core-acropolis.description = Támaszpont. Kivételesen jól páncélozott. Több nyersanyagot tárol, mint a citadella.
+block.breach.description = Átütő erejű berillium-, volfrám- vagy karbidlövedéket lő az ellenséges célpontokra.
+block.diffuse.description = Széles kúpban lövi ki a lövedékeket. Visszalöki az ellenséges célpontokat.
block.sublimate.description = Folyamatos lángcsóvát lő az ellenséges célpontokra. Átüti a páncélt.
block.titan.description = Hatalmas robbanóanyagú tüzérségi lövedéket lő földi célpontokra. Hidrogént igényel.
block.afflict.description = Hatalmas töltésű repeszlövedék-gömböket lő ki. Hőt igényel.
block.disperse.description = Égő repeszlövedékeket lő légi célpontokra.
-block.lustre.description = Lassan mozgó, egyszerre egy célpontra ható lézert lő az ellenséges célpontokra.
-block.scathe.description = Nagy erejű rakétát lő ki jelentős távolságokra lévő földi célpontok ellen.
+block.lustre.description = Egy folyamatosan és lassan mozgó, egyszerre egy célpontra ható lézert lő az ellenséges célpontokra.
+block.scathe.description = Nagy erejű rakétákat lő ki jelentős távolságokra lévő földi célpontok ellen.
block.smite.description = Átütő erejű, villámló lövedékeket lő ki.
block.malign.description = Lézertöltetekből álló célzott sortüzet zúdít az ellenséges célpontokra. Jelentős fűtést igényel.
block.silicon-arc-furnace.description = A homokot és a grafitot szilíciummá finomítja.
@@ -2256,21 +2302,21 @@ block.oxidation-chamber.description = A berilliumot és az ózont oxiddá alakí
block.electric-heater.description = Fűti a vele szemben álló épületeket. Nagy mennyiségű áramot fogyaszt.
block.slag-heater.description = Fűti a vele szemben álló épületeket. Salakot igényel.
block.phase-heater.description = Fűti a vele szemben álló épületeket. Tóritkvarcot igényel.
-block.heat-redirector.description = Más blokkokba irányítja a felgyülemlett hőt.
-block.small-heat-redirector.description = Redirects accumulated heat to other blocks.
-block.heat-router.description = A felgyülemlett hőt három kimeneti irányba osztja.
-block.electrolyzer.description = A vizet hidrogénné és ózonná alakítja. A keletkező gázokat két ellentétes irányba adja ki, amelyek a megfelelő színnel vannak jelölve.
+block.heat-redirector.description = Más blokkokba irányítja át a felgyülemlett hőt.
+block.small-heat-redirector.description = Más blokkokba irányítja át a felgyülemlett hőt.
+block.heat-router.description = A felgyülemlett hőt három kimeneti irányba osztja szét.
+block.electrolyzer.description = A vizet hidrogén- és ózongázzá bontja. A keletkező gázokat két ellentétes irányba adja ki, amelyek a megfelelő színnel vannak jelölve.
block.atmospheric-concentrator.description = Koncentrálja a légkörben lévő nitrogént. Hőt igényel.
-block.surge-crucible.description = Salakból és szilíciumból elektrometált olvaszt. Hőt igényel.
+block.surge-crucible.description = Szilíciumból és a salakban lévő fémekből elektrometált hoz létre. Hőt igényel.
block.phase-synthesizer.description = Tóriumból, homokból és ózonból tóritkvarcot szintetizál. Hőt igényel.
block.carbide-crucible.description = A grafitot és a volfrámot karbiddá olvasztja. Hőt igényel.
block.cyanogen-synthesizer.description = Arkicitből és grafitból diciánt szintetizál. Hőt igényel.
block.slag-incinerator.description = Elégeti a nem illékony nyersanyagokat vagy folyadékokat. Salakot igényel.
block.vent-condenser.description = A kürtőkből kiáramló gázokat vízzé kondenzálja. Áramot fogyaszt.
-block.plasma-bore.description = Ércfallal szemben elhelyezve, korlátlanul termel nyersanyagokat. Kis mennyiségű áramot fogyaszt.\nHidrogén felhasználásával növelhető a hatékonysága.
-block.large-plasma-bore.description = Egy nagyobb plazmafúró. Képes a volfrám és a tórium bányászatára. Hidrogént igényel és áramot fogyaszt.\nNitrogén felhasználásával növelhető a hatékonysága.
-block.cliff-crusher.description = Felőrli a falakat, és korlátlan mennyiségű homokot termel. Áramot fogyaszt. A hatékonysága a fal típusától függően változik.
-block.large-cliff-crusher.description = Crushes walls, outputting sand indefinitely. Requires power and ozone. Efficiency varies based on type of wall. Optionally consumes tungsten to increase efficiency.
+block.plasma-bore.description = Ércfallal szemben elhelyezve, korlátlanul termel nyersanyagokat. Kis mennyiségű áramot fogyaszt.\nHidrogén felhasználásával növelhető a hatásfoka.
+block.large-plasma-bore.description = Egy nagyobb plazmafúró. Képes a volfrám és a tórium bányászatára. Hidrogént igényel és áramot fogyaszt.\nNitrogén felhasználásával növelhető a hatásfoka.
+block.cliff-crusher.description = Felőrli a falakat, és korlátlan mennyiségű homokot termel. Áramot fogyaszt. A hatásfoka a fal típusától függően változik.
+block.large-cliff-crusher.description = Felőrli a falakat, és korlátlan mennyiségű homokot termel. Áramot fogyaszt, és hidrogént igényel. A hatásfoka a fal típusától függően változik, de grafittal növelhető.
block.impact-drill.description = Ha ércre helyezik, korlátlan ideig, sorozatokban termeli ki a nyersanyagokat. Áramot fogyaszt és vizet igényel.
block.eruption-drill.description = Továbbfejlesztett ütvefúró. Képes tóriumot bányászni. Hidrogént igényel.
block.reinforced-conduit.description = Előre szállítja a folyadékokat. Nem fogad nem csővezetékes bemeneteket oldalról.
@@ -2298,18 +2344,19 @@ block.duct-unloader.description = A kiválasztott nyersanyagokat kirakodja a mö
block.underflow-duct.description = A túlcsorduló kapu ellentettje. Csak akkor ad ki nyersanyagot előrefelé, ha oldalra már nem tud.
block.reinforced-liquid-junction.description = Csomópontként működik két egymást keresztező csővezeték között.
block.surge-conveyor.description = A nyersanyagokat rakományokban mozgatja. Árammal felgyorsítható. Vezeti az áramot.
-block.surge-router.description = Egyenletesen osztja el a nyersanyagokat három irányba az elektrometál-szállítószalagról. Árammal felgyorsítható. Vezeti az áramot.
-block.unit-cargo-loader.description = Teherszállító drónokat épít. A drónok automatikusan szétosztják a nyersanyagokat a megfelelő szűrővel rendelkező kirakodási pontokra.
+block.surge-router.description = Egyenletesen osztja el a nyersanyagokat három irányba az elektrometál szállítószalagról. Árammal felgyorsítható. Vezeti az áramot.
+block.unit-cargo-loader.description = Teherszállító drónokat épít. A drónok automatikusan eljuttatják a nyersanyagokat a megfelelő szűrővel rendelkező kirakodási pontokra.
block.unit-cargo-unload-point.description = A teherszállító drónok kirakodási pontjaként működik. Csak a kiválasztott szűrőnek megfelelő nyersanyagokat fogadja be.
-block.beam-node.description = Merőlegesen áramot vezet a többi blokkhoz. Kis mennyiségű áramot tárol.
-block.beam-tower.description = Merőlegesen áramot vezet a többi blokkhoz. Nagy mennyiségű áramot tárol. Nagy hatótávolságú.
+block.beam-node.description = Merőlegesen áramot továbbít a többi blokkhoz. Kis mennyiségű áramot tárol.
+block.beam-tower.description = Merőlegesen áramot továbbít a többi blokkhoz. Nagy mennyiségű áramot tárol. Nagy hatótávolságú.
+block.beam-link.description = Hatalmas távolságokra továbbítja az áramot.\nKizárólag a szomszédos szerkezetekhez vagy más sugárpilonokhoz képes kapcsolódni.
block.turbine-condenser.description = Kürtőkre helyezve áramot termel. Kis mennyiségű vizet termel.
block.chemical-combustion-chamber.description = Áramot termel arkicitből és ózonból.
block.pyrolysis-generator.description = Nagy mennyiségű áramot termel arkicitből és salakból. Melléktermékként vizet termel.
block.flux-reactor.description = Fűtés hatására nagy mennyiségű áramot termel. Stabilizátorként diciánt igényel. Az áramtermelés és a diciánigény arányos a hőbevitellel.\nFelrobban, ha nem áll rendelkezésre elegendő dicián.
block.neoplasia-reactor.description = Arkicit, víz és tóritkvarc felhasználásával nagy mennyiségű áramot termel. Melléktermékként hőt és veszélyes neoplazmát termel.\nFelrobban, ha a neoplazmát nem távolítják el a reaktorból csővezetékeken keresztül.
block.build-tower.description = Automatikusan újjáépíti a hatósugarában lévő építményeket, és segíti a többi egységet az építkezésben.
-block.regen-projector.description = Lassan javítja a szövetséges építményeket egy négyzet alakú területen. Hidrogént igényel.\nTóritkvarc felhasználásával növelhető a hatékonysága.
+block.regen-projector.description = Lassan javítja a szövetséges építményeket egy négyzet alakú területen. Hidrogént igényel.\nTóritkvarccal növelhető a hatásfoka.
block.reinforced-container.description = Kis mennyiségű nyersanyagot tud tárolni. A tartalma kirakodók segítségével nyerhető ki. Nem növeli a támaszpont tárolókapacitását.
block.reinforced-vault.description = Nagy mennyiségű nyersanyagot tud tárolni. A tartalma kirakodók segítségével nyerhető ki. Nem növeli a támaszpont tárolókapacitását.
block.tank-fabricator.description = Stell egységeket épít. Az elkészült egységek azonnal hadra foghatók, vagy újratervezőkben továbbfejleszthetők.
@@ -2325,9 +2372,9 @@ block.prime-refabricator.description = Hármas szintre fejleszti a beérkező ta
block.basic-assembler-module.description = Növeli az összeszerelő szintjét, ha annak az építési határvonala mellé helyezik. Áramot fogyaszt. Használható nyersanyagrakomány-bemenetként.
block.small-deconstructor.description = Lebontja a beadott építményeket és egységeket. Visszaadja az építési költség 100%-át.
block.reinforced-payload-conveyor.description = Előre mozgatja a rakományokat.
-block.reinforced-payload-router.description = A rakományokat szomszédos a blokkokba osztja szét. Szűrő beállítása esetén válogatóként működik.
-block.payload-mass-driver.description = Nagy hatótávolságú rakományszállító épület. A kapott rakományokat egy másik, hozzákapcsolt rakomány-tömegmozgatónak lövi át.
-block.large-payload-mass-driver.description = Nagy hatótávolságú rakományszállító épület. A kapott rakományokat egy másik, hozzákapcsolt rakomány-tömegmozgatónak lövi át.
+block.reinforced-payload-router.description = A rakományokat a szomszédos blokkokba osztja szét. A megfelelő szűrő beállítása esetén rakomány-válogatóként is beállítható.
+block.payload-mass-driver.description = Nagy hatótávolságú rakományszállító eszköz. A kapott rakományokat egy másik, hozzákapcsolt rakomány-tömegmozgatónak lövi át.
+block.large-payload-mass-driver.description = Nagyobb hatótávolságú rakományszállító eszköz, mint rakomány-tömegmozgató. A kapott rakományokat egy másik, hozzákapcsolt nagy rakomány-tömegmozgatónak lövi át.
block.unit-repair-tower.description = Javítja a közelében lévő összes egységet. Ózont igényel.
block.radar.description = Fokozatosan feltárja a terepet és az ellenséges egységeket egy nagy sugarú körben. Áramot fogyaszt.
block.shockwave-tower.description = Sérülést okoz és megsemmisíti az ellenséges lövedékeket egy körön belül. Diciánt igényel.
@@ -2363,9 +2410,9 @@ unit.minke.description = Tüzérségi és szokásos lövedékeket lő közeli f
unit.bryde.description = Nagy távolságú tüzérségi lövedékeket és rakétákat lő az ellenségre.
unit.sei.description = Rakéták és páncéltörő lövedékek záporát zúdítja az ellenségre.
unit.omura.description = Nagy hatótávolságú átütő erejű lövedékeket lő az ellenségre. Flare egységeket gyárt.
-unit.alpha.description = Megvédi a Szilánk támaszpontot az ellenségtől. Épületeket épít.
-unit.beta.description = Megvédi az Alapítvány támaszpontot az ellenségtől. Épületeket épít.
-unit.gamma.description = Megvédi az Atommag támaszpontot az ellenségtől. Épületeket épít.
+unit.alpha.description = Megvédi a szilánk támaszpontot az ellenségtől. Épületeket épít.
+unit.beta.description = Megvédi az alapítvány támaszpontot az ellenségtől. Épületeket épít.
+unit.gamma.description = Megvédi az atommag támaszpontot az ellenségtől. Épületeket épít.
unit.retusa.description = Célkövető torpedókat lő ki minden közeli ellenségre. Javítja a szövetséges egységeket.
unit.oxynoe.description = Épületjavító lángcsóvát lő az ellenséges célpontokra. Célba veszi az ellenséges lövedékeket egy pontvédelmi toronnyal.
unit.cyerce.description = Célkereső kazettás rakétákat lő ki az ellenségre. Javítja a szövetséges egységeket.
@@ -2388,21 +2435,22 @@ unit.avert.description = Forgó lövedékpárokat lő ki az ellenséges célpont
unit.obviate.description = Forgó, páros villámgömböket lő ki az ellenséges célpontokra.
unit.quell.description = Nagy hatótávolságú célkövető rakétát lő ki az ellenséges célpontokra. Elnyomja az ellenséges szerkezetjavító épületeket. Csak földi célpontokat támad.
unit.disrupt.description = Nagy hatótávolságú célkövető elnyomó rakétát lő ki az ellenséges célpontokra. Elnyomja az ellenséges szerkezetjavító épületeket. Csak földi célpontokat támad.
-unit.evoke.description = A Bástya védelmére szolgáló építményeket épít. Sugárral javítja az építményeket. 2×2-es épületek szállítására is alkalmas.
-unit.incite.description = A Citadella védelmére szolgáló építményeket épít. Sugárral javítja az építményeket. 2×2-es épületek szállítására is alkalmas.
-unit.emanate.description = Az Akropolisz védelmére szolgáló építményeket épít. Sugárral javítja az építményeket. 2×2-es épületek szállítására is alkalmas.
+unit.evoke.description = A bástya védelmére szolgáló építményeket épít. Sugárral javítja az építményeket. 2×2-es épületek szállítására is alkalmas.
+unit.incite.description = A citadella védelmére szolgáló építményeket épít. Sugárral javítja az építményeket. 2×2-es épületek szállítására is alkalmas.
+unit.emanate.description = Az akropolisz védelmére szolgáló építményeket épít. Sugárral javítja az építményeket. 2×2-es épületek szállítására is alkalmas.
lst.read = Szám kiolvasása egy összekapcsolt memóriacellából.
lst.write = Szám beírása egy összekapcsolt memóriacellába.
lst.print = Szöveg hozzáadása a kiírási pufferhez.\nA [accent]Print Flush[] használatáig nem jelenít meg semmit.
+lst.printchar = Egy UTF-16 karakter vagy tartalmi ikon hozzáadása a nyomtatási pufferhez.\nNem jelenít meg semmit, amíg a [accent]Print Flush[] használatban van.
lst.format = A szövegpufferben lévő következő helyőrző cseréje egy értékre.\nNem csinál semmit, ha a helyőrzőminta érvénytelen.\nHelyőrzőminta: „{[accent]number 0-9[]}”\nPélda:\n[accent]print „test {0}”\nformat „example”
lst.draw = Művelet hozzáadása a rajzpufferhez.\nA [accent]Draw Flush[] használatáig nem jelenít meg semmit.
lst.drawflush = Sorba állított [accent]Draw[] műveletek megjelenítése a kijelzőn.
lst.printflush = Sorba állított [accent]Print[] műveletek kiírása egy üzenetblokkba.
-lst.getlink = A processzor hivatkozásának lekérése index alapján. 0-nál kezdődik.
+lst.getlink = A processzor hivatkozásának lekérdezése index alapján. 0-nál kezdődik.
lst.control = Épület irányítása.
lst.radar = Egységek megkeresése az épület körül egy bizonyos hatótávolságban.
-lst.sensor = Adatok lekérése egy épületről vagy egységről.
+lst.sensor = Adatok lekérdezése egy épületről vagy egységről.
lst.set = Egy változó beállítása.
lst.operation = Egy művelet elvégzése 1-2 változóval.
lst.end = Ugrás az utasítási verem tetejére.
@@ -2423,10 +2471,10 @@ lst.weatherset = Az időjárástípus jelenlegi állapotának megadása.
lst.spawnwave = Egy hullám indítása.
lst.explosion = Robbanás létrehozása az adott helyen.
lst.setrate = A processzor végrehajtási sebességének beállítása utasítás/órajelciklusban.
-lst.fetch = Egységek, támaszpontok, játékosok, vagy épületek keresése index szerint.\nAz indexek 0-tól indulnak és a visszaadott számuknál végződnek.
+lst.fetch = Egységek, támaszpontok, játékosok, vagy épületek lekérdezése index szerint.\nAz indexek 0-tól indulnak és a visszaadott számuknál végződnek.
lst.packcolor = Egyetlen számba tömöríti a [0, 1] RGBA komponenseket a rajzoláshoz vagy szabálymeghatározáshoz.
lst.setrule = Játékszabály beállítása.
-lst.flushmessage = Üzenet megjelenítése a képernyőn a szövegpufferből. Ha a sikeres válasz változója [accent]@wait[],\nakkor, megvárja, amíg az előző üzenet befejeződik.\nMáskülönben azt adja ki, hogy az üzenet megjelenítése sikeres volt-e.
+lst.flushmessage = Üzenet megjelenítése a képernyőn a szövegpufferből. Ha a sikeres válasz változója [accent]@wait[],\nakkor, megvárja, amíg az előző üzenet befejeződik.\nMáskülönben a kimenet független attól, hogy az üzenet megjelenítése sikeres volt-e.
lst.cutscene = A játékos kamerájának mozgatása.
lst.setflag = Egy globális jelölő beállítása, amely minden processzor által olvasható.
lst.getflag = Ellenőrzés, hogy egy globális jelölő be van-e állítva.
@@ -2441,13 +2489,13 @@ lst.localeprint = Hozzáadja a pálya nyelvi csomagjainak tulajdonságértékét
lglobal.false = 0
lglobal.true = 1
lglobal.null = null
-lglobal.@pi = A pi matematikai állandó (3.141...)
-lglobal.@e = Az e matematikai állandó (2.718...)
+lglobal.@pi = A pi matematikai állandó (3.141…)
+lglobal.@e = Az e matematikai állandó (2.718…)
lglobal.@degToRad = Ezzel a számmal szoroz a fok radiánra való átalakításához
lglobal.@radToDeg = Ezzel a számmal szoroz a radián fokra való átalakításához
lglobal.@time = A jelenlegi mentés játékideje ezredmásodpercben
-lglobal.@tick = Az aktuális mentés játékideje, órajelciklusban (1 másodperc = 60 órajelciklus)
+lglobal.@tick = A jelenlegi mentés játékideje, órajelciklusban (1 másodperc = 60 órajelciklus)
lglobal.@second = A jelenlegi mentés játékideje másodpercben
lglobal.@minute = A jelenlegi mentés játékideje percben
lglobal.@waveNumber = A jelenlegi hullám száma, ha a hullámok engedélyezve vannak
@@ -2472,7 +2520,7 @@ lglobal.@blockCount = A játékban található blokktípusok száma összesen; a
lglobal.@itemCount = A játékban található nyersanyagtípusok száma összesen; a keres utasítással együtt használatos
lglobal.@liquidCount = A játékban található folyadéktípusok száma összesen; a keresés utasítással együtt használatos
-lglobal.@server = Igaz, ha a kód egy kiszolgálón, vagy egyjátékos módban fut, egyébként hamis
+lglobal.@server = Igaz, ha a kód egy kiszolgálón vagy egyjátékos módban fut, egyébként hamis
lglobal.@client = Igaz, ha a kód egy kiszolgálóhoz kapcsolódott kliensen fut
lglobal.@clientLocale = A kódot futtató kliens területi beállítása. Például: hu_HU
@@ -2486,16 +2534,18 @@ logic.nounitbuild = [red]Az egységépítési logika itt nem megengedett.
lenum.type = Az épület/egység típusa.\nPéldául bármilyen elosztó esetén a [accent]@router[] értéket adja vissza.\nNem karakterlánc.
lenum.shoot = Lövés egy adott pontra.
lenum.shootp = Lövés egy egységre/épületre sebesség-előrejelzéssel.
-lenum.config = Épületkonfiguráció, például nyersanyag-válogató.
-lenum.enabled = Engedélyezve van-e a blokk.
-laccess.currentammotype = Egy lövegtorony jelenlegi lőszer nyersanyaga/folyadéka.
+lenum.config = Épületkonfiguráció, például: nyersanyag-válogató.
+lenum.enabled = Független attól, hogy engedélyezve van-e a blokk.
+laccess.currentammotype = Egy lövegtorony jelenlegi nyersanyag- vagy folyadéklőszere.
+laccess.memorycapacity = Cellák száma egy memóriablokkban.
laccess.color = Megvilágítás színe.
-laccess.controller = Egységvezérlő. Ha processzor vezérli, akkor a processzort adja vissza.\nKülönben magát az egységet adja vissza.
-laccess.dead = Egy épület/egység megsemmisült-e, vagy érvénytelen-e.
-laccess.controlled = Ezt adja vissza:\n[accent]@ctrlProcessor[], ha az egységvezérlő egy processzor\n[accent]@ctrlPlayer[], ha az egység/épület vezérlője a játékos\n[accent]@ctrlFormation[], ha az egység formációban van\nKülönben 0.
+laccess.controller = Egységvezérlő. Ha processzor vezérli, akkor a processzort adja vissza.\nMáskülönben magát az egységet adja vissza.
+laccess.dead = Független attól, hogy egy épület vagy egység megsemmisült-e, vagy érvénytelen-e.
+laccess.controlled = Ezt adja vissza:\n[accent]@ctrlProcessor[], ha az egységvezérlő egy processzor\n[accent]@ctrlPlayer[], ha az egység/épület vezérlője a játékos\n[accent]@ctrlFormation[], ha az egység formációban van\nMáskülönben 0.
laccess.progress = Művelet előrehaladása, 0 és 1 között.\nA termelés, a lövegtorony-újratöltés vagy az építés előrehaladását adja vissza.
laccess.speed = Az egység legnagyobb sebessége, mező/mp-ben.
+laccess.size = Egy egység vagy épület mérete, vagy egy karakterlánc hossza.
laccess.id = Egy egység/blokk/nyersanyag/folyadék azonosítója.\nEz a keresési művelet fordítottja.
lcategory.unknown = Ismeretlen
@@ -2578,13 +2628,13 @@ lenum.spawn = Ellenséges kezdőpont.\nLehet támaszpont vagy pozíció.
lenum.building = Épület egy adott csoportban.
lenum.core = Bármilyen támaszpont.
-lenum.storage = Raktárépület, például raktár.
+lenum.storage = Raktárépület, például: raktár.
lenum.generator = Energiát termelő épületek.
lenum.factory = Nyersanyagokat feldolgozó épületek.
lenum.repair = Javítási pontok.
lenum.battery = Bármilyen akkumulátor.
-lenum.resupply = Utánpótlási pontok.\nCsak akkor van jelentősége, amikor az [accent]„egység lőszere”[] engedélyezve van.
-lenum.reactor = Ütközéses- vagy tóriumerőmű.
+lenum.resupply = Utánpótlási pontok.\nCsak akkor van jelentősége, amikor az [accent]„Az egységeknek lőszer kell”[] engedélyezve van.
+lenum.reactor = Ütközéses- vagy tórium erőmű.
lenum.turret = Bármilyen lövegtorony.
sensor.in = Az érzékelendő épület/egység.
@@ -2603,11 +2653,11 @@ unitradar.sort = Az eredmények rendezésének metrikája.
unitradar.output = Változó, amelybe a kimeneti egységet írja.
control.of = Irányítandó épület.
-control.unit = Megcélozandó egység/épület.
-control.shoot = Lőjön-e.
+control.unit = Megcélozandó egység vagy épület.
+control.shoot = Független a lövéstől.
-unitlocate.enemy = Felderítse-e az ellenséges épületeket.
-unitlocate.found = Megtalálta-e az objektumot.
+unitlocate.enemy = Független attól, hogy az ellenséges épületek fel vannak-e derítve.
+unitlocate.found = Független attól, hogy az objektum meg van-e találva.
unitlocate.building = Kimeneti változó a megtalált épülethez.
unitlocate.outx = Kimenet X koordinátája.
unitlocate.outy = Kimenet Y koordinátája.
@@ -2632,14 +2682,41 @@ lenum.payenter = Belépés/leszállás a rakományblokkra, amelyen az egység va
lenum.flag = Számjegyes egységjelölő.
lenum.mine = Bányászat egy helyen.
lenum.build = Egy épület építése.
-lenum.getblock = Az épület-, talaj- és blokktípus lekérdezése a koordinátákon.\nAz egységnek a pozíciótartományon belül kell lennie, különben null értékkel tér vissza.
+lenum.getblock = Az épület-, talaj- és blokktípus lekérdezése a koordinátákon.\nAz egységnek a pozíciótartományon belül kell lennie, máskülönben null értékkel tér vissza.
lenum.within = Ellenőrzés, hogy az egység egy pozíció közelében van-e.
lenum.boost = Erősítés indítása/leállítása.
lenum.flushtext = Az írási puffer tartalmának ürítése a jelölőre, ha alkalmazható.\nHa a „fetch” igaz, akkor megpróbálja lekérni a tulajdonságokat a pálya nyelvi csomagjából vagy a játék csomagjából.
lenum.texture = A textúra neve közvetlenül a játék textúraatlaszából (ún. kebab-case elnevezési stílus használatával).\nHa a „printFlush” igaz, akkor a szöveges puffer tartalmát használja szöveges argumentumként.
lenum.texturesize = A textúra mérete mezőben. A nulla érték a jelölő szélességét az eredeti textúra méretére skálázza.
-lenum.autoscale = Skálázva legyen-e a jelölő a játékos nagyítási szintjének megfelelően.
+lenum.autoscale = Független attól, hogy skálázva van-e a jelölő a játékos nagyítási szintjének megfelelően.
lenum.posi = Indexelt pozíció, vonal- és négyszögjelzőkhöz használatos, ahol a nulla az első pozíció.
lenum.uvi = A textúra pozíciója nullától egyig, négyzetjelölőkhöz használatos.
lenum.colori = Indexelt szín, vonal- és négyzetjelölőkhöz használatos, ahol a nulla az első szín.
+
+lenum.wavetimer = Független attól, hogy a hullámok automatikusan indulnak-e az időzítésre. Ha nem, akkor a hullámok a lejátszásgomb megnyomásakor indulnak.
+lenum.wave = Jelenlegi hullámszám. Bármi lehet a nem-hullámalapú játékmódokban.
+lenum.currentwavetime = Hullám-visszaszámlálás tickben.
+lenum.waves = Független attól, hogy a hullámok egyáltalán elindíthatók-e.
+lenum.wavesending = Független attól, hogy a hullámok kézzel elindíthatók-e a lejátszásgombbal.
+lenum.attackmode = Meghatározza, hogy a játékmód támadó módban van-e.
+lenum.wavespacing = A hullámok közötti idő tickben.
+lenum.enemycorebuildradius = Építési tilalmi zóna az ellenséges támaszpont körül.
+lenum.dropzoneradius = Az ellenséges hullámok ledobási zónájának sugara.
+lenum.unitcap = Alap egységdarabszám. Épületekkel tovább növelhető.
+lenum.lighting = Független attól, hogy a háttérfény engedélyezve van-e.
+lenum.buildspeed = Az építési sebesség szorzója.
+lenum.unithealth = Mennyi életponttal indulnak az egységek.
+lenum.unitbuildspeed = Milyen gyorsan gyártanak egységeket az egységgyárak.
+lenum.unitcost = Az egységek építéséhez szükséges erőforrások szorzója.
+lenum.unitdamage = Mennyi sebzést okoznak az egységek.
+lenum.blockhealth = Mennyi életponttal indulnak az épületek.
+lenum.blockdamage = Mennyi sebzést okoznak az épületek (lövegtornyok).
+lenum.rtsminweight = Minimális „támadási súly” szükséges ahhoz, hogy egy osztag támadjon. Minél magasabb az érték, annál megfontoltabbak az egységek.
+lenum.rtsminsquad = A támadó osztagok minimális mérete.
+lenum.maparea = A játszható területe a pályának. Minden, ami a területen kívülre esik, nem lesz elérhető.
+lenum.ambientlight = Környezeti világítás színe. Akkor használható, amikor a világítás engedélyezve van.
+lenum.solarmultiplier = Megsokszorozza a napelemek teljesítményét.
+lenum.dragmultiplier = Környezet-húzási szorzó.
+lenum.ban = Épületek vagy egységek, amelyek nem építhetők meg vagy helyezhetők el a pályán.
+lenum.unban = Egy egység vagy épület újraengedélyezése.
diff --git a/core/assets/bundles/bundle_id_ID.properties b/core/assets/bundles/bundle_id_ID.properties
index ee3203cd2e..2c32c882dd 100644
--- a/core/assets/bundles/bundle_id_ID.properties
+++ b/core/assets/bundles/bundle_id_ID.properties
@@ -34,7 +34,7 @@ load.system = Sistem
load.mod = Mod
load.scripts = Skrip
-be.update = Versi Bleeding Edge terbaru tersedia:
+be.update = Versi Bleeding Edge terbaru telah tersedia:
be.update.confirm = Unduh dan mulai ulang sekarang?
be.updating = Memperbarui...
be.ignore = Abaikan
@@ -58,8 +58,8 @@ schematic = Skema
schematic.add = Menyimpan skema...
schematics = Kumpulan skema
schematic.search = Cari skema...
-schematic.replace = Skema dengan nama tersebut sudah ada. Ganti dengan yang baru?
-schematic.exists = Skema dengan nama tersebut sudah ada.
+schematic.replace = Skema dengan nama tersebut telah ada. Ganti dengan yang baru?
+schematic.exists = Skema dengan nama tersebut telah ada.
schematic.import = Mengimpor skema...
schematic.exportfile = Ekspor Berkas
schematic.importfile = Impor Berkas
@@ -131,6 +131,7 @@ feature.unsupported = Perangkat Anda tidak mendukung fitur ini.
mods.initfailed = [red]⚠[] Proses Memuat Mindustry sebelumnya gagal untuk dimulai. Kemungkinan besar disebabkan oleh mod yang bermasalah.\n\nUntuk menghindari kesalahan berulang, [red]semua mod telah dinonaktifkan.[]
mods = Mod
+mods.name = Mod:
mods.none = [lightgray]Tidak ada mod yang ditemukan!
mods.guide = Panduan Modifikasi
mods.report = Laporkan Bug
@@ -144,7 +145,7 @@ mod.enabled = [lightgray]Aktif
mod.disabled = [red]Nonaktif
mod.multiplayer.compatible = [gray]Kompatibel dalam Multipemain
mod.disable = Nonaktifkan
-mod.version = Version:
+mod.version = Versi:
mod.content = Konten:
mod.delete.error = Tidak dapat menghapus mod. File mungkin sedang digunakan.
@@ -157,7 +158,7 @@ mod.circulardependencies = [red]Dependensi Sirkular
mod.incompletedependencies = [red]Dependensi Tidak Lengkap
mod.requiresversion.details = Membutuhkan versi game: [accent]{0}[]\nGame Anda telah kadaluarsa. Mod ini membutuhkan versi game yang lebih baru (kemungkinan versi beta/alpha) untuk berfungsi.
-mod.outdatedv7.details = Mod ini tidak kompatibel dengan versi game ini. Pencipta harus memperbaruinya, and add [accent]minGameVersion: 136[] ke dalam file [accent]mod.json[].
+mod.incompatiblemod.details = Mod ini tidak kompatibel dengan versi game ini. Pencipta harus memperbaruinya dengan menambahkan string [accent]minGameVersion: 147[] ke dalam file [accent]mod.json[].
mod.blacklisted.details = Mod ini terdapat di dalam blacklist karena menyebabkan crash atau masalah lain dengan versi game saat ini. Mohon jangan dipakai.
mod.missingdependencies.details = Mod ini kekurangan dependensi: {0}
mod.erroredcontent.details = Mod ini menimbulkan masalah pada saat proses memuat. Tanyakan pembuat mod untuk memperbaikinya.
@@ -168,7 +169,6 @@ mod.requiresversion = Membutuhkan versi game: [red]{0}
mod.errors = Terjadi kesalahan saat memuat konten.
mod.noerrorplay = [scarlet]Anda memiliki mod dengan suatu kesalahan.[] Nonaktifkan mod yang bersangkutan atau perbaiki kesalahan tersebut sebelum bermain.
-mod.nowdisabled = [scarlet]Mod '{0}' tidak memiliki dependensi:[accent] {1}\n[lightgray]Mod ini harus diunduh terlebih dahulu.\nMod ini akan dinonaktifkan secara otomatis.
mod.enable = Aktifkan
mod.requiresrestart = Game akan ditutup untuk mengaktifkan perubahan mod.
mod.reloadrequired = [scarlet]Mulai Ulang Dibutuhkan
@@ -184,6 +184,16 @@ mod.preview.missing = Sebelum mengunggah mod ini ke workshop, Anda harus memberi
mod.folder.missing = Hanya mod dengan format folder yang dapat diunggah ke workshop.\nUntuk mengubah mod menjadi folder, ekstrak mod dalam folder dan hapus arsip zip, kemudian mulai ulang game atau mod Anda.
mod.scripts.disable = Perangkat Anda tidak mendukung mod dengan skrip/JS. Anda harus menonaktifkan mod tersebut untuk dapat bermain.
+mod.dependencies.error = [scarlet]Mod tidak memiliki dependensi
+mod.dependencies.soft = (opsional)
+mod.dependencies.download = Impor
+mod.dependencies.downloadreq = Impor Diperlukan
+mod.dependencies.downloadall = Impor Semua
+mod.dependencies.status = Hasil Impor
+mod.dependencies.success = Berhasil diunduh:
+mod.dependencies.failure = Gagal mengunduh:
+mod.dependencies.imported = Mod ini memerlukan dependensi. Unduh?
+
about.button = Tentang
name = Nama:
noname = Masukkan[accent] nama pemain[] dahulu.
@@ -198,7 +208,7 @@ campaign.select = Pilih untuk Memulai Kampanye
campaign.none = [lightgray]Pilih planet untuk memulai.\nPilihan ini dapat diubah setiap saat.
campaign.erekir = Konten baru yang disempurnakan. Kemajuan kampanye lebih linier.\n\nKualitas peta yang tinggi dan pengalaman lebih mantap.
campaign.serpulo = Konten lawas; pengalaman klasik. Lebih terbuka dan banyak konten.\n\nPeta dan mekanisme kampanye yang berpotensi tidak seimbang. Kurang halus
-campaign.difficulty = Difficulty
+campaign.difficulty = Kesulitan
completed = [accent]Terselesaikan
techtree = Pohon Teknologi
techtree.select = Pemilihan Pohon Teknologi
@@ -270,9 +280,9 @@ trace.ips = IP:
trace.names = Nama:
invalidid = ID klien tidak valid! Kirimkan laporan bug.
-player.ban = Ban
+player.ban = Larang
player.kick = Keluarkan
-player.trace = lacak
+player.trace = Lacak
player.admin = Beri/Lepas Admin
player.team = Ganti Tim
@@ -299,15 +309,16 @@ joingame.ip = Alamat:
disconnect = Terputus.
disconnect.error = Sambungan bermasalah.
disconnect.closed = Sambungan ditutup.
-disconnect.timeout = Waktu koneksi habis.
+disconnect.timeout = Waktu koneksi telah habis.
disconnect.data = Gagal memuat data dunia!
+disconnect.snapshottimeout = Waktu koneksi habis selama menerima snapshot UDP.\nIni mungkin disebabkan oleh jaringan atau koneksi yang tidak stabil.
cantconnect = Gagal tersambung ke permainan ([accent]{0}[]).
connecting = [accent]Menghubungkan...
reconnecting = [accent]Menghubungkan kembali...
connecting.data = [accent]Memuat data dunia...
server.port = Port:
server.invalidport = Nomor port tidak valid!
-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]Gagal membuka server di port 6567.[]\n\nPastikan tidak ada server Mindustry lain yang berjalan di perangkat atau jaringan Anda!
server.error = [scarlet]Terjadi kesalahan saat menghosting server: [accent]{0}
save.new = Simpanan Baru
save.overwrite = Anda yakin ingin menimpa \nsimpanan ini?
@@ -360,7 +371,7 @@ command.enterPayload = Masukkan Muatan Blok
command.loadUnits = Muat Unit
command.loadBlocks = Muat Blok
command.unloadPayload = Turunkan Muatan
-command.loopPayload = Loop Unit Transfer
+command.loopPayload = Perulangan Transfer Unit
stance.stop = Batalkan Perintah
stance.shoot = Posisi Unit: Menembak
stance.holdfire = Posisi Unit: Gencatan Senjata
@@ -371,7 +382,7 @@ openlink = Buka Tautan
copylink = Salin Tautan
back = Kembali
max = Batas Maximum
-objective = Peta Tujuan
+objective = Tujuan Peta
crash.export = Ekspor Laporan Error
crash.none = Tidak ada Laporan Error ditemukan.
crash.exported = Laporan Error diekspor.
@@ -469,14 +480,15 @@ editor.shiftx = Shift X
editor.shifty = Shift Y
workshop = Workshop
waves.title = Gelombang
+waves.team = Tim
waves.remove = Hapus
waves.every = setiap
waves.waves = gelombang
-waves.health = darah: {0}%
+waves.health = nyawa: {0}%
waves.perspawn = per muncul
waves.shields = perisai/gelombang
waves.to = sampai
-waves.spawn = muncul:
+waves.spawn = Titik Pendaratan:
waves.spawn.all =
waves.spawn.select = Pilih Tempat Pendaratan Musuh
waves.spawn.none = [scarlet]tidak ada tempat pendaratan musuh di peta
@@ -493,7 +505,7 @@ waves.none = Tidak ada musuh yang didefinisikan.\nIngat bahwa susunan gelombang
waves.sort = Urut Berdasarkan
waves.sort.reverse = Urut Balik
waves.sort.begin = Mulai
-waves.sort.health = Darah
+waves.sort.health = Nyawa
waves.sort.type = Tipe
waves.search = Cari gelombang...
waves.filter = Filter Unit
@@ -503,13 +515,13 @@ waves.units.show = Perlihatkan Semua
#these are intentionally in lower case
wavemode.counts = jumlah
wavemode.totals = total
-wavemode.health = darah
-all = All
+wavemode.health = nyawa
+all = Semua
editor.default = [lightgray]
details = Detail...
edit = Sunting
-variables = Vars
+variables = Variabel
logic.clear.confirm = Apakah Anda yakin ingin menghapus semua kode dari prosesor ini?
logic.globals = Variabel Bawaan
@@ -523,7 +535,7 @@ editor.errorimage = Itu gambar, bukan peta.
editor.errorlegacy = Peta ini terlalu tua, dan memakai format peta "legacy" yang tidak didukung lagi.
editor.errornot = Ini bukan file peta.
editor.errorheader = File peta ini Kemungkinan tidak valid atau rusak.
-editor.errorname = Peta tidak ada nama. Apakah Anda mencoba untuk memuat file simpanan?
+editor.errorname = Peta tidak memiliki nama yang ditentukan. Apakah Anda mencoba untuk memuat file simpanan?
editor.errorlocales = Terjadi kesalahan saat membaca paket lokal yang tidak valid.
editor.update = Perbarui
editor.randomize = Acak
@@ -587,8 +599,8 @@ filters.empty = [lightgray]Tidak ada penyaring! Tambahkan dengan tombol di bawah
filter.distort = Kerusakkan
filter.noise = Kebisingan
-filter.enemyspawn = Pilih Munculnya Musuh
-filter.spawnpath = Jalur ke Titik Muncul
+filter.enemyspawn = Pilih Titik Pendaratan Musuh
+filter.spawnpath = Jalur ke Titik Pendaratan Musuh
filter.corespawn = Pilih Inti
filter.median = Median
filter.oremedian = Median Bijih
@@ -597,7 +609,7 @@ filter.defaultores = Sumber Daya Bawaan
filter.ore = Sumber Daya
filter.rivernoise = Kebisingan Sungai
filter.mirror = Cermin
-filter.clear = Bersih
+filter.clear = Kosongkan
filter.option.ignore = Biarkan
filter.scatter = Penebaran
filter.terrain = Lahan
@@ -716,7 +728,7 @@ objective.build = [accent]Bangun: [][lightgray]{0}[]x\n{1}[lightgray]{2}
objective.buildunit = [accent]Buat Unit: [][lightgray]{0}[]x\n{1}[lightgray]{2}
objective.destroyunits = [accent]Hancurkan: [][lightgray]{0}[]x Units
objective.enemiesapproaching = [accent]Musuh akan datang dalam [lightgray]{0}[]
-objective.enemyescelating = [accent]Produksi musuh meningkat dalam [lightgray]{0}[]
+objective.enemyescelating = [accent]Produksi musuh meningkat dalam [lightgray]{0}[]
objective.enemyairunits = [accent]Produksi pasukan udara musuh dimulai dalam [lightgray]{0}[]
objective.destroycore = [accent]Hancurkan Inti Musuh
objective.command = [accent]Perintahkan Unit
@@ -728,14 +740,18 @@ loadout = Muatan
resources = Sumber Daya
resources.max = Maks
bannedblocks = Blok yang Dilarang
+unbannedblocks = Blok yang Diperbolehkan
objectives = Tujuan
bannedunits = Unit yang Dilarang
+unbannedunits = Unit yang Diperbolehkan
bannedunits.whitelist = Unit yang Dilarang Sebagai Whitelist
bannedblocks.whitelist = Blok yang Dilarang Sebagai Whitelist
addall = Tambah Semua
launch.from = Meluncurkan Dari: [accent]{0}
launch.capacity = Kapasitas Barang yang Diluncurkan: [accent]{0}
launch.destination = Destinasi: {0}
+landing.sources = Total Sumber Sektor: [accent]{0}[]
+landing.import = Total Impor Maksimum: {0}[accent]{1}[lightgray]/mnt
configure.invalid = Jumlah harus berupa angka di antara 0 dan {0}.
add = Tambahkan...
guardian = Penjaga
@@ -743,14 +759,14 @@ guardian = Penjaga
connectfail = [scarlet]Gagal menyambung ke server:\n\n[accent]{0}
error.unreachable = Server tidak dapat dihubungi.\nApakah alamatnya benar?
error.invalidaddress = Alamat tidak valid.
-error.timedout = Kehabisan waktu!\nPastikan pemilik mempunyai port penerusan, dan alamatnya benar!
+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.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.
-error.moddex = Mindustry is unable to load this mod.\nYour device is blocking import of Java mods due to recent changes in Android.\nThere is no known workaround to this issue.
+error.moddex = Mindustry tidak dapat memuat mod ini.\nPerangkat Anda memblokir impor mod Java karena perubahan terbaru dari Android akhir akhir ini.\nIni tidak akan diperbaiki. Tidak ada solusi yang diketahui untuk masalah ini.
weather.rain.name = Hujan
weather.snowing.name = Salju
@@ -775,7 +791,9 @@ sectors.stored = Terisi:
sectors.resume = Lanjutkan
sectors.launch = Luncurkan
sectors.select = Pilih
-sectors.nonelaunch = [lightgray]nihil (matahari)
+sectors.launchselect = Pilih Destinasi Peluncuran
+sectors.nonelaunch = [lightgray]tidak ada (matahari)
+sectors.redirect = Arahkan Ulang Alas Peluncur
sectors.rename = Ganti Nama Sektor
sectors.enemybase = [scarlet]Markas Musuh
sectors.vulnerable = [scarlet]Rawan diserang
@@ -793,8 +811,8 @@ sector.lost = Sektor [accent]{0}[white] telah dihancurkan!
sector.capture = Sector [accent]{0}[white]Dikuasai!
sector.capture.current = Sektor Dikuasai!
sector.changeicon = Ubah Ikon
-sector.noswitch.title = Tidak Dapat berpindah Sektor
-sector.noswitch = Anda tidak boleh berpindah sektor jika salah satu sektor sedang di serang.\nSektor: [accent]{0}[] di [accent]{1}[]
+sector.noswitch.title = Tidak Dapat Berpindah Sektor
+sector.noswitch = Anda tidak boleh berpindah ke sektor lain jika salah satu sektor Anda sedang di serang.\nSektor: [accent]{0}[] di [accent]{1}[]
sector.view = Lihat Sektor
threat.low = Rendah
@@ -802,11 +820,17 @@ threat.medium = Sedang
threat.high = Tinggi
threat.extreme = Berbahaya
threat.eradication = Pemusnahan
-difficulty.casual = Casual
-difficulty.easy = Easy
+
+difficulty.casual = Kasual
+difficulty.easy = Mudah
difficulty.normal = Normal
-difficulty.hard = Hard
-difficulty.eradication = Eradication
+difficulty.hard = Susah
+difficulty.eradication = Pemusnahan
+
+difficulty.enemyHealthMultiplier = Nyawa Musuh: {0}
+difficulty.enemySpawnMultiplier = Jumlah Musuh: {0}
+difficulty.waveTimeMultiplier = Waktu Gelombang: {0}
+difficulty.nomodifiers = [lightgray](Tidak ada modifikasi)
planets = Planet
@@ -828,7 +852,7 @@ sector.saltFlats.name = Dataran Garam
sector.fungalPass.name = Lintasan Spora
sector.biomassFacility.name = Pabrik Sintesis Biomassa
sector.windsweptIslands.name = Pulau Bersemilir
-sector.extractionOutpost.name = Pos Ekstraksi Terdepan
+sector.extractionOutpost.name = Pos Ekstraksi
sector.facility32m.name = Facility 32 M
sector.taintedWoods.name = Tainted Woods
sector.infestedCanyons.name = Infested Canyons
@@ -856,13 +880,15 @@ sector.nuclearComplex.description = Sebuah fasilitas untuk memproduksi dan mempr
sector.fungalPass.description = Area ini terdapat di antara pegunungan yang lebih tinggi dengan yang lebih rendah, juga daerah yang dipenuhi spora. Musuh membangun markas pengintaian kecil di sini.\nHancurkan itu.\nGunakan unit Dagger dan Crawler. Hancurkan dua inti mereka.
sector.biomassFacility.description = Asal dari semua spora di planet ini. Tempat ini adalah fasilitas dimana spora dipelajari dan diproduksi.\nPelajari teknologi yang terkait dengannya. Budi dayakan spora untuk memproduksi bahan bakar dan plastik.\n\n[lightgray]Setelah fasilitas ini hancur, spora menyebar. Tidak ada di ekosistem lokal yang dapat bersaing dengan organisme invasif seperti itu.
sector.windsweptIslands.description = Jauh dari pantai terdapat sekumpulan pulau. Catatan yang ada mengatakan bahwa mereka memiliki struktur untuk memproduksi [accent]Plastanium[].\n\nKalahkan unit laut musuh. Bangun markas di kepulauan ini. Pelajari pabriknya.
-sector.extractionOutpost.description = Sebuah pos jarak jauh, dibangun musuh untuk meluncurkan sumber daya ke sektor yang lain.\n\nTeknologi transportasi antar sektor dapat memudahkan untuk menaklukan lebih banyak sektor. Hancurkan markasnya . Pelajari Alas Peluncur mereka.
+sector.extractionOutpost.description = Sebuah pos jarak jauh, dibangun musuh untuk meluncurkan sumber daya ke sektor yang lain.\n\nTeknologi transportasi antar sektor dapat memudahkan untuk menaklukan lebih banyak sektor. Hancurkan markasnya. Pelajari Alas Peluncur mereka.
sector.impact0078.description = Di sini terletak sisa-sisa pesawat antarbintang yang pertama kali memasuki sistem ini.\n\nSelamatkan apapun yang ada dari sisa-sisa pesawat. Pelajari teknologi apa pun yang utuh.
sector.planetaryTerminal.description = Target terakhir.\n\nMarkas pesisir pantai ini memiliki struktur yang dapat meluncurkan inti ke planet di sekitarnya. Memiliki pertahanan yang sangat bagus.\n\nProduksi unit laut. Hancurkan musuh secepat mungkin. Pelajari struktur peluncuran mereka.
sector.coastline.description = Sisa-sisa teknologi Unit Laut telah terdeteksi di lokasi ini. Tolak serangan musuh, rebut sektor ini, dan dapatkan teknologinya.
sector.navalFortress.description = Musuh telah mendirikan markas di sebuah pulau terpencil, dibentengi secara alami. Hancurkan pangkalan ini. Dapatkan teknologi Unit Laut mereka yang canggih, dan telitilah
sector.cruxscape.name = Cruxscape
sector.geothermalStronghold.name = Geothermal Stronghold
+
+#do not translate
sector.facility32m.description = WIP, map submission by Stormride_R
sector.taintedWoods.description = WIP, map submission by Stormride_R
sector.atolls.description = WIP, map submission by Stormride_R
@@ -879,35 +905,35 @@ sector.aegis.name = Aegis
sector.lake.name = Danau
sector.intersect.name = Perempatan
sector.atlas.name = Atlas
-sector.split.name = Pisahan
+sector.split.name = Terpisah
sector.basin.name = Cekungan
sector.marsh.name = Rawa
sector.peaks.name = Puncak
sector.ravine.name = Jurang
sector.caldera-erekir.name = Kaldera
sector.stronghold.name = Benteng
-sector.crevice.name = Retakan
+sector.crevice.name = Terbelah
sector.siege.name = Pengepungan
sector.crossroads.name = Simpangan
sector.karst.name = Kars
sector.origin.name = Origin
sector.onset.description = Permulaan Penaklukan Erekir. Kumpulkan sumber daya, produksi unit, dan mulailah meneliti teknologi.
-sector.aegis.description = Sektor ini mengandung deposit Tungsten.\nRiset [accent]Bor Tumbukan[] untuk menambang sumber daya ini, dan hancurkan markas musuh di area tersebut.
-sector.lake.description = Danau lava di sektor ini sangat membatasi pilihan unit yang kita gunakan. Unit Kapal adalah satu-satunya pilihan.\nRiset [accent]fabrikator kapal[] dan produksi unit [accent]elude[] secepat mungkin.
-sector.intersect.description = Pemindai menunjukkan bahwa sektor ini akan diserang dari berbagai arah setelah kita mendarat.\nSegera siapkan pertahanan dan perluas wilayah secepat mungkin.\nUnit [accent]mech[] akan dibutuhkan untuk dataran yang sulit dilalui.
-sector.atlas.description = Sektor ini memiliki dataran yang unik dan akan membutuhkan beraneka ragam unit untuk menyerang secara efektif.\nUnit yang ditingkatkan mungkin dibutuhkan untuk melewati beberapa markas musuh yang kuat di sekitar sini.\nRiset [accent]Elektroliser[] dan [accent]Refabrikator Tank[].
+sector.aegis.description = Sektor ini mengandung deposit tungsten.\nRiset [accent]Bor Tumbukan[] untuk menambang sumber daya ini, dan hancurkan markas musuh di area tersebut.
+sector.lake.description = Danau lava di sektor ini sangat membatasi pilihan unit yang kita gunakan. Unit Kapal adalah satu-satunya pilihan.\nRiset [accent]pabrikator kapal[] dan produksi unit [accent]elude[] secepat mungkin.
+sector.intersect.description = Pemindai menunjukkan bahwa sektor ini akan diserang dari berbagai arah setelah kita mendarat.\nSegera siapkan pertahanan dan perluas wilayah secepat mungkin.\nUnit [accent]Meka[] akan dibutuhkan untuk dataran yang sulit dilalui.
+sector.atlas.description = Sektor ini memiliki dataran yang unik dan akan membutuhkan beraneka ragam unit untuk menyerang secara efektif.\nUnit yang ditingkatkan mungkin dibutuhkan untuk melewati beberapa markas musuh yang kuat di sekitar sini.\nRiset [accent]Elektroliser[] dan [accent]Pabrikator Ulang Tank[].
sector.split.description = Keberadaan musuh yang minim di sektor ini sangat bagus untuk menguji coba teknologi transportasi baru.
-sector.basin.description = Kehadiran musuh dalam jumlah besar terdeteksi di sektor ini.\nBangun unit dengan cepat dan Kuasai inti musuh untuk mendapatkan pijakan
+sector.basin.description = Kehadiran musuh dalam jumlah besar terdeteksi di sektor ini.\nBangun unit dengan cepat dan kuasai inti musuh untuk mendapatkan pijakan
sector.marsh.description = Sektor ini memiliki kelimpahan arkisit, namun memiliki ventilasi yang terbatas.\nBangun [accent]Ruang Pembakaran Kimia[] untuk menghasilkan tenaga.
-sector.peaks.description = Medan pegunungan di sektor ini membuat sebagian besar unit tidak berguna. Unit terbang akan dibutuhkan.\nWaspadai instalasi anti-udara yang dimiliki musuh. Beberapa instalasi ini mungkin dapat dinonaktifkan dengan menargetkan bangunan pendukungnya.
-sector.ravine.description = Jalur transportasi penting bagi musuh. Tidak ada inti musuh yang ditemukan di sini, namun hati-hati terhadap berbagai jenis musuh.\nProduksi [accent]Paduan Logam[]. Bangun menara [accent]Afflict[].
+sector.peaks.description = Medan pegunungan di sektor ini membuat sebagian besar unit tidak berguna. Unit terbang akan dibutuhkan.\nWaspadai instalasi anti-udara yang dimiliki musuh. Beberapa instalasi ini mungkin dapat dinonaktifkan dengan menargetkan bangunan pendukungnya terlebih dahulu.
+sector.ravine.description = Jalur transportasi penting bagi musuh. Tidak ada inti musuh yang ditemukan di sini, namun hati-hati terhadap berbagai jenis musuh.\nProduksi [accent]paduan logam[]. Bangun menara [accent]Afflict[].
sector.caldera-erekir.description = Sumber daya yang terdeteksi di sektor ini tersebar di beberapa pulau.\nRiset dan sebarkan transportasi berbasis drone.
sector.stronghold.description = Markas musuh yang besar di sektor ini menjaga simpanan [accent]torium[] dalam jumlah besar .\nGunakan itu untuk mengembangkan unit dan menara ke tingkat yang lebih tinggi.
-sector.crevice.description = Musuh akan mengirimkan pasukan serangan yang hebat untuk menghancurkan markasmu di sektor ini.\nKembangkan [accent]karbit[] dan [accent]Generator Pirolisis[] mungkin imperatif untuk bertahan hidup.
+sector.crevice.description = Musuh akan mengirimkan pasukan serangan yang hebat untuk menghancurkan markasmu di sektor ini.\nKembangkan [accent]karbida[] dan [accent]Generator Pirolisis[] mungkin imperatif untuk bertahan hidup.
sector.siege.description = Sektor ini memiliki dua ngarai paralel yang akan memaksa serangan dari dua arah.\nRiset [accent]sianogen[] untuk mendapatkan kemampuan untuk membuat unit tank yang lebih kuat.\nPeringatan: Rudal jarak jauh milik musuh telah terdeteksi. Rudal tersebut mungkin ditembak jatuh sebelum terjadi benturan.
sector.crossroads.description = Pangkalan musuh di sektor ini telah didirikan di berbagai medan. Riset unit yang berbeda untuk beradaptasi.\nSelain itu, beberapa markas telah dilindungi oleh perisai. Cari tahu bagaimana mereka diberi daya.
-sector.karst.description = Sektor ini kaya akan sumber daya, namun akan diserang oleh musuh begitu inti baru mendarat.\nManfaatkan sumber daya dan riset [accent]Phase Fabric[].
+sector.karst.description = Sektor ini kaya akan sumber daya, namun akan diserang oleh musuh begitu inti baru mendarat.\nManfaatkan sumber daya dan riset [accent]phase fabric[].
sector.origin.description = Sektor terakhir dengan kehadiran musuh yang signifikan.\nTidak ada peluang penelitian yang tersisa - fokuslah pada menghancurkan semua inti musuh.
status.burning.name = Terbakar
@@ -929,13 +955,13 @@ status.boss.name = Penjaga
settings.language = Bahasa
settings.data = Data Game
settings.reset = Atur Ulang ke Bawaan
-settings.rebind = Ganti tombol
-settings.resetKey = Atur ulang
+settings.rebind = Ganti Tombol
+settings.resetKey = Atur Ulang
settings.controls = Kontrol
settings.game = Permainan
settings.sound = Suara
settings.graphics = Grafik
-settings.cleardata = Menghapus Data Permainan...
+settings.cleardata = Hapus Data Permainan...
settings.clear.confirm = Anda yakin ingin menghapus data ini?\nApa yang sudah dilakukan tidak dapat dibatalkan!
settings.clearall.confirm = [scarlet]PERINGATAN![]\nIni akan menghapus semua data permainan, termasuk simpanan, peta, bukaan dan keybind.\nSetelah Anda menekan 'ok' permainan akan menghapus semua data dan keluar otomatis.
settings.clearsaves.confirm = Anda yakin ingin menghapus semua simpanan?
@@ -945,7 +971,7 @@ settings.clearresearch.confirm = Apakah Anda yakin ingin membersihkan semua pene
settings.clearcampaignsaves = Bersihkan Simpanan Kampanye
settings.clearcampaignsaves.confirm = Apakah Anda yakin ingin membersihkan semua simpanan kampanye?
paused = [accent]< Jeda >
-clear = Bersih
+clear = Kosongkan
banned = [scarlet]Dilarang
unsupported.environment = [scarlet]Ruang Lingkup Tidak Cocok
yes = Ya
@@ -984,7 +1010,7 @@ stat.instructions = Instruksi
stat.powerconnections = Batas Sambungan
stat.poweruse = Penggunaan Tenaga
stat.powerdamage = Tenaga/Tembakan
-stat.itemcapacity = Kapasitas Bahan
+stat.itemcapacity = Kapasitas Item
stat.memorycapacity = Kapasitas Memori
stat.basepowergeneration = Dasar Generasi Tenaga
stat.productiontime = Waktu Produksi
@@ -1000,16 +1026,16 @@ stat.drilltier = Sumber Daya yang Ditambang
stat.drillspeed = Kecepatan Bor Dasar
stat.boosteffect = Efek Pendorong
stat.maxunits = Batas Unit Aktif
-stat.health = Darah
+stat.health = Nyawa
stat.armor = Pelindung
stat.buildtime = Waktu Pembuatan
stat.maxconsecutive = Batas Konsekutif
stat.buildcost = Biaya Bangunan
-stat.inaccuracy = Jarak Melenceng
+stat.inaccuracy = Melenceng
stat.shots = Tembakan
stat.reload = Kecepatan Penembakan
stat.ammo = Amunisi
-stat.shieldhealth = Darah Perisai
+stat.shieldhealth = Nyawa Perisai
stat.cooldowntime = Waktu Pendinginan
stat.explosiveness = Daya Ledak
stat.basedeflectchance = Peluang Defleksi Dasar
@@ -1032,13 +1058,14 @@ stat.flying = Terbang
stat.ammouse = Penggunaan Amunisi
stat.ammocapacity = Kapasitas Amunisi
stat.damagemultiplier = Penggandaan Kekuatan (dmg)
-stat.healthmultiplier = Penggandaan Darah
+stat.healthmultiplier = Penggandaan Nyawa
stat.speedmultiplier = Penggandaan Kecepatan
stat.reloadmultiplier = Penggandaan Isi Ulang
stat.buildspeedmultiplier = Penggandaan Kecepatan Membangun
stat.reactive = Reaksi
stat.immunities = Kekebalan
stat.healing = Menyembuhkan
+stat.efficiency = [stat]{0}% Efisiensi
ability.forcefield = Bidang Kekuatan
ability.forcefield.description = Memproyeksikan perisai kekuatan yang menyerap peluru
@@ -1062,7 +1089,7 @@ ability.energyfield = Bidang Energi
ability.energyfield.description = Menyengat musuh di sekitar
ability.energyfield.healdescription = Menyengat musuh di sekitar dan menyembuhkan sekutu
ability.regen = Regenerasi Diri Sendiri
-ability.regen.description = Meregenerasi darah sendiri secara terus menerus
+ability.regen.description = Meregenerasi nyawa sendiri secara terus menerus
ability.liquidregen = Penyerapan Cairan
ability.liquidregen.description = Menyerap cairan untuk menyembuhkan dirinya sendiri
ability.spawndeath = Kematian-Munculkan
@@ -1071,11 +1098,11 @@ ability.liquidexplode = Kematian-Tumpahkan
ability.liquidexplode.description = Menumpahkan cairan saat mati
ability.stat.firingrate = [stat]{0}/sec[lightgray] laju penembakan
-ability.stat.regen = [stat]{0}[lightgray] darah/detik
-ability.stat.pulseregen = [stat]{0}[lightgray] health/pulse
+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.repairspeed = [stat]{0}/sec[lightgray] kecepatan perbaikan
-ability.stat.slurpheal = [stat]{0}[lightgray] darah/unit cair
+ability.stat.slurpheal = [stat]{0}[lightgray] nyawa/unit cair
ability.stat.cooldown = [stat]{0} sec[lightgray] waktu jeda
ability.stat.maxtargets = [stat]{0}[lightgray] target maksimal
ability.stat.sametypehealmultiplier = [stat]{0}%[lightgray] jumlah jenis perbaikan yang sama
@@ -1086,6 +1113,7 @@ ability.stat.buildtime = [stat]{0} sec[lightgray] waktu membangun
bar.onlycoredeposit = Hanya Penyetoran Inti yang Diizinkan
bar.drilltierreq = Membutuhkan Bor yang Lebih Baik
+bar.nobatterypower = Daya Baterai Tidak Mencukupi
bar.noresources = Sumber Daya Tidak Cukup
bar.corereq = Membutuhkan Inti Markas
bar.corefloor = Ubin Zona Inti Dibutuhkan
@@ -1094,23 +1122,25 @@ bar.drillspeed = Kecepatan Bor: {0}/s
bar.pumpspeed = Kecepatan Pompa: {0}/s
bar.efficiency = Efisiensi: {0}%
bar.boost = Pendorongan: +{0}%
+bar.powerbuffer = Tenaga Baterai: {0}/{1}
bar.powerbalance = Tenaga: {0}/s
bar.powerstored = Disimpan: {0}/{1}
bar.poweramount = Tenaga: {0}
bar.poweroutput = Pengeluaran Tenaga: {0}
bar.powerlines = Sambungan: {0}/{1}
-bar.items = Bahan: {0}
+bar.items = Item: {0}
bar.capacity = Kapasitas: {0}
bar.unitcap = {0} {1}/{2}
bar.liquid = Zat Cair
bar.heat = Panas
+bar.cooldown = Pendinginan
bar.instability = Instabilitas
bar.heatamount = Panas: {0}
bar.heatpercent = Panas: {0} ({1}%)
bar.power = Tenaga
bar.progress = Proses Pembangunan
bar.loadprogress = Proses Muatan
-bar.launchcooldown = Waktu Jeda Peluncuran
+bar.launchcooldown = Jeda Peluncuran
bar.input = Masukan
bar.output = Keluaran
bar.strength = [stat]{0}[lightgray]x penguatan
@@ -1118,7 +1148,7 @@ bar.strength = [stat]{0}[lightgray]x penguatan
units.processorcontrol = [lightgray]Dikendalikan Prosesor
bullet.damage = [stat]{0}[lightgray] kekuatan (dmg)
-bullet.splashdamage = [stat]{0}[lightgray] kekuatan percikan~[stat] {1}[lightgray] kotak
+bullet.splashdamage = [stat]{0}[lightgray] kekuatan percikan~[stat] {1}[lightgray] ubin
bullet.incendiary = [stat]membakar
bullet.homing = [stat]mengejar
bullet.armorpierce = [stat]menembus pelindung
@@ -1128,6 +1158,7 @@ bullet.interval = [stat]{0}/detik[lightgray] jarak antar peluru:
bullet.frags = [stat]{0}[lightgray]x pecahan:
bullet.lightning = [stat]{0}[lightgray]x petir ~ [stat]{1}[lightgray] damage
bullet.buildingdamage = [stat]{0}%[lightgray] damage bangunan
+bullet.shielddamage = [stat]{0}%[lightgray] damage perisai
bullet.knockback = [stat]{0}[lightgray] terdorong
bullet.pierce = [stat]{0}[lightgray]x tembus
bullet.infinitepierce = [stat]tembus
@@ -1136,31 +1167,32 @@ bullet.healamount = [stat]{0}[lightgray] perbaikan langsung
bullet.multiplier = [stat]{0}[lightgray]x penggandaan amunisi
bullet.reload = [stat]{0}[lightgray]x laju tembakan
bullet.range = [stat]{0}[lightgray] jarak ubin
-bullet.notargetsmissiles = [stat] ignores buildings
-bullet.notargetsbuildings = [stat] ignores missiles
+bullet.notargetsmissiles = [stat] mengabaikan misil
+bullet.notargetsbuildings = [stat] mengabaikan bangunan
unit.blocks = blok
unit.blockssquared = blok²
unit.powersecond = unit tenaga/detik
unit.tilessecond = ubin/detik
unit.liquidsecond = unit zat cair/detik
-unit.itemssecond = bahan/detik
+unit.itemssecond = item/detik
unit.liquidunits = unit zat cair
unit.powerunits = unit tenaga
unit.heatunits = unit panas
unit.degrees = derajat
unit.seconds = detik
unit.minutes = menit
-unit.persecond = /detik
-unit.perminute = /menit
+unit.persecond = /dtk
+unit.perminute = /mnt
unit.timesspeed = x kecepatan
+unit.multiplier = x
unit.percent = %
-unit.shieldhealth = darah perisai
-unit.items = bahan
+unit.shieldhealth = nyawa perisai
+unit.items = item
unit.thousands = rb
unit.millions = jt
unit.billions = m
-unit.shots = shots
+unit.shots = tembakan
unit.pershot = /tembakan
category.purpose = Kegunaan
category.general = Umum
@@ -1169,9 +1201,9 @@ category.liquids = Zat Cair
category.items = Barang
category.crafting = Pemasukan/Pengeluaran
category.function = Fungsi
-category.optional = Peningkatan Opsional
+category.optional = Pilihan Peningkatan
setting.alwaysmusic.name = Selalu Putar Musik
-setting.alwaysmusic.description = Saat diaktifkan, musik akan selalu diputar berulang-ulang di dalam game. Saat dinonaktifkan, musik hanya diputar secara acak.
+setting.alwaysmusic.description = Saat diaktifkan, musik akan selalu diputar berulang-ulang di dalam game. \nSaat dinonaktifkan, musik hanya diputar secara acak.
setting.skipcoreanimation.name = Lewati Animasi Peluncuran atau Pendaratan Inti
setting.landscape.name = Kunci Pemandangan
setting.shadows.name = Bayangan
@@ -1230,11 +1262,13 @@ setting.mutemusic.name = Bisukan Musik
setting.sfxvol.name = Volume Suara Efek
setting.mutesound.name = Bisukan Suara
setting.crashreport.name = Laporkan Masalah Secara Anonim
+setting.communityservers.name = Ambil Daftar Server Komunitas
setting.savecreate.name = Otomatis Menyimpan
setting.steampublichost.name = Visibilitas Game Publik
setting.playerlimit.name = Batas pemain
setting.chatopacity.name = Jelas-Beningnya Pesan
setting.lasersopacity.name = Jelas-Beningnya Laser Tenaga
+setting.unitlaseropacity.name = Jelas-Beningnya Laser Unit Menambang
setting.bridgeopacity.name = Jelas-Beningnya Jembatan
setting.playerchat.name = Tunjukkan Pesan Pemain
setting.showweather.name = Perlihatkan Cuaca
@@ -1243,6 +1277,9 @@ setting.macnotch.name = Sesuaikan tampilan dengan batas layar
setting.macnotch.description = Mulai ulang diperlukan untuk menerapkan perubahan
steam.friendsonly = Hanya Teman
steam.friendsonly.tooltip = Mengatur bisa atau tidaknya teman Steam bergabung ke permainanmu.\nMenghapus centang pada kotak ini akan membuat permainan Anda menjadi publik - siapa saja dapat bergabung.
+setting.maxmagnificationmultiplierpercent.name = Jarak Kamera Minimum
+setting.minmagnificationmultiplierpercent.name = Jarak Kamera Maksimal
+setting.minmagnificationmultiplierpercent.description = Nilai yang tinggi dapat menyebabkan masalah performa.
public.beta = Ingat bahwa game dalam versi beta tidak dapat membuat lobi publik.
uiscale.reset = Skala UI telah diubah.\nTekan "OK" untuk mengonfirmasi.\n[scarlet]Kembali dan keluar di[accent] {0}[] pengaturan...
uiscale.cancel = Batal & Keluar
@@ -1262,10 +1299,10 @@ keybind.press = Tekan tombol...
keybind.press.axis = Tekan sumbu atau tombol...
keybind.screenshot.name = Tangkapan Layar Peta
keybind.toggle_power_lines.name = Aktifkan Laser Tenaga
-keybind.toggle_block_status.name = Status Blok
-keybind.move_x.name = Pindah X
-keybind.move_y.name = Pindah Y
-keybind.mouse_move.name = Ikuti Tetikus
+keybind.toggle_block_status.name = Aktifkan Status Blok
+keybind.move_x.name = Gerak Horizontal
+keybind.move_y.name = Gerak Vertikal
+keybind.mouse_move.name = Ikuti Mouse/Tetikus
keybind.pan.name = Tampilan Geser
keybind.boost.name = Dorongan
keybind.command_mode.name = Mode Perintah
@@ -1278,19 +1315,20 @@ keybind.unit_stance_hold_fire.name = Posisi Unit: Tahan Tembakan
keybind.unit_stance_pursue_target.name = Posisi Unit: Mengejar Target
keybind.unit_stance_patrol.name = Posisi Unit: Patroli
keybind.unit_stance_ram.name = Posisi Unit: Tabrak
-keybind.unit_command_move.name = Unit Command: Move
-keybind.unit_command_repair.name = Unit Command: Repair
-keybind.unit_command_rebuild.name = Unit Command: Rebuild
-keybind.unit_command_assist.name = Unit Command: Assist
-keybind.unit_command_mine.name = Unit Command: Mine
-keybind.unit_command_boost.name = Unit Command: Boost
-keybind.unit_command_load_units.name = Unit Command: Load Units
-keybind.unit_command_load_blocks.name = Unit Command: Load Blocks
-keybind.unit_command_unload_payload.name = Unit Command: Unload Payload
-keybind.unit_command_enter_payload.name = Perintah Unit: Masuk ke Muatan
-keybind.unit_command_loop_payload.name = Unit Command: Loop Unit Transfer
-keybind.rebuild_select.name = Membangun Wilayah Kembali
+keybind.unit_command_move.name = Perintah Unit: Bergerak
+keybind.unit_command_repair.name = Perintah Unit: Perbaiki
+keybind.unit_command_rebuild.name = Perintah Unit: Bangun kembali
+keybind.unit_command_assist.name = Perintah Unit: Ikuti Player
+keybind.unit_command_mine.name = Perintah Unit: Menambang
+keybind.unit_command_boost.name = Perintah Unit: Mendorong
+keybind.unit_command_load_units.name = Perintah Unit: Muat Unit
+keybind.unit_command_load_blocks.name = Perintah Unit: Muat Blok
+keybind.unit_command_unload_payload.name = Perintah Unit: Bongkar Muatan
+keybind.unit_command_enter_payload.name = Perintah Unit: Masuk ke Muatan
+keybind.unit_command_loop_payload.name = Perintah Unit: Perulangan Transfer Unit
+
+keybind.rebuild_select.name = Membangun Ulang Wilayah
keybind.schematic_select.name = Pilih Daerah
keybind.schematic_menu.name = Menu Skema
keybind.schematic_flip_x.name = Balik Skematik Horizontal
@@ -1325,6 +1363,7 @@ keybind.shoot.name = Menembak
keybind.zoom.name = Perbesar
keybind.menu.name = Menu
keybind.pause.name = Jeda
+keybind.skip_wave.name = Lewati Gelombang
keybind.pause_building.name = Jeda/Lanjut Membangun
keybind.minimap.name = Peta Kecil
keybind.planet_map.name = Peta Planet
@@ -1367,16 +1406,16 @@ rules.wavetimer = Pengaturan Waktu Gelombang
rules.wavesending = Pengiriman Gelombang
rules.allowedit = Izinkan Aturan Pengeditan
rules.allowedit.info = Ketika diaktifkan, pemain dapat mengedit aturan dalam game melalui tombol di sudut kiri bawah pada menu Jeda.
-rules.alloweditworldprocessors = Allow Editing World Processors
-rules.alloweditworldprocessors.info = When enabled, world logic blocks can be placed and edited even outside the editor.
+rules.alloweditworldprocessors = Izinkan Pengeditan Prosesor Dunia
+rules.alloweditworldprocessors.info = Ketika diaktifkan, blok logika dunia dapat ditempatkan dan diedit bahkan di luar penyunting.
rules.waves = Gelombang
-rules.airUseSpawns = Unit udara menggunakan titik muncul
+rules.airUseSpawns = Unit udara menggunakan titik pendaratan
rules.attack = Mode Penyerangan
rules.buildai = A.I. Pembangun Markas
rules.buildaitier = Tingkat A.I. Pembangun
rules.rtsai = A.I. RTS [red](WIP)
-rules.rtsai.campaign = RTS Attack AI
-rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner.
+rules.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.rtsminsquadsize = Ukuran Regu Minimum
rules.rtsmaxsquadsize = Ukuran Regu Maksimum
rules.rtsminattackweight = Berat Serangan Minimum
@@ -1385,19 +1424,21 @@ rules.corecapture = Kuasai Inti Saat Penghancuran
rules.polygoncoreprotection = Poligon Pelindung Inti
rules.placerangecheck = Pemeriksaan Jarak Penempatan
rules.enemyCheat = Sumber Daya Musuh Tak Terbatas
-rules.blockhealthmultiplier = Penggandaan Darah Blok
+rules.blockhealthmultiplier = Penggandaan Nyawa Blok
rules.blockdamagemultiplier = Penggandaan Kekuatan Blok
-rules.unitbuildspeedmultiplier = Penggandaan Kecepatan Munculnya Unit
+rules.unitbuildspeedmultiplier = Penggandaan Kecepatan Pembuatan Unit
rules.unitcostmultiplier = Penggandaan Bahan Pembuatan Unit
-rules.unithealthmultiplier = Penggandaan Darah Unit
+rules.unithealthmultiplier = Penggandaan Nyawa Unit
rules.unitdamagemultiplier = Penggandaan Kekuatan Unit
rules.unitcrashdamagemultiplier = Penggandaan Kerusakan Jatuhnya Unit
+rules.unitminespeedmultiplier = Penggandaan Kecepatan Unit Menambang
rules.solarmultiplier = Penggandaan Tenaga Surya
rules.unitcapvariable = Inti Memengaruhi Batas Unit
rules.unitpayloadsexplode = Muatan yang Dibawa Meledak Bersama Unit
rules.unitcap = Batas Unit Dasar
rules.limitarea = Batas Area Peta
rules.enemycorebuildradius = Dilarang Membangun di Radius Inti Musuh :[lightgray] (ubin)
+rules.extracorebuildradius = Radius Extra Dilarang Membangun:[lightgray] (ubin)
rules.wavespacing = Jarak Gelombang:[lightgray] (detik)
rules.initialwavespacing = Jarak Gelombang Awal:[lightgray] (detik)
rules.buildcostmultiplier = Penggandaan Harga Bangunan
@@ -1419,9 +1460,12 @@ rules.title.teams = Tim
rules.title.planet = Planet
rules.lighting = Penerangan
rules.fog = Kabut Perang
-rules.invasions = Enemy Sector Invasions
-rules.showspawns = Show Enemy Spawns
-rules.randomwaveai = Unpredictable Wave AI
+rules.invasions = Invasi Sektor Musuh
+rules.legacylaunchpads = Mekanisme Alas Peluncur Warisan
+rules.legacylaunchpads.info = Mengizinkan penggunaan alas peluncur tanpa alas pendaratan, seperti pada versi 7.0.
+landingpad.legacy.disabled = [scarlet]\ue815 Nonaktifkan[lightgray] (Alas Peluncur Warisan diaktifkan)
+rules.showspawns = Tampilkan Titik Pendaratan Musuh
+rules.randomwaveai = Gelombang AI yang Tak Terduga
rules.fire = Api
rules.anyenv =
rules.explosions = Kekuatan Ledakan Blok/Unit
@@ -1430,9 +1474,9 @@ rules.weather = Cuaca
rules.weather.frequency = Frekuensi:
rules.weather.always = Selalu
rules.weather.duration = Durasi:
-rules.randomwaveai.info = Makes units spawned in waves target random structures instead of directly attacking the core or power generators.
-rules.placerangecheck.info = Mencegah pemain menempatkan apa pun di dekat bangunan musuh. Ketika mencoba memasang menara, jangkauannya akan ditingkatkan sehingga menara tidak akan bisa menjangkau musuh.
+rules.randomwaveai.info = Membuat unit yang muncul dalam gelombang menargetkan struktur bangunan secara acak\nalih-alih menyerang inti atau generator pembangkit listrik secara langsung.
+rules.placerangecheck.info = Mencegah pemain menempatkan apa pun di dekat bangunan musuh.\nKetika mencoba memasang menara, jangkauannya akan ditingkatkan sehingga menara tidak akan bisa menjangkau musuh.
rules.onlydepositcore.info = Mencegah unit menyimpan bahan ke dalam bangunan apa pun kecuali inti.
content.item.name = Bahan
@@ -1441,7 +1485,7 @@ content.unit.name = Unit
content.block.name = Blok
content.status.name = Status Efek
content.sector.name = Sektor
-content.team.name = Fraksi
+content.team.name = Faksi
wallore = (Dinding)
@@ -1465,7 +1509,7 @@ item.fissile-matter.name = Bahan Fisil
item.beryllium.name = Berilium
item.tungsten.name = Tungsten
item.oxide.name = Oksida
-item.carbide.name = Karbit
+item.carbide.name = Karbida
item.dormant-cyst.name = Kista Nonaktif
liquid.water.name = Air
@@ -1473,7 +1517,7 @@ liquid.slag.name = Lava
liquid.oil.name = Minyak
liquid.cryofluid.name = Kriogenik
liquid.neoplasm.name = Neoplasma
-liquid.arkycite.name = Arkycite
+liquid.arkycite.name = Arkisit
liquid.gallium.name = Galium
liquid.ozone.name = Ozon
liquid.hydrogen.name = Hidrogen
@@ -1547,7 +1591,7 @@ block.cliff.name = Bukit
block.sand-boulder.name = Batu Pasir Besar
block.basalt-boulder.name = Batu Basal Besar
block.grass.name = Rumput
-block.molten-slag.name = Lahar
+block.molten-slag.name = Lava
block.pooled-cryofluid.name = Kriogenik
block.space.name = Luar Angkasa
block.salt.name = Garam
@@ -1575,9 +1619,9 @@ block.kiln.name = Pembakar
block.graphite-press.name = Pencetak Grafit
block.multi-press.name = Multi-Cetak
block.constructing = {0} [lightgray](Membangun)
-block.spawn.name = Titik Musuh Muncul
-block.remove-wall.name = Remove Wall
-block.remove-ore.name = Remove Ore
+block.spawn.name = Titik Pendaratan Musuh
+block.remove-wall.name = Hapus Dinding
+block.remove-ore.name = Hapus Bijih
block.core-shard.name = Inti: Shard
block.core-foundation.name = Inti: Foundation
block.core-nucleus.name = Inti: Nucleus
@@ -1627,7 +1671,7 @@ block.dark-panel-6.name = Panel Gelap 6
block.dark-metal.name = Besi Gelap
block.basalt.name = Basal
block.hotrock.name = Batu Panas
-block.magmarock.name = Batu Lahar
+block.magmarock.name = Batu Magma
block.copper-wall.name = Dinding Tembaga
block.copper-wall-large.name = Dinding Tembaga Besar
block.titanium-wall.name = Dinding Titanium
@@ -1659,8 +1703,8 @@ block.reinforced-message.name = Pesan yang Diperkuat
block.world-message.name = Pesan Dunia
block.world-switch.name = Saklar Dunia
block.illuminator.name = Lampu
-block.overflow-gate.name = Gerbang Luap
-block.underflow-gate.name = Gerbang Luap Terbalik
+block.overflow-gate.name = Gerbang Luapan
+block.underflow-gate.name = Gerbang Luapan Terbalik
block.silicon-smelter.name = Pelebur Silikon
block.phase-weaver.name = Pengerajut Phase
block.pulverizer.name = Penghancur
@@ -1740,7 +1784,10 @@ block.spectre.name = Spectre
block.meltdown.name = Meltdown
block.foreshadow.name = Foreshadow
block.container.name = Kontainer
-block.launch-pad.name = Alas Peluncur
+block.launch-pad.name = Alas Peluncur (Warisan)
+block.advanced-launch-pad.name = Alas Peluncur
+block.landing-pad.name = Alas Pendaratan
+
block.segment.name = Segment
block.ground-factory.name = Pabrik Unit Darat
block.air-factory.name = Pabrik Unit Udara
@@ -1766,11 +1813,11 @@ block.constructor.description = Membuat bangunan hingga ubin berukuran 2x2.
block.large-constructor.name = Konstruktor Besar
block.large-constructor.description = Membuat bangunan hingga ubin berukuran 4x4.
block.deconstructor.name = Dekonstruktor Besar
-block.deconstructor.description = Mendekonstruksi bangunan dan unit. Mengembalikan 100% dari biaya bahan.
+block.deconstructor.description = Mendekonstruksi bangunan dan unit. Mengembalikan 100% dari biaya pembuatan.
block.payload-loader.name = Pemuat Muatan
-block.payload-loader.description = Memuat cairan dan bahan ke dalam blok.
+block.payload-loader.description = Memuat cairan dan item ke dalam blok.
block.payload-unloader.name = Pembongkar Muatan
-block.payload-unloader.description = Membongkar cairan dan bahan dari blok.
+block.payload-unloader.description = Membongkar muatan cairan dan item dari blok.
block.heat-source.name = Sumber Panas
block.heat-source.description = Blok ukuran 1x1 yang memberikan panas tak terhingga.
@@ -1798,6 +1845,8 @@ block.arkyic-vent.name = Ventilasi Arkisit
block.yellow-stone-vent.name = Ventilasi Batu Kuning
block.red-stone-vent.name = Ventilasi Batu Merah
block.crystalline-vent.name = Ventilasi Kristal
+block.stone-vent.name = Ventilasi Batu
+block.basalt-vent.name = Ventilasi Basal
block.redmat.name = Matras Merah
block.bluemat.name = Matras Biru
block.core-zone.name = Zona Inti
@@ -1837,10 +1886,10 @@ block.electric-heater.name = Pemanas Listrik
block.slag-heater.name = Pemanas Lava
block.phase-heater.name = Pemanas Phase
block.heat-redirector.name = Pengalih Panas
-block.small-heat-redirector.name = Small Heat Redirector
+block.small-heat-redirector.name = Pengalih Panas Kecil
block.heat-router.name = Pengarah Panas
block.slag-incinerator.name = Insinerator Lava
-block.carbide-crucible.name = Tungku Peleburan Karbit
+block.carbide-crucible.name = Tungku Peleburan Karbida
block.slag-centrifuge.name = Sentrifugal Lava
block.surge-crucible.name = Tungku Peleburan Logam
block.cyanogen-synthesizer.name = Penyintesis Sianogen
@@ -1851,8 +1900,8 @@ block.beryllium-wall-large.name = Dinding Berilium Besar
block.tungsten-wall.name = Dinding Tungsten
block.tungsten-wall-large.name = Dinding Tungsten Besar
block.blast-door.name = Pintu Blast
-block.carbide-wall.name = Dinding Karbit
-block.carbide-wall-large.name = Dinding Karbit Besar
+block.carbide-wall.name = Dinding Karbida
+block.carbide-wall-large.name = Dinding Karbida Besar
block.reinforced-surge-wall.name = Dinding Logam yang Diperkuat
block.reinforced-surge-wall-large.name = Dinding Logam Besar yang Diperkuat
block.shielded-wall.name = Dinding Berperisai
@@ -1864,7 +1913,7 @@ block.shield-projector.name = Proyektor Perisai
block.large-shield-projector.name = Proyektor Perisai Besar
block.armored-duct.name = Pipa Lapis Baja
block.overflow-duct.name = Pipa Luapan
-block.underflow-duct.name = Pipa Arus Bawah
+block.underflow-duct.name = Pipa Luapan Terbalik
block.duct-unloader.name = Pipa Pembongkar Muatan
block.surge-conveyor.name = Konveyor Berbahan Logam
block.surge-router.name = Pengarah Berbahan Logam
@@ -1873,7 +1922,7 @@ block.unit-cargo-unload-point.name = Titik Bongkar Muatan Unit Kargo
block.reinforced-pump.name = Pompa yang Diperkuat
block.reinforced-conduit.name = Saluran yang Diperkuat
block.reinforced-liquid-junction.name = Persimpangan Cairan yang Diperkuat
-block.reinforced-bridge-conduit.name = Saluran Jembatan yang Diperkuat
+block.reinforced-bridge-conduit.name = Jembatan Saluran yang Diperkuat
block.reinforced-liquid-router.name = Pengarah Cairan yang Diperkuat
block.reinforced-liquid-container.name = Kontainer Cairan yang Diperkuatkan
block.reinforced-liquid-tank.name = Tangki Cairan yang Diperkuatkan
@@ -1885,9 +1934,9 @@ block.chemical-combustion-chamber.name = Ruang Pembakaran Kimia
block.pyrolysis-generator.name = Generator Pirolisis
block.vent-condenser.name = Kondensor Ventilasi
block.cliff-crusher.name = Penghancur Tebing
-block.large-cliff-crusher.name = Advanced Cliff Crusher
+block.large-cliff-crusher.name = Penghancur Tebing Canggih
block.plasma-bore.name = Bor Plasma
-block.large-plasma-bore.name = Bor Plasma Besar
+block.large-plasma-bore.name = Bor Plasma Canggih
block.impact-drill.name = Bor Tumbukan
block.eruption-drill.name = Bor Erupsi
block.core-bastion.name = Inti: Bastion
@@ -1903,11 +1952,11 @@ block.afflict.name = Afflict
block.lustre.name = Lustre
block.scathe.name = Scathe
block.tank-refabricator.name = Pabrikator Ulang Tank
-block.mech-refabricator.name = Pabrikator Ulang Mech
+block.mech-refabricator.name = Pabrikator Ulang Meka
block.ship-refabricator.name = Pabrikator Ulang Kapal
block.tank-assembler.name = Perakitan Tank
block.ship-assembler.name = Perakitan Kapal
-block.mech-assembler.name = Perakitan Mech
+block.mech-assembler.name = Perakitan Meka
block.reinforced-payload-conveyor.name = Konveyor Muatan yang Diperkuat
block.reinforced-payload-router.name = Pengarah Muatan yang Diperkuat
block.payload-mass-driver.name = Penembak Muatan Massal
@@ -1916,7 +1965,7 @@ block.canvas.name = Kanvas
block.world-processor.name = Prosessor Dunia
block.world-cell.name = Sel Dunia
block.tank-fabricator.name = Pabrikator Tank
-block.mech-fabricator.name = Pabrikator Mech
+block.mech-fabricator.name = Pabrikator Meka
block.ship-fabricator.name = Pabrikator Kapal
block.prime-refabricator.name = Pabrikator Ulang Perdana
block.unit-repair-tower.name = Menara Perbaikan Unit
@@ -1946,95 +1995,95 @@ team.blue.name = Biru
hint.skip = Lewati
hint.desktopMove = Gunakan [accent][[WASD][] untuk bergerak.
hint.zoom = [accent]Gulir[] untuk membesarkan atau mengecilkan layar.
-hint.desktopShoot = [accent][[Klik Kanan][] untuk menembak.
-hint.depositItems = Untuk memindahkan bahan, seret dari pesawatmu ke inti.
+hint.desktopShoot = [accent][[Klik Kiri][] untuk menembak.
+hint.depositItems = Untuk memindahkan bahan, seret dari unit intimu ke inti.
hint.respawn = Untuk muncul kembali seperti awal, tekan [accent][[V][].
-hint.respawn.mobile = Anda telah mengambil alih kendali dari sebuah unit atau bangunan. Untuk muncul kembali sebagai pesawat, [accent]ketuk avatar di kiri atas.[]
+hint.respawn.mobile = Anda telah mengambil alih kendali dari sebuah unit atau bangunan. Untuk muncul kembali sebagai unit inti, [accent]ketuk avatar di kiri atas[].
hint.desktopPause = Tekan [accent][[Spasi][] untuk menjeda dan menghentikan jeda permainan.
-hint.breaking = [accent]Klik kanan[] dan tarik untuk menghancurkan blok.
-hint.breaking.mobile = Aktifkan \ue817 [accent]palu[] di kanan bawah dan ketuk untuk menghancurkan blok.\n\nTahan jari Anda untuk beberapa saat lalu seret pada bagian yang dipilih untuk menghancurkannya.
-hint.blockInfo = Lihat informasi dari sebuah blok dengan memilihnya di [accent]menu bangun[], lalu pilih tombol [accent][[?][] di sebelah kanan.
+hint.breaking = [accent]Klik Kanan[] dan seret untuk menghancurkan blok.
+hint.breaking.mobile = Aktifkan :hammer: [accent]palu[] di kanan bawah dan ketuk untuk menghancurkan blok.\n\nTahan jari Anda untuk beberapa saat lalu seret pada bagian yang dipilih untuk menghancurkannya.
+hint.blockInfo = Lihat informasi dari sebuah blok dengan memilihnya di [accent]menu bangunan[], lalu pilih tombol [accent][[?][] di sebelah kanan.
hint.derelict = Bangunan berwarna [accent]abu-abu[] adalah sisa-sisa dari markas lama yang hancur dan tidak dapat berfungsi kembali.\n\nBangunan tersebut dapat [accent]didekonstruksi[] menjadi sumber daya.
-hint.research = Gunakan tombol \ue875 [accent]Penelitian[] untuk mempelajari teknologi baru.
-hint.research.mobile = Gunakan tombol \ue875 [accent]Riset[] di \ue88c [accent]Menu[] untuk mempelajari teknologi baru.
+hint.research = Gunakan tombol :tree: [accent]Penelitian[] untuk mempelajari teknologi baru.
+hint.research.mobile = Gunakan tombol :tree: [accent]Penelitian[] di :menu: [accent]Menu[] untuk mempelajari teknologi baru.
hint.unitControl = Tekan dan Tahan [accent][[L-ctrl][] dan [accent]klik[] untuk mengendalikan unit atau turret sekutu.
hint.unitControl.mobile = [accent][Ketuk dua kali[] untuk mengendalikan unit atau turret sekutu.
-hint.unitSelectControl = Untuk mengendalikan unit, masuki [accent]mode perintah[] dengan menahan tombol [accent]L-shift.[]\nDalam mode perintah, klik dan seret untuk memilih unit. [accent]Klik Kanan[] pada suatu lokasi atau target untuk memerintahkan unit.
+hint.unitSelectControl = Untuk mengendalikan unit, masuki [accent]mode perintah[] dengan menahan tombol [accent]L-shift[].\nDalam mode perintah, klik dan seret untuk memilih unit. [accent]Klik Kanan[] pada suatu lokasi atau target untuk memerintahkan unit.
hint.unitSelectControl.mobile = Untuk mengendalikan unit, masuki [accent]mode perintah[] dengan menekan tombol [accent]perintah[] di pojok kanan bawah.\nDalam mode perintah, tekan layar untuk beberapa saat dan seret untuk memilih unit. ketuk pada suatu lokasi atau target untuk memerintahkan unit.
-hint.launch = Ketika sumber daya sudah mencukupi, Anda dapat [accent]Meluncurkan Inti[] dengan memilih sektor terdekat dari \ue827 [accent]Peta[] di kanan bawah.
-hint.launch.mobile = Ketika sumber daya sudah mencukupi, Anda bisa [accent]Meluncurkan Inti[] dengan memilih sektor terdekat dari \ue827 [accent]Peta[] dibagian \ue88c [accent]Menu[].
+hint.launch = Ketika sumber daya sudah mencukupi, Anda dapat [accent]Meluncurkan Inti[] dengan memilih sektor terdekat di :map: [accent]Peta[] di kanan bawah.
+hint.launch.mobile = Ketika sumber daya sudah mencukupi, Anda bisa [accent]Meluncurkan Inti[] dengan memilih sektor terdekat di :map: [accent]Peta[] di bagian :menu: [accent]Menu[].
hint.schematicSelect = Tahan tombol [accent][[F][] dan seret ke bangunan untuk menyalin bangunan.\n\n[accent][[Klik tengah][] untuk menyalin satu jenis blok.
-hint.rebuildSelect = Tahan tombol [accent][[B][] dan seret untuk memilih bagian blok yang hancur.\nIni akan membangunnya kembali secara otomatis.
-hint.rebuildSelect.mobile = Pilih Tombol \ue874 salin, lalu ketuk tombol \ue80f bangun kembali dan seret untuk memilih blok yang hancur.\nIni akan membangun ulang secara otomatis.
+hint.rebuildSelect = Tahan tombol [accent][[B][] dan seret untuk memilih bagian blok yang hancur.\nBlok akan dibangun ulang secara otomatis.
+hint.rebuildSelect.mobile = Pilih Tombol :copy: salin, lalu ketuk tombol :wrench: bangun kembali dan seret untuk memilih blok yang hancur.\nIni akan membangun ulang secara otomatis.
hint.conveyorPathfind = Tahan [accent][[L-Ctrl][] ketika menarik konveyor untuk membuat jalur secara otomatis.
-hint.conveyorPathfind.mobile = Ketuk \ue844 [accent]mode diagonal[] dan tarik konveyor untuk membuat jalur secara otomatis.
+hint.conveyorPathfind.mobile = Ketuk :diagonal: [accent]mode diagonal[] dan tarik konveyor untuk membuat jalur secara otomatis.
hint.boost = Tahan [accent][[L-Shift][] untuk terbang dengan unit.\n\nHanya beberapa unit darat yang memiliki pendorong.
hint.payloadPickup = Tekan [accent][[[] untuk mengambil blok kecil atau unit.
hint.payloadPickup.mobile = [accent]Ketuk dan tahan[] untuk mengambil blok kecil atau unit.
hint.payloadDrop = Tekan [accent]][] untuk menurunkan muatan.
hint.payloadDrop.mobile = [accent]Tekan dan tahan[] di lokasi yang kosong untuk menurunkan muatan.
-hint.waveFire = [accent]Wave[] yang terisi dengan air akan memadamkan air dalam jangkauannya.
-hint.generator = \uf879 [accent]Generator Pembakar[] membakar batu bara dan menghasilkan energi ke blok yang berdekatan.\n\nTransmisi energi dapat diperluas dengan \uf87f [accent]Simpul Daya[].
-hint.guardian = Unit [accent]Penjaga[] adalah unit yang diperkuat. Amunisi lemah seperti [accent]Tembaga[] dan [accent]Timah[] [scarlet]tidak efektif[].\n\nGunakan menara yang lebih bagus atau amunisi yang lebih kuat seperti \uf835 [accent]Grafit[] \uf861Duo/\uf859Salvo untuk menghancurkan Penjaga.
-hint.coreUpgrade = Inti dapat ditingkatkan dengan cara [accent]meletakkan Inti yang lebih besar di atasnya[].\n\nLetakan sebuah inti \uf868 [accent]Foundation[] diatas inti \uf869 [accent]Shard[]. Pastikan terdapat ruang kosong dari bangunan yang lain.
-hint.presetLaunch = [accent]Zona pendaratan[] yang berwarna abu-abu, seperti [accent]Hutan yang Beku[], dapat diluncurkan dari mana saja. Sektor seperti ini tidak perlu diluncurkan dari sektor terdekat milik Anda.\n\n[accent]Sektor yang bernomor[], seperti yang ini, bersifat [accent]opsional[].
+hint.waveFire = Menara [accent]Wave[] yang terisi dengan air akan memadamkan api dalam jangkauannya.
+hint.generator = :combustion-generator: [accent]Generator Pembakar[] membakar batu bara dan menghasilkan energi ke blok yang berdekatan.\n\nTransmisi energi dapat diperluas dengan :power-node: [accent]Simpul Daya[].
+hint.guardian = Unit [accent]Penjaga[] adalah unit yang diperkuat. Amunisi lemah seperti [accent]Tembaga[] dan [accent]Timah[] [scarlet]tidak efektif[].\n\nGunakan menara yang lebih bagus atau amunisi yang lebih kuat seperti :graphite: [accent]Grafit[] :duo:Duo/:salvo:Salvo untuk menghancurkan Penjaga.
+hint.coreUpgrade = Inti dapat ditingkatkan dengan cara [accent]meletakkan Inti yang lebih besar di atasnya[].\n\nLetakkan sebuah inti :core-foundation: [accent]Foundation[] diatas inti :core-shard: [accent]Shard[]. Pastikan terdapat ruang kosong dari bangunan yang lain.
+hint.presetLaunch = [accent]Zona pendaratan[] yang berwarna abu-abu, seperti [accent]Hutan Beku[] dapat diluncurkan dari mana saja. Sektor seperti ini tidak perlu diluncurkan dari sektor terdekat milik Anda.\n\n[accent]Sektor yang bernomor[], seperti yang ini, bersifat [accent]opsional[].
hint.presetDifficulty = Sektor ini memiliki [scarlet]tingkat ancaman musuh yang tinggi[].\nMeluncurkan ke sektor tersebut [accent]tidak disarankan[] tanpa teknologi yang sesuai dan persiapan yang matang.
hint.coreIncinerate = Setelah inti penuh dengan suatu barang, barang yang sejenis akan [accent]dihanguskan[].
-hint.factoryControl = Untuk menentukan [accent]tempat keluar[] unit pabrik, klik blok pabrik ketika dalam mode perintah, lalu klik kanan lokasi yang diinginkan.\nUnit yang diproduksi akan langsung bergerak ke tempat yang ditentukan.
-hint.factoryControl.mobile = Untuk menentukan [accent]tempat keluar[] unit pabrik, ketuk blok pabrik ketika dalam mode perintah, lalu ketuk lokasi yang diinginkan.\nUnit yang diproduksi akan langsung bergerak ke tempat yang ditentukan.
+hint.factoryControl = Untuk menentukan [accent]tempat keluar[] unit pabrik, klik blok pabrik ketika dalam mode perintah, lalu klik kanan pada lokasi yang diinginkan.\nUnit yang diproduksi akan langsung bergerak ke tempat yang ditentukan.
+hint.factoryControl.mobile = Untuk menentukan [accent]tempat keluar[] unit pabrik, ketuk blok pabrik ketika dalam mode perintah, lalu ketuk pada lokasi yang diinginkan.\nUnit yang diproduksi akan langsung bergerak ke tempat yang ditentukan.
-gz.mine = Bergerak di dekat \uf8c4 [accent]bijih tembaga[] di tanah dan klik untuk mulai menambang.
-gz.mine.mobile = Bergerak di dekat \uf8c4 [accent]bijih tembaga[] di tanah dan ketuk untuk mulai menambang.
-gz.research = Buka \ue875 pohon teknologi.\nRiset \uf870 [accent]Bor Mekanik[], lalu pilih dari menu di kanan bawah.\nKlik pada tambalan tembaga untuk menempatkannya.
-gz.research.mobile = Buka \ue875 pohon teknologi.\nRiset \uf870 [accent]Bor Mekanik[], lalu pilih dari menu di kanan bawah.\nKetuk pada tambalan tembaga untuk menempatkannya.\n\nKetuk \ue800 [accent]tanda centang[] di kanan bawah untuk mengonfirmasi.
-gz.conveyors = Riset dan tempatkan \uf896 [accent]konveyor[] untuk memindahkan sumber daya yang ditambang\ndari bor ke inti.\n\nKlik dan seret untuk menempatkan beberapa konveyor.\n[accent]Gulir[] untuk memutar arah konveyor
-gz.conveyors.mobile = Riset dan tempatkan \uf896 [accent]konveyor[] untuk memindahkan sumber daya yang ditambang\ndari bor ke inti.\n\nTahan jari Anda sebentar dan seret untuk menempatkan beberapa konveyor.
-gz.drills = Perluas operasi penambangan.\ntempatkan lebih banyak Bor Mekanik.\nTambang 100 tembaga.
-gz.lead = \uf837 [accent]Timah[] adalah sumber daya lain yang umum digunakan.\nSiapkan bor untuk menambang timah.
-gz.moveup = \ue804 Bergerak ke atas untuk objektif lebih lanjut.
-gz.turrets = Riset dan tempatkan 2 menara \uf861 [accent]Duo[] untuk mempertahankan inti.\nMenara Duo membutuhkan \uf838 [accent]amunisi[] dari konveyor.
+gz.mine = Bergerak di dekat :ore-copper: [accent]bijih tembaga[] di tanah dan klik untuk mulai menambang.
+gz.mine.mobile = Bergerak di dekat :ore-copper: [accent]bijih tembaga[] di tanah dan ketuk untuk mulai menambang.
+gz.research = Buka :tree: pohon teknologi.\nRiset :mechanical-drill: [accent]Bor Mekanis[], lalu pilih dari menu di kanan bawah.\nKlik pada sekumpulan bijih tembaga untuk menempatkannya.
+gz.research.mobile = Buka :tree: pohon teknologi.\nRiset :mechanical-drill: [accent]Bor Mekanis[], lalu pilih dari menu di kanan bawah.\nKetuk pada sekumpulan bijih tembaga untuk menempatkannya.\n\nKetuk :ok: [accent]tanda centang[] di kanan bawah untuk mengonfirmasi.
+gz.conveyors = Riset dan tempatkan :conveyor: [accent]konveyor[] untuk memindahkan sumber daya yang ditambang\ndari bor ke inti.\n\nKlik dan seret untuk menempatkan beberapa konveyor.\n[accent]Gulir[] untuk memutar arah konveyor
+gz.conveyors.mobile = Riset dan tempatkan :conveyor: [accent]konveyor[] untuk memindahkan sumber daya yang ditambang\ndari bor ke inti.\n\nTahan jari Anda sebentar dan seret untuk menempatkan beberapa konveyor.
+gz.drills = Perluas operasi penambangan.\ntempatkan lebih banyak Bor Mekanis.\nTambang 100 tembaga.
+gz.lead = :lead: [accent]Timah[] adalah sumber daya lain yang umum digunakan.\nSiapkan bor untuk menambang timah.
+gz.moveup = :up: Bergerak ke atas untuk objektif lebih lanjut.
+gz.turrets = Riset dan tempatkan 2 menara :duo: [accent]Duo[] untuk mempertahankan inti.\nMenara Duo membutuhkan amunisi :copper: [accent]tembaga[] dari konveyor.
gz.duoammo = Suplai menara Duo dengan [accent]tembaga[], menggunakan konveyor.
-gz.walls = [accent]Dinding[] dapat menahan kerusakan yang mencapai bangunan.\nTempatkan \uf8ae [accent]dinding tembaga[] di sekitar menara.
+gz.walls = [accent]Dinding[] dapat menahan kerusakan yang mencapai bangunan.\nTempatkan :copper-wall: [accent]dinding tembaga[] di sekitar menara.
gz.defend = Musuh datang, bersiaplah untuk bertahan.
-gz.aa = Unit terbang tidak dapat dengan mudah dibunuh dengan menara standar.Menara\n\uf860 [accent]Scatter[] memberikan anti-udara yang sangat baik, tetapi membutuhkan \uf837 [accent]timah[] sebagai amunisi.
+gz.aa = Unit terbang tidak dapat dengan mudah dibunuh dengan menara standar.\nMenara :scatter: [accent]Scatter[] memberikan anti-udara yang sangat baik, tetapi membutuhkan :lead: [accent]timah[] sebagai amunisi.
gz.scatterammo = Suplai Menara Scatter dengan [accent]timah[], menggunakan konveyor.
gz.supplyturret = [accent]Suplai Menara
gz.zone1 = Ini adalah zona pendaratan musuh.
-gz.zone2 = Apa pun yang dibangun dalam radius tersebut akan hancur ketika gelombang mulai.
-gz.zone3 = Gelombang akan dimulai sekarang.Bersiap.
-gz.finish = Bangun lebih banyak menara, tambang lebih banyak sumber daya,\ndan bertahan melawan semua gelombang [accent]untuk menaklukkan sektor[].
+gz.zone2 = Apa pun yang dibangun dalam radius tersebut \nakan hancur ketika gelombang mulai.
+gz.zone3 = Gelombang akan dimulai sekarang. Bersiap.
+gz.finish = Bangun lebih banyak menara, tambang lebih banyak sumber daya,\ndan bertahanlah terhadap semua gelombang untuk [accent]menaklukkan sektor[].
-onset.mine = Klik untuk menambang \uf748 [accent]berillium[] dari dinding.\n\nGunakan tombol [accent][[WASD] untuk bergerak.
-onset.mine.mobile = Ketuk untuk menambang \uf748 [accent]berillium[] dari dinding.
-onset.research = Buka \ue875 pohon teknologi.\nRiset, dan tempatkan \uf73e [accent]kondensor turbin[] di ventilasi.\nIni akan menghasilkan [accent]tenaga[].
-onset.bore = Riset dan tempatkan \uf741 [accent]bor plasma[].\nIni secara otomatis mengekstraksi sumber daya dari dinding.
-onset.power = Untuk [accent]menyalakan[] bor plasma, riset dan tempatkan \uf73d [accent]simpul sinar[].\nHubungkan kondensor turbin ke bor plasma.
-onset.ducts = Riset dan tempatkan \uf799 [accent]pipa[] untuk memindahkan sumber daya yang ditambang dari bor plasma ke inti.\nklik dan seret untuk menempatkan beberapa saluran.\n[accent]Gulir[] untuk memutar.
-onset.ducts.mobile = Riset dan tempatkan \uf799 [accent]saluran[] untuk memindahkan sumber daya yang ditambang dari bor plasma ke inti.\n\nTahan jari Anda sebentar dan seret untuk menempatkan beberapa saluran.
-onset.moremine = Perluas operasi penambangan.\nTempatkan lebih banyak Bor Plasma dan gunakan simpul sinar dan pipa untuk menambangnya.\nTambang 200 berillium.
-onset.graphite = Blok yang lebih kompleks membutuhkan \uf835 [accent]grafit[].\nSiapkan bor plasma untuk menambang grafit.
-onset.research2 = Mulailah meneliti [accent]bangunan pabrik[].\nRiset \uf74d [accent]penghancur tebing[] dan \uf779 [accent]tungku listrik silikon[].
-onset.arcfurnace = Tungku Listrik Silikon membutuhkan \uf834 [accent]pasir[] dan \uf835 [accent]grafit[] untuk membuat \uf82f [accent]silikon[].\n[accent]Tenaga[] juga dibutuhkan.
-onset.crusher = Gunakan \uf74d [accent]penghancur tebing[] untuk menambang pasir.
-onset.fabricator = Gunakan [accent]unit[] untuk menjelajah peta, mempertahakan bangunan, dan menyerang musuh. Riset dan tempatkan \uf6a2 [accent]fabricator tank[].
+onset.mine = Klik untuk menambang :beryllium: [accent]berilium[] dari dinding.\n\nGunakan tombol [accent][[WASD] untuk bergerak.
+onset.mine.mobile = Ketuk untuk menambang :beryllium: [accent]berilium[] dari dinding.
+onset.research = Buka :tree: pohon teknologi.\nRiset, dan tempatkan :turbine-condenser: [accent]kondensor turbin[] di ventilasi.\nIni akan menghasilkan [accent]tenaga[].
+onset.bore = Riset dan tempatkan :plasma-bore: [accent]bor plasma[].\nIni secara otomatis menambang sumber daya dari dinding.
+onset.power = Untuk [accent]menyalakan[] bor plasma, riset dan tempatkan :beam-node: [accent]simpul sinar[].\nHubungkan kondensor turbin ke bor plasma.
+onset.ducts = Riset dan tempatkan :duct: [accent]pipa[] untuk memindahkan sumber daya yang ditambang dari bor plasma ke inti.\nklik dan seret untuk menempatkan beberapa pipa.\n[accent]Gulir[] untuk memutar.
+onset.ducts.mobile = Riset dan tempatkan :duct: [accent]saluran[] untuk memindahkan sumber daya yang ditambang dari bor plasma ke inti.\n\nTahan jari Anda sebentar dan seret untuk menempatkan beberapa pipa.
+onset.moremine = Perluas operasi penambangan.\nTempatkan lebih banyak Bor Plasma, nyalakan bor plasma menggunakan simpul sinar,\nlalu gunakan pipa untuk memindahkan sumber daya yang ditambang ke inti.\n\nTambang 200 berilium.
+onset.graphite = Blok yang lebih kompleks membutuhkan :graphite: [accent]grafit[].\nSiapkan bor plasma untuk menambang grafit.
+onset.research2 = Mulailah meneliti [accent]bangunan pabrik[].\nRiset :cliff-crusher: [accent]penghancur tebing[] dan :silicon-arc-furnace: [accent]tungku listrik silikon[].
+onset.arcfurnace = Tungku Listrik Silikon membutuhkan :sand: [accent]pasir[] dan :graphite: [accent]grafit[] untuk membuat :silicon: [accent]silikon[].\n[accent]Tenaga[] juga dibutuhkan.
+onset.crusher = Gunakan :cliff-crusher: [accent]penghancur tebing[] untuk menambang pasir.
+onset.fabricator = Gunakan [accent]unit[] untuk menjelajah peta, mempertahakan bangunan, dan menyerang musuh. Riset dan tempatkan :tank-fabricator: [accent]pabrikator tank[].
onset.makeunit = Produksi sebuah unit.\nGunakan tombol "?" untuk melihat persyaratan pabrik yang dipilih.
-onset.turrets = Unit sangatlah efektif, namun [accent]menara[] memberikan kemampuan pertahanan yang lebih baik jika digunakan secara efektif.\nTempatkan menara \uf6eb [accent]Breach[].\nMenara membutuhkan \uf748 [accent]amunisi[].
-onset.turretammo = Suplai menara dengan [accent]amunisi berillium.[]
-onset.walls = [accent]Dinding[] dapat mencegah kerusakan yang datang pada bangunan.\nTempatkan beberapa \uf6ee [accent]dinding berillium[] di sekitar menara.
+onset.turrets = Unit sangatlah efektif, namun [accent]menara[] memberikan kemampuan pertahanan yang lebih baik jika digunakan secara efektif.\nTempatkan menara :breach: [accent]Breach[].\nMenara membutuhkan amunisi :beryllium: [accent]berilium[].
+onset.turretammo = Suplai menara dengan [accent]amunisi berilium.[]
+onset.walls = [accent]Dinding[] dapat mencegah kerusakan yang datang pada bangunan.\nTempatkan beberapa :beryllium-wall: [accent]dinding berilium[] di sekitar menara.
onset.enemies = Musuh datang, bersiaplah untuk bertahan.
onset.defenses = [accent]Siapkan pertahanan:[lightgray] {0}
-onset.attack = Musuh dalam keadaan rentan diserang. Luncurkan Serangan balik.
-onset.cores = Inti baru dapat ditempatkan di [accent]ubin inti[].\nInti baru berfungsi sebagai pangkalan depan dan berbagi sumber daya dengan inti lainnya.\nTempatkan inti\uf725.
+onset.attack = Musuh dalam keadaan rentan diserang. Luncurkan serangan balik.
+onset.cores = Inti baru dapat ditempatkan di [accent]ubin inti[].\nInti baru berfungsi sebagai pangkalan depan dan berbagi sumber daya dengan inti lainnya.\nTempatkan sebuah :core-bastion: inti.
onset.detect = Musuh akan dapat mendeteksi Anda dalam 2 menit.\nSiapkan pertahanan, penambangan, dan produksi.
onset.commandmode = Tahan [accent]shift[] untuk masuk ke[accent]mode perintah[].\n[accent]Klik kiri dan seret[] untuk memilih unit.\n[accent]Klik kanan[] untuk memerintahkan unit yang dipilih untuk bergerak atau menyerang.
-onset.commandmode.mobile = Tekan [accent]tombol perintah[] untuk masuk ke [accent]mode perintah[].\nTekan dan tahan jari Anda, lalu [accent]seret[] untuk memilih unit.\n[accent]Ketuk[] untuk memerintahkan unit yang dipilih untuk bergerak atau menyerang.
+onset.commandmode.mobile = Tekan tombol [accent]perintah[] untuk masuk ke [accent]mode perintah[].\nTekan dan tahan jari Anda, lalu [accent]seret[] untuk memilih unit.\n[accent]Ketuk[] untuk memerintahkan unit yang dipilih untuk bergerak atau menyerang.
aegis.tungsten = Tungsten dapat ditambang menggunakan [accent]bor tumbukan[].\nBangunan ini membutuhkan [accent]air[] dan [accent]tenaga[].
-split.pickup = Beberapa blok dapat diambil oleh unit inti.\nAmbil [accent]kontainer ini[] dan letakan di [accent]pembongkar muatan[].\n(Tombol bawaan nya ialah [ dan ] untuk mengambil dan menurun kan)
-split.pickup.mobile = Beberapa blok dapat diambil oleh unit inti.\nAmbil [accent]kontainer ini[] dan letakan di [accent]pembongkar muatan[].\n(Untuk mengambil atau menurunkan sesuatu, tekan lama blok tersebut)
+split.pickup = Beberapa blok dapat diambil oleh unit inti.\nAmbil [accent]kontainer[] ini dan letakkan di [accent]pemuat muatan[].\n(Tombol bawaannya ialah [ dan ] untuk mengambil dan menurunkan)
+split.pickup.mobile = Beberapa blok dapat diambil oleh unit inti.\nAmbil [accent]kontainer[] ini dan letakkan di [accent]pemuat muatan[].\n(Untuk mengambil atau menurunkan sesuatu, tekan lama blok tersebut)
split.acquire = Anda harus memperoleh beberapa tungsten untuk membangun unit.
-split.build = Unit harus diangkut ke sisi lain tembok.\nTempatkan dua [accent]Penembak Muatan Massal[], satu di setiap sisi dinding.\nHubungkan Penembak dengan menekan salah satunya, lalu pilih penembak yang lain.
-split.container = Mirip dengan kontainer, unit juga dapat diangkut menggunakan [accent]Penembak Muatan Massal[].\nTempatkan unit fabrikator berdekatan dengan penggerak massal untuk memuatnya, lalu kirim mereka melintasi dinding untuk menyerang markas musuh.
+split.build = Unit harus diangkut ke sisi lain tembok.\nTempatkan dua [accent]Penembak Muatan Massal[], satu di setiap sisi dinding.\nHubungkan penembak muatan massal dengan menekan salah satunya, lalu pilih penembak muatan massal yang lain.
+split.container = Mirip dengan kontainer, unit juga dapat diangkut menggunakan [accent]Penembak Muatan Massal[].\nTempatkan pabrikator meka menghadap ke penembak muatan massal untuk memuat unit,\nlalu kirim mereka melintasi dinding untuk menyerang markas musuh.
item.copper.description = Digunakan pada semua tipe konstruksi dan amunisi.
item.copper.details = Tembaga. Logam yang sangat melimpah di Serpulo. Lemah secara struktural kecuali jika diperkuat.
@@ -2051,7 +2100,7 @@ item.scrap.description = Digunakan pada Pelebur dan Penghancur untuk dimurnikan
item.scrap.details = Sisa-sisa dari unit dan bangunan tua.
item.silicon.description = Digunakan pada panel surya, bahan elektronik yang kompleks dan amunisi yang bisa mengejar.
item.plastanium.description = Digunakan dalam unit canggih, isolasi dan amunisi fragmentasi.
-item.phase-fabric.description = Digunakan di elektronik canggih dan teknologi perbaikan diri sendiri.
+item.phase-fabric.description = Digunakan pada elektronik canggih dan teknologi perbaikan diri sendiri.
item.surge-alloy.description = Digunakan di pertahanan yang lebih canggih dan struktur pertahanan reaktif.
item.spore-pod.description = Digunakan untuk produksi minyak, bahan peledak dan bahan bakar.
item.spore-pod.details = Spora. Sepertinya bentuk kehidupan sintetis. Menghasilkan gas beracun yang meracuni kehidupan biologis lainnya. Sangat mudah menyebar. Sangat mudah terbakar dalam kondisi tertentu.
@@ -2071,7 +2120,7 @@ liquid.cryofluid.description = Digunakan sebagai pendingin di reaktor, menara, d
#Erekir
liquid.arkycite.description = Digunakan dalam reaksi kimia untuk pembangkit listrik dan material sintesis.
-liquid.ozone.description = Digunakan sebagai zat pengoksidasi dalam memproduki material, dan sebagai bahan bakar. Cukup eksplosif.
+liquid.ozone.description = Digunakan sebagai bahan bakar dan zat pengoksidasi dalam memproduki material. Cukup eksplosif.
liquid.hydrogen.description = Digunakan dalam ekstraksi sumber daya, produksi unit, dan perbaikan bangunan. Mudah terbakar.
liquid.cyanogen.description = Digunakan untuk amunisi, pembangunan unit canggih, dan berbagai reaksi pada blok canggih. Sangat mudah terbakar.
liquid.nitrogen.description = Digunakan dalam ekstraksi sumber daya, pembuatan gas, dan produksi unit. Lembam.
@@ -2089,17 +2138,17 @@ block.multi-press.description = Memadatkan bongkahan batu bara menjadi lempengan
block.silicon-smelter.description = Memproduksi silikon dari pasir dan batu bara.
block.kiln.description = Membakar pasir dan timah menjadi metaglass.
block.plastanium-compressor.description = Memproduksi plastanium dari minyak dan titanium.
-block.phase-weaver.description = Memproduksi phase fabric dari torium dan pasir.
+block.phase-weaver.description = Mensintesis phase fabric dari torium dan pasir.
block.surge-smelter.description = Memproduksi campuran logam dari titanium, timah, silikon dan tembaga.
block.cryofluid-mixer.description = Mencampur air dan titanium untuk memproduksi cairan dingin.
block.blast-mixer.description = Memproduksi senyawa peledak dari pyratit dan polong spora.
block.pyratite-mixer.description = Mencampur batu bara, timah dan pasir menjadi pyratit.
-block.melter.description = Melelehkan rongsokan menjadi lava.
+block.melter.description = Mencairkan rongsokan menjadi lava.
block.separator.description = Memisahkan komponen mineral dari lava.
-block.spore-press.description = Menekan polong spora menjadi minyak.
+block.spore-press.description = Mengkompres polong spora menjadi minyak.
block.pulverizer.description = Menghancurkan kepingan menjadi pasir.
block.coal-centrifuge.description = Memadatkan minyak menjadi bongkahan batu bara.
-block.incinerator.description = Menghancurkan bahan atau zat cair yang masuk.
+block.incinerator.description = Menghancurkan item atau zat cair yang masuk.
block.power-void.description = Menghilangkan semua tenaga yang masuk ke dalamnya. Khusus mode sandbox.
block.power-source.description = Menghasilkan tenaga tak terhingga. Khusus mode sandbox.
block.item-source.description = Mengeluarkan bahan tak terhingga. Khusus mode sandbox.
@@ -2120,17 +2169,17 @@ block.phase-wall.description = Melindungi bangunan dari tembakan musuh, dan dapa
block.phase-wall-large.description = Melindungi bangunan dari tembakan musuh, dan dapat memantulkan beberapa jenis peluru senjata.
block.surge-wall.description = Melindungi bangunan dari tembakan musuh, dan dapat mengeluarkan setruman listrik.
block.surge-wall-large.description = Melindungi bangunan dari tembakan musuh, dan dapat mengeluarkan setruman listrik.
-block.scrap-wall.description = Protects structures from enemy projectiles.
-block.scrap-wall-large.description = Protects structures from enemy projectiles.
-block.scrap-wall-huge.description = Protects structures from enemy projectiles.
-block.scrap-wall-gigantic.description = Protects structures from enemy projectiles.
+block.scrap-wall.description = Melindungi bangunan dari tembakan musuh.
+block.scrap-wall-large.description = Melindungi bangunan dari tembakan musuh.
+block.scrap-wall-huge.description = Melindungi bangunan dari tembakan musuh.
+block.scrap-wall-gigantic.description = Melindungi bangunan dari tembakan musuh.
block.door.description = Dinding yang bisa dibuka dan ditutup.
block.door-large.description = Dinding yang bisa dibuka dan ditutup.
-block.mender.description = Menyembuhkan blok di sekelilingnya secara berkala.\nGunakan silikon untuk meningkatkan jangkauan dan efisiensi (Opsional).
-block.mend-projector.description = Menyembuhkan blok di sekelilingnya secara berkala.\nGunakan phase fabric untuk meningkatkan jangkauan dan efisiensi (Opsional).
-block.overdrive-projector.description = Menambah kecepatan bangunan sekitar.\nGunakan phase fabric untuk meningkatkan jangkauan dan efisiensi (Opsional).
-block.force-projector.description = Menciptakan medan gaya heksagonal di sekelilingnya, melindungi bangunan dan unit di dalamnya dari kerusakan. Terlalu panas jika menerima banyak kerusakan. Gunakan cairan pendingin untuk mencegah panas berlebih (Opsional). Phase fabric meningkatkan ukuran perisai.
-block.shock-mine.description = Mengeluarkan setruman listrik setelah di injak musuh.
+block.mender.description = Menyembuhkan blok di sekelilingnya secara berkala.\nDapat menggunakan silikon untuk meningkatkan jangkauan dan efisiensi.
+block.mend-projector.description = Menyembuhkan blok di sekelilingnya secara berkala.\nDapat menggunakan phase fabric untuk meningkatkan jangkauan dan efisiensi.
+block.overdrive-projector.description = Menambah kecepatan bangunan sekitar.\nDapat menggunakan phase fabric untuk meningkatkan jangkauan dan efisiensi. Efek Pemercepat tidak dapat ditumpuk.
+block.force-projector.description = Menciptakan pelindung heksagonal di sekelilingnya, melindungi bangunan dan unit di dalamnya dari kerusakan. Jika terlalu banyak kerusakan yang diterima akan membuat proyektor kepanasan. Dapat menggunakan cairan pendingin untuk mencegah panas berlebih. Phase fabric meningkatkan ukuran pelindung.
+block.shock-mine.description = Mengeluarkan setruman listrik setelah diinjak musuh.
block.conveyor.description = Memindahkan barang ke depan.
block.titanium-conveyor.description = Memindahkan barang ke depan. Lebih cepat daripada konveyor biasa.
block.plastanium-conveyor.description = Memindahkan barang secara bertumpuk. Menerima barang dari belakang, dan membaginya ke tiga arah di depan. Membutuhkan beberapa titik pemuat dan pembongkar untuk hasil yang maksimal.
@@ -2140,16 +2189,16 @@ block.phase-conveyor.description = Memindahkan barang secara instan melewati tan
block.sorter.description = Jika barang yang masuk cocok dengan seleksi, barang akan diperbolehkan lewat ke depan. Jika tidak, barang akan dikeluarkan ke kiri dan kanan.
block.inverted-sorter.description = Sama seperti penyortir, namun mengeluarkan barang terpilih ke samping.
block.router.description = Mendistribusikan barang ke 3 arah secara merata.
-block.router.details = Bisa sangat menggangu. Jangan meletakannya disamping bangunan pabrik, karena laju pengeluaran barang dapat tersumbat.
+block.router.details = Bisa sangat menggangu. Jangan meletakkannya disamping bangunan pabrik, karena akan membuat laju pengeluaran barang tersumbat.
block.distributor.description = Mendistribusikan barang ke 7 arah secara merata.
block.overflow-gate.description = Hanya mengeluarkan barang ke kiri dan ke kanan jika bagian depan tertutup.
-block.underflow-gate.description = Kebalikan dari gerbang luap. Mengeluarkan barang ke depan jika bagian kiri dan kanan tertutup.
-block.mass-driver.description = Blok transportasi barang jarak jauh. Membawa beberapa barang dan menembaknya ke penembak massal lainnya.
+block.underflow-gate.description = Kebalikan dari gerbang luapan. Mengeluarkan barang ke depan jika bagian kiri dan kanan tertutup.
+block.mass-driver.description = Blok transportasi barang jarak jauh. Mengumpulkan sejumlah barang dan menembakkannya ke penembak massal lainnya.
block.mechanical-pump.description = Memompa dan mengeluarkan cairan. Tidak membutuhkan tenaga.
block.rotary-pump.description = Memompa dan mengeluarkan cairan. Membutuhkan tenaga.
block.impulse-pump.description = Memompa dan mengeluarkan cairan.
block.conduit.description = Memindahkan cairan ke depan. Digunakan dengan pompa dan saluran lainnya.
-block.pulse-conduit.description = Memindahkan cairan ke depan. Mengantarkan lebih cepat dan banyak daripada saluran biasa.
+block.pulse-conduit.description = Memindahkan cairan ke depan. Mengantarkan lebih cepat dan memiliki kapasitas yang lebih besar daripada saluran biasa.
block.plated-conduit.description = Memindahkan cairan ke depan. Tidak menerima cairan dari samping. Tidak bocor.
block.liquid-router.description = Menerima cairan dari satu arah dan mengeluarkannya ke 3 arah secara rata. Dapat digunakan untuk menyimpan sejumlah cairan.
block.liquid-container.description = Menyimpan jumlah cairan yang banyak. Mengeluarkan cairan ke segala arah, sama seperti pengarah cairan.
@@ -2157,8 +2206,8 @@ block.liquid-tank.description = Menyimpan jumlah cairan yang sangat banyak. Meng
block.liquid-junction.description = Bertindak sebagai jembatan untuk dua saluran yang bersimpangan.
block.bridge-conduit.description = Memindahkan cairan melewati tanah atau bangunan.
block.phase-conduit.description = Memindahkan cairan melewati tanah atau bangunan. Memiliki jarak yang lebih jauh daripada jembatan cairan, namun membutuhkan tenaga.
-block.power-node.description = Membawa tenaga ke simpul tersambung. Simpul akan menerima atau memberi tenaga ke atau dari blok yang disambung.
-block.power-node-large.description = Mempunyai radius lebih besar dari simpul listrik biasa dan bisa menyambung hingga enam sumber listrik, sambungan atau simpul lainnya.
+block.power-node.description = Mentransmisikan tenaga ke simpul tersambung. Simpul akan menerima atau memberi tenaga ke atau dari blok yang disambung.
+block.power-node-large.description = Mempunyai radius yang lebih besar dari simpul listrik biasa. Dapat tersambung ke 15 simpul lainnya.
block.surge-tower.description = Sebuah menara listrik dengan jangkauan sangat jauh dengan sambungan yang sedikit.
block.diode.description = Tenaga baterai dapat mengalir hanya dari satu arah, tetapi hanya jika tenaga di sebelah lebih sedikit.
block.battery.description = Menyimpan tenaga pada saat tenaga berlebih. Memberikan tenaga pada saat tenaga berkurang.
@@ -2173,13 +2222,13 @@ block.solar-panel-large.description = Menghasilkan sedikit tenaga dari sinar mat
block.thorium-reactor.description = Menghasilkan tenaga yang besar dari konsumsi torium. Membutuhkan pendinginan konstan. Akan meledak jika jumlah cairan pendingin yang disediakan tidak mencukupi
block.impact-reactor.description = Menghasilkan tenaga dengan jumlah yang sangat banyak secara efisien. Membutuhkan banyak tenaga agar dapat menyalakan reaktor.
block.mechanical-drill.description = Ketika ditempatkan pada bijih, mengeluarkan bahan dengan kecepatan lambat tanpa batas. Hanya mampu menambang sumber daya dasar.
-block.pneumatic-drill.description = Bor yang ditingkatkan, mampu menambang titanium. Menambang dengan kecepatan lebih cepat daripada bor mekanik.
+block.pneumatic-drill.description = Bor yang ditingkatkan, mampu menambang titanium. Menambang dengan kecepatan lebih cepat daripada bor mekanis.
block.laser-drill.description = Mengebor lebih cepat lewat teknologi laser, tapi membutuhkan tenaga. Dapat menambang torium.
block.blast-drill.description = Bor tercanggih. Membutuhkan banyak tenaga.
-block.water-extractor.description = Memompa air dari tanah. Gunakan jika tidak ada sumber air di sekitar.
+block.water-extractor.description = Mengekstrak air dari tanah. Gunakan jika tidak ada sumber air di sekitar.
block.cultivator.description = Menumbuhkan konsentrasi spora yang kecil di atmosfer menjadi polong spora.
block.cultivator.details = Teknologi yang dipulihkan. Digunakan untuk memproduksi biomassa dalam jumlah besar secara efisien. Kemungkinan merupakan inkubator awal dari spora yang sekarang menutupi Serpulo.
-block.oil-extractor.description = Menggunakan jumlah tenaga, pasir dan air yang banyak untuk diolah menjadi minyak.
+block.oil-extractor.description = Menggunakan sejumlah besar tenaga, pasir, dan air untuk diolah menjadi minyak.
block.core-shard.description = Inti markas. Jika hancur, sektormu akan hilang.
block.core-shard.details = Iterasi pertama. Padat. Bisa menggandakan dirinya (untuk menguasai sektor di sekitarnya). Dilengkapi dengan pendorong sekali pakai. Tidak didesain untuk perjalanan antar planet.
block.core-foundation.description = Inti markas. Lebih kuat. Menyimpan banyak sumber daya.
@@ -2190,7 +2239,9 @@ block.vault.description = Menyimpan semua tipe bahan dalam jumlah besar. Bahan d
block.container.description = Menyimpan semua tipe bahan dalam jumlah kecil. Bahan dapat dikeluarkan dengan pembongkar muatan.
block.unloader.description = Mengeluarkan bahan yang ditentukan dari bangunan.
block.launch-pad.description = Meluncurkan muatan bahan ke sektor yang dipilih.
-block.launch-pad.details = Sistem sub-orbital untuk transportasi sumber daya point-to-point. Pod muatan mudah rapuh dan tidak dapat bertahan bila masuk ke tujuan.
+block.advanced-launch-pad.description = Meluncurkan muatan bahan ke sektor yang dipilih. Hanya menerima satu jenis item dalam satu waktu.
+block.advanced-launch-pad.details = Sistem sub-orbital untuk transportasi sumber daya point-to-point.
+block.landing-pad.description = Menerima muatan bahan dari alas peluncur di sektor lain. Membutuhkan air dalam jumlah besar untuk melindungi alas dari dampak pendaratan.
block.duo.description = Menembakkan peluru bergantian ke musuh.
block.scatter.description = Menembakkan gumpalan timah, rongsokan atau metaglass ke target udara.
block.scorch.description = Membakar musuh darat yang dekat dengannya. Sangat efektif dalam jarak dekat.
@@ -2204,20 +2255,20 @@ block.fuse.description = Menembakkan tiga penusuk tajam jarak dekat ke musuh ter
block.ripple.description = Menembakkan gugusan peluru ke musuh darat dari jarak jauh.
block.cyclone.description = Menembakkan gumpalan peledak ke musuh terdekat.
block.spectre.description = Menembakkan peluru besar yang menembus pelindung ke target udara dan darat.
-block.meltdown.description = Mengisi dan menembakkan sinar laser yang terus-menerus ke musuh di sekitar. Membutuhkan pendingin untuk beroperasi.
-block.foreshadow.description = Menembakkan baut besar jarak jauh yang hanya menembak satu target. Mengutamakan musuh dengan batas darah tertinggi.
+block.meltdown.description = Mengisi dan menembakkan sinar laser secara terus-menerus ke musuh di sekitar. Membutuhkan pendingin untuk beroperasi.
+block.foreshadow.description = Menembakkan baut besar jarak jauh yang hanya menargetkan satu musuh dengan batas nyawa tertinggi.
block.repair-point.description = Memulihkan unit yang terluka di sekitar secara terus-menerus.
block.segment.description = Merusakkan dan menghancurkan proyektil yang datang. Proyektil laser tidak akan ditargetkan.
block.parallax.description = Menembakkan laser yang menarik target udara, juga merusaknya selama dalam proses.
block.tsunami.description = Menembakkan cairan dalam jumlah dan tekanan besar ke arah musuh. Dapat memadamkan api secara otomatis jika diisi dengan air.
block.silicon-crucible.description = Memurnikan silikon dari pasir dan batu bara, menggunakan pyratit sebagai sumber panas tambahan. Lebih efesien jika diletakkan di area yang panas.
block.disassembler.description = Memisahkan lava menjadi mineral langka dalam efesiensi rendah. Bisa memproduksi torium.
-block.overdrive-dome.description = Menambahkan kecepatan pada bangunan di sekitarnya. Membutuhkan phase fabric dan silikon untuk bekerja.
+block.overdrive-dome.description = Menambahkan kecepatan pada bangunan di sekitarnya. Membutuhkan phase fabric dan silikon untuk bekerja. Efek Pemercepat tidak dapat ditumpuk.
block.payload-conveyor.description = Memindahkan muatan yang besar, seperti unit dari pabrik.
block.payload-router.description = Membagi muatan masukan menjadi 3 arah keluaran.
-block.ground-factory.description = Memproduksi unit darat. Hasil unit dapat digunakan secara langsung, atau dipindahkan ke rekonstruktor untuk ditingkatkan.
-block.air-factory.description = Memproduksi unit udara. Hasil unit dapat digunakan secara langsung, atau dipindahkan ke rekonstruktor untuk ditingkatkan.
-block.naval-factory.description = Memproduksi unit laut. Hasil unit dapat digunakan secara langsung, atau dipindahkan ke rekonstruktor untuk ditingkatkan.
+block.ground-factory.description = Memproduksi unit darat. Unit dapat digunakan secara langsung, atau dipindahkan ke rekonstruktor untuk ditingkatkan.
+block.air-factory.description = Memproduksi unit udara. Unit dapat digunakan secara langsung, atau dipindahkan ke rekonstruktor untuk ditingkatkan.
+block.naval-factory.description = Memproduksi unit laut. Unit dapat digunakan secara langsung, atau dipindahkan ke rekonstruktor untuk ditingkatkan.
block.additive-reconstructor.description = Meningkatkan unit di dalamnya menjadi tingkat dua.
block.multiplicative-reconstructor.description = Meningkatkan unit di dalamnya menjadi tingkat tiga.
block.exponential-reconstructor.description = Meningkatkan unit di dalamnya menjadi tingkat empat.
@@ -2235,45 +2286,45 @@ block.repair-turret.description = Memulihkan unit terdekat yang sekarat dalam ja
#Erekir
block.core-bastion.description = Inti markas. Terlindungi. Jika hancur, sektor jatuh ke tangan musuh.
-block.core-citadel.description = Inti markas. Sangat terlindungi. Menyimpan lebih banyak sumber daya dari pada Inti Bastion.
-block.core-acropolis.description = Inti markas. Sangat amat terlindungi. Menyimpan lebih banyak sumber daya dari pada Inti Citadel.
-block.breach.description = Menembakkan amunisi berilium atau tungsten yang menusuk ke arah musuh.
+block.core-citadel.description = Inti markas. Sangat terlindungi. Menyimpan lebih banyak sumber daya daripada Inti Bastion.
+block.core-acropolis.description = Inti markas. Sangat amat terlindungi. Menyimpan lebih banyak sumber daya daripada Inti Citadel.
+block.breach.description = Menembakkan amunisi yang menusuk ke arah musuh.
block.diffuse.description = Menembakkan semburan peluru dalam kerucut yang lebar. Mendorong musuh kebelakang.
block.sublimate.description = Menembakkan pancaran api terus menerus ke arah musuh. Menembus pelindung.
block.titan.description = Menembakkan peluru artileri eksplosif besar ke target darat. Membutuhkan hidrogen.
block.afflict.description = Menembakkan bola anti-peluru fragmentaris bermuatan besar. Membutuhkan pemanasan.
block.disperse.description = Menembakkan semburan anti-peluru ke target udara.
-block.lustre.description = Menembakkan laser target tunggal yang bergerak lambat ke arahmusuh.
+block.lustre.description = Menembakkan laser target tunggal yang bergerak lambat secara terus menerus ke arah musuh.
block.scathe.description = Meluncurkan rudal yang kuat ke target darat dalam jarak yang sangat jauh.
block.smite.description = Menembakan semburan peluru yang menusuk dan menyambar.
-block.malign.description = Menembakkan rentetan muatan laser pelacak ke target musuh. Membutuhkan pemanasan ekstensif.
+block.malign.description = Menembakkan rentetan muatan laser pelacak ke arah musuh. Membutuhkan pemanasan ekstensif.
block.silicon-arc-furnace.description = Memurnikan silikon dari pasir dan grafit.
block.oxidation-chamber.description = Mengubah berilium dan ozon menjadi oksida. Memancarkan panas sebagai produk sampingan.
block.electric-heater.description = Pemanas yang menghadap ke arah blok. Membutuhkan daya yang besar.
block.slag-heater.description = Pemanas yang menghadap ke arah blok. Membutuhkan lava.
block.phase-heater.description = Pemanas yang menghadap ke arah blok. Membutuhkan phase fabric.
block.heat-redirector.description = Mengalihkan akumulasi panas ke blok lain.
-block.small-heat-redirector.description = Redirects accumulated heat to other blocks.
+block.small-heat-redirector.description = Mengalihkan akumulasi panas ke blok lain.
block.heat-router.description = Menyebarkan akumulasi panas ke tiga arah.
-block.electrolyzer.description = Mengubah air menjadi gas hidrogen dan ozon.
+block.electrolyzer.description = Mengubah air menjadi gas hidrogen dan ozon. Mengeluarkan gas yang dihasilkan dalam dua arah yang berlawanan, ditandai dengan warna yang sesuai.
block.atmospheric-concentrator.description = Mengkonsentrasikan nitrogen dari atmosfer. Membutuhkan panas.
-block.surge-crucible.description = Membentuk Paduan Logam dari lava dan silikon. Membutuhkan panas.
+block.surge-crucible.description = Memproduksi paduan logam dari silikon dan unsur logam dalam lava. Membutuhkan panas.
block.phase-synthesizer.description = Mensintesis phase fabric dari torium, pasir, dan ozon. Membutuhkan panas.
block.carbide-crucible.description = Memadukan grafit dan tungsten menjadi karbida. Membutuhkan panas.
-block.cyanogen-synthesizer.description = Mensintesis sianogen dari arkycite dan grafit. Membutuhkan panas.
+block.cyanogen-synthesizer.description = Mensintesis sianogen dari arkisit dan grafit. Membutuhkan panas.
block.slag-incinerator.description = Membakar benda atau cairan yang tidak mudah menguap. Membutuhkan lava.
-block.vent-condenser.description = Mengondensasi gas ventilasi ke dalam air. Membutuhkan tenaga.
+block.vent-condenser.description = Mengondensasi gas ventilasi menjadi air. Membutuhkan tenaga.
block.plasma-bore.description = Saat ditempatkan menghadap dinding bijih, mengeluarkan bahan tanpa batas. Membutuhkan daya dalam jumlah kecil.
-block.large-plasma-bore.description = Bor plasma yang lebih besar. Mampu menambang tungsten dan thorium. Membutuhkan hidrogen dan tenaga.
+block.large-plasma-bore.description = Bor plasma yang lebih besar. Mampu menambang tungsten dan torium. Membutuhkan hidrogen dan tenaga.
block.cliff-crusher.description = Menghancurkan dinding, mengeluarkan pasir tanpa batas. Membutuhkan tenaga. Efisiensi bervariasi berdasarkan jenis dinding.
-block.large-cliff-crusher.description = Crushes walls, outputting sand indefinitely. Requires power and ozone. Efficiency varies based on type of wall. Optionally consumes tungsten to increase efficiency.
+block.large-cliff-crusher.description = Menghancurkan dinding, mengeluarkan pasir tanpa batas. Membutuhkan tenaga dan ozon. Efisiensi bervariasi berdasarkan jenis dinding. Gunakan Tungsten untuk meningkatkan efisiensi (Opsional).
block.impact-drill.description = Saat ditempatkan pada bijih, mengeluarkan bahan dalam ledakan tanpa batas. Membutuhkan listrik dan air.
-block.eruption-drill.description = Bor tumbukan yang ditingkatkan. Mampu menambang thorium. Membutuhkan hidrogen.
+block.eruption-drill.description = Bor tumbukan yang ditingkatkan. Mampu menambang torium. Membutuhkan hidrogen.
block.reinforced-conduit.description = Memindahkan cairan ke depan. Tidak menerima masukkan ke samping.
block.reinforced-liquid-router.description = Mendistribusikan cairan secara merata ke semua sisi.
block.reinforced-liquid-tank.description = Menyimpan sejumlah besar cairan.
block.reinforced-liquid-container.description = Menyimpan jumlah cairan yang cukup besar.
-block.reinforced-bridge-conduit.description = Memindahkan cairan melintasi bangunan dan medan.
+block.reinforced-bridge-conduit.description = Memindahkan cairan melintasi medan dan bangunan
block.reinforced-pump.description = Memompa dan mengeluarkan cairan. Membutuhkan hidrogen.
block.beryllium-wall.description = Melindungi bangunan dari proyektil musuh.
block.beryllium-wall-large.description = Melindungi bangunan dari proyektil musuh.
@@ -2286,111 +2337,113 @@ block.reinforced-surge-wall-large.description = Melindungi bangunan dari proyekt
block.shielded-wall.description = Melindungi bangunan dari proyektil musuh. Menyebarkan perisai yang menyerap sebagian besar proyektil saat daya tersedia. Menghantarkan tenaga.
block.blast-door.description = Dinding yang terbuka ketika unit darat sekutu berada dalam jangkauan. Tidak dapat dikontrol secara manual.
block.duct.description = Memindahkan barang ke depan. Hanya mampu menyimpan satu barang.
-block.armored-duct.description = Memindahkan barang ke depan. Tidak menerima masukan dari samping.
+block.armored-duct.description = Memindahkan barang ke depan. Tidak dapat menerima masukan dari samping.
block.duct-router.description = Mendistribusikan barang secara merata ke tiga arah. Hanya menerima barang dari sisi belakang. Dapat dikonfigurasi sebagai penyortir barang.
block.overflow-duct.description = Hanya mengeluarkan barang ke samping jika jalur depan diblokir.
-block.duct-bridge.description = Memindahkan barang di atas bangunan dan medan.
+block.duct-bridge.description = Memindahkan barang di atas medan dan bangunan
block.duct-unloader.description = Membongkarkan barang yang dipilih dari blok di belakangnya. Tidak dapat membongkar dari inti.
-block.underflow-duct.description = Di seberang saluran pelimpah. Keluaran ke depan jika jalur kiri dan kanan terhalang.
-block.reinforced-liquid-junction.description = Bertindak sebagai persimpangan antara dua saluran yang bersilangan.
-block.surge-conveyor.description = Memindahkan barang secara berkelompok. Dapat dipercepat dengan tenaga. Menghantarkan tenaga.
+block.underflow-duct.description = Kebalikan dari pipa luapan. Mengeluarkan barang ke depan jika jalur kiri dan kanan terblokir.
+block.reinforced-liquid-junction.description = Bertindak sebagai persimpangan antara dua saluran penyeberangan.
+block.surge-conveyor.description = Memindahkan barang secara bertumpuk. Dapat dipercepat dengan tenaga. Menghantarkan tenaga.
block.surge-router.description = Mendistribusikan barang secara merata ke tiga arah dari konveyor lonjakan. Dapat dipercepat dengan tenaga. Menghantarkan tenaga.
-block.unit-cargo-loader.description = Membuat drone kargo. Drone secara otomatis mendistribusikan barang ke Titik Bongkar muatan Kargo dengan filter yang cocok.
-block.unit-cargo-unload-point.description = Bertindak sebagai titik bongkar muatan drone kargo. Menerima barang yang cocok dengan filter yang dipilih.
-block.beam-node.description = Mentransmisikan daya ke blok lain secara ortogonal. Menyimpan sejumlah kecil daya.
-block.beam-tower.description = Mentransmisikan daya ke blok lain secara ortogonal. Menyimpan sejumlah besar daya. Jarak jauh.
+block.unit-cargo-loader.description = Membuat unit kargo. Unit kargo secara otomatis mendistribusikan barang ke titik bongkar muatan unit kargo dengan filter yang cocok.
+block.unit-cargo-unload-point.description = Bertindak sebagai titik bongkar muatan unit kargo. Menerima barang yang cocok dengan filter yang dipilih.
+block.beam-node.description = Mentransmisikan tenaga ke blok lain secara ortogonal. Menyimpan sejumlah kecil tenaga.
+block.beam-tower.description = Mentransmisikan tenaga ke blok lain secara ortogonal. Menyimpan sejumlah besar tenaga. Jarak jauh.
+block.beam-link.description = Mentransmisikan tenaga ke blok lain dengan jarak yang sangat jauh.\nHanya mampu terhubung ke struktur yang berdekatan atau tautan sinar lainnya.
block.turbine-condenser.description = Menghasilkan tenaga ketika ditempatkan pada ventilasi. Menghasilkan sedikit air.
-block.chemical-combustion-chamber.description = Menghasilkan tenaga dari arkycite dan ozon.
-block.pyrolysis-generator.description = Menghasilkan tenaga dalam jumlah besar dari arkisit dan terak. Menghasilkan air sebagai produk sampingan.
-block.flux-reactor.description = Menghasilkan daya dalam jumlah besar ketika dipanaskan. Membutuhkan sianogen sebagai penstabil. Daya yang dihasilkan dan kebutuhan sianogen sebanding dengan panas yang masuk.\nMeledak jika sianogen yang disediakan tidak mencukupi.
+block.chemical-combustion-chamber.description = Menghasilkan tenaga dari arkisit dan ozon.
+block.pyrolysis-generator.description = Menghasilkan tenaga dalam jumlah besar dari arkisit dan lava. Menghasilkan air sebagai produk sampingan.
+block.flux-reactor.description = Menghasilkan tenaga dalam jumlah besar ketika dipanaskan. Membutuhkan sianogen sebagai penstabil. Tenaga yang dihasilkan dan kebutuhan sianogen sebanding dengan panas yang masuk.\nMeledak jika sianogen yang disediakan tidak mencukupi.
block.neoplasia-reactor.description = Menggunakan arkisit, air, dan phase fabric untuk menghasilkan daya dalam jumlah besar. Menghasilkan panas dan neoplasma yang berbahaya sebagai produk sampingan.\nMeledak hebat jika neoplasma tidak dikeluarkan dari reaktor melalui saluran.
block.build-tower.description = Secara otomatis membangun kembali bangunan dalam jangkauan dan membantu unit lain dalam konstruksi.
block.regen-projector.description = Perlahan memperbaiki bangunan sekutu di perimeter persegi. Membutuhkan hidrogen. Gunakan phase fabric untuk meningkatkan efisiensi (Opsional).
-block.reinforced-container.description = Menyimpan sejumlah kecil barang. Isi kontainer dapat diambil melalui pembongkaran. Tidak dapat meningkatkan kapasitas penyimpanan inti.
-block.reinforced-vault.description = Menyimpan sejumlah besar barang. Isi gudang dapat diambil melalui pembongkaran. Tidak dapat meningkatkan kapasitas penyimpanan inti.
+block.reinforced-container.description = Menyimpan sejumlah kecil barang. Isi kontainer dapat diambil melalui pembongkar muatan. Tidak dapat meningkatkan kapasitas penyimpanan inti.
+block.reinforced-vault.description = Menyimpan sejumlah besar barang. Isi gudang dapat diambil melalui pembongkar muatan. Tidak dapat meningkatkan kapasitas penyimpanan inti.
block.tank-fabricator.description = Membangun unit Stell. Unit dapat digunakan secara langsung, atau dipindahkan ke pabrikator ulang untuk ditingkatkan.
block.ship-fabricator.description = Membangun unit Elude. Unit dapat digunakan secara langsung, atau dipindahkan ke pabrikator ulang untuk ditingkatkan.
block.mech-fabricator.description = Membangun unit Merui. Unit dapat digunakan secara langsung, atau dipindahkan ke pabrikator ulang untuk ditingkatkan.
-block.tank-assembler.description = Merakit Unit Tank besar dari blok dan unit yang dimasukkan. Tingkat keluaran dapat ditingkatkan dengan menambahkan modul.
-block.ship-assembler.description = Merakit Unit Kapal besar dari blok dan unit yang dimasukkan. Tingkat keluaran dapat ditingkatkan dengan menambahkan modul.
-block.mech-assembler.description = Merakit Unit Mech besar dari blok dan unit yang dimasukkan. Tingkat keluaran dapat ditingkatkan dengan menambahkan modul.
+block.tank-assembler.description = Merakit Unit Tank besar dari blok dan unit yang dimasukkan. Tingkatan unit dapat ditingkatkan dengan menambahkan modul.
+block.ship-assembler.description = Merakit Unit Kapal besar dari blok dan unit yang dimasukkan. Tingkatan unit dapat ditingkatkan dengan menambahkan modul.
+block.mech-assembler.description = Merakit Unit Meka besar dari blok dan unit yang dimasukkan. Tingkatan unit dapat ditingkatkan dengan menambahkan modul.
block.tank-refabricator.description = Meningkatkan unit tank yang dimasukkan ke tingkat kedua.
block.ship-refabricator.description = Meningkatkan unit kapal yang dimasukkan ke tingkat kedua.
-block.mech-refabricator.description = Meningkatkan unit mech yang dimasukkan ke tingkat kedua.
+block.mech-refabricator.description = Meningkatkan unit meka yang dimasukkan ke tingkat kedua.
block.prime-refabricator.description = Meningkatkan unit yang dimasukkan ke tingkat ketiga.
block.basic-assembler-module.description = Meningkatkan tingkat perakit ketika ditempatkan di sebelah batas konstruksi. Membutuhkan tenaga. Dapat digunakan sebagai penerima muatan.
block.small-deconstructor.description = Mendekonstruksi bangunan dan unit yang dimasukkan. Mengembalikan 100% biaya pembangunan.
block.reinforced-payload-conveyor.description = Memindahkan muatan ke depan.
block.reinforced-payload-router.description = Mendistribusikan muatan ke blok yang berdekatan. Berfungsi sebagai penyortir ketika filter disetel.
-block.payload-mass-driver.description = Struktur transportasi muatan jarak jauh. Menembak muatan ke penembak muatan massal yang terhubung.
-block.large-payload-mass-driver.description = Struktur transportasi muatan jarak jauh. Menembak muatan ke penembak muatan massal yang terhubung.
+block.payload-mass-driver.description = Struktur transportasi muatan jarak jauh. Menembakkan muatan ke penembak muatan massal yang terhubung.
+block.large-payload-mass-driver.description = Struktur transportasi muatan jarak jauh. Menembakkan muatan ke penembak muatan massal yang terhubung.
block.unit-repair-tower.description = Memulihkan semua unit di sekitarnya. Membutuhkan ozon.
block.radar.description = Secara bertahap mengungkap medan dan unit musuh dalam radius besar. Membutuhkan tenaga.
block.shockwave-tower.description = Merusak dan menghancurkan proyektil musuh dalam radius. Membutuhkan sianogen.
block.canvas.description = Menampilkan gambar sederhana dengan palet yang telah ditentukan sebelumnya. Dapat diedit.
-unit.dagger.description = Menembak musuh terdekat dengan amunisi standar.
-unit.mace.description = Menyerang musuh terdekat dengan cara membakarnya.
+unit.dagger.description = Menembak peluru standar ke arah musuh.
+unit.mace.description = Menembak semburan api ke arah musuh.
unit.fortress.description = Menembak musuh darat dengan artileri jarak jauh.
-unit.scepter.description = Menembak semua musuh terdekat dengan rentetan peluru bermuatan listrik.
-unit.reign.description = Menembak semua musuh terdekat dengan rentetan peluru tajam dalam jumlah banyak.
-unit.nova.description = Menembak baut laser yang dapat merusak musuh dan memperbaiki bangunan sekutu. Dapat terbang.
-unit.pulsar.description = Menembak petir yang dapat merusak musuh dan memperbaiki bangunan sekutu. Dapat terbang.
-unit.quasar.description = Menembak sinar laser yang dapat menembus bangunan yang dapat merusak musuh dan memperbaiki bangunan sekutu. Dapat terbang. Memiliki perisai.
-unit.vela.description = Menembak sinar laser besar dan kontinu yang dapat merusak musuh, membakarnya dan memperbaiki bangunan sekutu. Dapat terbang.
-unit.corvus.description = Menembak sinar laser besar yang dapat merusak musuh dan memperbaiki bangunan sekutu. Dapat berjalan diatas hampir semua medan.
+unit.scepter.description = Menembak rentetan peluru bermuatan listrik ke arah musuh.
+unit.reign.description = Menembak rentetan peluru tajam besar ke arah musuh.
+unit.nova.description = Menembak peluru laser yang merusak musuh dan dapat memperbaiki bangunan sekutu. Mampu terbang.
+unit.pulsar.description = Menembak petir yang merusak musuh dan dapat memperbaiki bangunan sekutu. Mampu terbang.
+unit.quasar.description = Menembak sinar laser tajam yang merusak musuh dan dapat memperbaiki bangunan sekutu. Mampu terbang. Memiliki perisai.
+unit.vela.description = Menembak sinar laser besar secara terus menerus yang merusak musuh, membakarnya dan dapat memperbaiki bangunan sekutu. Mampu terbang.
+unit.corvus.description = Menembak sinar laser besar yang merusak musuh dan dapat memperbaiki bangunan sekutu. Dapat berjalan hampir diatas semua medan.
unit.crawler.description = Berlari menuju musuh dan menghancurkan dirinya, yang dapat menghasilkan ledakan besar.
-unit.atrax.description = Menembak musuh dengan cairan lava kepada target darat. Dapat berjalan diatas hampir semua medan.
-unit.spiroct.description = Menembak laser pelemah kepada musuh, dapat memperbaiki dirinya dalam proses. Dapat berjalan diatas hampir semua medan.
-unit.arkyid.description = Menembak laser pelemah besar kepada musuh, dapat memperbaiki dirinya dalam proses. Dapat berjalan diatas hampir semua medan.
-unit.toxopid.description = Menembak gugusan peluru listrik besar dan laser penusuk kepada musuh. Dapat berjalan diatas hampir semua medan.
-unit.flare.description = Menembak musuh darat terdekat dengan amunisi standar.
-unit.horizon.description = Menjatuhkan gugusan bom kepada musuh darat.
-unit.zenith.description = Menembak misil kepada musuh terdekat.
-unit.antumbra.description = Menembak rentetan peluru kepada musuh terdekat.
-unit.eclipse.description = Menembak dua sinar laser dan rentetan peluru kepada musuh terdekat.
-unit.mono.description = Menambang tembaga dan timah secara otomatis, membawanya menuju inti.
+unit.atrax.description = Menembak musuh dengan cairan lava ke target darat. Dapat berjalan hampir diatas semua medan.
+unit.spiroct.description = Menembak laser pelemah ke arah musuh, dapat memperbaiki dirinya dalam proses. Dapat berjalan hampir diatas semua medan.
+unit.arkyid.description = Menembak laser pelemah besar ke arah musuh, dapat memperbaiki dirinya sendiri. Dapat berjalan hampir diatas semua medan.
+unit.toxopid.description = Menembak gugusan peluru listrik besar dan laser penusuk ke arah musuh. Dapat berjalan hampir diatas semua medan.
+unit.flare.description = Menembak peluru standar ke arah musuh di darat.
+unit.horizon.description = Menjatuhkan gugusan bom ke arah musuh di darat.
+unit.zenith.description = Menembak misil salvo ke arah musuh.
+unit.antumbra.description = Menembak rentetan peluru ke arah musuh.
+unit.eclipse.description = Menembak dua sinar laser dan rentetan peluru ke arah musuh.
+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.oct.description = Melindungi sekutu di sekitarnya dengan perisai yang dapat beregenerasi. Dapat membawa hampir semua unit darat.
-unit.risso.description = Menembak rentetan misil dan peluru kepada semua musuh terdekat.
-unit.minke.description = Menembak cangkang pembakar dan peluru standar kepada musuh darat terdekat.
-unit.bryde.description = Menembak artileri jarak jauh dan misil kepada musuh.
-unit.sei.description = Menembak rentetan misil dan peluru yang dapat menembus pelindung kepada musuh.
-unit.omura.description = Menembak railgun jarak jauh kepada musuh. Dapat memproduksi unit flare.
-unit.alpha.description = Melindungi Inti Bagian dari musuh. Dapat membangun struktur.
-unit.beta.description = Melindungi Inti Fondasi dari musuh. Dapat membangun struktur.
-unit.gamma.description = Melindungi Inti Nukleus dari musuh. Dapat membangun struktur.
-unit.retusa.description = Menembak torpedo pelacak. Memperbaiki unit sekutu.
-unit.oxynoe.description = Menembak aliran api pada musuh terdekat. Menargetkan proyektil musuh terdekat dengan titik menara pertahanan.
-unit.cyerce.description = Menembak misil yang membidik otomatis secara beruntun pada musuh. Memperbaiki unit sekutu.
-unit.aegires.description = Mengkejutkan semua bangunan dan unit musuh yang ada di dalam medan energi. Memperbaiki seluruh unit sekutu.
-unit.navanax.description = Menembak proyektil elektromagnetik yang meledak, memberikan kerusakan yang signifikan pada jaringan tenaga musuh dan memperbaiki bangunan sekutu. Melelehkan musuh terdekat dengan 4 menara laser secara otomatis.
+unit.risso.description = Menembak rentetan misil dan peluru ke arah musuh.
+unit.minke.description = Menembak cangkang pembakar dan peluru standar ke target darat.
+unit.bryde.description = Menembak artileri jarak jauh dan misil ke arah musuh.
+unit.sei.description = Menembak rentetan misil dan peluru yang dapat menembus pelindung ke arah musuh.
+unit.omura.description = Menembak senapan rel jarak jauh penembus ke arah musuh. Dapat memproduksi unit flare.
+unit.alpha.description = Melindungi Inti Shard dari musuh. Dapat membangun struktur.
+unit.beta.description = Melindungi Inti Foundation dari musuh. Dapat membangun struktur.
+unit.gamma.description = Melindungi Inti Nucleus dari musuh. Dapat membangun struktur.
+unit.retusa.description = Menembak torpedo pelacak ke arah musuh. Dapat memperbaiki unit sekutu.
+unit.oxynoe.description = Menembak semburan api ke arah musuh. Dapat memperbaiki bangunan sekutu. Menargetkan proyektil musuh dengan titik menara pertahanan.
+unit.cyerce.description = Menembak misil yang membidik otomatis secara beruntun ke arah musuh. Dapat memperbaiki unit sekutu.
+unit.aegires.description = Mengkejutkan semua bangunan dan unit musuh yang masuk ke dalam medan energinya. Dapat memperbaiki seluruh unit sekutu.
+unit.navanax.description = Menembak proyektil elektromagnetik yang meledak, memberikan kerusakan yang signifikan pada jaringan tenaga musuh dan memperbaiki bangunan sekutu. Melelehkan musuh terdekat dengan 4 menara laser otomatis.
#Erekir
-unit.stell.description = Menembak peluru standar pada musuh.
-unit.locus.description = Menembak peluru bergantian pada musuh.
-unit.precept.description = Menembak gugusan peluru penusuk pada musuh.
-unit.vanquish.description = Menembak peluru penusuk pemisahan besar pada musuh.
-unit.conquer.description = Menembak peluru penusuk besar yang berpancar pada musuh.
-unit.merui.description = Menembak artileri jarak jauh pada musuh di darat. Dapat melewati berbagai dataran.
-unit.cleroi.description = Menembak peluru ganda pada musuh. Menargetkan proyektil musuh terdekat dengan titik menara pertahanan. Dapat melewati berbagai dataran.
-unit.anthicus.description = Menembak misil pelacak jarak jauh pada musuh. Dapat melewati berbagai dataran.
-unit.tecta.description = Menembak misil plasma pelacak pada musuh. Melindungi diri sendiri dengan perisai searah. Dapat melewati berbagai dataran.
-unit.collaris.description = Menembak pecahan artileri jarak jauh pada musuh. Dapat melewati berbagai dataran.
-unit.elude.description = Menembak sepasang peluru pelacak pada musuh. Dapat melayang diatas permukaan cairan.
-unit.avert.description = Menembak sepasang peluru yang memutar pada musuh.
-unit.obviate.description = Menembak sepasang bola listrik yang memutar pada musuh.
-unit.quell.description = Menembak misil pelacak jarak jauh pada musuh. Menahan bangunan perbaikan musuh.
-unit.disrupt.description = Menembak misil pelacak penekanan jarak jauh pada musuh. Menahan bangunan perbaikan musuh.
-unit.evoke.description = Membangun struktur untuk melindungi inti Bastion. Memperbaiki bangunan dengan sebuah sinar. Dapat membawa bangunan hingga ukuran 2x2.
-unit.incite.description = Membangun struktur untuk melindungi inti Citadel. Memperbaiki bangunan dengan sebuah sinar. Dapat membawa bangunan hingga ukuran 2x2.
-unit.emanate.description = Membangun struktur untuk melindungi inti Acropolis. Memperbaiki bangunan dengan sebuah sinar. Dapat membawa bangunan hingga ukuran 2x2
+unit.stell.description = Menembak peluru standar ke arah musuh.
+unit.locus.description = Menembak peluru bergantian ke arah musuh.
+unit.precept.description = Menembak gugusan peluru penusuk ke arah musuh.
+unit.vanquish.description = Menembak peluru penusuk besar yang membelah ke arah musuh.
+unit.conquer.description = Menembak pancaran peluru penusuk besar ke arah musuh.
+unit.merui.description = Menembak artileri jarak jauh ke arah musuh di darat. Dapat melewati berbagai dataran.
+unit.cleroi.description = Menembak peluru ganda ke arah musuh. Menargetkan proyektil musuh terdekat dengan titik menara pertahanan. Dapat melewati berbagai medan.
+unit.anthicus.description = Menembak misil pelacak jarak jauh ke arah musuh. Dapat melewati berbagai medan.
+unit.tecta.description = Menembak misil plasma pelacak ke arah musuh. Melindungi diri sendiri dengan perisai searah. Dapat melewati berbagai medan.
+unit.collaris.description = Menembak pecahan artileri jarak jauh ke arah musuh. Dapat melewati berbagai medan.
+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 ke arah musuh. Menekan bangunan perbaikan musuh.
+unit.disrupt.description = Menembak misil pelacak penekan jarak jauh pada musuh. Menekan bangunan perbaikan musuh.
+unit.evoke.description = Membangun struktur untuk melindungi Inti Bastion. Memperbaiki bangunan dengan sebuah sinar. Dapat membawa bangunan hingga ukuran 2x2.
+unit.incite.description = Membangun struktur untuk melindungi Inti Citadel. Memperbaiki bangunan dengan sebuah sinar. Dapat membawa bangunan hingga ukuran 2x2.
+unit.emanate.description = Membangun struktur untuk melindungi Inti Acropolis. Memperbaiki bangunan dengan sebuah sinar. Dapat membawa bangunan hingga ukuran 2x2
lst.read = Membaca angka dari memori sel yang dihubungkan.
lst.write = Menulis angka ke memori sel yang dihubungkan.
lst.print = Menambahkan teks ke daftar cetak.\nTidak dapat menampilkan apapun sampai [accent]Print Flush[] dipakai.
+lst.printchar = Tambahkan karakter UTF-16 atau ikon konten ke buffer cetak.\nTidak menampilkan apa pun sampai [accent]Print Flush[] digunakan.
lst.format = Ganti placeholder berikutnya di buffer teks dengan sebuah nilai.\nTidak melakukan apa pun jika pola placeholder tidak valid.\nPola placeholder: "{[accent]nomor 0-9[]}"\nContoh:\n[accent]print "test {0}"\nformat "example"
lst.draw = Menambahkan perintah ke daftar gambar.\nTidak dapat menampilkan apapun sampai [accent]Draw Flush[] dipakai.
lst.drawflush = Mengeluarkan perintah [accent]Draw[] dari daftar antrean untuk ditampilkan.
@@ -2404,7 +2457,7 @@ lst.operation = Melakukan operasi pada 1-2 variabel.
lst.end = Loncati ke awal dari tumpukan perintah.
lst.wait = Memberi jeda dalam detik yang ditentukan.
lst.stop = Menghentikan eksekusi dari prosesor ini.
-lst.lookup = Mencari tipe barang/cairan/unit/blok dengan ID.\nJumlah hitungan dari setiap tipe dapat dilihat dengan:\n[accent]@unitCount[] / [accent]@itemCount[] / [accent]@liquidCount[] / [accent]@blockCount[]
+lst.lookup = Mencari tipe barang/cairan/unit/blok dengan ID.\nJumlah hitungan dari setiap tipe dapat dilihat dengan:\n[accent]@unitCount[] / [accent]@itemCount[] / [accent]@liquidCount[] / [accent]@blockCount[]\nUntuk operasi terbalik, artikan [accent]@id[] dari objek.
lst.jump = Loncati secara bersyarat ke pernyataan berikutnya.
lst.unitbind = Menautkan ke unit jenis berikutnya, dan menyimpannya di [accent]@unit[].
lst.unitcontrol = Mengendalikan unit yang saat ini dihubungkan.
@@ -2432,7 +2485,7 @@ lst.sync = Sinkronkan variabel di seluruh jaringan.\nHanya dipanggil paling bany
lst.playsound = Memutar suara. \nVolume dan kontrol suara dapat berupa nilai global, atau dihitung berdasarkan posisi.
lst.makemarker = Buat penanda logika baru di dunia.\nSebuah ID untuk mengidentifikasi penanda ini harus disediakan.\nPenanda saat ini dibatasi hingga 20.000 per dunia.
lst.setmarker = Tetapkan properti untuk penanda.\nID yang digunakan harus sama dengan instruksi Membuat Marker.
-lst.localeprint = Tambahkan nilai properti peta lokal ke buffer teks.\nUntuk menyetel paket peta lokal di editor peta, cek [accent]Info Peta > Paket Local[].\nJika klien adalah perangkat seluler, coba cetak properti yang diakhiri dengan ".mobile" terlebih dahulu.
+lst.localeprint = Tambahkan nilai properti peta lokal ke buffer teks.\nUntuk menyetel paket peta lokal di penyunting peta, cek [accent]Info Peta > Paket Lokal[].\nJika klien adalah perangkat seluler, coba cetak properti yang diakhiri dengan ".mobile" terlebih dahulu.
lglobal.false = 0
lglobal.true = 1
@@ -2443,7 +2496,7 @@ lglobal.@degToRad = Mengalikan dengan angka ini untuk mengubah derajat ke radian
lglobal.@radToDeg = Mengalikan dengan angka ini untuk mengubah radian ke derajat
lglobal.@time = Waktu main dari simpanan saat ini, dalam milidetik
-lglobal.@tick = Waktu main dari simpanan saat ini, dalam tick (1 detik = 60 ticks)
+lglobal.@tick = Waktu main dari simpanan saat ini, dalam tick (1 detik = 60 tick)
lglobal.@second = Waktu main dari simpanan saat ini, dalam detik
lglobal.@minute = Waktu main dari simpanan saat ini, dalam menit
lglobal.@waveNumber = Angka gelombang saat ini, jika gelombang diaktifkan
@@ -2486,12 +2539,14 @@ lenum.config = Pengaturan bangunan, misalnya menyortir barang.
lenum.enabled = Menentukan aktif tidaknya suatu blok.
laccess.currentammotype = Bahan amunisi/cairan menara saat ini.
+laccess.memorycapacity = Jumlah sel dalam satu blok memori.
laccess.color = Warna lampu.
laccess.controller = Pengendali unit. Jika dikendalikan prosesor, mengembalikan prosesor.\nJika unit dalam barisan, mengembalikan leader.\nSebaliknya, mengembalikan unit itu sendiri.
laccess.dead = Menentukan apakah unit/bangunan itu hancur atau tidak ada lagi.
laccess.controlled = Mengembalikan:\n[accent]@ctrlProcessor[] bila pengendali unit adalah prosesor\n[accent]@ctrlPlayer[] bila pengendali unit/bangunan adalah pemain\n[accent]@ctrlFormation[] bila unit dalam formasi\nSebaliknya, 0.
laccess.progress = Memeriksa hasil kemajuan, 0 sampai 1.\nMengembalikan hasil laju produksi, pengisian ulang menara atau pembangunan.
laccess.speed = Kecepatan tertinggi dari suatu unit, dalam ubin/detik.
+laccess.size = Ukuran dari sebuah unit/bangunan atau panjang dari sebuah string.
laccess.id = ID suatu unit/blok/bahan/cairan.\nIni adalah kebalikan dari operasi pencarian.
lcategory.unknown = Tak Diketahui
@@ -2570,7 +2625,7 @@ lenum.player = Unit yang dikendalikan oleh pemain.
lenum.ore = Bahan tambang.
lenum.damaged = Bangunan sekutu yang rusak.
-lenum.spawn = Titik munculnya musuh.\nDapat berupa inti atau suatu posisi.
+lenum.spawn = Titik mendaratnya musuh.\nDapat berupa inti atau suatu posisi.
lenum.building = Bangunan dalam suatu kumpulan.
lenum.core = Inti apapun.
@@ -2608,6 +2663,7 @@ unitlocate.building = Mengeluarkan variabel untuk bangunan yang terlihat.
unitlocate.outx = Mengeluarkan koordinat X.
unitlocate.outy = Mengeluarkan koordinat Y.
unitlocate.group = Kumpulan bangunan yang akan dicari.
+
playsound.limit = Jika benar, cegah suara ini diputar \njika sudah diputar pada frame yang sama.
lenum.idle = Tidak bergerak, namun tetap membangun/menambang.\nSifat awalan.
@@ -2615,21 +2671,21 @@ lenum.stop = Berhenti bergerak/menambang/membangun.
lenum.unbind = Mematikan kendali logika.\nLanjutkan A.I. standar.
lenum.move = Bergerak ke posisi yang ditentukan.
lenum.approach = Mendekati posisi dalam radius.
-lenum.pathfind = Mencari arah ke tempat munculnya musuh.
+lenum.pathfind = Mencari arah ke tempat pendaratan musuh.
lenum.autopathfind = Secara otomatis menemukan jalur ke inti atau zona pendaratan musuh terdekat.\nIni sama dengan pathfinding musuh pada gelombang standar.
lenum.target = Menembak pada posisi.
lenum.targetp = Menembak target dengan perkiraan kecepatan.
lenum.itemdrop = Menjatuhkan bahan.
lenum.itemtake = Mengambil bahan dari suatu bangunan.
lenum.paydrop = Menurunkan muatan yang ada.
-lenum.paytake = Mengangkut muatan pada lokasi ini.
+lenum.paytake = Membawa muatan pada lokasi ini.
lenum.payenter = Masuk/mendarat pada blok muatan yang saat ini unit sedang berdiri.
lenum.flag = Tanda numerik unit.
lenum.mine = Menambang pada sebuah posisi.
-lenum.build = Membangun sebuah sttruktur.
+lenum.build = Membangun sebuah struktur.
lenum.getblock = Ambil tipe bangunan, lantai dan blok pada koordinat.\nUnit harus berada dalam jangkauan posisinya, jika tidak maka null akan dikembalikan.
lenum.within = Memeriksa apakah unit di dekat suatu posisi.
-lenum.boost = Mulai/berhenti memdorong.
+lenum.boost = Mulai/berhenti pendorong.
lenum.flushtext = Flush cetak konten buffer ke penanda, jika ada.\nJika pengambilan disetel ke true, coba ambil properti dari paket peta lokal atau paket game.
lenum.texture = Nama tekstur langsung dari atlas tekstur game (menggunakan gaya penamaan kebab-case).\nJika printFlush disetel ke true, gunakan konten buffer teks sebagai argumen teks.
@@ -2638,3 +2694,30 @@ lenum.autoscale = Apakah akan menskalakan penanda sesuai dengan tingkat zoom pem
lenum.posi = Posisi terindeks, digunakan untuk penanda garis dan segi empat dengan indeks nol sebagai posisi pertama.
lenum.uvi = Posisi tekstur mulai dari nol hingga satu, digunakan untuk penanda segi empat.
lenum.colori = Warna terindeks, digunakan untuk penanda garis dan segi empat dengan indeks nol sebagai warna pertama.
+
+lenum.wavetimer = Apakah gelombang muncul secara otomatis berdasarkan pengatur waktu. Jika tidak, gelombang muncul saat tombol putar ditekan.
+lenum.wave = Nomor gelombang saat ini. Bisa berupa apa saja dalam mode non-gelombang.
+lenum.currentwavetime = Hitungan mundur gelombang dalam tick.
+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.unitcap = Batas unit dasar. Dapat ditingkatkan dengan blok.
+lenum.lighting = Apakah pencahayaan sekitar diaktifkan.
+lenum.buildspeed = Penggandaan untuk kecepatan membangun.
+lenum.unithealth = Berapa banyak nyawa unit di awal
+lenum.unitbuildspeed = Seberapa cepat pabrik unit membangun unit.
+lenum.unitcost = Penggandaan sumber daya yang dibutuhkan unit untuk membangun.
+lenum.unitdamage = Seberapa besar kerusakan yang ditimbulkan oleh unit.
+lenum.blockhealth = Berapa banyak nyawa blok di awal.
+lenum.blockdamage = Seberapa besar kerusakan yang ditimbulkan oleh blok (menara).
+lenum.rtsminweight = "Keuntungan" minimum yang dibutuhkan oleh satu regu untuk menyerang. Lebih tinggi -> lebih berhati-hati.
+lenum.rtsminsquad = Ukuran minimum regu penyerang.
+lenum.maparea = Area peta yang dapat dimainkan. Apa pun di luar area tersebut tidak akan dapat berinteraksi.
+lenum.ambientlight = Warna cahaya sekitar. Digunakan saat pencahayaan diaktifkan.
+lenum.solarmultiplier = Menggandakan pengeluaran tenaga panel surya.
+lenum.dragmultiplier = Penggandaan hambatan lingkungan.
+lenum.ban = Blok atau unit yang tidak dapat ditempatkan atau dibangun.
+lenum.unban = Batalkan larangan membuat suatu unit atau membangun blok.
diff --git a/core/assets/bundles/bundle_it.properties b/core/assets/bundles/bundle_it.properties
index c05f7efa7c..f7f121f0e8 100644
--- a/core/assets/bundles/bundle_it.properties
+++ b/core/assets/bundles/bundle_it.properties
@@ -13,7 +13,7 @@ link.google-play.description = Elenco di Google Play Store
link.f-droid.description = Catalogo F-Droid
link.wiki.description = Wiki ufficiale di Mindustry
link.suggestions.description = Suggerisci nuove funzionalità
-link.bug.description = Found one? Report it here
+link.bug.description = Trovato uno? Segnalalo qui
linkopen = Questo server ti ha inviato un link, sicuro di volerlo aprire?\n\n[sky]{0}
linkfail = Impossibile aprire il link! L'URL è stato copiato negli appunti.
screenshot = Screenshot salvato a {0}
@@ -45,7 +45,7 @@ mods.browser.selected = Mod selezionata
mods.browser.add = Installa mod
mods.browser.reinstall = Reinstalla mod
mods.browser.view-releases = Vedi versioni
-mods.browser.noreleases = [scarlet]Nessuna versione trovata\n[accent]Cerca se la mod ha delle versioni
+mods.browser.noreleases = [scarlet]Nessuna versione trovata\n[accent]Cerca se la mod ha delle versioni
mods.browser.latest =
mods.browser.releases = Versioni
mods.github.open = Repo
@@ -129,6 +129,7 @@ done = Fatto
feature.unsupported = Il tuo dispositivo non supporta questa funzione.
mods.initfailed = [red]⚠[] L'ultimo avvio di Mindustry non è riuscito. Questo potrebbe essere a causa delle mod.\n\nè consigliato disabilitare tutte le mod.[]
mods = Mod
+mods.name = Mod:
mods.none = [lightgray]Nessuna mod trovata!
mods.guide = Guida per il modding
mods.report = Segnala un Bug
@@ -153,8 +154,8 @@ mod.erroredcontent = [scarlet]Errori di Contenuto
mod.circulardependencies = [red]Circular Dependencies
mod.incompletedependencies = [red]Incomplete Dependencies
mod.requiresversion.details = Richiede la versione del gioco: [accent]{0}[]\nIl tuo gioco è obsoleto. Questa mod richiede una versione più recente del gioco (possibilmente una versione beta/alpha) per funzionare.
-mod.outdatedv7.details = This mod is incompatible with the latest version of the game. The author must update it, and add [accent]minGameVersion: 136[] to its [accent]mod.json[] file.
-mod.blacklisted.details = This mod has been manually blacklisted for causing crashes or other issues with this version of the game. Do not use it.
+mod.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 = Questa mod è stata messa manualmente nella blacklist perchè provoca crash o altri problemi in questa versione del gioco. Non usarla.
mod.missingdependencies.details = This mod is missing dependencies: {0}
mod.erroredcontent.details = This game caused errors when loading. Ask the mod author to fix them.
mod.circulardependencies.details = This mod has dependencies that depends on each other.
@@ -162,7 +163,6 @@ mod.incompletedependencies.details = This mod is unable to be loaded due to inva
mod.requiresversion = Requires game version: [red]{0}
mod.errors = Si sono verificati degli errori durante il caricamento del contenuto.
mod.noerrorplay = [scarlet]Sono presenti delle mod con errori.[] Puoi disabilitare le mod affette oppure sistemarle prima di giocare.
-mod.nowdisabled = [scarlet]Alla mod '{0}' mancano delle dipendenze:[accent] {1}\n[lightgray]Queste mod devono essere scaricate prima.\nQuesta mod verrà disabilitata automaticamente.
mod.enable = Abilita
mod.requiresrestart = Il gioco verrà chiuso per applicare i cambiamenti.
mod.reloadrequired = [scarlet]Riavvio necessario
@@ -177,6 +177,15 @@ mod.missing = Questo salvataggio contiene delle mod che hai recentemente aggiorn
mod.preview.missing = Prima di pubblicare questa mod nel Workshop, devi aggiungere un immagine di copertina.\nMetti un immagine con nome[accent] preview.png[] nella cartella della mod e riprova.
mod.folder.missing = Solo le mod in una cartella possono essere pubblicate nel Workshop.\nPer convertire una mod in una cartella, decomprimi i suoi file in una cartella ed elimina il vecchio zip, quindi riavvia il gioco o ricarica le tue mod.
mod.scripts.disable = Il tuo dispositivo non supporta le mod con gli script. Devi disabilitare queste mod per poter giocare.
+mod.dependencies.error = [scarlet]Mods are missing dependencies
+mod.dependencies.soft = (optional)
+mod.dependencies.download = Import
+mod.dependencies.downloadreq = Import Required
+mod.dependencies.downloadall = Import All
+mod.dependencies.status = Import Results
+mod.dependencies.success = Successfully downloaded:
+mod.dependencies.failure = Failed to download:
+mod.dependencies.imported = This mod requires dependencies. Download?
about.button = Info
name = Nome:
@@ -293,6 +302,7 @@ disconnect.error = Errore di connessione.
disconnect.closed = Connessione chiusa.
disconnect.timeout = Connessione scaduta.
disconnect.data = Errore durante il caricamento del mondo!
+disconnect.snapshottimeout = Timed out while receiving UDP snapshots.\nThis may be caused by an unstable network or connection.
cantconnect = Impossibile unirsi alla partita ([accent]{0}[]).
connecting = [accent]Connessione in corso...
reconnecting = [accent]Riconnessione in corso...
@@ -461,6 +471,7 @@ editor.shiftx = Shift X
editor.shifty = Shift Y
workshop = Workshop
waves.title = Ondate
+waves.team = Team
waves.remove = Rimuovi
waves.every = sempre
waves.waves = ondata/e
@@ -699,25 +710,29 @@ objective.build = [accent]Costruisci: [][lightgray]{0}[]x\n{1}[lightgray]{2}
objective.buildunit = [accent]Costruisci unità: [][lightgray]{0}[]x\n{1}[lightgray]{2}
objective.destroyunits = [accent]Distruggi: [][lightgray]{0}[]x unità
objective.enemiesapproaching = [accent]Nemici in arrivo tra [lightgray]{0}[]
-objective.enemyescelating = [accent]Enemy production escalating in [lightgray]{0}[]
-objective.enemyairunits = [accent]Enemy air unit production beginning in [lightgray]{0}[]
+objective.enemyescelating = [accent]Produzione nemica in aumento tra [lightgray]{0}[]
+objective.enemyairunits = [accent]La produzione aerea nemica comincia tra [lightgray]{0}[]
objective.destroycore = [accent]Distruggi il nucleo nemico
objective.command = [accent]Comanda Unità
-objective.nuclearlaunch = [accent]⚠ Lancio nucleare rilevaato: [lightgray]{0}
+objective.nuclearlaunch = [accent]⚠ Lancio nucleare rilevato: [lightgray]{0}
announce.nuclearstrike = [red]⚠ COLPO NUCLEARE IN ARRIVO ⚠
loadout = Equipaggiamento
resources = Risorse
resources.max = Max
bannedblocks = Blocchi Banditi
+unbannedblocks = Unbanned Blocks
objectives = Obbiettivi
bannedunits = Unità bandite
+unbannedunits = Unbanned Units
bannedunits.whitelist = Banned Units As Whitelist
bannedblocks.whitelist = Banned Blocks As Whitelist
addall = Aggiungi Tutti
launch.from = Partenza da: [accent]{0}
launch.capacity = Capacità di lancio oggetti: [accent]{0}
launch.destination = Destinazione: {0}
+landing.sources = Source Sectors: [accent]{0}[]
+landing.import = Max Total Import: {0}[accent]{1}[lightgray]/min
configure.invalid = Il valore deve essere un numero compresto tra 0 e {0}.
add = Aggiungi...
guardian = Guardiano
@@ -726,7 +741,7 @@ connectfail = [scarlet]Impossibile connettersi al server:\n\n[accent] {0}
error.unreachable = Server irraggiungibile. L'indirizzo è scritto correttamente?
error.invalidaddress = Indirizzo non valido.
error.timedout = Tempo scaduto!\nAssicurati che l'host abbia il port forwarding impostato e che l'indirizzo sia corretto!
-error.mismatch = Errore dei pacchetti:\nPossibile discordanza della versione client/server.\nAssicurati che tu e l'host possiediate l'ultima versione di Mindustry!
+error.mismatch = Errore dei pacchetti:\nPossibile discordanza della versione client/server.\nAssicurati che tu e l'host possediate l'ultima versione di Mindustry!
error.alreadyconnected = Già connesso.
error.mapnotfound = Mappa non trovata!
error.io = Errore I/O di rete.
@@ -756,7 +771,9 @@ sectors.stored = Immagazzinato:
sectors.resume = Riprendi
sectors.launch = Lancia
sectors.select = Seleziona
+sectors.launchselect = Select Launch Destination
sectors.nonelaunch = [lightgray]nessuno (sole)
+sectors.redirect = Redirect Launch Pads
sectors.rename = Rinomina Settore
sectors.enemybase = [scarlet]Base Nemica
sectors.vulnerable = [scarlet]Vulnerabile
@@ -764,7 +781,7 @@ sectors.underattack = [scarlet]Sotto attacco! [accent]{0}% danneggiato
sectors.underattack.nodamage = [scarlet]Non catturato
sectors.survives = [accent]Sopravvissuto a {0} ondate
sectors.go = Lancia
-sector.abandon = Abandona
+sector.abandon = Abbandona
sector.abandon.confirm = Il nucleo/i di questo settore si auto-distruggeranno.\nContinuare?
sector.curcapture = Settore Catturato
sector.curlost = Settore Perso
@@ -788,6 +805,10 @@ difficulty.easy = Easy
difficulty.normal = Normal
difficulty.hard = Hard
difficulty.eradication = Eradication
+difficulty.enemyHealthMultiplier = Enemy Health: {0}
+difficulty.enemySpawnMultiplier = Enemy Amount: {0}
+difficulty.waveTimeMultiplier = Wave Timer: {0}
+difficulty.nomodifiers = [lightgray](No modifiers)
planets = Pianeti
@@ -1017,6 +1038,7 @@ stat.buildspeedmultiplier = Moltiplicatore velocità di costruzione
stat.reactive = Reacts
stat.immunities = Immunità
stat.healing = Rigenerazione
+stat.efficiency = [stat]{0}% Efficiency
ability.forcefield = Campo di Forza
ability.forcefield.description = Projects a force shield that absorbs bullets
@@ -1064,6 +1086,7 @@ ability.stat.buildtime = [stat]{0} sec[lightgray] build time
bar.onlycoredeposit = Concesso solo il deposito al nucleo
bar.drilltierreq = Miglior Trivella Richiesta
+bar.nobatterypower = Insufficieny Battery Power
bar.noresources = Risorse Mancanti
bar.corereq = Nucleo Richiesto
bar.corefloor = Core Zone Tile Required
@@ -1072,6 +1095,7 @@ bar.drillspeed = Velocità Scavo: {0}/s
bar.pumpspeed = Velocità di Pompaggio: {0}/s
bar.efficiency = Efficienza: {0}%
bar.boost = Boost: +{0}%
+bar.powerbuffer = Battery Power: {0}/{1}
bar.powerbalance = Energia: {0}/s
bar.powerstored = Immagazzinata: {0}/{1}
bar.poweramount = Energia: {0}
@@ -1082,6 +1106,7 @@ bar.capacity = Capacità: {0}
bar.unitcap = {0} {1}/{2}
bar.liquid = Liquido
bar.heat = Calore
+bar.cooldown = Cooldown
bar.instability = Instabilità
bar.heatamount = Calore: {0}
bar.heatpercent = Calore: {0} ({1}%)
@@ -1106,6 +1131,7 @@ bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
bullet.frags = [stat]{0}[lightgray]x frammentazione:
bullet.lightning = [stat]{0}[lightgray]x fulmine ~ [stat]{1}[lightgray] danno
bullet.buildingdamage = [stat]{0}%[lightgray] danno alle costruzioni
+bullet.shielddamage = [stat]{0}%[lightgray] shield damage
bullet.knockback = [stat]{0}[lightgray] contraccolpo
bullet.pierce = [stat]{0}[lightgray]x perforazione
bullet.infinitepierce = [stat]perforazione
@@ -1132,6 +1158,7 @@ unit.minutes = minuti
unit.persecond = /s
unit.perminute = /min
unit.timesspeed = x velocità
+unit.multiplier = x
unit.percent = %
unit.shieldhealth = salute scudo
unit.items = oggetti
@@ -1208,11 +1235,13 @@ setting.mutemusic.name = Silenzia Musica
setting.sfxvol.name = Volume Effetti
setting.mutesound.name = Silenzia Suoni
setting.crashreport.name = Invia rapporti anonimi sugli arresti anomali
+setting.communityservers.name = Fetch Community Server List
setting.savecreate.name = Salvataggi Automatici
setting.steampublichost.name = Public Game Visibility
setting.playerlimit.name = Limite Giocatori
setting.chatopacity.name = Opacità Chat
setting.lasersopacity.name = Opacità Raggi Energetici
+setting.unitlaseropacity.name = Unit Mining Beam Opacity
setting.bridgeopacity.name = Opacità Nastri e Condotti Sopraelevati
setting.playerchat.name = Mostra Chat
setting.showweather.name = Mostra grafica del meteo
@@ -1221,6 +1250,9 @@ setting.macnotch.name = Adatta l'interfaccia per visualizzare la tacca
setting.macnotch.description = Riavvio necessario per applicare le modifiche
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.
public.beta = Nota che le versioni beta del gioco non possono creare lobby pubbliche.
uiscale.reset = La scala dell'interfaccia utente è stata modificata.\nPremere 'OK' per confermare questa scala.\n[scarlet]Ripristina ed esci in [accent] {0}[] secondi...
uiscale.cancel = Annulla ed Esci
@@ -1301,6 +1333,7 @@ keybind.shoot.name = Spara
keybind.zoom.name = Zoom
keybind.menu.name = Menu
keybind.pause.name = Pausa
+keybind.skip_wave.name = Skip Wave
keybind.pause_building.name = Interrompi/Riprendi Costruzione
keybind.minimap.name = Minimappa
keybind.planet_map.name = Mappa Pianeta
@@ -1368,12 +1401,14 @@ rules.unitcostmultiplier = Unit Cost Multiplier
rules.unithealthmultiplier = Moltiplicatore Vita Unità
rules.unitdamagemultiplier = Moltiplicatore Danno Unità
rules.unitcrashdamagemultiplier = Unit Crash Damage Multiplier
+rules.unitminespeedmultiplier = Unit Mine Speed Multiplier
rules.solarmultiplier = Moltiplicatore energia solare
rules.unitcapvariable = Cores Contribute To Unit Cap
rules.unitpayloadsexplode = Carried Payloads Explode With The Unit
rules.unitcap = Base Unit Cap
rules.limitarea = Limite dimensioni mappa
rules.enemycorebuildradius = Raggio di protezione del Nucleo Nemico dalle costruzioni:[lightgray] (blocchi)
+rules.extracorebuildradius = Extra No-Build Radius:[lightgray] (tiles)
rules.wavespacing = Tempo fra Ondate:[lightgray] (secondi)
rules.initialwavespacing = Tempo per la prima ondata:[lightgray] (sec)
rules.buildcostmultiplier = Moltiplicatore Costo Costruzione
@@ -1396,6 +1431,9 @@ rules.title.planet = pianeta
rules.lighting = Illuminazione
rules.fog = Nebbia di guerra
rules.invasions = Enemy Sector Invasions
+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.fire = Fuoco
@@ -1454,7 +1492,7 @@ liquid.gallium.name = Gallio
liquid.ozone.name = Ozono
liquid.hydrogen.name = Idrogeno
liquid.nitrogen.name = Azoto
-liquid.cyanogen.name = Cyanogen
+liquid.cyanogen.name = Cianogeno
unit.dagger.name = Pugnalatore
unit.mace.name = Randellatore
@@ -1717,6 +1755,8 @@ block.meltdown.name = Fusione
block.foreshadow.name = Tenebra
block.container.name = Contenitore
block.launch-pad.name = Ascensore Spaziale
+block.advanced-launch-pad.name = Launch Pad
+block.landing-pad.name = Landing Pad
block.segment.name = Segmentatore
block.ground-factory.name = Fabbrica Terrestre
block.air-factory.name = Fabbrica Aerea
@@ -1772,6 +1812,8 @@ block.arkyic-vent.name = Arkyic Vent
block.yellow-stone-vent.name = Yellow Stone Vent
block.red-stone-vent.name = Red Stone Vent
block.crystalline-vent.name = Crystalline Vent
+block.stone-vent.name = Stone Vent
+block.basalt-vent.name = Basalt Vent
block.redmat.name = Redmat
block.bluemat.name = Bluemat
block.core-zone.name = Core Zone
@@ -1921,12 +1963,12 @@ hint.skip = Salta
hint.desktopMove = Usa [accent][[WASD][] per muoverti.
hint.zoom = [accent]Scorri[] per aumentare o ridurre la visuale.
hint.desktopShoot = [accent][[Click-sinistro][] per sparare.
-hint.depositItems = Per trasferire oggetti, trascinadalla tua nave al nucleo.
+hint.depositItems = Per trasferire oggetti, trascina dalla tua nave al nucleo.
hint.respawn = Per rinascere come nave, premi [accent][[V][].
hint.respawn.mobile = Hai cambiato il controllo a unità/strutture. Per rinascere come nave, [accent]tocca the l'avatar in alto a sinistra.[]
hint.desktopPause = Premi[accent][[Space][] per mettere in pausa o riprendere il gioco.
hint.breaking = [accent]Click-destro[] e trascina per distruggere blocchi.
-hint.breaking.mobile = Attivita il \ue817 [accent]martello[] in fondo a destra e tocca per distruggere blocchi.\n\nTieni premuto il tuo dito per un secondo e trascina per distruggere blocchi in una selezione.
+hint.breaking.mobile = Attiva il \ue817 [accent]martello[] in fondo a destra e tocca per distruggere blocchi.\n\nTieni premuto il tuo dito per un secondo e trascina per distruggere blocchi in una selezione.
hint.blockInfo = View information of a block by selecting it in the [accent]build menu[], then selecting the [accent][[?][] button at the right.
hint.derelict = [accent]Derelict[] structures are broken remnants of old bases that no longer function.\n\nThese structures can be [accent]deconstructed[] for resources.
hint.research = Usa il pulsante \ue875 [accent]Scopri[] per scoprire nuova tecnologia.
@@ -2156,7 +2198,9 @@ block.vault.description = Immagazzina grandi quantità di oggetti di ogni tipo.
block.container.description = Imagazzina piccole quantità di oggetti di ogni tipo. Può essere svuotato con uno scaricatore.
block.unloader.description = Scarica l'oggetto selezionato dai blocchi adiacenti.
block.launch-pad.description = Lancia lotti di oggetti ai settori selezionati.
-block.launch-pad.details = Sub-orbital system for point-to-point transportation of resources. Payload pods are fragile and incapable of surviving re-entry.
+block.advanced-launch-pad.description = Launches batches of items to selected sectors. Only accepts one item type at a time.
+block.advanced-launch-pad.details = Sub-orbital system for point-to-point transportation of resources.
+block.landing-pad.description = Receives items from launch pads in other sectors. Requires large amounts of water to protect against impacts of landings.
block.duo.description = Spara proiettili ai nemici.
block.scatter.description = Spara agglomerati di piombo, rottami o vetro metallico ai nemici aerei.
block.scorch.description = Incenerisce qualsiasi unità terrena nelle vicinanze. Altamente efficace a distanza ravvicinata.
@@ -2263,6 +2307,7 @@ block.unit-cargo-loader.description = Constructs cargo drones. Drones automatica
block.unit-cargo-unload-point.description = Acts as an unloading point for cargo drones. Accepts items that match the selected filter.
block.beam-node.description = Transmits power to other blocks orthogonally. Stores a small amount of power.
block.beam-tower.description = Transmits power to other blocks orthogonally. Stores a large amount of power. Long-range.
+block.beam-link.description = Transmits power over vast distances.\nOnly capable of connecting to adjacent structures or other beam links.
block.turbine-condenser.description = Generates power when placed on vents. Produces a small amount of water.
block.chemical-combustion-chamber.description = Generates power from arkycite and ozone.
block.pyrolysis-generator.description = Generates large amounts of power from arkycite and slag. Produces water as a byproduct.
@@ -2352,6 +2397,7 @@ unit.emanate.description = Costruisce strutture per difendere il nucleo dell'Acr
lst.read = Leggi un numero da una cella di memoria collegata.
lst.write = Scrivi un numero in una cella di memoria collegata.
lst.print = Add text to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used.
+lst.printchar = Add a UTF-16 character or content icon to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used.
lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example"
lst.draw = Add an operation to the drawing buffer.\nDoes not display anything until [accent]Draw Flush[] is used.
lst.drawflush = Flush queued [accent]Draw[] operations to a display.
@@ -2437,12 +2483,14 @@ lenum.shootp = Shoot at a unit/building with velocity prediction.
lenum.config = Building configuration, e.g. sorter item.
lenum.enabled = Whether the block is enabled.
laccess.currentammotype = Current ammo item/liquid of a turret.
+laccess.memorycapacity = Number of cells in a memory block.
laccess.color = Illuminator color.
laccess.controller = Unit controller. If processor controlled, returns processor.\nIf in a formation, returns leader.\nOtherwise, returns the unit itself.
laccess.dead = Whether a unit/building is dead or no longer valid.
laccess.controlled = Returns:\n[accent]@ctrlProcessor[] if unit controller is processor\n[accent]@ctrlPlayer[] if unit/building controller is player\n[accent]@ctrlFormation[] if unit is in formation\nOtherwise, 0.
laccess.progress = Action progress, 0 to 1.\nReturns production, turret reload or construction progress.
laccess.speed = Top speed of a unit, in tiles/sec.
+laccess.size = Size of a unit/building or the length of a string.
laccess.id = ID of a unit/block/item/liquid.\nThis is the inverse of the lookup operation.
lcategory.unknown = Unknown
lcategory.unknown.description = Uncategorized instructions.
@@ -2571,3 +2619,29 @@ lenum.autoscale = Whether to scale marker corresponding to player's zoom level.
lenum.posi = Indexed position, used for line and quad markers with index zero being the first position.
lenum.uvi = Texture's position ranging from zero to one, used for quad markers.
lenum.colori = Indexed position, used for line and quad markers with index zero being the first color.
+lenum.wavetimer = Whether the waves come automatically on a timer. If not, waves come when the play button is pressed.
+lenum.wave = Current wave number. Can be anything in non-wave modes.
+lenum.currentwavetime = Wave countdown in ticks.
+lenum.waves = Whether waves are spawnable at all.
+lenum.wavesending = Whether the waves can be manually summoned with the play button.
+lenum.attackmode = Determines if gamemode is attack mode.
+lenum.wavespacing = Time between waves in ticks.
+lenum.enemycorebuildradius = No-build zone around enemy core radius.
+lenum.dropzoneradius = Radius around enemy wave drop zones.
+lenum.unitcap = Base unit cap. Can still be increased by blocks.
+lenum.lighting = Whether ambient lighting is enabled.
+lenum.buildspeed = Multiplier for building speed.
+lenum.unithealth = How much health units start with.
+lenum.unitbuildspeed = How fast unit factories build units.
+lenum.unitcost = Multiplier of resources that units take to build.
+lenum.unitdamage = How much damage units deal.
+lenum.blockhealth = How much health blocks start with.
+lenum.blockdamage = How much damage blocks (turrets) deal.
+lenum.rtsminweight = Minimum "advantage" needed for a squad to attack. Higher -> more cautious.
+lenum.rtsminsquad = Minimum size of attack squads.
+lenum.maparea = Playable map area. Anything outside the area will not be interactable.
+lenum.ambientlight = Ambient light color. Used when lighting is enabled.
+lenum.solarmultiplier = Multiplies power output of solar panels.
+lenum.dragmultiplier = Environment drag multiplier.
+lenum.ban = Blocks or units that cannot be placed or built.
+lenum.unban = Unban a unit or block.
diff --git a/core/assets/bundles/bundle_ja.properties b/core/assets/bundles/bundle_ja.properties
index 62ec1d3277..8fa8e47963 100644
--- a/core/assets/bundles/bundle_ja.properties
+++ b/core/assets/bundles/bundle_ja.properties
@@ -131,6 +131,7 @@ feature.unsupported = あなたのデバイスはこの機能をサポートし
mods.initfailed = [red]⚠[] 以前のMindustryの初期化に失敗しました。\nおそらくModの誤作動が原因です。\n\nクラッシュループを防ぐために、[red]全てのModが無効になっています。[]
mods = Mods
+mods.name = Mod:
mods.none = [lightgray]Modが見つかりませんでした!
mods.guide = Mod作成ガイド
mods.report = バグを報告する
@@ -155,7 +156,7 @@ mod.erroredcontent = [scarlet]コンテンツエラー
mod.circulardependencies = [red]循環依存
mod.incompletedependencies = [red]不完全な依存関係
mod.requiresversion.details = ゲームのバージョンが必要です: [accent]{0}[]\nあなたのゲームは古くなっています。このmodが機能するには、ゲームの新しいバージョン (おそらくベータ/アルファリリース) が必要です。
-mod.outdatedv7.details = このmodはゲームの最新バージョンと互換性がありません。 mod製作者はv7に対応したあと、[accent]minGameVersion: 136[] を [accent]mod.json[] ファイルに追加する必要があります。
+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 = このmodは、このバージョンのゲームでクラッシュやその他の問題を引き起こすため、手動でブラックリストに登録されています。 使用しないでください。
mod.missingdependencies.details = この mod は次の mod を必要としています: {0}
mod.erroredcontent.details = このゲームは、読み込み中にエラーが発生しました。modの作成者に修正を依頼してください。
@@ -164,7 +165,6 @@ mod.incompletedependencies.details = 依存関係が無効または欠損して
mod.requiresversion = ゲームのバージョンが必要です: [red]{0}
mod.errors = コンテンツの読み込み中にエラーが発生しました。
mod.noerrorplay = [scarlet]以下のModにエラーがあります。[] Modを無効化するか、エラーを修正してください。
-mod.nowdisabled = [scarlet]{0} 依存関係がありません。:[accent] {1}\n[lightgray]これらのModをダウンロードし有効化する必要があります。\nなお、このModは自動的に無効化されます。
mod.enable = 有効化
mod.requiresrestart = このModをインストールするためにはゲームの再起動が必要です。
mod.reloadrequired = [scarlet]Modを有効にするには、この画面を開き直してください。
@@ -179,6 +179,15 @@ mod.missing = このデータには、最近更新された、または、有効
mod.preview.missing = このModをワークショップで公開するには、Modのプレビュー画像を設定する必要があります。\n[accent] preview.png[] というファイル名の画像をmodsのフォルダに配置し、再試行してください。
mod.folder.missing = ワークショップで公開できるのは、フォルダ形式のModのみとなります。\nModをフォルダ形式に変換するには、ファイルをフォルダに解凍し、古いzipを削除してからゲームを再起動するか、modを再読み込みしてください。
mod.scripts.disable = お使いのデバイスはScriptを使用したModをサポートしていません。 ゲームをプレイするには、これらのModを無効にする必要があります。
+mod.dependencies.error = [scarlet]Mods are missing dependencies
+mod.dependencies.soft = (optional)
+mod.dependencies.download = Import
+mod.dependencies.downloadreq = Import Required
+mod.dependencies.downloadall = Import All
+mod.dependencies.status = Import Results
+mod.dependencies.success = Successfully downloaded:
+mod.dependencies.failure = Failed to download:
+mod.dependencies.imported = This mod requires dependencies. Download?
about.button = 情報
name = 名前:
@@ -295,6 +304,7 @@ disconnect.error = 接続にエラーが発生しました。
disconnect.closed = 接続が切断されました。
disconnect.timeout = タイムアウトしました。
disconnect.data = ワールドデータの読み込みに失敗しました!
+disconnect.snapshottimeout = Timed out while receiving UDP snapshots.\nThis may be caused by an unstable network or connection.
cantconnect = ゲームに参加できませんでした。 ([accent]{0}[])
connecting = [accent]接続中...
reconnecting = [accent]再接続中...
@@ -463,6 +473,7 @@ editor.shiftx = Shift X
editor.shifty = Shift Y
workshop = ワークショップ
waves.title = ウェーブ
+waves.team = Team
waves.remove = 削除
waves.every = ウェーブ
waves.waves = ごとに出現
@@ -714,14 +725,18 @@ loadout = ロードアウト
resources = 資源
resources.max = Max
bannedblocks = 禁止ブロック
+unbannedblocks = Unbanned Blocks
objectives = オブジェクティブ
bannedunits = 禁止ユニット
+unbannedunits = Unbanned Units
bannedunits.whitelist = 「禁止ユニット」以外を禁止する(ホワイトリスト)
bannedblocks.whitelist = 「禁止ブロック」以外を禁止する(ホワイトリスト)
addall = すべて追加
launch.from = [accent]{0}[] からの発射
launch.capacity = 発射アイテム容量: [accent]{0}
launch.destination = 目的地: {0}
+landing.sources = Source Sectors: [accent]{0}[]
+landing.import = Max Total Import: {0}[accent]{1}[lightgray]/min
configure.invalid = 値は 0 から {0} の間でなければなりません。
add = 追加...
guardian = ガーディアン
@@ -760,7 +775,9 @@ sectors.stored = コアの資源:
sectors.resume = 再開
sectors.launch = 打ち上げ
sectors.select = 選択
+sectors.launchselect = Select Launch Destination
sectors.nonelaunch = [lightgray]無し (sun)
+sectors.redirect = Redirect Launch Pads
sectors.rename = セクター名を変更
sectors.enemybase = [scarlet]敵基地
sectors.vulnerable = [scarlet]脆弱
@@ -792,6 +809,10 @@ difficulty.easy = Easy
difficulty.normal = Normal
difficulty.hard = Hard
difficulty.eradication = Eradication
+difficulty.enemyHealthMultiplier = Enemy Health: {0}
+difficulty.enemySpawnMultiplier = Enemy Amount: {0}
+difficulty.waveTimeMultiplier = Wave Timer: {0}
+difficulty.nomodifiers = [lightgray](No modifiers)
planets = 惑星
@@ -1023,6 +1044,7 @@ stat.buildspeedmultiplier = 建築速度倍率
stat.reactive = 反応
stat.immunities = 耐性
stat.healing = 治癒
+stat.efficiency = [stat]{0}% Efficiency
ability.forcefield = フォースフィールド
ability.forcefield.description = Projects a force shield that absorbs bullets
@@ -1070,6 +1092,7 @@ ability.stat.buildtime = [stat]{0} sec[lightgray] build time
bar.onlycoredeposit = コアにのみ搬入できます。
bar.drilltierreq = より高性能なドリルを使用してください
+bar.nobatterypower = Insufficieny Battery Power
bar.noresources = 不足している資源
bar.corereq = コアベースが必要
bar.corefloor = コアゾーンタイルが必要
@@ -1078,6 +1101,7 @@ bar.drillspeed = 採掘速度: {0}/秒
bar.pumpspeed = ポンプの速度: {0}/s
bar.efficiency = 効率: {0}%
bar.boost = ブースト: +{0}%
+bar.powerbuffer = Battery Power: {0}/{1}
bar.powerbalance = 電力均衡: {0}/秒
bar.powerstored = 総蓄電量: {0}/{1}
bar.poweramount = 蓄電量: {0}
@@ -1088,6 +1112,7 @@ bar.capacity = 容量: {0}
bar.unitcap = {0} {1}/{2}
bar.liquid = 液体
bar.heat = 熱
+bar.cooldown = Cooldown
bar.instability = 不安定度
bar.heatamount = 熱: {0}
bar.heatpercent = 熱: {0} ({1}%)
@@ -1112,6 +1137,7 @@ bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
bullet.frags = [stat]{0}[lightgray]x frag bullets:
bullet.lightning = [stat]{0}[lightgray]x ライトニング ~ [stat]{1}[lightgray] ダメージ
bullet.buildingdamage = [stat]{0}%[lightgray] 対物ダメージ
+bullet.shielddamage = [stat]{0}%[lightgray] shield damage
bullet.knockback = [stat]{0}[lightgray] ノックバック
bullet.pierce = [stat]{0}[lightgray]x レーザー弾
bullet.infinitepierce = [stat]レーザー弾
@@ -1138,6 +1164,7 @@ unit.minutes = 分
unit.persecond = /秒
unit.perminute = /分
unit.timesspeed = 倍の速度
+unit.multiplier = x
unit.percent = %
unit.shieldhealth = シールド
unit.items = アイテム
@@ -1214,11 +1241,13 @@ setting.mutemusic.name = 音楽をミュート
setting.sfxvol.name = 効果音 音量
setting.mutesound.name = 効果音をミュート
setting.crashreport.name = 匿名でクラッシュレポートを送信する
+setting.communityservers.name = Fetch Community Server List
setting.savecreate.name = 自動保存
setting.steampublichost.name = Public Game Visibility
setting.playerlimit.name = プレイヤー数制限
setting.chatopacity.name = チャットの透明度
setting.lasersopacity.name = 電線の透明度
+setting.unitlaseropacity.name = Unit Mining Beam Opacity
setting.bridgeopacity.name = ブリッジの透明度
setting.playerchat.name = ゲーム内にチャットを表示
setting.showweather.name = 天気のグラフィックを表示
@@ -1227,6 +1256,9 @@ setting.macnotch.name = インターフェイスをノッチ表示に適応さ
setting.macnotch.description = 再起動が必要です。
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.
public.beta = ベータ版では使用できません。
uiscale.reset = UIサイズが変更されました。\nこのままでよければ「OK」を押してください。\n[scarlet][accent]{0}[] 秒で元の設定に戻ります...
uiscale.cancel = キャンセル & 終了
@@ -1307,6 +1339,7 @@ keybind.shoot.name = ショット
keybind.zoom.name = ズーム
keybind.menu.name = メニュー
keybind.pause.name = ポーズ
+keybind.skip_wave.name = Skip Wave
keybind.pause_building.name = 建築の一時中断/再開
keybind.minimap.name = ミニマップ
keybind.planet_map.name = 惑星地図
@@ -1374,12 +1407,14 @@ rules.unitcostmultiplier = ユニットの製造コスト倍率
rules.unithealthmultiplier = ユニットの体力倍率
rules.unitdamagemultiplier = ユニットのダメージ倍率
rules.unitcrashdamagemultiplier = ユニットの衝突ダメージ倍率
+rules.unitminespeedmultiplier = Unit Mine Speed Multiplier
rules.solarmultiplier = 太陽光の倍率
rules.unitcapvariable = コア数によってユニット上限を変動
rules.unitpayloadsexplode = Carried Payloads Explode With The Unit
rules.unitcap = 基礎ユニット上限数
rules.limitarea = マップエリアを制限
rules.enemycorebuildradius = 敵コア周辺の建設禁止区域の半径:[lightgray] (タイル)
+rules.extracorebuildradius = Extra No-Build Radius:[lightgray] (tiles)
rules.wavespacing = ウェーブ間の待機時間:[lightgray] (秒)
rules.initialwavespacing = 第1ウェーブの待機時間 [lightgray] (秒)
rules.buildcostmultiplier = 建設コストの倍率
@@ -1402,6 +1437,9 @@ rules.title.planet = 惑星
rules.lighting = 霧
rules.fog = 戦場の霧
rules.invasions = Enemy Sector Invasions
+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.fire = 火災
@@ -1720,6 +1758,8 @@ block.meltdown.name = メルトダウン
block.foreshadow.name = フォーシャドウ
block.container.name = コンテナー
block.launch-pad.name = 発射台
+block.advanced-launch-pad.name = Launch Pad
+block.landing-pad.name = Landing Pad
block.segment.name = セグメント
block.ground-factory.name = 陸軍工場
block.air-factory.name = 空軍工場
@@ -1775,6 +1815,8 @@ block.arkyic-vent.name = アーキサイトジェット
block.yellow-stone-vent.name = イエローストーンジェット
block.red-stone-vent.name = レッドストーンジェット
block.crystalline-vent.name = クリスタルジェット
+block.stone-vent.name = Stone Vent
+block.basalt-vent.name = Basalt Vent
block.redmat.name = レッドマット
block.bluemat.name = ブルーマット
block.core-zone.name = コアゾーン
@@ -1929,77 +1971,77 @@ hint.respawn = シップとしてリスポーンするには、[accent][[V][]を
hint.respawn.mobile = ユニット/建造物のコントロールを得ました。シップとしてリスポーンするには、[accent]左上のアイコンをタップします。[]
hint.desktopPause = [accent][[スペース][]を押して、ゲームを一時停止と一時停止の解除ができます。
hint.breaking = [accent]右クリック[]と右クリックドラッグによりブロックを壊します。
-hint.breaking.mobile = 右下にある\ue817 [accent]ハンマー[]をアクティブにして、タップしてブロックを壊します。\n\n指を1秒間押したままドラッグすると、範囲選択が出来ます。
+hint.breaking.mobile = 右下にある:hammer: [accent]ハンマー[]をアクティブにして、タップしてブロックを壊します。\n\n指を1秒間押したままドラッグすると、範囲選択が出来ます。
hint.blockInfo = [accent]建築メニュー[]でブロックを選択し、右側の[accent][[?][]ボタンを押すと、ブロックの情報が表示されます。
hint.derelict = [accent]放棄[]され、すでに機能を失った古い基地建造物の残骸です。\n\nこれらは[accent]解体[]することにより、資源になります。
-hint.research = \ue875 [accent]研究[]ボタンを押して、新しいテクノロジーを研究します。
-hint.research.mobile = \ue88c [accent]メニュー[]の\ue875 [accent]研究[]ボタンを押して、新しいテクノロジーを研究します。
+hint.research = :tree: [accent]研究[]ボタンを押して、新しいテクノロジーを研究します。
+hint.research.mobile = :menu: [accent]メニュー[]の:tree: [accent]研究[]ボタンを押して、新しいテクノロジーを研究します。
hint.unitControl = [accent][[左ctrl][]を押しながら[accent]クリック[]するとタレットや味方ユニットを操作できます。
hint.unitControl.mobile = [accent][ダブルタップ[]すると味方ユニットやタレットを操作できます。
hint.unitSelectControl = ユニットを操作するには、 [accent][[左Shift][] を押して [accent]コマンドモード[] に入ります。\nコマンドモードでは、クリック&ドラッグでユニットを選択することができます。 [accent]右クリック[] で場所や目標物を指定し、そこにいるユニットを指揮できます。
hint.unitSelectControl.mobile = ユニットを操作するには、 [accent]command[] ボタンを押して [accent]コマンドモード[] にします。\nコマンドモードでは、長押し&ドラッグでユニットを選択できます。場所や目標をタップすると、そこにいるユニットに命令を出すことができます。
-hint.launch = 十分な資源を確保できたら、右下の\ue827 [accent]マップ[]から、近くのセクターを選択して[accent]発射[]できます。
-hint.launch.mobile = 十分な資源を確保できたら、\ue88c [accent]メニュー[]の\ue827 [accent]マップ[]から、近くのセクターを選択して[accent]発射[]できます。
+hint.launch = 十分な資源を確保できたら、右下の:map: [accent]マップ[]から、近くのセクターを選択して[accent]発射[]できます。
+hint.launch.mobile = 十分な資源を確保できたら、:menu: [accent]メニュー[]の:map: [accent]マップ[]から、近くのセクターを選択して[accent]発射[]できます。
hint.schematicSelect = [accent][[F][]を押しながらドラッグして、コピー&ペーストするブロックを選択します。\n\n[accent][[ミドルクリック][]により、1つのブロックタイプをコピーします。
hint.rebuildSelect = [accent][[B][] を押したままドラッグして、破壊されたブロック計画を選択します。\nこれにより、それらが自動的に再建築されます。
-hint.rebuildSelect.mobile = Select the \ue874 copy button, then tap the \ue80f rebuild button and drag to select destroyed block plans.\nThis will rebuild them automatically.
+hint.rebuildSelect.mobile = Select the :copy: copy button, then tap the :wrench: rebuild button and drag to select destroyed block plans.\nThis will rebuild them automatically.
hint.conveyorPathfind = [accent][[左-Ctrl][]を押しながらコンベアーをドラッグすると、経路が自動生成されます。
-hint.conveyorPathfind.mobile = \ue844 [accent]対角線モード[]を有効にし、コンベアーをドラッグすると経路が自動生成します。
+hint.conveyorPathfind.mobile = :diagonal: [accent]対角線モード[]を有効にし、コンベアーをドラッグすると経路が自動生成します。
hint.boost = [accent][[左シフト][]を押したままにすると、操作中のユニットは障害物を飛び越えます。\n\n少数の地上ユニットのみがこのブースターを搭載しています。
hint.payloadPickup = [accent][[[]を押して、小さなブロックまたはユニットを格納します。
hint.payloadPickup.mobile = [accent]タップ&ホールド[]により、小さなブロックまたはユニットを格納します。
hint.payloadDrop = [accent]][]を押すと、積載物を降ろします。
hint.payloadDrop.mobile = 空いている場所を[accent]タップ&ホールド[]して、積載物を降ろします。
hint.waveFire = [accent]ウェーブ[]タレットは水を搬入すると、近くの火を自動的に消火します。
-hint.generator = \uf879 [accent]火力発電機[]石炭を燃やし、隣接するブロックに電力を供給します。\n\n電力供給範囲は\uf87f [accent]電源ノード[]で拡張できます。
-hint.guardian = [accent]ガーディアン[]ユニットは装甲を搭載しています。[accent]銅[]や[accent]鉛[]などの弱い弾薬は[scarlet]効果がありません[]。\n\n強力なターレット、または\uf861デュオ/\uf859サルボーの弾薬に\uf835 [accent]黒鉛[]を使用してガーディアンを撃破してください。
-hint.coreUpgrade = コアは [accent]上位のコアを配置することでアップグレードできます[]。\n\n \uf869 [accent]シャード[]コアの上に、 \uf868 [accent]ファンデーション[]コアを置きます。近くに障害物がないことを確認してください。
+hint.generator = :combustion-generator: [accent]火力発電機[]石炭を燃やし、隣接するブロックに電力を供給します。\n\n電力供給範囲は:power-node: [accent]電源ノード[]で拡張できます。
+hint.guardian = [accent]ガーディアン[]ユニットは装甲を搭載しています。[accent]銅[]や[accent]鉛[]などの弱い弾薬は[scarlet]効果がありません[]。\n\n強力なターレット、または:duo:デュオ/:salvo:サルボーの弾薬に:graphite: [accent]黒鉛[]を使用してガーディアンを撃破してください。
+hint.coreUpgrade = コアは [accent]上位のコアを配置することでアップグレードできます[]。\n\n :core-shard: [accent]シャード[]コアの上に、 :core-foundation: [accent]ファンデーション[]コアを置きます。近くに障害物がないことを確認してください。
hint.presetLaunch = [accent]フローズン · フォレスト[]などの灰色の[accent]着陸ゾーンセクター[]には、どこからでも発射できるため近くの領土を確保する必要はありません。\n\nしかし、このような[accent]数字のセクター[]では[accent]この限りではありません[]。
hint.presetDifficulty = このセクターは[scarlet]敵の脅威レベルが高いです[]。\nこのようなセクターへの出撃は、適切な技術と準備なしには[accent]お勧めできません[]。
hint.coreIncinerate = コアのアイテム収納数の上限に達したアイテムは搬入されず[accent]破棄[]されます。
hint.factoryControl = ユニット工場の [accent]出力先[] を設定するには、コマンドモードで工場ブロックをクリックし、その場所を右クリックします。\nその工場で生産されたユニットは、自動的にそこに移動します。
hint.factoryControl.mobile = ユニット工場の [accent]出力先[] を設定するには、コマンドモードで工場ブロックをタップし、場所をタップしてください。\nその工場で生産されたユニットが自動的にそこに移動します。
-gz.mine = 地面の \uf8c4 [accent]銅鉱石[]の近くに移動し、クリックして採掘を開始します。
-gz.mine.mobile = 地面の \uf8c4 [accent]銅鉱石[]の近くに移動し、タップして採掘を開始します。
-gz.research = \ue875 技術ツリーを開きます。\n\uf870 [accent]機械ドリル[] を探して、右下のメニューから選択します。\n銅をクリックして配置します。
-gz.research.mobile = \ue875 技術ツリーを開きます。\n\uf870 [accent]機械ドリル[] を探して、右下のメニューから選択します。\n銅をタップして配置します。\n\n\ue800 [accent]右下のチェックマーク[]で確定します。
-gz.conveyors = \uf896 [accent]コンベア[] を研究して配置し、\n採掘した素材をドリルからコアに移しましょう。\n\nドラッグして複数のコンベアを配置します。\n[accent]マウスホイールをスクロール[] して向きを変更します。
-gz.conveyors.mobile = \uf896 [accent]コンベア[] を研究して配置し、\n採掘した素材をドリルからコアに移しましょう。\n\n長押し&ドラッグして、複数のコンベアを配置します。
+gz.mine = 地面の :ore-copper: [accent]銅鉱石[]の近くに移動し、クリックして採掘を開始します。
+gz.mine.mobile = 地面の :ore-copper: [accent]銅鉱石[]の近くに移動し、タップして採掘を開始します。
+gz.research = :tree: 技術ツリーを開きます。\n:mechanical-drill: [accent]機械ドリル[] を探して、右下のメニューから選択します。\n銅をクリックして配置します。
+gz.research.mobile = :tree: 技術ツリーを開きます。\n:mechanical-drill: [accent]機械ドリル[] を探して、右下のメニューから選択します。\n銅をタップして配置します。\n\n\ue800 [accent]右下のチェックマーク[]で確定します。
+gz.conveyors = :conveyor: [accent]コンベア[] を研究して配置し、\n採掘した素材をドリルからコアに移しましょう。\n\nドラッグして複数のコンベアを配置します。\n[accent]マウスホイールをスクロール[] して向きを変更します。
+gz.conveyors.mobile = :conveyor: [accent]コンベア[] を研究して配置し、\n採掘した素材をドリルからコアに移しましょう。\n\n長押し&ドラッグして、複数のコンベアを配置します。
gz.drills = 採掘場所を拡大しましょう。\n機械ドリルをさらに配置します。\n銅を 100個 採掘しましょう。
-gz.lead = \uf837 [accent]鉛[] も一般的に使用される素材です。\nドリルを配置して鉛を採掘しましょう。
-gz.moveup = \ue804 さらなる目的のために上に移動しましょう。
-gz.turrets = \uf861 [accent]デュオ[] を研究して二つ配置し、コアを守ります。\nデュオには、コンベアからの \uf838 [accent]弾丸[] が必要です。
+gz.lead = :lead: [accent]鉛[] も一般的に使用される素材です。\nドリルを配置して鉛を採掘しましょう。
+gz.moveup = :up: さらなる目的のために上に移動しましょう。
+gz.turrets = :duo: [accent]デュオ[] を研究して二つ配置し、コアを守ります。\nデュオには、コンベアからの \uf838 [accent]弾丸[] が必要です。
gz.duoammo = コンベアを使ってデュオに[accent]銅[]を供給してください。
-gz.walls = [accent]壁[]は建物に対するダメージを防ぐことができます。\nタレットの周りに\uf8ae [accent]銅の壁[]を配置しましょう。
+gz.walls = [accent]壁[]は建物に対するダメージを防ぐことができます。\nタレットの周りに:copper-wall: [accent]銅の壁[]を配置しましょう。
gz.defend = 敵が迫ってきました、防御する準備をしてください。
-gz.aa = 飛行ユニットは、標準のタレットでは簡単には倒せません。\n\uf860 [accent]スキャッター[] は優れた対空防衛を実現できますが、弾丸として \uf837 [accent]鉛[] が必要です。
+gz.aa = 飛行ユニットは、標準のタレットでは簡単には倒せません。\n:scatter: [accent]スキャッター[] は優れた対空防衛を実現できますが、弾丸として :lead: [accent]鉛[] が必要です。
gz.scatterammo = コンベアを使って、[accent]鉛[]をスキャッターに供給してください。
gz.supplyturret = [accent]タレットへの供給
gz.zone1 = ここは敵の出現ポイント。
gz.zone2 = ウェーブが始まると、円の中に構築されたものはすべて破壊されます。
gz.zone3 = もうすぐウェーブが始まります。\n準備をしてください。
gz.finish = より多くのタレットを建設し、より多くの資源を採掘し、\nすべてのウェーブから防御して[accent]セクターを占領[]してください。
-onset.mine = クリックして \uf748 [accent]ベリリウム[] を壁から採掘しましょう。\n\n移動するには [accent][[WASD] を使用してください。
-onset.mine.mobile = 壁から\uf748 [accent]ベリリウム[]を採掘するにはタップしてください。
-onset.research = \ue875 技術ツリーを開きます。\n \uf73e [accent]タービンコンデンサー[] を研究し、ジェットホールに配置しましょう。\nこれにより [accent]電力[] が生成されます。
-onset.bore = \uf741 [accent]プラズマ掘り[]を研究して配置しましょう。\nこれにより、壁から素材が自動的に採掘されます。
-onset.power = プラズマ掘りに[accent]給電[]するには、\uf73d [accent]ビームノード[]を研究して配置します。\nタービンコンデンサーをプラズマ掘りに接続します。
-onset.ducts = \uf799 [accent]ダクト[]を研究して配置し、採掘した資源をプラズマ掘りからコアに移しましょう。\nドラッグして複数のダクトを配置します。\n[accent]マウスホイールをスクロール[]して向きを変更します。
-onset.ducts.mobile = \uf799 [accent]ダクト[] を研究して配置し、採掘した資源をプラズマ掘りからコアに移しましょう。\n\n長押し&ドラッグして、複数のダクトを配置します。
+onset.mine = クリックして :beryllium: [accent]ベリリウム[] を壁から採掘しましょう。\n\n移動するには [accent][[WASD] を使用してください。
+onset.mine.mobile = 壁から:beryllium: [accent]ベリリウム[]を採掘するにはタップしてください。
+onset.research = :tree: 技術ツリーを開きます。\n :turbine-condenser: [accent]タービンコンデンサー[] を研究し、ジェットホールに配置しましょう。\nこれにより [accent]電力[] が生成されます。
+onset.bore = :plasma-bore: [accent]プラズマ掘り[]を研究して配置しましょう。\nこれにより、壁から素材が自動的に採掘されます。
+onset.power = プラズマ掘りに[accent]給電[]するには、:beam-node: [accent]ビームノード[]を研究して配置します。\nタービンコンデンサーをプラズマ掘りに接続します。
+onset.ducts = :duct: [accent]ダクト[]を研究して配置し、採掘した資源をプラズマ掘りからコアに移しましょう。\nドラッグして複数のダクトを配置します。\n[accent]マウスホイールをスクロール[]して向きを変更します。
+onset.ducts.mobile = :duct: [accent]ダクト[] を研究して配置し、採掘した資源をプラズマ掘りからコアに移しましょう。\n\n長押し&ドラッグして、複数のダクトを配置します。
onset.moremine = 採掘場所を拡大しましょう。\nさらにプラズマ掘りを配置し、ビームノードとダクトを使用して採掘します。\n200個のベリリウムを採掘しましょう。
-onset.graphite = より高度なブロックには \uf835 [accent]黒鉛[] が必要です。\n黒鉛を採掘するためにプラズマ掘りを配置します。
-onset.research2 = [accent]工場[]の研究を始めましょう。\n\uf74d [accent]クリフ掘削機[]と\uf779 [accent]シリコン放電炉[]を研究してください。
-onset.arcfurnace = シリコン放電炉で \uf82f [accent]シリコン[] を作成するには、\uf834 [accent]砂[] と \uf835 [accent]黒鉛[] が必要です。\n[accent]電力[] も必要です。
-onset.crusher = \uf74d [accent]クリフ掘削機[]を使って砂を採掘しましょう。
-onset.fabricator = [accent]ユニット[]を使ってマップを探索し、建物を守り、敵を攻撃してください。 \uf6a2 [accent]戦車工場[]を研究して配置します。
+onset.graphite = より高度なブロックには :graphite: [accent]黒鉛[] が必要です。\n黒鉛を採掘するためにプラズマ掘りを配置します。
+onset.research2 = [accent]工場[]の研究を始めましょう。\n:cliff-crusher: [accent]クリフ掘削機[]と:silicon-arc-furnace: [accent]シリコン放電炉[]を研究してください。
+onset.arcfurnace = シリコン放電炉で :silicon: [accent]シリコン[] を作成するには、:sand: [accent]砂[] と :graphite: [accent]黒鉛[] が必要です。\n[accent]電力[] も必要です。
+onset.crusher = :cliff-crusher: [accent]クリフ掘削機[]を使って砂を採掘しましょう。
+onset.fabricator = [accent]ユニット[]を使ってマップを探索し、建物を守り、敵を攻撃してください。 :tank-fabricator: [accent]戦車工場[]を研究して配置します。
onset.makeunit = ユニットを生産します。\n[[?]を使用します。ボタンをクリックして、選択した工場の概要を確認します。
-onset.turrets = ユニットは効果的ですが、[accent]タレット[] は効果的に使用すればより優れた防御能力を提供します。\n\uf6eb [accent]ブリーチ[] を配置します。\nタレットには \uf748 [accent]弾丸[] が必要です。
+onset.turrets = ユニットは効果的ですが、[accent]タレット[] は効果的に使用すればより優れた防御能力を提供します。\n:breach: [accent]ブリーチ[] を配置します。\nタレットには :beryllium: [accent]弾丸[] が必要です。
onset.turretammo = タレットに[accent]ベリリウム弾[]を供給してください。
-onset.walls = [accent]壁[]は建物に対するダメージを防ぐことができます。\n砲台の周囲に \uf6ee [accent]ベリリウムの壁[] をいくつか配置しましょう。
+onset.walls = [accent]壁[]は建物に対するダメージを防ぐことができます。\n砲台の周囲に :beryllium-wall: [accent]ベリリウムの壁[] をいくつか配置しましょう。
onset.enemies = 敵が迫ってきました、防御する準備をしてください。
onset.defenses = [accent]Set up defenses:[lightgray] {0}
onset.attack = 敵は脆弱です。反撃しましょう!
-onset.cores = 新しいコアは [accent]コアタイル[] に配置できます。\n新しいコアは前線基地として機能し、リソースインベントリを他のコアと共有します。\n\uf725 コアを配置しましょう。
+onset.cores = 新しいコアは [accent]コアタイル[] に配置できます。\n新しいコアは前線基地として機能し、リソースインベントリを他のコアと共有します。\n:core-bastion: コアを配置しましょう。
onset.detect = 敵は 2 分以内にあなたを見つけます。\n防御、採掘、生産を用意しましょう。
onset.commandmode = [accent]shift[] を押しながら [accent]コマンドモード[] に移行します。\n[accent]左クリック&ドラッグ[] でユニットを選択します。\n[accent]右クリック[] をすると、選択したユニットに移動や攻撃などの命令をします。
onset.commandmode.mobile = [accent]コマンドボタン[] を押して [accent]コマンドモード[] にします。\n長押ししながら [accent]ドラッグ[] でユニットを選択します。\n[accent]タップ[] で選択したユニットに移動や攻撃などの命令をします。
@@ -2160,7 +2202,9 @@ block.vault.description = 各種類のアイテムを大量に保管します。
block.container.description = 各種類のアイテムを少量ずつ保管します。隣接するコンテナーやボール卜、コアは一つのストレージユニットとして扱われます。 [lightgray]搬出機[]を使って、コンテナーからアイテムを搬出できます。
block.unloader.description = コンテナやボールト、コアからアイテムをコンベアーか隣接するブロックに搬出します。搬出機をタップして搬出するアイテムを変更することができます。
block.launch-pad.description = 離脱することなく、アイテムを回収することができます。
-block.launch-pad.details = 資源を地点間で輸送するための軌道上システムです。ペイロードポッドは壊れやすく、再突入に耐えることができません。
+block.advanced-launch-pad.description = Launches batches of items to selected sectors. Only accepts one item type at a time.
+block.advanced-launch-pad.details = Sub-orbital system for point-to-point transportation of resources.
+block.landing-pad.description = Receives items from launch pads in other sectors. Requires large amounts of water to protect against impacts of landings.
block.duo.description = 小さく安価なタレットです。
block.scatter.description = 中規模の対空型タレットです。敵に鉛やスクラップの塊、メタガラスを分散するように発射します。
block.scorch.description = 近くの地上の敵を燃やします。近距離だと非常に効果的です。
@@ -2267,6 +2311,7 @@ block.unit-cargo-loader.description = 輸送ドローンを作成し、搬入ポ
block.unit-cargo-unload-point.description = 輸送ドローンの搬出ポイントとして機能します。 選択したアイテムを受け入れます。
block.beam-node.description = 他のブロックに直交するように電力を伝送します。少量の電力を蓄えます。
block.beam-tower.description = 他のブロックに直交するように電力を伝送します。大量の電力を蓄え、長距離の伝送が可能です。
+block.beam-link.description = Transmits power over vast distances.\nOnly capable of connecting to adjacent structures or other beam links.
block.turbine-condenser.description = ジェットホールに置くと発電します。少量の水を生成します。
block.chemical-combustion-chamber.description = アーキサイトとオゾンで発電します。
block.pyrolysis-generator.description = アーキサイトとスラグから大量の電力を生成します。 副産物として水を生成します。
@@ -2356,6 +2401,7 @@ unit.emanate.description = アクロポリスコアを敵から守ります。\n
lst.read = リンクされたメモリセルから数値を読み取ります。
lst.write = リンクされたメモリセルに数値を書き込みます。
lst.print = メッセージブロックにテキストを追加します。[accent]Print Flush[] を使用するまで何も表示しません。
+lst.printchar = Add a UTF-16 character or content icon to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used.
lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example"
lst.draw = ロジックディスプレイに操作を追加します。[accent]Draw Flush[] を使用するまで何も表示しません。
lst.drawflush = キューに入れられた [accent]Draw[] 操作をディスプレイにフラッシュします。
@@ -2441,12 +2487,14 @@ lenum.shootp = 任意のユニットや建物を撃ちます。
lenum.config = 建物の設定を取得します。\n例:ソーターに設定されているアイテムなど
lenum.enabled = ブロックが有効かどうかを取得します。
laccess.currentammotype = Current ammo item/liquid of a turret.
+laccess.memorycapacity = Number of cells in a memory block.
laccess.color = イルミネーターの色を取得します。
laccess.controller = ユニットを制御しているものを取得します。\nプロセッサ制御の場合、制御しているプロセッサを返します。\nほかのユニットに制御されている場合、制御しているユニットを返します。\nそれ以外の場合は、ユニット自身を返します。
laccess.dead = ユニットや建物が機能しているかどうか、またはもう有効でないかどうか。
laccess.controlled = ユニットや建物がどのように制御されているのかを取得します。\nプロセッサ制御の場合、 [accent]@ctrlProcessor[] を返します。\nプレイヤー制御の場合、 [accent]@ctrlPlayer[] を返します。\n隊列を組んでいる場合、 [accent]@ctrlFormation[] を返します。\nそれ以外は 0 を返します。
laccess.progress = アクションの進行状況を0〜1で取得します。\n生産、リロード、または建設の進捗状況を返します。
laccess.speed = ユニットの最高速度を返します。(単位:タイル/秒)
+laccess.size = Size of a unit/building or the length of a string.
laccess.id = ID of a unit/block/item/liquid.\nThis is the inverse of the lookup operation.
lcategory.unknown = 不明
lcategory.unknown.description = 未分類の指示です。
@@ -2575,3 +2623,29 @@ lenum.autoscale = Whether to scale marker corresponding to player's zoom level.
lenum.posi = Indexed position, used for line and quad markers with index zero being the first position.
lenum.uvi = Texture's position ranging from zero to one, used for quad markers.
lenum.colori = Indexed position, used for line and quad markers with index zero being the first color.
+lenum.wavetimer = Whether the waves come automatically on a timer. If not, waves come when the play button is pressed.
+lenum.wave = Current wave number. Can be anything in non-wave modes.
+lenum.currentwavetime = Wave countdown in ticks.
+lenum.waves = Whether waves are spawnable at all.
+lenum.wavesending = Whether the waves can be manually summoned with the play button.
+lenum.attackmode = Determines if gamemode is attack mode.
+lenum.wavespacing = Time between waves in ticks.
+lenum.enemycorebuildradius = No-build zone around enemy core radius.
+lenum.dropzoneradius = Radius around enemy wave drop zones.
+lenum.unitcap = Base unit cap. Can still be increased by blocks.
+lenum.lighting = Whether ambient lighting is enabled.
+lenum.buildspeed = Multiplier for building speed.
+lenum.unithealth = How much health units start with.
+lenum.unitbuildspeed = How fast unit factories build units.
+lenum.unitcost = Multiplier of resources that units take to build.
+lenum.unitdamage = How much damage units deal.
+lenum.blockhealth = How much health blocks start with.
+lenum.blockdamage = How much damage blocks (turrets) deal.
+lenum.rtsminweight = Minimum "advantage" needed for a squad to attack. Higher -> more cautious.
+lenum.rtsminsquad = Minimum size of attack squads.
+lenum.maparea = Playable map area. Anything outside the area will not be interactable.
+lenum.ambientlight = Ambient light color. Used when lighting is enabled.
+lenum.solarmultiplier = Multiplies power output of solar panels.
+lenum.dragmultiplier = Environment drag multiplier.
+lenum.ban = Blocks or units that cannot be placed or built.
+lenum.unban = Unban a unit or block.
diff --git a/core/assets/bundles/bundle_ko.properties b/core/assets/bundles/bundle_ko.properties
index 0621644f8a..54b54ccd8d 100644
--- a/core/assets/bundles/bundle_ko.properties
+++ b/core/assets/bundles/bundle_ko.properties
@@ -131,6 +131,7 @@ feature.unsupported = 기기가 이 기능을 지원하지 않습니다.
mods.initfailed = [red]⚠[]이전 민더스트리 실행과정에서 모드를 초기화하지 못했습니다. 잘못된 모드로 인해 발생한 것일 수 있습니다.\n\n 게임 충돌 무한반복을 막기 위해, [red]모든 모드가 비활성화되었습니다.[]\n\n이 시스템을 비활성화하려면, [accent]설정->게임->로딩 중 충돌 시 모드 비활성화[]설정을 끄세요.
mods = 모드
+mods.name = 모드:
mods.none = [lightgray]모드를 찾을 수 없습니다!
mods.guide = 모드 제작 가이드
mods.report = 버그 제보하기
@@ -144,7 +145,7 @@ mod.enabled = [lightgray]활성화됨
mod.disabled = [scarlet]비활성화됨
mod.multiplayer.compatible = [gray]멀티플레이어 호환 가능
mod.disable = 비활성화
-mod.version = Version:
+mod.version = 버전:
mod.content = 콘텐츠:
mod.delete.error = 모드를 삭제할 수 없습니다. 파일이 사용 중일 수 있습니다.
@@ -153,14 +154,14 @@ mod.incompatiblemod = [red]호환되지 않음
mod.blacklisted = [red]지원하지 않음
mod.unmetdependencies = [red]충촉되지 않은 종속성
mod.erroredcontent = [scarlet]콘텐츠 오류
-mod.circulardependencies = [red]순환 의존성
-mod.incompletedependencies = [red]불완전한 의존성
+mod.circulardependencies = [red]순환 종속성
+mod.incompletedependencies = [red]불완전한 종속성
mod.requiresversion.details = 게임 버전 요구: [accent]{0}[]\n당신의 게임은 구버전입니다. 이 모드가 작동하려면 최신 버전의 게임이 필요합니다. (베타/알파 릴리즈일 가능성이 있음).
-mod.outdatedv7.details = 이 모드는 최신 버전의 게임과 호환되지 않습니다. 반드시 작성자가 업데이트해야 하고, [accent]mod.json[] 파일에 [accent]최소게임버전: 136[]을 추가해야 합니다.
+mod.incompatiblemod.details = 이 모드는 최신 게임 버전과 호환되지 않습니다. 모드 제작자는 모드를 업데이트하고 [accent]mod.json[] 파일에 [accent]minGameVersion: 147[]을 추가해야 합니다.
mod.blacklisted.details = 이 모드는 이 버전의 게임에서 충돌 또는 기타 문제를 일으키는 것으로 인해 수동으로 블랙리스트에 올라와 있습니다. 사용하지 마세요.
mod.missingdependencies.details = 이 모드에는 종속성이 없음: {0}
-mod.erroredcontent.details = 이 게임은 로딩하는 동안 오류가 발생했습니다. 모드 작성자에게 수정하도록 요청하세요.
+mod.erroredcontent.details = 이 게임은 로딩하는 동안 오류가 발생했습니다. 모드 제작자에게 수정하도록 요청하세요.
mod.circulardependencies.details = 이 모드는 서로 의존하는 의존성을 지니고 있습니다.
mod.incompletedependencies.details = 잘못되었거나 누락한 종속성으로 인해 이 모드를 불러올 수 없습니다: {0}.
@@ -168,7 +169,6 @@ mod.requiresversion = 필요한 게임 버전: [red]{0}
mod.errors = 콘텐츠를 불러오는 중에 오류가 발생함
mod.noerrorplay = [scarlet]오류가 있는 모드가 있습니다.[] 영향을 받는 모드를 비활성화하거나 플레이하기 전에 오류를 수정하세요.
-mod.nowdisabled = [scarlet]모드 '{0}'에 필요한 종속성이 없습니다:[accent] {1}\n[lightgray]이 모드를 먼저 내려받아야 합니다.\n이 모드는 자동으로 비활성화됩니다.
mod.enable = 활성화
mod.requiresrestart = 모드 변경 사항을 적용하기 위해 게임을 종료합니다.
mod.reloadrequired = [scarlet]재시작 필요
@@ -184,8 +184,18 @@ mod.preview.missing = 창작마당에 모드를 올리기 전에 미리 보기
mod.folder.missing = 창작마당에는 폴더 형태의 모드만 게시할 수 있습니다.\n모드를 폴더 형태로 바꾸려면 모드 파일을 모드 폴더에 압축을 풀고 이전 모드 파일을 삭제 후, 게임을 재시작하거나 모드를 다시 불러오세요.
mod.scripts.disable = 이 기기는 스크립트가 있는 모드를 지원하지 않습니다. 게임을 플레이하려면 이 모드를 비활성화해야 합니다.
+mod.dependencies.error = [scarlet]모드의 종속성이 누락되었습니다
+mod.dependencies.soft = (선택적)
+mod.dependencies.download = 가져오기
+mod.dependencies.downloadreq = 필수 모드만 가져오기
+mod.dependencies.downloadall = 모두 가져오기
+mod.dependencies.status = 가져오기 결과
+mod.dependencies.success = 성공적으로 다운로드됨:
+mod.dependencies.failure = 다운로드 실패:
+mod.dependencies.imported = 이 모드에는 종속성 모드가 필요합니다. 다운로드하시겠습니까?
+
about.button = 정보
-name = 이름 :
+name = 이름:
noname = 먼저 [accent]플레이어 이름[]을 설정하세요.
search = 검색:
planetmap = 행성 지도
@@ -301,6 +311,7 @@ disconnect.error = 연결 오류
disconnect.closed = 연결이 종료되었습니다.
disconnect.timeout = 시간 초과
disconnect.data = 맵 데이터를 로드하지 못했습니다!
+disconnect.snapshottimeout = UDP 스냅샷을 수신하는 동안 시간이 초과되었습니다.\n이는 불안정한 네트워크나 연결로 인해 발생할 수 있습니다.
cantconnect = [accent]{0}[] 게임에 참여할 수 없습니다.
connecting = [accent] 연결중...
reconnecting = [accent]재접속중...
@@ -447,7 +458,7 @@ editor.waves = 단계
editor.rules = 규칙
editor.generation = 지형 생성
editor.objectives = 목표
-editor.locales = 번역 팩
+editor.locales = 로케일 번들
editor.worldprocessors = 월드 프로세서
editor.worldprocessors.editname = 이름 수정
editor.worldprocessors.none = [lightgray]월드 프로세서 블록을 찾을 수 없습니다!\n맵 편집기에서 추가하거나 아래의 \ue813 추가 버튼을 사용하세요.
@@ -469,6 +480,7 @@ editor.shiftx = X축 밀기
editor.shifty = Y축 밀기
workshop = 창작마당
waves.title = 단계
+waves.team = 팀
waves.remove = 삭제
waves.every = 매
waves.waves = 단계마다
@@ -519,12 +531,12 @@ editor.removeunit = 유닛 삭제
editor.teams = 팀
editor.errorload = 파일을 불러오지 못했습니다.
editor.errorsave = 파일을 저장하지 못했습니다.
-editor.errorimage = 이것은 맵이 아니라 사진입니다.
+editor.errorimage = 이것은 맵이 아니라 이미지입니다.
editor.errorlegacy = 이 맵은 너무 오래됐고, 더 이상 지원하지 않는 구형 맵 형식을 사용합니다.
editor.errornot = 맵 파일이 아닙니다.
editor.errorheader = 이 맵 파일은 유효하지 않거나 손상되었습니다.
editor.errorname = 맵에 이름이 지정되어 있지 않습니다. 저장 파일을 불러오려고 시도하는 건가요?
-editor.errorlocales = 잘못된 언어 팩을 읽는 동안 오류가 발생했습니다.
+editor.errorlocales = 잘못된 로케일 번들을 읽는 동안 오류가 발생했습니다.
editor.update = 업데이트
editor.randomize = 무작위
editor.moveup = 위로 이동
@@ -628,21 +640,21 @@ filter.option.percentile = 백분율
filter.option.code = 코드
filter.option.loop = 루프
-locales.info = 여기에서 특정 언어에 대한 언어 팩을 맵에 추가할 수 있습니다. 언어 팩에서 각 속성에는 이름과 값이 있습니다. 이러한 속성은 이름을 사용하여 월드 프로세서와 목표에서 사용할 수 있습니다. 텍스트 서식 지정(플레이스홀더를 실제 값으로 대체)을 지원합니다.\n\n[cyan]예시 속성:\n[]이름: [accent]timer[]\n값: [accent]예시 타이머, 남은 시간: {0}[]\n\n[cyan]사용법:\n[]목표의 텍스트로 설정: [accent]@timer\n\n[]월드 프로세서에서 Print:\n[accent]localeprint "timer"\nformat time\n[gray](여기서 시간은 별도로 계산된 변수)
-locales.deletelocale = 이 언어 팩을 삭제하시겠습니까?
-locales.applytoall = 모든 언어 팩에 변경 사항 적용
-locales.addtoother = 다른 언어 팩에 추가
+locales.info = 여기에서 특정 언어에 대한 로케일 번들을 맵에 추가할 수 있습니다. 로케일 번들에서 각 속성에는 이름과 값이 있습니다. 이러한 속성은 이름을 사용하여 월드 프로세서와 목표에서 사용할 수 있습니다. 텍스트 서식 지정(플레이스홀더를 실제 값으로 대체)을 지원합니다.\n\n[cyan]예시 속성:\n[]이름: [accent]timer[]\n값: [accent]예시 타이머, 남은 시간: {0}[]\n\n[cyan]사용법:\n[]목표의 텍스트로 설정: [accent]@timer\n\n[]월드 프로세서에서 Print:\n[accent]localeprint "timer"\nformat time\n[gray](여기서 시간은 별도로 계산된 변수)
+locales.deletelocale = 이 로케일 번들을 삭제하시겠습니까?
+locales.applytoall = 모든 로케일 번들에 변경 사항 적용
+locales.addtoother = 다른 로케일 번들에 추가
locales.rollback = 마지막으로 적용된 상태로 롤백
locales.filter = 속성 필터
locales.searchname = 이름 검색...
locales.searchvalue = 값 검색...
-locales.searchlocale = 언어 팩 검색...
+locales.searchlocale = 로케일 번들 검색...
locales.byname = 이름으로
locales.byvalue = 값으로
-locales.showcorrect = 모든 언어 팩에 존재하고 모든 곳에서 고유한 값을 갖는 속성을 표시
-locales.showmissing = 일부 언어 팩에서 누락된 속성 표시
-locales.showsame = 다른 언어 팩에서 동일한 값을 갖는 속성 표시
-locales.viewproperty = 모든 언어 팩에서 보기
+locales.showcorrect = 모든 로케일 번들에 존재하고 모든 곳에서 고유한 값을 갖는 속성을 표시
+locales.showmissing = 일부 로케일 번들에서 누락된 속성 표시
+locales.showsame = 다른 로케일 번들에서 동일한 값을 갖는 속성 표시
+locales.viewproperty = 모든 로케일 번들에서 보기
locales.viewing = 속성 보기 "{0}"
locales.addicon = 아이콘 추가
@@ -720,7 +732,7 @@ objective.enemyescelating = [accent]적의 생산량이 증가하고 있습니
objective.enemyairunits = [accent]적의 공중 유닛이 생산되고 있습니다[lightgray]{0}[]
objective.destroycore = [accent]적의 코어를 파괴하세요
objective.command = [accent]유닛 조종
-objective.nuclearlaunch = [accent]⚠ 핵공격이 감지되었습니다: [lightgray]{0}
+objective.nuclearlaunch = [accent]⚠ 핵 공격이 감지되었습니다: [lightgray]{0}
announce.nuclearstrike = [red]⚠ 핵 공습 감지 ⚠
@@ -728,14 +740,18 @@ loadout = 출격
resources = 자원
resources.max = 최대
bannedblocks = 금지된 블록
+unbannedblocks = 금지되지 않은 블록
objectives = 목표
-bannedunits = 금지된 기체
-bannedunits.whitelist = 금지된 기체만 활성화
+bannedunits = 금지된 유닛
+unbannedunits = 금지되지 않은 유닛
+bannedunits.whitelist = 금지된 유닛만 활성화
bannedblocks.whitelist = 금지된 블록만 활성화
addall = 모두 추가
launch.from = 출격 출발지: [accent]{0}[]
launch.capacity = 출격 자원 용량: [accent]{0}
launch.destination = 목적지: {0}
+landing.sources = 원천 지역: [accent]{0}[]
+landing.import = 최대 총 수입: {0}[accent]{1}[lightgray]/분
configure.invalid = 해당 값은 0에서 {0} 사이의 숫자여야 합니다.
add = 추가...
guardian = 수호자
@@ -775,7 +791,9 @@ sectors.stored = 저장량:
sectors.resume = 재개
sectors.launch = 출격
sectors.select = 선택
+sectors.launchselect = 발사 대상 선택
sectors.nonelaunch = [lightgray]없음 (태양)[]
+sectors.redirect = 발사 패드 리다이렉션
sectors.rename = 지역 이름 변경하기
sectors.enemybase = [scarlet]적 기지[]
sectors.vulnerable = [scarlet]취약함[]
@@ -808,6 +826,10 @@ difficulty.easy = 쉬움
difficulty.normal = 보통
difficulty.hard = 어려움
difficulty.eradication = 극한
+difficulty.enemyHealthMultiplier = Enemy Health: {0}
+difficulty.enemySpawnMultiplier = Enemy Amount: {0}
+difficulty.waveTimeMultiplier = Wave Timer: {0}
+difficulty.nomodifiers = [lightgray](No modifiers)
planets = 태양계
@@ -815,7 +837,7 @@ planet.serpulo.name = 세르플로
planet.erekir.name = 에르키아
planet.sun.name = 태양
-sector.impact0078.name = 폐허 : Impact 0078
+sector.impact0078.name = 임팩트 0078
sector.groundZero.name = 전초기지
sector.craters.name = 크레이터
sector.frozenForest.name = 얼어붙은 숲
@@ -837,16 +859,16 @@ sector.planetaryTerminal.name = 대행성 출격단지
sector.coastline.name = 해안선
sector.navalFortress.name = 해군 요새
sector.polarAerodrome.name = 극지 비행장
-sector.atolls.name = 환초
+sector.atolls.name = 환초섬
sector.testingGrounds.name = 시험장
sector.seaPort.name = 바다 항구
sector.weatheredChannels.name = 풍화된 수로
sector.mycelialBastion.name = 균사 요새
sector.frontier.name = 국경 지방
-sector.groundZero.description = 이 장소는 다시 시작하기에 최적의 환경을 지녔습니다. 적은 위협적이지 않지만, 자원도 풍부하진 않습니다.\n가능한 한 많은 양의 구리와 납을 수집하십시오.\n이제 출격할 시간입니다!
+sector.groundZero.description = 이 장소는 다시 시작하기에 최적의 환경을 지녔습니다. 적은 위협적이지 않지만, 자원도 풍부하진 않습니다.\n가능한 한 많은 양의 구리와 납을 수집하십시오.\n이제 출격할 시간입니다.
sector.frozenForest.description = 산과 가까운 이곳에도, 포자가 퍼졌습니다. 혹한의 추위조차 포자가 퍼지는 것을 억누를 수 없습니다.\n화력 발전기를 건설하고, 멘더를 사용하는 방법을 배워야 합니다.
-sector.saltFlats.description = 사막의 변두리에는 소금으로 이루어진 평원이 있습니다. 이곳에선 매우 적은 자원만 발견되었습니다.\n\n하지만 자원이 희소한 이곳에서도 적들의 요새가 포착되었습니다. 그들을 사막의 모래로 만들어버리세요!
+sector.saltFlats.description = 사막의 변두리에는 소금으로 이루어진 평원이 있습니다. 이곳에선 매우 적은 자원만 발견되었습니다.\n\n하지만 자원이 희소한 이곳에서도 적들의 요새가 포착되었습니다. 그들을 사막의 모래로 만들어버리세요.
sector.craters.description = 물이 가득한 이 크레이터에는 옛 전쟁의 유물들이 쌓여있습니다.\n이곳을 탈환하여 강화 유리를 제련하고, 포탑과 드릴에 물을 공급하여 더 강력한 방어선을 구축하여야 합니다.
sector.ruinousShores.description = 폐허를 지나서 나오는 해안선. 한때, 이곳에는 해안 방어기지가 있었습니다.\n많은 부분이 소실되었습니다. 기본적인 방어 시설을 제외한 모든 것이 고철 덩어리가 되었습니다. \n외부로 세력을 확장하기 위한 첫 발걸음으로, 무너진 시설을 재건하고 잃어버린 기술을 다시 회수하십시오.
sector.stainedMountains.description = 더 내륙에는 아직 포자에 오염되지 않은 산맥이 있습니다.\n이 지역에서 티타늄을 채굴하고 이것을 어떻게 사용하는지 배우십시오.\n\n이곳은 더 강력한 적이 주둔하고 있습니다. 적이 가장 강력한 유닛을 준비할 시간을 주지 마십시오.
@@ -859,12 +881,13 @@ sector.biomassFacility.description = 포자가 탄생한 곳. 이곳은 포자
sector.windsweptIslands.description = 육지에서 멀리 떨어진 이곳에는 작은 군도가 있습니다. 기록에 따르면 한 때 [accent]플라스터늄[]을 생산하는 시설이 존재했습니다.\n\n몰려오는 적 해군을 막으며, 섬에 기지를 구축하고, 공장들을 연구하여야 합니다.
sector.extractionOutpost.description = 적이 다른 지역에 자원을 보내기 위한 용도로 건설한 보급기지입니다.\n\n강력한 적들이 지키고 있는 지역을 공격하거나, 적에게 침공당한 지역을 효과적으로 수호하기 위해서는 우리도 이 수송 기술이 필요합니다. 적의 기지를 파괴하고, 그들의 수송 기술을 강탈하십시오.
sector.impact0078.description = 이곳에는 태양계에 처음 진입한 우주 수송선의 잔해가 존재합니다.\n\n우주선이 파괴된 잔해에서 최대한 많은 자원을 회수하고, 손상되지 않은 그들의 기술을 획득하십시오.
-sector.planetaryTerminal.description = 이 행성에서의 마지막 전투를 준비하십시오.\n\n적이 필사의 각오로 지키고 있는 이 해안 기지엔 우주에 코어를 발사할 수 있는 시설이 있습니다.\n\n해군을 생산하여 적을 신속하게 제거하고, 그들의 행성간 이동 기술을 강탈하십시오.\n\n[royal] 건투를 빕니다.[]
+sector.planetaryTerminal.description = 최종 목표입니다.\n\n적이 필사의 각오로 지키고 있는 이 해안 기지엔 다른 행성으로 코어를 발사할 수 있는 시설이 있습니다.\n\n해군을 생산하여 적을 신속하게 제거하고, 그들의 행성간 이동 기술을 강탈하십시오.\n\n[royal] 건투를 빕니다.[]
sector.coastline.description = 이 장소에서 해상 유닛 기술의 잔재가 발견되었습니다. 적의 공격을 격퇴하고, 이 지역을 점령하고, 기술을 습득하십시오.
-sector.navalFortress.description = 적은 자연적으로 요새화된 외딴 섬에 기지를 세웠습니다. 이 전초기지를 파괴하여 적의 발전된 함선 건조 기술을 습득하고 연구하십시오.
+sector.navalFortress.description = 적은 자연적으로 요새화된 외딴 섬에 기지를 세웠습니다. 이 전초기지를 파괴하여 적의 발전된 해군 건조 기술을 습득하고 연구하십시오.
sector.cruxscape.name = 크럭스케이프
sector.geothermalStronghold.name = 지열 근거지
+
sector.facility32m.description = WIP, map submission by Stormride_R
sector.taintedWoods.description = WIP, map submission by Stormride_R
sector.atolls.description = WIP, map submission by Stormride_R
@@ -1041,9 +1064,10 @@ stat.buildspeedmultiplier = 건설속도 배수
stat.reactive = 작용 받음
stat.immunities = 상태이상 면역
stat.healing = 회복량
+stat.efficiency = [stat]{0}% 효율성
ability.forcefield = 보호막 필드
-ability.forcefield.description = 탄약을 흡수하는 보호막을 만들어냄
+ability.forcefield.description = 탄을 흡수하는 보호막을 만들어냄
ability.repairfield = 수리 필드
ability.repairfield.description = 근처 유닛을 수리함
ability.statusfield = 상태이상 필드
@@ -1088,6 +1112,7 @@ ability.stat.buildtime = [stat]{0} 초[lightgray] 건설 시간
bar.onlycoredeposit = 코어에만 투입할 수 있습니다
bar.drilltierreq = 더 좋은 드릴 필요
+bar.nobatterypower = 배터리 전력 부족
bar.noresources = 자원 부족
bar.corereq = 기본 코어 필요
bar.corefloor = 코어 구역 타일 필요
@@ -1096,6 +1121,7 @@ bar.drillspeed = 드릴 속도: {0}/s
bar.pumpspeed = 펌프 속도: {0}/s
bar.efficiency = 효율: {0}%
bar.boost = 가속: +{0}%
+bar.powerbuffer = 배터리 전력: {0}/{1}
bar.powerbalance = 전력: {0}/s
bar.powerstored = 저장량: {0}/{1}
bar.poweramount = 전력: {0}
@@ -1106,6 +1132,7 @@ bar.capacity = 용량: {0}
bar.unitcap = {0} {1}/{2}
bar.liquid = 액체
bar.heat = 발열
+bar.cooldown = 쿨타임
bar.instability = 불안정
bar.heatamount = 열: {0}
bar.heatpercent = 열: {0} ({1}%)
@@ -1124,12 +1151,13 @@ bullet.splashdamage = [stat]{0}[lightgray] 범위 피해량 ~ [stat]{1}[lightgra
bullet.incendiary = [stat]방화[]
bullet.homing = [stat]유도[]
bullet.armorpierce = [stat]방어 관통
-bullet.maxdamagefraction = [stat]{0}%[lightgray] damage limit
-bullet.suppression = [stat]{0} sec[lightgray] 수리 억제 ~ [stat]{1}[lightgray] 타일
-bullet.interval = [stat]{0}/sec[lightgray] 간격 탄환:
+bullet.maxdamagefraction = [stat]{0}%[lightgray] 피해 한도
+bullet.suppression = [stat]{0} 초[lightgray] 수리 억제 ~ [stat]{1}[lightgray] 타일
+bullet.interval = [stat]{0}/초[lightgray] 간격 탄환:
bullet.frags = [stat]{0}[lightgray]개 파편 탄환:[][]
bullet.lightning = [stat]{0}[lightgray]x 전격 ~ [stat]{1}[lightgray] 피해량[][][][]
bullet.buildingdamage = [stat]{0}%[lightgray] 건물 피해량[][]
+bullet.shielddamage = [stat]{0}%[lightgray] 보호막 피해량
bullet.knockback = [stat]{0}[lightgray] 넉백[][]
bullet.pierce = [stat]{0}[lightgray]번 관통[][]
bullet.infinitepierce = [stat]관통[]
@@ -1138,8 +1166,8 @@ bullet.healamount = [stat]{0}[lightgray] 직접 수리
bullet.multiplier = [stat]{0}[lightgray]배 탄약 배수[][]
bullet.reload = [stat]{0}%[lightgray] 발사 속도[][]
bullet.range = [stat]{0}[lightgray]블록 추가 범위
-bullet.notargetsmissiles = [stat] ignores buildings
-bullet.notargetsbuildings = [stat] ignores missiles
+bullet.notargetsmissiles = [stat] 건물 무시
+bullet.notargetsbuildings = [stat] 미사일 무시
unit.blocks = 블록
unit.blockssquared = 블록²
@@ -1156,13 +1184,14 @@ unit.minutes = 분
unit.persecond = /초
unit.perminute = /분
unit.timesspeed = x 배
+unit.multiplier = x
unit.percent = %
unit.shieldhealth = 보호막 체력
unit.items = 자원
unit.thousands = k
unit.millions = m
unit.billions = b
-unit.shots = shots
+unit.shots = 발
unit.pershot = /발
category.purpose = 목적
category.general = 일반
@@ -1232,11 +1261,13 @@ setting.mutemusic.name = 음소거
setting.sfxvol.name = 효과음 크기
setting.mutesound.name = 소리 끄기
setting.crashreport.name = 익명으로 오류 보고서 자동 전송
+setting.communityservers.name = 커뮤니티 서버 목록 가져오기
setting.savecreate.name = 자동 저장 활성화
setting.steampublichost.name = 공개 게임 가시성
setting.playerlimit.name = 플레이어 제한
setting.chatopacity.name = 채팅창 투명도
setting.lasersopacity.name = 전선 투명도
+setting.unitlaseropacity.name = 유닛 채굴 빔 불투명도
setting.bridgeopacity.name = 터널 투명도
setting.playerchat.name = 채팅 말풍선 표시
setting.showweather.name = 날씨 그래픽 표시
@@ -1244,7 +1275,10 @@ setting.hidedisplays.name = 로직 디스플레이 숨김
setting.macnotch.name = 노치를 표시하도록 인터페이스 조정
setting.macnotch.description = 적용하려면 재시작이 필요합니다.
steam.friendsonly = 친구 전용
-steam.friendsonly.tooltip = 게임에 스팀 친구만 접속할 수 있는가에 대한 여부입니다.체크를 해제하면, 누구나 접속할 수 있습니다.
+steam.friendsonly.tooltip = 게임에 스팀 친구만 접속할 수 있는가에 대한 여부입니다. 체크를 해제하면, 누구나 접속할 수 있습니다.
+setting.maxmagnificationmultiplierpercent.name = 최소 카메라 거리
+setting.minmagnificationmultiplierpercent.name = 최대 카메라 거리
+setting.minmagnificationmultiplierpercent.description = 설정 값이 높으면 성능 문제가 발생할 수 있습니다.
public.beta = 베타 버전의 게임은 공개 서버를 만들 수 없습니다.
uiscale.reset = UI 스케일이 변경되었습니다.\n"확인"버튼을 눌러 저장하세요.\n[accent] {0}[][scarlet]초 후에 예전 설정으로 되돌리고 게임을 종료합니다...
uiscale.cancel = 취소 후 나가기
@@ -1293,7 +1327,7 @@ keybind.unit_command_unload_payload.name = 유닛 제어: 화물 투하
keybind.unit_command_enter_payload.name = 유닛 제어: 화물 건물에 착륙/진입
keybind.unit_command_loop_payload.name = 유닛 제어: 유닛 반복 운반
-keybind.rebuild_select.name = 지역 재건
+keybind.rebuild_select.name = 영역 재건
keybind.schematic_select.name = 영역 설정
keybind.schematic_menu.name = 설계도 메뉴
keybind.schematic_flip_x.name = 설계도 X축 뒤집기
@@ -1321,13 +1355,14 @@ keybind.pick.name = 블록 선택
keybind.break_block.name = 블록 파괴
keybind.select_all_units.name = 전체 유닛 선택
keybind.select_all_unit_factories.name = 전체 유닛 공장 선택
-keybind.deselect.name = 선택해제
+keybind.deselect.name = 선택 해제
keybind.pickupCargo.name = 화물 집기
keybind.dropCargo.name = 화물 내려놓기
keybind.shoot.name = 발사
keybind.zoom.name = 확대/축소
keybind.menu.name = 메뉴
keybind.pause.name = 일시중지
+keybind.skip_wave.name = 단계 건너뛰기
keybind.pause_building.name = 건설 일시정지/재개
keybind.minimap.name = 미니맵
keybind.planet_map.name = 행성 지도
@@ -1394,13 +1429,15 @@ rules.unitbuildspeedmultiplier = 유닛 생산속도 배수
rules.unitcostmultiplier = 유닛 비용 배수
rules.unithealthmultiplier = 유닛 체력 배수
rules.unitdamagemultiplier = 유닛 피해량 배수
-rules.unitcrashdamagemultiplier = 유닛 파손 피해량 배수
+rules.unitcrashdamagemultiplier = 유닛 충돌 피해량 배수
+rules.unitminespeedmultiplier = 유닛 채굴 속도 배수
rules.solarmultiplier = 태양광 전력 배수
rules.unitcapvariable = 코어 유닛 수 제한 추가
rules.unitpayloadsexplode = 들어올린 화물 유닛과 함께 폭발
rules.unitcap = 기본 유닛 제한
rules.limitarea = 맵 영역 제한
rules.enemycorebuildradius = 적 코어 건설금지 범위:[lightgray] (타일)
+rules.extracorebuildradius = 추가 건설금지 범위:[lightgray] (타일)
rules.wavespacing = 단계 간격:[lightgray] (초)
rules.initialwavespacing = 첫 단계 간격:[lightgray] (초)
rules.buildcostmultiplier = 건설 비용 배수
@@ -1415,7 +1452,7 @@ rules.playerteam = 플레이어 팀
rules.title.waves = 단계
rules.title.resourcesbuilding = 자원 & 건물
rules.title.enemy = 적
-rules.title.unit = 기체
+rules.title.unit = 유닛
rules.title.experimental = 실험적인 기능
rules.title.environment = 환경
rules.title.teams = 팀
@@ -1423,6 +1460,9 @@ rules.title.planet = 행성
rules.lighting = 조명 표시
rules.fog = 전장의 안개
rules.invasions = 적 지역 침공
+rules.legacylaunchpads = 구 발사 패드 메커니즘
+rules.legacylaunchpads.info = 7.0에서와 같이 착륙 패드 없이 발사 패드를 사용할 수 있습니다.
+landingpad.legacy.disabled = [scarlet]\ue815 비활성화 됨[lightgray] (구 발사 패드 메커니즘 활성화 상태)
rules.showspawns = 적 스폰 표시
rules.randomwaveai = 무작위 단계 AI
rules.fire = 방화 허용
@@ -1440,14 +1480,14 @@ rules.onlydepositcore.info = 코어를 제외한 어떠한 건물에도 자원
content.item.name = 자원
content.liquid.name = 액체
-content.unit.name = 기체
+content.unit.name = 유닛
content.block.name = 블록
content.status.name = 상태 이상
content.sector.name = 지역
content.team.name = 파벌
wallore = (벽)
-#굳이 직역은 안해도 되기에 설금은 해당 명칭을 유지합니다
+#설금은 해당 명칭을 유지합니다.
item.copper.name = 구리
item.lead.name = 납
item.coal.name = 석탄
@@ -1560,11 +1600,11 @@ block.tendrils.name = 덩굴
block.sand-wall.name = 모래 벽
block.spore-pine.name = 포자 덮인 소나무
block.spore-wall.name = 포자 벽
-block.boulder.name = 돌
+block.boulder.name = 바위
block.snow-boulder.name = 눈덩이
block.snow-pine.name = 눈 덮인 소나무
block.shale.name = 이판암
-block.shale-boulder.name = 둥근 이판암
+block.shale-boulder.name = 이판암 바위
block.moss.name = 이끼
block.shrubs.name = 관목 벽
block.spore-moss.name = 포자 이끼
@@ -1578,7 +1618,7 @@ block.kiln.name = 가마
block.graphite-press.name = 흑연 압축기
block.multi-press.name = 다중 압축기
block.constructing = {0} [lightgray](제작중)
-block.spawn.name = 적 소환지점
+block.spawn.name = 적 소환 지점
block.remove-wall.name = 벽 제거
block.remove-ore.name = 광석 제거
block.core-shard.name = 코어: 조각
@@ -1590,19 +1630,19 @@ block.tainted-water.name = 오염된 물
block.deep-tainted-water.name = 오염된 깊은 물
block.darksand-tainted-water.name = 오염된 젖은 검은 모래
block.tar.name = 타르
-block.stone.name = 바위
+block.stone.name = 돌
block.sand-floor.name = 모래
block.darksand.name = 검은 모래
block.ice.name = 얼음
block.snow.name = 눈
-block.crater-stone.name = 구덩이
+block.crater-stone.name = 돌 구덩이
block.sand-water.name = 젖은 모래
block.darksand-water.name = 젖은 검은 모래
block.char.name = 숯
-block.dacite.name = 석영안산암
+block.dacite.name = 데이사이트
block.rhyolite.name = 유문암
-block.dacite-wall.name = 석영안산암 벽
-block.dacite-boulder.name = 석영안산암
+block.dacite-wall.name = 데이사이트 벽
+block.dacite-boulder.name = 데이사이트 바위
block.ice-snow.name = 얼음눈
block.stone-wall.name = 돌 벽
block.ice-wall.name = 얼음 벽
@@ -1627,7 +1667,7 @@ block.dark-panel-3.name = 검은 패널 3
block.dark-panel-4.name = 검은 패널 4
block.dark-panel-5.name = 검은 패널 5
block.dark-panel-6.name = 검은 패널 6
-block.dark-metal.name = 흑철 벽
+block.dark-metal.name = 검은 금속 벽
block.basalt.name = 현무암
block.hotrock.name = 녹아내리는 타일
block.magmarock.name = 용암이 흐르는 타일
@@ -1657,9 +1697,9 @@ block.router.name = 분배기
block.distributor.name = 대형 분배기
block.sorter.name = 필터
block.inverted-sorter.name = 반전 필터
-block.message.name = 메모 블록
-block.reinforced-message.name = 보강된 메모 블록
-block.world-message.name = 월드 메모 블록
+block.message.name = 메모
+block.reinforced-message.name = 보강된 메모
+block.world-message.name = 월드 메모
block.world-switch.name = 월드 스위치
block.illuminator.name = 조명
block.overflow-gate.name = 포화 필터
@@ -1698,7 +1738,7 @@ block.power-void.name = 전력 소멸기
block.power-source.name = 전력 공급기
block.unloader.name = 언로더
block.vault.name = 창고
-block.wave.name = 파도
+block.wave.name = 웨이브
block.tsunami.name = 쓰나미
block.swarmer.name = 스웜
block.salvo.name = 살보
@@ -1743,15 +1783,18 @@ block.spectre.name = 스펙터
block.meltdown.name = 멜트다운
block.foreshadow.name = 포어쉐도우
block.container.name = 컨테이너
-block.launch-pad.name = 지역 자원 수송기
+block.launch-pad.name = 발사 패드 (구)
+block.advanced-launch-pad.name = 발사 패드
+block.landing-pad.name = 착륙 패드
+
block.segment.name = 세그먼트
block.ground-factory.name = 지상 공장
block.air-factory.name = 항공 공장
block.naval-factory.name = 해양 공장
-block.additive-reconstructor.name = 재구성기: Additive
-block.multiplicative-reconstructor.name = 재구성기: Multiplicative
-block.exponential-reconstructor.name = 재구성기: Exponential
-block.tetrative-reconstructor.name = 재구성기: Tetrative
+block.additive-reconstructor.name = 애디티브 재구성기
+block.multiplicative-reconstructor.name = 멀티플리커티브 재구성기
+block.exponential-reconstructor.name = 엑스포우네설 재구성기
+block.tetrative-reconstructor.name = 테러티브 재구성기
block.payload-conveyor.name = 화물 컨베이어
block.payload-router.name = 화물 분배기
block.duct.name = 도관
@@ -1763,13 +1806,13 @@ block.payload-source.name = 화물 공급기
block.disassembler.name = 광재 분해기
block.silicon-crucible.name = 실리콘 도가니
block.overdrive-dome.name = 대형 과부하 프로젝터
-block.interplanetary-accelerator.name = 성간 코어 가속기
-block.constructor.name = 블록 제작대
-block.constructor.description = 최대 2x2 크기의 블록을 제작합니다.
-block.large-constructor.name = 대형 블록 제작대
-block.large-constructor.description = 최대 4x4 크기의 블록을 제작합니다.
-block.deconstructor.name = 화물 분해기
-block.deconstructor.description = 블록과 기체를 분해합니다. 건설 비용의 100%를 반환합니다.
+block.interplanetary-accelerator.name = 성간 가속기
+block.constructor.name = 건설기
+block.constructor.description = 최대 2x2 크기의 구조물을 제작합니다.
+block.large-constructor.name = 대형 건설기
+block.large-constructor.description = 최대 4x4 크기의 구조물을 제작합니다.
+block.deconstructor.name = 대형 분해기
+block.deconstructor.description = 블록과 유닛을 분해합니다. 건설 비용의 100%를 반환합니다.
block.payload-loader.name = 화물 로더
block.payload-loader.description = 들어간 블록에 액체와 아이템을 저장합니다.
block.payload-unloader.name = 화물 언로더
@@ -1793,14 +1836,16 @@ block.yellow-stone-plates.name = 황색 석조판
block.red-stone.name = 붉은 돌
block.dense-red-stone.name = 고밀도 붉은 돌
block.red-ice.name = 붉은 얼음
-block.arkycite-floor.name = 아르키사이트 타일
-block.arkyic-stone.name = 아르키사이트 돌
+block.arkycite-floor.name = 아르키사이트
+block.arkyic-stone.name = 아르킥 돌
block.rhyolite-vent.name = 유문암 분출구
block.carbon-vent.name = 탄소 분출구
block.arkyic-vent.name = 아르킥 분출구
block.yellow-stone-vent.name = 노란 돌 분출구
block.red-stone-vent.name = 붉은 돌 분출구
block.crystalline-vent.name = 수정형 분출구
+block.stone-vent.name = 돌 분출구
+block.basalt-vent.name = 현무암 분출구
block.redmat.name = 붉은 흙
block.bluemat.name = 푸른 흙
block.core-zone.name = 코어 구역
@@ -1821,7 +1866,7 @@ block.yellowcoral.name = 노란 산호
block.carbon-boulder.name = 탄소 바위
block.ferric-boulder.name = 철강 바위
block.beryllic-boulder.name = 녹주 바위
-block.yellow-stone-boulder.name = 노란 돌바위
+block.yellow-stone-boulder.name = 노란 돌 바위
block.arkyic-boulder.name = 아르킥 바위
block.crystal-cluster.name = 수정 클러스터
block.vibrant-crystal-cluster.name = 선명한 수정 클러스터
@@ -1840,7 +1885,7 @@ block.electric-heater.name = 전기 가열기
block.slag-heater.name = 광재 가열기
block.phase-heater.name = 위상 가열기
block.heat-redirector.name = 열 전송기
-block.small-heat-redirector.name = Small Heat Redirector
+block.small-heat-redirector.name = 소형 열 전송기
block.heat-router.name = 열 분배기
block.slag-incinerator.name = 광재 소각로
block.carbide-crucible.name = 탄화물 도가니
@@ -1872,7 +1917,7 @@ block.duct-unloader.name = 언로더 도관
block.surge-conveyor.name = 설금 컨베이어
block.surge-router.name = 설금 분배기
block.unit-cargo-loader.name = 유닛 화물 적재소
-block.unit-cargo-unload-point.name = 유닛 화물 하역지점
+block.unit-cargo-unload-point.name = 유닛 화물 하역 지점
block.reinforced-pump.name = 보강된 펌프
block.reinforced-conduit.name = 보강된 파이프
block.reinforced-liquid-junction.name = 보강된 액체 교차기
@@ -1887,8 +1932,8 @@ block.turbine-condenser.name = 터빈 응결기
block.chemical-combustion-chamber.name = 화학적 연소실
block.pyrolysis-generator.name = 열분해 발전기
block.vent-condenser.name = 분출구 응결기
-block.cliff-crusher.name = 벽 분쇄기
-block.large-cliff-crusher.name = Advanced Cliff Crusher
+block.cliff-crusher.name = 절벽 분쇄기
+block.large-cliff-crusher.name = 고급 절벽 분쇄기
block.plasma-bore.name = 플라즈마 채광기
block.large-plasma-bore.name = 대형 플라즈마 채광기
block.impact-drill.name = 충격 드릴
@@ -1971,7 +2016,7 @@ hint.rebuildSelect = [accent][[B][]를 누르고 끌어서 파괴된 블록 흔
hint.rebuildSelect.mobile = 복사버튼 \ue874 을 선택하시고, 재건축 버튼 \ue80f 을 탭 하신 뒤, 드래그 하여 블록 흔적을 선택하세요. 선택된 블록은 자동으로 복구됩니다.
hint.conveyorPathfind = [accent][[왼쪽 Ctrl][]을 누른 채로 컨베이어를 대각선으로 끌면 길을 자동으로 만들어줍니다.
hint.conveyorPathfind.mobile = \ue844 [accent]대각 모드[]를 활성화하고 컨베이어를 대각선으로 끌면 길을 자동으로 찾아줍니다.
-hint.boost = [accent][[왼쪽 Shift][]를 눌러 탑승한 기체로 장애물을 넘을 수 있습니다. \n\n 일부 지상 유닛만 이륙할 수 있습니다.
+hint.boost = [accent][[왼쪽 Shift][]를 눌러 탑승한 유닛으로 장애물을 넘을 수 있습니다. \n\n 일부 지상 유닛만 이륙할 수 있습니다.
hint.payloadPickup = 작은 블록이나 유닛을 집으려면 [accent][[[]를 누르십시오.
hint.payloadPickup.mobile = 작은 블록이나 유닛을 집으려면 [accent]잠깐 누르십시오[].
hint.payloadDrop = 다시 내려놓으려면 [accent]][]를 누르십시오.
@@ -2041,7 +2086,7 @@ split.container = 컨테이너와 마찬가지로, 유닛도 [accent]화물 매
item.copper.description = 모든 종류의 구조물 및 탄약으로 사용하는 기본 자원입니다.
item.copper.details = 평범한 구리. 세르플로에 비정상적으로 많이 분포되어 있습니다. 기본적으로 보강하지 않는 한 구조적으로 약합니다.
-item.lead.description = 전자 및 액체 수송 블록에서 광범위하게 사용하는 기본 자원입니다.
+item.lead.description = 전자 및 액체 수송 구조물에 광범위하게 사용하는 기본 자원입니다.
item.lead.details = 밀도가 높으며 반응성이 적은 자원. 배터리에 주로 사용됩니다.
item.metaglass.description = 액체 분배 및 저장에 광범위하게 사용합니다.
item.graphite.description = 탄약 및 전기 부품에 사용되는 무기질 탄소입니다.
@@ -2054,8 +2099,8 @@ item.scrap.description = 융해기와 분쇄기를 통해 다른 물질로 정
item.scrap.details = 오래된 구조물과 유닛의 잔해. 미량의 다양한 금속들이 포함되어 있습니다.
item.silicon.description = 복잡한 전자 장치나 유도탄에 사용되는 유용한 반도체입니다.
item.plastanium.description = 고급 유닛, 절연 및 파편화 탄약에 사용됩니다.
-item.phase-fabric.description = 최첨단 전자 제품과 자가 수리 기술에 사용되는 거의 무중력에 가까운 물질입니다.
-item.surge-alloy.description = 첨단 무기 및 반작용 방어 구조물에 사용되는 고급 합금입니다.
+item.phase-fabric.description = 최첨단 전자 구조물과 자가 수리 기술에 사용되는 물질입니다.
+item.surge-alloy.description = 서지 합금, 줄여서 설금. 첨단 무기 및 반작용 방어 구조물에 사용되는 고급 합금입니다.
item.spore-pod.description = 석유, 폭발물과 연료로 전환하는 데 사용되는 합성 포자 버섯입니다.
item.spore-pod.details = 포자, 합성 생명체로 판단됩니다. 타 유기체에 치명적인 독가스를 내뿜으며. 매우 빠르게 퍼집니다. 특정한 조건에서 인화성이 매우 높습니다.
item.blast-compound.description = 폭탄과 폭발성 탄약에 사용되는 불안정한 화합물입니다.
@@ -2064,8 +2109,8 @@ item.pyratite.description = 방화 무기와 연료를 연소하는 발전기에
#Erekir
item.beryllium.description = 에르키아의 여러 종류의 건축물과 탄약에 사용됩니다.
item.tungsten.description = 드릴, 장갑 및 탄약에 사용됩니다. 보다 발전된 구조물을 건설하는 데 필요합니다.
-item.oxide.description = 전원의 열전도체 및 절연체로 사용됩니다.
-item.carbide.description = 첨단 구조물, 강력한 기체 및 탄약에 사용됩니다.
+item.oxide.description = 전력용 열전도체 및 절연체로 사용됩니다.
+item.carbide.description = 첨단 구조물, 강력한 유닛 및 탄약에 사용됩니다.
liquid.water.description = 냉각기 및 폐기물 처리에 사용됩니다.
liquid.slag.description = 분리기를 통해 다른 자원으로 정제하거나 탄환으로 적들에게 살포할 수 있습니다.
@@ -2075,11 +2120,11 @@ liquid.cryofluid.description = 원자로, 포탑 및 공장에서 냉각수로
#Erekir
liquid.arkycite.description = 발전 및 재료 합성을 위한 화학 반응에 사용됩니다.
liquid.ozone.description = 재료 생산에서 산화제로 사용되며 연료로도 사용됩니다. 적당한 폭발성 물질입니다.
-liquid.hydrogen.description = 자원 추출, 기체 생산 및 구조물 수리에 사용됩니다. 가연성 물질입니다.
-liquid.cyanogen.description = 탄약, 첨단 기체의 구축 및 첨단 블록의 다양한 반응에 사용됩니다. 강한 인화성 물질입니다.
-liquid.nitrogen.description = 자원 추출, 가스 생성 및 기체 생산에 사용됩니다. 불활성 물질입니다.
-liquid.neoplasm.description = 신생물 반응로의 위험한 생물학적 부산물. 접촉하는 즉시 인접한 모든 수분 함유 블록으로 빠르게 확산되며, 진행되는 동안 피해를 입힙니다. 점성을 띄는 물질입니다.
-liquid.neoplasm.details = 신생물, 진흙과 비슷한 점성을 가졌으며, 통제 불능의 속도로 빠르게 확산되는 합성세포 덩어리 입니다. 고온에 저항력이 있으며, 일반적인 분석으로는 너무나 복잡하고 불안정하여 아직 정확한 행동 양식이나 생태를 확인하지 못 했습니다. 열 저항. 물과 관련된 구조물에는 매우 위험합니다.\n\n 광재 웅덩이에 소각하는 것이 바람직합니다.
+liquid.hydrogen.description = 자원 추출, 유닛 생산 및 구조물 수리에 사용됩니다. 가연성 물질입니다.
+liquid.cyanogen.description = 탄약, 고급 유닛의 구축 및 고급 블록의 다양한 반응에 사용됩니다. 높은 인화성 물질입니다.
+liquid.nitrogen.description = 자원 추출, 기체 제작 및 유닛 생산에 사용됩니다. 불활성 물질입니다.
+liquid.neoplasm.description = 신생물 반응로의 위험한 생물학적 부산물. 접촉하는 즉시 인접한 모든 수분 함유 블록에 빠르게 확산되며, 확산되는 동안 그 블록에 피해를 입힙니다. 점성을 띄는 물질입니다.
+liquid.neoplasm.details = 신생물, 진흙과 비슷한 점성을 가졌으며, 통제 불능의 속도로 빠르게 확산되는 합성세포 덩어리 입니다. 고온에 저항력이 있으며, 일반적인 분석으로는 너무나 복잡하고 불안정하여 아직 정확한 행동 양식이나 생태를 확인하지 못 했습니다. 어느정도 열에 저항하고, 물과 관련된 구조물에는 매우 위험합니다.\n\n 이것을 사멸할 수 있는 온도를 가진 광재 웅덩이에 소각하는 것이 바람직합니다.
block.derelict = \uf77e [lightgray]잔해
block.armored-conveyor.description = 자원을 앞으로 운반합니다. 측면에서 자원을 받아들이지 않습니다.
@@ -2192,8 +2237,10 @@ block.core-nucleus.details = 세 번째, 궁극의 버전.
block.vault.description = 각 종류별로 많은 양의 자원을 저장합니다. 코어 옆에 배치하면 저장 용량을 확장합니다. 언로더를 사용하여 내용물을 빼낼 수 있습니다.
block.container.description = 각 종류별로 적은 양의 자원을 저장합니다. 코어 옆에 배치하면 저장 용량을 확장합니다. 언로더를 사용하여 내용물을 빼낼 수 있습니다.
block.unloader.description = 선택한 자원을 근처의 블록에서 빼냅니다. 수송 블록 및 포탑을 대상으로 작동하지 않습니다.
-block.launch-pad.description = 선택한 지역으로 자원을 출격합니다.
-block.launch-pad.details = 지역간 자원 운송을 위한 보조 궤도 시스템. 화물 추진체는 부서지기 쉽고 재진입이 불가능합니다.
+block.launch-pad.description = 선택한 지역으로 자원을 발사합니다.
+block.advanced-launch-pad.description = 선택한 지역에 자원 화물를 발사합니다. 한 번에 한 종류의 자원만 허용됩니다.
+block.advanced-launch-pad.details = 자원의 지역 간 운송을 위한 하위 궤도 시스템.
+block.landing-pad.description = 다른 지역의 발사 패드에서 아이템을 받습니다. 착륙의 충격으로부터 보호하려면 많은 양의 물이 필요합니다.
block.duo.description = 적을 향해 번갈아 탄환을 발사합니다.
block.scatter.description = 공중 목표물을 향해 납, 고철, 또는 강화유리 조각 덩어리를 발사합니다.
block.scorch.description = 주변의 모든 지상 적을 불태웁니다. 근거리에서 매우 효과적입니다.
@@ -2256,7 +2303,7 @@ block.electric-heater.description = 블록에 열을 가합니다. 많은 양의
block.slag-heater.description = 블록에 열을 가합니다. 광재가 필요합니다.
block.phase-heater.description = 블록에 열을 가합니다. 위상 섬유가 필요합니다.
block.heat-redirector.description = 누적된 열을 다른 블록으로 전달합니다.
-block.small-heat-redirector.description = Redirects accumulated heat to other blocks.
+block.small-heat-redirector.description = 누적된 열을 다른 블록으로 전달합니다.
block.heat-router.description = 축적된 열을 세 가지 출력 방향으로 분산시킵니다.
block.electrolyzer.description = 물을 수소와 오존 가스로 변환합니다.
block.atmospheric-concentrator.description = 대기에서 질소를 농축합니다. 열이 필요합니다.
@@ -2269,7 +2316,7 @@ block.vent-condenser.description = 분출구에서 나오는 가스를 물로
block.plasma-bore.description = 광석 벽을 향하여 배치하면 자원을 끊임없이 출력합니다. 소량의 전력이 필요합니다.
block.large-plasma-bore.description = 더 큰 플라즈마 채광기. 텅스텐과 토륨을 채굴할 수 있습니다. 수소와 전력이 필요합니다.
block.cliff-crusher.description = 벽을 부수고 모래를 끊임없이 배출합니다. 전력이 필요합니다. 효율은 벽의 유형에 따라 다릅니다.
-block.large-cliff-crusher.description = Crushes walls, outputting sand indefinitely. Requires power and ozone. Efficiency varies based on type of wall. Optionally consumes tungsten to increase efficiency.
+block.large-cliff-crusher.description = 벽을 부수고 모래를 끊임없이 배출합니다. 전력과 오존이 필요합니다. 효율은 벽의 유형에 따라 다릅니다. 선택적으로 텅스텐을 소모하여 효율성을 높입니다.
block.impact-drill.description = 광석에 배치하면 자원을 한번에 몰아서, 끊임없이 출력합니다. 전력과 물이 필요합니다.
block.eruption-drill.description = 개선된 충격 드릴. 토륨을 채굴할 수 있습니다. 수소가 필요합니다.
block.reinforced-conduit.description = 유체를 앞으로 이동합니다. 측면에서 파이프가 아닌 입력을 허용하지 않습니다.
@@ -2298,10 +2345,11 @@ block.underflow-duct.description = 포화 도관의 반대입니다. 왼쪽 및
block.reinforced-liquid-junction.description = 두 개의 교차 파이프 사이의 다리 역할을 합니다.
block.surge-conveyor.description = 자원을 일괄적으로 이동합니다. 전력을 공급하여 가속할 수 있습니다. 인접한 블록에 전원을 공급합니다.
block.surge-router.description = 설금 컨베이어에서 자원을 세 방향으로 균등하게 분배합니다. 전력을 공급하여 가속할 수 있습니다. 인접한 블록에 전원을 공급합니다.
-block.unit-cargo-loader.description = 화물용 드론을 제작합니다. 드론은 자동으로 자원과 일치하는 필터로 설정된 기체 화물 하역지점으로 분배합니다.
+block.unit-cargo-loader.description = 화물용 드론을 제작합니다. 드론은 자동으로 자원과 일치하는 필터로 설정된 유닛 화물 하역지점으로 분배합니다.
block.unit-cargo-unload-point.description = 화물 드론의 하역지점 역할을 합니다. 선택한 필터와 일치하는 자원을 받아들입니다.
block.beam-node.description = 전력을 다른 블록에 직선 방향으로 전송합니다. 소량의 전력을 저장합니다.
block.beam-tower.description = 전력을 다른 블록에 직선 방향으로 전송합니다. 대량의 전력을 저장합니다. 장거리 연결이 가능합니다.
+block.beam-link.description = 매우 먼 거리에 전력을 전송합니다.\n인접한 구조물이나 다른 빔 링크에만 연결할 수 있습니다.
block.turbine-condenser.description = 분출구에 배치할 때 전력을 발생시킵니다. 소량의 물을 생산합니다.
block.chemical-combustion-chamber.description = 아르키사이트와 오존으로 전력을 생산합니다.
block.pyrolysis-generator.description = 아르키사이트와 광재로 많은 양의 전력을 생산합니다. 부산물로 물이 발생합니다.
@@ -2353,10 +2401,10 @@ unit.zenith.description = 주변의 모든 적을 향해 미사일을 발사합
unit.antumbra.description = 주변의 모든 적을 향해 탄환을 일제히 발사합니다.
unit.eclipse.description = 주변의 모든 적을 향해 두 개의 관통 레이저와 대공 탄환을 일제히 발사합니다.
unit.mono.description = 자동으로 구리와 납을 채굴하여 코어에 넣습니다.
-unit.poly.description = 자동으로 부서진 구조물을 재건하거나 다른 기체의 건설을 보조합니다.
-unit.mega.description = 자동으로 손상된 구조물을 수리합니다. 블록이나 작은 지상 기체를 수송할 수 있습니다.
-unit.quad.description = 지상 목표물에 아군 구조물을 수리하고 적에게 피해를 입히는 큰 폭탄을 투하합니다. 중간 크기의 지상 기체를 수송할 수 있습니다.
-unit.oct.description = 재생하는 역장으로 주변 아군을 보호합니다. 대부분의 지상 기체를 수송할 수 있습니다.
+unit.poly.description = 자동으로 부서진 구조물을 재건하거나 다른 유닛의 건설을 보조합니다.
+unit.mega.description = 자동으로 손상된 구조물을 수리합니다. 블록이나 작은 지상 유닛을 수송할 수 있습니다.
+unit.quad.description = 지상 목표물에 아군 구조물을 수리하고 적에게 피해를 입히는 큰 폭탄을 투하합니다. 중간 크기의 지상 유닛을 수송할 수 있습니다.
+unit.oct.description = 재생하는 역장으로 주변 아군을 보호합니다. 대부분의 지상 유닛을 수송할 수 있습니다.
unit.risso.description = 주변의 모든 적을 향해 탄환과 미사일을 일제히 발사합니다.
unit.minke.description = 주변의 지상 적을 향해 일반적인 탄환과 포탄을 발사합니다.
unit.bryde.description = 적을 향해 장거리 포탄과 미사일을 발사합니다.
@@ -2368,7 +2416,7 @@ unit.gamma.description = 적으로부터 코어: 핵심을 방어합니다. 건
unit.retusa.description = 주변의 적을 향해 유도 어뢰를 발사합니다. 아군 유닛을 수리합니다.
unit.oxynoe.description = 주변의 적을 향해 구조물을 수리하는 화염줄기를 발사합니다. 요격 포탑으로 주변의 적 탄환을 요격합니다.
unit.cyerce.description = 주변의 적을 향해 유도 집속 미사일을 발사합니다. 아군 유닛을 수리합니다.
-unit.aegires.description = 에너지 필드로 들어온 모든 적 기체와 구조물에게 충격을 줍니다. 모든 아군을 수리합니다.
+unit.aegires.description = 에너지 필드로 들어온 모든 적 유닛과 구조물에게 충격을 줍니다. 모든 아군을 수리합니다.
unit.navanax.description = 적 전력망에 상당한 피해를 주고 아군 블록을 수리하는 폭발성 EMP 탄환을 발사합니다. 4개의 자율 레이저 포탑으로 주변 적을 녹입니다.
#Erekir
@@ -2394,6 +2442,7 @@ unit.emanate.description = 코어: 도심을 지켜내기 위해 구조물을
lst.read = 연결된 메모리 셀에서 숫자를 읽습니다.
lst.write = 연결된 메모리 셀에 숫자를 작성합니다.
lst.print = 프린트 버퍼에 텍스트를 추가합니다.\n[accent]Print Flush[]가 사용되기 전까진 아무것도 보여주지 않습니다.
+lst.printchar = 프린트 버퍼에 UTF-16 문자 또는 콘텐츠 아이콘을 추가합니다.\n[accent]Print Flush[]가 사용되지 전까지는 아무것도 표시되지 않습니다.
lst.format = 텍스트 버퍼의 다음 플레이스홀더를 값으로 바꿉니다.\n자리 표시자 패턴이 유효하지 않은 경우 아무것도 하지 않습니다.\n플레이스홀더 패턴: "{[accent]number 0-9[]}"\n예:\n[accent]print "test {0}"\nformat "example"
lst.draw = 드로잉 버퍼에 실행문을 추가합니다.\n[accent]Draw Flush[]가 사용되기 전까진 아무것도 보여주지 않습니다.
lst.drawflush = 대기중인 [accent]Draw[]실행문을 디스플레이에 출력합니다.
@@ -2435,7 +2484,7 @@ lst.sync = 네트워크 전체에서 변수를 동기화합니다.\n1초에 최
lst.playsound = 소리를 재생합니다.\n볼륨과 팬은 전역 값이 될 수도 있고, 위치를 기준으로 계산될 수도 있습니다.
lst.makemarker = 월드에 새로운 논리 마커를 만듭니다.\n 이 마커를 식별할 ID를 제공해야 합니다.\n 현재 마커는 월드당 20,000개로 제한되어 있습니다.
lst.setmarker = 마커의 속성을 설정합니다.\n사용된 ID는 마커 만들기 지침에서와 동일해야 합니다.
-lst.localeprint = 텍스트 버퍼에 맵 언어 팩 속성 값을 추가합니다.\n맵 편집기에서 맵 언어 팩을 설정하려면 [accent]맵 정보 > 언어 팩[]을 선택합니다.\n클라이언트가 모바일 기기인 경우 먼저 ".mobile"로 끝나는 속성을 print하려고 시도합니다.
+lst.localeprint = 텍스트 버퍼에 맵 로케일 번들 속성 값을 추가합니다.\n맵 편집기에서 맵 로케일 번들을 설정하려면 [accent]맵 정보 > 로케일 번들[]을 선택합니다.\n클라이언트가 모바일 기기인 경우 먼저 ".mobile"로 끝나는 속성을 print하려고 시도합니다.
lglobal.false = 0
lglobal.true = 1
@@ -2474,7 +2523,7 @@ lglobal.@liquidCount = 게임의 액체 콘텐츠 유형의 총 수; 조회 지
lglobal.@server = 코드가 서버 또는 싱글 플레이어에서 실행되는 경우 true, 그렇지 않은 경우 false
lglobal.@client = 코드가 서버에 연결된 클라이언트에서 실행되는 경우 true
-lglobal.@clientLocale = 코드를 실행하는 클라이언트의 언어 팩. 예: en_US (한국어는 ko_KR)
+lglobal.@clientLocale = 코드를 실행하는 클라이언트의 로케일 번들. 예: en_US (한국어는 ko_KR)
lglobal.@clientUnit = 코드를 실행하는 클라이언트의 단위
lglobal.@clientName = 코드를 실행하는 클라이언트의 플레이어 이름
lglobal.@clientTeam = 코드를 실행하는 클라이언트의 팀 ID
@@ -2489,12 +2538,14 @@ lenum.config = 필터의 아이템같은 건물의 설정
lenum.enabled = 블록의 활성 여부
laccess.currentammotype = 포탑의 현재 탄약/액체.
+laccess.memorycapacity = 메모리 블록의 셀 수.
laccess.color = 조명 색상.
laccess.controller = 유닛 제어자. 프로세서가 제어하면, 프로세서를 반환합니다.\n다른 유닛에 의해 지휘되면(G키), 지휘하는 유닛을 반환합니다.\n그 외에는 자신을 반환합니다.
-laccess.dead = 기체 또는 건물 사망/무효 여부.
+laccess.dead = 유닛 또는 건물 사망/무효 여부.
laccess.controlled = 만약 유닛 제어자가 프로세서라면 [accent]@ctrlProcessor[]를 반환합니다.\n만약 유닛/건물 제어자가 플레이어라면 [accent]@ctrlPlayer[]를 반환합니다.\n만약 유닛가 다른 유닛에 의해 지휘되면(G키)[accent]@ctrlFormation[]를 반환합니다.\n그 외에는 0을 반환합니다.
laccess.progress = 작업 진행률, 0 에서 1 로 감.\n포탑 재장전이나 구조물 진행률을 반환합니다.
-laccess.speed = 기체의 최대 속도, 타일/초.
+laccess.speed = 유닛의 최대 속도, 타일/초.
+laccess.size = 유닛/건물의 크기 또는 줄의 길이.
laccess.id = 유닛/블록/아이템/액체의 ID.\n이것은 조회 작업의 역순입니다.
lcategory.unknown = 알 수 없음
@@ -2507,8 +2558,8 @@ lcategory.operation = 연산
lcategory.operation.description = 논리적 연산
lcategory.control = 흐름 제어
lcategory.control.description = 실행 순서 관리
-lcategory.unit = 기체 제어
-lcategory.unit.description = 기체에 명령 하달
+lcategory.unit = 유닛 제어
+lcategory.unit.description = 유닛에 명령 하달
lcategory.world = 세계
lcategory.world.description = 세계에 작용하는 요소 제어
@@ -2582,11 +2633,11 @@ lenum.generator = 전력을 생산하는 건물
lenum.factory = 자원을 변환하는 건물
lenum.repair = 수리 지점
lenum.battery = 배터리
-lenum.resupply = 보급 지점\n[accent]"기체 탄약 필요"[]가 활성화되었을 때만 유의미합니다.
+lenum.resupply = 보급 지점\n[accent]"유닛 탄약 필요"[]가 활성화되었을 때만 유의미합니다.
lenum.reactor = 핵융합로/토륨 원자로
lenum.turret = 포탑
-sensor.in = 감지할 건물/기체
+sensor.in = 감지할 건물/유닛
radar.from = 감지를 할 건물\n감지 범위는 건물의 감지 범위에 의해 제한됩니다.
radar.target = 유닛 감지 필터
@@ -2632,13 +2683,39 @@ lenum.flag = 깃발 수 설정
lenum.mine = 특정 위치에서 채광
lenum.build = 구조물 건설
lenum.getblock = 좌표에서 건물, 층, 블록 유형을 가져옵니다.\n단위는 위치 범위 내에 있어야 하며, 그렇지 않으면 null이 반환됩니다.
-lenum.within = 좌표 주변 기체 발견 여부
+lenum.within = 좌표 주변 유닛 발견 여부
lenum.boost = 이륙 시작/중단
-lenum.flushtext = 해당되는 경우, 프린트 버퍼의 내용을 마커에 플러시.\nFetch가 true로 설정된 경우, 맵 언어 팩 또는 게임 번들에서 속성을 가져오려고 시도합니다.
+lenum.flushtext = 해당되는 경우, 프린트 버퍼의 내용을 마커에 플러시.\nFetch가 true로 설정된 경우, 맵 로케일 번들 또는 게임 번들에서 속성을 가져오려고 시도합니다.
lenum.texture = 게임의 texture atlas에서 직접 가져온 텍스처 이름(케밥식 명명 스타일 사용).\n printFlush가 true로 설정된 경우, 텍스트 인수로 텍스트 버퍼 내용을 사용합니다.
lenum.texturesize = 타일의 텍스처 크기. 0 값은 마커 너비를 원래 텍스처 크기에 맞게 조정합니다.
lenum.autoscale = 플레이어의 확대/축소 레벨에 맞춰 마커의 크기를 조정할지 여부.
lenum.posi = 인덱스 위치. 라인 및 쿼드 마커에 사용되며 인덱스 0이 첫 번째 위치입니.
lenum.uvi = 0에서 1까지의 텍스처 위치, 쿼드 마커에 사용.
lenum.colori = 인덱스된 위치, 인덱스 0이 첫 번째 색상이며 라인 및 쿼드 마커에 사용.
+lenum.wavetimer = 타이머에 따라 단계가 자동으로 오는지 여부입니다. 그렇지 않은 경우 재생 버튼을 누르면 단계가 옵니다.
+lenum.wave = 현재 단계 번호입니다. 비 단계 모드에서는 무엇이든 될 수 있습니다.
+lenum.currentwavetime = 틱 단위의 웨이브 카운트다운입니다.
+lenum.waves = 단계가 시작될 수 있는지 여부입니다.
+lenum.wavesending = 재생 버튼을 사용하여 단계를 수동으로 넘길 수 있는지 여부입니다.
+lenum.attackmode = 게임 모드가 공격 모드인지 결정합니다.
+lenum.wavespacing = 단계 사이의 시간(틱)입니다.
+lenum.enemycorebuildradius = 적 코어 반경 주변 건설 금지 구역.
+lenum.dropzoneradius = 적 착륙 지점 반경.
+lenum.unitcap = 기본 최대 유닛 수. 여전히 블록 단위로 늘릴 수 있습니다.
+lenum.lighting = 주변 조명이 활성화되어 있는지 여부입니다.
+lenum.buildspeed = 건설 속도에 대한 배수입니다.
+lenum.unithealth = 얼마나 많은 체력 단위로 시작하는지.
+lenum.unitbuildspeed = 유닛 공장이 유닛을 만드는 속도.
+lenum.unitcost = 유닛이 건설하는 데 필요한 자원의 배수입니다.
+lenum.unitdamage = 유닛이 처리하는 피해량입니다.
+lenum.blockhealth = 블록 체력이 시작되는 양입니다.
+lenum.blockdamage = 블록(포탑)이 처리하는 피해량입니다.
+lenum.rtsminweight = 분대가 공격하는 데 필요한 최소한의 "이점"입니다. 높을 수록 더 조심스럽습니다.
+lenum.rtsminsquad = 공격 분대의 최소 규모.
+lenum.maparea = 플레이 가능한 맵 영역. 해당 지역 밖의 모든 것은 상호 작용할 수 없습니다.
+lenum.ambientlight = 주변광 색상. 조명이 활성화된 경우 사용됩니다.
+lenum.solarmultiplier = 태양광 패널의 전력 출력 배수을 증가시킵니다.
+lenum.dragmultiplier = 환경 드래그 배수.
+lenum.ban = 배치하거나 건설할 수 없는 블록이나 유닛.
+lenum.unban = 유닛 또는 블록 금지를 해제합니다.
diff --git a/core/assets/bundles/bundle_lt.properties b/core/assets/bundles/bundle_lt.properties
index d4a4dd60ee..3c3ca06eeb 100644
--- a/core/assets/bundles/bundle_lt.properties
+++ b/core/assets/bundles/bundle_lt.properties
@@ -13,18 +13,18 @@ link.google-play.description = Google Play parduotuvės elementas
link.f-droid.description = F-Droid katalogo elementas
link.wiki.description = Oficialus Mindustry wiki
link.suggestions.description = Pasiūlykite naujas funkcijas
-link.bug.description = Found one? Report it here
-linkopen = This server has sent you a link. Are you sure you want to open it?\n\n[sky]{0}
+link.bug.description = Radot vieną? Praneškite čia
+linkopen = Šis serveris atsiuntė jums nuorodą. Ar jūs norite atidaryti ją?\n\n[sky]{0}
linkfail = Nepavyko atidaryti nuorodos!\nURL nukopijuotas į jūsų iškarpinę.
screenshot = Ekrano kopija išsaugota į {0}
screenshot.invalid = Žemėlapis yra per didelis, potencialiai nepakanka vietos išsaugoti ekrano kopiją.
gameover = Žaidimas Baigtas
-gameover.disconnect = Disconnect
+gameover.disconnect = Atsijungti
gameover.pvp = [accent] {0}[] komanda laimėjo!
-gameover.waiting = [accent]Waiting for next map...
+gameover.waiting = [accent]Laukiama kito žemėlapio...
highscore = [accent]Naujas rekordas!
copied = Nukopijuota.
-indev.notready = This part of the game isn't ready yet
+indev.notready = Ši žaidimo dalis dar neparuošta
load.sound = Garsai
load.map = Žemėlapiai
@@ -40,23 +40,23 @@ be.updating = Naujinama...
be.ignore = Ignoruoti
be.noupdates = Naujinimų nerasta.
be.check = Ieškoti naujinimų
-mods.browser = Mod Browser
-mods.browser.selected = Selected mod
-mods.browser.add = Install
-mods.browser.reinstall = Reinstall
-mods.browser.view-releases = View Releases
-mods.browser.noreleases = [scarlet]No Releases Found\n[accent]Couldn't find any releases for this mod. Check if the mod's repository has any releases published.
-mods.browser.latest =
-mods.browser.releases = Releases
+mods.browser = Modifikacijų naršyklė
+mods.browser.selected = Parinkta modifikacija
+mods.browser.add = Įdiegti
+mods.browser.reinstall = Perdiegti
+mods.browser.view-releases = Pažiūrėti leidimus
+mods.browser.noreleases = [scarlet]Nerasti jokių leidimų\n[accent]Nėjo rasti leidimų šiai modifikacijai. Patikrinkite ar modifikacijos repo yra paskelbtų leidimų.
+mods.browser.latest =
+mods.browser.releases = Leidimai
mods.github.open = Repo
-mods.github.open-release = Release Page
-mods.browser.sortdate = Sort by recent
-mods.browser.sortstars = Sort by stars
+mods.github.open-release = Leidimų puslapis
+mods.browser.sortdate = Rūšioti pagal naujausius
+mods.browser.sortstars = Rūšiuoti pagal žvaigždes
schematic = Schema
schematic.add = Išsaugoti schemą...
schematics = Schemos
-schematic.search = Search schematics...
+schematic.search = Ieškoti schemas...
schematic.replace = Schema šiuo pavadinimu jau egzistuoja. Pakeisti?
schematic.exists = Schema šiuo pavadinimu jau egzistuoja.
schematic.import = Importuoti schemą...
@@ -69,28 +69,28 @@ schematic.shareworkshop = Dalintis Dirbtuvėje
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Apversti schemą
schematic.saved = Schema išsaugota.
schematic.delete.confirm = Ši schema bus negrįžtamai pašalinta.
-schematic.edit = Edit Schematic
+schematic.edit = Redaguoti schemą
schematic.info = {0}x{1}, {2} blokai
-schematic.disabled = [scarlet]Schematics disabled[]\nYou are not allowed to use schematics on this [accent]map[] or [accent]server.
-schematic.tags = Tags:
-schematic.edittags = Edit Tags
-schematic.addtag = Add Tag
-schematic.texttag = Text Tag
-schematic.icontag = Icon Tag
-schematic.renametag = Rename Tag
-schematic.tagged = {0} tagged
-schematic.tagdelconfirm = Delete this tag completely?
-schematic.tagexists = That tag already exists.
-stats = Stats
-stats.wave = Waves Defeated
+schematic.disabled = [scarlet]Schemos išjungtos[]\nJums neleidžiama naudoti schemų šiame [accent]žemėlapyje[] ar [accent]serveryje.
+schematic.tags = Žymės:
+schematic.edittags = Redaguoti žymes
+schematic.addtag = Pridėti žymę
+schematic.texttag = Teksto žymė
+schematic.icontag = Piktogramos žymė
+schematic.renametag = Pervadinti žymę
+schematic.tagged = {0} pažymėta
+schematic.tagdelconfirm = Visiškai ištrinti šią žymę?
+schematic.tagexists = Ši žymė jau egzistuoja.
+stats = Statistikos
+stats.wave = Bangos Praeitos
stats.unitsCreated = Units Created
-stats.enemiesDestroyed = Enemies Destroyed
-stats.built = Buildings Built
-stats.destroyed = Buildings Destroyed
-stats.deconstructed = Buildings Deconstructed
-stats.playtime = Time Played
+stats.enemiesDestroyed = Priešai sunaikinti
+stats.built = Pastatų pastata
+stats.destroyed = Pastatų sugriauta
+stats.deconstructed = Pastatų dekonstruta
+stats.playtime = Laiko žaista
-globalitems = [accent]Global Items
+globalitems = [accent]Globalūs Daiktai
map.delete = Ar esate tikri, jog norite ištrinti žemėlapį "[accent]{0}[]"?
level.highscore = Rekordas: [accent]{0}
level.select = Lygio pasirinkimas
@@ -128,47 +128,47 @@ done = Baigta
feature.unsupported = Jūsų įrenginys nepalaiko šios funkcijos.
mods.initfailed = [red]⚠[] The previous Mindustry instance failed to initialize. This was likely caused by misbehaving mods.\n\nTo prevent a crash loop, [red]all mods have been disabled.[]
mods = Modifikacijos
+mods.name = Mod:
mods.none = [lightgray]Modifikacijos nerastos
mods.guide = Modifikavimo pagalba
mods.report = Pranešti apie klaidas
mods.openfolder = Atidaryti modifikacijų aplanką
-mods.viewcontent = View Content
+mods.viewcontent = Peržiūrėti turinį
mods.reload = Perkrauti
-mods.reloadexit = The game will now exit, to reload mods.
+mods.reloadexit = Žadimas dabar išsijungs perkrauti modifikacijas.
mod.installed = [[Installed]
mod.display = [gray]Modifikacijos:[orange] {0}
mod.enabled = [lightgray]Įjungta
mod.disabled = [scarlet]Išjungta
-mod.multiplayer.compatible = [gray]Multiplayer Compatible
+mod.multiplayer.compatible = [gray]Suderinama su keliais žaidėjais
mod.disable = Išjungti
mod.version = Version:
mod.content = Tūrinys:
mod.delete.error = Negalima ištrinti modifikacijos. Failas gali būti naudojamas.
-mod.incompatiblegame = [red]Outdated Game
-mod.incompatiblemod = [red]Incompatible
-mod.blacklisted = [red]Unsupported
+mod.incompatiblegame = [red]Pasenusi žaidimo versija
+mod.incompatiblemod = [red]Nesuderinima
+mod.blacklisted = [red]Nepalaikoma
mod.unmetdependencies = [red]Unmet Dependencies
mod.erroredcontent = [scarlet]Turinio klaidos.
mod.circulardependencies = [red]Circular Dependencies
-mod.incompletedependencies = [red]Incomplete Dependencies
+mod.incompletedependencies = [red]Nebaigtos Priklausomybės
mod.requiresversion.details = Requires game version: [accent]{0}[]\nYour game is outdated. This mod requires a newer version of the game (possibly a beta/alpha release) to function.
-mod.outdatedv7.details = This mod is incompatible with the latest version of the game. The author must update it, and add [accent]minGameVersion: 136[] to its [accent]mod.json[] file.
+mod.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 = This mod has been manually blacklisted for causing crashes or other issues with this version of the game. Do not use it.
-mod.missingdependencies.details = This mod is missing dependencies: {0}
-mod.erroredcontent.details = This game caused errors when loading. Ask the mod author to fix them.
-mod.circulardependencies.details = This mod has dependencies that depends on each other.
-mod.incompletedependencies.details = This mod is unable to be loaded due to invalid or missing dependencies: {0}.
-mod.requiresversion = Requires game version: [red]{0}
+mod.missingdependencies.details = Šiai modifikacijai trūksta priklausomybių: {0}
+mod.erroredcontent.details = Ši modifikacija kraunant sukėlė klaidų. Paprašykite modifikacijos autoriaus pataisyti jas.
+mod.circulardependencies.details = Ši modifikacija turi priklausomybių kurios priklauso nuo vieno kito.
+mod.incompletedependencies.details = Šios modifikacijos negalima užkrauti dėl netinkamų arba trūkstamų priklausomybių: {0}.
+mod.requiresversion = Reikia žaidimo versijos: [red]{0}
mod.errors = Įvyko klaida kraunant turinį.
mod.noerrorplay = [scarlet]Turite modifikacijas su klaidomis.[] Išjunkite modifikacijas su klaidomis arba patasykite jas prieš žaidžiant.
-mod.nowdisabled = [scarlet]Modifikacijai '{0}' trūksta priklausomybių:[accent] {1}\n[lightgray] Šios modifikacijos turi būti atsisiųstos.\nŠi modifikacija bus automatiškai išjungta.
mod.enable = Įjungti
-mod.requiresrestart = Žaidimas dabar išsijungs modifikacijų pakeitimui.
+mod.requiresrestart = Žaidimas dabar išsijungs modifikacijų perkrovimui.
mod.reloadrequired = [scarlet]Privalomas perkrovimas
mod.import = Importuoti modifikaciją
mod.import.file = Importuoti failą
mod.import.github = Importuoti GitHub modifikaciją
-mod.jarwarn = [scarlet]JAR mods are inherently unsafe.[]\nMake sure you're importing this mod from a trustworthy source!
+mod.jarwarn = [scarlet]JAR modifikacijos iš esmės yra nesaugios.[]\nĮsitikinkite, kad importuojate šį modifikaciją iš patikimo šaltinio!
mod.item.remove = Šis elementas yra[accent] '{0}'[] modifikacijos dalis. Norėdami panaikinti ją turite pašalinti modifikaciją.
mod.remove.confirm = Ši modifikacija bus pašalinta.
mod.author = [lightgray]Autorius:[] {0}
@@ -176,25 +176,34 @@ mod.missing = Šis išsaugojimas turi modifikacijas, kurias atnaujinote arba neb
mod.preview.missing = Prieš publikuojant šią modifikaciją workshop'e, jūs privalote pridėti parodamajį vaizdą.\nĮdėktie vaizdą pavadinimu[accent] preview.png[] į modifikacijos aplanką ir bandykite iš naujo.
mod.folder.missing = Tik modifikacijos aplanko formoje gali būti publikuojamos workshop'e.\nNorint konvertuoti bet kurią modifikaciją į aplanką, paprasčiausiai išpakuokite jos failą į aplanką ir ištrinkite senąją zip versiją, po to, perkraukite žaidimą arba modifikacijas.
mod.scripts.disable = Your device does not support mods with scripts. You must disable these mods to play the game.
+mod.dependencies.error = [scarlet]Mods are missing dependencies
+mod.dependencies.soft = (optional)
+mod.dependencies.download = Import
+mod.dependencies.downloadreq = Import Required
+mod.dependencies.downloadall = Import All
+mod.dependencies.status = Import Results
+mod.dependencies.success = Successfully downloaded:
+mod.dependencies.failure = Failed to download:
+mod.dependencies.imported = This mod requires dependencies. Download?
about.button = Apie
name = Vardas:
noname = Pirma pasirinkite[accent] žaidėjo vardą[].
-search = Search:
-planetmap = Planet Map
-launchcore = Launch Core
+search = Ieškoti:
+planetmap = Planetų žemėlaipis
+launchcore = Paleisti branduolį
filename = Failo pavadinimas:
unlocked = Atrakintas naujas turinys!
-available = New research available!
-unlock.incampaign = < Unlock in campaign for details >
-campaign.select = Select Starting Campaign
-campaign.none = [lightgray]Select a planet to start on.\nThis can be switched at any time.
-campaign.erekir = Newer, more polished content. Mostly linear campaign progression.\n\nHigher quality maps and overall experience.
-campaign.serpulo = Older content; the classic experience. More open-ended.\n\nPotentially unbalanced maps and campaign mechanics. Less polished.
+available = Naujas turinys pasiekiamas!
+unlock.incampaign = < Atrakinkite kampanijoje detalėm >
+campaign.select = Pasirinkite pradinę kampanija
+campaign.none = [lightgray]Pasirinkite planetą ant kurios pradėti.\nTai gali būti pakeista bet kada.
+campaign.erekir = Naujesnis, patobulintas turinys. Daugiausia linijinė kampanijos eiga.\n\nAukštesnės kokybės žemėlapiai ir bendra patirtis.
+campaign.serpulo = Senesnis turinys; klasikinė versija. Atviresnis.\n\nPotencialiai nebalancuoti žemelapiai ir kampanijos mechanika. Mažiau tobulinta.
campaign.difficulty = Difficulty
completed = [accent]Išrasta
techtree = Technologijų Medis
-techtree.select = Tech Tree Selection
+techtree.select = Technologijų Medį parinkti
techtree.serpulo = Serpulo
techtree.erekir = Erekir
research.load = Load
@@ -202,11 +211,11 @@ research.discard = Discard
research.list = [lightgray]Išradimai:
research = Išrasti
researched = [lightgray]{0} išrasta.
-research.progress = {0}% complete
+research.progress = {0}% baigta
players = {0} žaidėjai
players.single = {0} žaidėjas
players.search = ieškoti
-players.notfound = [gray]no players found
+players.notfound = [gray]žaidėjų nerasta
server.closing = [accent]Uždaromas serveris...
server.kicked.kick = Jūs buvote išmestas iš serverio!
server.kicked.whitelist = Jūs nesate baltajame sąraše.
@@ -244,10 +253,10 @@ servers.local.steam = Open Games & Local Servers
servers.remote = Nuotoliniai Serveriai
servers.global = Globalūs Serveriai
servers.disclaimer = Community servers are [accent]not[] owned or controlled by the developer.\n\nServers may contain user-generated content that is not appropriate for all ages.
-servers.showhidden = Show Hidden Servers
-server.shown = Shown
-server.hidden = Hidden
-viewplayer = Viewing Player: [accent]{0}
+servers.showhidden = Rodyti paslėtus serverius
+server.shown = Rodoma
+server.hidden = Paslėpta
+viewplayer = Stebimas žaidėjas: [accent]{0}
trace = Sekti Žaidėją
trace.playername = Žaidėjo vardas: [accent]{0}
@@ -256,16 +265,16 @@ trace.id = Unikalus ID: [accent]{0}
trace.language = Language: [accent]{0}
trace.mobile = Mobilus Klientas: [accent]{0}
trace.modclient = Custom Client: [accent]{0}
-trace.times.joined = Times Joined: [accent]{0}
-trace.times.kicked = Times Kicked: [accent]{0}
+trace.times.joined = Sykių prisijungta: [accent]{0}
+trace.times.kicked = Sykių išmesta: [accent]{0}
trace.ips = IPs:
-trace.names = Names:
+trace.names = Vardai:
invalidid = Netaisyklingas kliento ID! Praneškite apie klaidą.
-player.ban = Ban
-player.kick = Kick
-player.trace = Trace
-player.admin = Toggle Admin
-player.team = Change Team
+player.ban = Baninti
+player.kick = Išmesti
+player.trace = Sekti
+player.admin = Perjungti admininistratorių
+player.team = Keisti komandą
server.bans = Užblokavimai
server.bans.none = Nerasta užblokuotų žaidėjų!
server.admins = Administratoriai
@@ -291,6 +300,7 @@ disconnect.error = Prisijungimo klaida.
disconnect.closed = Prisijungimas uždarytas.
disconnect.timeout = Baigėsi laikas.
disconnect.data = Nepavyko užkrauti pasaulio informacijos!
+disconnect.snapshottimeout = Timed out while receiving UDP snapshots.\nThis may be caused by an unstable network or connection.
cantconnect = Negalima prisijungti prie žaidimo ([accent]{0}[]).
connecting = [accent]Prisijungiama...
reconnecting = [accent]Reconnecting...
@@ -301,7 +311,7 @@ server.error.addressinuse = [scarlet]Failed to open server on port 6567.[]\n\nMa
server.error = [crimson]Įvyko klaida.
save.new = Naujas Išsaugojimas
save.overwrite = Ar esate tikras, jog\n norite perrašyti šį elementą?
-save.nocampaign = Individual save files from the campaign cannot be imported.
+save.nocampaign = Individualūs išsaugojimo failai iš kampanijos negali būti importuoti.
overwrite = Perrašyti
save.none = Nerasta jokių išsaugojimų!
savefail = Nepavyko išsaugoti žaidimo!
@@ -459,6 +469,7 @@ editor.shiftx = Shift X
editor.shifty = Shift Y
workshop = Dirbtuvė
waves.title = Bangos
+waves.team = Team
waves.remove = Panaikinti
waves.every = kiekvieną
waves.waves = banga(os)
@@ -706,14 +717,18 @@ loadout = Loadout
resources = Resources
resources.max = Max
bannedblocks = Uždrausti blokai
+unbannedblocks = Unbanned Blocks
objectives = Objectives
bannedunits = Banned Units
+unbannedunits = Unbanned Units
bannedunits.whitelist = Banned Units As Whitelist
bannedblocks.whitelist = Banned Blocks As Whitelist
addall = Pridėti visus
launch.from = Launching From: [accent]{0}
launch.capacity = Launching Item Capacity: [accent]{0}
launch.destination = Destination: {0}
+landing.sources = Source Sectors: [accent]{0}[]
+landing.import = Max Total Import: {0}[accent]{1}[lightgray]/min
configure.invalid = Kiekis turi būti numeris tarp 0 ir {0}.
add = Pridėti...
guardian = Guardian
@@ -752,7 +767,9 @@ sectors.stored = Stored:
sectors.resume = Resume
sectors.launch = Launch
sectors.select = Select
+sectors.launchselect = Select Launch Destination
sectors.nonelaunch = [lightgray]none (sun)
+sectors.redirect = Redirect Launch Pads
sectors.rename = Rename Sector
sectors.enemybase = [scarlet]Enemy Base
sectors.vulnerable = [scarlet]Vulnerable
@@ -783,6 +800,10 @@ difficulty.easy = Easy
difficulty.normal = Normal
difficulty.hard = Hard
difficulty.eradication = Eradication
+difficulty.enemyHealthMultiplier = Enemy Health: {0}
+difficulty.enemySpawnMultiplier = Enemy Amount: {0}
+difficulty.waveTimeMultiplier = Wave Timer: {0}
+difficulty.nomodifiers = [lightgray](No modifiers)
planets = Planets
planet.serpulo.name = Serpulo
@@ -1012,6 +1033,7 @@ stat.buildspeedmultiplier = Build Speed Multiplier
stat.reactive = Reacts
stat.immunities = Immunities
stat.healing = Healing
+stat.efficiency = [stat]{0}% Efficiency
ability.forcefield = Force Field
ability.forcefield.description = Projects a force shield that absorbs bullets
@@ -1059,6 +1081,7 @@ ability.stat.buildtime = [stat]{0} sec[lightgray] build time
bar.onlycoredeposit = Only Core Depositing Allowed
bar.drilltierreq = Privalomas Geresnis Grąžtas
+bar.nobatterypower = Insufficieny Battery Power
bar.noresources = Missing Resources
bar.corereq = Core Base Required
bar.corefloor = Core Zone Tile Required
@@ -1067,6 +1090,7 @@ bar.drillspeed = Grąžto Greitis: {0}/s
bar.pumpspeed = Pompos Greitis: {0}/s
bar.efficiency = Efektyvumas: {0}%
bar.boost = Boost: +{0}%
+bar.powerbuffer = Battery Power: {0}/{1}
bar.powerbalance = Energija: {0}/s
bar.powerstored = Sukaupta: {0}/{1}
bar.poweramount = Energija: {0}
@@ -1077,6 +1101,7 @@ bar.capacity = Talpumas: {0}
bar.unitcap = {0} {1}/{2}
bar.liquid = Skystis
bar.heat = Karščiai
+bar.cooldown = Cooldown
bar.instability = Instability
bar.heatamount = Heat: {0}
bar.heatpercent = Heat: {0} ({1}%)
@@ -1101,6 +1126,7 @@ bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
bullet.frags = [stat]{0}[lightgray]x frag bullets:
bullet.lightning = [stat]{0}[lightgray]x lightning ~ [stat]{1}[lightgray] damage
bullet.buildingdamage = [stat]{0}%[lightgray] building damage
+bullet.shielddamage = [stat]{0}%[lightgray] shield damage
bullet.knockback = [stat]{0}[lightgray] numušimas
bullet.pierce = [stat]{0}[lightgray]x pierce
bullet.infinitepierce = [stat]pierce
@@ -1127,6 +1153,7 @@ unit.minutes = mins
unit.persecond = /sek.
unit.perminute = /min
unit.timesspeed = x greičio
+unit.multiplier = x
unit.percent = %
unit.shieldhealth = shield health
unit.items = daiktai
@@ -1203,11 +1230,13 @@ setting.mutemusic.name = Nutildyti Muziką
setting.sfxvol.name = SFX Garsumas
setting.mutesound.name = Nutildyti Garsus
setting.crashreport.name = Siųsti Anoniminius Strigties Pranešimus
+setting.communityservers.name = Fetch Community Server List
setting.savecreate.name = Automatiškai Kurti Išsaugojimus
setting.steampublichost.name = Public Game Visibility
setting.playerlimit.name = Žaidėjų Limitas
setting.chatopacity.name = Pokalbių Lentos Nepermatomumas
setting.lasersopacity.name = Elektros Tinklo Nepermatomumas
+setting.unitlaseropacity.name = Unit Mining Beam Opacity
setting.bridgeopacity.name = Tilto Nepermatomumas
setting.playerchat.name = Rodyti Pokalbių Teksto Burbulus Virš Žaidėjų
setting.showweather.name = Show Weather Graphics
@@ -1216,6 +1245,9 @@ setting.macnotch.name = Pritaikykite sąsają, kad būtų rodoma įpjova
setting.macnotch.description = Norint pritaikyti pakeitimus, reikia paleisti iš naujo
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.
public.beta = Įsiminkite, jog beta versijoje negalima sukrti viešų kambarių.
uiscale.reset = UI mastelis buvo pakeistas.\nSpauskite "GERAI", norėdami palikti šį mastelį.\n[scarlet]Atšaukiama ir išeinama po[accent] {0}[] sekundžių...
uiscale.cancel = Atšaukti ir Išeiti
@@ -1296,6 +1328,7 @@ keybind.shoot.name = Šauti
keybind.zoom.name = Keisti Vaizdo Mastelį
keybind.menu.name = Meniu
keybind.pause.name = Sustabdyti
+keybind.skip_wave.name = Skip Wave
keybind.pause_building.name = Sustabdyti/Tęsti Statymą
keybind.minimap.name = Mini Žemėlapis
keybind.planet_map.name = Planet Map
@@ -1363,12 +1396,14 @@ rules.unitcostmultiplier = Unit Cost Multiplier
rules.unithealthmultiplier = Vienetų Gyvybių Daugiklis
rules.unitdamagemultiplier = Vienetų Žalos Daugiklis
rules.unitcrashdamagemultiplier = Unit Crash Damage Multiplier
+rules.unitminespeedmultiplier = Unit Mine Speed Multiplier
rules.solarmultiplier = Solar Power Multiplier
rules.unitcapvariable = Cores Contribute To Unit Cap
rules.unitpayloadsexplode = Carried Payloads Explode With The Unit
rules.unitcap = Base Unit Cap
rules.limitarea = Limit Map Area
rules.enemycorebuildradius = Nestatymo aplink priešų branduolį spindulys:[lightgray] (blokais)
+rules.extracorebuildradius = Extra No-Build Radius:[lightgray] (tiles)
rules.wavespacing = Tarpai Tarp Bangų:[lightgray] (sek.)
rules.initialwavespacing = Initial Wave Spacing:[lightgray] (sec)
rules.buildcostmultiplier = Statymo Kainų Daugiklis
@@ -1391,6 +1426,9 @@ rules.title.planet = Planet
rules.lighting = Apšvietimas
rules.fog = Fog of War
rules.invasions = Enemy Sector Invasions
+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.fire = Fire
@@ -1707,6 +1745,8 @@ block.meltdown.name = Meltdown
block.foreshadow.name = Foreshadow
block.container.name = Talpykla
block.launch-pad.name = Paleidimo Aikštelė
+block.advanced-launch-pad.name = Launch Pad
+block.landing-pad.name = Landing Pad
block.segment.name = Segment
block.ground-factory.name = Ground Factory
block.air-factory.name = Air Factory
@@ -1762,6 +1802,8 @@ block.arkyic-vent.name = Arkyic Vent
block.yellow-stone-vent.name = Yellow Stone Vent
block.red-stone-vent.name = Red Stone Vent
block.crystalline-vent.name = Crystalline Vent
+block.stone-vent.name = Stone Vent
+block.basalt-vent.name = Basalt Vent
block.redmat.name = Redmat
block.bluemat.name = Bluemat
block.core-zone.name = Core Zone
@@ -1892,9 +1934,9 @@ block.flux-reactor.name = Flux Reactor
block.neoplasia-reactor.name = Neoplasia Reactor
block.switch.name = Switch
-block.micro-processor.name = Micro Processor
-block.logic-processor.name = Logic Processor
-block.hyper-processor.name = Hyper Processor
+block.micro-processor.name = Mikro Procesorius
+block.logic-processor.name = Loginis Procesorius
+block.hyper-processor.name = Hiper Procesorius
block.logic-display.name = Logic Display
block.large-logic-display.name = Large Logic Display
block.memory-cell.name = Memory Cell
@@ -1915,77 +1957,77 @@ hint.respawn = To respawn as a ship, press [accent][[V][].
hint.respawn.mobile = You have switched control to a unit/structure. To respawn as a ship, [accent]tap the avatar in the top left.[]
hint.desktopPause = Press [accent][[Space][] to pause and unpause the game.
hint.breaking = [accent]Right-click[] and drag to break blocks.
-hint.breaking.mobile = Activate the \ue817 [accent]hammer[] in the bottom right and tap to break blocks.\n\nHold down your finger for a second and drag to break in a selection.
+hint.breaking.mobile = Activate the :hammer: [accent]hammer[] in the bottom right and tap to break blocks.\n\nHold down your finger for a second and drag to break in a selection.
hint.blockInfo = View information of a block by selecting it in the [accent]build menu[], then selecting the [accent][[?][] button at the right.
hint.derelict = [accent]Derelict[] structures are broken remnants of old bases that no longer function.\n\nThese structures can be [accent]deconstructed[] for resources.
-hint.research = Use the \ue875 [accent]Research[] button to research new technology.
-hint.research.mobile = Use the \ue875 [accent]Research[] button in the \ue88c [accent]Menu[] to research new technology.
+hint.research = Use the :tree: [accent]Research[] button to research new technology.
+hint.research.mobile = Use the :tree: [accent]Research[] button in the :menu: [accent]Menu[] to research new technology.
hint.unitControl = Hold [accent][[L-ctrl][] and [accent]click[] to control friendly units or turrets.
hint.unitControl.mobile = [accent][[Double-tap][] to control friendly units or turrets.
hint.unitSelectControl = To control units, enter [accent]command mode[] by holding [accent]L-shift.[]\nWhile in command mode, click and drag to select units. [accent]Right-click[] a location or target to command units there.
hint.unitSelectControl.mobile = To control units, enter [accent]command mode[] by pressing the [accent]command[] button in the bottom left.\nWhile in command mode, long-press and drag to select units. Tap a location or target to command units there.
-hint.launch = Once enough resources are collected, you can [accent]Launch[] by selecting nearby sectors from the \ue827 [accent]Map[] in the bottom right.
-hint.launch.mobile = Once enough resources are collected, you can [accent]Launch[] by selecting nearby sectors from the \ue827 [accent]Map[] in the \ue88c [accent]Menu[].
+hint.launch = Once enough resources are collected, you can [accent]Launch[] by selecting nearby sectors from the :map: [accent]Map[] in the bottom right.
+hint.launch.mobile = Once enough resources are collected, you can [accent]Launch[] by selecting nearby sectors from the :map: [accent]Map[] in the :menu: [accent]Menu[].
hint.schematicSelect = Hold [accent][[F][] and drag to select blocks to copy and paste.\n\n[accent][[Middle Click][] to copy a single block type.
hint.rebuildSelect = Hold [accent][[B][] and drag to select destroyed block plans.\nThis will rebuild them automatically.
-hint.rebuildSelect.mobile = Select the \ue874 copy button, then tap the \ue80f rebuild button and drag to select destroyed block plans.\nThis will rebuild them automatically.
+hint.rebuildSelect.mobile = Select the :copy: copy button, then tap the :wrench: rebuild button and drag to select destroyed block plans.\nThis will rebuild them automatically.
hint.conveyorPathfind = Hold [accent][[L-Ctrl][] while dragging conveyors to automatically generate a path.
-hint.conveyorPathfind.mobile = Enable \ue844 [accent]diagonal mode[] and drag conveyors to automatically generate a path.
+hint.conveyorPathfind.mobile = Enable :diagonal: [accent]diagonal mode[] and drag conveyors to automatically generate a path.
hint.boost = Hold [accent][[L-Shift][] to fly over obstacles with your current unit.\n\nOnly a few ground units have boosters.
hint.payloadPickup = Press [accent][[[] to pick up small blocks or units.
hint.payloadPickup.mobile = [accent]Tap and hold[] a small block or unit to pick it up.
hint.payloadDrop = Press [accent]][] to drop a payload.
hint.payloadDrop.mobile = [accent]Tap and hold[] an empty location to drop a payload there.
hint.waveFire = [accent]Wave[] turrets with water as ammunition will automatically put out nearby fires.
-hint.generator = \uf879 [accent]Combustion Generators[] burn coal and transmit power to adjacent blocks.\n\nPower transmission range can be extended with \uf87f [accent]Power Nodes[].
-hint.guardian = [accent]Guardian[] units are armored. Weak ammo such as [accent]Copper[] and [accent]Lead[] is [scarlet]not effective[].\n\nUse higher tier turrets or \uf835 [accent]Graphite[] \uf861Duo/\uf859Salvo ammunition to take Guardians down.
-hint.coreUpgrade = Cores can be upgraded by [accent]placing higher-tier cores over them[].\n\nPlace a \uf868 [accent]Foundation[] core over the \uf869 [accent]Shard[] core. Make sure it is free from nearby obstructions.
+hint.generator = :combustion-generator: [accent]Combustion Generators[] burn coal and transmit power to adjacent blocks.\n\nPower transmission range can be extended with :power-node: [accent]Power Nodes[].
+hint.guardian = [accent]Guardian[] units are armored. Weak ammo such as [accent]Copper[] and [accent]Lead[] is [scarlet]not effective[].\n\nUse higher tier turrets or :graphite: [accent]Graphite[] :duo:Duo/:salvo:Salvo ammunition to take Guardians down.
+hint.coreUpgrade = Cores can be upgraded by [accent]placing higher-tier cores over them[].\n\nPlace a :core-foundation: [accent]Foundation[] core over the :core-shard: [accent]Shard[] core. Make sure it is free from nearby obstructions.
hint.presetLaunch = Gray [accent]landing zone sectors[], such as [accent]Frozen Forest[], can be launched to from anywhere. They do not require capture of nearby territory.\n\n[accent]Numbered sectors[], such as this one, are [accent]optional[].
hint.presetDifficulty = This sector has a [scarlet]high enemy threat level[].\nLaunching to such sectors is [accent]not recommended[] without proper technology and preparation.
hint.coreIncinerate = After the core is filled to capacity with an item, any extra items of that type it receives will be [accent]incinerated[].
hint.factoryControl = To set a unit factory's [accent]output destination[], click a factory block while in command mode, then right-click a location.\nUnits produced by it will automatically move there.
hint.factoryControl.mobile = To set a unit factory's [accent]output destination[], tap a factory block while in command mode, then tap a location.\nUnits produced by it will automatically move there.
-gz.mine = Move near the \uf8c4 [accent]copper ore[] on the ground and click to begin mining.
-gz.mine.mobile = Move near the \uf8c4 [accent]copper ore[] on the ground and tap it to begin mining.
-gz.research = Open the \ue875 tech tree.\nResearch the \uf870 [accent]Mechanical Drill[], then select it from the menu in the bottom right.\nClick on a copper patch to place it.
-gz.research.mobile = Open the \ue875 tech tree.\nResearch the \uf870 [accent]Mechanical Drill[], then select it from the menu in the bottom right.\nTap on a copper patch to place it.\n\nPress the \ue800 [accent]checkmark[] at the bottom right to confirm.
-gz.conveyors = Research and place \uf896 [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nClick and drag to place multiple conveyors.\n[accent]Scroll[] to rotate.
-gz.conveyors.mobile = Research and place \uf896 [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nHold down your finger for a second and drag to place multiple conveyors.
+gz.mine = Move near the :ore-copper: [accent]copper ore[] on the ground and click to begin mining.
+gz.mine.mobile = Move near the :ore-copper: [accent]copper ore[] on the ground and tap it to begin mining.
+gz.research = Open the :tree: tech tree.\nResearch the :mechanical-drill: [accent]Mechanical Drill[], then select it from the menu in the bottom right.\nClick on a copper patch to place it.
+gz.research.mobile = Open the :tree: tech tree.\nResearch the :mechanical-drill: [accent]Mechanical Drill[], then select it from the menu in the bottom right.\nTap on a copper patch to place it.\n\nPress the \ue800 [accent]checkmark[] at the bottom right to confirm.
+gz.conveyors = Research and place :conveyor: [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nClick and drag to place multiple conveyors.\n[accent]Scroll[] to rotate.
+gz.conveyors.mobile = Research and place :conveyor: [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nHold down your finger for a second and drag to place multiple conveyors.
gz.drills = Expand the mining operation.\nPlace more Mechanical Drills.\nMine 100 copper.
-gz.lead = \uf837 [accent]Lead[] is another commonly used resource.\nSet up drills to mine lead.
-gz.moveup = \ue804 Move up for further objectives.
-gz.turrets = Research and place 2 \uf861 [accent]Duo[] turrets to defend the core.\nDuo turrets require \uf838 [accent]ammo[] from conveyors.
+gz.lead = :lead: [accent]Lead[] is another commonly used resource.\nSet up drills to mine lead.
+gz.moveup = :up: Move up for further objectives.
+gz.turrets = Research and place 2 :duo: [accent]Duo[] turrets to defend the core.\nDuo turrets require \uf838 [accent]ammo[] from conveyors.
gz.duoammo = Supply the Duo turrets with [accent]copper[], using conveyors.
-gz.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace \uf8ae [accent]copper walls[] around the turrets.
+gz.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace :copper-wall: [accent]copper walls[] around the turrets.
gz.defend = Enemy incoming, prepare to defend.
-gz.aa = Flying units cannot easily be dispatched with standard turrets.\n\uf860 [accent]Scatter[] turrets provide excellent anti-air, but require \uf837 [accent]lead[] as ammo.
+gz.aa = Flying units cannot easily be dispatched with standard turrets.\n:scatter: [accent]Scatter[] turrets provide excellent anti-air, but require :lead: [accent]lead[] as ammo.
gz.scatterammo = Supply the Scatter turret with [accent]lead[], using conveyors.
gz.supplyturret = [accent]Supply Turret
gz.zone1 = This is the enemy drop zone.
gz.zone2 = Anything built in the radius is destroyed when a wave starts.
gz.zone3 = A wave will begin now.\nGet ready.
gz.finish = Build more turrets, mine more resources,\nand defend against all the waves to [accent]capture the sector[].
-onset.mine = Click to mine \uf748 [accent]beryllium[] from walls.\n\nUse [accent][[WASD] to move.
-onset.mine.mobile = Tap to mine \uf748 [accent]beryllium[] from walls.
-onset.research = Open the \ue875 tech tree.\nResearch, then place a \uf73e [accent]turbine condenser[] on the vent.\nThis will generate [accent]power[].
-onset.bore = Research and place a \uf741 [accent]plasma bore[].\nThis automatically mines resources from walls.
-onset.power = To [accent]power[] the plasma bore, research and place a \uf73d [accent]beam node[].\nConnect the turbine condenser to the plasma bore.
-onset.ducts = Research and place \uf799 [accent]ducts[] to move the mined resources from the plasma bore to the core.\nClick and drag to place multiple ducts.\n[accent]Scroll[] to rotate.
-onset.ducts.mobile = Research and place \uf799 [accent]ducts[] to move the mined resources from the plasma bore to the core.\n\nHold down your finger for a second and drag to place multiple ducts.
+onset.mine = Click to mine :beryllium: [accent]beryllium[] from walls.\n\nUse [accent][[WASD] to move.
+onset.mine.mobile = Tap to mine :beryllium: [accent]beryllium[] from walls.
+onset.research = Open the :tree: tech tree.\nResearch, then place a :turbine-condenser: [accent]turbine condenser[] on the vent.\nThis will generate [accent]power[].
+onset.bore = Research and place a :plasma-bore: [accent]plasma bore[].\nThis automatically mines resources from walls.
+onset.power = To [accent]power[] the plasma bore, research and place a :beam-node: [accent]beam node[].\nConnect the turbine condenser to the plasma bore.
+onset.ducts = Research and place :duct: [accent]ducts[] to move the mined resources from the plasma bore to the core.\nClick and drag to place multiple ducts.\n[accent]Scroll[] to rotate.
+onset.ducts.mobile = Research and place :duct: [accent]ducts[] to move the mined resources from the plasma bore to the core.\n\nHold down your finger for a second and drag to place multiple ducts.
onset.moremine = Expand the mining operation.\nPlace more Plasma Bores and use beam nodes and ducts to support them.\nMine 200 beryllium.
-onset.graphite = More complex blocks require \uf835 [accent]graphite[].\nSet up plasma bores to mine graphite.
-onset.research2 = Begin researching [accent]factories[].\nResearch the \uf74d [accent]cliff crusher[] and \uf779 [accent]silicon arc furnace[].
-onset.arcfurnace = The arc furnace needs \uf834 [accent]sand[] and \uf835 [accent]graphite[] to create \uf82f [accent]silicon[].\n[accent]Power[] is also required.
-onset.crusher = Use \uf74d [accent]cliff crushers[] to mine sand.
-onset.fabricator = Use [accent]units[] to explore the map, defend buildings, and attack the enemy. Research and place a \uf6a2 [accent]tank fabricator[].
+onset.graphite = More complex blocks require :graphite: [accent]graphite[].\nSet up plasma bores to mine graphite.
+onset.research2 = Begin researching [accent]factories[].\nResearch the :cliff-crusher: [accent]cliff crusher[] and :silicon-arc-furnace: [accent]silicon arc furnace[].
+onset.arcfurnace = The arc furnace needs :sand: [accent]sand[] and :graphite: [accent]graphite[] to create :silicon: [accent]silicon[].\n[accent]Power[] is also required.
+onset.crusher = Use :cliff-crusher: [accent]cliff crushers[] to mine sand.
+onset.fabricator = Use [accent]units[] to explore the map, defend buildings, and attack the enemy. Research and place a :tank-fabricator: [accent]tank fabricator[].
onset.makeunit = Produce a unit.\nUse the "?" button to see selected factory requirements.
-onset.turrets = Units are effective, but [accent]turrets[] provide better defensive capabilities if used effectively.\nPlace a \uf6eb [accent]Breach[] turret.\nTurrets require \uf748 [accent]ammo[].
+onset.turrets = Units are effective, but [accent]turrets[] provide better defensive capabilities if used effectively.\nPlace a :breach: [accent]Breach[] turret.\nTurrets require :beryllium: [accent]ammo[].
onset.turretammo = Supply the turret with [accent]beryllium ammo.[]
-onset.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace some \uf6ee [accent]beryllium walls[] around the turret.
+onset.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace some :beryllium-wall: [accent]beryllium walls[] around the turret.
onset.enemies = Enemy incoming, prepare to defend.
onset.defenses = [accent]Set up defenses:[lightgray] {0}
onset.attack = The enemy is vulnerable. Counter-attack.
-onset.cores = New cores can be placed on [accent]core tiles[].\nNew cores function as forward bases and share a resource inventory with other cores.\nPlace a \uf725 core.
+onset.cores = New cores can be placed on [accent]core tiles[].\nNew cores function as forward bases and share a resource inventory with other cores.\nPlace a :core-bastion: core.
onset.detect = The enemy will be able to detect you in 2 minutes.\nSet up defenses, mining, and production.
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.
@@ -2145,7 +2187,9 @@ block.vault.description = Laiko didelį kiekį skirtingų rūšių medžiagų. G
block.container.description = Laiko nedidelį kiekį skirtingų rūšių medžiagų. Gali būti naudojamas iškroviklis daiktų paėmimui iš talpyklos.
block.unloader.description = Paima resursus iš gretimų ne gabenimui skirtų pastatų. Paimamos medžiagos rūšis gali būti pakeista paspaudus ant iškroviklio.
block.launch-pad.description = Paleidžia daiktų paketus be branduolio paleidimo.
-block.launch-pad.details = Sub-orbital system for point-to-point transportation of resources. Payload pods are fragile and incapable of surviving re-entry.
+block.advanced-launch-pad.description = Launches batches of items to selected sectors. Only accepts one item type at a time.
+block.advanced-launch-pad.details = Sub-orbital system for point-to-point transportation of resources.
+block.landing-pad.description = Receives items from launch pads in other sectors. Requires large amounts of water to protect against impacts of landings.
block.duo.description = Mažas ir pigus bokštas. Naudingas prieš antžeminius vienetus.
block.scatter.description = Pagrindinis bokštas skirtas kovai su oro pajėgomis. Šaudo švino arba metalo laužo gabalais į priešus.
block.scorch.description = Degina visus netoliese esančius priešus. Itin efektyvus artimame nuotolyje.
@@ -2252,6 +2296,7 @@ block.unit-cargo-loader.description = Constructs cargo drones. Drones automatica
block.unit-cargo-unload-point.description = Acts as an unloading point for cargo drones. Accepts items that match the selected filter.
block.beam-node.description = Transmits power to other blocks orthogonally. Stores a small amount of power.
block.beam-tower.description = Transmits power to other blocks orthogonally. Stores a large amount of power. Long-range.
+block.beam-link.description = Transmits power over vast distances.\nOnly capable of connecting to adjacent structures or other beam links.
block.turbine-condenser.description = Generates power when placed on vents. Produces a small amount of water.
block.chemical-combustion-chamber.description = Generates power from arkycite and ozone.
block.pyrolysis-generator.description = Generates large amounts of power from arkycite and slag. Produces water as a byproduct.
@@ -2340,6 +2385,7 @@ unit.emanate.description = Builds structures to defend the Acropolis core. Repai
lst.read = Read a number from a linked memory cell.
lst.write = Write a number to a linked memory cell.
lst.print = Add text to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used.
+lst.printchar = Add a UTF-16 character or content icon to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used.
lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example"
lst.draw = Add an operation to the drawing buffer.\nDoes not display anything until [accent]Draw Flush[] is used.
lst.drawflush = Flush queued [accent]Draw[] operations to a display.
@@ -2425,12 +2471,14 @@ lenum.shootp = Shoot at a unit/building with velocity prediction.
lenum.config = Building configuration, e.g. sorter item.
lenum.enabled = Whether the block is enabled.
laccess.currentammotype = Current ammo item/liquid of a turret.
+laccess.memorycapacity = Number of cells in a memory block.
laccess.color = Illuminator color.
laccess.controller = Unit controller. If processor controlled, returns processor.\nIf in a formation, returns leader.\nOtherwise, returns the unit itself.
laccess.dead = Whether a unit/building is dead or no longer valid.
laccess.controlled = Returns:\n[accent]@ctrlProcessor[] if unit controller is processor\n[accent]@ctrlPlayer[] if unit/building controller is player\n[accent]@ctrlFormation[] if unit is in formation\nOtherwise, 0.
laccess.progress = Action progress, 0 to 1.\nReturns production, turret reload or construction progress.
laccess.speed = Top speed of a unit, in tiles/sec.
+laccess.size = Size of a unit/building or the length of a string.
laccess.id = ID of a unit/block/item/liquid.\nThis is the inverse of the lookup operation.
lcategory.unknown = Unknown
lcategory.unknown.description = Uncategorized instructions.
@@ -2559,3 +2607,29 @@ lenum.autoscale = Whether to scale marker corresponding to player's zoom level.
lenum.posi = Indexed position, used for line and quad markers with index zero being the first position.
lenum.uvi = Texture's position ranging from zero to one, used for quad markers.
lenum.colori = Indexed position, used for line and quad markers with index zero being the first color.
+lenum.wavetimer = Whether the waves come automatically on a timer. If not, waves come when the play button is pressed.
+lenum.wave = Current wave number. Can be anything in non-wave modes.
+lenum.currentwavetime = Wave countdown in ticks.
+lenum.waves = Whether waves are spawnable at all.
+lenum.wavesending = Whether the waves can be manually summoned with the play button.
+lenum.attackmode = Determines if gamemode is attack mode.
+lenum.wavespacing = Time between waves in ticks.
+lenum.enemycorebuildradius = No-build zone around enemy core radius.
+lenum.dropzoneradius = Radius around enemy wave drop zones.
+lenum.unitcap = Base unit cap. Can still be increased by blocks.
+lenum.lighting = Whether ambient lighting is enabled.
+lenum.buildspeed = Multiplier for building speed.
+lenum.unithealth = How much health units start with.
+lenum.unitbuildspeed = How fast unit factories build units.
+lenum.unitcost = Multiplier of resources that units take to build.
+lenum.unitdamage = How much damage units deal.
+lenum.blockhealth = How much health blocks start with.
+lenum.blockdamage = How much damage blocks (turrets) deal.
+lenum.rtsminweight = Minimum "advantage" needed for a squad to attack. Higher -> more cautious.
+lenum.rtsminsquad = Minimum size of attack squads.
+lenum.maparea = Playable map area. Anything outside the area will not be interactable.
+lenum.ambientlight = Ambient light color. Used when lighting is enabled.
+lenum.solarmultiplier = Multiplies power output of solar panels.
+lenum.dragmultiplier = Environment drag multiplier.
+lenum.ban = Blocks or units that cannot be placed or built.
+lenum.unban = Unban a unit or block.
diff --git a/core/assets/bundles/bundle_nl.properties b/core/assets/bundles/bundle_nl.properties
index 4832104d11..df546ed611 100644
--- a/core/assets/bundles/bundle_nl.properties
+++ b/core/assets/bundles/bundle_nl.properties
@@ -131,6 +131,7 @@ feature.unsupported = Je apparaat ondersteunt deze functionaliteit niet.
mods.initfailed = [red]?[] De vorige Mindustry instantie faalde te initialiseren. Dit werd waarschijnlijk veroorzaakt door misdragende mods.\n\nOm een crash loop te voorkomen, zijn [red]alle mods uitgeschakeld.[]
mods = Mods
+mods.name = Mod:
mods.none = [lightgray]Geen mods gevonden!
mods.guide = Handboek voor modding
mods.report = Rapporteer Bug
@@ -157,7 +158,7 @@ mod.circulardependencies = [red]Circular Dependencies
mod.incompletedependencies = [red]Incomplete Dependencies
mod.requiresversion.details = Vereist spelversie: [accent]{0}[]\nJouw spel is verouderd. Deze mod heeft een nieuwere versie van de game nodig (mogelijk een beta/alpha release) om te functioneren.
-mod.outdatedv7.details = Deze mod is onverenigbaar met de nieuwste versie van het spel. De auteur moet het updaten en [accent]minGameVersion: 136[] toevoegen aan zijn/haar [accent]mod.json[] bestand.
+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 = Deze mod is handmatig op de zwarte lijst gezet wegens het veroorzaken van crashes of andere problemen met deze versie van het spel. Gebruik het niet.
mod.missingdependencies.details = Deze mod mist afhankelijkheden: {0}
mod.erroredcontent.details = Deze mod veroorzaakte fouten tijdens het laden. Vraag de auteur van de mod om ze te op te lossen.
@@ -168,7 +169,6 @@ mod.requiresversion = Vereist spelversie: [red]{0}
mod.errors = Er hebben zich fouten voordaan tijdens het laden van de inhoud.
mod.noerrorplay = [red]Je mods bevatten fouten.[] Zet de mods uit of los de problemen op voordat je verder gaat met spelen.
-mod.nowdisabled = [red]Mod '{0}' mist een aantal benodigdheden:[accent] {1}\n[lightgray]Deze moet je eerst zelf downloaden.\nDeze mod is nu voor je uitgezet.
mod.enable = Activeer
mod.requiresrestart = Het spel zal nu afsluiten om de veranderingen aan de mods door te voeren.
mod.reloadrequired = [scarlet]Herstart Vereist
@@ -183,6 +183,15 @@ mod.missing = Deze Save bevat mods die zijn geupdatet of die je niet meer hebt g
mod.preview.missing = Voordat je je mod publiceert in de workshop moet je een thumbnail toevoegen.\nPlaats een afbeelding genaamd[accent] preview.png[] in de folder van die mod en probeer het opnieuw.
mod.folder.missing = Alleen mods in folder formaat kunnen worden gepubliceerd in de werkplaats.\nOm een mod om te zetten in een folder, unzip de mod en verwijder de zip, herstart dan het spel of herlaad de mods.
mod.scripts.disable = Uw apparaat ondersteunt geen mods met scripts. Je moet deze mods uitschakelen om het spel te kunnen spelen.
+mod.dependencies.error = [scarlet]Mods are missing dependencies
+mod.dependencies.soft = (optional)
+mod.dependencies.download = Import
+mod.dependencies.downloadreq = Import Required
+mod.dependencies.downloadall = Import All
+mod.dependencies.status = Import Results
+mod.dependencies.success = Successfully downloaded:
+mod.dependencies.failure = Failed to download:
+mod.dependencies.imported = This mod requires dependencies. Download?
about.button = Over
name = Naam:
@@ -299,6 +308,7 @@ disconnect.error = Verbindingsfout.
disconnect.closed = Verbinding gestopt.
disconnect.timeout = Verbinding afgekapt.
disconnect.data = Kon de wereld niet laden!
+disconnect.snapshottimeout = Timed out while receiving UDP snapshots.\nThis may be caused by an unstable network or connection.
cantconnect = Geen verbinding mogelijk ([accent]{0}[]).
connecting = [accent]Aan het verbinden...
reconnecting = [accent]Aan het herverbinden...
@@ -467,6 +477,7 @@ editor.shiftx = Shift X
editor.shifty = Shift Y
workshop = Werkplaats
waves.title = Rondes
+waves.team = Team
waves.remove = Verwijder
waves.every = elke
waves.waves = ronde(s)
@@ -717,14 +728,18 @@ loadout = Uitrusting
resources = Materialen
resources.max = Max
bannedblocks = Verboden Blokken
+unbannedblocks = Unbanned Blocks
objectives = Doelen
bannedunits = Verboden eenheden
+unbannedunits = Unbanned Units
bannedunits.whitelist = Verboden eenheden als whitelist
bannedblocks.whitelist = Verboden blokken als whitelist
addall = Voeg Alles Toe
launch.from = Lanceren van: [accent]{0}
launch.capacity = Lanceercapaciteit: [accent]{0}
launch.destination = Bestemming: {0}
+landing.sources = Source Sectors: [accent]{0}[]
+landing.import = Max Total Import: {0}[accent]{1}[lightgray]/min
configure.invalid = Hoeveelheid moet een getal zijn tussen 0 en {0}.
add = Voeg toe...
guardian = Bewaker
@@ -763,7 +778,9 @@ sectors.stored = Opgeslagen:
sectors.resume = Doorgaan
sectors.launch = Lanceer
sectors.select = Selecteer
+sectors.launchselect = Select Launch Destination
sectors.nonelaunch = [lightgray]geen (sun)
+sectors.redirect = Redirect Launch Pads
sectors.rename = Hernoem Sector
sectors.enemybase = [scarlet]Vijandelijke Basis
sectors.vulnerable = [scarlet]Kwetsbaar
@@ -794,6 +811,10 @@ difficulty.easy = Easy
difficulty.normal = Normal
difficulty.hard = Hard
difficulty.eradication = Eradication
+difficulty.enemyHealthMultiplier = Enemy Health: {0}
+difficulty.enemySpawnMultiplier = Enemy Amount: {0}
+difficulty.waveTimeMultiplier = Wave Timer: {0}
+difficulty.nomodifiers = [lightgray](No modifiers)
planets = Planeten
planet.serpulo.name = Serpulo
@@ -1024,6 +1045,7 @@ stat.buildspeedmultiplier = Productiesnelheid Vermenigvuldiger
stat.reactive = Reageert
stat.immunities = Immuniteiten
stat.healing = Genezing
+stat.efficiency = [stat]{0}% Efficiency
ability.forcefield = Krachtveld
ability.forcefield.description = Projects a force shield that absorbs bullets
@@ -1071,6 +1093,7 @@ ability.stat.buildtime = [stat]{0} sec[lightgray] build time
bar.onlycoredeposit = Alleen materialen in de Core toegestaan.
bar.drilltierreq = Betere boor nodig
+bar.nobatterypower = Insufficieny Battery Power
bar.noresources = Er ontbreken materialen
bar.corereq = Core Basis Vereist
bar.corefloor = Core Zone Tegel Vereist
@@ -1079,6 +1102,7 @@ bar.drillspeed = Delvingssnelheid: {0}/s
bar.pumpspeed = Pompsnelheid: {0}/s
bar.efficiency = Rendement: {0}%
bar.boost = Boost: +{0}%
+bar.powerbuffer = Battery Power: {0}/{1}
bar.powerbalance = Stroom: {0}
bar.powerstored = Opgeslagen: {0}/{1}
bar.poweramount = Stroom: {0}
@@ -1089,6 +1113,7 @@ bar.capacity = Capaciteit: {0}
bar.unitcap = {0} {1}/{2}
bar.liquid = Vloeistof
bar.heat = Warmte
+bar.cooldown = Cooldown
bar.instability = Instabiliteit
bar.heatamount = Warmte: {0}
bar.heatpercent = Warmte: {0} ({1}%)
@@ -1113,6 +1138,7 @@ bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
bullet.frags = [stat]{0}[lightgray]x fragment kogels:
bullet.lightning = [stat]{0}[lightgray]x bliksem ~ [stat]{1}[lightgray] schade
bullet.buildingdamage = [stat]{0}%[lightgray] gebouwschade
+bullet.shielddamage = [stat]{0}%[lightgray] shield damage
bullet.knockback = [stat]{0}[lightgray] terugslag
bullet.pierce = [stat]{0}[lightgray]x doorboor
bullet.infinitepierce = [stat]doorboor
@@ -1139,6 +1165,7 @@ unit.minutes = minuten
unit.persecond = /sec
unit.perminute = /min
unit.timesspeed = x snelheid
+unit.multiplier = x
unit.percent = %
unit.shieldhealth = levenspunten schild
unit.items = materialen
@@ -1215,11 +1242,13 @@ setting.mutemusic.name = Demp Muziek
setting.sfxvol.name = SFX Volume
setting.mutesound.name = Demp Geluid
setting.crashreport.name = Stuur Anonieme Crashmeldingen
+setting.communityservers.name = Fetch Community Server List
setting.savecreate.name = Bewaar Saves Automatisch
setting.steampublichost.name = Public Game Visibility
setting.playerlimit.name = Spelerslijst
setting.chatopacity.name = Chat Transparantie
setting.lasersopacity.name = Stroomdraad Transparantie
+setting.unitlaseropacity.name = Unit Mining Beam Opacity
setting.bridgeopacity.name = Brug Transparantie
setting.playerchat.name = Toon Chat
setting.showweather.name = Toon Weer Graphics
@@ -1228,6 +1257,9 @@ setting.macnotch.name = Pas de interface aan om de inkeping weer te geven
setting.macnotch.description = Herstart vereist om veranderingen door te voeren
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.
public.beta = Onthoud dat b�ta versies geen publieke lobby's kunnen maken.
uiscale.reset = UI formaat is geweizigd.\nKlik op "OK" om het te bevestigen.\n[scarlet]Anders word het in[accent] {0}[] seconden ongedaan gemaakt...
uiscale.cancel = Annuleer & Sluit
@@ -1308,6 +1340,7 @@ keybind.shoot.name = Schiet
keybind.zoom.name = Zoom
keybind.menu.name = Menu
keybind.pause.name = Pauze
+keybind.skip_wave.name = Skip Wave
keybind.pause_building.name = Pauzeer/Hervat Bouwen
keybind.minimap.name = Minimap
keybind.planet_map.name = Planetenkaart
@@ -1375,12 +1408,14 @@ rules.unitcostmultiplier = Eenheidskosten Vermenigvuldiger
rules.unithealthmultiplier = Eenheid Levenspunten Vermenigvuldiger
rules.unitdamagemultiplier = Eenheid Schade Vermenigvuldiger
rules.unitcrashdamagemultiplier = Unit Crash Damage Multiplier
+rules.unitminespeedmultiplier = Unit Mine Speed Multiplier
rules.solarmultiplier = Zonne-Energie Vermenigvuldiger
rules.unitcapvariable = Cores Dragen Bij Aan Eenheidslimiet
rules.unitpayloadsexplode = Carried Payloads Explode With The Unit
rules.unitcap = Bais Eenheidlimiet
rules.limitarea = Limiteer Kaart Gebied
rules.enemycorebuildradius = Niet-Bouw Bereik Vijandelijke Cores:[lightgray] (tegels)
+rules.extracorebuildradius = Extra No-Build Radius:[lightgray] (tiles)
rules.wavespacing = Tijd Tussen Rondes:[lightgray] (sec)
rules.initialwavespacing = Initi�le Golfafstand:[lightgray] (sec)
rules.buildcostmultiplier = Bouwkosten Vermenigvuldiger
@@ -1403,6 +1438,9 @@ rules.title.planet = Planeet
rules.lighting = Belichting
rules.fog = Mist van de Oorlog
rules.invasions = Enemy Sector Invasions
+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.fire = Vuur
@@ -1719,6 +1757,8 @@ block.meltdown.name = Meltdown
block.foreshadow.name = Foreshadow
block.container.name = Doos
block.launch-pad.name = Lanceerplatform
+block.advanced-launch-pad.name = Launch Pad
+block.landing-pad.name = Landing Pad
block.segment.name = Segment
block.ground-factory.name = Grondfabriek
block.air-factory.name = Luchtfabriek
@@ -1775,6 +1815,8 @@ block.arkyic-vent.name = Arkyic Vent
block.yellow-stone-vent.name = Yellow Stone Vent
block.red-stone-vent.name = Red Stone Vent
block.crystalline-vent.name = Crystalline Vent
+block.stone-vent.name = Stone Vent
+block.basalt-vent.name = Basalt Vent
block.redmat.name = Redmat
block.bluemat.name = Bluemat
block.core-zone.name = Core Zone
@@ -1928,77 +1970,77 @@ hint.respawn = To respawn as a ship, press [accent][[V][].
hint.respawn.mobile = You have switched control to a unit/structure. To respawn as a ship, [accent]tap the avatar in the top left.[]
hint.desktopPause = Press [accent][[Space][] to pause and unpause the game.
hint.breaking = [accent]Right-click[] and drag to break blocks.
-hint.breaking.mobile = Activate the \ue817 [accent]hammer[] in the bottom right and tap to break blocks.\n\nHold down your finger for a second and drag to break in a selection.
+hint.breaking.mobile = Activate the :hammer: [accent]hammer[] in the bottom right and tap to break blocks.\n\nHold down your finger for a second and drag to break in a selection.
hint.blockInfo = View information of a block by selecting it in the [accent]build menu[], then selecting the [accent][[?][] button at the right.
hint.derelict = [accent]Derelict[] structures are broken remnants of old bases that no longer function.\n\nThese structures can be [accent]deconstructed[] for resources.
-hint.research = Use the \ue875 [accent]Research[] button to research new technology.
-hint.research.mobile = Use the \ue875 [accent]Research[] button in the \ue88c [accent]Menu[] to research new technology.
+hint.research = Use the :tree: [accent]Research[] button to research new technology.
+hint.research.mobile = Use the :tree: [accent]Research[] button in the :menu: [accent]Menu[] to research new technology.
hint.unitControl = Hold [accent][[L-ctrl][] and [accent]click[] to control friendly units or turrets.
hint.unitControl.mobile = [accent][[Double-tap][] to control friendly units or turrets.
hint.unitSelectControl = To control units, enter [accent]command mode[] by holding [accent]L-shift.[]\nWhile in command mode, click and drag to select units. [accent]Right-click[] a location or target to command units there.
hint.unitSelectControl.mobile = To control units, enter [accent]command mode[] by pressing the [accent]command[] button in the bottom left.\nWhile in command mode, long-press and drag to select units. Tap a location or target to command units there.
-hint.launch = Once enough resources are collected, you can [accent]Launch[] by selecting nearby sectors from the \ue827 [accent]Map[] in the bottom right.
-hint.launch.mobile = Once enough resources are collected, you can [accent]Launch[] by selecting nearby sectors from the \ue827 [accent]Map[] in the \ue88c [accent]Menu[].
+hint.launch = Once enough resources are collected, you can [accent]Launch[] by selecting nearby sectors from the :map: [accent]Map[] in the bottom right.
+hint.launch.mobile = Once enough resources are collected, you can [accent]Launch[] by selecting nearby sectors from the :map: [accent]Map[] in the :menu: [accent]Menu[].
hint.schematicSelect = Hold [accent][[F][] and drag to select blocks to copy and paste.\n\n[accent][[Middle Click][] to copy a single block type.
hint.rebuildSelect = Hold [accent][[B][] and drag to select destroyed block plans.\nThis will rebuild them automatically.
-hint.rebuildSelect.mobile = Select the \ue874 copy button, then tap the \ue80f rebuild button and drag to select destroyed block plans.\nThis will rebuild them automatically.
+hint.rebuildSelect.mobile = Select the :copy: copy button, then tap the :wrench: rebuild button and drag to select destroyed block plans.\nThis will rebuild them automatically.
hint.conveyorPathfind = Hold [accent][[L-Ctrl][] while dragging conveyors to automatically generate a path.
-hint.conveyorPathfind.mobile = Enable \ue844 [accent]diagonal mode[] and drag conveyors to automatically generate a path.
+hint.conveyorPathfind.mobile = Enable :diagonal: [accent]diagonal mode[] and drag conveyors to automatically generate a path.
hint.boost = Hold [accent][[L-Shift][] to fly over obstacles with your current unit.\n\nOnly a few ground units have boosters.
hint.payloadPickup = Press [accent][[[] to pick up small blocks or units.
hint.payloadPickup.mobile = [accent]Tap and hold[] a small block or unit to pick it up.
hint.payloadDrop = Press [accent]][] to drop a payload.
hint.payloadDrop.mobile = [accent]Tap and hold[] an empty location to drop a payload there.
hint.waveFire = [accent]Wave[] turrets with water as ammunition will automatically put out nearby fires.
-hint.generator = \uf879 [accent]Combustion Generators[] burn coal and transmit power to adjacent blocks.\n\nPower transmission range can be extended with \uf87f [accent]Power Nodes[].
-hint.guardian = [accent]Guardian[] units are armored. Weak ammo such as [accent]Copper[] and [accent]Lead[] is [scarlet]not effective[].\n\nUse higher tier turrets or \uf835 [accent]Graphite[] \uf861Duo/\uf859Salvo ammunition to take Guardians down.
-hint.coreUpgrade = Cores can be upgraded by [accent]placing higher-tier cores over them[].\n\nPlace a \uf868 [accent]Foundation[] core over the \uf869 [accent]Shard[] core. Make sure it is free from nearby obstructions.
+hint.generator = :combustion-generator: [accent]Combustion Generators[] burn coal and transmit power to adjacent blocks.\n\nPower transmission range can be extended with :power-node: [accent]Power Nodes[].
+hint.guardian = [accent]Guardian[] units are armored. Weak ammo such as [accent]Copper[] and [accent]Lead[] is [scarlet]not effective[].\n\nUse higher tier turrets or :graphite: [accent]Graphite[] :duo:Duo/:salvo:Salvo ammunition to take Guardians down.
+hint.coreUpgrade = Cores can be upgraded by [accent]placing higher-tier cores over them[].\n\nPlace a :core-foundation: [accent]Foundation[] core over the :core-shard: [accent]Shard[] core. Make sure it is free from nearby obstructions.
hint.presetLaunch = Gray [accent]landing zone sectors[], such as [accent]Frozen Forest[], can be launched to from anywhere. They do not require capture of nearby territory.\n\n[accent]Numbered sectors[], such as this one, are [accent]optional[].
hint.presetDifficulty = This sector has a [scarlet]high enemy threat level[].\nLaunching to such sectors is [accent]not recommended[] without proper technology and preparation.
hint.coreIncinerate = After the core is filled to capacity with an item, any extra items of that type it receives will be [accent]incinerated[].
hint.factoryControl = To set a unit factory's [accent]output destination[], click a factory block while in command mode, then right-click a location.\nUnits produced by it will automatically move there.
hint.factoryControl.mobile = To set a unit factory's [accent]output destination[], tap a factory block while in command mode, then tap a location.\nUnits produced by it will automatically move there.
-gz.mine = Move near the \uf8c4 [accent]copper ore[] on the ground and click to begin mining.
-gz.mine.mobile = Move near the \uf8c4 [accent]copper ore[] on the ground and tap it to begin mining.
-gz.research = Open the \ue875 tech tree.\nResearch the \uf870 [accent]Mechanical Drill[], then select it from the menu in the bottom right.\nClick on a copper patch to place it.
-gz.research.mobile = Open the \ue875 tech tree.\nResearch the \uf870 [accent]Mechanical Drill[], then select it from the menu in the bottom right.\nTap on a copper patch to place it.\n\nPress the \ue800 [accent]checkmark[] at the bottom right to confirm.
-gz.conveyors = Research and place \uf896 [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nClick and drag to place multiple conveyors.\n[accent]Scroll[] to rotate.
-gz.conveyors.mobile = Research and place \uf896 [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nHold down your finger for a second and drag to place multiple conveyors.
+gz.mine = Move near the :ore-copper: [accent]copper ore[] on the ground and click to begin mining.
+gz.mine.mobile = Move near the :ore-copper: [accent]copper ore[] on the ground and tap it to begin mining.
+gz.research = Open the :tree: tech tree.\nResearch the :mechanical-drill: [accent]Mechanical Drill[], then select it from the menu in the bottom right.\nClick on a copper patch to place it.
+gz.research.mobile = Open the :tree: tech tree.\nResearch the :mechanical-drill: [accent]Mechanical Drill[], then select it from the menu in the bottom right.\nTap on a copper patch to place it.\n\nPress the \ue800 [accent]checkmark[] at the bottom right to confirm.
+gz.conveyors = Research and place :conveyor: [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nClick and drag to place multiple conveyors.\n[accent]Scroll[] to rotate.
+gz.conveyors.mobile = Research and place :conveyor: [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nHold down your finger for a second and drag to place multiple conveyors.
gz.drills = Expand the mining operation.\nPlace more Mechanical Drills.\nMine 100 copper.
-gz.lead = \uf837 [accent]Lead[] is another commonly used resource.\nSet up drills to mine lead.
-gz.moveup = \ue804 Move up for further objectives.
-gz.turrets = Research and place 2 \uf861 [accent]Duo[] turrets to defend the core.\nDuo turrets require \uf838 [accent]ammo[] from conveyors.
+gz.lead = :lead: [accent]Lead[] is another commonly used resource.\nSet up drills to mine lead.
+gz.moveup = :up: Move up for further objectives.
+gz.turrets = Research and place 2 :duo: [accent]Duo[] turrets to defend the core.\nDuo turrets require \uf838 [accent]ammo[] from conveyors.
gz.duoammo = Supply the Duo turrets with [accent]copper[], using conveyors.
-gz.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace \uf8ae [accent]copper walls[] around the turrets.
+gz.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace :copper-wall: [accent]copper walls[] around the turrets.
gz.defend = Enemy incoming, prepare to defend.
-gz.aa = Flying units cannot easily be dispatched with standard turrets.\n\uf860 [accent]Scatter[] turrets provide excellent anti-air, but require \uf837 [accent]lead[] as ammo.
+gz.aa = Flying units cannot easily be dispatched with standard turrets.\n:scatter: [accent]Scatter[] turrets provide excellent anti-air, but require :lead: [accent]lead[] as ammo.
gz.scatterammo = Supply the Scatter turret with [accent]lead[], using conveyors.
gz.supplyturret = [accent]Supply Turret
gz.zone1 = This is the enemy drop zone.
gz.zone2 = Anything built in the radius is destroyed when a wave starts.
gz.zone3 = A wave will begin now.\nGet ready.
gz.finish = Build more turrets, mine more resources,\nand defend against all the waves to [accent]capture the sector[].
-onset.mine = Click to mine \uf748 [accent]beryllium[] from walls.\n\nUse [accent][[WASD] to move.
-onset.mine.mobile = Tap to mine \uf748 [accent]beryllium[] from walls.
-onset.research = Open the \ue875 tech tree.\nResearch, then place a \uf73e [accent]turbine condenser[] on the vent.\nThis will generate [accent]power[].
-onset.bore = Research and place a \uf741 [accent]plasma bore[].\nThis automatically mines resources from walls.
-onset.power = To [accent]power[] the plasma bore, research and place a \uf73d [accent]beam node[].\nConnect the turbine condenser to the plasma bore.
-onset.ducts = Research and place \uf799 [accent]ducts[] to move the mined resources from the plasma bore to the core.\nClick and drag to place multiple ducts.\n[accent]Scroll[] to rotate.
-onset.ducts.mobile = Research and place \uf799 [accent]ducts[] to move the mined resources from the plasma bore to the core.\n\nHold down your finger for a second and drag to place multiple ducts.
+onset.mine = Click to mine :beryllium: [accent]beryllium[] from walls.\n\nUse [accent][[WASD] to move.
+onset.mine.mobile = Tap to mine :beryllium: [accent]beryllium[] from walls.
+onset.research = Open the :tree: tech tree.\nResearch, then place a :turbine-condenser: [accent]turbine condenser[] on the vent.\nThis will generate [accent]power[].
+onset.bore = Research and place a :plasma-bore: [accent]plasma bore[].\nThis automatically mines resources from walls.
+onset.power = To [accent]power[] the plasma bore, research and place a :beam-node: [accent]beam node[].\nConnect the turbine condenser to the plasma bore.
+onset.ducts = Research and place :duct: [accent]ducts[] to move the mined resources from the plasma bore to the core.\nClick and drag to place multiple ducts.\n[accent]Scroll[] to rotate.
+onset.ducts.mobile = Research and place :duct: [accent]ducts[] to move the mined resources from the plasma bore to the core.\n\nHold down your finger for a second and drag to place multiple ducts.
onset.moremine = Expand the mining operation.\nPlace more Plasma Bores and use beam nodes and ducts to support them.\nMine 200 beryllium.
-onset.graphite = More complex blocks require \uf835 [accent]graphite[].\nSet up plasma bores to mine graphite.
-onset.research2 = Begin researching [accent]factories[].\nResearch the \uf74d [accent]cliff crusher[] and \uf779 [accent]silicon arc furnace[].
-onset.arcfurnace = The arc furnace needs \uf834 [accent]sand[] and \uf835 [accent]graphite[] to create \uf82f [accent]silicon[].\n[accent]Power[] is also required.
-onset.crusher = Use \uf74d [accent]cliff crushers[] to mine sand.
-onset.fabricator = Use [accent]units[] to explore the map, defend buildings, and attack the enemy. Research and place a \uf6a2 [accent]tank fabricator[].
+onset.graphite = More complex blocks require :graphite: [accent]graphite[].\nSet up plasma bores to mine graphite.
+onset.research2 = Begin researching [accent]factories[].\nResearch the :cliff-crusher: [accent]cliff crusher[] and :silicon-arc-furnace: [accent]silicon arc furnace[].
+onset.arcfurnace = The arc furnace needs :sand: [accent]sand[] and :graphite: [accent]graphite[] to create :silicon: [accent]silicon[].\n[accent]Power[] is also required.
+onset.crusher = Use :cliff-crusher: [accent]cliff crushers[] to mine sand.
+onset.fabricator = Use [accent]units[] to explore the map, defend buildings, and attack the enemy. Research and place a :tank-fabricator: [accent]tank fabricator[].
onset.makeunit = Produce a unit.\nUse the "?" button to see selected factory requirements.
-onset.turrets = Units are effective, but [accent]turrets[] provide better defensive capabilities if used effectively.\nPlace a \uf6eb [accent]Breach[] turret.\nTurrets require \uf748 [accent]ammo[].
+onset.turrets = Units are effective, but [accent]turrets[] provide better defensive capabilities if used effectively.\nPlace a :breach: [accent]Breach[] turret.\nTurrets require :beryllium: [accent]ammo[].
onset.turretammo = Supply the turret with [accent]beryllium ammo.[]
-onset.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace some \uf6ee [accent]beryllium walls[] around the turret.
+onset.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace some :beryllium-wall: [accent]beryllium walls[] around the turret.
onset.enemies = Enemy incoming, prepare to defend.
onset.defenses = [accent]Set up defenses:[lightgray] {0}
onset.attack = The enemy is vulnerable. Counter-attack.
-onset.cores = New cores can be placed on [accent]core tiles[].\nNew cores function as forward bases and share a resource inventory with other cores.\nPlace a \uf725 core.
+onset.cores = New cores can be placed on [accent]core tiles[].\nNew cores function as forward bases and share a resource inventory with other cores.\nPlace a :core-bastion: core.
onset.detect = The enemy will be able to detect you in 2 minutes.\nSet up defenses, mining, and production.
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.
@@ -2158,7 +2200,9 @@ block.vault.description = Stores a large amount of items of each type. Adjacent
block.container.description = Stores a small amount of items of each type. Adjacent containers, vaults and cores will be treated as a single storage unit. An[lightgray] unloader[] can be used to retrieve items from the container.
block.unloader.description = Unloads items from a container, vault or core onto a conveyor or directly into an adjacent block. The type of item to be unloaded can be changed by tapping on the unloader.
block.launch-pad.description = Launches batches of items without any need for a core launch. Unfinished.
-block.launch-pad.details = Sub-orbital system for point-to-point transportation of resources. Payload pods are fragile and incapable of surviving re-entry.
+block.advanced-launch-pad.description = Launches batches of items to selected sectors. Only accepts one item type at a time.
+block.advanced-launch-pad.details = Sub-orbital system for point-to-point transportation of resources.
+block.landing-pad.description = Receives items from launch pads in other sectors. Requires large amounts of water to protect against impacts of landings.
block.duo.description = A small, cheap turret.
block.scatter.description = A medium-sized anti-air turret. Sprays clumps of lead or scrap flak at enemy units.
block.scorch.description = Burns any ground enemies close to it. Highly effective at close range.
@@ -2265,6 +2309,7 @@ block.unit-cargo-loader.description = Constructs cargo drones. Drones automatica
block.unit-cargo-unload-point.description = Acts as an unloading point for cargo drones. Accepts items that match the selected filter.
block.beam-node.description = Transmits power to other blocks orthogonally. Stores a small amount of power.
block.beam-tower.description = Transmits power to other blocks orthogonally. Stores a large amount of power. Long-range.
+block.beam-link.description = Transmits power over vast distances.\nOnly capable of connecting to adjacent structures or other beam links.
block.turbine-condenser.description = Generates power when placed on vents. Produces a small amount of water.
block.chemical-combustion-chamber.description = Generates power from arkycite and ozone.
block.pyrolysis-generator.description = Generates large amounts of power from arkycite and slag. Produces water as a byproduct.
@@ -2353,6 +2398,7 @@ unit.emanate.description = Builds structures to defend the Acropolis core. Repai
lst.read = Read a number from a linked memory cell.
lst.write = Write a number to a linked memory cell.
lst.print = Add text to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used.
+lst.printchar = Add a UTF-16 character or content icon to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used.
lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example"
lst.draw = Add an operation to the drawing buffer.\nDoes not display anything until [accent]Draw Flush[] is used.
lst.drawflush = Flush queued [accent]Draw[] operations to a display.
@@ -2438,12 +2484,14 @@ lenum.shootp = Shoot at a unit/building with velocity prediction.
lenum.config = Building configuration, e.g. sorter item.
lenum.enabled = Whether the block is enabled.
laccess.currentammotype = Current ammo item/liquid of a turret.
+laccess.memorycapacity = Number of cells in a memory block.
laccess.color = Illuminator color.
laccess.controller = Unit controller. If processor controlled, returns processor.\nIf in a formation, returns leader.\nOtherwise, returns the unit itself.
laccess.dead = Whether a unit/building is dead or no longer valid.
laccess.controlled = Returns:\n[accent]@ctrlProcessor[] if unit controller is processor\n[accent]@ctrlPlayer[] if unit/building controller is player\n[accent]@ctrlFormation[] if unit is in formation\nOtherwise, 0.
laccess.progress = Action progress, 0 to 1.\nReturns production, turret reload or construction progress.
laccess.speed = Top speed of a unit, in tiles/sec.
+laccess.size = Size of a unit/building or the length of a string.
laccess.id = ID of a unit/block/item/liquid.\nThis is the inverse of the lookup operation.
lcategory.unknown = Unknown
lcategory.unknown.description = Uncategorized instructions.
@@ -2572,3 +2620,29 @@ lenum.autoscale = Whether to scale marker corresponding to player's zoom level.
lenum.posi = Indexed position, used for line and quad markers with index zero being the first position.
lenum.uvi = Texture's position ranging from zero to one, used for quad markers.
lenum.colori = Indexed position, used for line and quad markers with index zero being the first color.
+lenum.wavetimer = Whether the waves come automatically on a timer. If not, waves come when the play button is pressed.
+lenum.wave = Current wave number. Can be anything in non-wave modes.
+lenum.currentwavetime = Wave countdown in ticks.
+lenum.waves = Whether waves are spawnable at all.
+lenum.wavesending = Whether the waves can be manually summoned with the play button.
+lenum.attackmode = Determines if gamemode is attack mode.
+lenum.wavespacing = Time between waves in ticks.
+lenum.enemycorebuildradius = No-build zone around enemy core radius.
+lenum.dropzoneradius = Radius around enemy wave drop zones.
+lenum.unitcap = Base unit cap. Can still be increased by blocks.
+lenum.lighting = Whether ambient lighting is enabled.
+lenum.buildspeed = Multiplier for building speed.
+lenum.unithealth = How much health units start with.
+lenum.unitbuildspeed = How fast unit factories build units.
+lenum.unitcost = Multiplier of resources that units take to build.
+lenum.unitdamage = How much damage units deal.
+lenum.blockhealth = How much health blocks start with.
+lenum.blockdamage = How much damage blocks (turrets) deal.
+lenum.rtsminweight = Minimum "advantage" needed for a squad to attack. Higher -> more cautious.
+lenum.rtsminsquad = Minimum size of attack squads.
+lenum.maparea = Playable map area. Anything outside the area will not be interactable.
+lenum.ambientlight = Ambient light color. Used when lighting is enabled.
+lenum.solarmultiplier = Multiplies power output of solar panels.
+lenum.dragmultiplier = Environment drag multiplier.
+lenum.ban = Blocks or units that cannot be placed or built.
+lenum.unban = Unban a unit or block.
diff --git a/core/assets/bundles/bundle_nl_BE.properties b/core/assets/bundles/bundle_nl_BE.properties
index ee7759a2dd..bb4cbeb7c4 100644
--- a/core/assets/bundles/bundle_nl_BE.properties
+++ b/core/assets/bundles/bundle_nl_BE.properties
@@ -128,6 +128,7 @@ done = Klaar
feature.unsupported = Uw apparaat ondersteunt deze functie niet.
mods.initfailed = [red]⚠[] The previous Mindustry instance failed to initialize. This was likely caused by misbehaving mods.\n\nTo prevent a crash loop, [red]all mods have been disabled.[]
mods = Mods
+mods.name = Mod:
mods.none = [lightgray]Geen mods gevonden!
mods.guide = Handleiding tot Modding
mods.report = Bug Rapporteren
@@ -152,7 +153,7 @@ mod.erroredcontent = [scarlet]Content Errors
mod.circulardependencies = [red]Circular Dependencies
mod.incompletedependencies = [red]Incomplete Dependencies
mod.requiresversion.details = Requires game version: [accent]{0}[]\nYour game is outdated. This mod requires a newer version of the game (possibly a beta/alpha release) to function.
-mod.outdatedv7.details = This mod is incompatible with the latest version of the game. The author must update it, and add [accent]minGameVersion: 136[] to its [accent]mod.json[] file.
+mod.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 = This mod has been manually blacklisted for causing crashes or other issues with this version of the game. Do not use it.
mod.missingdependencies.details = This mod is missing dependencies: {0}
mod.erroredcontent.details = This game caused errors when loading. Ask the mod author to fix them.
@@ -161,7 +162,6 @@ mod.incompletedependencies.details = This mod is unable to be loaded due to inva
mod.requiresversion = Requires game version: [red]{0}
mod.errors = Errors have occurred loading content.
mod.noerrorplay = [scarlet]You have mods with errors.[] Either disable the affected mods or fix the errors before playing.
-mod.nowdisabled = [scarlet]De volgende vereisten ontbreken voor mod '{0}':[accent] {1}\n[lightgray]Deze mods moeten eerst gedownload worden.\nDeze mod wordt automatisch uitgeschakeld.
mod.enable = Schakel in
mod.requiresrestart = The game will now close to apply the mod changes.
mod.reloadrequired = [scarlet]Herladen Vereist
@@ -176,6 +176,15 @@ mod.missing = Dit opslagbestand bevat mods die zijn geupdate of recentelijk zijn
mod.preview.missing = Voordat je de mod publiceert moet je een afbeelding voor de voorvertoning toevoegen.\nPlaats een afbeelding met de naam[accent] preview.png[] in de modfolder.
mod.folder.missing = Mods kunnen enkel gepubliceerd worden in foldervorm.\nOm een mod in foldervorm te zetten exporteer je het modbestand uit de zipfile en verwijder je de oude zipfile. Herlaad vervolgens je mods of herstart het spel.
mod.scripts.disable = Your device does not support mods with scripts. You must disable these mods to play the game.
+mod.dependencies.error = [scarlet]Mods are missing dependencies
+mod.dependencies.soft = (optional)
+mod.dependencies.download = Import
+mod.dependencies.downloadreq = Import Required
+mod.dependencies.downloadall = Import All
+mod.dependencies.status = Import Results
+mod.dependencies.success = Successfully downloaded:
+mod.dependencies.failure = Failed to download:
+mod.dependencies.imported = This mod requires dependencies. Download?
about.button = Over
name = Naam:
@@ -291,6 +300,7 @@ disconnect.error = Verbindingsfout.
disconnect.closed = Verbinding afgesloten.
disconnect.timeout = Het duurde te lang voordat de server antwoordde.
disconnect.data = Laden van mapdata mislukt!
+disconnect.snapshottimeout = Timed out while receiving UDP snapshots.\nThis may be caused by an unstable network or connection.
cantconnect = Kon niet tot het spel toetreden. ([accent]{0}[]).
connecting = [accent]Verbinden...
reconnecting = [accent]Reconnecting...
@@ -459,6 +469,7 @@ editor.shiftx = Shift X
editor.shifty = Shift Y
workshop = Workshop
waves.title = Waves
+waves.team = Team
waves.remove = Remove
waves.every = every
waves.waves = wave(s)
@@ -706,14 +717,18 @@ loadout = Loadout
resources = Resources
resources.max = Max
bannedblocks = Banned Blocks
+unbannedblocks = Unbanned Blocks
objectives = Objectives
bannedunits = Banned Units
+unbannedunits = Unbanned Units
bannedunits.whitelist = Banned Units As Whitelist
bannedblocks.whitelist = Banned Blocks As Whitelist
addall = Add All
launch.from = Launching From: [accent]{0}
launch.capacity = Launching Item Capacity: [accent]{0}
launch.destination = Destination: {0}
+landing.sources = Source Sectors: [accent]{0}[]
+landing.import = Max Total Import: {0}[accent]{1}[lightgray]/min
configure.invalid = Amount must be a number between 0 and {0}.
add = Add...
guardian = Guardian
@@ -752,7 +767,9 @@ sectors.stored = Stored:
sectors.resume = Resume
sectors.launch = Launch
sectors.select = Select
+sectors.launchselect = Select Launch Destination
sectors.nonelaunch = [lightgray]none (sun)
+sectors.redirect = Redirect Launch Pads
sectors.rename = Rename Sector
sectors.enemybase = [scarlet]Enemy Base
sectors.vulnerable = [scarlet]Vulnerable
@@ -783,6 +800,10 @@ difficulty.easy = Easy
difficulty.normal = Normal
difficulty.hard = Hard
difficulty.eradication = Eradication
+difficulty.enemyHealthMultiplier = Enemy Health: {0}
+difficulty.enemySpawnMultiplier = Enemy Amount: {0}
+difficulty.waveTimeMultiplier = Wave Timer: {0}
+difficulty.nomodifiers = [lightgray](No modifiers)
planets = Planets
planet.serpulo.name = Serpulo
@@ -1012,6 +1033,7 @@ stat.buildspeedmultiplier = Build Speed Multiplier
stat.reactive = Reacts
stat.immunities = Immunities
stat.healing = Healing
+stat.efficiency = [stat]{0}% Efficiency
ability.forcefield = Force Field
ability.forcefield.description = Projects a force shield that absorbs bullets
@@ -1059,6 +1081,7 @@ ability.stat.buildtime = [stat]{0} sec[lightgray] build time
bar.onlycoredeposit = Only Core Depositing Allowed
bar.drilltierreq = Better Drill Required
+bar.nobatterypower = Insufficieny Battery Power
bar.noresources = Missing Resources
bar.corereq = Core Base Required
bar.corefloor = Core Zone Tile Required
@@ -1067,6 +1090,7 @@ bar.drillspeed = Drill Speed: {0}/s
bar.pumpspeed = Pump Speed: {0}/s
bar.efficiency = Efficiency: {0}%
bar.boost = Boost: +{0}%
+bar.powerbuffer = Battery Power: {0}/{1}
bar.powerbalance = Power: {0}/s
bar.powerstored = Stored: {0}/{1}
bar.poweramount = Power: {0}
@@ -1077,6 +1101,7 @@ bar.capacity = Capacity: {0}
bar.unitcap = {0} {1}/{2}
bar.liquid = Liquid
bar.heat = Heat
+bar.cooldown = Cooldown
bar.instability = Instability
bar.heatamount = Heat: {0}
bar.heatpercent = Heat: {0} ({1}%)
@@ -1101,6 +1126,7 @@ bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
bullet.frags = [stat]{0}[lightgray]x frag bullets:
bullet.lightning = [stat]{0}[lightgray]x lightning ~ [stat]{1}[lightgray] damage
bullet.buildingdamage = [stat]{0}%[lightgray] building damage
+bullet.shielddamage = [stat]{0}%[lightgray] shield damage
bullet.knockback = [stat]{0}[lightgray] knockback
bullet.pierce = [stat]{0}[lightgray]x pierce
bullet.infinitepierce = [stat]pierce
@@ -1127,6 +1153,7 @@ unit.minutes = mins
unit.persecond = /sec
unit.perminute = /min
unit.timesspeed = x speed
+unit.multiplier = x
unit.percent = %
unit.shieldhealth = shield health
unit.items = items
@@ -1203,11 +1230,13 @@ setting.mutemusic.name = Mute Music
setting.sfxvol.name = SFX Volume
setting.mutesound.name = Mute Sound
setting.crashreport.name = Send Anonymous Crash Reports
+setting.communityservers.name = Fetch Community Server List
setting.savecreate.name = Auto-Create Saves
setting.steampublichost.name = Public Game Visibility
setting.playerlimit.name = Player Limit
setting.chatopacity.name = Chat Opacity
setting.lasersopacity.name = Power Laser Opacity
+setting.unitlaseropacity.name = Unit Mining Beam Opacity
setting.bridgeopacity.name = Bridge Opacity
setting.playerchat.name = Display In-Game Chat
setting.showweather.name = Show Weather Graphics
@@ -1216,6 +1245,9 @@ setting.macnotch.name = Adapt interface to display notch
setting.macnotch.description = Restart required to apply changes
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.
public.beta = Note that beta versions of the game cannot make public lobbies.
uiscale.reset = UI scale has been changed.\nPress "OK" to confirm this scale.\n[scarlet]Reverting and exiting in[accent] {0}[] settings...
uiscale.cancel = Cancel & Exit
@@ -1296,6 +1328,7 @@ keybind.shoot.name = Shoot
keybind.zoom.name = Zoom
keybind.menu.name = Menu
keybind.pause.name = Pause
+keybind.skip_wave.name = Skip Wave
keybind.pause_building.name = Pause/Resume Building
keybind.minimap.name = Minimap
keybind.planet_map.name = Planet Map
@@ -1363,12 +1396,14 @@ rules.unitcostmultiplier = Unit Cost Multiplier
rules.unithealthmultiplier = Unit Health Multiplier
rules.unitdamagemultiplier = Unit Damage Multiplier
rules.unitcrashdamagemultiplier = Unit Crash Damage Multiplier
+rules.unitminespeedmultiplier = Unit Mine Speed Multiplier
rules.solarmultiplier = Solar Power Multiplier
rules.unitcapvariable = Cores Contribute To Unit Cap
rules.unitpayloadsexplode = Carried Payloads Explode With The Unit
rules.unitcap = Base Unit Cap
rules.limitarea = Limit Map Area
rules.enemycorebuildradius = Enemy Core No-Build Radius:[lightgray] (tiles)
+rules.extracorebuildradius = Extra No-Build Radius:[lightgray] (tiles)
rules.wavespacing = Wave Spacing:[lightgray] (sec)
rules.initialwavespacing = Initial Wave Spacing:[lightgray] (sec)
rules.buildcostmultiplier = Build Cost Multiplier
@@ -1391,6 +1426,9 @@ rules.title.planet = Planet
rules.lighting = Lighting
rules.fog = Fog of War
rules.invasions = Enemy Sector Invasions
+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.fire = Fire
@@ -1707,6 +1745,8 @@ block.meltdown.name = Meltdown
block.foreshadow.name = Foreshadow
block.container.name = Container
block.launch-pad.name = Launch Pad
+block.advanced-launch-pad.name = Launch Pad
+block.landing-pad.name = Landing Pad
block.segment.name = Segment
block.ground-factory.name = Ground Factory
block.air-factory.name = Air Factory
@@ -1762,6 +1802,8 @@ block.arkyic-vent.name = Arkyic Vent
block.yellow-stone-vent.name = Yellow Stone Vent
block.red-stone-vent.name = Red Stone Vent
block.crystalline-vent.name = Crystalline Vent
+block.stone-vent.name = Stone Vent
+block.basalt-vent.name = Basalt Vent
block.redmat.name = Redmat
block.bluemat.name = Bluemat
block.core-zone.name = Core Zone
@@ -1915,77 +1957,77 @@ hint.respawn = To respawn as a ship, press [accent][[V][].
hint.respawn.mobile = You have switched control to a unit/structure. To respawn as a ship, [accent]tap the avatar in the top left.[]
hint.desktopPause = Press [accent][[Space][] to pause and unpause the game.
hint.breaking = [accent]Right-click[] and drag to break blocks.
-hint.breaking.mobile = Activate the \ue817 [accent]hammer[] in the bottom right and tap to break blocks.\n\nHold down your finger for a second and drag to break in a selection.
+hint.breaking.mobile = Activate the :hammer: [accent]hammer[] in the bottom right and tap to break blocks.\n\nHold down your finger for a second and drag to break in a selection.
hint.blockInfo = View information of a block by selecting it in the [accent]build menu[], then selecting the [accent][[?][] button at the right.
hint.derelict = [accent]Derelict[] structures are broken remnants of old bases that no longer function.\n\nThese structures can be [accent]deconstructed[] for resources.
-hint.research = Use the \ue875 [accent]Research[] button to research new technology.
-hint.research.mobile = Use the \ue875 [accent]Research[] button in the \ue88c [accent]Menu[] to research new technology.
+hint.research = Use the :tree: [accent]Research[] button to research new technology.
+hint.research.mobile = Use the :tree: [accent]Research[] button in the :menu: [accent]Menu[] to research new technology.
hint.unitControl = Hold [accent][[L-ctrl][] and [accent]click[] to control friendly units or turrets.
hint.unitControl.mobile = [accent][[Double-tap][] to control friendly units or turrets.
hint.unitSelectControl = To control units, enter [accent]command mode[] by holding [accent]L-shift.[]\nWhile in command mode, click and drag to select units. [accent]Right-click[] a location or target to command units there.
hint.unitSelectControl.mobile = To control units, enter [accent]command mode[] by pressing the [accent]command[] button in the bottom left.\nWhile in command mode, long-press and drag to select units. Tap a location or target to command units there.
-hint.launch = Once enough resources are collected, you can [accent]Launch[] by selecting nearby sectors from the \ue827 [accent]Map[] in the bottom right.
-hint.launch.mobile = Once enough resources are collected, you can [accent]Launch[] by selecting nearby sectors from the \ue827 [accent]Map[] in the \ue88c [accent]Menu[].
+hint.launch = Once enough resources are collected, you can [accent]Launch[] by selecting nearby sectors from the :map: [accent]Map[] in the bottom right.
+hint.launch.mobile = Once enough resources are collected, you can [accent]Launch[] by selecting nearby sectors from the :map: [accent]Map[] in the :menu: [accent]Menu[].
hint.schematicSelect = Hold [accent][[F][] and drag to select blocks to copy and paste.\n\n[accent][[Middle Click][] to copy a single block type.
hint.rebuildSelect = Hold [accent][[B][] and drag to select destroyed block plans.\nThis will rebuild them automatically.
-hint.rebuildSelect.mobile = Select the \ue874 copy button, then tap the \ue80f rebuild button and drag to select destroyed block plans.\nThis will rebuild them automatically.
+hint.rebuildSelect.mobile = Select the :copy: copy button, then tap the :wrench: rebuild button and drag to select destroyed block plans.\nThis will rebuild them automatically.
hint.conveyorPathfind = Hold [accent][[L-Ctrl][] while dragging conveyors to automatically generate a path.
-hint.conveyorPathfind.mobile = Enable \ue844 [accent]diagonal mode[] and drag conveyors to automatically generate a path.
+hint.conveyorPathfind.mobile = Enable :diagonal: [accent]diagonal mode[] and drag conveyors to automatically generate a path.
hint.boost = Hold [accent][[L-Shift][] to fly over obstacles with your current unit.\n\nOnly a few ground units have boosters.
hint.payloadPickup = Press [accent][[[] to pick up small blocks or units.
hint.payloadPickup.mobile = [accent]Tap and hold[] a small block or unit to pick it up.
hint.payloadDrop = Press [accent]][] to drop a payload.
hint.payloadDrop.mobile = [accent]Tap and hold[] an empty location to drop a payload there.
hint.waveFire = [accent]Wave[] turrets with water as ammunition will automatically put out nearby fires.
-hint.generator = \uf879 [accent]Combustion Generators[] burn coal and transmit power to adjacent blocks.\n\nPower transmission range can be extended with \uf87f [accent]Power Nodes[].
-hint.guardian = [accent]Guardian[] units are armored. Weak ammo such as [accent]Copper[] and [accent]Lead[] is [scarlet]not effective[].\n\nUse higher tier turrets or \uf835 [accent]Graphite[] \uf861Duo/\uf859Salvo ammunition to take Guardians down.
-hint.coreUpgrade = Cores can be upgraded by [accent]placing higher-tier cores over them[].\n\nPlace a \uf868 [accent]Foundation[] core over the \uf869 [accent]Shard[] core. Make sure it is free from nearby obstructions.
+hint.generator = :combustion-generator: [accent]Combustion Generators[] burn coal and transmit power to adjacent blocks.\n\nPower transmission range can be extended with :power-node: [accent]Power Nodes[].
+hint.guardian = [accent]Guardian[] units are armored. Weak ammo such as [accent]Copper[] and [accent]Lead[] is [scarlet]not effective[].\n\nUse higher tier turrets or :graphite: [accent]Graphite[] :duo:Duo/:salvo:Salvo ammunition to take Guardians down.
+hint.coreUpgrade = Cores can be upgraded by [accent]placing higher-tier cores over them[].\n\nPlace a :core-foundation: [accent]Foundation[] core over the :core-shard: [accent]Shard[] core. Make sure it is free from nearby obstructions.
hint.presetLaunch = Gray [accent]landing zone sectors[], such as [accent]Frozen Forest[], can be launched to from anywhere. They do not require capture of nearby territory.\n\n[accent]Numbered sectors[], such as this one, are [accent]optional[].
hint.presetDifficulty = This sector has a [scarlet]high enemy threat level[].\nLaunching to such sectors is [accent]not recommended[] without proper technology and preparation.
hint.coreIncinerate = After the core is filled to capacity with an item, any extra items of that type it receives will be [accent]incinerated[].
hint.factoryControl = To set a unit factory's [accent]output destination[], click a factory block while in command mode, then right-click a location.\nUnits produced by it will automatically move there.
hint.factoryControl.mobile = To set a unit factory's [accent]output destination[], tap a factory block while in command mode, then tap a location.\nUnits produced by it will automatically move there.
-gz.mine = Move near the \uf8c4 [accent]copper ore[] on the ground and click to begin mining.
-gz.mine.mobile = Move near the \uf8c4 [accent]copper ore[] on the ground and tap it to begin mining.
-gz.research = Open the \ue875 tech tree.\nResearch the \uf870 [accent]Mechanical Drill[], then select it from the menu in the bottom right.\nClick on a copper patch to place it.
-gz.research.mobile = Open the \ue875 tech tree.\nResearch the \uf870 [accent]Mechanical Drill[], then select it from the menu in the bottom right.\nTap on a copper patch to place it.\n\nPress the \ue800 [accent]checkmark[] at the bottom right to confirm.
-gz.conveyors = Research and place \uf896 [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nClick and drag to place multiple conveyors.\n[accent]Scroll[] to rotate.
-gz.conveyors.mobile = Research and place \uf896 [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nHold down your finger for a second and drag to place multiple conveyors.
+gz.mine = Move near the :ore-copper: [accent]copper ore[] on the ground and click to begin mining.
+gz.mine.mobile = Move near the :ore-copper: [accent]copper ore[] on the ground and tap it to begin mining.
+gz.research = Open the :tree: tech tree.\nResearch the :mechanical-drill: [accent]Mechanical Drill[], then select it from the menu in the bottom right.\nClick on a copper patch to place it.
+gz.research.mobile = Open the :tree: tech tree.\nResearch the :mechanical-drill: [accent]Mechanical Drill[], then select it from the menu in the bottom right.\nTap on a copper patch to place it.\n\nPress the \ue800 [accent]checkmark[] at the bottom right to confirm.
+gz.conveyors = Research and place :conveyor: [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nClick and drag to place multiple conveyors.\n[accent]Scroll[] to rotate.
+gz.conveyors.mobile = Research and place :conveyor: [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nHold down your finger for a second and drag to place multiple conveyors.
gz.drills = Expand the mining operation.\nPlace more Mechanical Drills.\nMine 100 copper.
-gz.lead = \uf837 [accent]Lead[] is another commonly used resource.\nSet up drills to mine lead.
-gz.moveup = \ue804 Move up for further objectives.
-gz.turrets = Research and place 2 \uf861 [accent]Duo[] turrets to defend the core.\nDuo turrets require \uf838 [accent]ammo[] from conveyors.
+gz.lead = :lead: [accent]Lead[] is another commonly used resource.\nSet up drills to mine lead.
+gz.moveup = :up: Move up for further objectives.
+gz.turrets = Research and place 2 :duo: [accent]Duo[] turrets to defend the core.\nDuo turrets require \uf838 [accent]ammo[] from conveyors.
gz.duoammo = Supply the Duo turrets with [accent]copper[], using conveyors.
-gz.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace \uf8ae [accent]copper walls[] around the turrets.
+gz.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace :copper-wall: [accent]copper walls[] around the turrets.
gz.defend = Enemy incoming, prepare to defend.
-gz.aa = Flying units cannot easily be dispatched with standard turrets.\n\uf860 [accent]Scatter[] turrets provide excellent anti-air, but require \uf837 [accent]lead[] as ammo.
+gz.aa = Flying units cannot easily be dispatched with standard turrets.\n:scatter: [accent]Scatter[] turrets provide excellent anti-air, but require :lead: [accent]lead[] as ammo.
gz.scatterammo = Supply the Scatter turret with [accent]lead[], using conveyors.
gz.supplyturret = [accent]Supply Turret
gz.zone1 = This is the enemy drop zone.
gz.zone2 = Anything built in the radius is destroyed when a wave starts.
gz.zone3 = A wave will begin now.\nGet ready.
gz.finish = Build more turrets, mine more resources,\nand defend against all the waves to [accent]capture the sector[].
-onset.mine = Click to mine \uf748 [accent]beryllium[] from walls.\n\nUse [accent][[WASD] to move.
-onset.mine.mobile = Tap to mine \uf748 [accent]beryllium[] from walls.
-onset.research = Open the \ue875 tech tree.\nResearch, then place a \uf73e [accent]turbine condenser[] on the vent.\nThis will generate [accent]power[].
-onset.bore = Research and place a \uf741 [accent]plasma bore[].\nThis automatically mines resources from walls.
-onset.power = To [accent]power[] the plasma bore, research and place a \uf73d [accent]beam node[].\nConnect the turbine condenser to the plasma bore.
-onset.ducts = Research and place \uf799 [accent]ducts[] to move the mined resources from the plasma bore to the core.\nClick and drag to place multiple ducts.\n[accent]Scroll[] to rotate.
-onset.ducts.mobile = Research and place \uf799 [accent]ducts[] to move the mined resources from the plasma bore to the core.\n\nHold down your finger for a second and drag to place multiple ducts.
+onset.mine = Click to mine :beryllium: [accent]beryllium[] from walls.\n\nUse [accent][[WASD] to move.
+onset.mine.mobile = Tap to mine :beryllium: [accent]beryllium[] from walls.
+onset.research = Open the :tree: tech tree.\nResearch, then place a :turbine-condenser: [accent]turbine condenser[] on the vent.\nThis will generate [accent]power[].
+onset.bore = Research and place a :plasma-bore: [accent]plasma bore[].\nThis automatically mines resources from walls.
+onset.power = To [accent]power[] the plasma bore, research and place a :beam-node: [accent]beam node[].\nConnect the turbine condenser to the plasma bore.
+onset.ducts = Research and place :duct: [accent]ducts[] to move the mined resources from the plasma bore to the core.\nClick and drag to place multiple ducts.\n[accent]Scroll[] to rotate.
+onset.ducts.mobile = Research and place :duct: [accent]ducts[] to move the mined resources from the plasma bore to the core.\n\nHold down your finger for a second and drag to place multiple ducts.
onset.moremine = Expand the mining operation.\nPlace more Plasma Bores and use beam nodes and ducts to support them.\nMine 200 beryllium.
-onset.graphite = More complex blocks require \uf835 [accent]graphite[].\nSet up plasma bores to mine graphite.
-onset.research2 = Begin researching [accent]factories[].\nResearch the \uf74d [accent]cliff crusher[] and \uf779 [accent]silicon arc furnace[].
-onset.arcfurnace = The arc furnace needs \uf834 [accent]sand[] and \uf835 [accent]graphite[] to create \uf82f [accent]silicon[].\n[accent]Power[] is also required.
-onset.crusher = Use \uf74d [accent]cliff crushers[] to mine sand.
-onset.fabricator = Use [accent]units[] to explore the map, defend buildings, and attack the enemy. Research and place a \uf6a2 [accent]tank fabricator[].
+onset.graphite = More complex blocks require :graphite: [accent]graphite[].\nSet up plasma bores to mine graphite.
+onset.research2 = Begin researching [accent]factories[].\nResearch the :cliff-crusher: [accent]cliff crusher[] and :silicon-arc-furnace: [accent]silicon arc furnace[].
+onset.arcfurnace = The arc furnace needs :sand: [accent]sand[] and :graphite: [accent]graphite[] to create :silicon: [accent]silicon[].\n[accent]Power[] is also required.
+onset.crusher = Use :cliff-crusher: [accent]cliff crushers[] to mine sand.
+onset.fabricator = Use [accent]units[] to explore the map, defend buildings, and attack the enemy. Research and place a :tank-fabricator: [accent]tank fabricator[].
onset.makeunit = Produce a unit.\nUse the "?" button to see selected factory requirements.
-onset.turrets = Units are effective, but [accent]turrets[] provide better defensive capabilities if used effectively.\nPlace a \uf6eb [accent]Breach[] turret.\nTurrets require \uf748 [accent]ammo[].
+onset.turrets = Units are effective, but [accent]turrets[] provide better defensive capabilities if used effectively.\nPlace a :breach: [accent]Breach[] turret.\nTurrets require :beryllium: [accent]ammo[].
onset.turretammo = Supply the turret with [accent]beryllium ammo.[]
-onset.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace some \uf6ee [accent]beryllium walls[] around the turret.
+onset.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace some :beryllium-wall: [accent]beryllium walls[] around the turret.
onset.enemies = Enemy incoming, prepare to defend.
onset.defenses = [accent]Set up defenses:[lightgray] {0}
onset.attack = The enemy is vulnerable. Counter-attack.
-onset.cores = New cores can be placed on [accent]core tiles[].\nNew cores function as forward bases and share a resource inventory with other cores.\nPlace a \uf725 core.
+onset.cores = New cores can be placed on [accent]core tiles[].\nNew cores function as forward bases and share a resource inventory with other cores.\nPlace a :core-bastion: core.
onset.detect = The enemy will be able to detect you in 2 minutes.\nSet up defenses, mining, and production.
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.
@@ -2145,7 +2187,9 @@ block.vault.description = Stores a large amount of items of each type. An[lightg
block.container.description = Stores a small amount of items of each type. An[lightgray] unloader[] can be used to retrieve items from the container.
block.unloader.description = Unloads items from a container, vault or core onto a conveyor or directly into an adjacent block. The type of item to be unloaded can be changed by tapping on the unloader.
block.launch-pad.description = Launches batches of items without any need for a core launch. Unfinished.
-block.launch-pad.details = Sub-orbital system for point-to-point transportation of resources. Payload pods are fragile and incapable of surviving re-entry.
+block.advanced-launch-pad.description = Launches batches of items to selected sectors. Only accepts one item type at a time.
+block.advanced-launch-pad.details = Sub-orbital system for point-to-point transportation of resources.
+block.landing-pad.description = Receives items from launch pads in other sectors. Requires large amounts of water to protect against impacts of landings.
block.duo.description = A small, cheap turret. Useful against ground units.
block.scatter.description = A medium-sized anti-air turret. Sprays clumps of lead or scrap flak at enemy units.
block.scorch.description = Burns any ground enemies close to it. Highly effective at close range.
@@ -2252,6 +2296,7 @@ block.unit-cargo-loader.description = Constructs cargo drones. Drones automatica
block.unit-cargo-unload-point.description = Acts as an unloading point for cargo drones. Accepts items that match the selected filter.
block.beam-node.description = Transmits power to other blocks orthogonally. Stores a small amount of power.
block.beam-tower.description = Transmits power to other blocks orthogonally. Stores a large amount of power. Long-range.
+block.beam-link.description = Transmits power over vast distances.\nOnly capable of connecting to adjacent structures or other beam links.
block.turbine-condenser.description = Generates power when placed on vents. Produces a small amount of water.
block.chemical-combustion-chamber.description = Generates power from arkycite and ozone.
block.pyrolysis-generator.description = Generates large amounts of power from arkycite and slag. Produces water as a byproduct.
@@ -2340,6 +2385,7 @@ unit.emanate.description = Builds structures to defend the Acropolis core. Repai
lst.read = Read a number from a linked memory cell.
lst.write = Write a number to a linked memory cell.
lst.print = Add text to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used.
+lst.printchar = Add a UTF-16 character or content icon to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used.
lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example"
lst.draw = Add an operation to the drawing buffer.\nDoes not display anything until [accent]Draw Flush[] is used.
lst.drawflush = Flush queued [accent]Draw[] operations to a display.
@@ -2425,12 +2471,14 @@ lenum.shootp = Shoot at a unit/building with velocity prediction.
lenum.config = Building configuration, e.g. sorter item.
lenum.enabled = Whether the block is enabled.
laccess.currentammotype = Current ammo item/liquid of a turret.
+laccess.memorycapacity = Number of cells in a memory block.
laccess.color = Illuminator color.
laccess.controller = Unit controller. If processor controlled, returns processor.\nIf in a formation, returns leader.\nOtherwise, returns the unit itself.
laccess.dead = Whether a unit/building is dead or no longer valid.
laccess.controlled = Returns:\n[accent]@ctrlProcessor[] if unit controller is processor\n[accent]@ctrlPlayer[] if unit/building controller is player\n[accent]@ctrlFormation[] if unit is in formation\nOtherwise, 0.
laccess.progress = Action progress, 0 to 1.\nReturns production, turret reload or construction progress.
laccess.speed = Top speed of a unit, in tiles/sec.
+laccess.size = Size of a unit/building or the length of a string.
laccess.id = ID of a unit/block/item/liquid.\nThis is the inverse of the lookup operation.
lcategory.unknown = Unknown
lcategory.unknown.description = Uncategorized instructions.
@@ -2559,3 +2607,29 @@ lenum.autoscale = Whether to scale marker corresponding to player's zoom level.
lenum.posi = Indexed position, used for line and quad markers with index zero being the first position.
lenum.uvi = Texture's position ranging from zero to one, used for quad markers.
lenum.colori = Indexed position, used for line and quad markers with index zero being the first color.
+lenum.wavetimer = Whether the waves come automatically on a timer. If not, waves come when the play button is pressed.
+lenum.wave = Current wave number. Can be anything in non-wave modes.
+lenum.currentwavetime = Wave countdown in ticks.
+lenum.waves = Whether waves are spawnable at all.
+lenum.wavesending = Whether the waves can be manually summoned with the play button.
+lenum.attackmode = Determines if gamemode is attack mode.
+lenum.wavespacing = Time between waves in ticks.
+lenum.enemycorebuildradius = No-build zone around enemy core radius.
+lenum.dropzoneradius = Radius around enemy wave drop zones.
+lenum.unitcap = Base unit cap. Can still be increased by blocks.
+lenum.lighting = Whether ambient lighting is enabled.
+lenum.buildspeed = Multiplier for building speed.
+lenum.unithealth = How much health units start with.
+lenum.unitbuildspeed = How fast unit factories build units.
+lenum.unitcost = Multiplier of resources that units take to build.
+lenum.unitdamage = How much damage units deal.
+lenum.blockhealth = How much health blocks start with.
+lenum.blockdamage = How much damage blocks (turrets) deal.
+lenum.rtsminweight = Minimum "advantage" needed for a squad to attack. Higher -> more cautious.
+lenum.rtsminsquad = Minimum size of attack squads.
+lenum.maparea = Playable map area. Anything outside the area will not be interactable.
+lenum.ambientlight = Ambient light color. Used when lighting is enabled.
+lenum.solarmultiplier = Multiplies power output of solar panels.
+lenum.dragmultiplier = Environment drag multiplier.
+lenum.ban = Blocks or units that cannot be placed or built.
+lenum.unban = Unban a unit or block.
diff --git a/core/assets/bundles/bundle_pl.properties b/core/assets/bundles/bundle_pl.properties
index 54bd7d5445..d2b49d830a 100644
--- a/core/assets/bundles/bundle_pl.properties
+++ b/core/assets/bundles/bundle_pl.properties
@@ -19,7 +19,7 @@ linkfail = Nie udało się otworzyć linku!\nURL został skopiowany.
screenshot = Zapisano zrzut ekranu w {0}
screenshot.invalid = Zrzut ekranu jest zbyt duży. Najprawdopodobniej brakuje miejsca w pamięci urządzenia.
gameover = Koniec Gry
-gameover.disconnect = Odłącz
+gameover.disconnect = Rozłącz
gameover.pvp = Zwyciężyła drużyna [accent]{0}[]!
gameover.waiting = [accent]Oczekiwanie na następną mapę...
highscore = [accent]Nowy rekord!
@@ -41,12 +41,12 @@ be.ignore = Zignoruj
be.noupdates = Nie znaleziono aktualizacji.
be.check = Sprawdź aktualizacje
-mods.browser = Przeglądarka Modów
+mods.browser = Przeglądarka Modyfikacji
mods.browser.selected = Wybrany Mod
-mods.browser.add = Zainsta-\nluj Moda
+mods.browser.add = Zainsta-\nluj Modyfikacje
mods.browser.reinstall = Przeins-\ntaluj
mods.browser.view-releases = Pokaż wydania
-mods.browser.noreleases = [scarlet]Nie znaleziono wydań\n[accent]Nie znaleziono żadnych wydań tego moda. Sprawdź czy ten mod posiada publiczne wydania w swoim repozytorium.
+mods.browser.noreleases = [scarlet]Nie znaleziono wydań\n[accent]Nie znaleziono żadnych wydań tej modyfikacji. Sprawdź czy ta modyfikacja posiada publiczne wydania w swoim repozytorium.
mods.browser.latest =
mods.browser.releases = Wydania
mods.github.open = Otwórz w GitHub'ie
@@ -129,24 +129,25 @@ committingchanges = Zatwierdzanie Zmian
done = Gotowe
feature.unsupported = Twoje urządzenie nie wspiera tej funkcji.
-mods.initfailed = [red]⚠[] Inicjalizacja poprzedniej instancji Mindustry nie powiodła się. Najprawdopodobniej było to spowodowane niewłaściwym działaniem modów.\n\nAby zapobiec pętli awarii, [red]wszystkie mody zostały wyłączone.[]\n\nAby wyłączyć tę funkcję, należy wyłączyć ją w ustawieniach [accent]Ustawienia->Gra->Wyłącz mody w przypadku awarii podczas uruchamiania[].
-mods = Mody
-mods.none = [lightgray]Nie znaleziono modów!
-mods.guide = Poradnik do modów
+mods.initfailed = [red]⚠[] Inicjalizacja poprzedniej instancji Mindustry nie powiodła się. Najprawdopodobniej było to spowodowane niewłaściwym działaniem modyfikacji.\n\nAby zapobiec pętli awarii, [red]wszystkie modyfikacje zostały wyłączone.[]\n\nAby wyłączyć tę funkcję, należy wyłączyć ją w ustawieniach [accent]Ustawienia->Gra->Wyłącz modyfikacje w przypadku awarii podczas uruchamiania[].
+mods = Modyfikacje
+mods.name = Modyfikacja:
+mods.none = [lightgray]Nie znaleziono modyfikacji!
+mods.guide = Poradnik do modyfikacji
mods.report = Zgłoś błąd
-mods.openfolder = Otwórz folder z modami
+mods.openfolder = Otwórz folder z modyfikacjami
mods.viewcontent = Zobacz zawartość
mods.reload = Przeładuj
-mods.reloadexit = Gra zostanie teraz zamknięta, aby ponownie załadować mody.
+mods.reloadexit = Gra zostanie teraz zamknięta, aby ponownie załadować modyfikacje.
mod.installed = [[Installed]
-mod.display = [gray]Mod:[orange] {0}
+mod.display = [gray]Modyfikacja:[orange] {0}
mod.enabled = [lightgray]Włączony
mod.disabled = [scarlet]Wyłączony
mod.multiplayer.compatible = [gray]Kompatybilny z trybem wieloosobowym
mod.disable = Wyłącz
mod.version = Version:
mod.content = Zawartość:
-mod.delete.error = Nie udało się usunąć moda. Plik może być w użyciu.
+mod.delete.error = Nie udało się usunąć modyfikacji. Plik może być w użyciu.
mod.incompatiblegame = [red]Przestarzała Gra
mod.incompatiblemod = [red]Niekompatybilne
mod.blacklisted = [red]Niewspierane
@@ -154,31 +155,39 @@ mod.unmetdependencies = [red]Niespełnione Zależnośći
mod.erroredcontent = [scarlet]Błędy Zawartości
mod.circulardependencies = [red]Zagnieżdżone zależności
mod.incompletedependencies = [red]Brakujące zależności
-mod.requiresversion.details = Wymaga wersji gry: [accent]{0}[]\nTwoja gra jest przestarzała. Ten mod potrzebuje nowszej wersji gry (możliwe, że wersji w fazie alfa/beta) aby mógł funkcjonować.
-mod.outdatedv7.details = Ten mod jest niekompatybilny z najnowszą wersją gry. Autor musi go zaktualizować, i dodać [accent]minGameVersion: 136[] w pliku [accent]mod.json[].
-mod.blacklisted.details = Ten mod został ręczenie przeniesiony na czarną listę, ponieważ powodował wyłączenia gry i inne problemy na tej wersji. Nie używaj go.
-mod.missingdependencies.details = W tym modzie brakuje zależnośći: {0}
-mod.erroredcontent.details = Ten mod spowodował błędy przy uruchomianu. Poproś autora moda o ich naprawienie.
-mod.circulardependencies.details = Ten mod posiada zależności, które są zależne od innych zależności.
-mod.incompletedependencies.details = Moda nie da się załadować z powodu niepoprawnych lub brakujących zależności: {0}.
+mod.requiresversion.details = Wymaga wersji gry: [accent]{0}[]\nTwoja gra jest przestarzała. Ta modyfikacja potrzebuje nowszej wersji gry (możliwe, że wersji w fazie alfa/beta) aby mógł funkcjonować.
+mod.incompatiblemod.details = Ta modyfikacja jest niekompatybilna z najnowszą wersją gry. Autor musi ją zaaktualizować, i dodać [accent]minGameVersion: 147[] do jej pliku [accent]mod.json[].
+mod.blacklisted.details = Ta modyfikacja został ręczenie przeniesiony na czarną listę, ponieważ powodował wyłączenia gry i inne problemy na tej wersji. Nie używaj go.
+mod.missingdependencies.details = W tej modyfikacji brakuje zależnośći: {0}
+mod.erroredcontent.details = Ta modyfikacja spowodowała błędy przy uruchomianu. Poproś autora modyfikacji o ich naprawienie.
+mod.circulardependencies.details = Ta modyfikacja posiada zależności, które są zależne od innych zależności.
+mod.incompletedependencies.details = Nie można załadować modyfikacji z powodu niepoprawnych lub brakujących zależności: {0}.
mod.requiresversion = Wymagana wersja gry: [red]{0}
mod.errors = Wystąpił błąd podczas ładowania treści.
-mod.noerrorplay = [scarlet]Twoje mody zawierają błędy.[] Wyłącz je lub napraw błędy przed rozpoczęciem gry.
-mod.nowdisabled = [scarlet]Brakuje zależności dla moda '{0}':[accent] {1}\n[lightgray]Najpierw trzeba ściągnąć te mody.\nMod zostanie automatycznie wyłączony.
+mod.noerrorplay = [scarlet]Twoje modyfikacje zawierają błędy.[] Wyłącz je lub napraw błędy przed rozpoczęciem gry.
mod.enable = Włącz
-mod.requiresrestart = Gra zostanie wyłączona aby wprowadzić zmiany w modzie.
+mod.requiresrestart = Gra zostanie wyłączona aby wprowadzić zmiany w modyfikacji.
mod.reloadrequired = [scarlet]Wymagany restart
-mod.import = Importuj Mod
+mod.import = Importuj Modyfikacje
mod.import.file = Importuj Plik
-mod.import.github = Importuj mod z GitHuba
-mod.jarwarn = [scarlet]Mody JAR są niebezpieczne.[]\nUpewnij się, że importujesz ten mod z dobrze znanego źródła!
-mod.item.remove = Ten przedmiot jest częścią moda[accent] '{0}'[]. Aby usunąć go, odinstaluj modyfikację.
-mod.remove.confirm = Ten mod zostanie usunięty.
+mod.import.github = Importuj modyfikacje z GitHuba
+mod.jarwarn = [scarlet]Modyfikacje JAR są niebezpieczne.[]\nUpewnij się, że importujesz tą modyfikacje z dobrze znanego źródła!
+mod.item.remove = Ten przedmiot jest częścią modyfikacji[accent] '{0}'[]. Aby usunąć go, odinstaluj modyfikację.
+mod.remove.confirm = Ta modyfikacja zostanie usunięta.
mod.author = [lightgray]Autor:[] {0}
-mod.missing = Ten zapis zawiera mody, które zostały niedawno zaktualizowane, bądź nie są już zainstalowane. Zapis może zostać uszkodzony. Czy jesteś pewien, że chcesz go załadować?\n[lightgray]Mody:\n{0}
-mod.preview.missing = Przed opublikowaniem tego moda na Warsztacie musisz dodać zdjęcie podglądowe.\nDodaj zdjęcie o nazwie[accent] preview.png[] do folderu moda i spróbuj jeszcze raz.
-mod.folder.missing = Jedynie mody w formie folderów mogą się znaleźć na Warsztacie.\nAby zamienić moda w folder, wyciągnij go z archiwum, umieść w folderze i usuń archiwum. Później uruchom ponownie grę lub załaduj ponownie mody.
-mod.scripts.disable = Twoje urządzenie nie wspiera modów ze skryptami. Musisz wyłączyć te modyfikacje, aby móc grać.
+mod.missing = Ten zapis zawiera modyfikacje, które zostały niedawno zaktualizowane, bądź nie są już zainstalowane. Zapis może zostać uszkodzony. Czy jesteś pewien, że chcesz go załadować?\n[lightgray]Modyfikacje:\n{0}
+mod.preview.missing = Przed opublikowaniem tej modyfikacji na Warsztacie musisz dodać zdjęcie podglądowe.\nDodaj zdjęcie o nazwie[accent] preview.png[] do folderu modyfikacji i spróbuj jeszcze raz.
+mod.folder.missing = Jedynie modyfikacje w formie folderów mogą się znaleźć na Warsztacie.\nAby zamienić moda w folder, wyciągnij go z archiwum, umieść w folderze i usuń archiwum. Później uruchom ponownie grę lub załaduj ponownie modyfikacje.
+mod.scripts.disable = Twoje urządzenie nie wspiera modyfikacji ze skryptami. Musisz wyłączyć te modyfikacje, aby móc grać.
+mod.dependencies.error = [scarlet]Modyfikacje wymagają zależności.
+mod.dependencies.soft = (optional)
+mod.dependencies.download = Importuj
+mod.dependencies.downloadreq = Wymagany import
+mod.dependencies.downloadall = Importuj wszystko
+mod.dependencies.status = Importuj wyniki
+mod.dependencies.success = Pomyślnie pobrano:
+mod.dependencies.failure = Nie udało się pobrać:
+mod.dependencies.imported = Ta modyfikacja wymaga zależności. Pobrać?
about.button = O Grze
name = Nazwa:
@@ -194,7 +203,7 @@ campaign.select = Wybierz początkową kampanię
campaign.none = [lightgray]Wybierz planetę, na której chcesz zacząć.\nMożesz zmienić planetę w każdej chwili.
campaign.erekir = Nowsza, bardziej dopracowana zawartość. Kampania postępuje bardziej liniowo.\n\nWyższej jakości mapy oraz rozgrywka.
campaign.serpulo = Starsza zawartość; klasyczne doświadczenia. Bardziej otwarta.\n\nPotencjalnie niezbalansowane mapy i mechaniki. Słabiej dopracowana.
-campaign.difficulty = Difficulty
+campaign.difficulty = Tryb gry
completed = [accent]Ukończony
techtree = Drzewo Techno-\nlogiczne
techtree.select = Wybór Drzewa Technologicznego
@@ -295,6 +304,7 @@ disconnect.error = Błąd połączenia.
disconnect.closed = Połączenie zostało zamknięte.
disconnect.timeout = Przekroczono limit czasu.
disconnect.data = Nie udało się załadować mapy!
+disconnect.snapshottimeout = Timed out while receiving UDP snapshots.\nThis may be caused by an unstable network or connection.
cantconnect = Nie można dołączyć do gry ([accent]{0}[]).
connecting = [accent]Łączenie...
reconnecting = [accent]Ponowne łączenie...
@@ -350,11 +360,11 @@ command.rebuild = Odbudowywuj
command.assist = Asystuj Graczowi
command.move = Przemieść
command.boost = Przyspiesz
-command.enterPayload = Enter Payload Block
+command.enterPayload = Wprowadź blok ładunku
command.loadUnits = Załaduj Jednostki
command.loadBlocks = Załaduj Bloki
command.unloadPayload = Rozładuj Ładunek
-command.loopPayload = Loop Unit Transfer
+command.loopPayload = Zapętl transfer jednostek
stance.stop = Analuj Rozkazy
stance.shoot = Strzelaj
stance.holdfire = Wstrzymaj Ogień
@@ -441,9 +451,9 @@ editor.waves = Fale:
editor.rules = Zasady:
editor.generation = Generacja:
editor.objectives = Cele
-editor.locales = Locale Bundles
+editor.locales = Pakiety regionalne
editor.worldprocessors = World Processors
-editor.worldprocessors.editname = Edit Name
+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.
editor.worldprocessors.nospace = No free space to place a world processor!\nDid you fill the map with structures? Why would you do this?
editor.worldprocessors.delete.confirm = Are you sure you want to delete this world processor?\n\nIf it is surrounded by walls, it will be replaced by an environmental wall.
@@ -463,6 +473,7 @@ editor.shiftx = Przesunięcie X
editor.shifty = Przesunięcie Y
workshop = Warsztat
waves.title = Fale
+waves.team = Team
waves.remove = Usuń
waves.every = co
waves.waves = fal(e)
@@ -504,7 +515,7 @@ editor.default = [lightgray]
details = Detale...
edit = Edytuj...
variables = Zmienne
-logic.clear.confirm = Are you sure you want to clear all code from this processor?
+logic.clear.confirm = Czy na pewno chcesz wyczyścić cały kod z tego procesora??
logic.globals = Built-in Variables
editor.name = Nazwa:
editor.spawn = Stwórz Jednostkę
@@ -592,7 +603,7 @@ filter.clear = Oczyść
filter.option.ignore = Ignoruj
filter.scatter = Rozprosz
filter.terrain = Teren
-filter.logic = Logic
+filter.logic = Logika
filter.option.scale = Skala
filter.option.chance = Szansa
filter.option.mag = Wielkość
@@ -615,25 +626,25 @@ filter.option.floor2 = Druga Podłoga
filter.option.threshold2 = Drugi Próg
filter.option.radius = Zasięg
filter.option.percentile = Procent
-filter.option.code = Code
-filter.option.loop = Loop
+filter.option.code = Kod
+filter.option.loop = Pętla
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
-locales.deletelocale = Are you sure you want to delete this locale bundle?
-locales.applytoall = Apply Changes To All Locales
-locales.addtoother = Add To Other Locales
-locales.rollback = Rollback to last applied
-locales.filter = Property filter
-locales.searchname = Search name...
-locales.searchvalue = Search value...
-locales.searchlocale = Search locale...
-locales.byname = By name
-locales.byvalue = By value
-locales.showcorrect = Show properties that are present in all locales and have unique values everywhere
-locales.showmissing = Show properties that are missing in some locales
-locales.showsame = Show properties that have same values in different locales
-locales.viewproperty = View in all locales
-locales.viewing = Viewing property "{0}"
-locales.addicon = Add Icon
+locales.deletelocale = Czy na pewno chcesz usunąć ten pakiet lokalizacji?
+locales.applytoall = Zastosuj Do Wszystkich Lokalizacji
+locales.addtoother = Dodaj Do Innych Lokalizacji
+locales.rollback = Cofnij do ostatnio zastosowanego
+locales.filter = Filtr właściwości
+locales.searchname = Szukaj nazwy...
+locales.searchvalue = Szukaj wartości...
+locales.searchlocale = Szukaj lokalizacji...
+locales.byname = Po nazwie
+locales.byvalue = Po wartośći
+locales.showcorrect = Pokaż właściwości, które są obecne we wszystkich lokalizacjach i wszędzie mają unikalne wartości
+locales.showmissing = Pokaż właściwości, których brakuje w niektórych lokalizacjach
+locales.showsame = Pokaż właściwości, które mają te same wartości w różnych lokalizacjach
+locales.viewproperty = Wyświetlanie we wszystkich lokalizacjach
+locales.viewing = Wyświetlanie właściwości "{0}"
+locales.addicon = Dodaj Ikonę
width = Szerokość:
height = Wysokość:
@@ -683,12 +694,12 @@ objective.destroycore.name = Zniszcz Rdzeń
objective.commandmode.name = Tryb Poleceń
objective.flag.name = Oznaczenie
marker.shapetext.name = Dostosuj Tekst
-marker.point.name = Point
+marker.point.name = Punkt
marker.shape.name = Figura
marker.text.name = Tekst
marker.line.name = Line
marker.quad.name = Quad
-marker.texture.name = Texture
+marker.texture.name = Tekstura
marker.background = Tło
marker.outline = Kontur
objective.research = [accent]Zbadaj:\n[]{0}[lightgray]{1}
@@ -712,14 +723,18 @@ loadout = Ładunek
resources = Zasoby
resources.max = Maks.
bannedblocks = Zabronione bloki
+unbannedblocks = Unbanned Blocks
objectives = Cele
bannedunits = Zabronione jednostki
+unbannedunits = Unbanned Units
bannedunits.whitelist = Zablokowane jednostki jako biała lista
bannedblocks.whitelist = Zablokowane bloki jako biała lista
addall = Dodaj wszystkie
launch.from = Wystrzelony z: [accent]{0}
launch.capacity = Wystrzelona Ilość Przedmiotów: [accent]{0}
launch.destination = Cel: {0}
+landing.sources = Source Sectors: [accent]{0}[]
+landing.import = Max Total Import: {0}[accent]{1}[lightgray]/min
configure.invalid = Ilość musi być liczbą pomiędzy 0 a {0}.
add = Dodaj...
guardian = Zdrowie Strażnika
@@ -758,7 +773,9 @@ sectors.stored = Zmagazynowane:
sectors.resume = Kontynuuj
sectors.launch = Wystrzel
sectors.select = Wybierz
+sectors.launchselect = Select Launch Destination
sectors.nonelaunch = [lightgray]Żaden (Słońce)
+sectors.redirect = Redirect Launch Pads
sectors.rename = Zmień Nazwę Sektora
sectors.enemybase = [scarlet]Baza Wroga
sectors.vulnerable = [scarlet]Wrażliwy
@@ -790,6 +807,10 @@ difficulty.easy = Easy
difficulty.normal = Normal
difficulty.hard = Hard
difficulty.eradication = Eradication
+difficulty.enemyHealthMultiplier = Enemy Health: {0}
+difficulty.enemySpawnMultiplier = Enemy Amount: {0}
+difficulty.waveTimeMultiplier = Wave Timer: {0}
+difficulty.nomodifiers = [lightgray](No modifiers)
planets = Planety
@@ -1012,7 +1033,7 @@ stat.abilities = Umiejętności
stat.canboost = Może przyspieszyć
stat.flying = Może latać
stat.ammouse = Zużycie Amunicji
-stat.ammocapacity = Ammo Capacity
+stat.ammocapacity = Pojemność Amunicji
stat.damagemultiplier = Mnożnik Obrażeń
stat.healthmultiplier = Mnożnik Zdrowia
stat.speedmultiplier = Mnożnik Prędkości
@@ -1021,53 +1042,55 @@ stat.buildspeedmultiplier = Mnożnik Prędkości Budowania
stat.reactive = Reaguje
stat.immunities = Odporności
stat.healing = Leczy
+stat.efficiency = [stat]{0}% Efficiency
ability.forcefield = Pole Siłowe
-ability.forcefield.description = Projects a force shield that absorbs bullets
+ability.forcefield.description = Tworzy tarczę siłową, która pochłania pociski
ability.repairfield = Pole Naprawy
-ability.repairfield.description = Repairs nearby units
+ability.repairfield.description = Naprawa pobliskich jednostek
ability.statusfield = Pole Statusu
-ability.statusfield.description = Applies a status effect to nearby units
+ability.statusfield.description = Nakłada efekt statusu na pobliskie jednostki
ability.unitspawn = Fabryka Jednostek
-ability.unitspawn.description = Constructs units
+ability.unitspawn.description = Konstruuje jednostki
ability.shieldregenfield = Strefa Tarczy Regenerującej
-ability.shieldregenfield.description = Regenerates shields of nearby units
+ability.shieldregenfield.description = Regeneruje tarcze pobliskich jednostek
ability.movelightning = Pioruny Poruszania
-ability.movelightning.description = Releases lightning while moving
-ability.armorplate = Armor Plate
-ability.armorplate.description = Reduces damage taken while shooting
+ability.movelightning.description = Uwalnia pioruny podczas ruchu
+ability.armorplate = Płyta Pancerna
+ability.armorplate.description = Zmniejsza obrażenia otrzymywane podczas strzelania
ability.shieldarc = Łuk Tarczy
-ability.shieldarc.description = Projects a force shield in an arc that absorbs bullets
+ability.shieldarc.description = Tworzy tarczę siłową w łuku, która pochłania pociski
ability.suppressionfield = Pole Tłumienia Regeneracji
-ability.suppressionfield.description = Stops nearby repair buildings
+ability.suppressionfield.description = Zatrzymuje się w pobliżu budynków naprawczych
ability.energyfield = Pole Energii
-ability.energyfield.description = Zaps nearby enemies
-ability.energyfield.healdescription = Zaps nearby enemies and heals allies
+ability.energyfield.description = Razi pobliskich wrogów
+ability.energyfield.healdescription = Zadaje obrażenia pobliskim wrogom i leczy sojuszników
ability.regen = Regeneracja
-ability.regen.description = Regenerates own health over time
-ability.liquidregen = Liquid Absorption
-ability.liquidregen.description = Absorbs liquid to heal itself
-ability.spawndeath = Death Spawns
-ability.spawndeath.description = Releases units on death
-ability.liquidexplode = Death Spillage
-ability.liquidexplode.description = Spills liquid on death
-ability.stat.firingrate = [stat]{0}/sec[lightgray] firing rate
-ability.stat.regen = [stat]{0}[lightgray] health/sec
-ability.stat.pulseregen = [stat]{0}[lightgray] health/pulse
-ability.stat.shield = [stat]{0}[lightgray] shield
-ability.stat.repairspeed = [stat]{0}/sec[lightgray] repair speed
-ability.stat.slurpheal = [stat]{0}[lightgray] health/liquid unit
+ability.regen.description = Z czasem regeneruje własne zdrowie
+ability.liquidregen = Absorpcja cieczy
+ability.liquidregen.description = Wchłania płyny, aby się wyleczyć
+ability.spawndeath = Śmiertelne narodziny
+ability.spawndeath.description = Uwalnia jednostki po śmierci
+ability.liquidexplode = Wyciek Śmierci
+ability.liquidexplode.description = Wylewa płyn po śmierci
+ability.stat.firingrate = [stat]{0}/sek[lightgray] Szybkość strzelania
+ability.stat.regen = [stat]{0}[lightgray] zdrowie/sek
+ability.stat.pulseregen = [stat]{0}[lightgray] zdrowie/puls
+ability.stat.shield = [stat]{0}[lightgray] osłony
+ability.stat.repairspeed = [stat]{0}/sek[lightgray] szybkość naprawy
+ability.stat.slurpheal = [stat]{0}[lightgray] zdrowie/jednostka cieczy
ability.stat.cooldown = [stat]{0} sec[lightgray] cooldown
ability.stat.maxtargets = [stat]{0}[lightgray] max targets
ability.stat.sametypehealmultiplier = [stat]{0}%[lightgray] same type repair amount
-ability.stat.damagereduction = [stat]{0}%[lightgray] damage reduction
+ability.stat.damagereduction = [stat]{0}%[lightgray] redukcja uszkodzeń
ability.stat.minspeed = [stat]{0} tiles/sec[lightgray] min speed
-ability.stat.duration = [stat]{0} sec[lightgray] duration
-ability.stat.buildtime = [stat]{0} sec[lightgray] build time
+ability.stat.duration = [stat]{0} sek[lightgray] czas trwania
+ability.stat.buildtime = [stat]{0} sek[lightgray] czas budowy
bar.onlycoredeposit = Dozwolone jest tylko przeniesienie z rdzenia
bar.drilltierreq = Wymagane Lepsze Wiertło
+bar.nobatterypower = Niewystarczająca moc akumulatora
bar.noresources = Brak Zasobów
bar.corereq = Wymagany Rdzeń
bar.corefloor = Wymagana strefa dla rdzenia
@@ -1076,6 +1099,7 @@ bar.drillspeed = Prędkość wiertła: {0}/s
bar.pumpspeed = Prędkość pompy: {0}/s
bar.efficiency = Efektywność: {0}%
bar.boost = Przyspieszenie: +{0}%
+bar.powerbuffer = Moc baterii: {0}/{1}
bar.powerbalance = Moc: {0}
bar.powerstored = Zmagazynowano: {0}/{1}
bar.poweramount = Moc: {0}
@@ -1086,6 +1110,7 @@ bar.capacity = Pojemność: {0}
bar.unitcap = {0} {1}/{2}
bar.liquid = Płyn
bar.heat = Ciepło
+bar.cooldown = Cooldown
bar.instability = Niestabilność
bar.heatamount = Ciepło: {0}
bar.heatpercent = Ciepło: {0} ({1}%)
@@ -1104,12 +1129,13 @@ bullet.splashdamage = [stat]{0}[lightgray] Obrażenia obszarowe ~[stat] {1}[ligh
bullet.incendiary = [stat]zapalający
bullet.homing = [stat]naprowadzający
bullet.armorpierce = [stat]przebijający pancerz
-bullet.maxdamagefraction = [stat]{0}%[lightgray] damage limit
+bullet.maxdamagefraction = [stat]{0}%[lightgray] maksymalne obrażenia
bullet.suppression = [stat]{0} sec[lightgray] wyłączenie naprawy ~ [stat]{1}[lightgray] kratki
bullet.interval = [stat]{0}/sec[lightgray] częstotliwość strzału:
bullet.frags = [stat]{0}[lightgray]x pociski odłamkowe:
bullet.lightning = [stat]{0}[lightgray]x błyskawice ~ [stat]{1}[lightgray] Obrażenia
bullet.buildingdamage = [stat]{0}%[lightgray] obrażeń budynkom
+bullet.shielddamage = [stat]{0}%[lightgray] obrażenia tarczy
bullet.knockback = [stat]{0}[lightgray] odrzut
bullet.pierce = [stat]{0}[lightgray]x przebicia
bullet.infinitepierce = [stat]przebijający
@@ -1118,8 +1144,8 @@ bullet.healamount = [stat]{0}[lightgray] bezpośrednia naprawa
bullet.multiplier = [stat]{0}[lightgray]x mnożnik amunicji
bullet.reload = [stat]{0}[lightgray]x szybkość ataku
bullet.range = [stat]{0}[lightgray] zasięg ataku
-bullet.notargetsmissiles = [stat] ignores buildings
-bullet.notargetsbuildings = [stat] ignores missiles
+bullet.notargetsmissiles = [stat] ignoruje budynki
+bullet.notargetsbuildings = [stat] ignoruje rakiety
unit.blocks = bloki
unit.blockssquared = bloki²
@@ -1136,13 +1162,14 @@ unit.minutes = mins
unit.persecond = /sekundę
unit.perminute = /min
unit.timesspeed = x prędkość
+unit.multiplier = x
unit.percent = %
unit.shieldhealth = życie tarczy
unit.items = przedmioty
unit.thousands = tys.
unit.millions = mln.
unit.billions = mld.
-unit.shots = shots
+unit.shots = strzały
unit.pershot = /strzał
category.purpose = Opis
category.general = Główne
@@ -1152,8 +1179,8 @@ category.items = Przedmioty
category.crafting = Przetwórstwo
category.function = Funkcja
category.optional = Dodatkowe ulepszenia
-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 = Zawsze odtwarzaj muzykę
+setting.alwaysmusic.description = Po włączeniu muzyka będzie zawsze odtwarzana w pętli podczas gry.\nPo wyłączeniu odtwarzanie odbywa się tylko w losowych odstępach czasu.
setting.skipcoreanimation.name = Pomiń Animację Wystrzału/Lądowania
setting.landscape.name = Zablokuj tryb panoramiczny
setting.shadows.name = Cienie
@@ -1212,11 +1239,13 @@ setting.mutemusic.name = Wycisz muzykę
setting.sfxvol.name = Głośność dźwięków
setting.mutesound.name = Wycisz dźwięki
setting.crashreport.name = Wysyłaj anonimowo dane o crashu gry
+setting.communityservers.name = Pobierz listę serwerów społecznościowych
setting.savecreate.name = Automatyczne tworzenie zapisów
-setting.steampublichost.name = Public Game Visibility
+setting.steampublichost.name = Widoczność gry publicznej
setting.playerlimit.name = Limit graczy
setting.chatopacity.name = Przezroczystość czatu
setting.lasersopacity.name = Przezroczystość laserów zasilających
+setting.unitlaseropacity.name = Nieprzezroczystość wiązki górniczej jednostki
setting.bridgeopacity.name = Przezroczystość mostów
setting.playerchat.name = Wyświetlaj dymek czatu w grze
setting.showweather.name = Pokaż pogodę
@@ -1225,6 +1254,9 @@ setting.macnotch.name = Dostosuj interfejs do wyświetlania wycięcia ekranu
setting.macnotch.description = Aby zastosować zmiany, wymagane jest ponowne uruchomienie
steam.friendsonly = Tylko Znajomi
steam.friendsonly.tooltip = Czy tylko Znajomi ze Steam będą mogli dołączyć do twojej gry?\nOdznaczenie tego okienka ustawi twoją grę na publiczną - każdy może dołączyć.
+setting.maxmagnificationmultiplierpercent.name = Min Camera Distance
+setting.minmagnificationmultiplierpercent.name = Max Camera Distance
+setting.minmagnificationmultiplierpercent.description = Wysokie wartości mogą powodować problemy z wydajnością.
public.beta = Wersje beta gry nie mogą tworzyć publicznych pokoi.
uiscale.reset = Skala interfejsu uległa zmianie.\nNaciśnij "OK" by potwierdzić zmiany.\n[scarlet]Cofanie zmian i wyjście z gry za[accent] {0}[]
uiscale.cancel = Anuluj i wyjdź
@@ -1305,6 +1337,7 @@ keybind.shoot.name = Strzelanie
keybind.zoom.name = Przybliżanie
keybind.menu.name = Menu
keybind.pause.name = Pauza
+keybind.skip_wave.name = Skip Wave
keybind.pause_building.name = Wstrzymaj/kontynuuj budowę
keybind.minimap.name = Minimapa
keybind.planet_map.name = Mapa Planety
@@ -1338,7 +1371,7 @@ rules.hidebannedblocks = Ukryj zabronione bloki
rules.infiniteresources = Nieskończone Zasoby
rules.onlydepositcore = Dozwól tylko przenoszenie z rdzenia
-rules.derelictrepair = Allow Derelict Block Repair
+rules.derelictrepair = Zezwól na naprawę opuszczonego bloku
rules.reactorexplosions = Eksplozje Reaktorów
rules.coreincinerates = Rdzeń Spala Nadmiarowe Przedmioty
rules.disableworldprocessors = Wyłącz Procesor Świata
@@ -1346,17 +1379,17 @@ rules.schematic = Zezwalaj na schematy
rules.wavetimer = Zegar Fal
rules.wavesending = Wysyłanie Fal
rules.allowedit = Allow Editing Rules
-rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu.
+rules.allowedit.info = Po włączeniu tej opcji gracz może edytować zasady w grze, klikając przycisk w lewym dolnym rogu menu pauzy.
rules.alloweditworldprocessors = Allow Editing World Processors
-rules.alloweditworldprocessors.info = When enabled, world logic blocks can be placed and edited even outside the editor.
+rules.alloweditworldprocessors.info = Po włączeniu tej opcji bloki logiki świata można umieszczać i edytować nawet poza edytorem.
rules.waves = Fale
-rules.airUseSpawns = Air units use spawn points
+rules.airUseSpawns = Jednostki powietrzne korzystają z punktów odradzania
rules.attack = Tryb Ataku
rules.buildai = AI Budowania Baz
rules.buildaitier = Poziom Budowania AI
rules.rtsai = RTS AI
rules.rtsai.campaign = RTS Attack AI
-rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner.
+rules.rtsai.campaign.info = Na mapach typu „atak” sprawia, że jednostki grupują się i atakują bazy graczy w bardziej inteligentny sposób.
rules.rtsminsquadsize = Minimalny Rozmiar Składu
rules.rtsmaxsquadsize = Maksymalny Rozmiar Składu
rules.rtsminattackweight = Minimalna Waga Ataku
@@ -1372,12 +1405,14 @@ rules.unitcostmultiplier = Mnożnik Kosztu Jednostek
rules.unithealthmultiplier = Mnożnik Życia Jednostek
rules.unitdamagemultiplier = Mnożnik Obrażeń jednostek
rules.unitcrashdamagemultiplier = Obrażenia Zadawane Po Zniszczeniu
+rules.unitminespeedmultiplier = Unit Mine Speed Multiplier
rules.solarmultiplier = Mnożnik Mocy Paneli Słonecznych
rules.unitcapvariable = Rdzenie mają wpływ na limit jednostek
rules.unitpayloadsexplode = Carried Payloads Explode With The Unit
rules.unitcap = Podstawowy limit jednostek
rules.limitarea = Limit Obszaru Mapy
rules.enemycorebuildradius = Zasięg Blokady Budowy Przy Rdzeniu Wroga:[lightgray] (kratki)
+rules.extracorebuildradius = Extra No-Build Radius:[lightgray] (tiles)
rules.wavespacing = Odstępy Między Falami:[lightgray] (sek)
rules.initialwavespacing = Początkowy Odstęp Pomiędzy Falami:[lightgray] (sek)
rules.buildcostmultiplier = Mnożnik Kosztów Budowania
@@ -1400,7 +1435,10 @@ rules.title.planet = Planet
rules.lighting = Oświetlenie
rules.fog = Mgła Wojny
rules.invasions = Enemy Sector Invasions
-rules.showspawns = Show Enemy Spawns
+rules.legacylaunchpads = Legacy Launch Pad Mechanics
+rules.legacylaunchpads.info = Umożliwia korzystanie z platform startowych bez lądowisk, jak w wersji 7.0.
+landingpad.legacy.disabled = [scarlet]\ue815 Disabled[lightgray] (Legacy Launch Pads enabled)
+rules.showspawns = Pokaż miejsca odrodzenia się wroga
rules.randomwaveai = Unpredictable Wave AI
rules.fire = Ogień
rules.anyenv =
@@ -1410,9 +1448,9 @@ rules.weather = Pogoda
rules.weather.frequency = Częstotliwość:
rules.weather.always = Zawsze
rules.weather.duration = Czas trwania:
-rules.randomwaveai.info = Makes units spawned in waves target random structures instead of directly attacking the core or power generators.
-rules.placerangecheck.info = Prevents players from placing anything near enemy buildings. When trying to place a turret, the range is increased, so the turret will not be able to reach the enemy.
-rules.onlydepositcore.info = Prevents units from depositing items into any buildings except cores.
+rules.randomwaveai.info = Sprawia, że jednostki tworzone falami atakują losowe struktury zamiast bezpośrednio atakować rdzeń lub generatory mocy.
+rules.placerangecheck.info = Zapobiega graczom umieszczania czegokolwiek w pobliżu budynków wroga. Podczas próby umieszczenia wieżyczki zasięg jest zwiększony, więc wieżyczka nie będzie mogła dosięgnąć wroga.
+rules.onlydepositcore.info = Zapobiega umieszczaniu przedmiotów w budynkach poza rdzeniami.
content.item.name = Przedmioty
content.liquid.name = Płyny
@@ -1726,6 +1764,8 @@ block.meltdown.name = Roztapiacz
block.foreshadow.name = Zeus
block.container.name = Kontener
block.launch-pad.name = Wyrzutnia
+block.advanced-launch-pad.name = Launch Pad
+block.landing-pad.name = Landing Pad
block.segment.name = Segment
block.ground-factory.name = Fabryka Naziemna
block.air-factory.name = Fabryka Powietrzna
@@ -1782,6 +1822,8 @@ block.arkyic-vent.name = Arkyiczny Gejzer
block.yellow-stone-vent.name = Żółty Kamienny Gejzer
block.red-stone-vent.name = Czerwony Kamienny Gejzer
block.crystalline-vent.name = Crystalline Vent
+block.stone-vent.name = Stone Vent
+block.basalt-vent.name = Basalt Vent
block.redmat.name = Redmat
block.bluemat.name = Bluemat
block.core-zone.name = Strefa Rdzenia
@@ -1930,82 +1972,82 @@ hint.skip = Pomiń
hint.desktopMove = Użyj [accent][[WASD][] by się poruszać.
hint.zoom = [accent]Użyj[] by przybliżać lub oddalać obraz.
hint.desktopShoot = Kliknij [accent][[Lewy przycisk myszy][] by strzelać.
-hint.depositItems = By przenosić przedmioty, przeciągij je ze swojego statku do rdzenia.
+hint.depositItems = By przenosić przedmioty, przeciągnij je ze swojego statku do rdzenia.
hint.respawn = By się odrodzić jako statek, kliknij [accent][[V][].
hint.respawn.mobile = Przełączyłeś się na inną jednostkę/strukturę. By odrodzić się jako statek, [accent]kliknij w awatar w lewym górnym rogu.[]
hint.desktopPause = Naciśnij [accent][[Spację][], by zatrzymać lub wznowić grę.
hint.breaking = Użyj [accent][Prawego przycisku myszy][] i przeciągnij by zniszczyć bloki.
-hint.breaking.mobile = Aktywuj \ue817 [accent]ikonę młota[] w dolnym prawym rogu by zniszczyć bloki.\n\nPrzytrzymaj swój palec i przeciągnij by wybrać wiele bloków do zniszczenia.
+hint.breaking.mobile = Aktywuj :hammer: [accent]ikonę młota[] w dolnym prawym rogu by zniszczyć bloki.\n\nPrzytrzymaj swój palec i przeciągnij by wybrać wiele bloków do zniszczenia.
hint.blockInfo = Wyświetl informacje o bloku, wybierając go w [accent]menu budowania[], a następnie wybierając [accent][[?][] przycisk po prawej.
hint.derelict = [accent]Szare[] struktury są uszkodzonymi pozostałościami starych baz, które już nie funkcjonują.\n\nTe struktury można [accent]zdekonstruować[] dla surowców.
-hint.research = Klikij przycisk \ue875 [accent]Badań[], by odkrywać nowe technologie.
-hint.research.mobile = Użyj przycisku \ue875 [accent]Badań[] w \ue88c [accent]Menu[], by odkrywać nowe technologie.
+hint.research = Klikij przycisk :tree: [accent]Badań[], by odkrywać nowe technologie.
+hint.research.mobile = Użyj przycisku :tree: [accent]Badań[] w :menu: [accent]Menu[], by odkrywać nowe technologie.
hint.unitControl = Przytrzymaj [accent][[Lewy CTRL][] i [accent]kliknij[], by kontrolować sojusznicze jednostki i działka.
hint.unitControl.mobile = [accent][Kliknij dwukrotnie[] by kontrolować sojusznicze jednostki i działka.
hint.unitSelectControl = Żeby kontrolować jednostki wejdź w [accent]tryb komend[] trzymając [accent]Lewy Shift.[]\nW trybie komend, kliknij i przeciągnij, żeby wybrać jednostki. Kliknij [accent]Prawym Przyciskiem Myszy[], żeby wyznaczyc jednostkom cel.
hint.unitSelectControl.mobile = Aby kontrolować jednostki, wejdź w [accent]tryb dowodzenia[] poprzez naciśnięcie przcisku [accent]dowodzenia[] w lewym dolnym rogu.\nPodczas gdy jesteś w trybie dowodzenia, naciśnij długo i przeciągnij by wybrać jednostki. Stuknij w miejsce lub cel aby je tam wysłać.
-hint.launch = Gdy zebrałeś wystarczająco materiałów możesz [accent]Wystrzelić[] wybierając \ue827 [accent]Mapę[] w dolnym prawym rogu.
-hint.launch.mobile = Gdy zebrałeś wystarczająco materiałów możesz [accent]Wystrzelić[] do pobliskich sektorów klikając w \ue827 [accent]Mapę[] w \ue88c [accent]Menu[].
+hint.launch = Gdy zebrałeś wystarczająco materiałów możesz [accent]Wystrzelić[] wybierając :map: [accent]Mapę[] w dolnym prawym rogu.
+hint.launch.mobile = Gdy zebrałeś wystarczająco materiałów możesz [accent]Wystrzelić[] do pobliskich sektorów klikając w :map: [accent]Mapę[] w :menu: [accent]Menu[].
hint.schematicSelect = Przytrzymaj [accent][[F][] by kopiować i wkleić bloki.\n\n[accent][[Środkowy przycisk myszy][] kopiuje pojedynczy blok.
hint.rebuildSelect = Przytrzymaj [accent][[B][] i przeciągnij, by zaznaczyć plany zniszczonych bloków.\nTo naprawi je automatycznie.
-hint.rebuildSelect.mobile = wybierz \ue874 przycisk kopiowania, wtedy dotnij \ue80f przycisk odbudowy i przeciągnij by zaznaczyć plany zniszczonych bloków.\nTo naprawi je automatycznie.
+hint.rebuildSelect.mobile = wybierz :copy: przycisk kopiowania, wtedy dotnij :wrench: przycisk odbudowy i przeciągnij by zaznaczyć plany zniszczonych bloków.\nTo naprawi je automatycznie.
hint.conveyorPathfind = Przeciągij i przytrzymaj [accent][[Lewy CTRL][] w trakcie budowania przenośników aby wygenerować ścieżkę.
-hint.conveyorPathfind.mobile = Włącz \ue844 [accent]tryb ukośny[] i przeciągnij w trakcie budowania przenośników aby wygenerować ścieżkę.
+hint.conveyorPathfind.mobile = Włącz :diagonal: [accent]tryb ukośny[] i przeciągnij w trakcie budowania przenośników aby wygenerować ścieżkę.
hint.boost = Przytrzymaj [accent][[Lewy Shift][], by przelecieć ponad przeszkody.\n\nTylko część jednostek lądowych może to zrobić.
hint.payloadPickup = Kliknij [accent][[[], by podnieść małe bloki lub jednostki.
hint.payloadPickup.mobile = [accent]Kliknij i przytrzymaj[] mały blok by go podnieść.
hint.payloadDrop = Kliknij [accent]][], by opuścić podniesiony towar.
hint.payloadDrop.mobile = [accent]Kliknij i przytrzymaj[] w puste miejsce by opuścić podniesiony towar.
hint.waveFire = [accent]Strumień[] wypełniony wodą będzie gasić pobiskie pożary.
-hint.generator = \uf879 [accent]Generatory Spalinowe[] spalają węgiel i przekazują moc do pobliskich bloków.\n\nMożesz powiększyć odległość transmitowanej mocy używając \uf87f [accent]Węzły Prądu[].
-hint.guardian = Jednostki [accent]Strażnicze[] są uzbrojone. Słaba amunicja - taka jak [accent]Miedź[] czy [accent]Ołów[] [scarlet]nie jest efektywna[].\n\nUżyj lepszych działek takich jak naładowane \uf835 [accent]Grafitem[] \uf861 [accent]Podwójne Działka[]/\uf859 [accent]Działa Salwowe[] by pozbyć się strażników.
-hint.coreUpgrade = Rdzenie mogą być ulepszone poprzez [accent]postawienie na nich rdzenia wyższej generacji[].\n\nPostaw \uf868 Rdzeń: [accent]Podstawę[] na \uf869 Rdzeń: [accent]Odłamek[]. Żadna przeszkoda ani blok nie może stać na miejscu nowego rdzenia.
+hint.generator = :combustion-generator: [accent]Generatory Spalinowe[] spalają węgiel i przekazują moc do pobliskich bloków.\n\nMożesz powiększyć odległość transmitowanej mocy używając :power-node: [accent]Węzły Prądu[].
+hint.guardian = Jednostki [accent]Strażnicze[] są uzbrojone. Słaba amunicja - taka jak [accent]Miedź[] czy [accent]Ołów[] [scarlet]nie jest efektywna[].\n\nUżyj lepszych działek takich jak naładowane :graphite: [accent]Grafitem[] :duo: [accent]Podwójne Działka[]/:salvo: [accent]Działa Salwowe[] by pozbyć się strażników.
+hint.coreUpgrade = Rdzenie mogą być ulepszone poprzez [accent]postawienie na nich rdzenia wyższej generacji[].\n\nPostaw :core-foundation: Rdzeń: [accent]Podstawę[] na :core-shard: Rdzeń: [accent]Odłamek[]. Żadna przeszkoda ani blok nie może stać na miejscu nowego rdzenia.
hint.presetLaunch = Szare [accent]sektory[], takie jak [accent]Zamrożony Las[], to sektory do których możesz dotrzeć z każdego miejsca. Nie wymagają podbicia pobliskiego terenu.\n\n[accent]Ponumerowane sektory[], takie jak ten, [accent]są dodatkowe[].
hint.presetDifficulty = Ten sektor ma [scarlet]wysoki poziom zagrożenia przez wroga[].\nWystrzeliwanie do takich sektorów jest [accent]nie zalecane[] bez odpowiedniej technologii i przygotowania.
hint.coreIncinerate = Jak rdzeń zostanie w pełni wypełniony danym przedmiotem, reszta przedmiotów tego typu zostanie [accent]spalona[].
hint.factoryControl = Aby ustawić punkt docelowy dla [accent]wyprodukowanych jednostek[], kliknij lewym przyciskiem na fabrykę w trybie poleceń, a następnie prawym przyciskiem w miejsce docelowe.\nWyprodukowane przez nią jednostki automatycznie się tam przemieszczą.
hint.factoryControl.mobile = Aby ustawić punkt docelowy dla [accent]wyprodukowanych jednoste[], dotknij fabryki w trybie poleceń, a następnie miejsce docelowe.\nWyprodukowane przez nią jednostki automatycznie się tam przemieszczą.
-gz.mine = Przemieść się w pobliże \uf8c4 [accent]rudy miedzi[] na ziemi i kliknij, aby zacząć kopać.
-gz.mine.mobile = Przemieść się w pobliże \uf8c4 [accent]rudy miedzi[] na ziemi i dotknij, aby zacząć kopać.
-gz.research = Otwórz \ue875 drzewko technologiczne.\nZbadaj \uf870 [accent]Mechaniczne Wiertło[], Następnie wybierz je z menu w prawym dolnym rogu.\nKliknij na złoże miedzi, aby postawić na nim wiertło.
-gz.research.mobile = Otwórz \ue875 drzewko technologiczne.\nZbadaj \uf870 [accent]Mechaniczne Wiertło[], Następnie wybierz je z menu w prawym dolnym rogu.\nDotknij złoża miedzi aby postawić na nim wiertło.\n\nKliknij w \ue800 [accent]fajkę[] u dołu ekranu z prawej aby potwierdzić.
-gz.conveyors = Zbadaj i postaw \uf896 [accent]przenośniki[], aby przemieścić wykopane surowce\nz wierteł do rdzenia.\n\nNaciśnij i przeciągnij aby postawic wiele przenośników naraz.\n[accent]Użyj kółka myszki[], żeby obrócić.
-gz.conveyors.mobile = Zbadaj i postaw \uf896 [accent]przenośniki[], aby przemieścić wykopane surowce\nz wierteł do rdzenia.\n\nPrzytrzymaj przez sekundę i przeciągnij żeby postawić wiele przenośników naraz.
+gz.mine = Przemieść się w pobliże :ore-copper: [accent]rudy miedzi[] na ziemi i kliknij, aby zacząć kopać.
+gz.mine.mobile = Przemieść się w pobliże :ore-copper: [accent]rudy miedzi[] na ziemi i dotknij, aby zacząć kopać.
+gz.research = Otwórz :tree: drzewko technologiczne.\nZbadaj :mechanical-drill: [accent]Mechaniczne Wiertło[], Następnie wybierz je z menu w prawym dolnym rogu.\nKliknij na złoże miedzi, aby postawić na nim wiertło.
+gz.research.mobile = Otwórz :tree: drzewko technologiczne.\nZbadaj :mechanical-drill: [accent]Mechaniczne Wiertło[], Następnie wybierz je z menu w prawym dolnym rogu.\nDotknij złoża miedzi aby postawić na nim wiertło.\n\nKliknij w \ue800 [accent]fajkę[] u dołu ekranu z prawej aby potwierdzić.
+gz.conveyors = Zbadaj i postaw :conveyor: [accent]przenośniki[], aby przemieścić wykopane surowce\nz wierteł do rdzenia.\n\nNaciśnij i przeciągnij aby postawic wiele przenośników naraz.\n[accent]Użyj kółka myszki[], żeby obrócić.
+gz.conveyors.mobile = Zbadaj i postaw :conveyor: [accent]przenośniki[], aby przemieścić wykopane surowce\nz wierteł do rdzenia.\n\nPrzytrzymaj przez sekundę i przeciągnij żeby postawić wiele przenośników naraz.
gz.drills = Kontynuuj kopanie.\nStawiaj więcej Mechanicznych Wierteł.\nWydobądź 100 miedzi.
-gz.lead = \uf837 [accent]Ołów[] jest kolejnym często używanym surowcem.\nPostaw wiertła kopiące ołów.
-gz.moveup = \ue804 Przejdź do dalszych celów.
-gz.turrets = Zbadaj i postaw 2 \uf861 [accent]Podwójne Działka[] do obrony rdzenia.\nPodwójne działka wymagają \uf838 [accent]amunicji[] z przenośników.
+gz.lead = :lead: [accent]Ołów[] jest kolejnym często używanym surowcem.\nPostaw wiertła kopiące ołów.
+gz.moveup = :up: Przejdź do dalszych celów.
+gz.turrets = Zbadaj i postaw 2 :duo: [accent]Podwójne Działka[] do obrony rdzenia.\nPodwójne działka wymagają \uf838 [accent]amunicji[] z przenośników.
gz.duoammo = Dostarcz [accent]miedź[], do podwójnych działek przy użyciu przenośników.
-gz.walls = [accent]Mury[] mogą zapobiec uszkodzeniu budynków.\nPostaw \uf8ae [accent]miedziane mury[] wokół działek.
+gz.walls = [accent]Mury[] mogą zapobiec uszkodzeniu budynków.\nPostaw :copper-wall: [accent]miedziane mury[] wokół działek.
gz.defend = Nadchodzi wróg, przygotuj się do obrony.
-gz.aa = Latające jednostki trudno zestrzelić standardowymi działkami.\n\uf860 [accent]Flaki[] zapewniają świetną powietrzną obronę, ale używają \uf837 [accent]ołowiu[] jako amunicji.
+gz.aa = Latające jednostki trudno zestrzelić standardowymi działkami.\n:scatter: [accent]Flaki[] zapewniają świetną powietrzną obronę, ale używają :lead: [accent]ołowiu[] jako amunicji.
gz.scatterammo = Dostarcz [accent]ołowiu[]do Flaka używając przenośników.
gz.supplyturret = [accent]Załaduj Działko
gz.zone1 = To jest strefa zrzutu wroga.
gz.zone2 = Wszytko co jest zbudowane w promieniu strefy zrzutu zostaje zniszczone z początkiem fali.
gz.zone3 = Teraz zacznie się fala.\nPrzygotuj się.
gz.finish = Wybuduj więcej działek, wykop więcej surowców\ni obroń się przed wszystkimi falami żeby [accent]przejąć sektor[].
-onset.mine = Naćiśnij żeby wydobywać \uf748 [accent]beryl[] ze ścian.\n\nUżyj [accent][[WASD] aby się poruszać.
-onset.mine.mobile = Kliknij żeby wydobywać \uf748 [accent]beryl[] ze ścian.
-onset.research = Otwórz\ue875 drzewo technologiczne.\nZbadaj, a następnie postaw \uf73e [accent]turbinę parową[] na gejzerze.\nTo zacznie generować [accent]prąd[].
-onset.bore = Zbadaj i postaw \uf741 [accent]plazmowe wiertło[].\nPlazmowe wiertło automatycznie wydobywa surowce ze ścian.
-onset.power = Żeby [accent]zasilić[] plazmowe wiertło, zbadaj i postaw \uf73d [accent]węzeł promieni[].\nPołącz turbinę parową z wiertłem plazmowym.
-onset.ducts = Zbadaj i postaw \uf799 [accent]rury próżniowe[], żeby móc przemieścić surowce z wiertła plazmowego do rdzenia.\nKliknij i przeciągnij żeby postawić wiele rur próżniowych naraz.\n[accent]Użyj kółka myszki[] aby obrócić.
-onset.ducts.mobile = Zbadaj i postaw \uf799 [accent]rury próżniowe[], żeby móc przemieścić surowce z wiertła plazmowego do rdzenia.\n\nPrzytrzymaj sekundę i przeciągnij, aby postawic wiele rur próżniowych naraz.
+onset.mine = Naćiśnij żeby wydobywać :beryllium: [accent]beryl[] ze ścian.\n\nUżyj [accent][[WASD] aby się poruszać.
+onset.mine.mobile = Kliknij żeby wydobywać :beryllium: [accent]beryl[] ze ścian.
+onset.research = Otwórz:tree: drzewo technologiczne.\nZbadaj, a następnie postaw :turbine-condenser: [accent]turbinę parową[] na gejzerze.\nTo zacznie generować [accent]prąd[].
+onset.bore = Zbadaj i postaw :plasma-bore: [accent]plazmowe wiertło[].\nPlazmowe wiertło automatycznie wydobywa surowce ze ścian.
+onset.power = Żeby [accent]zasilić[] plazmowe wiertło, zbadaj i postaw :beam-node: [accent]węzeł promieni[].\nPołącz turbinę parową z wiertłem plazmowym.
+onset.ducts = Zbadaj i postaw :duct: [accent]rury próżniowe[], żeby móc przemieścić surowce z wiertła plazmowego do rdzenia.\nKliknij i przeciągnij żeby postawić wiele rur próżniowych naraz.\n[accent]Użyj kółka myszki[] aby obrócić.
+onset.ducts.mobile = Zbadaj i postaw :duct: [accent]rury próżniowe[], żeby móc przemieścić surowce z wiertła plazmowego do rdzenia.\n\nPrzytrzymaj sekundę i przeciągnij, aby postawic wiele rur próżniowych naraz.
onset.moremine = Kontynuuj kopanie.\nStawiaj więcej Wierteł Plazmowych i używaj węzłów promieni oraz rur próżniowych.\nWykop 200 berylu.
-onset.graphite = Bardziej skomplikowane bloki wymagają \uf835 [accent]grafitu[].\nUstaw wiertła plazmowe tak, żeby wydobywały grafit.
-onset.research2 = Zacznij badać [accent]fabryki[].\nZbadaj \uf74d [accent]rozkruszacz klifów[] i \uf779 [accent]krzemowy piec łukowy[].
-onset.arcfurnace = Krzemowy piec łukowy potrzebuje \uf834 [accent]piasku[] i \uf835 [accent]grafitu[], żeby produkować \uf82f [accent]krzem[].\n[accent]Prąt[] także jest potrzebny.
-onset.crusher = Użyj \uf74d [accent]rozkuruszaczy klifów[], aby wydobyć piasek.
-onset.fabricator = Używaj [accent]jednostek[], żeby eksplorować mapę, bron budynki i atakuj wrogów. Zbadaj i postaw \uf6a2 [accent]fabrykę czołgów[].
+onset.graphite = Bardziej skomplikowane bloki wymagają :graphite: [accent]grafitu[].\nUstaw wiertła plazmowe tak, żeby wydobywały grafit.
+onset.research2 = Zacznij badać [accent]fabryki[].\nZbadaj :cliff-crusher: [accent]rozkruszacz klifów[] i :silicon-arc-furnace: [accent]krzemowy piec łukowy[].
+onset.arcfurnace = Krzemowy piec łukowy potrzebuje :sand: [accent]piasku[] i :graphite: [accent]grafitu[], żeby produkować :silicon: [accent]krzem[].\n[accent]Prąt[] także jest potrzebny.
+onset.crusher = Użyj :cliff-crusher: [accent]rozkuruszaczy klifów[], aby wydobyć piasek.
+onset.fabricator = Używaj [accent]jednostek[], żeby eksplorować mapę, bron budynki i atakuj wrogów. Zbadaj i postaw :tank-fabricator: [accent]fabrykę czołgów[].
onset.makeunit = Wyprodkuj jednostkę.\nUżyj przycisku "?", żeby zobaczyć wymagania potrzebne do wybudowania obecnie wybranej fabryki.
-onset.turrets = Jednostki są efektywne, ale [accent]działka[] zapewniają lepszą efektywność jeśli chodzi o obronę.\nPostaw \uf6eb [accent]Wyłom[].\nDziałka potrzebują \uf748 [accent]amuncji[].
+onset.turrets = Jednostki są efektywne, ale [accent]działka[] zapewniają lepszą efektywność jeśli chodzi o obronę.\nPostaw :breach: [accent]Wyłom[].\nDziałka potrzebują :beryllium: [accent]amuncji[].
onset.turretammo = Dostarcz [accent]beryl[] do działka.
-onset.walls = [accent]Mury[] chronią budynki przed obrażeniami.\nPostaw parę \uf6ee [accent]berylowych murów[] naokoło działka.
+onset.walls = [accent]Mury[] chronią budynki przed obrażeniami.\nPostaw parę :beryllium-wall: [accent]berylowych murów[] naokoło działka.
onset.enemies = Nadchodzi wróg, przygotuj obronę.
-onset.defenses = [accent]Set up defenses:[lightgray] {0}
+onset.defenses = [accent]Przygotuj obronę:[lightgray] {0}
onset.attack = Wróg jest wrażliwy na atak. Przeprowadź kontratak.
-onset.cores = Nowe rdzenie mogą być postawione tylko w [accent]strefach rdzenia[].\nNowy rdzeń działa tak samo jak każdy poprzedni. Rdzenie współdzielą surowce.\nPostaw nowy \uf725 rdzeń.
+onset.cores = Nowe rdzenie mogą być postawione tylko w [accent]strefach rdzenia[].\nNowy rdzeń działa tak samo jak każdy poprzedni. Rdzenie współdzielą surowce.\nPostaw nowy :core-bastion: rdzeń.
onset.detect = Wróg wykryje cię za 2 minuty.\nPrzygotuj obronę, wydobywaj surowce i je produkuj.
onset.commandmode = Przytrzymaj [accent]shift[] aby wejść do [accent]trybu poleceń[].\n[accent]Kliknij lewy przycisk myszy i przeciągnij[] aby wybrac jednostki.\n[accent]Kliknij prawy przycisk myszy[] aby rozkazać jednostkom się przemieścić lub zaatakować.
onset.commandmode.mobile = Naciśnij [accent]przycisk poleceń[] aby wejść do [accent]trybu poleceń[].\nPrzytrzymaj palec, a następnie [accent]przeciągnij[] aby zaznaczyć jednostki.\n[accent]Kliknij[] aby rozkazać jednostkom się przemieścić lub zaatakować.
@@ -2166,7 +2208,9 @@ block.vault.description = Przechowuje duże ilości przedmiotów każdego rodzaj
block.container.description = Przechowuje małe ilości przedmiotów każdego rodzaju. Zawartość kontenera można wyciągnąć za pomocą ekstraktorów.
block.unloader.description = Wyciąga przedmioty z przyległych bloków. Typ przedmiotu jaki zostanie wyciągniety może zostać zmieniony poprzez kliknięcie.
block.launch-pad.description = Wysyła pakiety przedmiotów bez potrzeby wystrzeliwania rdzenia.
-block.launch-pad.details = System sub-orbitalny do transportu zasobów z punktu do punktu. Ładunki są kruche i nie są w stanie przetrwać ponownego wejścia.
+block.advanced-launch-pad.description = Uruchamia partie przedmiotów do wybranych sektorów. Akceptuje tylko jeden typ przedmiotu na raz.
+block.advanced-launch-pad.details = Suborbitalny system transportu zasobów z punktu do punktu.
+block.landing-pad.description = Otrzymuje przedmioty z wyrzutni w innych sektorach. Wymaga dużych ilości wody, aby chronić przed uderzeniami lądowań.
block.duo.description = Standardowa wieżyczka obronna, strzelająca naprzemian pociskami w jednostki wroga.
block.scatter.description = Rażąca wieża przeciwlotnicza, rozsiewająca śrut z ołowiu, złomu lub metaszkła w powietrzne jednostki wroga.
block.scorch.description = Podpalająca wieżyczka obronna, szczególnie efektywna wobec grupek wrogów naziemnych.
@@ -2273,6 +2317,7 @@ block.unit-cargo-loader.description = Tworzy Składaki, które automatycznie roz
block.unit-cargo-unload-point.description = Pełni funkcję punktu rozładunkowego dla Składaków. Przyjmuje przedmioty pasujące do wybranego filtra.
block.beam-node.description = Przesyła prąd prostopadłymi promieniami do innych struktur. Przechowuje niewielką ilość energii.
block.beam-tower.description = Przesyła prąd prostopadłymi promieniami do innych struktur. Przechowuje bardzo duże ilości energii. Działa na dużą odległość.
+block.beam-link.description = Transmits power over vast distances.\nOnly capable of connecting to adjacent structures or other beam links.
block.turbine-condenser.description = Po postawieniu na gejzerze produkuje prąd oraz niewielkie ilości wody.
block.chemical-combustion-chamber.description = Produkuje prąd używając do tego ozonu i arkycytu.
block.pyrolysis-generator.description = Wytwarza duże ilości prądu z żużlu i arkycytu. Woda jest produktem ubocznym.
@@ -2374,6 +2419,7 @@ unit.emanate.description = Lotnicza jednostka aministracyjna zdolna do wydobycia
lst.read = Wczytuje liczbę z połączonej komórki pamięci.
lst.write = Zapisuje liczbę do połączonej komórki pamięci.
lst.print = Dodaje tekst do buforu drukującego.\nNie wyświetla niczego dopóki [accent]Print Flush[] nie jest użyte.
+lst.printchar = Add a UTF-16 character or content icon to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used.
lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example"
lst.draw = Dodaje operacje do buforu rysującego.\nNie wyświetla niczego dopóki [accent]Draw Flush[] nie jest użyte.
lst.drawflush = Wyświetla oczekujące operacje z funkcji [accent]Draw[] na wyświetlaczu.
@@ -2461,6 +2507,7 @@ lenum.shootp = Strzel w jednostkę/budynek z zachowaniem trajektorii.
lenum.config = Konfiguracja budynku, np. sortownika.
lenum.enabled = Sprawdza czy blok jest włączony.
laccess.currentammotype = Current ammo item/liquid of a turret.
+laccess.memorycapacity = Number of cells in a memory block.
laccess.color = Kolor iluminatora.
laccess.controller = Kontroler jednostki. Jeśli jest kontrolowana przez procesor, zwraca procesor.\nJeśli we formacji, zwraca przywódcę.\nW innym wypadku zwraca samą jednostkę.
@@ -2468,6 +2515,7 @@ laccess.dead = Sprawdza czy jednostka/budynek jest zniszczony lub już nie istni
laccess.controlled = Zwraca:\n[accent]@ctrlProcessor[] jeśli kontrolerem jednostki jest procesor\n[accent]@ctrlPlayer[] jeśli kontrolerem jednostki/budynku jest gracz\n[accent]@ctrlFormation[] jeśli jednostka jest w formacji\nW innym wypadku 0.
laccess.progress = Postęp akcji, od 0 do 1.\nZwraca produkcję, przeładowanie wieżyczki lub postęp konstrukcji.
laccess.speed = Najwyższa prędkość jednostki, w kratkach/sec.
+laccess.size = Size of a unit/building or the length of a string.
laccess.id = ID jednostki/bloku/przedmiotu/płynu.\nOdwrotnośc operacji wyszukiwania.
lcategory.unknown = Inne
@@ -2612,3 +2660,29 @@ lenum.autoscale = Whether to scale marker corresponding to player's zoom level.
lenum.posi = Indexed position, used for line and quad markers with index zero being the first position.
lenum.uvi = Texture's position ranging from zero to one, used for quad markers.
lenum.colori = Indexed position, used for line and quad markers with index zero being the first color.
+lenum.wavetimer = Whether the waves come automatically on a timer. If not, waves come when the play button is pressed.
+lenum.wave = Current wave number. Can be anything in non-wave modes.
+lenum.currentwavetime = Wave countdown in ticks.
+lenum.waves = Whether waves are spawnable at all.
+lenum.wavesending = Whether the waves can be manually summoned with the play button.
+lenum.attackmode = Determines if gamemode is attack mode.
+lenum.wavespacing = Time between waves in ticks.
+lenum.enemycorebuildradius = No-build zone around enemy core radius.
+lenum.dropzoneradius = Radius around enemy wave drop zones.
+lenum.unitcap = Base unit cap. Can still be increased by blocks.
+lenum.lighting = Whether ambient lighting is enabled.
+lenum.buildspeed = Multiplier for building speed.
+lenum.unithealth = How much health units start with.
+lenum.unitbuildspeed = How fast unit factories build units.
+lenum.unitcost = Multiplier of resources that units take to build.
+lenum.unitdamage = How much damage units deal.
+lenum.blockhealth = How much health blocks start with.
+lenum.blockdamage = How much damage blocks (turrets) deal.
+lenum.rtsminweight = Minimum "advantage" needed for a squad to attack. Higher -> more cautious.
+lenum.rtsminsquad = Minimum size of attack squads.
+lenum.maparea = Playable map area. Anything outside the area will not be interactable.
+lenum.ambientlight = Ambient light color. Used when lighting is enabled.
+lenum.solarmultiplier = Multiplies power output of solar panels.
+lenum.dragmultiplier = Environment drag multiplier.
+lenum.ban = Bloki lub jednostki, których nie można umieścić ani zbudować.
+lenum.unban = Odblokuj jednostkę lub blokadę.
diff --git a/core/assets/bundles/bundle_pt_BR.properties b/core/assets/bundles/bundle_pt_BR.properties
index 71af5f6b39..dfb3922fc7 100644
--- a/core/assets/bundles/bundle_pt_BR.properties
+++ b/core/assets/bundles/bundle_pt_BR.properties
@@ -1,12 +1,12 @@
credits.text = Criado por [royal]Anuken[] - [sky]anukendev@gmail.com[]
credits = Créditos
-contributors = Tradutores e contribuidores
+contributors = Tradutores e Contribuidores
discord = Junte-se ao Discord do Mindustry! (Lá nós falamos em diversos idiomas!)
link.discord.description = O Discord oficial do Mindustry
link.reddit.description = O subreddit do Mindustry
link.github.description = Código fonte do jogo.
link.changelog.description = Lista de mudanças da atualização
-link.dev-builds.description = Versões betas
+link.dev-builds.description = Builds de desenvolvimento instáveis
link.trello.description = Trello oficial para atualizações planejadas
link.itch.io.description = Página do Itch.io com os downloads
link.google-play.description = Página da Google Play store
@@ -18,7 +18,7 @@ linkopen = Este servidor lhe enviou um link. Você tem certeza de que quer abri-
linkfail = Falha ao abrir o link\nO Url foi copiado para a área de transferência.
screenshot = Screenshot salva para {0}
screenshot.invalid = Este mapa é grande demais, você pode estar potencialmente sem memória suficiente para captura de tela.
-gameover = O núcleo foi destruído.
+gameover = Fim de jogo.
gameover.disconnect = Desconectado
gameover.pvp = O time[accent] {0}[] ganhou!
gameover.waiting = [accent]Esperando pelo próximo mapa...
@@ -34,7 +34,7 @@ load.system = Sistema
load.mod = Mods
load.scripts = Scripts
-be.update = Uma nova versão beta está disponível:
+be.update = Uma nova versão de teste está disponível:
be.update.confirm = Baixar e reiniciar o jogo agora?
be.updating = Atualizando...
be.ignore = Ignorar
@@ -51,37 +51,38 @@ mods.browser.latest =
mods.browser.releases = Versões
mods.github.open = Repositório
mods.github.open-release = Página da versão
+
mods.browser.sortdate = Ordenar por mais recente
mods.browser.sortstars = Ordenar por estrelas
schematic = Esquema
-schematic.add = Salvar esquema
+schematic.add = Salvar esquema...
schematics = Esquemas
-schematic.search = Search schematics...
+schematic.search = Procurar esquemas...
schematic.replace = Um esquema com esse nome já existe. Substituí-lo?
schematic.exists = Um esquema com esse nome já existe.
schematic.import = Importar esquema...
-schematic.exportfile = Exportar arquivo
-schematic.importfile = Importar arquivo
-schematic.browseworkshop = Navegar pela oficina
+schematic.exportfile = Exportar Arquivo
+schematic.importfile = Importar Arquivo
+schematic.browseworkshop = Navegar pela Oficina
schematic.copy = Copiar para a área de transferência
schematic.copy.import = Importar da área de transferência
schematic.shareworkshop = Compartilhar na Oficina
-schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Virar o esquema
+schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Espelhar Esquema
schematic.saved = Esquema salvo.
schematic.delete.confirm = Esse esquema será apagado. Tem certeza?
-schematic.edit = Edit Schematic
+schematic.edit = Editar Esquema
schematic.info = {0}x{1}, {2} blocos
schematic.disabled = [scarlet]Esquemas desativados[]\nVocê não tem permissão para usar esquemas nesse [accent]mapa[] ou [accent]servidor.
-schematic.tags = Tags:
-schematic.edittags = Editar Tags
-schematic.addtag = Adicionar Tag
-schematic.texttag = Tag de Texto
-schematic.icontag = Tag de Ícone
-schematic.renametag = Renomear Tag
+schematic.tags = Etiquetas:
+schematic.edittags = Editar Etiquetas
+schematic.addtag = Adicionar Etiqueta
+schematic.texttag = Etiqueta de Texto
+schematic.icontag = Etiqueta de Ícone
+schematic.renametag = Renomear Etiqueta
schematic.tagged = {0} tagged
-schematic.tagdelconfirm = Deletar essa tag completamente?
-schematic.tagexists = Essa tag já existe.
+schematic.tagdelconfirm = Deletar essa etiqueta completamente?
+schematic.tagexists = Essa etiqueta já existe.
stats = Estatísticas
stats.wave = Hordas Derrotadas
@@ -92,20 +93,20 @@ stats.destroyed = Construções Destruídas
stats.deconstructed = Construções Desconstruídas
stats.playtime = Tempo Jogado
-globalitems = [accent]Itens Globais
-map.delete = Certeza que quer deletar o mapa "[accent]{0}[]"?
-level.highscore = Melhor\npontuação: [accent] {0}
+globalitems = [accent]Itens do Planeta
+map.delete = Você tem certeza que quer deletar o mapa "[accent]{0}[]"?
+level.highscore = Melhor pontuação: [accent]{0}
level.select = Seleção de fase
level.mode = Modo de jogo:
-coreattack = < O núcleo está sob ataque! >
-nearpoint = [[ [scarlet]SAIA DO PONTO DE SPAWN IMEDIATAMENTE[] ]\nAniquilação Iminente
+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
-savegame = Salvar jogo
-loadgame = Carregar jogo
-joingame = Entrar no jogo
-customgame = Jogo customi-\nzado
-newgame = Novo jogo
+savegame = Salvar Jogo
+loadgame = Carregar Jogo
+joingame = Juntar-se ao Jogo
+customgame = Jogo Customizado
+newgame = Novo Jogo
none =
none.found = [lightgray]
none.inmap = [lightgray]
@@ -114,34 +115,35 @@ position = Posição
close = Fechar
website = Site
quit = Sair
-save.quit = Salvar e sair
+save.quit = Salvar e Sair
maps = Mapas
maps.browse = Pesquisar mapas
continue = Continuar
maps.none = [lightgray]Nenhum mapa encontrado!
invalid = Inválido
pickcolor = Escolher Cor
-preparingconfig = Preparando configuração
-preparingcontent = Preparando conteúdo
-uploadingcontent = Fazendo upload do conteúdo
-uploadingpreviewfile = Fazendo upload do arquivo de pré-visualização
-committingchanges = Enviando mudanças
+preparingconfig = Preparando Configuração
+preparingcontent = Preparando Conteúdo
+uploadingcontent = Fazendo Upload do Conteúdo
+uploadingpreviewfile = Fazendo Upload do Arquivo de Pré-visualização
+committingchanges = Enviando Mudanças
done = Feito
feature.unsupported = Seu dispositivo não suporta este recurso.
mods.initfailed = [red]⚠[] A instância anterior do Mindustry falhou ao inicializar. Provavelmente causado por mods com problema.\n\nPara previnir um loop de crash, [red]todos os mods foram desativados.[]
mods = Mods
+mods.name = Mod:
mods.none = [lightgray]Nenhum mod encontrado!
-mods.guide = Guia de mods
+mods.guide = Guia de Criar Mods
mods.report = Reportar um Bug
-mods.openfolder = Abrir pasta de mods
-mods.viewcontent = Ver conteúdo
+mods.openfolder = Abrir Pasta de Mods
+mods.viewcontent = Ver Conteúdo
mods.reload = Recarregar
-mods.reloadexit = O jogo vai fechar, para poder recarregar os mods.
+mods.reloadexit = O jogo agora irá fechar, para recarregar os mods.
mod.installed = [[Instalado]
mod.display = [gray]Mod:[orange] {0}
mod.enabled = [lightgray]Ativado
-mod.disabled = [scarlet]Desativado
+mod.disabled = [red]Desativado
mod.multiplayer.compatible = [gray]Compatível com Multiplayer
mod.disable = Desati-\nvar
mod.version = Version:
@@ -152,25 +154,27 @@ mod.incompatiblemod = [red]Incompatível
mod.blacklisted = [red]Não suportado
mod.unmetdependencies = [red]Unmet Dependencies
mod.erroredcontent = [scarlet]Erros no conteúdo
-mod.circulardependencies = [red]Circular Dependencies
-mod.incompletedependencies = [red]Incomplete Dependencies
+mod.circulardependencies = [red]Dependências Mútuas
+mod.incompletedependencies = [red]Dependências Incompletas
+
mod.requiresversion.details = Requer a versão do jogo: [accent]{0}[]\nSeu jogo está desatualizado. Este mod requer uma versão mais recente do jogo (possivelmente uma versão beta/alfa) para funcionar.
-mod.outdatedv7.details = Este mod é incompatível com a versão mais recente do jogo. O autor deve atualizá-lo e adicionar [accent]minGameVersion: 136[] ao seu arquivo [accent]mod.json[].
-mod.blacklisted.details = Este mod foi manualmente colocado na lista negra por causar falhas ou outros problemas com esta versão do jogo. Não use isso.
-mod.missingdependencies.details = Este mod está sem dependências: {0}
-mod.erroredcontent.details = Este jogo causou erros ao carregar. Peça ao autor do mod para corrigi-los.
+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 = Este mod foi manualmente colocado na lista negra por causar falhas ou outros problemas com esta versão do jogo. Não use-o.
+mod.missingdependencies.details = Este mod está com dependências ausentes: {0}
+mod.erroredcontent.details = Este mod causou erros ao carregar. Peça ao autor do mod para corrigi-los.
mod.circulardependencies.details = Este mod possui dependências que dependem umas das outras.
mod.incompletedependencies.details = Este mod não pode ser carregado devido a dependências inválidas ou ausentes: {0}.
+
mod.requiresversion = Requer a versão do jogo: [red]{0}
+
mod.errors = Ocorreram erros ao carregar o conteúdo.
mod.noerrorplay = [scarlet]Você tem mods com erros.[] Desative os mods afetados ou conserte os erros antes de jogar.
-mod.nowdisabled = [scarlet]O Mod '{0}' está com dependências ausentes:[accent] {1}\n[lightgray]Esses Mods precisam ser baixados primeiro.\nEsse Mod será desativado automaticamente.
mod.enable = Ativar
mod.requiresrestart = O jogo irá fechar para aplicar as mudanças do mod.
-mod.reloadrequired = [scarlet]Recarregamento necessário
-mod.import = Importar mod
+mod.reloadrequired = [scarlet]Recarregamento Necessário
+mod.import = Importar Mod
mod.import.file = Importar Arquivo
-mod.import.github = Importar mod do GitHub
+mod.import.github = Importar Mod do GitHub
mod.jarwarn = [scarlet]Mods JAR são altamente inseguros.[]\nTenha certeza que esse mod tenha uma fonte confiável!
mod.item.remove = Este item é parte do mod[accent] '{0}'[]. Para removê-lo, desinstale esse mod.
mod.remove.confirm = Este mod será deletado.
@@ -179,22 +183,32 @@ mod.missing = Esse jogo salvo foi criado antes de você atualizar ou desinstalar
mod.preview.missing = Antes de publicar esse mod na oficina, você deve adicionar uma imagem de pré-visualização.\nColoque uma imagem com o nome[accent] preview.png[] na pasta do mod e tente novamente.
mod.folder.missing = Somente mods no formato de pasta serão publicados na oficina.\nPara converter qualquer Mod em uma pasta, simplesmente descompacte seu arquivo numa pasta e delete o arquivo ZIP antigo, então reinicie seu jogo ou recarregue os mods.
mod.scripts.disable = Seu dispositivo não suporta mods com scripts. Você precisa desabilitar esses mods para conseguir jogar.
+mod.dependencies.error = [scarlet]Mods are missing dependencies
+mod.dependencies.soft = (optional)
+mod.dependencies.download = Import
+mod.dependencies.downloadreq = Import Required
+mod.dependencies.downloadall = Import All
+mod.dependencies.status = Import Results
+mod.dependencies.success = Successfully downloaded:
+mod.dependencies.failure = Failed to download:
+mod.dependencies.imported = This mod requires dependencies. Download?
about.button = Sobre
name = Nome:
noname = Escolha[accent] um nome[] primeiro.
search = Procurar:
planetmap = Mapa do Planeta
-launchcore = Lançar núcleo
-filename = Nome do arquivo:
-unlocked = Novo bloco desbloqueado!
+launchcore = Lançar Núcleo
+filename = Nome do Arquivo:
+unlocked = Novo conteúdo desbloqueado!
available = Nova pesquisa disponível!
unlock.incampaign = < Desbloqueie na campanha para mais detalhes >
-campaign.select = Selecione a campanha inicial
-campaign.none = [lightgray]Selecione um planeta para começar nele.\nVocê pode mudar de planeta a qualquer momento.
-campaign.erekir = Novo, conteúdo mais polido. Uma progressão mais linear na campanha.\n\nExperiência geral e mapas de maior qualidade.
-campaign.serpulo = Conteúdo antigo; a experiência clássica. Mais aberto.\n\nMapas e mecânicas de campanha potencialmente desbalanceados. Menos polido.
+campaign.select = Selecione uma Campanha Inicial
+campaign.none = [lightgray]Selecione um planeta para começar.\nIsso pode ser alterado a qualquer momento.
+campaign.erekir = Conteúdo mais novo e mais polido. Progressão de campanha principalmente linear.\n\nMapas de maior qualidade e experiência geral.
+campaign.serpulo = Conteúdo mais antigo; a experiência clássica. Mais aberto, mais conteúdo.\n\nMapas e mecânicas de campanha potencialmente desbalanceados. Menos polido.
campaign.difficulty = Difficulty
+
completed = [accent]Completado
techtree = Árvore Tecnológica
techtree.select = Seleção de Árvore Tecnológica
@@ -212,7 +226,7 @@ players.search = Procurar
players.notfound = [gray]Nenhum jogador encontrado
server.closing = [accent]Fechando servidor...
server.kicked.kick = Você foi expulso do servidor!
-server.kicked.whitelist = Você não está na whitelist do servidor.
+server.kicked.whitelist = Você não está na lista branca do servidor.
server.kicked.serverClose = Servidor fechado.
server.kicked.vote = Você foi expulso desse servidor. Adeus.
server.kicked.clientOutdated = Cliente desatualizado! Atualize seu jogo!
@@ -230,9 +244,9 @@ server.kicked.serverRestarting = O servidor esta reiniciando.
server.versions = Sua versão:[accent] {0}[]\nVersão do servidor:[accent] {1}[]
host.info = O botão de [accent]Hospedar[] hospeda um servidor no Host[scarlet]6567[] e [scarlet]6568.[]\nQualquer um no [lightgray]Wi-fi ou internet local[] pode ver este servidor na lista de servidores.\n\nSe você quiser poder entrar em qualquer servidor em seu ip, [accent]port forwarding[] é necessário.\n\n[lightgray]Nota: Se alguém está com problemas em conectar no seu servidor lan, tenha certeza que mindustry tem acesso a sua internet local nas configurações do seu firewall
join.info = Aqui, você pode entar em um [accent]IP de servidor[] para conectar, ou descobrir [accent]servidores[] da rede local.\nAmbos os servidores LAN e WAN são suportados.\n\n[lightgray]Nota: Não há uma lista de servidores automáticos; Se você quiser se conectar ao IP de alguém, você precisa pedir o IP ao anfitrião.
-hostserver = Hospedar servidor
-invitefriends = Convidar amigos
-hostserver.mobile = Hospedar\nJogo
+hostserver = Hospedar Partida Multijogador
+invitefriends = Convidar Amigos
+hostserver.mobile = Hospedar Partida
host = Hospedar
hosting = [accent]Abrindo servidor...
hosts.refresh = Recarregar
@@ -242,87 +256,91 @@ server.refreshing = Atualizando servidor
hosts.none = [lightgray]Nenhum jogo LAN encontrado!
host.invalid = [scarlet]Não foi possivel hospedar
-servers.local = Servidores locais
-servers.local.steam = Jogos públicos e servidores locais
-servers.remote = Servidores remotos
-servers.global = Servidores da comunidade
+servers.local = Servidores Locais
+servers.local.steam = Jogos Públicos e Servidores Locais
+servers.remote = Servidores Remotos
+servers.global = Servidores da Comunidade
servers.disclaimer = Servidores da comunidade [accent]não[] controlados pelo desenvolvedor.\n\nOs servidores podem conter conteúdo não apropriado para todas as idades.
-servers.showhidden = Mostrar servidores escondidos
+servers.showhidden = Mostrar servidores ocultos
server.shown = Mostrar
-server.hidden = Esconder
+server.hidden = Ocultar
-viewplayer = Vendo o Player: [accent]{0}
-trace = Rastrear jogador
+viewplayer = Vendo o Jogador: [accent]{0}
+trace = Rastrear Jogador
trace.playername = Nome do jogador: [accent]{0}
trace.ip = IP: [accent]{0}
trace.id = ID: [accent]{0}
-trace.language = Language: [accent]{0}
-trace.mobile = Cliente móvel: [accent]{0}
-trace.modclient = Cliente customizado: [accent]{0}
-trace.times.joined = Vezes que entrou: [accent]{0}
-trace.times.kicked = Vezes que foi expulso: [accent]{0}
+trace.language = Idioma: [accent]{0}
+trace.mobile = Cliente Móvel: [accent]{0}
+trace.modclient = Cliente Customizado: [accent]{0}
+trace.times.joined = Vezes que se Juntou: [accent]{0}
+trace.times.kicked = Vezes que foi Expulso: [accent]{0}
trace.ips = IPs:
trace.names = Names:
invalidid = ID do cliente invalido! Reporte o bug
+
player.ban = Banir
-player.kick = Chutar
+player.kick = Expulsar
player.trace = Rastrear
player.admin = Alternar Admin
-player.team = Trocar time
+player.team = Trocar Time
+
server.bans = Banidos
server.bans.none = Nenhum jogador banido encontrado!
server.admins = Administradores
server.admins.none = Nenhum administrador encontrado!
server.add = Adicionar servidor
-server.delete = Certeza que quer deletar o servidor?
-server.edit = Editar servidor
-server.outdated = [crimson]Servidor desatualizado![]
-server.outdated.client = [crimson]Cliente desatualizado![]
-server.version = [lightgray]Versão: {0}
-server.custombuild = [accent]Versão customizada
-confirmban = Certeza que quer banir "{0}[white]"?
-confirmkick = Certeza que quer expulsar "{0}[white]"?
-confirmunban = Certeza que quer desbanir este jogador?
-confirmadmin = Certeza que quer fazer "{0}[white]" um administrador?
-confirmunadmin = Certeza que quer remover o status de adminstrador do "{0}[white]"?
-votekick.reason = Motivo para chutar por voto
-votekick.reason.message = Tem certeza de que deseja chutar por voto "{0}[white]"?\nSe sim, digite o motivo:
-joingame.title = Entrar no jogo
-joingame.ip = IP:
+server.delete = Você tem certeza que quer deletar esse servidor?
+server.edit = Editar Servidor
+server.outdated = [scarlet]Servidor Desatualizado![]
+server.outdated.client = [scarlet]Cliente Desatualizado![]
+server.version = [gray]v{0} {1}
+server.custombuild = [accent]Versão Customizada
+confirmban = Você tem certeza que quer banir "{0}[white]"?
+confirmkick = Você tem certeza que quer expulsar "{0}[white]"?
+confirmunban = Você tem certeza que quer desbanir este jogador?
+confirmadmin = Você tem certeza que quer fazer "{0}[white]" um administrador?
+confirmunadmin = Você tem certeza que quer remover o status de adminstrador do "{0}[white]"?
+votekick.reason = Motivo para expulsar por votação
+votekick.reason.message = Tem certeza de que deseja expulsar "{0}[white]" por votação?\nSe sim, digite o motivo:
+joingame.title = Juntar-se ao jogo
+joingame.ip = Endereço IP:
disconnect = Desconectado.
disconnect.error = Erro de conexão.
disconnect.closed = Conexão fechada.
disconnect.timeout = Tempo esgotado.
disconnect.data = Falha ao carregar os dados do mundo!
+disconnect.snapshottimeout = Timed out while receiving UDP snapshots.\nThis may be caused by an unstable network or connection.
cantconnect = Impossível conectar ([accent]{0}[]).
connecting = [accent]Conectando...
reconnecting = [accent]Reconectando...
connecting.data = [accent]Carregando dados do mundo...
server.port = Porta:
-server.invalidport = Numero de port inválido!
+server.invalidport = Numero de porta inválido!
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 = [crimson]Erro ao hospedar o servidor: [accent]{0}
-save.new = Novo save
-save.overwrite = Você tem certeza que quer sobrescrever este save?
-save.nocampaign = Arquivos salvos individuais da campanha não podem ser importados.
+server.error = [scarlet]Erro ao hospedar o servidor.
+save.new = Novo Jogo Salvo
+save.overwrite = Você tem certeza que quer sobrescrever este jogo salvo?
+save.nocampaign = Arquivos de jogos salvos individuais da campanha não podem ser importados.
+
overwrite = Sobrescrever
-save.none = Nenhum save encontrado!
+save.none = Nenhum jogo salvo encontrado!
savefail = Falha ao salvar jogo!
-save.delete.confirm = Certeza que quer deletar este save?
+save.delete.confirm = Certeza que quer deletar este jogo salvo?
save.delete = Deletar
-save.export = Exportar save
-save.import.invalid = [accent]Este save é inválido!
-save.import.fail = [crimson]Falha ao importar save: [accent]{0}
-save.export.fail = [crimson]Falha ao exportar save: [accent]{0}
-save.import = Importar save
-save.newslot = Nome do save:
+save.export = Exportar Jogo Salvo
+save.import.invalid = [accent]Este jogo salvo é inválido!
+save.import.fail = [crimson]Falha ao importar jogo salvo: [accent]{0}
+save.export.fail = [crimson]Falha ao exportar jogo salvo: [accent]{0}
+save.import = Importar jogo salvo
+save.newslot = Nome do jogo salvo:
save.rename = Renomear
-save.rename.text = Novo jogo:
-selectslot = Selecione um lugar para salvar.
+save.rename.text = Novo nome:
+selectslot = Selecione um jogo salvo.
slot = [accent]Slot {0}
-editmessage = Editar mensagem
-save.corrupted = [accent]Save corrompido ou inválido!
+editmessage = Editar Mensagem
+save.corrupted = [accent]Jogo salvo corrompido ou inválido!
empty =
on = Ligado
off = Desligado
@@ -331,87 +349,90 @@ save.autosave = Salvar automaticamente: {0}
save.map = Mapa: {0}
save.wave = Horda {0}
save.mode = Modo de jogo: {0}
-save.date = Último salvamento: {0}
+save.date = Último Salvamento: {0}
save.playtime = Tempo de jogo: {0}
warning = Aviso.
confirm = Confirmar
delete = Excluir
-view.workshop = Ver na oficina
-workshop.listing = Editar a lista da oficina
-ok = OK
+view.workshop = Ver na Oficina
+workshop.listing = Editar a Lista da Oficina
+ok = Certo
open = Abrir
-customize = Customizar
+customize = Customizar Regras
cancel = Cancelar
command = Comando
-command.queue = [lightgray][Queuing]
+command.queue = Fila
command.mine = Minerar
command.repair = Reparar
command.rebuild = Reconstruir
-command.assist = Assist Player
+command.assist = Auxiliar Jogador
command.move = Mover
-command.boost = Boost
-command.enterPayload = Enter Payload Block
-command.loadUnits = Load Units
-command.loadBlocks = Load Blocks
-command.unloadPayload = Unload Payload
+
+command.boost = Impulso
+command.enterPayload = Inserir Bloco de Carga útil
+command.loadUnits = Carregar Unidades
+command.loadBlocks = Carregar Blocos
+command.unloadPayload = Descarregar Carga
command.loopPayload = Loop Unit Transfer
-stance.stop = Cancel Orders
-stance.shoot = Stance: Shoot
-stance.holdfire = Stance: Hold Fire
-stance.pursuetarget = Stance: Pursue Target
-stance.patrol = Stance: Patrol Path
-stance.ram = Stance: Ram\n[lightgray]Straight line movement, no pathfinding
+stance.stop = Cancelar Ordens
+stance.shoot = Modo: Atirar
+stance.holdfire = Modo: Cessar Fogo
+stance.pursuetarget = Modo: Perseguir Alvo
+stance.patrol = Modo: Patrulhar Caminho
+stance.ram = Modo: Vagar\n[lightgray]Andar em linha reta, ignorando o terreno
+
openlink = Abrir Link
-copylink = Copiar link
+copylink = Copiar Link
back = Voltar
max = Máximo
objective = Objetivo do Mapa
-crash.export = Exportar Históricos de Crashes.
-crash.none = Nenhum Histórico de Crashes Encontrado.
-crash.exported = Históricos de Crashes Exportado.
-data.export = Exportar dados
-data.import = Importar dados
-data.openfolder = Abrir pasta de dados
+crash.export = Exportar Logs de Crashes
+crash.none = Nenhum logs de Crashes Encontrado.
+crash.exported = Logs de Crashes Exportado.
+data.export = Exportar Dados
+data.import = Importar Dados
+data.openfolder = Abrir Pasta de Dados
data.exported = Dados exportados.
-data.invalid = Estes dados de jogo não são válidos.
-data.import.confirm = Importar dados externos irá deletar[scarlet] todos[] os seus dados atuais.\n[accent]Isso não pode ser desfeito![]\n\nQuando seus dados serão importados, seu jogo irá sair imediatamente.
+data.invalid = Esse dados de jogo não são válidos.
+data.import.confirm = Importar dados externos irá deletar[scarlet] todos[] os seus dados atuais.\n[accent]Isso não pode ser desfeito![]\n\nQuando seus dados serão importados, seu jogo irá fechar imediatamente.
quit.confirm = Você tem certeza que quer sair?
loading = [accent]Carregando...
downloading = [accent]Baixando...
saving = [accent]Salvando...
-respawn = [accent][[{0}][] para nascer no núcleo
+respawn = [accent][[{0}][] para renascer
cancelbuilding = [accent][[{0}][] para cancelar a construção
selectschematic = [accent][[{0}][] para selecionar + copiar
-pausebuilding = [accent][[{0}][] para parar a construção
+pausebuilding = [accent][[{0}][] para pausar a construção
resumebuilding = [scarlet][[{0}][] para continuar a construção
enablebuilding = [scarlet][[{0}][] para habilitar construção
-showui = Interface escondida.\nPressione [accent][[{0}][] para mostrar a interface.
-commandmode.name = [accent]Modo de comando
-commandmode.nounits = [nenhuma unidade]
+showui = Interface oculta.\nPressione [accent][[{0}][] para exibir a interface.
+commandmode.name = [accent]Modo de Comando
+commandmode.nounits = [sem unidades]
+
wave = [accent]Horda {0}
wave.cap = [accent]Horda {0}/{1}
-wave.waiting = Proxima horda em {0}
+wave.waiting = [lightgray]Próxima horda em {0}
wave.waveInProgress = [lightgray]Horda em progresso
-waiting = Esperando...
+waiting = [lightgray]Esperando...
waiting.players = Esperando por jogadores...
-wave.enemies = [lightgray]{0} inimigos restantes
-wave.enemycores = [accent]{0}[lightgray] núcleos inimigos
-wave.enemycore = [accent]{0}[lightgray] núcleo inimigo
-wave.enemy = [lightgray]{0} inimigo restante
+wave.enemies = [lightgray]{0} Inimigos Restantes
+wave.enemycores = [accent]{0}[lightgray] Núcleos Inimigos
+wave.enemycore = [accent]{0}[lightgray] Núcleo Inimigo
+wave.enemy = [lightgray]{0} Inimigo Restante
wave.guardianwarn = Guardião se aproximando em [accent]{0}[] hordas.
wave.guardianwarn.one = Guardião se aproximando em [accent]{0}[] horda.
-loadimage = Carregar\nimagem
-saveimage = Salvar\nimagem
+loadimage = Carregar Imagem
+saveimage = Salvar Imagem
unknown = Desconhecido
custom = Customizado
-builtin = Padrão
-map.delete.confirm = Certeza que quer deletar este mapa? Isto não pode ser anulado!
-map.random = [accent]Mapa aleatório
-map.nospawn = Este mapa não possui nenhum núcleo para o jogador nascer! Adicione um núcleo {0} para este mapa no editor.
-map.nospawn.pvp = Esse mapa não tem núcleos inimigos para os jogadores nascerem! Adicione [scarlet]núcleos vermelhos[] no mapa no editor.
-map.nospawn.attack = Esse mapa não tem nenhum núcleo inimigo para o jogador atacar! coloque {0} vermelhos no editor.
+builtin = Embutido
+map.delete.confirm = Você tem certeza que quer deletar este mapa? Isso não pode ser revertido!
+map.random = [accent]Mapa Aleatório
+map.nospawn = Este mapa não possui nenhum Núcleo para o jogador nascer! Adicione um Núcleo {0} para este mapa no editor.
+map.nospawn.pvp = Esse mapa não tem Núcleos inimigos para os jogadores nascerem! Adicione [scarlet]Núcleos não-laranjas[] para este mapa no editor.
+map.nospawn.attack = Esse mapa não tem nenhum Núcleo inimigo para o jogador atacar! Adicione um Núcleos {0} para este mapa no editor.
map.invalid = Erro ao carregar o mapa: Arquivo de mapa invalido ou corrupto.
-workshop.update = Atualizar item
+workshop.update = Atualizar Item
workshop.error = Erro buscando os detalhes da oficina: {0}
map.publish.confirm = Você tem certeza de que quer publicar este mapa?\n\n[lightgray]Tenha certeza de que você concorda com o EULA da oficina primeiro, ou seus mapas não serão mostrados!
workshop.menu = Selecione oquê você gostaria de fazer com esse item.
@@ -463,6 +484,7 @@ editor.shiftx = Shift X
editor.shifty = Shift Y
workshop = Oficina
waves.title = Hordas
+waves.team = Team
waves.remove = Remover
waves.every = a cada
waves.waves = Horda(s)
@@ -720,14 +742,18 @@ loadout = Carregamento
resources = Recursos
resources.max = Máximo
bannedblocks = Blocos Banidos
+unbannedblocks = Unbanned Blocks
objectives = Objetivos
bannedunits = Unidades Banidas
+unbannedunits = Unbanned Units
bannedunits.whitelist = Banned Units As Whitelist
bannedblocks.whitelist = Banned Blocks As Whitelist
addall = Adicionar Todos
launch.from = Lançando de: [accent]{0}
launch.capacity = Capacidade para Lançamento de Itens: [accent]{0}
launch.destination = Destino: {0}
+landing.sources = Source Sectors: [accent]{0}[]
+landing.import = Max Total Import: {0}[accent]{1}[lightgray]/min
configure.invalid = A quantidade deve ser um número entre 0 e {0}.
add = Adicionar...
guardian = Guardião
@@ -766,7 +792,9 @@ sectors.stored = Armazenado:
sectors.resume = Continuar
sectors.launch = Lançar
sectors.select = Selecionar
+sectors.launchselect = Select Launch Destination
sectors.nonelaunch = [lightgray]nenhum (sun)
+sectors.redirect = Redirect Launch Pads
sectors.rename = Renomear Setor
sectors.enemybase = [scarlet]Base Inimiga
sectors.vulnerable = [scarlet]Vulnerável
@@ -798,6 +826,10 @@ difficulty.easy = Easy
difficulty.normal = Normal
difficulty.hard = Hard
difficulty.eradication = Eradication
+difficulty.enemyHealthMultiplier = Enemy Health: {0}
+difficulty.enemySpawnMultiplier = Enemy Amount: {0}
+difficulty.waveTimeMultiplier = Wave Timer: {0}
+difficulty.nomodifiers = [lightgray](No modifiers)
planets = Planetas
@@ -1032,6 +1064,7 @@ stat.buildspeedmultiplier = Multiplicador de Velocidade de Construção
stat.reactive = Reage
stat.immunities = Imunidades
stat.healing = Reparo
+stat.efficiency = [stat]{0}% Efficiency
ability.forcefield = Campo de Força
ability.forcefield.description = Projects a force shield that absorbs bullets
@@ -1078,6 +1111,7 @@ ability.stat.buildtime = [stat]{0} sec[lightgray] build time
bar.onlycoredeposit = Somente depósito no núcleo permitido
bar.drilltierreq = Broca melhor necessária.
+bar.nobatterypower = Insufficieny Battery Power
bar.noresources = Recursos Insuficientes
bar.corereq = Base do Núcleo Necessária
bar.corefloor = Zona do Núcleo Necessária
@@ -1086,6 +1120,7 @@ bar.drillspeed = Velocidade da Broca: {0}/s
bar.pumpspeed = Velocidade da Bomba: {0}/s
bar.efficiency = Eficiência: {0}%
bar.boost = Impulso: +{0}%
+bar.powerbuffer = Battery Power: {0}/{1}
bar.powerbalance = Energia: {0}
bar.powerstored = Armazenada: {0}/{1}
bar.poweramount = Energia: {0}
@@ -1096,6 +1131,7 @@ bar.capacity = Capacidade: {0}
bar.unitcap = {0} {1}/{2}
bar.liquid = Líquido
bar.heat = Calor
+bar.cooldown = Cooldown
bar.instability = Instabilidade
bar.heatamount = Calor: {0}
bar.heatpercent = Calor: {0} ({1}%)
@@ -1120,6 +1156,7 @@ bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
bullet.frags = [stat]{0}[lightgray]x balas de fragmentação:
bullet.lightning = [stat]{0}[lightgray]x raio ~ [stat]{1}[lightgray] dano
bullet.buildingdamage = [stat]{0}%[lightgray] dano em construção
+bullet.shielddamage = [stat]{0}%[lightgray] shield damage
bullet.knockback = [stat]{0}[lightgray] Impulso
bullet.pierce = [stat]{0}[lightgray]x perfuração
bullet.infinitepierce = [stat]perfuração
@@ -1146,6 +1183,7 @@ unit.minutes = mins
unit.persecond = /segundo
unit.perminute = /min
unit.timesspeed = x Velocidade
+unit.multiplier = x
unit.percent = %
unit.shieldhealth = Saúde do escudo
unit.items = itens
@@ -1222,11 +1260,13 @@ setting.mutemusic.name = Desligar Música
setting.sfxvol.name = Volume de Efeitos
setting.mutesound.name = Desligar Som
setting.crashreport.name = Enviar denúncias anônimas de erros
+setting.communityservers.name = Fetch Community Server List
setting.savecreate.name = Criar salvamentos automaticamente
setting.steampublichost.name = Public Game Visibility
setting.playerlimit.name = Limites de Player
setting.chatopacity.name = Opacidade do chat
setting.lasersopacity.name = Opacidade do laser
+setting.unitlaseropacity.name = Unit Mining Beam Opacity
setting.bridgeopacity.name = Opacidade da ponte
setting.playerchat.name = Mostrar chat em jogo
setting.showweather.name = Mostrar Gráficos do Clima
@@ -1235,6 +1275,9 @@ setting.macnotch.name = Adaptar a interface para exibir o entalhe
setting.macnotch.description = Reinicialização necessária para aplicar as alterações
steam.friendsonly = Amigos apenas
steam.friendsonly.tooltip = Se apenas amigos do Steam poderão entrar no seu jogo.\nDesmarcar esta caixa tornará seu jogo público - qualquer pessoa pode entrar.
+setting.maxmagnificationmultiplierpercent.name = Min Camera Distance
+setting.minmagnificationmultiplierpercent.name = Max Camera Distance
+setting.minmagnificationmultiplierpercent.description = High values may cause performance issues.
public.beta = Note que as versões beta do jogo não podem fazer salas públicas.
uiscale.reset = A escala da interface foi mudada.\nPressione "OK" para confirmar esta escala.\n[scarlet]Revertendo e saindo em[accent] {0}[] segundos...
uiscale.cancel = Cancelar e sair
@@ -1315,6 +1358,7 @@ keybind.shoot.name = Atirar
keybind.zoom.name = Ampliar
keybind.menu.name = Menu
keybind.pause.name = Pausar
+keybind.skip_wave.name = Skip Wave
keybind.pause_building.name = Parar/Resumir a construção
keybind.minimap.name = Minimapa
keybind.planet_map.name = Mapa do Planeta
@@ -1382,12 +1426,14 @@ rules.unitcostmultiplier = Unit Cost Multiplier
rules.unithealthmultiplier = Multiplicador de vida de unidade
rules.unitdamagemultiplier = Multiplicador de dano de Unidade
rules.unitcrashdamagemultiplier = Unit Crash Damage Multiplier
+rules.unitminespeedmultiplier = Unit Mine Speed Multiplier
rules.solarmultiplier = Multiplicador de Energia Solar
rules.unitcapvariable = Núcleos contribuem para a capacidade da unidade
rules.unitpayloadsexplode = Carried Payloads Explode With The Unit
rules.unitcap = Capacidade base da Unidade
rules.limitarea = Limitar área do mapa
rules.enemycorebuildradius = Raio de "não-criação" de núcleo inimigo:[lightgray] (blocos)
+rules.extracorebuildradius = Extra No-Build Radius:[lightgray] (tiles)
rules.wavespacing = Espaço de tempo entre hordas:[lightgray] (seg)
rules.initialwavespacing = Espaçamento de onda inicial:[lightgray] (seg)
rules.buildcostmultiplier = Multiplicador de custo de construção
@@ -1410,6 +1456,9 @@ rules.title.planet = Planeta
rules.lighting = Iluminação
rules.fog = Névoa de Guerra
rules.invasions = Enemy Sector Invasions
+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.fire = Fogo
@@ -1726,6 +1775,8 @@ block.meltdown.name = Meltdown
block.foreshadow.name = Foreshadow
block.container.name = Contêiner
block.launch-pad.name = Plataforma de Lançamento
+block.advanced-launch-pad.name = Launch Pad
+block.landing-pad.name = Landing Pad
block.segment.name = Segment
block.ground-factory.name = Fábrica de Unidades Terrestres
block.air-factory.name = Fábrica de Unidades Aéreas
@@ -1781,6 +1832,8 @@ block.arkyic-vent.name = Ventilação Arkyic
block.yellow-stone-vent.name = Ventilação de Pedra Amarela
block.red-stone-vent.name = Ventilação de Pedra Vermelha
block.crystalline-vent.name = Crystalline Vent
+block.stone-vent.name = Stone Vent
+block.basalt-vent.name = Basalt Vent
block.redmat.name = Redmat
block.bluemat.name = Bluemat
block.core-zone.name = Zona do Núcleo
@@ -1935,78 +1988,78 @@ hint.respawn = Para respawnar como nave, aperte [accent][[V][].
hint.respawn.mobile = Você mudou o controle para uma unidade/estrutura. Para respawnar como nave, [accent]toque no avatar no canto superior esquerdo.[]
hint.desktopPause = Aperte [accent][[Espaço][] para pausar e despausar o jogo.
hint.breaking = [accent]Clique-direito[] e arraste para quebrar blocos.
-hint.breaking.mobile = Ative o \ue817 [accent]martelo[] no canto inferior direito e toque para quebrar blocos.\n\nSegure com seu dedo por um segundo e arraste para selecionar o que quebrar.
+hint.breaking.mobile = Ative o :hammer: [accent]martelo[] no canto inferior direito e toque para quebrar blocos.\n\nSegure com seu dedo por um segundo e arraste para selecionar o que quebrar.
hint.blockInfo = Veja informações de um bloco, seleccionando-o no [accent]menu de construção[], então selecione o [accent][[?][] botão na direita.
hint.derelict = Estruturas [accent]abandonadas[] são restos quebrados de bases antigas que já não funcionam.\n\nEssas estruturas podem ser [accent]desconstruídas[] para ganhar recursos.
-hint.research = Use o botão de \ue875 [accent]Pesquisa[] para pesquisar novas tecnologias.
-hint.research.mobile = Use o botão de \ue875 [accent]Pesquisa[] no \ue88c [accent]Menu[] para pesquisar novas tecnologias.
+hint.research = Use o botão de :tree: [accent]Pesquisa[] para pesquisar novas tecnologias.
+hint.research.mobile = Use o botão de :tree: [accent]Pesquisa[] no :menu: [accent]Menu[] para pesquisar novas tecnologias.
hint.unitControl = Segure [accent][[L-ctrl][] e [accent]click[] para controlar suas unidades ou torretas.
hint.unitControl.mobile = [accent][[Toque duas vezes][] para controlar suas unidades ou torretas.
hint.unitSelectControl = Para controlar unidades, entre no [accent]modo de comando[] segurando [accent]Shift esquerdo.[]\nEnquanto no modo de comando, clique e segure pra selecionar unidades. Clique com o [accent]Botão direito[] em um lugar ou alvo para mandar as unidades para lá.
hint.unitSelectControl.mobile = Para controlar unidades, entre no [accent]modo de comando[] segurando o botão de [accent]comando[] no canto inferior esquerdo.\nEnquanto no modo de comando, segure e arraste pra selecionar unidades. Toque em algum lugar ou alvo para mandar as unidades para lá.
-hint.launch = Quando recursos suficientes forem coletados, você pode [accent]Lançar[] selecionando setores próximos a partir do \ue827 [accent]Mapa[] no canto inferior direito.
-hint.launch.mobile = Quando recursos suficientes forem coletados, você pode [accent]Lançar[] selecionando setores próximos a partir do \ue827 [accent]Mapa[] no \ue88c [accent]Menu[].
+hint.launch = Quando recursos suficientes forem coletados, você pode [accent]Lançar[] selecionando setores próximos a partir do :map: [accent]Mapa[] no canto inferior direito.
+hint.launch.mobile = Quando recursos suficientes forem coletados, você pode [accent]Lançar[] selecionando setores próximos a partir do :map: [accent]Mapa[] no :menu: [accent]Menu[].
hint.schematicSelect = Segure [accent][[F][] e arraste para selecionar blocos para copiar e colar.\n\n[accent][[Middle Click][] para copiar um bloco só.
hint.rebuildSelect = Segure [accent][[B][] e arraste para selecionar blocos destruídos.\nIsso irá reconstruí-los automaticamente.
-hint.rebuildSelect.mobile = Select the \ue874 copy button, then tap the \ue80f rebuild button and drag to select destroyed block plans.\nThis will rebuild them automatically.
+hint.rebuildSelect.mobile = Select the :copy: copy button, then tap the :wrench: rebuild button and drag to select destroyed block plans.\nThis will rebuild them automatically.
hint.conveyorPathfind = Segure [accent][[L-Ctrl][] enquanto arrasta as esteiras para gerar automaticamente um caminho.
-hint.conveyorPathfind.mobile = Ative o \ue844 [accent]modo diagonal[] e arraste as esteiras para gerar automaticamente um caminho.
+hint.conveyorPathfind.mobile = Ative o :diagonal: [accent]modo diagonal[] e arraste as esteiras para gerar automaticamente um caminho.
hint.boost = Segure [accent][[L-Shift][] para voar sobre obstáculos com a sua unidade.\n\nApenas algumas unidades terrestres tem propulsores.
hint.payloadPickup = Pressione [accent][[[] para pegar pequenos blocos e unidades.
hint.payloadPickup.mobile = [accent]Toque e segure[] um pequeno bloco ou unidade para o pegar.
hint.payloadDrop = Pressione [accent]][] para soltar a carga.
hint.payloadDrop.mobile = [accent]Toque e segure[] em um local vazio para soltar ali a carga.
hint.waveFire = Torretas [accent]Onda[] com munição de água vão apagar automaticamente incêndios próximos.
-hint.generator = \uf879 [accent]Geradores a Combustão[] queimam carvão e transmitem energia aos blocos ao lado.\n\nO alcance da transmissão de energia pode ser aumentado com \uf87f [accent]Células de Energia[].
-hint.guardian = Unidades [accent]Guardião[] são blindadas. Munições fracas como [accent]Cobre[] e [accent]Chumbo[] são [scarlet]não efetivas[].\n\nUse torretas melhores ou \uf835 [accent]Grafite[] \uf861Duo/\uf859Salvo como munição para derrotar Guardiões.
-hint.coreUpgrade = Núcleos podem ser melhorados [accent]colocando núcelos melhores sobre eles[].\n\nColoque uma \uf868 [accent]Fundação do Núcleo[] sobre o \uf869 [accent]Fragmento do Núcleo[]. Tenha certeza de que está livre de obstruções próximas.
+hint.generator = :combustion-generator: [accent]Geradores a Combustão[] queimam carvão e transmitem energia aos blocos ao lado.\n\nO alcance da transmissão de energia pode ser aumentado com :power-node: [accent]Células de Energia[].
+hint.guardian = Unidades [accent]Guardião[] são blindadas. Munições fracas como [accent]Cobre[] e [accent]Chumbo[] são [scarlet]não efetivas[].\n\nUse torretas melhores ou :graphite: [accent]Grafite[] :duo:Duo/:salvo:Salvo como munição para derrotar Guardiões.
+hint.coreUpgrade = Núcleos podem ser melhorados [accent]colocando núcelos melhores sobre eles[].\n\nColoque uma :core-foundation: [accent]Fundação do Núcleo[] sobre o :core-shard: [accent]Fragmento do Núcleo[]. Tenha certeza de que está livre de obstruções próximas.
hint.presetLaunch = [accent]Zona de setores[] cinzas, como a [accent]Floresta Congelada[], podem ser lançadas de qualquer lugar. Elas não precisam da captura de território próximo.\n\n[accent]Setores numerados[], como esse aqui, são [accent]opcionais[].
hint.presetDifficulty = Esse setor tem um [scarlet]alto nível de ameaça inimiga[].\nIr para esse setores [accent]não é recomendado[] sem ter tecnologia e preparação adequadas.
hint.coreIncinerate = Depois que o núcleo ter recebido até a capacidade máxima de um item, qualquer item do mesmo tipo que ele receber será [accent]incinerado[].
hint.factoryControl = Para definir a [accent]o local de saída[] de uma fábrica de unidades, clique em uma fábrica enquanto estiver no modo de comando, depois clique com o botão direito em um local.\nAs unidades produzidas por ela se moverão automaticamente para lá.
hint.factoryControl.mobile = Para definir a [accent]o local de saída[] de uma fábrica de unidades, toque em uma fábrica enquanto estiver no modo de comando, depois toque em um local.\nAs unidades produzidas por ela se moverão automaticamente para lá.
-gz.mine = Vá para perto do \uf8c4 [accent]minério de cobre[] no chão e clique para começar a minerar.
-gz.mine.mobile = Vá para perto do \uf8c4 [accent]minério de cobre[] no chão e toque nele para começar a minerar.
-gz.research = Abra a \ue875 árvore tecnológica.\nPesquise a \uf870 [accent]Broca mecânica[], Depois selecione-a pelo menu no canto inferior direito.\nClique no cobre para coloca-la.
-gz.research.mobile = Abra a \ue875 árvore tecnológica.\nPesquise a \uf870 [accent]Broca mecânica[], Depois selecione-a pelo menu no canto inferior direito.\nClique no cobre para colocá-la.\n\nPressione a \ue800 [accent]confirmação[] no canto inferior direito para confirmar.
-gz.conveyors = Pesquise e coloque \uf896 [accent]esteiras[] para mover os recursos minerados\ndas brocas para o núcleo.\n\nClique e arraste para pôr multiplas esteiras.\n[accent]Scroll[] para rotacionar.
-gz.conveyors.mobile = Pesquise e coloque \uf896 [accent]esteiras[] para mover os recursos minerados\ndas brocas para o núcleo.\n\nSegure por um segundo e arraste para colocar múltiplas esteiras.
+gz.mine = Vá para perto do :ore-copper: [accent]minério de cobre[] no chão e clique para começar a minerar.
+gz.mine.mobile = Vá para perto do :ore-copper: [accent]minério de cobre[] no chão e toque nele para começar a minerar.
+gz.research = Abra a :tree: árvore tecnológica.\nPesquise a :mechanical-drill: [accent]Broca mecânica[], Depois selecione-a pelo menu no canto inferior direito.\nClique no cobre para coloca-la.
+gz.research.mobile = Abra a :tree: árvore tecnológica.\nPesquise a :mechanical-drill: [accent]Broca mecânica[], Depois selecione-a pelo menu no canto inferior direito.\nClique no cobre para colocá-la.\n\nPressione a \ue800 [accent]confirmação[] no canto inferior direito para confirmar.
+gz.conveyors = Pesquise e coloque :conveyor: [accent]esteiras[] para mover os recursos minerados\ndas brocas para o núcleo.\n\nClique e arraste para pôr multiplas esteiras.\n[accent]Scroll[] para rotacionar.
+gz.conveyors.mobile = Pesquise e coloque :conveyor: [accent]esteiras[] para mover os recursos minerados\ndas brocas para o núcleo.\n\nSegure por um segundo e arraste para colocar múltiplas esteiras.
gz.drills = Expanda a mineração.\nColoque mais Brocas Mecânicas.\nMinere 100 cobres.
-gz.lead = \uf837 [accent]Chumbo[] é outro recurso comumente usado.\nColoque brocas para minerar chumbo.
-gz.moveup = \ue804 Vá para cima para outros objetivos.
-gz.turrets = Pesquise e coloque 2 torretas \uf861 [accent]Duo[] para defender o núcleo.\ntorretas Duo requerem \uf838 [accent]munição[] de esteiras.
+gz.lead = :lead: [accent]Chumbo[] é outro recurso comumente usado.\nColoque brocas para minerar chumbo.
+gz.moveup = :up: Vá para cima para outros objetivos.
+gz.turrets = Pesquise e coloque 2 torretas :duo: [accent]Duo[] para defender o núcleo.\ntorretas Duo requerem \uf838 [accent]munição[] de esteiras.
gz.duoammo = Abasteça as torretas Duo com [accent]cobre[], usando esteiras.
-gz.walls = [accent]Muros[] podem previnir danos recebidos de atingir as construções.\nColoque \uf8ae [accent]muros de cobre[] em volta das torretas.
+gz.walls = [accent]Muros[] podem previnir danos recebidos de atingir as construções.\nColoque :copper-wall: [accent]muros de cobre[] em volta das torretas.
gz.defend = Inimigos vindo, prepare-se para defender.
-gz.aa = Unidades flutuantes não podem ser destruidas facilmente por torretas comuns.\nTorretas\uf860 [accent]Scatter[] Proveem ótima defesa aérea, mas requerem \uf837 [accent]chumbo[] como munição.
+gz.aa = Unidades flutuantes não podem ser destruidas facilmente por torretas comuns.\nTorretas:scatter: [accent]Scatter[] Proveem ótima defesa aérea, mas requerem :lead: [accent]chumbo[] como munição.
gz.scatterammo = Abasteça a torreta Scatter com [accent]chumbo[], usando esteiras.
gz.supplyturret = [accent]Abasteça a torreta
gz.zone1 = Essa é a zona de spawn inimigo.
gz.zone2 = Qualquer coisa construida nesta área será destruida quando uma horda começar.
gz.zone3 = Uma horda vai começar agora\nSe prepare.
gz.finish = Construa mais torretas, minere mais recursos,\ne se defenda de todas as hordas para [accent]capturar o setor[].
-onset.mine = Clique para minerar \uf748 [accent]berílio[] das paredes.\n\nUse [accent][[WASD] para se mover.
-onset.mine.mobile = Toque para minerar \uf748 [accent]berílio[] das paredes.
-onset.research = Abra a \ue875 árvore tecnológica.\nPesquise, e então coloque um \uf73e [accent]Condensador de Turbina[] na ventilação.\nIsso vai gerar [accent]energia[].
-onset.bore = Pesquise e coloque uma \uf741 [accent]Mineradora de Plasma[].\nEla minera recursos das paredes automaticamente.
-onset.power = Para[accent]alimentar[] a Mineradora de Plasma, pesquise e coloque uma \uf73d [accent]Célula de Feixe[].\nConecte o condensador de turbina ao minerador de plasma.
-onset.ducts = Pesquise e coloque \uf799 [accent]dutos[] para mover recursos minerados da mineradora de plasma para o núcleo.\nClique e segure para colocar múltiplos dutos.\n[accent]Scroll[] para rotacionar.
-onset.ducts.mobile = Pesquise e coloque \uf799 [accent]dutos[] para mover recursos minerados da mineradora de plasma para o núcleo.\n\nSegure por um segundo e arraste para colocar múltiplos dutos.
+onset.mine = Clique para minerar :beryllium: [accent]berílio[] das paredes.\n\nUse [accent][[WASD] para se mover.
+onset.mine.mobile = Toque para minerar :beryllium: [accent]berílio[] das paredes.
+onset.research = Abra a :tree: árvore tecnológica.\nPesquise, e então coloque um :turbine-condenser: [accent]Condensador de Turbina[] na ventilação.\nIsso vai gerar [accent]energia[].
+onset.bore = Pesquise e coloque uma :plasma-bore: [accent]Mineradora de Plasma[].\nEla minera recursos das paredes automaticamente.
+onset.power = Para[accent]alimentar[] a Mineradora de Plasma, pesquise e coloque uma :beam-node: [accent]Célula de Feixe[].\nConecte o condensador de turbina ao minerador de plasma.
+onset.ducts = Pesquise e coloque :duct: [accent]dutos[] para mover recursos minerados da mineradora de plasma para o núcleo.\nClique e segure para colocar múltiplos dutos.\n[accent]Scroll[] para rotacionar.
+onset.ducts.mobile = Pesquise e coloque :duct: [accent]dutos[] para mover recursos minerados da mineradora de plasma para o núcleo.\n\nSegure por um segundo e arraste para colocar múltiplos dutos.
onset.moremine = Expanda a mineração.\nColoque mais Mineradoras de Plasma, use as Células de Feixe e dutos para isso.\nMinere 200 berílios.
-onset.graphite = Blocos mais complexos requerem \uf835 [accent]grafite[].\nColoque Mineradoras de Plasma para minerar grafite.
-onset.research2 = Comece a pesquisar [accent]fábricas[].\nPesquise o \uf74d [accent]Esmagador de Penhasco[] e o \uf779 [accent]silicon arc furnace[].
-onset.arcfurnace = O arc furnace precisa de \uf834 [accent]areia[] e \uf835 [accent]grafite[] para criar \uf82f [accent]silício[].\n[accent]Energia[] também é necessária.
-onset.crusher = Use o \uf74d [accent]Esmagador de Areia[] para minerar areia.
-onset.fabricator = Use [accent]unidades[] para explorar o mapa, defender construções e atacar o inimigo. Pesquise e coloque um \uf6a2 [accent]Fabricador de Tanques[].
+onset.graphite = Blocos mais complexos requerem :graphite: [accent]grafite[].\nColoque Mineradoras de Plasma para minerar grafite.
+onset.research2 = Comece a pesquisar [accent]fábricas[].\nPesquise o :cliff-crusher: [accent]Esmagador de Penhasco[] e o :silicon-arc-furnace: [accent]silicon arc furnace[].
+onset.arcfurnace = O arc furnace precisa de :sand: [accent]areia[] e :graphite: [accent]grafite[] para criar :silicon: [accent]silício[].\n[accent]Energia[] também é necessária.
+onset.crusher = Use o :cliff-crusher: [accent]Esmagador de Areia[] para minerar areia.
+onset.fabricator = Use [accent]unidades[] para explorar o mapa, defender construções e atacar o inimigo. Pesquise e coloque um :tank-fabricator: [accent]Fabricador de Tanques[].
onset.makeunit = Produza uma unidade.\nUse o botão "?" para ver os requisitos da fábrica selecionada.
-onset.turrets = Unidades são efetivas, mas [accent]torretas[] proveem melhores capacidades defensivas se usadas efetivamente.\nColoque uma torreta \uf6eb [accent]Breach[].\nTorretas requerem \uf748 [accent]munição[].
+onset.turrets = Unidades são efetivas, mas [accent]torretas[] proveem melhores capacidades defensivas se usadas efetivamente.\nColoque uma torreta :breach: [accent]Breach[].\nTorretas requerem :beryllium: [accent]munição[].
onset.turretammo = Abasteça a torreta com [accent]munição de berílio.[]
-onset.walls = [accent]Muros[] podem previnir danos recebidos de atingir as construções.\nColoque \uf6ee [accent]muros de berílio[] em volta das torretas.
+onset.walls = [accent]Muros[] podem previnir danos recebidos de atingir as construções.\nColoque :beryllium-wall: [accent]muros de berílio[] em volta das torretas.
onset.enemies = Inimigo vindo, se prepare.
onset.defenses = [accent]Set up defenses:[lightgray] {0}
onset.attack = O inimigo está vulnerável. Contra ataque.
-onset.cores = Novos núcleos podem ser colocados em [accent]ladrilhos de núcleo[].\nNovos núcleos funcionam como bases avançadas e compartilham seus recursos com outros núcleos.\nColoque um \uf725 núcleo.
+onset.cores = Novos núcleos podem ser colocados em [accent]ladrilhos de núcleo[].\nNovos núcleos funcionam como bases avançadas e compartilham seus recursos com outros núcleos.\nColoque um :core-bastion: núcleo.
onset.detect = O inimigo poderá te detectar em 2 minutos.\nConstrua defesas, mineração e produção.
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.
@@ -2174,7 +2227,9 @@ block.vault.description = Armazena uma grande quantidade de itens de cada tipo.
block.container.description = Armazena uma pequena quantidade de itens de cada tipo. Expande o armazenamento quando colocado próximo a um núcleo. O conteúdo pode ser recuperado com um descarregador.
block.unloader.description = Descarrega o item selecionado dos blocos próximos.
block.launch-pad.description = Lança lotes de itens para setores selecionados.
-block.launch-pad.details = Sistema sub-orbital para transporte ponto-a-ponto de recursos. As cápsulas de carga são frágeis e incapazes de sobreviver à reentrada.
+block.advanced-launch-pad.description = Launches batches of items to selected sectors. Only accepts one item type at a time.
+block.advanced-launch-pad.details = Sub-orbital system for point-to-point transportation of resources.
+block.landing-pad.description = Receives items from launch pads in other sectors. Requires large amounts of water to protect against impacts of landings.
block.duo.description = Dispara balas alternadas em inimigos.
block.scatter.description = Dispara tiros aglomerados de chumbo, sucata ou metavidro em unidades aéreas.
block.scorch.description = Queima qualquer unidade que estiver próxima. Altamente efetivo se for de perto.
@@ -2283,6 +2338,7 @@ block.unit-cargo-loader.description = Constrói drones de carga. Os drones distr
block.unit-cargo-unload-point.description = Atua como um ponto de descarga de drones de carga. Aceita itens que combinam com o filtro selecionado.
block.beam-node.description = Transmite energia para outros blocos ortogonalmente. Armazena uma pequena quantidade de energia.
block.beam-tower.description = Transmite energia para outros blocos ortogonalmente. Armazena uma grande quantidade de energia. Longo alcance.
+block.beam-link.description = Transmits power over vast distances.\nOnly capable of connecting to adjacent structures or other beam links.
block.turbine-condenser.description = Gera energia quando colocado em ventilações. Produz uma pequena quantidade de água.
block.chemical-combustion-chamber.description = Gera energia a partir de arkycite e ozônio.
block.pyrolysis-generator.description = Gera grandes quantidades de energia a partir de arkycite e escória. Produz água como subproduto.
@@ -2373,6 +2429,7 @@ unit.emanate.description = Constrói estruturas para defender o Núcelo Acrópol
lst.read = Ler um número de uma célula de memória vinculada.
lst.write = Escrever um número de uma célula de memória vinculada.
lst.print = Adiciona texto ao buffer de impressão.\nNão exibe nada até [accent]Print Flush[] ser usado.
+lst.printchar = Add a UTF-16 character or content icon to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used.
lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example"
lst.draw = Adicionar uma operação ao buffer de desenho.\nNão exibe nada até [accent]Draw Flush[] ser usado.
lst.drawflush = Liberar operações [accent]Draw[] enfileiradas para um display.
@@ -2460,6 +2517,7 @@ lenum.shootp = Atire em uma unidade/edifício com previsão de velocidade.
lenum.config = Configuração do edifício, por ex. item classificador.
lenum.enabled = Se o bloco está ativado.
laccess.currentammotype = Current ammo item/liquid of a turret.
+laccess.memorycapacity = Number of cells in a memory block.
laccess.color = Cor do iluminador.
laccess.controller = Controlador de unidade. Se controlado pelo processador, retorna o processador.\nCaso contrário, retorna a própria unidade.
@@ -2467,6 +2525,7 @@ laccess.dead = Se uma unidade/edifício está morta ou não é mais válida.
laccess.controlled = Retorna:\n[accent]@ctrlProcessor[] se o controlador da unidade for o processador\n[accent]@ctrlPlayer[] se o controlador da unidade/edifício for o player\n[accent]@ctrlCommand[] se o controlador da unidade for um comando do player\nCaso contrário , 0.
laccess.progress = Progresso da ação, 0 a 1.\nRetorna a produção, a recarga da torre ou o progresso da construção.
laccess.speed = Velocidade máxima de uma unidade, em ladrilhos/seg.
+laccess.size = Size of a unit/building or the length of a string.
laccess.id = ID of a unit/block/item/liquid.\nThis is the inverse of the lookup operation.
lcategory.unknown = Desconhecido
@@ -2610,3 +2669,29 @@ lenum.autoscale = Whether to scale marker corresponding to player's zoom level.
lenum.posi = Indexed position, used for line and quad markers with index zero being the first position.
lenum.uvi = Texture's position ranging from zero to one, used for quad markers.
lenum.colori = Indexed position, used for line and quad markers with index zero being the first color.
+lenum.wavetimer = Whether the waves come automatically on a timer. If not, waves come when the play button is pressed.
+lenum.wave = Current wave number. Can be anything in non-wave modes.
+lenum.currentwavetime = Wave countdown in ticks.
+lenum.waves = Whether waves are spawnable at all.
+lenum.wavesending = Whether the waves can be manually summoned with the play button.
+lenum.attackmode = Determines if gamemode is attack mode.
+lenum.wavespacing = Time between waves in ticks.
+lenum.enemycorebuildradius = No-build zone around enemy core radius.
+lenum.dropzoneradius = Radius around enemy wave drop zones.
+lenum.unitcap = Base unit cap. Can still be increased by blocks.
+lenum.lighting = Whether ambient lighting is enabled.
+lenum.buildspeed = Multiplier for building speed.
+lenum.unithealth = How much health units start with.
+lenum.unitbuildspeed = How fast unit factories build units.
+lenum.unitcost = Multiplier of resources that units take to build.
+lenum.unitdamage = How much damage units deal.
+lenum.blockhealth = How much health blocks start with.
+lenum.blockdamage = How much damage blocks (turrets) deal.
+lenum.rtsminweight = Minimum "advantage" needed for a squad to attack. Higher -> more cautious.
+lenum.rtsminsquad = Minimum size of attack squads.
+lenum.maparea = Playable map area. Anything outside the area will not be interactable.
+lenum.ambientlight = Ambient light color. Used when lighting is enabled.
+lenum.solarmultiplier = Multiplies power output of solar panels.
+lenum.dragmultiplier = Environment drag multiplier.
+lenum.ban = Blocks or units that cannot be placed or built.
+lenum.unban = Unban a unit or block.
diff --git a/core/assets/bundles/bundle_pt_PT.properties b/core/assets/bundles/bundle_pt_PT.properties
index 7b13154409..9988e6f7c2 100644
--- a/core/assets/bundles/bundle_pt_PT.properties
+++ b/core/assets/bundles/bundle_pt_PT.properties
@@ -1,30 +1,30 @@
credits.text = Criado por [royal]Anuken[] - [sky]anukendev@gmail.com[]
credits = Créditos
contributors = Tradutores e contribuidores
-discord = Junte-se ao Discord do Mindustry! (Lá falamos inglês)
-link.discord.description = O discord oficial do Mindustry
-link.reddit.description = The Mindustry subreddit
+discord = Junte-se ao Discord do Mindustry! (Lá falamos várias linguas)
+link.discord.description = O Discord oficial do Mindustry
+link.reddit.description = O subreddit do Minustry
link.github.description = Código-fonte do jogo.
link.changelog.description = Lista de mudanças da atualização
-link.dev-builds.description = Desenvolvimentos Instáveis
-link.trello.description = Trello Oficial para Atualizações Planejadas
-link.itch.io.description = Pagina da Itch.io com os Descarregamentos
-link.google-play.description = Listamento do google play store
-link.f-droid.description = F-Droid catalogue listing
+link.dev-builds.description = Versões instáves em desenvolvimento
+link.trello.description = Trello Oficial para atualizações planeadas
+link.itch.io.description = Pagina da Itch.io com as transferências
+link.google-play.description = Página da Google Play Store
+link.f-droid.description = Lista do F-Droid
link.wiki.description = Wiki oficial do Mindustry
link.suggestions.description = Sugerir novas funcionalidades
-link.bug.description = Found one? Report it here
-linkopen = This server has sent you a link. Are you sure you want to open it?\n\n[sky]{0}
-linkfail = Falha ao abrir a ligação\nO Url foi copiado
-screenshot = Screenshot gravado para {0}
-screenshot.invalid = Mapa grande demais, Potencialmente sem memória suficiente para captura.
+link.bug.description = Achou algum? Reporte-o aqui
+linkopen = Este servidor enviou-lhe um link. Tem a certeza que o quer abrir?\n\n[sky]{0}
+linkfail = Falha ao abrir a ligação\nO Url foi copiado para a área de transferência
+screenshot = Captura de ecrã gravada em {0}
+screenshot.invalid = Mapa grande demais, potencialmente sem memória suficiente para captura.
gameover = O núcleo foi destruído.
-gameover.disconnect = Disconnect
-gameover.pvp = O time[accent] {0}[] ganhou!
-gameover.waiting = [accent]Waiting for next map...
+gameover.disconnect = Desconectar
+gameover.pvp = A equipa [accent] {0}[] ganhou!
+gameover.waiting = [accent]Aguardando pelo próximo mapa...
highscore = [accent]Novo recorde!
copied = Copiado.
-indev.notready = This part of the game isn't ready yet
+indev.notready = Esta parte do jogo ainda não esta pronta
load.sound = Sons
load.map = Mapas
@@ -34,31 +34,32 @@ load.system = Sistema
load.mod = Mods
load.scripts = Scripts
-be.update = Uma nova versão do Bleeding Edge está disponível:
+be.update = Uma nova versão Bleeding Edge está disponível:
be.update.confirm = Transferir e reiniciar agora?
be.updating = A atualizar...
-be.ignore = Ignora
+be.ignore = Ignorar
be.noupdates = Atualizações não encontradas.
-be.check = A Verificar por atualizações
-mods.browser = Mod Browser
-mods.browser.selected = Selected mod
-mods.browser.add = Install
-mods.browser.reinstall = Reinstall
-mods.browser.view-releases = View Releases
-mods.browser.noreleases = [scarlet]No Releases Found\n[accent]Couldn't find any releases for this mod. Check if the mod's repository has any releases published.
-mods.browser.latest =
-mods.browser.releases = Releases
-mods.github.open = Repo
-mods.github.open-release = Release Page
-mods.browser.sortdate = Sort by recent
-mods.browser.sortstars = Sort by stars
+be.check = Verificar por atualizações
+
+mods.browser = Navegador de mods
+mods.browser.selected = Mod selecionado
+mods.browser.add = Instalar
+mods.browser.reinstall = Reinstalar
+mods.browser.view-releases = Ver versões
+mods.browser.noreleases = [scarlet]Nenhuma versão encontrada\n[accent]Não foi possível encontrar nenhuma versão do mod. Verifique se o repositório do mod tem alguma versão publicada.
+mods.browser.latest =
+mods.browser.releases = Versões
+mods.github.open = Repositório
+mods.github.open-release = Página da versão
+mods.browser.sortdate = Ordenar por mais recente
+mods.browser.sortstars = Ordenar por estrelas
schematic = Esquema
-schematic.add = Gravar Esquema...
+schematic.add = Guardar Esquema...
schematics = Esquemas
-schematic.search = Search schematics...
+schematic.search = Procurar esquemas...
schematic.replace = Um esquema com esse nome já existe. Deseja substituí-lo?
-schematic.exists = A schematic by that name already exists.
+schematic.exists = Um esquema com esse nome já existe.
schematic.import = Importar Esquema...
schematic.exportfile = Exportar Ficheiro
schematic.importfile = Importar Ficheiro
@@ -71,346 +72,363 @@ schematic.saved = Esquema gravado.
schematic.delete.confirm = Este esquema irá ser completamente apagado.
schematic.edit = Edit Schematic
schematic.info = {0}x{1}, {2} blocos
-schematic.disabled = [scarlet]Schematics disabled[]\nYou are not allowed to use schematics on this [accent]map[] or [accent]server.
-schematic.tags = Tags:
-schematic.edittags = Edit Tags
-schematic.addtag = Add Tag
-schematic.texttag = Text Tag
-schematic.icontag = Icon Tag
-schematic.renametag = Rename Tag
-schematic.tagged = {0} tagged
-schematic.tagdelconfirm = Delete this tag completely?
-schematic.tagexists = That tag already exists.
-stats = Stats
-stats.wave = Waves Defeated
-stats.unitsCreated = Units Created
-stats.enemiesDestroyed = Enemies Destroyed
-stats.built = Buildings Built
-stats.destroyed = Buildings Destroyed
-stats.deconstructed = Buildings Deconstructed
-stats.playtime = Time Played
+schematic.disabled = [scarlet]Esquemas desativados[]\nNão tens permissão para usar esquemas nesse [accent]mapa[] ou [accent]servidor.
+schematic.tags = Etiquetas:
+schematic.edittags = Editar Etiquetas
+schematic.addtag = Adicionar Etiqueta
+schematic.texttag = Etiqueta de Texto
+schematic.icontag = Etiqueta de Ícone
+schematic.renametag = Alterar o nome da etiqueta
+schematic.tagged = {0} Etiquetado/s
+schematic.tagdelconfirm = Apagar esta etiqueta completamente?
+schematic.tagexists = Essa etiqueta já existe.
+stats = Estatísticas
+stats.wave = Hordas Derrotadas
+stats.unitsCreated = Unidades Criadas
+stats.enemiesDestroyed = Inimigos destruídos
+stats.built = Construções feitas
+stats.destroyed = Construções destruídas
+stats.deconstructed = Construções Desconstruídas
+stats.playtime = Tempo de Jogo
-globalitems = [accent]Global Items
-map.delete = Certeza que quer deletar o mapa "[accent]{0}[]"?
+globalitems = [accent]Itens Globais
+map.delete = Tens a certeza que queres apagar o mapa "[accent]{0}[]"?
level.highscore = Melhor\npontuação: [accent] {0}
-level.select = Seleção de Fase
+level.select = Seleção de Nível
level.mode = Modo de Jogo:
coreattack = < O núcleo está sobre ataque! >
-nearpoint = [[ [scarlet]SAIA DO PONTO DE SPAWN IMEDIATAMENTE[] ]\nANIQUILAÇÃO IMINENTE
-database = Banco do núcleo
-database.button = Database
-savegame = Gravar Jogo
+nearpoint = [[ [scarlet]SAIA DO PONTO DE SPAWN IMEDIATAMENTE[] ]\nAniquilação iminente
+database = Banco de Dados do núcleo
+database.button = Banco de Dados
+savegame = Salvar Jogo
loadgame = Carregar Jogo
joingame = Entrar no Jogo
customgame = Jogo Customizado
newgame = Novo Jogo
none =
-none.found = [lightgray]
-none.inmap = [lightgray]
+none.found = [lightgray]
+none.inmap = [lightgray]
minimap = Mini-Mapa
position = Posição
close = Fechar
website = Site
quit = Sair
-save.quit = Gravar e sair
+save.quit = Salvar e sair
maps = Mapas
-maps.browse = Pesquisar mapas
+maps.browse = Pesquisar Mapas
continue = Continuar
maps.none = [lightgray]Nenhum Mapa Encontrado!
invalid = Inválido
pickcolor = Pick Color
-preparingconfig = Preparando configuração
-preparingcontent = Preparando conteúdo
-uploadingcontent = Enviando conteúdo
-uploadingpreviewfile = Enviando ficheiro de pré-visualização
-committingchanges = Enviando mudanças
+preparingconfig = A preparar a configuração
+preparingcontent = A preparar o conteúdo
+uploadingcontent = A enviar o conteúdo
+uploadingpreviewfile = A enviar o ficheiro de pré-visualização
+committingchanges = A enviar mudanças
done = Feito
-feature.unsupported = O teu dispositivos não suporta esta característica.
-mods.initfailed = [red]⚠[] The previous Mindustry instance failed to initialize. This was likely caused by misbehaving mods.\n\nTo prevent a crash loop, [red]all mods have been disabled.[]
+feature.unsupported = O teu dispositivo não suporta este recurso.
+
+mods.initfailed = [red]⚠[] A instância anterior do Mindustry falhou ao inicializar. Provavelmente causado por mods com problema.\n\nPara previnir um loop de crash, [red]todos os mods foram desativados.[]
mods = Mods
-mods.none = [lightgray]Mods não encontrados!
+mods.name = Mod:
+mods.none = [lightgray]Nenhum mod encontrado!
mods.guide = Guia de mods
mods.report = Reportar Bug
mods.openfolder = Abrir pasta de Mods
-mods.viewcontent = View Content
-mods.reload = Reload
-mods.reloadexit = The game will now exit, to reload mods.
-mod.installed = [[Installed]
+mods.viewcontent = Ver Conteúdo
+mods.reload = Recarregar
+mods.reloadexit = O jogo vai fechar, para recarregar os mods.
+mod.installed = [[Instalado]
mod.display = [gray]Mod:[orange] {0}
mod.enabled = [lightgray]Ativado
mod.disabled = [scarlet]Desativado
-mod.multiplayer.compatible = [gray]Multiplayer Compatible
+mod.multiplayer.compatible = [gray]Compatível com Multiplayer
mod.disable = Desativar
-mod.version = Version:
-mod.content = Content:
-mod.delete.error = Incapaz de apagar o mod. Ficheiro já em uso.
-mod.incompatiblegame = [red]Outdated Game
-mod.incompatiblemod = [red]Incompatible
-mod.blacklisted = [red]Unsupported
-mod.unmetdependencies = [red]Unmet Dependencies
-mod.erroredcontent = [scarlet]Erros de conteudo
-mod.circulardependencies = [red]Circular Dependencies
-mod.incompletedependencies = [red]Incomplete Dependencies
-mod.requiresversion.details = Requires game version: [accent]{0}[]\nYour game is outdated. This mod requires a newer version of the game (possibly a beta/alpha release) to function.
-mod.outdatedv7.details = This mod is incompatible with the latest version of the game. The author must update it, and add [accent]minGameVersion: 136[] to its [accent]mod.json[] file.
-mod.blacklisted.details = This mod has been manually blacklisted for causing crashes or other issues with this version of the game. Do not use it.
-mod.missingdependencies.details = This mod is missing dependencies: {0}
-mod.erroredcontent.details = This game caused errors when loading. Ask the mod author to fix them.
-mod.circulardependencies.details = This mod has dependencies that depends on each other.
-mod.incompletedependencies.details = This mod is unable to be loaded due to invalid or missing dependencies: {0}.
-mod.requiresversion = Requires game version: [red]{0}
+mod.version = Versão:
+mod.content = Conteúdo:
+mod.delete.error = Incapaz de apagar o mod. O ficheiro pode estar em uso.
+mod.incompatiblegame = [red]Jogo Desatualizado
+mod.incompatiblemod = [red]Incompatível
+mod.blacklisted = [red]Não suportado
+mod.unmetdependencies = [red]Dependências não satisfeitas
+mod.erroredcontent = [scarlet]Erros no conteúdo
+mod.circulardependencies = [red]Dependências redundantes
+mod.incompletedependencies = [red]Dependências incompletas
+mod.requiresversion.details = Requer a versão do jogo: [accent]{0}[]\nO teu jogo está desatualizado. Este mod requer uma versão mais recente do jogo (possivelmente uma versão beta/alfa) para funcionar.
+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 = Este mod foi manualmente colocado na Lista Negra por causar falhas ou outros problemas com esta versão do jogo. Não o use.
+mod.missingdependencies.details = Este mod tem dependências em falta: {0}
+mod.erroredcontent.details = Este jogo causou erros ao carregar. Peça ao autor do mod para corrigi-los.
+mod.circulardependencies.details = Este mod tem dependências que dependem umas das outras.
+mod.incompletedependencies.details = Este mod não pôde ser carregado devido a dependências inválidas ou ausentes: {0}.
+mod.requiresversion = Requer a versão do jogo: [red]{0}
mod.errors = Ocorreram erros ao carregar o conteúdo.
-mod.noerrorplay = [scarlet]Tens mods com erros.[] Desative os mods afetados ou corrija os erros antes de jogar.
-mod.nowdisabled = [scarlet]Mod '{0}' está faltando dependências:[accent] {1}\n[lightgray]Esses mods precisam ser baixados primeiro. NEste mod será automaticamente desativado
+mod.noerrorplay = [scarlet]Tens mods com erros.[] Desativa os mods afetados ou corrije os erros antes de jogar.
mod.enable = Ativar
-mod.requiresrestart = O jogo será fechado agora para aplicar as alterações no mod.
+mod.requiresrestart = O jogo irá fechar para aplicar as alterações do mod.
mod.reloadrequired = [scarlet]É necessario recarregar
mod.import = Importar Mod
-mod.import.file = Import File
+mod.import.file = Importar Ficheiro
mod.import.github = Importar Mod pelo GitHub
-mod.jarwarn = [scarlet]JAR mods are inherently unsafe.[]\nMake sure you're importing this mod from a trustworthy source!
-mod.item.remove = Este item faz parte do [accent] '{0}'[] mod. Para lhe remover, desinstala o mod.
-mod.remove.confirm = Este mod irá ser apagado.
+mod.jarwarn = [scarlet]Mods JAR são por natureza inseguros.[]\nTem a certeza de que estás a importar este mod de uma fonte confiável!
+mod.item.remove = Este item faz parte do [accent] '{0}'[] mod. Para removê-lo, desinstala o mod.
+mod.remove.confirm = Este mod será apagado.
mod.author = [lightgray]Autor:[] {0}
-mod.missing = Este save contém mods que foram recentemente atualizados ou que não estão mais instalados. Ao guardar pode ocorreu corrupção. Tem certeza de que deseja carregá-lo?\n[lightgray]Mods:\n{0}
-mod.preview.missing = Antes de publicar este mod no workshop, você deve adicionar uma visualização da imagem.\nNome da imagem -> [accent] preview.png[] na pasta de mods e tenta outra vez.
-mod.folder.missing = Apenas mods na pasta podem ser publicados no Workshop.\nPara converter qualquer mod para uma pasta, simplesmentes descomprime os ficheiros para a pasta e apague o ficheiro zip antigo, e depois reinicia o jogo ou os teus mods.
-mod.scripts.disable = Your device does not support mods with scripts. You must disable these mods to play the game.
+mod.missing = Este jogo salvo contém mods que foram recentemente atualizados ou que não estão mais instalados. Pode ocorrer corrupção ao guardar. Tens a certeza de que desejas carregá-lo?\n[lightgray]Mods:\n{0}
+mod.preview.missing = Antes de publicar este mod na Workshop, você deve adicionar uma visualização da imagem.\nNome da imagem -> [accent] preview.png[] na pasta de mods e tentar outra vez.
+mod.folder.missing = Apenas mods no formato de pasta podem ser publicados na Workshop.\nPara converter qualquer mod para uma pasta, simplesmente descomprime os ficheiros para a pasta e apague o ficheiro ZIP antigo, e depois reinicia o jogo ou recarrega os teus mods.
+mod.scripts.disable = O teu dispositivo não suporta mods com scripts. Deves desativar estes mods para conseguir jogar.
+mod.dependencies.error = [scarlet]Mods are missing dependencies
+mod.dependencies.soft = (optional)
+mod.dependencies.download = Import
+mod.dependencies.downloadreq = Import Required
+mod.dependencies.downloadall = Import All
+mod.dependencies.status = Import Results
+mod.dependencies.success = Successfully downloaded:
+mod.dependencies.failure = Failed to download:
+mod.dependencies.imported = This mod requires dependencies. Download?
about.button = Sobre
name = Nome:
noname = Escolha[accent] um nome[] primeiro.
-search = Search:
-planetmap = Planet Map
-launchcore = Launch Core
-filename = Nome do ficheiro:
-unlocked = Novo bloco Desbloqueado!
-available = New research available!
-unlock.incampaign = < Unlock in campaign for details >
-campaign.select = Select Starting Campaign
-campaign.none = [lightgray]Select a planet to start on.\nThis can be switched at any time.
-campaign.erekir = Newer, more polished content. Mostly linear campaign progression.\n\nHigher quality maps and overall experience.
-campaign.serpulo = Older content; the classic experience. More open-ended.\n\nPotentially unbalanced maps and campaign mechanics. Less polished.
-campaign.difficulty = Difficulty
+
+search = Procurar:
+planetmap = Mapa do Planeta
+launchcore = Lançar Núcleo
+filename = Nome do Ficheiro:
+unlocked = Novo conteúdo desbloqueado!
+available = Nova pesquisa disponível!
+unlock.incampaign = < Desbloqueie na campanha para mais detalhes >
+campaign.select = Selecione a campanha inicial
+campaign.none = [lightgray]Selecione um planeta para onde começar.\nIsto pode ser mudado a qualquer momento.
+campaign.erekir = Novo, conteúdo aperfeiçoado. Progresso de campanha quase linear.\n\nMapas e experiência geral de melhor qualidade.
+campaign.serpulo = Conteúdo antigo, a experiência clássica. Mais amplo.\n\nMapas e mecânicas da campanha potencialmente desbalanceados. Menos aperfeiçoado.
+campaign.difficulty = Dificuldade
+
completed = [accent]Completado
-techtree = Árvore de tecnologia
-techtree.select = Tech Tree Selection
+techtree = Árvore da Tecnologia
+techtree.select = Árvore da Tecnologia
techtree.serpulo = Serpulo
techtree.erekir = Erekir
-research.load = Load
-research.discard = Discard
+research.load = Carregar
+research.discard = Descartar
research.list = [lightgray]Pesquise:
research = Pesquisa
researched = [lightgray]{0} pesquisado.
-research.progress = {0}% complete
+research.progress = {0}% completo
players = {0} Jogadores Ativos
players.single = {0} Jogador Ativo
-players.search = search
-players.notfound = [gray]no players found
-server.closing = [accent]Fechando servidor...
-server.kicked.kick = Voce foi expulso do servidor!
-server.kicked.whitelist = Você não está na lista branca do servidor.
+players.search = Pesquisar
+players.notfound = [gray]nenhum jogador encontrado
+server.closing = [accent]A fechar servidor...
+server.kicked.kick = Foste expulso do servidor!
+server.kicked.whitelist = Não estás na lista branca do servidor.
server.kicked.serverClose = Servidor Fechado.
-server.kicked.vote = Você foi expulso desse servidor. Adeus.
-server.kicked.clientOutdated = Cliente desatualizado! Atualize seu jogo!
+server.kicked.vote = Foste expulso desse servidor por votação. Adeus.
+server.kicked.clientOutdated = Cliente desatualizado! Atualiza o teu jogo!
server.kicked.serverOutdated = Servidor desatualiado! Peça ao dono para atualizar!
-server.kicked.banned = Você foi banido do servidor.
-server.kicked.typeMismatch = Este servidor não é compatível com a sua versão.
-server.kicked.playerLimit = Este servidor está cheio. Espere por uma vaga.
-server.kicked.recentKick = Voce foi expulso recentemente.\nEspere para conectar de novo.
-server.kicked.nameInUse = Este nome já está sendo usado\nneste servidor.
-server.kicked.nameEmpty = Você deve ter pelo menos uma letra ou número no nome.
-server.kicked.idInUse = Você ja está neste servidor! Conectar com duas contas não é permitido.
-server.kicked.customClient = Este servidor não suporta versões customizadas. Baixe a versão original.
-server.kicked.gameover = Fim de jogo!
-server.kicked.serverRestarting = The server is restarting.
-server.versions = Sua versão:[accent] {0}[]\nVersão do servidor:[accent] {1}[]
-host.info = O [accent]Hospedar[]Botão Hospeda um servidor no Host[scarlet]6567[] e [scarlet]6568.[]\nQualquer um no [lightgray]Wi-fi Ou Internet local[] Pode ver este servidor na lista de servidores.\n\nSe voce quer poder entrar em qualquer servidor em seu ip, [accent]port forwarding[] é requerido.\n\n[lightgray]Note: Se alguem esta com problemas em conectar no seu servidor lan, Tenha certeza que deixou mindustry Acessar sua internet local nas configurações de firewall
-join.info = Aqui, você pode entar em um [accent]IP de servidor[] para conectar, ou descobrir [accent]servidores[] da rede local.\nAmbos os servidores LAN e WAN são suportados.\n\n[lightgray]Note: Não há uma lista de servidores automáticos; Se você quer conectar ao IP de alguém, você precisa pedir o IP ao anfitrião.
-hostserver = Hospedar servidor
+server.kicked.banned = Foste banido do servidor.
+server.kicked.typeMismatch = Este servidor não é compatível com o teu tipo de versão.
+server.kicked.playerLimit = Este servidor está cheio. Espera por uma vaga.
+server.kicked.recentKick = Foste expulso recentemente.\nEspera para conectar de novo.
+server.kicked.nameInUse = Este nome já está a ser usado\nneste servidor.
+server.kicked.nameEmpty = O nome escolhido é inválido.
+server.kicked.idInUse = Já estás conectado neste servidor! Conectar com duas contas não é permitido.
+server.kicked.customClient = Este servidor não suporta versões customizadas. Transfere uma versão original.
+server.kicked.gameover = Fim do jogo!
+server.kicked.serverRestarting = O seridor está a reiniciar.
+server.versions = A tua versão:[accent] {0}[]\nVersão do servidor:[accent] {1}[]
+host.info = O botão de [accent]Hospedar[] hospeda um servidor na porta [scarlet]6567[] e [scarlet]6568.[]\nQualquer jogador na mesma [lightgray]Wi-Fi ou rede local[] pode ver este servidor na lista de servidores.\n\nSe você quiser que os jogadores entrem de qualquer sítio através do seu IP, [accent]port forwarding[] é necessário.\n\n[lightgray]Nota: Se alguém está com problemas a conectar ao seu servidor LAN, tenha a certeza que o Mindustry tem acesso à sua internet local nas configurações do seu firewall. Nota que nem todas as redes públicas permitem a deteção do servidor na rede.
+join.info = Aqui podes inserir um [accent]IP de servidor[] para conectar, ou descobrir [accent]servidores[] da rede local or [accent]servidores[] no mundo.\nAmbos os servidores LAN e WAN são suportados.\n\n[lightgray]Se quiseres conectar ao servidor de alguém por IP, precisas de pedir ao anfitrião o IP, que pode ser descoberto ao pesquisar "meu IP" na Internet.
+hostserver = Host Multiplayer Game
invitefriends = Convidar amigos
hostserver.mobile = Hospedar\nJogo
host = Hospedar
-hosting = [accent]Abrindo servidor...
+hosting = [accent]A abrir servidor...
hosts.refresh = Atualizar
-hosts.discovering = Descobrindo jogos em lan
-hosts.discovering.any = Descobrindo jogos
+hosts.discovering = A descobrir jogos em LAN
+hosts.discovering.any = A descobrir jogos
server.refreshing = A atualizar servidor
-hosts.none = [lightgray]Nenhum jogo lan encontrado!
-host.invalid = [scarlet]Não foi possivel Hospedar.
+hosts.none = [lightgray]Nenhum jogo local encontrado!
+host.invalid = [scarlet]Não foi possivel conectar.
servers.local = Servidores Locais
-servers.local.steam = Open Games & Local Servers
+servers.local.steam = Jogos públicos e Servidores locais
servers.remote = Servidores Remotos
-servers.global = Servidores Globais
-servers.disclaimer = Community servers are [accent]not[] owned or controlled by the developer.\n\nServers may contain user-generated content that is not appropriate for all ages.
-servers.showhidden = Show Hidden Servers
-server.shown = Shown
-server.hidden = Hidden
-viewplayer = Viewing Player: [accent]{0}
+servers.global = Servidores da Comunidade
-trace = Traçar jogador
+servers.disclaimer = Servidores da comunidade [accent]não[] são controlados pelo desenvolvedor.\n\nOs servidores podem conter conteúdo não apropriado para todas as idades.
+servers.showhidden = Mostrar servidores escondidos
+server.shown = Mostrar
+server.hidden = Esconder
+
+viewplayer = A assistir Jogador: [accent]{0}
+trace = Rastrear jogador
trace.playername = Nome do jogador: [accent]{0}
trace.ip = IP: [accent]{0}
-trace.id = ID unico: [accent]{0}
-trace.language = Language: [accent]{0}
+trace.id = ID: [accent]{0}
+trace.language = Idioma: [accent]{0}
trace.mobile = Cliente móvel: [accent]{0}
-trace.modclient = Cliente Customizado: [accent]{0}
-trace.times.joined = Times Joined: [accent]{0}
-trace.times.kicked = Times Kicked: [accent]{0}
+trace.modclient = Cliente customizado: [accent]{0}
+trace.times.joined = Vezes que entrou: [accent]{0}
+trace.times.kicked = Vezes que foi expulso: [accent]{0}
trace.ips = IPs:
-trace.names = Names:
-invalidid = ID do cliente invalido! Reporte o bug.
-player.ban = Ban
-player.kick = Kick
-player.trace = Trace
-player.admin = Toggle Admin
-player.team = Change Team
-server.bans = Banidos
+trace.names = Nomes:
+invalidid = ID do cliente inválido! Reporte o bug.
+
+player.ban = Banir
+player.kick = Expulsar
+player.trace = Rastrear
+player.admin = Alterar Admin
+player.team = Trocar de Equipa
+server.bans = Banimentos
server.bans.none = Nenhum jogador banido encontrado!
server.admins = Administradores
server.admins.none = Nenhum administrador encontrado!
server.add = Adicionar servidor
-server.delete = Certeza que quer deletar o servidor?
+server.delete = Tens a certeza que queres apagar o servidor?
server.edit = Editar servidor
server.outdated = [crimson]Servidor desatualizado![]
server.outdated.client = [crimson]Cliente desatualizado![]
server.version = [lightgray]Versão: {0}
server.custombuild = [accent]Versão customizada
-confirmban = Certeza que quer banir este jogador?
-confirmkick = Certeza que quer expulsar o jogador?
-confirmunban = Certeza que quer desbanir este jogador?
-confirmadmin = Certeza que quer fazer este jogador um administrador?
+confirmban = Tens a certeza de que queres banir "{0}[white]"?
+confirmkick = Tens a certeza de que queres expulsar "{0}[white]"?
+confirmunban = Tens a certeza de que queres desbanir este jogador?
+confirmadmin = Tens a certeza de que queres fazer este jogador um administrador?
confirmunadmin = Certeza que quer remover o estatus de adminstrador deste jogador?
-votekick.reason = Vote-Kick Reason
-votekick.reason.message = Are you sure you want to vote-kick "{0}[white]"?\nIf yes, please enter the reason:
+votekick.reason = Razão de expulsão por votação
+votekick.reason.message = Tens a certeza que queres expular "{0}[white]" por votação?\nSe sim, escreva o motivo:
joingame.title = Entrar no jogo
-joingame.ip = IP:
+joingame.ip = Endereço IP:
disconnect = Desconectado.
disconnect.error = Erro de conexão.
disconnect.closed = Conexão fechada.
disconnect.timeout = Tempo esgotado.
disconnect.data = Falha ao abrir os dados do mundo!
+disconnect.snapshottimeout = Timed out while receiving UDP snapshots.\nThis may be caused by an unstable network or connection.
cantconnect = Impossível conectar ([accent]{0}[]).
-connecting = [accent]Conectando...
-reconnecting = [accent]Reconnecting...
-connecting.data = [accent]Carregando dados do mundo...
-server.port = Porte:
-server.invalidport = Numero de porta invalido!
-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!
+connecting = [accent]A conectar...
+reconnecting = [accent]A reconectar...
+connecting.data = [accent]A carregar o dados do mundo...
+server.port = Porta:
+server.invalidport = Número de porta inválido!
+server.error.addressinuse = [scarlet]Falhou ao iniciar o servidor na porta 6567.[]\n\nCertifica-te que não existem outros servidores do Mindustry em funcionamento no teu dispositivo ou rede local!
server.error = [crimson]Erro ao hospedar o servidor: [accent]{0}
-save.new = Novo gravamento
-save.overwrite = Você tem certeza que quer sobrescrever este gravamento?
-save.nocampaign = Individual save files from the campaign cannot be imported.
-overwrite = Gravar sobre
-save.none = Nenhum gravamento encontrado!
-savefail = Falha ao gravar jogo!
-save.delete.confirm = Certeza que quer deletar este gravamento?
-save.delete = Deletar
+save.new = Novo save
+save.overwrite = Tens a certeza que queres sobrescrever\neste save?
+save.nocampaign = Arquivos salvos individuais da campanha não podem ser importados.
+overwrite = Sobrescrever
+save.none = Nenhum save encontrado!
+savefail = Falha ao salvar jogo!
+save.delete.confirm = Tens a certeza que queres apagar este save?
+save.delete = Apagar
save.export = Exportar save
-save.import.invalid = [accent]Este gravamento é inválido!
-save.import.fail = [crimson]Falha ao importar gravamento: [accent]{0}
-save.export.fail = [crimson]Falha ao exportar gravamento: [accent]{0}
-save.import = Importar gravamento
-save.newslot = Nome do gravamento:
+save.import.invalid = [accent]Este save é inválido!
+save.import.fail = [crimson]Falha ao importar o save: [accent]{0}
+save.export.fail = [crimson]Falha ao exportar o save: [accent]{0}
+save.import = Importar save
+save.newslot = Nome do save:
save.rename = Renomear
save.rename.text = Novo jogo:
-selectslot = Selecione um lugar para gravar.
+selectslot = Selecione um lugar para salvar.
slot = [accent]Slot {0}
editmessage = Edit Message
save.corrupted = [accent]Ficheiro corrompido ou inválido!
empty =
on = Ligado
off = Desligado
-save.search = Search saved games...
-save.autosave = Autogravar: {0}
+save.search = Procurar jogos salvos...
+save.autosave = Gravar automaticamente: {0}
save.map = Mapa: {0}
save.wave = Horda {0}
-save.mode = Gamemode: {0}
-save.date = Último gravamento: {0}
-save.playtime = Tempo De Jogo: {0}
+save.mode = Modo de jogo: {0}
+save.date = Último save: {0}
+save.playtime = Tempo de Jogo: {0}
warning = Aviso.
confirm = Confirmar
-delete = Excluir
-view.workshop = Ver na oficina
-workshop.listing = Edit Workshop Listing
+delete = Apagar
+view.workshop = Ver na Workshop
+workshop.listing = Editar a lista da Workshop
ok = OK
open = Abrir
customize = Customizar
cancel = Cancelar
-command = Command
+command = Comando
command.queue = [lightgray][Queuing]
-command.mine = Mine
-command.repair = Repair
-command.rebuild = Rebuild
-command.assist = Assist Player
-command.move = Move
-command.boost = Boost
-command.enterPayload = Enter Payload Block
-command.loadUnits = Load Units
-command.loadBlocks = Load Blocks
-command.unloadPayload = Unload Payload
+
+command.mine = Minerar
+command.repair = reparar
+command.rebuild = Reconstruir
+command.assist = Assistir jogador
+command.move = Mover
+command.boost = Impulsionar
+command.enterPayload = Inserir bloco de carga
+command.loadUnits = Carrgar Unidades
+command.loadBlocks = Carregar Blocos
+command.unloadPayload = Descarregar Carga
command.loopPayload = Loop Unit Transfer
-stance.stop = Cancel Orders
-stance.shoot = Stance: Shoot
-stance.holdfire = Stance: Hold Fire
-stance.pursuetarget = Stance: Pursue Target
-stance.patrol = Stance: Patrol Path
-stance.ram = Stance: Ram\n[lightgray]Straight line movement, no pathfinding
+stance.stop = Cancelar Pedidos
+stance.shoot = Stance: Atirar
+stance.holdfire = Stance: Não disparar
+stance.pursuetarget = Stance: Perseguir alvo
+stance.patrol = Stance: Caminho de Patrulha
+stance.ram = Stance: Ram\n[lightgray]Movimento em linha reta, sem trajetória
+
openlink = Abrir Ligação
copylink = Copiar ligação
back = Voltar
-max = Max
-objective = Map Objective
-crash.export = Export Crash Logs
-crash.none = No crash logs found.
-crash.exported = Crash logs exported.
+max = Máximo
+objective = Objetivo do Mapa
+crash.export = Exportar registos de erros
+crash.none = Não foram encontrados registos de erros.
+crash.exported = Registos de erros exportados.
data.export = Exportar dados
data.import = Importar dados
data.openfolder = Abrir pasta de dados
data.exported = Dados exportados.
data.invalid = Estes dados de jogo não são válidos.
-data.import.confirm = Importar dados externos irá deletar[scarlet] todos[] os seus dados atuais.\n[accent]Isso não pode ser desfeito![]\n\nQuando sua data é importada, seu jogo ira sair imediatamente.
-quit.confirm = Você tem certeza que quer sair?
-loading = [accent]Carregando...
-downloading = [accent]Downloading...
-saving = [accent]Gravando...
-respawn = [accent][[{0}][] to respawn in core
-cancelbuilding = [accent][[{0}][] para apagar o plano
-selectschematic = [accent][[{0}][] para selecionar+copy
-pausebuilding = [accent][[{0}][] para pausar construção
-resumebuilding = [scarlet][[{0}][] para resumir construção
-enablebuilding = [scarlet][[{0}][] to enable building
-showui = UI hidden.\nPress [accent][[{0}][] to show UI.
-commandmode.name = [accent]Command Mode
-commandmode.nounits = [no units]
+data.import.confirm = Importar dados externos irá sobescrever[scarlet] todos[] os seus dados atuais.\n[accent]Não pode ser revertido![]\n\nQuando os dados forem importados, seu jogo irá fechar imediatamente.
+quit.confirm = Tens a certeza que queres sair?
+loading = [accent]A carregar...
+downloading = [accent]A transferir...
+saving = [accent]A gravar...
+respawn = [accent][[{0}][] para renascer
+cancelbuilding = [accent][[{0}][] para cancelar a construção
+selectschematic = [accent][[{0}][] para selecionar+copiar
+pausebuilding = [accent][[{0}][] para pausar a construção
+resumebuilding = [scarlet][[{0}][] para retomar a construção
+enablebuilding = [scarlet][[{0}][] para ativar a construção
+showui = Interface ocultada.\nPressiona [accent][[{0}][] para mostrá-la.
+commandmode.name = [accent]Modo de comando
+commandmode.nounits = [sem unidades]
wave = [accent]Horda {0}
-wave.cap = [accent]Wave {0}/{1}
+wave.cap = [accent]Horda {0}/{1}
wave.waiting = Horda em {0}
-wave.waveInProgress = [lightgray]Horda Em Progresso
-waiting = Aguardando...
-waiting.players = Esperando por jogadores...
+wave.waveInProgress = [lightgray]Horda em progresso
+waiting = A aguardar...
+waiting.players = À espera de jogadores...
wave.enemies = [lightgray]{0} inimigos restantes
-wave.enemycores = [accent]{0}[lightgray] Enemy Cores
-wave.enemycore = [accent]{0}[lightgray] Enemy Core
-wave.enemy = [lightgray]{0} inimigo restante
-wave.guardianwarn = Guardian approaching in [accent]{0}[] waves.
-wave.guardianwarn.one = Guardian approaching in [accent]{0}[] wave.
+wave.enemycores = [accent]{0}[lightgray] Núcleos inimigos
+wave.enemycore = [accent]{0}[lightgray] Núcleo inimigo
+wave.enemy = [lightgray]{0} Inimigo restante
+wave.guardianwarn = Guardião aproximando-se em [accent]{0}[] hordas.
+wave.guardianwarn.one = Guardião aproximando-se em [accent]{0}[] horda.
loadimage = Carregar\nimagem
-saveimage = Gravarr\nimagem
+saveimage = Salvar\nimagem
unknown = Desconhecido
custom = Customizado
builtin = Embutido
-map.delete.confirm = Certeza que quer deletar este mapa? Isto não pode ser desfeito!
+map.delete.confirm = Tens a certeza que queres apagar este mapa? Esta ação não pode ser desfeita!
map.random = [accent]Mapa aleatório
-map.nospawn = Este mapa não possui nenhum núcleo para o jogador nascer! Adicione um núcleo {0} para este mapa no editor.
-map.nospawn.pvp = Esse mapa não tem núcleos inimigos para os jogadores nascerem! Adicione núcleos [scarlet]vermelhos[] no mapa no editor.
-map.nospawn.attack = Esse mapa não tem nenhum núcleo inimigo para o jogador atacar! Adicione núcleos {0} no mapa no editor.
-map.invalid = Erro ao carregar o mapa: Ficheiro de mapa invalido ou corrupto.
+map.nospawn = Este mapa não possui nenhum núcleo para o jogador nascer! Adicione um {0} núcleo ao mapa no editor.
+map.nospawn.pvp = Esse mapa não tem núcleos inimigos para os jogadores nascerem! Adicione núcleos [scarlet]vermelhos[] ao mapa no editor.
+map.nospawn.attack = Esse mapa não tem nenhum núcleo inimigo para o jogador atacar! Adicione {0} núcleos ao mapa no editor.
+map.invalid = Erro ao carregar o mapa: Ficheiro de mapa inválido ou corrompido.
workshop.update = Atualizar Item
-workshop.error = Error fetching workshop details: {0}
-map.publish.confirm = Você tem certeza de que quer publicar este mapa?\n\n[lightgray]Tenha certeza de que você concorda com o EULA da oficina primeiro, ou seus mapas não serão mostrados!
-workshop.menu = Seleciona o que tu gostarias de fazer com este item.
+workshop.error = Erro ao buscar os detalhes da Workshop: {0}
+map.publish.confirm = Tens a certeza que queres publicar este mapa?\n\n[lightgray]Certifica-te que concordas com o EULA da Workshop, ou os teus mapas não serão mostrados!
+workshop.menu = Seleciona o que gostarias de fazer com este item.
workshop.info = Item Info
changelog = Changelog (optional):
updatedesc = Overwrite Title & Description
@@ -420,10 +438,11 @@ publishing = [accent]A publicar...
publish.confirm = Tens a certeza que queres publicar isto?\n\n[lightgray]Certifique-se de concordar com o EULA do workshpop primeiro, ou seus itens não aparecerão!
publish.error = Erro ao publicao os items: {0}
steam.error = Falha ao iniciar os serviços da Steam.\nError: {0}
-editor.planet = Planet:
-editor.sector = Sector:
-editor.seed = Seed:
-editor.cliffs = Walls To Cliffs
+
+editor.planet = Planeta:
+editor.sector = Setor:
+editor.seed = Semente:
+editor.cliffs = Paredes para Penhascos
editor.brush = Pincel
editor.openin = Abrir no Editor
@@ -436,118 +455,120 @@ editor.nodescription = Um mapa deve ter uma descrição de no mínimo 4 caracter
editor.waves = Hordas:
editor.rules = Regras:
editor.generation = Geração:
-editor.objectives = Objectives
-editor.locales = Locale Bundles
-editor.worldprocessors = World Processors
-editor.worldprocessors.editname = Edit Name
-editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
-editor.worldprocessors.nospace = No free space to place a world processor!\nDid you fill the map with structures? Why would you do this?
-editor.worldprocessors.delete.confirm = Are you sure you want to delete this world processor?\n\nIf it is surrounded by walls, it will be replaced by an environmental wall.
+editor.objectives = Objectivos
+editor.locales = Pacotes Locais
+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.
+editor.worldprocessors.nospace = Sem espaço disponível para colocar um processador global!\nPreencheste o mapa com estruturas? Porque farias isso?
+editor.worldprocessors.delete.confirm = Tens a certeza que queres apagar este processador global?\n\nSe esiver rodeado de paredes, vai ser substituído por uma parede natural.
editor.ingame = Editar em jogo
-editor.playtest = Playtest
-editor.publish.workshop = Publicar na oficina
+editor.playtest = Testar
+editor.publish.workshop = Publicar na Workshop
editor.newmap = Novo mapa
-editor.center = Center
-editor.search = Search maps...
-editor.filters = Filter Maps
-editor.filters.mode = Gamemodes:
-editor.filters.type = Map Type:
-editor.filters.search = Search In:
-editor.filters.author = Author
-editor.filters.description = Description
-editor.shiftx = Shift X
-editor.shifty = Shift Y
-workshop = Oficina
+editor.center = Centrar
+editor.search = Procurar mapas...
+editor.filters = Filtrar Mapas
+editor.filters.mode = Modos de jogo:
+editor.filters.type = Tipo de Mapa:
+editor.filters.search = Procurar em:
+editor.filters.author = Autor
+editor.filters.description = Descrição
+editor.shiftx = Mover no eixo X
+editor.shifty = Mover no eixo Y
+workshop = Workshop
waves.title = Hordas
+waves.team = Team
waves.remove = Remover
waves.every = a cada
-waves.waves = Hordas(s)
-waves.health = health: {0}%
+waves.waves = hordas(s)
+waves.health = vida: {0}%
waves.perspawn = por spawn
-waves.shields = shields/wave
+waves.shields = escudos/horda
waves.to = para
waves.spawn = spawn:
waves.spawn.all =
-waves.spawn.select = Spawn Select
-waves.spawn.none = [scarlet]no spawns found in map
-waves.max = max units
-waves.guardian = Guardian
-waves.preview = Pré visualizar
+waves.spawn.select = Seletor de spawn
+waves.spawn.none = [scarlet]nenhum spawn encontrado no mapa
+waves.max = quantidade máxima de unidades
+waves.guardian = Guardião
+waves.preview = Pré-visualizar
waves.edit = Editar...
-waves.random = Random
+waves.random = Aleatório
waves.copy = Copiar para área de transferência
waves.load = Carregar da área de transferência
waves.invalid = Hordas inválidas na área de transferência.
waves.copied = Hordas copiadas.
-waves.none = Sem hordas definidas.\nNote que layouts vazios de hordas serão automaticamente substituídos pelo layout padrão.
-waves.sort = Sort By
-waves.sort.reverse = Reverse Sort
-waves.sort.begin = Begin
-waves.sort.health = Health
-waves.sort.type = Type
-waves.search = Search waves...
-waves.filter = Unit Filter
-waves.units.hide = Hide All
-waves.units.show = Show All
+waves.none = Sem hordas definidas.\nNote que esquemas de hordas vazios serão automaticamente substituídos pelo esquema padrão.
+waves.sort = Ordenar por
+waves.sort.reverse = Inverter ordem
+waves.sort.begin = Coneçar
+waves.sort.health = Vida
+waves.sort.type = Tipo
+waves.search = Procurar hordas...
+waves.filter = Filtro de Unidades
+waves.units.hide = Ocultar Tudo
+waves.units.show = Mostrar Tudo
-wavemode.counts = counts
-wavemode.totals = totals
-wavemode.health = health
-all = All
+#these are intentionally in lower case
+wavemode.counts = quantidade
+wavemode.totals = total
+wavemode.health = vida
-editor.default = [lightgray]
+all = Tudo
+editor.default = [lightgray]
details = Detalhes...
edit = Editar...
-variables = Vars
-logic.clear.confirm = Are you sure you want to clear all code from this processor?
-logic.globals = Built-in Variables
+variables = Variáveis
+logic.clear.confirm = Tens a certeza que querea apagar todo o código deste procesador?
+logic.globals = Variáveis Embutidas
editor.name = Nome:
-editor.spawn = Criar unidade
-editor.removeunit = Remover unidade
-editor.teams = Times
+editor.spawn = Criar Unidade
+editor.removeunit = Remover Unidade
+editor.teams = Equipas
editor.errorload = Erro ao carregar o ficheiro:\n[accent]{0}
-editor.errorsave = Erro ao gravar o ficheiro:\n[accent]{0}
-editor.errorimage = Isso é uma imagem, não um mapa. Não vá por aí mudando extensões esperando que funcione.\n\nSe você quer importar um mapa legacy, Use o botão 'Importar mapa legacy'no editor.
-editor.errorlegacy = Esse mapa é velho demais, E usa um formato de mapa legacy que não é mais suportado.
-editor.errornot = Este não é um ficheiro de mapa.
-editor.errorheader = Este ficheiro de mapa não é mais válido ou está corrompido.
-editor.errorname = O mapa não tem nome definido.
-editor.errorlocales = Error reading invalid locale bundles.
+editor.errorsave = Erro ao salvar o ficheiro:\n[accent]{0}
+editor.errorimage = Isto é uma imagem, não um mapa.
+editor.errorlegacy = Este mapa é antigo demais, e usa um formato antigo que não é mais suportado.
+editor.errornot = Isto não é um ficheiro de mapa.
+editor.errorheader = Este ficheiro de mapa não está mais válido ou está corrompido.
+editor.errorname = O mapa não tem nome definido. Estás a tentar carregar um ficheiro de save?
+editor.errorlocales = Erro ao ler pacotes locais inválidos.
editor.update = Atualizar
editor.randomize = Aleatorizar
-editor.moveup = Move Up
-editor.movedown = Move Down
-editor.copy = Copy
+editor.moveup = Mover para Cima
+editor.movedown = Mover para Baixo
+editor.copy = Copiar
editor.apply = Aplicar
editor.generate = Gerar
-editor.sectorgenerate = Sector Generate
+editor.sectorgenerate = Geração de Setor
editor.resize = Redimen-\nsionar
editor.loadmap = Carregar\nmapa
editor.savemap = Gravar\nmapa
-editor.savechanges = [scarlet]You have unsaved changes!\n\n[]Do you want to save them?
+editor.savechanges = [scarlet]Tens modificações não gravadas!\n\n[]Queres gravá-las?
editor.saved = Gravado!
-editor.save.noname = Seu mapa não tem um nome! Coloque um no menu de "Informação do mapa"
-editor.save.overwrite = O seu mapa substitui um mapa já construído! Coloque um nome diferente no menu "Informação do mapa"
-editor.import.exists = [scarlet]Não foi possivel importar:[] Um mapa construído chamado '{0}' Já existe!
+editor.save.noname = O teu mapa não tem um nome! Coloca um no menu de "Informação do mapa"
+editor.save.overwrite = O teu mapa substitui um mapa incorporado no jogo! Coloca um nome diferente no menu "Informação do mapa"
+editor.import.exists = [scarlet]Não foi possivel importar:[] Um mapa incorporado chamado '{0}' já existe!
editor.import = Importar...
editor.importmap = Importar Mapa
-editor.importmap.description = Importar um mapa existente
+editor.importmap.description = Importar um mapa já existente
editor.importfile = Importar ficheiro
editor.importfile.description = Importar um ficheiro externo
-editor.importimage = Importar imagem do terreno
-editor.importimage.description = Importar uma imagem de terreno externa
+editor.importimage = Importar Imagem de terreno
+editor.importimage.description = Importar um ficheiro de imagem externo
editor.export = Exportar...
-editor.exportfile = Exportar ficheiro
+editor.exportfile = Exportar Ficheiro
editor.exportfile.description = Exportar um ficheiro de mapa
-editor.exportimage = Exportar imagem de terreno
-editor.exportimage.description = Exportar um ficheiro de imagem de mapa
-editor.loadimage = Carregar\nImagem
-editor.saveimage = Gravar\nImagem
-editor.unsaved = [scarlet]Você tem alterações não gradavas![]\nTem certeza que quer sair?
+editor.exportimage = Exportar Imagem de terreno
+editor.exportimage.description = Exportar uma imagem com topografia básica apenas
+editor.loadimage = Importar Terreno
+editor.saveimage = Exportar Terreno
+editor.unsaved = [scarlet]Tens alterações não gravadas![]\nTens a certeza que queres sair?
editor.resizemap = Redimensionar Mapa
editor.mapname = Nome do Mapa:
-editor.overwrite = [accent]Aviso!\nIsso Substitui um mapa existente.
-editor.overwrite.confirm = [scarlet]Aviso![] Um mapa com esse nome já existe. Tem certeza que deseja substituir?
+editor.overwrite = [accent]Aviso!\nIsto sobesvreve um mapa já existente.
+editor.overwrite.confirm = [scarlet]Aviso![] Um mapa com este nome já existe. Tens a certeza que desejas substituí-lo?
editor.exists = Já existe um mapa com este nome.
editor.selectmap = Selecione uma mapa para carregar:
@@ -557,25 +578,28 @@ toolmode.replaceall = Substituir tudo
toolmode.replaceall.description = Substituir todos os blocos no mapa
toolmode.orthogonal = Linha reta
toolmode.orthogonal.description = Desenha apenas linhas retas.
-toolmode.square = Square
+toolmode.square = Quadrado
toolmode.square.description = Pincel quadrado.
-toolmode.eraseores = Apagar minérios
+toolmode.eraseores = Apagar Minérios
toolmode.eraseores.description = Apaga apenas minérios.
-toolmode.fillteams = Encher times
-toolmode.fillteams.description = Muda o time do qual todos os blocos pertencem.
-toolmode.fillerase = Fill Erase
-toolmode.fillerase.description = Erase blocks of the same type.
-toolmode.drawteams = Desenhar times
-toolmode.drawteams.description = Muda o time do qual o bloco pertence.
-toolmode.underliquid = Under Liquids
-toolmode.underliquid.description = Draw floors under liquid tiles.
+toolmode.fillteams = Preencher Equipas
+toolmode.fillteams.description = Muda a equipa da qual todos os blocos pertencem.
+toolmode.fillerase = Preencher Apagar
+toolmode.fillerase.description = Apaga blocos do mesmo tipo.
+toolmode.drawteams = Desenhar Euipas
+toolmode.drawteams.description = Muda a equipa da qual o bloco pertence.
-filters.empty = [lightgray]Sem filtro! Adicione um usando o botão abaixo.
-filter.distort = Distorcedor
+#unused
+toolmode.underliquid = Debaixo de Líquidos
+toolmode.underliquid.description = Desenha o fundo de poças de líquidos.
+
+filters.empty = [lightgray]Sem filtros! Adicione um com o botão abaixo.
+
+filter.distort = Distorcer
filter.noise = Geração aleatória
-filter.enemyspawn = Enemy Spawn Select
-filter.spawnpath = Path To Spawn
-filter.corespawn = Core Select
+filter.enemyspawn = Selecionar Spawn inimigo
+filter.spawnpath = Caminho para o Spawn
+filter.corespawn = Selecionar Núcleo
filter.median = Mediano
filter.oremedian = Minério Mediano
filter.blend = Misturar
@@ -583,11 +607,11 @@ filter.defaultores = Minérios padrão
filter.ore = Minério
filter.rivernoise = Geração aleatória de rios
filter.mirror = Espelhar
-filter.clear = Excluir
+filter.clear = Apagar
filter.option.ignore = Ignorar
filter.scatter = Dispersão
filter.terrain = Terreno
-filter.logic = Logic
+filter.logic = Lógica
filter.option.scale = Escala
filter.option.chance = Chance
filter.option.mag = Magnitude
@@ -596,45 +620,45 @@ filter.option.circle-scale = Escala de círculo
filter.option.octaves = Oitavas
filter.option.falloff = Caída
filter.option.angle = Ângulo
-filter.option.tilt = Tilt
-filter.option.rotate = Rotate
-filter.option.amount = Amount
+filter.option.tilt = Inclinação
+filter.option.rotate = Rodar
+filter.option.amount = Quantidade
filter.option.block = Bloco
filter.option.floor = Chão
filter.option.flooronto = Chão alvo
-filter.option.target = Target
-filter.option.replacement = Replacement
+filter.option.target = Alvo
+filter.option.replacement = Substituto
filter.option.wall = Parede
filter.option.ore = Minério
filter.option.floor2 = Chão secundário
filter.option.threshold2 = Margem secundária
filter.option.radius = Raio
filter.option.percentile = Percentual
-filter.option.code = Code
+filter.option.code = Código
filter.option.loop = Loop
-locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
-locales.deletelocale = Are you sure you want to delete this locale bundle?
-locales.applytoall = Apply Changes To All Locales
-locales.addtoother = Add To Other Locales
-locales.rollback = Rollback to last applied
-locales.filter = Property filter
-locales.searchname = Search name...
-locales.searchvalue = Search value...
-locales.searchlocale = Search locale...
-locales.byname = By name
-locales.byvalue = By value
-locales.showcorrect = Show properties that are present in all locales and have unique values everywhere
-locales.showmissing = Show properties that are missing in some locales
-locales.showsame = Show properties that have same values in different locales
-locales.viewproperty = View in all locales
-locales.viewing = Viewing property "{0}"
-locales.addicon = Add Icon
+locales.info = Aqui podes adicionar pacotes locais para idiomas específicos no teu mapa. Nos pacotes locais, cada propriedade tem um nome e um valor. Estas propriedades podem ser usadas por processadroes globais ou objetivos que usem os seus nomes. Suportam formatação de texto (substituir espaços por valores atuais).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
+locales.deletelocale = Tens a certeza que queres apagar este pacote local?
+locales.applytoall = Aplicar Modificações a Todos os Locais
+locales.addtoother = Adicionar a Outros Locais
+locales.rollback = Reverter para último aplicado
+locales.filter = Filtro de propriedade
+locales.searchname = Procurar nome...
+locales.searchvalue = Provurar valor...
+locales.searchlocale = Procurar local...
+locales.byname = Por nome
+locales.byvalue = Por valor
+locales.showcorrect = Mostrar propriedades que estão presentes em todos os locais e têm valores únicos em todo o lado
+locales.showmissing = Mostrar propriedades que estão em falta em alguns locais
+locales.showsame = Mostrar propriedades que têm valores iguais em locais diferentes
+locales.viewproperty = Ver em todos os locais
+locales.viewing = A ver propriedade "{0}"
+locales.addicon = Adicionar Ícone
width = Largura:
height = Altura:
menu = Menu
play = Jogar
-campaign = Campannha
+campaign = Campanha
load = Carregar
save = Gravar
fps = FPS: {0}
@@ -642,7 +666,7 @@ ping = Ping: {0}ms
tps = TPS: {0}
memory = Mem: {0}mb
memory2 = Mem:\n {0}mb +\n {1}mb
-language.restart = Por favor, reinicie seu jogo para a tradução tomar efeito.
+language.restart = Por favor, reinicia o teu jogo para aplicar a atradução.
settings = Configurações
tutorial = Tutorial
tutorial.retake = Refazer Tutorial
@@ -650,146 +674,168 @@ editor = Editor
mapeditor = Editor de mapa
abandon = Abandonar
-abandon.text = Esta zona e todos os seus recursos serão perdidos para o inimigo.
-locked = Trancado
+abandon.text = Este setor e todos os seus recursos serão perdidos para o inimigo.
+locked = Bloqueado
complete = [lightgray]Completo:
-requirement.wave = Ronda alcançada {0} / {1}
+requirement.wave = Horda alcançada {0} / {1}
requirement.core = Destruir Núcleo Inimigo em {0}
-requirement.research = Research {0}
-requirement.produce = Produce {0}
+requirement.research = Investigue {0}
+requirement.produce = Produza {0}
requirement.capture = Capture {0}
-requirement.onplanet = Control Sector On {0}
-requirement.onsector = Land On Sector: {0}
-launch.text = Launch
-map.multiplayer = Only the host can view sectors.
+requirement.onplanet = Controlar setor em {0}
+requirement.onsector = Aterrar no setor: {0}
+launch.text = Lançar
+#research.multiplayer = Apenas o anfitrião pode pesquisar itens
+map.multiplayer = Apenas o anfitrião pode ver os setores
+
uncover = Descobrir
-configure = Configurar carregamento
-objective.research.name = Research
-objective.produce.name = Obtain
-objective.item.name = Obtain Item
-objective.coreitem.name = Core Item
-objective.buildcount.name = Build Count
-objective.unitcount.name = Unit Count
-objective.destroyunits.name = Destroy Units
-objective.timer.name = Timer
-objective.destroyblock.name = Destroy Block
-objective.destroyblocks.name = Destroy Blocks
-objective.destroycore.name = Destroy Core
-objective.commandmode.name = Command Mode
-objective.flag.name = Flag
-marker.shapetext.name = Shape Text
-marker.point.name = Point
-marker.shape.name = Shape
-marker.text.name = Text
-marker.line.name = Line
-marker.quad.name = Quad
-marker.texture.name = Texture
-marker.background = Background
-marker.outline = Outline
-objective.research = [accent]Research:\n[]{0}[lightgray]{1}
-objective.produce = [accent]Obtain:\n[]{0}[lightgray]{1}
-objective.destroyblock = [accent]Destroy:\n[]{0}[lightgray]{1}
-objective.destroyblocks = [accent]Destroy: [lightgray]{0}[white]/{1}\n{2}[lightgray]{3}
-objective.item = [accent]Obtain: [][lightgray]{0}[]/{1}\n{2}[lightgray]{3}
-objective.coreitem = [accent]Move into Core:\n[][lightgray]{0}[]/{1}\n{2}[lightgray]{3}
-objective.build = [accent]Build: [][lightgray]{0}[]x\n{1}[lightgray]{2}
-objective.buildunit = [accent]Build Unit: [][lightgray]{0}[]x\n{1}[lightgray]{2}
-objective.destroyunits = [accent]Destroy: [][lightgray]{0}[]x Units
-objective.enemiesapproaching = [accent]Enemies approaching in [lightgray]{0}[]
-objective.enemyescelating = [accent]Enemy production escalating in [lightgray]{0}[]
-objective.enemyairunits = [accent]Enemy air unit production beginning in [lightgray]{0}[]
-objective.destroycore = [accent]Destroy Enemy Core
-objective.command = [accent]Command Units
-objective.nuclearlaunch = [accent]⚠ Nuclear launch detected: [lightgray]{0}
-announce.nuclearstrike = [red]⚠ NUCLEAR STRIKE INBOUND ⚠
-loadout = Loadout
-resources = Resources
-resources.max = Max
+configure = Configurar Carregamento
+
+objective.research.name = Pesquisa
+objective.produce.name = Obter
+objective.item.name = Obter o Item
+objective.coreitem.name = Item do Núcleo
+objective.buildcount.name = Quantidade de Construções
+objective.unitcount.name = Quantidade de Unidades
+objective.destroyunits.name = Destruir Unidades
+objective.timer.name = Temporizador
+objective.destroyblock.name = Destruir Bloco
+objective.destroyblocks.name = Destruir Blocos
+objective.destroycore.name = Destruir o Núcleo
+objective.commandmode.name = Modo de Comando
+objective.flag.name = Etiqueta
+
+marker.shapetext.name = Forma do Texto
+marker.point.name = Ponto
+marker.shape.name = Forma
+marker.text.name = Texto
+marker.line.name = Linha
+marker.quad.name = Quandrado
+marker.texture.name = Textura
+marker.background = Fundo
+marker.outline = Rebordo
+
+objective.research = [accent]Pesquisa:\n[]{0}[lightgray]{1}
+objective.produce = [accent]Obtém:\n[]{0}[lightgray]{1}
+objective.destroyblock = [accent]Destrói:\n[]{0}[lightgray]{1}
+objective.destroyblocks = [accent]Destrói: [lightgray]{0}[white]/{1}\n{2}[lightgray]{3}
+objective.item = [accent]Obtém: [][lightgray]{0}[]/{1}\n{2}[lightgray]{3}
+objective.coreitem = [accent]Move para o Núcleo:\n[][lightgray]{0}[]/{1}\n{2}[lightgray]{3}
+objective.build = [accent]Constrói: [][lightgray]{0}[]x\n{1}[lightgray]{2}
+objective.buildunit = [accent]Constrói a Unidade: [][lightgray]{0}[]x\n{1}[lightgray]{2}
+objective.destroyunits = [accent]Destrói: [][lightgray]{0}[]x Unidades
+objective.enemiesapproaching = [accent]Inimigos aproximando em [lightgray]{0}[]
+objective.enemyescelating = [accent]Produção inimiga a aumentar em [lightgray]{0}[]
+objective.enemyairunits = [accent]Produção de unidades aéreas inimigas a partir de [lightgray]{0}[]
+objective.destroycore = [accent]Destrói o Núcleo Inimigo
+objective.command = [accent]Comandar Unidades
+objective.nuclearlaunch = [accent]⚠ Lançamento Nuclear detetado: [lightgray]{0}
+
+announce.nuclearstrike = [red]⚠ ATAQUE NUCLEAR APROXIMANDO-SE ⚠\n[lightgray]constrói núcleos de reserva imediatamente
+
+loadout = Carregamento
+resources = Recursos
+resources.max = Máximo
bannedblocks = Blocos banidos
-objectives = Objectives
-bannedunits = Banned Units
-bannedunits.whitelist = Banned Units As Whitelist
-bannedblocks.whitelist = Banned Blocks As Whitelist
-addall = Adiciona tudo
-launch.from = Launching From: [accent]{0}
-launch.capacity = Launching Item Capacity: [accent]{0}
-launch.destination = Destination: {0}
+unbannedblocks = Unbanned Blocks
+objectives = Objectivos
+bannedunits = Unidades banidas
+unbannedunits = Unbanned Units
+bannedunits.whitelist = Unidades banidas como Lista branca
+bannedblocks.whitelist = Blocos banidos como Lista branca
+addall = Adicionar tudo
+launch.from = A lançar de: [accent]{0}
+launch.capacity = Capacidade de Itens de Lançamento: [accent]{0}
+launch.destination = Destino: {0}
+landing.sources = Source Sectors: [accent]{0}[]
+landing.import = Max Total Import: {0}[accent]{1}[lightgray]/min
configure.invalid = A quantidade deve ser um número entre 0 e {0}.
add = Adicionar...
-guardian = Guardian
+guardian = Guardião
connectfail = [crimson]Falha ao entrar no servidor: [accent]{0}
-error.unreachable = Servidor inalcançável.
+error.unreachable = Servidor inalcançável.\nO endereço está certo?
error.invalidaddress = Endereço inválido.
-error.timedout = Desconectado!\nTenha certeza que o anfitrião tenha feito redirecionamento de portas e que o endereço esteja correto!
-error.mismatch = Erro de pacote:\nPossivel incompatibilidade com a versão do cliente/servidor.\nTenha certeza que você e o anfitrião tenham a última versão!
+error.timedout = Desconectado!\nTem a certeza que o anfitrião configurou o port forwarding e que o endereço está correto!
+error.mismatch = Erro de pacote:\nPossível incompatibilidade com a versão do cliente/servidor.\nTem a certeza que tu e o anfitrião têm a última versão!
error.alreadyconnected = Já conectado.
error.mapnotfound = Ficheiro de mapa não encontrado!
error.io = Erro I/O de internet.
error.any = Erro de rede desconhecido.
-error.bloom = Falha ao inicializar bloom.\nSeu aparelho talvez não o suporte.
-error.moddex = Mindustry is unable to load this mod.\nYour device is blocking import of Java mods due to recent changes in Android.\nThere is no known workaround to this issue.
+error.bloom = Falha ao inicializar bloom.\nTalvez o seu dispositivo não o suporte.
+error.moddex = O Mindustry não consegue carregar este mod.\nO seu dispositivo está a bloquear a importação de mods Java devido a implementações do Android.\nAinda não foi encontrada uma solução.
-weather.rain.name = Rain
-weather.snowing.name = Snow
-weather.sandstorm.name = Sandstorm
-weather.sporestorm.name = Sporestorm
-weather.fog.name = Fog
-campaign.playtime = \uf129 [lightgray]Sector Playtime: {0}
-campaign.complete = [accent]Congratulations.\n\nThe enemy on {0} has been defeated.\n[lightgray]The final sector has been conquered.
-sectorlist = Sectors
-sectorlist.attacked = {0} under attack
+weather.rain.name = Chuva
+weather.snowing.name = Neve
+weather.sandstorm.name = Tempestade de Areia
+weather.sporestorm.name = Tempestade de Esporos
+weather.fog.name = Nevoeiro
+
+campaign.playtime = \uf129 [lightgray]Tempo de Jogo do setor: {0}
+campaign.complete = [accent]Parabéns.\n\nO Inimigo em {0} foi derrotado.\n[lightgray]O setor final foi conquistado.
+
+sectorlist = Setores
+sectorlist.attacked = {0} sob ataque
+
+sectors.unexplored = [lightgray]Não explorado
+sectors.resources = Recursos:
+sectors.production = Produção:
+sectors.export = Exportar:
+sectors.import = Importar:
+sectors.time = Tempo:
+sectors.threat = Ameaça:
+sectors.wave = Horda:
+sectors.stored = Armazenado:
+sectors.resume = Continuar
+sectors.launch = Lançar
+sectors.select = Selecionar
+sectors.launchselect = Select Launch Destination
+sectors.nonelaunch = [lightgray]nenhum (sun)
+sectors.redirect = Redirect Launch Pads
+sectors.rename = Renomear Setor
+sectors.enemybase = [scarlet]Base Inimiga
+sectors.vulnerable = [scarlet]Vulnerável
+sectors.underattack = [scarlet]Sob ataque! [accent]{0}% danificado
+sectors.underattack.nodamage = [scarlet]Não Capturado
+sectors.survives = [accent]Sobrevive {0} hordas
+sectors.go = ir
+sector.abandon = Abandonar
+sector.abandon.confirm = O(s) núcleo(s) deste setor irão autodestruir-se.\nContinuar?
+sector.curcapture = Setor Capturado
+sector.curlost = Sector Perdido
+sector.missingresources = [scarlet]Recursos Insuficientes no Núcleo
+sector.attacked = Setor [accent]{0}[white] sob ataque!
+sector.lost = Setor [accent]{0}[white] perdido!
+sector.capture = Setor [accent]{0}[white]Capturado!
+sector.capture.current = Setor Capturado!
+sector.changeicon = Mudar ícone
+sector.noswitch.title = Não foi possivel mudar de Setores
+sector.noswitch = Não deves trocar de setores quando existe um sobre ataque.\n\nSetor: [accent]{0}[] em [accent]{1}[]
+sector.view = Ver Setor
+
+threat.low = Baixo
+threat.medium = Médio
+threat.high = Alto
+threat.extreme = Extremo
+threat.eradication = Erradicação
-sectors.unexplored = [lightgray]Unexplored
-sectors.resources = Resources:
-sectors.production = Production:
-sectors.export = Export:
-sectors.import = Import:
-sectors.time = Time:
-sectors.threat = Threat:
-sectors.wave = Wave:
-sectors.stored = Stored:
-sectors.resume = Resume
-sectors.launch = Launch
-sectors.select = Select
-sectors.nonelaunch = [lightgray]none (sun)
-sectors.rename = Rename Sector
-sectors.enemybase = [scarlet]Enemy Base
-sectors.vulnerable = [scarlet]Vulnerable
-sectors.underattack = [scarlet]Under attack! [accent]{0}% damaged
-sectors.underattack.nodamage = [scarlet]Uncaptured
-sectors.survives = [accent]Survives {0} waves
-sectors.go = Go
-sector.abandon = Abandon
-sector.abandon.confirm = This sector's core(s) will self-destruct.\nContinue?
-sector.curcapture = Sector Captured
-sector.curlost = Sector Lost
-sector.missingresources = [scarlet]Insufficient Core Resources
-sector.attacked = Sector [accent]{0}[white] under attack!
-sector.lost = Sector [accent]{0}[white] lost!
-sector.capture = Sector [accent]{0}[white]Captured!
-sector.capture.current = Sector Captured!
-sector.changeicon = Change Icon
-sector.noswitch.title = Unable to Switch Sectors
-sector.noswitch = You may not switch sectors while an existing sector is under attack.\n\nSector: [accent]{0}[] on [accent]{1}[]
-sector.view = View Sector
-threat.low = Low
-threat.medium = Medium
-threat.high = High
-threat.extreme = Extreme
-threat.eradication = Eradication
difficulty.casual = Casual
-difficulty.easy = Easy
+difficulty.easy = Fácil
difficulty.normal = Normal
-difficulty.hard = Hard
-difficulty.eradication = Eradication
-planets = Planets
+difficulty.hard = Difícil
+difficulty.eradication = Erradicação
+difficulty.enemyHealthMultiplier = Enemy Health: {0}
+difficulty.enemySpawnMultiplier = Enemy Amount: {0}
+difficulty.waveTimeMultiplier = Wave Timer: {0}
+difficulty.nomodifiers = [lightgray](No modifiers)
+
+planets = Planetas
planet.serpulo.name = Serpulo
planet.erekir.name = Erekir
-planet.sun.name = Sun
-sector.impact0078.name = Impact 0078
+planet.sun.name = Sol
+sector.impact0078.name = Impact 0078
sector.groundZero.name = Ground Zero
sector.craters.name = The Craters
sector.frozenForest.name = Frozen Forest
@@ -818,31 +864,33 @@ sector.weatheredChannels.name = Weathered Channels
sector.mycelialBastion.name = Mycelial Bastion
sector.frontier.name = Frontier
-sector.groundZero.description = The optimal location to begin once more. Low enemy threat. Few resources.\nGather as much lead and copper as possible.\nMove on.
-sector.frozenForest.description = Even here, closer to mountains, the spores have spread. The frigid temperatures cannot contain them forever.\n\nBegin the venture into power. Build combustion generators. Learn to use menders.
-sector.saltFlats.description = On the outskirts of the desert lie the Salt Flats. Few resources can be found in this location.\n\nThe enemy has erected a resource storage complex here. Eradicate their core. Leave nothing standing.
-sector.craters.description = Water has accumulated in this crater, relic of the old wars. Reclaim the area. Collect sand. Smelt metaglass. Pump water to cool turrets and drills.
-sector.ruinousShores.description = Past the wastes, is the shoreline. Once, this location housed a coastal defense array. Not much of it remains. Only the most basic defense structures have remained unscathed, everything else reduced to scrap.\nContinue the expansion outwards. Rediscover the technology.
-sector.stainedMountains.description = Further inland lie the mountains, yet untainted by spores.\nExtract the abundant titanium in this area. Learn how to use it.\n\nThe enemy presence is greater here. Do not give them time to send their strongest units.
-sector.overgrowth.description = This area is overgrown, closer to the source of the spores.\nThe enemy has established an outpost here. Build Titan units. Destroy it. Reclaim that which was lost.
-sector.tarFields.description = The outskirts of an oil production zone, between the mountains and desert. One of the few areas with usable tar reserves.\nAlthough abandoned, this area has some dangerous enemy forces nearby. Do not underestimate them.\n\n[lightgray]Research oil processing technology if possible.
-sector.desolateRift.description = An extremely dangerous zone. Plentiful resources, but little space. High risk of destruction. Leave as soon as possible. Do not be fooled by the long spacing between enemy attacks.
-sector.nuclearComplex.description = A former facility for the production and processing of thorium, reduced to ruins.\n[lightgray]Research the thorium and its many uses.\n\nThe enemy is present here in great numbers, constantly scouting for attackers.
-sector.fungalPass.description = A transition area between high mountains and lower, spore-ridden lands. A small enemy reconnaissance base is located here.\nDestroy it.\nUse Dagger and Crawler units. Take out the two cores.
-sector.biomassFacility.description = The origin of spores. This is the facility in which they were researched and initially produced.\nResearch the technology contained within. Cultivate spores for the production of fuel and plastics.\n\n[lightgray]Upon this facility's demise, the spores were released. Nothing in the local ecosystem could compete with such an invasive organism.
-sector.windsweptIslands.description = Further past the shoreline is this remote chain of islands. Records show they once had [accent]Plastanium[]-producing structures.\n\nFend off the enemy's naval units. Establish a base on the islands. Research these factories.
-sector.extractionOutpost.description = A remote outpost, constructed by the enemy for the purpose of launching resources to other sectors.\n\nCross-sector transport technology is essential for further conquest. Destroy the base. Research their Launch Pads.
-sector.impact0078.description = Here lie remnants of the interstellar transport vessel that first entered this system.\n\nSalvage as much as possible from the wreckage. Research any intact technology.
-sector.planetaryTerminal.description = The final target.\n\nThis coastal base contains a structure capable of launching Cores to local planets. It is extremely well guarded.\n\nProduce naval units. Eliminate the enemy as quickly as possible. Research the launch structure.
-sector.coastline.description = Remnants of naval unit technology have been detected at this location. Repel the enemy attacks, capture this sector, and acquire the technology.
-sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it.
+sector.groundZero.description = Um bom lugar para recomeçar. Baixa ameaça inimiga. Poucos recursos.\nConsegue o máximo possível de chumbo e cobre.\nContinua.
+sector.frozenForest.description = Mesmo aqui, perto das montanhas, os esporos espalharam-se. As temperaturas baixas não os podem conter para sempre.\n\nComeça a aventura com energia. Constrói geradores a combustão. Aprende a usar reparadores.
+sector.saltFlats.description = Nos arredores do deserto ficam as planícies de sal. Poucos recursos podem ser encontrados neste local.\n\nO inimigo construiu um complexo de armazenamento de recursos aqui. Destrói o núcleo deles. Não deixes nada de sobra.
+sector.craters.description = A água se acumulou nesta cratera, relíquia das guerras antigas. Reconquista a área. Recolhe areia. Faz metavidro. Usa a água para arrefecer brocas e torres.
+sector.ruinousShores.description = Para além dos resíduos, está a linha costeira. Antigamente, este local abrigava uma rede de defesa costeira. Não restou muita coisa. Apenas as estruturas de defesas básicas permaneceram ilesas, o resto foi reduzido a sucata.\nContinua a expandir os teus territórios, redescobre a tecnologia.
+sector.stainedMountains.description = Mais para o interior estão as montanhas, ainda não contaminadas pelos esporos.\nExtrai o titânio que é abundante nesta área. Aprende a usá-lo.\n\nA presença inimiga é maior aqui. Não lhes dês tempo de trazerem unidades mais fortes.
+sector.overgrowth.description = Esta área coberta por vegetação, próxima ao local de origem dos esporos.\nO inimigo estabeleceu um posto de controlo aqui. Produz unidades Mace. Destrói-o.
+sector.tarFields.description = A periferia de uma zona de produção de petróleo, entre as montanhas e o deserto. Uma das poucas áreas com reservas de alcatrão utilizáveis.\nMesmo abandonada, esta área tem forças inimigas perigosas por perto. Não os subestimes.\n\n[lightgray]Pesquisa a tecnologia de processamento de petróleo se possível.
+sector.desolateRift.description = Uma zona extremamente perigosa. Recursos abundantes, mas pouco espaço. Grande risco de destruição. Constrói defesas aéreas e terrestres o mais rápido possível. Não te deixes levar pelo tempo entre os ataques inimigos.
+sector.nuclearComplex.description = Uma antiga instalação de produção e processamento de tório, reduzida a ruínas.\n[lightgray]Investiga o tório e os seus vários usos.\n\nO inimigo está presente aqui em grande número, constantemente à procura por atacantes.
+sector.fungalPass.description = Uma área de transição entre altas montanhas e terras baixas, repletas de esporos. Uma pequena base de reconhecimento inimiga está aqui.\nDestrua-a. Usa as unidades Dagger e Crawler. Desfaz os dois núcleos.
+sector.biomassFacility.description = A origem dos esporos. Esta é a instalação onde eles foram pesquisados e produzidos inicialmente.\nPesquisa a tecnologia contida na instalação. Cultiva os esporos para a produção de combustíveis e plásticos.\n\n[lightgray]No falecimento da instalação, os esporos foram libertados. Nada no ecossistema local conseguia competir com um organismo tão invasivo.
+sector.windsweptIslands.description = Um pouco depois do literal está esta série remota de ilhas. Registos mostram que haviam estruturas de produção de [accent]Plastânio[].\n\nDefende-te das unidades navais inimigas. Estabelece uma base nas ilhas. Pesquisa estas fábricas.
+sector.extractionOutpost.description = Um posto avançado remoto, construído pelo inimigo com o objetivo de lançar recursos para outros setores.\n\nA tecnologia de transporte entre setores é essencial para conquistas de território posteriores. Destrói a base. Pesquisa as Plataformas de Lançamento deles.
+sector.impact0078.description = Aqui repousam restos de uma nave de transporte interestelar que entrou pela primeira vez neste sistema.\nRecupera o máximo possível dos destroços. Pesquisa qualquer tecnologia intacta.
+sector.planetaryTerminal.description = O último alvo.\n\nEssa base costeira contém a estrutura capaz de lançar Núcleos para planetas locais. Está extremamente bem protegida.\n\nProduz unidades navais. Elimina o inimigo o mais rápido possível. Pesquisa a estrutura de lançamento.
+sector.coastline.description = Restos de tecnologia de unidades navais foram detetados nesta localização. Repele os ataques inimigos, captura o setor, e adquire a tecnologia.
+sector.navalFortress.description = O inimigo estabeleceu uma base numa ilha remota e naturalmente fortificada. Destrói este posto. Adquire a tecnologia avançada de construção naval deles, e desenvolve-a.
sector.cruxscape.name = Cruxscape
sector.geothermalStronghold.name = Geothermal Stronghold
+
sector.facility32m.description = WIP, map submission by Stormride_R
sector.taintedWoods.description = WIP, map submission by Stormride_R
sector.atolls.description = WIP, map submission by Stormride_R
sector.frontier.description = WIP, map submission by Stormride_R
sector.infestedCanyons.description = WIP, map submission by Skeledragon
+
sector.polarAerodrome.description = WIP, map submission by hhh i 17
sector.testingGrounds.description = WIP, map submission by dnx2019
sector.seaPort.description = WIP, map submission by inkognito626
@@ -865,554 +913,587 @@ sector.siege.name = Siege
sector.crossroads.name = Crossroads
sector.karst.name = Karst
sector.origin.name = Origin
-sector.onset.description = Commence the conquest of Erekir. Gather resources, produce units, and begin researching technology.
-sector.aegis.description = This sector contains deposits of tungsten.\nResearch the [accent]Impact Drill[] to mine this resource, and destroy the enemy base in the area.
-sector.lake.description = This sector's slag lake greatly limits viable units. A hover unit is the only option.\nResearch the [accent]ship fabricator[] and produce an [accent]elude[] unit as soon as possible.
-sector.intersect.description = Scans suggest that this sector will be attacked from multiple sides soon after landing.\nSet up defenses quickly and expand as soon as possible.\n[accent]Mech[] units will be required for the area's rough terrain.
-sector.atlas.description = This sector contains varied terrain and will require a variety of units to attack effectively.\nUpgraded units may also be necessary to get past some of the tougher enemy bases detected here.\nResearch the [accent]Electrolyzer[] and the [accent]Tank Refabricator[].
-sector.split.description = The minimal enemy presence in this sector makes it perfect for testing new transport tech.
-sector.basin.description = Large enemy presence detected in this sector.\nBuild units quickly and capture enemy cores to gain a foothold.
-sector.marsh.description = This sector has an abundance of arkycite, but has limited vents.\nBuild [accent]Chemical Combustion Chambers[] to generate power.
-sector.peaks.description = The mountainous terrain in this sector make most units useless. Flying units will be required.\nBe aware of enemy anti-air installations. It may be possible to disable some of these installations by targeting their supporting buildings.
-sector.ravine.description = No enemy cores detected in the sector, although it's an important transportation route for the enemy. Expect variety of enemy forces.\nProduce [accent]surge alloy[]. Construct [accent]Afflict[] turrets.
-sector.caldera-erekir.description = The resources detected in this sector are scattered across several islands.\nResearch and deploy drone-based transportation.
-sector.stronghold.description = The large enemy encampment in this sector guards significant deposits of [accent]thorium[].\nUse it to develop higher tier units and turrets.
-sector.crevice.description = The enemy will send fierce attack forces to take out your base in this sector.\nDeveloping [accent]carbide[] and the [accent]Pyrolysis Generator[] may be imperative for survival.
-sector.siege.description = This sector features two parallel canyons that will force a two-pronged attack.\nResearch [accent]cyanogen[] to gain the capability to create even stronger tank units.\nCaution: enemy long-range missiles have been detected. The missiles may be shot down before impact.
-sector.crossroads.description = The enemy bases in this sector have been established in varying terrain. Research different units to adapt.\nAdditionally, some bases are protected by shields. Figure out how they are powered.
-sector.karst.description = This sector is rich in resources, but will be attacked by the enemy once a new core lands.\nTake advantage of the resources and research [accent]phase fabric[].
-sector.origin.description = The final sector with a significant enemy presence.\nNo probable research opportunities remain - focus solely on destroying all enemy cores.
-status.burning.name = Burning
-status.freezing.name = Freezing
-status.wet.name = Wet
-status.muddy.name = Muddy
-status.melting.name = Melting
-status.sapped.name = Sapped
-status.electrified.name = Electrified
-status.spore-slowed.name = Spore Slowed
+sector.onset.description = Inicia a conquista de Erekir. Reúne recursos, produz unidades e começa a pesquisar tecnologia.
+sector.aegis.description = Este setor contém depósitos de tungsténio.\nDesenvolve a [accent]Broca de Impacto[] para minerar este recurso, e destrói a base inimiga nesta área.
+sector.lake.description = O lago de escória neste setor limita muito as unidades viáveis. Uma unidade flutuante é a única opção.\nPesquisa o [accent]Construtor de Naves[] e produza uma unidade [accent]Elude[] o mais rápido possível.
+sector.intersect.description = Scans sugerem que este setor será atacado de vários lados logo após a aterragem.\nPrepara defesas rapidamente e expande o mais rápido possível.\nSerão necessárias unidades [accent]Mech[] para o terreno acidentado da área.
+sector.atlas.description = Este setor contém terreno variado e exigirá uma variedade de unidades para atacar eficazmente.\nUnidades melhoradas também podem ser necessárias para passar por algumas das bases inimigas mais difíceis detectadas aqui.\nPesquisa o [accent]Eletrolisador[] e o [accent]Refrabicador de Tanques[].
+sector.split.description = A presença mínima de inimigos neste setor torna-o perfeito para testar novas tecnologias de transporte.
+sector.basin.description = Grande presença inimiga detetada neste setor.\nConstrói unidades rapidamente e captura os núcleos inimigos para ganhar terreno.
+sector.marsh.description = Este setor tem abundância de arquicita, mas tem respiradouros limitados.\nConstrói [accent]Câmaras de Combustão Química[] para gerar energia.
+sector.peaks.description = O terreno montanhoso neste setor torna a maioria das unidades inúteis. Unidades voadoras serão necessárias.\nEsteja atento das instalações anti-aéreas inimigas. Pode ser possível desativar algumas dessas instalações ao atacar as suas construções de suporte.
+sector.ravine.description = Nenhum núcleo inimigo detetado no setor, embora seja uma importante rota de transporte para o inimigo. Espera uma variedade de forças inimigas.\nProduz [accent]liga de surto[]. Constrói torres [accent]Afflict[].
+sector.caldera-erekir.description = Os recursos detetados neste setor estão espalhados por várias ilhas.\nPesquisa e implanta transporte baseado em drones.
+sector.stronghold.description = O grande acampamento inimigo neste setor guarda depósitos significativos de [accent]tório[].\nUse-o para desenvolver unidades e torres de nível superior.
+sector.crevice.description = O inimigo enviará forças de ataque ferozes para destruir a tua base neste setor.\nDesenvolver [accent]carbide[] e o [accent]Gerador de Pirólise[] pode ser indispensável para sobreviver.
+sector.siege.description = Este setor apresenta dois desfiladeiros paralelos que forçarão um ataque em duas frentes.\nPesquisa o [accent]cianogénio[] para obter a capacidade de criar unidades de tanques ainda mais fortes.\nCuidado: mísseis inimigos de longo alcance foram detectados. Os mísseis podem ser derrubados antes do impacto.
+sector.crossroads.description = As bases inimigas neste setor foram estabelecidas em terrenos variados. Pesquisa diferentes unidades para adaptar.\nAlém disso, algumas bases estão protegidas por escudos. Descobre como eles são alimentados.
+sector.karst.description = Este setor é rico em recursos, mas será atacado pelo inimigo assim que um novo núcleo chegar.\nAproveita os recursos e pesquisa o [accent]tecido de fase[].
+sector.origin.description = O setor final com uma presença inimiga significativa.\nNenhuma oportunidade de pesquisa provável permanece - foca-te apenas em destruir todos os núcleos inimigos.
+status.burning.name = Queimar
+status.freezing.name = Congelar
+status.wet.name = Molhado
+status.muddy.name = Lama
+status.melting.name = Derreter
+status.sapped.name = Enfraquecer
+status.electrified.name = Eletrificar
+status.spore-slowed.name = Lentidão de Esporos
status.tarred.name = Tarred
-status.overdrive.name = Overdrive
+status.overdrive.name = Sobrecarga
status.overclock.name = Overclock
-status.shocked.name = Shocked
-status.blasted.name = Blasted
-status.unmoving.name = Unmoving
-status.boss.name = Guardian
+status.shocked.name = Choque
+status.blasted.name = Explosão
+status.unmoving.name = Parado
+status.boss.name = Guardião
-settings.language = Linguagem
+settings.language = Idioma
settings.data = Dados do jogo
settings.reset = Restaurar Padrões
settings.rebind = Religar
-settings.resetKey = Reset
-settings.controls = Controles
+settings.resetKey = Repor
+settings.controls = Controlos
settings.game = Jogo
settings.sound = Som
settings.graphics = Gráficos
settings.cleardata = Apagar dados...
-settings.clear.confirm = Certeza que quer limpar a os dados?\nOque é feito não pode ser desfeito!
-settings.clearall.confirm = [scarlet]Aviso![]\nIsso vai limpar toda a data, Incluindo saves, mapas, Keybinds e desbloqueados.\nQuando apertar 'ok' Vai apagar toda a data e sair automaticamente.
-settings.clearsaves.confirm = Are you sure you want to clear all your saves?
-settings.clearsaves = Clear Saves
-settings.clearresearch = Clear Research
-settings.clearresearch.confirm = Are you sure you want to clear all of your campaign research?
-settings.clearcampaignsaves = Clear Campaign Saves
-settings.clearcampaignsaves.confirm = Are you sure you want to clear all of your campaign saves?
-paused = Pausado
+settings.clear.confirm = Tens a certeza que queres limpar os dados?\nOque é feito não pode ser desfeito!
+settings.clearall.confirm = [scarlet]AVISO![]\nIsto vai limpar todos os dados, incluindo saves, mapas, keybinds e desbloqueios.\nQuando apertar 'ok' o jogo vai apagar todos os dados e fechar automaticamente.
+settings.clearsaves.confirm = Tens a certeza que queres apagar todos os teus saves?
+settings.clearsaves = Apagar Saves
+settings.clearresearch = Limpar Pesquisa
+settings.clearresearch.confirm = Tens a certeza que queres apagar toda a tua pesquisa na campanha?
+settings.clearcampaignsaves = Limpar Saves da Campanha
+settings.clearcampaignsaves.confirm = Tens a certeza que queres limpar todos os teus saves da campanha?
+paused = < Pausado >
clear = Limpar
banned = [scarlet]Banido
-unsupported.environment = [scarlet]Unsupported Environment
+unsupported.environment = [scarlet]Ambiente Não Suportado
yes = Sim
no = Não
info.title = [accent]Informação
error.title = [crimson]Ocorreu um Erro.
error.crashtitle = Ocorreu um Erro
-unit.nobuild = [scarlet]Unit can't build
-lastaccessed = [lightgray]Last Accessed: {0}
-lastcommanded = [lightgray]Last Commanded: {0}
+unit.nobuild = [scarlet]Unidade não pode construir
+lastaccessed = [lightgray]Último Acesso: {0}
+lastcommanded = [lightgray]Último comando: {0}
block.unknown = [lightgray]???
-stat.showinmap =
-stat.description = Purpose
+stat.showinmap =
+stat.description = Finalidade
stat.input = Entrada
stat.output = Saida
-stat.maxefficiency = Max Efficiency
+stat.maxefficiency = Eficiência Máxima
stat.booster = Booster
-stat.tiles = Telhas Requeridas
+stat.tiles = Blocos Necessários
stat.affinities = Afinidades
-stat.opposites = Opposites
+stat.opposites = Opostos
stat.powercapacity = Capacidade de Energia
stat.powershot = Energia/tiro
stat.damage = Dano
-stat.targetsair = Mirar no ar
-stat.targetsground = Mirar no chão
+stat.targetsair = Mirar no Ar
+stat.targetsground = Mirar no Chão
stat.itemsmoved = Velocidade de movimento
-stat.launchtime = Tempo entre tiros
-stat.shootrange = Alcance
+stat.launchtime = Tempo entre Tiros
+stat.shootrange = Alcance de Tiro
stat.size = Tamanho
-stat.displaysize = Display Size
+stat.displaysize = Mostrar Tamanho
stat.liquidcapacity = Capacidade de Líquido
stat.powerrange = Alcance da Energia
-stat.linkrange = Link Range
-stat.instructions = Instructions
-stat.powerconnections = Max Connections
-stat.poweruse = Uso de energia
+stat.linkrange = Alcance do Link
+stat.instructions = Instruções
+stat.powerconnections = Conexões Máximas
+stat.poweruse = Uso de Energia
stat.powerdamage = Dano/Poder
stat.itemcapacity = Capacidade de Itens
-stat.memorycapacity = Memory Capacity
-stat.basepowergeneration = Geração de poder base
-stat.productiontime = Tempo de produção
-stat.repairtime = Tempo de reparo total do bloco
-stat.repairspeed = Repair Speed
-stat.weapons = Weapons
-stat.bullet = Bullet
-stat.moduletier = Module Tier
-stat.unittype = Unit Type
-stat.speedincrease = Aumento de velocidade
-stat.range = Distância
-stat.drilltier = Furáveis
-stat.drillspeed = Velocidade da broca base
+stat.memorycapacity = Capacidade de Memória
+stat.basepowergeneration = Geração de Poder Base
+stat.productiontime = Tempo de Produção
+stat.repairtime = Tempo de Reparo Total do Bloco
+stat.repairspeed = Velocidade de Reparação
+stat.weapons = Armas
+stat.bullet = Bala
+stat.moduletier = Nível do Módulo
+stat.unittype = Tipo de Unidade
+stat.speedincrease = Aumento de Velocidade
+stat.range = Alcance
+stat.drilltier = Brocas
+stat.drillspeed = Velocidade base da Broca
stat.boosteffect = Efeito do Boost
-stat.maxunits = Máximo de unidades ativas
+stat.maxunits = Máximo de Unidades Ativas
stat.health = Saúde
stat.armor = Armor
-stat.buildtime = Tempo de construção
-stat.maxconsecutive = Max Consecutive
-stat.buildcost = Custo de construção
+stat.buildtime = Tempo de Construção
+stat.maxconsecutive = Máximo Consecutivo
+stat.buildcost = Custo de Construção
stat.inaccuracy = Imprecisão
stat.shots = Tiros
-stat.reload = Tiros por segundo
+stat.reload = Tiros por Segundo
stat.ammo = Munição
-stat.shieldhealth = Shield Health
-stat.cooldowntime = Cooldown Time
-stat.explosiveness = Explosiveness
-stat.basedeflectchance = Base Deflect Chance
-stat.lightningchance = Lightning Chance
-stat.lightningdamage = Lightning Damage
-stat.flammability = Flammability
-stat.radioactivity = Radioactivity
-stat.charge = Charge
-stat.heatcapacity = HeatCapacity
-stat.viscosity = Viscosity
-stat.temperature = Temperature
-stat.speed = Speed
-stat.buildspeed = Build Speed
-stat.minespeed = Mine Speed
-stat.minetier = Mine Tier
-stat.payloadcapacity = Payload Capacity
-stat.abilities = Abilities
-stat.canboost = Can Boost
-stat.flying = Flying
-stat.ammouse = Ammo Use
-stat.ammocapacity = Ammo Capacity
-stat.damagemultiplier = Damage Multiplier
-stat.healthmultiplier = Health Multiplier
-stat.speedmultiplier = Speed Multiplier
-stat.reloadmultiplier = Reload Multiplier
-stat.buildspeedmultiplier = Build Speed Multiplier
-stat.reactive = Reacts
-stat.immunities = Immunities
-stat.healing = Healing
+stat.shieldhealth = Vida do Escudo
+stat.cooldowntime = Tempo de Espera
+stat.explosiveness = Explosividade
+stat.basedeflectchance = Probabilidade Base de Esquiva
+stat.lightningchance = Probabilidade de Raio
+stat.lightningdamage = Dano de Raio
+stat.flammability = Inflamabilidade
+stat.radioactivity = Radioatividade
+stat.charge = Carga de Eletricidade
+stat.heatcapacity = Capacidade de Calor
+stat.viscosity = Viscosidade
+stat.temperature = Temperatura
+stat.speed = Velocidade
+stat.buildspeed = Velocidade de Construção
+stat.minespeed = Velocidade de Mineração
+stat.minetier = Nível de Mineração
+stat.payloadcapacity = Capacidade da Carga
+stat.abilities = Habilidades
+stat.canboost = Pode Impulsionar
+stat.flying = Voar
+stat.ammouse = Consumo de Munição
+stat.ammocapacity = Capacidade de Munição
+stat.damagemultiplier = Multiplicador de Dano
+stat.healthmultiplier = Multiplicador de Vida
+stat.speedmultiplier = Multiplicador de Velocidade
+stat.reloadmultiplier = Multiplicador de Recarga
+stat.buildspeedmultiplier = Multiplicador de Velocidade de COnstrução
+stat.reactive = Reações
+stat.immunities = Imunidade
+stat.healing = Reparação
+stat.efficiency = [stat]{0}% Efficiency
-ability.forcefield = Force Field
-ability.forcefield.description = Projects a force shield that absorbs bullets
-ability.repairfield = Repair Field
-ability.repairfield.description = Repairs nearby units
-ability.statusfield = Status Field
-ability.statusfield.description = Applies a status effect to nearby units
-ability.unitspawn = Factory
-ability.unitspawn.description = Constructs units
-ability.shieldregenfield = Shield Regen Field
-ability.shieldregenfield.description = Regenerates shields of nearby units
-ability.movelightning = Movement Lightning
-ability.movelightning.description = Releases lightning while moving
-ability.armorplate = Armor Plate
-ability.armorplate.description = Reduces damage taken while shooting
-ability.shieldarc = Shield Arc
-ability.shieldarc.description = Projects a force shield in an arc that absorbs bullets
-ability.suppressionfield = Regen Suppression Field
-ability.suppressionfield.description = Stops nearby repair buildings
-ability.energyfield = Energy Field
-ability.energyfield.description = Zaps nearby enemies
-ability.energyfield.healdescription = Zaps nearby enemies and heals allies
-ability.regen = Regeneration
-ability.regen.description = Regenerates own health over time
-ability.liquidregen = Liquid Absorption
-ability.liquidregen.description = Absorbs liquid to heal itself
-ability.spawndeath = Death Spawns
-ability.spawndeath.description = Releases units on death
-ability.liquidexplode = Death Spillage
-ability.liquidexplode.description = Spills liquid on death
-ability.stat.firingrate = [stat]{0}/sec[lightgray] firing rate
-ability.stat.regen = [stat]{0}[lightgray] health/sec
-ability.stat.pulseregen = [stat]{0}[lightgray] health/pulse
-ability.stat.shield = [stat]{0}[lightgray] shield
-ability.stat.repairspeed = [stat]{0}/sec[lightgray] repair speed
-ability.stat.slurpheal = [stat]{0}[lightgray] health/liquid unit
-ability.stat.cooldown = [stat]{0} sec[lightgray] cooldown
-ability.stat.maxtargets = [stat]{0}[lightgray] max targets
-ability.stat.sametypehealmultiplier = [stat]{0}%[lightgray] same type repair amount
-ability.stat.damagereduction = [stat]{0}%[lightgray] damage reduction
-ability.stat.minspeed = [stat]{0} tiles/sec[lightgray] min speed
-ability.stat.duration = [stat]{0} sec[lightgray] duration
-ability.stat.buildtime = [stat]{0} sec[lightgray] build time
+ability.forcefield = Campo de Força
+ability.forcefield.description = Cria um campo de força que absorve as balas
+ability.repairfield = Campo de Reparação
+ability.repairfield.description = Repara unidades próximas
+ability.statusfield = Campo de Estado
+ability.statusfield.description = Aplica um estado a unidades próximas
+ability.unitspawn = Fábrica
+ability.unitspawn.description = Constrói unidades
+ability.shieldregenfield = Campo de regeneração do escudo
+ability.shieldregenfield.description = Regenera o escudo de unidades próximas
+ability.movelightning = Raio de Movimento
+ability.movelightning.description = Liberta raios enquanto se move
+ability.armorplate = Placa de Armadura
+ability.armorplate.description = Reduz o dano sofrido ao disparar
+ability.shieldarc = Arco de Escudo
+ability.shieldarc.description = Projeta um campo de escudo em forma de arco que absorve as balas
+ability.suppressionfield = Supressão de Reparo
+ability.suppressionfield.description = Pára reparações de estruturas próximas
+ability.energyfield = Campo de Energia
+ability.energyfield.description = Eletrocuta inimigos próximos
+ability.energyfield.healdescription = Eletrocuta inimigos próximos e cura aliados
+ability.regen = Regeneração
+ability.regen.description = Regenera a própria vida com o tempo
+ability.liquidregen = Absorção de Líquidos
+ability.liquidregen.description = Absorve líquidos para curar-se a si próprio
+ability.spawndeath = Spawns de Morte
+ability.spawndeath.description = Liberta unidades aquando a morte
+ability.liquidexplode = Derrame de morte
+ability.liquidexplode.description = Derrama líquidos aquando a morte
+ability.stat.firingrate = [stat]{0}/seg.[lightgray] taxa de disparo
+ability.stat.regen = [stat]{0}[lightgray] vida/sec
+ability.stat.pulseregen = [stat]{0}[lightgray] vida/pulso
+ability.stat.shield = [stat]{0}[lightgray] escudo
+ability.stat.repairspeed = [stat]{0}/seg.[lightgray] velocidade de reparação
+ability.stat.slurpheal = [stat]{0}[lightgray] unidade de vida/líquido
+ability.stat.cooldown = [stat]{0} seg.[lightgray] espera
+ability.stat.maxtargets = [stat]{0}[lightgray] alvos máximos
+ability.stat.sametypehealmultiplier = [stat]{0}%[lightgray] quantidade de reparação do mesmo tipo
+ability.stat.damagereduction = [stat]{0}%[lightgray] redução de dano
+ability.stat.minspeed = [stat]{0} blocos/seg.[lightgray] velocidade mínima
+ability.stat.duration = [stat]{0} seg.[lightgray] duração
+ability.stat.buildtime = [stat]{0} seg.[lightgray] tempo de construção
-bar.onlycoredeposit = Only Core Depositing Allowed
-
-bar.drilltierreq = Broca melhor necessária.
-bar.noresources = Missing Resources
-bar.corereq = Core Base Required
-bar.corefloor = Core Zone Tile Required
-bar.cargounitcap = Cargo Unit Cap Reached
-bar.drillspeed = Velocidade da broca: {0}/s
-bar.pumpspeed = Pump Speed: {0}/s
+bar.onlycoredeposit = Depósito no núcleo permitido apenas
+bar.drilltierreq = Melhor broca necessária
+bar.nobatterypower = Insufficient Battery Power
+bar.noresources = Recursos Insuficientes
+bar.corereq = Base de Núcleo Necessária
+bar.corefloor = Chão de colocação do Núcleo Necessária
+bar.cargounitcap = Limite de Carga Atingido
+bar.drillspeed = Velocidade da Broca: {0}/s
+bar.pumpspeed = Velocidade da Bomba: {0}/s
bar.efficiency = Eficiência: {0}%
-bar.boost = Boost: +{0}%
-bar.powerbalance = Energia: {0}
+bar.boost = Impulso: +{0}%
+bar.powerbuffer = Batteries: {0}/{1}
+bar.powerbalance = Energia: {0}/s
+
bar.powerstored = Armazenada: {0}/{1}
bar.poweramount = Energia: {0}
bar.poweroutput = Saída de energia: {0}
-bar.powerlines = Connections: {0}/{1}
+bar.powerlines = Conexões: {0}/{1}
bar.items = Itens: {0}
bar.capacity = Capacidade: {0}
bar.unitcap = {0} {1}/{2}
-bar.liquid = Liquido
-bar.heat = Aquecimento
-bar.instability = Instability
-bar.heatamount = Heat: {0}
-bar.heatpercent = Heat: {0} ({1}%)
-bar.power = Poder
-bar.progress = Progresso da construção
-bar.loadprogress = Progress
-bar.launchcooldown = Launch Cooldown
-bar.input = Input
-bar.output = Output
-bar.strength = [stat]{0}[lightgray]x strength
+bar.liquid = Líquido
+bar.heat = Calor
+bar.cooldown = Cooldown
+bar.instability = Instabilidade
+bar.heatamount = Calor: {0}
+bar.heatpercent = Calor: {0} ({1}%)
-units.processorcontrol = [lightgray]Processor Controlled
+bar.power = Poder
+bar.progress = Progresso da Construção
+bar.loadprogress = Progreso
+bar.launchcooldown = Cooldown de Lançamento
+bar.input = Entrada
+bar.output = Saída
+bar.strength = [stat]{0}[lightgray]x força
+
+units.processorcontrol = [lightgray]Controlado por Processador
bullet.damage = [stat]{0}[lightgray] dano
-bullet.splashdamage = [stat]{0}[lightgray] Dano em área ~[stat] {1}[lightgray] Blocos
-bullet.incendiary = [stat]Incendiário
-bullet.homing = [stat]Guiado
-bullet.armorpierce = [stat]armor piercing
-bullet.maxdamagefraction = [stat]{0}%[lightgray] damage limit
-bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles
-bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
-bullet.frags = [stat]{0}[lightgray]x frag bullets:
-bullet.lightning = [stat]{0}[lightgray]x lightning ~ [stat]{1}[lightgray] damage
-bullet.buildingdamage = [stat]{0}%[lightgray] building damage
-bullet.knockback = [stat]{0}[lightgray]Impulso
-bullet.pierce = [stat]{0}[lightgray]x pierce
-bullet.infinitepierce = [stat]pierce
-bullet.healpercent = [stat]{0}[lightgray]% healing
-bullet.healamount = [stat]{0}[lightgray] direct repair
+bullet.splashdamage = [stat]{0}[lightgray] Dano em área ~[stat] {1}[lightgray] Bloco(s)
+bullet.incendiary = [stat]incendiário
+bullet.homing = [stat]guiado
+bullet.armorpierce = [stat]perfuração de armadura
+bullet.maxdamagefraction = [stat]{0}%[lightgray] limite de dano
+bullet.suppression = [stat]{0} seg.[lightgray] supressão de reparação ~ [stat]{1}[lightgray] blocos
+bullet.interval = [stat]{0}/seg.[lightgray] balas de intervalo:
+bullet.frags = [stat]{0}[lightgray]x fragmentos de balas:
+bullet.lightning = [stat]{0}[lightgray]x raio ~ [stat]{1}[lightgray] dano
+bullet.buildingdamage = [stat]{0}%[lightgray] dano em construções
+bullet.shielddamage = [stat]{0}%[lightgray] shield damage
+bullet.knockback = [stat]{0}[lightgray] impulso
+bullet.pierce = [stat]{0}[lightgray]x perfuração
+bullet.infinitepierce = [stat]perfuração
+bullet.healpercent = [stat]{0}[lightgray]% cura
+bullet.healamount = [stat]{0}[lightgray] reparo direto
bullet.multiplier = [stat]{0}[lightgray]x multiplicador de munição
bullet.reload = [stat]{0}[lightgray]x cadência de tiro
-bullet.range = [stat]{0}[lightgray] tiles range
-bullet.notargetsmissiles = [stat] ignores buildings
-bullet.notargetsbuildings = [stat] ignores missiles
+bullet.range = [stat]{0}[lightgray] alcance de blocos
+bullet.notargetsmissiles = [stat] ignora construções
+bullet.notargetsbuildings = [stat] ignora mísseis
unit.blocks = Blocos
-unit.blockssquared = blocks²
-unit.powersecond = Unidades de energia/segundo
-unit.tilessecond = tiles/second
-unit.liquidsecond = Unidades de líquido/segundo
-unit.itemssecond = itens/segundo
-unit.liquidunits = Unidades de liquido
+unit.blockssquared = Blocos²
+unit.powersecond = Unidades de energia/seg.
+unit.tilessecond = Blocos/seg.
+unit.liquidsecond = Unidades de líquido/seg.
+unit.itemssecond = Itens/seg.
+unit.liquidunits = Unidades de líquido
unit.powerunits = Unidades de energia
-unit.heatunits = heat units
+unit.heatunits = Unidades de calor
unit.degrees = Graus
unit.seconds = segundos
-unit.minutes = mins
-unit.persecond = por segundo
+unit.minutes = minutos
+unit.persecond = /seg.
unit.perminute = /min
-unit.timesspeed = x Velocidade
+unit.timesspeed = x velocidade
+unit.multiplier = x
+
unit.percent = %
-unit.shieldhealth = shield health
+unit.shieldhealth = saúde do escudo
unit.items = itens
-unit.thousands = k
-unit.millions = mil
-unit.billions = b
-unit.shots = shots
-unit.pershot = /shot
-category.purpose = Purpose
+unit.thousands = m
+unit.millions = M
+unit.billions = B
+unit.shots = disparos
+unit.pershot = /dispasro
+
+category.purpose = Propósito
category.general = Geral
category.power = Poder
category.liquids = Líquidos
category.items = Itens
-category.crafting = Construindo
-category.function = Function
-category.optional = Melhoras opcionais
-setting.alwaysmusic.name = Always Play Music
-setting.alwaysmusic.description = When enabled, music will always play on loop in-game.\nWhen disabled, it only plays at random intervals.
-setting.skipcoreanimation.name = Skip Core Launch/Land Animation
-setting.landscape.name = Travar panorama
+category.crafting = Entrada/Saída
+category.function = Função
+category.optional = Melhorias opcionais
+setting.alwaysmusic.name = Tocar Música Sempre
+setting.alwaysmusic.description = Quando ativado, a música vai ser tocada sempre em loop durante o jogo.\nQUando desativado, só toca em intervalos aleatórios.
+setting.skipcoreanimation.name = Passar Animação de Lançamento/Aterragem do Núcleo
+setting.landscape.name = Bloquear Orientação
setting.shadows.name = Sombras
-setting.blockreplace.name = Automatic Block Suggestions
+setting.blockreplace.name = Sugestões Automáticas de Blocos
setting.linear.name = Filtragem linear
-setting.hints.name = Hints
-setting.logichints.name = Logic Hints
-setting.backgroundpause.name = Pause In Background
-setting.buildautopause.name = Auto-Pause Building
-setting.doubletapmine.name = Double-Tap to Mine
-setting.commandmodehold.name = Hold For Command Mode
-setting.distinctcontrolgroups.name = Limit One Control Group Per Unit
-setting.modcrashdisable.name = Disable Mods On Startup Crash
-setting.animatedwater.name = Água animada
-setting.animatedshields.name = Escudos animados
-setting.playerindicators.name = Player Indicators
-setting.indicators.name = Indicador de aliados
-setting.autotarget.name = Alvo automatico
-setting.keyboard.name = Controles de mouse e teclado
-setting.touchscreen.name = Controles de Touchscreen
-setting.fpscap.name = FPS Máximo
+setting.hints.name = Dicas
+setting.logichints.name = Dicas de Lógica
+setting.backgroundpause.name = Pausar Jogo em Segundo Plano
+setting.buildautopause.name = Auto-Pausar Construções
+setting.doubletapmine.name = Duplo Toque para Minerar
+setting.commandmodehold.name = Segurar para Modo de Comando
+setting.distinctcontrolgroups.name = Limitar um Grupo de Controlo por Unidade
+setting.modcrashdisable.name = Desativar Mods em Crash de Início do Jogo
+setting.animatedwater.name = Água Animada
+setting.animatedshields.name = Escudos Animados
+setting.playerindicators.name = Indicador de Jogadores
+setting.indicators.name = Indicador de inimigos
+setting.autotarget.name = Alvo Automático
+setting.keyboard.name = Controlos de Rato e Teclado
+setting.touchscreen.name = Controlos de Touchscreen
+setting.fpscap.name = Limite de FPS
setting.fpscap.none = Nenhum
setting.fpscap.text = {0} FPS
-setting.uiscale.name = Escala da IU[lightgray] (reinicialização requerida)[]
-setting.uiscale.description = Restart required to apply changes.
-setting.swapdiagonal.name = Sempre colocação diagnoal
-setting.screenshake.name = Balanço do Ecrã
-setting.bloomintensity.name = Bloom Intensity
+
+setting.uiscale.name = Escala da IU[lightgray] (reinicío requerida)[]
+setting.uiscale.description = Reinicío necessário para aplicar as alterações.
+setting.swapdiagonal.name = Colocação Diagonal Sempre
+setting.screenshake.name = Vibração do Ecrã
+setting.bloomintensity.name = Intensidade do Bloom
+
setting.bloomblur.name = Bloom Blur
setting.effects.name = Efeitos
-setting.destroyedblocks.name = Mostrar Blocos Destruidos
-setting.blockstatus.name = Display Block Status
-setting.conveyorpathfinding.name = Localização do caminho do transportador
-setting.sensitivity.name = Sensibilidade do Controle
-setting.saveinterval.name = Intervalo de autogravamento
-setting.seconds = {0} Segundos
+setting.destroyedblocks.name = Mostrar Blocos Destruídos
+setting.blockstatus.name = Mostrar Estado do Bloco
+setting.conveyorpathfinding.name = Trajetória de Colocação de Tapetes Rolantes
+setting.sensitivity.name = Sensibilidade dos Controlos
+setting.saveinterval.name = Intervalo de auto-salvamento do jogo
+setting.seconds = {0} segundos
setting.milliseconds = {0} milissegundos
-setting.fullscreen.name = Ecrã inteiro
-setting.borderlesswindow.name = Janela sem borda[lightgray] (Pode precisar reiniciar)
-setting.borderlesswindow.name.windows = Borderless Fullscreen
-setting.borderlesswindow.description = Restart may be required to apply changes.
-setting.fps.name = Mostrar FPS
-setting.console.name = Enable Console
-setting.smoothcamera.name = Smooth Camera
-setting.vsync.name = VSync
-setting.pixelate.name = Pixelizado [lightgray](Pode diminuir a performace)
-setting.minimap.name = Mostrar minimapa
-setting.coreitems.name = Display Core Items
-setting.position.name = Show Player Position
-setting.mouseposition.name = Show Mouse Position
+setting.fullscreen.name = Ecrã Inteiro
+setting.borderlesswindow.name = Janela sem Bordas
+setting.borderlesswindow.name.windows = Ecrã sem Bordas
+setting.borderlesswindow.description = Pode ser necessário reiniciar para aplicar as alterações.
+setting.fps.name = Mostrar FPS e Ping
+setting.console.name = Ativar Consola
+setting.smoothcamera.name = Câmara Suave
+setting.vsync.name = Sincronização Vertical (VSync)
+setting.pixelate.name = Pixelização
+setting.minimap.name = Mostrar Minimapa
+setting.coreitems.name = Mostrar Itens do Núcleo
+setting.position.name = Mostrar Posição do Jogador
+setting.mouseposition.name = Mostrar Posição do Rato
setting.musicvol.name = Volume da Música
-setting.atmosphere.name = Show Planet Atmosphere
-setting.drawlight.name = Draw Darkness/Lighting
-setting.ambientvol.name = Volume do ambiente
+setting.atmosphere.name = Mostrar Atmosfera do Planeta
+setting.drawlight.name = Renderizar Iluminação/Escuro
+setting.ambientvol.name = Volume do Ambiente
setting.mutemusic.name = Desligar Música
-setting.sfxvol.name = Volume de Efeitos
+setting.sfxvol.name = Volume dos Efeitos
setting.mutesound.name = Desligar Som
-setting.crashreport.name = Enviar denuncias de crash anonimas
-setting.savecreate.name = Criar gravamentos automaticamente
+setting.crashreport.name = Enviar Relatórios de Crash Anónimos
+setting.communityservers.name = Fetch Community Server List
+setting.savecreate.name = Criar Gravações Automaticamente
setting.steampublichost.name = Public Game Visibility
setting.playerlimit.name = Limite de Jogadores
-setting.chatopacity.name = Opacidade do chat
-setting.lasersopacity.name = Opacidade do Power Laser
-setting.bridgeopacity.name = Opacidade da Ponte
-setting.playerchat.name = Mostrar chat em jogo
-setting.showweather.name = Show Weather Graphics
-setting.hidedisplays.name = Hide Logic Displays
+setting.chatopacity.name = Opacidade do Chat
+setting.lasersopacity.name = Opacidade do Poder do Laser
+setting.unitlaseropacity.name = Unit Mining Beam Opacity
+setting.bridgeopacity.name = Opacidade das Pontes
+setting.playerchat.name = Mostrar Chat em Jogo
+setting.showweather.name = Mostrar Gráficos do Clima
+setting.hidedisplays.name = Ocultar Ecrãs Lógicos
+
setting.macnotch.name = Adaptar a interface para exibir o entalhe
setting.macnotch.description = É necessário reiniciar para aplicar as alterações
-steam.friendsonly = Friends Only
-steam.friendsonly.tooltip = Whether only Steam friends will be able to join your game.\nUnchecking this box will make your game public - anyone can join.
-public.beta = Observe que as versões beta do jogo não podem criar lobbies públicos.
-uiscale.reset = A escala da IU foi mudada.\nPressione "OK" para confirmar esta escala.\n[scarlet]Revertendo e saindo em[accent] {0}[] settings...
+steam.friendsonly = Amigos Apenas
+steam.friendsonly.tooltip = Define se apenas amigos da Steam podem juntar-se ao teu jogo.\nDesativar esta opção fará o teu jogo público - qualquer um pode-se juntar ao teu mapa.
+setting.maxmagnificationmultiplierpercent.name = Min Camera Distance
+setting.minmagnificationmultiplierpercent.name = Max Camera Distance
+setting.minmagnificationmultiplierpercent.description = High values may cause performance issues.
+public.beta = Observa que as versões beta do jogo não podem criar lobbies públicos.
+uiscale.reset = A escala da IU foi mudada.\nPressiona "OK" para confirmar esta escala.\n[scarlet]Revertendo e saindo em[accent] {0}[] segundos...
uiscale.cancel = Cancelar e sair
setting.bloom.name = Bloom
-keybind.title = Refazer teclas
-keybinds.mobile = [scarlet]A maior parte das teclas aqui não são funcionais em aparelhos móveis. Apenas movimento básico é suportado.
+keybind.title = Revincular teclas
+keybinds.mobile = [scarlet]A maior parte das teclas aqui não funcionam em dispositivos móveis. Apenas é suportado movimento básico.
category.general.name = Geral
category.view.name = Ver
-category.command.name = Unit Command
+category.command.name = Comando de Unidades
category.multiplayer.name = Multijogador
-category.blocks.name = Block Select
-placement.blockselectkeys = \n[lightgray]Key: [{0},
-keybind.respawn.name = Respawn
-keybind.control.name = Control Unit
-keybind.clear_building.name = Limpar Edificio
-keybind.press = Pressione uma tecla...
-keybind.press.axis = Pressione uma Axis ou tecla...
-keybind.screenshot.name = Captura do mapa
-keybind.toggle_power_lines.name = Toggle Power Lasers
-keybind.toggle_block_status.name = Toggle Block Statuses
-keybind.move_x.name = mover_x
-keybind.move_y.name = mover_y
-keybind.mouse_move.name = Follow Mouse
-keybind.pan.name = Pan View
-keybind.boost.name = Boost
-keybind.command_mode.name = Command Mode
-keybind.command_queue.name = Unit Command Queue
-keybind.create_control_group.name = Create Control Group
-keybind.cancel_orders.name = Cancel Orders
-keybind.unit_stance_shoot.name = Unit Stance: Shoot
-keybind.unit_stance_hold_fire.name = Unit Stance: Hold Fire
-keybind.unit_stance_pursue_target.name = Unit Stance: Pursue Target
-keybind.unit_stance_patrol.name = Unit Stance: Patrol
-keybind.unit_stance_ram.name = Unit Stance: Ram
-keybind.unit_command_move.name = Unit Command: Move
-keybind.unit_command_repair.name = Unit Command: Repair
-keybind.unit_command_rebuild.name = Unit Command: Rebuild
-keybind.unit_command_assist.name = Unit Command: Assist
-keybind.unit_command_mine.name = Unit Command: Mine
-keybind.unit_command_boost.name = Unit Command: Boost
-keybind.unit_command_load_units.name = Unit Command: Load Units
-keybind.unit_command_load_blocks.name = Unit Command: Load Blocks
-keybind.unit_command_unload_payload.name = Unit Command: Unload Payload
-keybind.unit_command_enter_payload.name = Unit Command: Enter Payload
+
+category.blocks.name = Selecionador de Blocos
+placement.blockselectkeys = \n[lightgray]Tecla: [{0},
+keybind.respawn.name = Renascer
+keybind.control.name = Controlar Unidade
+keybind.clear_building.name = Limpar Construção
+keybind.press = Prime uma tecla...
+keybind.press.axis = Prime um eixo ou uma tecla...
+keybind.screenshot.name = Captura de Ecrã do Mapa
+keybind.toggle_power_lines.name = Ativar Lasers de Energia
+keybind.toggle_block_status.name = Ativar Estado de Blocos
+keybind.move_x.name = Mover no Eixo X
+keybind.move_y.name = Mover no Eixo Y
+keybind.mouse_move.name = Seguir Rato
+keybind.pan.name = Vista Panorâmica
+keybind.boost.name = Impulso
+keybind.command_mode.name = Modo de Comando
+keybind.command_queue.name = Fila de Comando de Unidades
+keybind.create_control_group.name = Criar Grupo de Controlo
+keybind.cancel_orders.name = Cancelar Pedidos
+
+keybind.unit_stance_shoot.name = Postura de Unidade: Disparar
+keybind.unit_stance_hold_fire.name = Postura de Unidade: Não Disparar
+keybind.unit_stance_pursue_target.name = Postura de Unidade: Perseguir Alvo
+keybind.unit_stance_patrol.name = Postura de Unidade: Patrulha
+keybind.unit_stance_ram.name = Postura de Unidade: Forçar
+keybind.unit_command_move.name = Controlo de Unidade: Mover
+keybind.unit_command_repair.name = Controlo de Unidade: Reparar
+keybind.unit_command_rebuild.name = Controlo de Unidade: Reconstruir
+keybind.unit_command_assist.name = Controlo de Unidade: Assistir
+keybind.unit_command_mine.name = Controlo de Unidade: Minerar
+keybind.unit_command_boost.name = Controlo de Unidade: Impulsionar
+keybind.unit_command_load_units.name = Controlo de Unidade: Carregar Unidades
+keybind.unit_command_load_blocks.name = Controlo de Unidade: Carregar Blocos
+keybind.unit_command_unload_payload.name = Controlo de Unidade: Descarregar Carga
+keybind.unit_command_enter_payload.name = Controlo de Unidade: Inserir Carga
keybind.unit_command_loop_payload.name = Unit Command: Loop Unit Transfer
-keybind.rebuild_select.name = Rebuild Region
-keybind.schematic_select.name = Selecionar região
-keybind.schematic_menu.name = Menu esquemático
-keybind.schematic_flip_x.name = Rodar esquema X
-keybind.schematic_flip_y.name = Rodar esquema Y
-keybind.category_prev.name = Previous Category
-keybind.category_next.name = Next Category
-keybind.block_select_left.name = Block Select Left
-keybind.block_select_right.name = Block Select Right
-keybind.block_select_up.name = Block Select Up
-keybind.block_select_down.name = Block Select Down
-keybind.block_select_01.name = Category/Block Select 1
-keybind.block_select_02.name = Category/Block Select 2
-keybind.block_select_03.name = Category/Block Select 3
-keybind.block_select_04.name = Category/Block Select 4
-keybind.block_select_05.name = Category/Block Select 5
-keybind.block_select_06.name = Category/Block Select 6
-keybind.block_select_07.name = Category/Block Select 7
-keybind.block_select_08.name = Category/Block Select 8
-keybind.block_select_09.name = Category/Block Select 9
-keybind.block_select_10.name = Category/Block Select 10
-keybind.fullscreen.name = Alterar ecrã inteiro
-keybind.select.name = Selecionar
-keybind.diagonal_placement.name = Colocação diagonal
-keybind.pick.name = Pegar bloco
-keybind.break_block.name = Quebrar bloco
-keybind.select_all_units.name = Select All Units
-keybind.select_all_unit_factories.name = Select All Unit Factories
-keybind.deselect.name = Deselecionar
-keybind.pickupCargo.name = Pickup Cargo
-keybind.dropCargo.name = Drop Cargo
+
+keybind.rebuild_select.name = Reconstruir Região
+keybind.schematic_select.name = Selecionar Região
+keybind.schematic_menu.name = Menu de Esquemas
+keybind.schematic_flip_x.name = Rodar Esquema pelo eixo X
+keybind.schematic_flip_y.name = Rodar Esquema pelo eixo Y
+keybind.category_prev.name = Categoria Anterior
+keybind.category_next.name = Próxima Categoria
+keybind.block_select_left.name = Selecionar Bloco à Esquerda
+keybind.block_select_right.name = Selecionar Bloco à Direita
+keybind.block_select_up.name = Selecionar Bloco Acima
+keybind.block_select_down.name = Seleconar Bloco Abaixo
+keybind.block_select_01.name = Categoria/Seleção de Bloco 1
+keybind.block_select_02.name = Categoria/Seleção de Bloco 2
+keybind.block_select_03.name = Categoria/Seleção de Bloco 3
+keybind.block_select_04.name = Categoria/Seleção de Bloco 4
+keybind.block_select_05.name = Categoria/Seleção de Bloco 5
+keybind.block_select_06.name = Categoria/Seleção de Bloco 6
+keybind.block_select_07.name = Categoria/Seleção de Bloco 7
+keybind.block_select_08.name = Categoria/Seleção de Bloco 8
+keybind.block_select_09.name = Categoria/Seleção de Bloco 9
+keybind.block_select_10.name = Categoria/Seleção de Bloco 10
+keybind.fullscreen.name = Ativar/Desativar Ecrã Inteiro
+keybind.select.name = Selecionar/Atirar
+keybind.diagonal_placement.name = Colocação na Diagonal
+keybind.pick.name = Pegar Bloco
+keybind.break_block.name = Partir Bloco
+keybind.select_all_units.name = Selecionar Todas as Unidades
+keybind.select_all_unit_factories.name = Selecionar Todas as Fábricas
+keybind.deselect.name = Desselecionar
+keybind.pickupCargo.name = Pegar Carga
+keybind.dropCargo.name = Largar Carga
+
keybind.shoot.name = Atirar
keybind.zoom.name = Zoom
keybind.menu.name = Menu
keybind.pause.name = Pausar
-keybind.pause_building.name = Pausar/Resumir construção
+keybind.skip_wave.name = Skip Wave
+keybind.pause_building.name = Pausar/Resumir Construção
keybind.minimap.name = Minimapa
-keybind.planet_map.name = Planet Map
-keybind.research.name = Research
-keybind.block_info.name = Block Info
-keybind.chat.name = Conversa
-keybind.player_list.name = Lista_de_jogadores
-keybind.console.name = console
-keybind.rotate.name = Girar
-keybind.rotateplaced.name = Rodar existente (Hold)
-keybind.toggle_menus.name = Ativar menus
-keybind.chat_history_prev.name = Histórico do chat anterior
-keybind.chat_history_next.name = Histórico do proximo chat
-keybind.chat_scroll.name = Rolar chat
-keybind.chat_mode.name = Change Chat Mode
-keybind.drop_unit.name = Soltar unidade
-keybind.zoom_minimap.name = Zoom do minimapa
+keybind.planet_map.name = Mapa do Planeta
+keybind.research.name = Pesquisa
+keybind.block_info.name = Informação do Bloco
+keybind.chat.name = Chat
+keybind.player_list.name = Lista de Jogadores
+keybind.console.name = Consola
+keybind.rotate.name = Rodar
+keybind.rotateplaced.name = Rodar Existente (Manter)
+keybind.toggle_menus.name = Ativar/Desativar Menus
+keybind.chat_history_prev.name = Histórico do Chat Anterior
+keybind.chat_history_next.name = Próximo Histórico do Chat
+keybind.chat_scroll.name = Percorrer Chat
+keybind.chat_mode.name = Mudar Modo de Chat
+keybind.drop_unit.name = Largar Unidade
+keybind.zoom_minimap.name = Zoom do Minimapa
mode.help.title = Descrição dos mods
-mode.survival.name = Sobrevivência
-mode.survival.description = O modo normal. Recursos limitados e hordas automáticas.
-mode.sandbox.name = Sandbox
-mode.sandbox.description = Recursos infinitos e sem tempo para ataques.
-mode.editor.name = Editor
-mode.pvp.name = JXJ
-mode.pvp.description = Lutar contra outros jogadores locais.
-mode.attack.name = Ataque
-mode.attack.description = Sem hordas, com o objetivo de destruir a base inimiga.
-mode.custom = Regras personalizadas
-rules.invaliddata = Invalid clipboard data.
-rules.hidebannedblocks = Hide Banned Blocks
-rules.infiniteresources = Recursos infinitos
-rules.onlydepositcore = Only Allow Core Depositing
-rules.derelictrepair = Allow Derelict Block Repair
-rules.reactorexplosions = Reactor Explosions
-rules.coreincinerates = Core Incinerates Overflow
-rules.disableworldprocessors = Disable World Processors
-rules.schematic = Schematics Allowed
-rules.wavetimer = Tempo de horda
-rules.wavesending = Wave Sending
-rules.allowedit = Allow Editing Rules
-rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu.
+mode.survival.name = Sobrevivência
+mode.survival.description = O modo padrão. Recursos limitados e hordas automáticas.
+mode.sandbox.name = Sandbox
+mode.sandbox.description = Recursos infinitos e sem temporizador para ataques.
+mode.editor.name = Editor
+mode.pvp.name = PvP
+mode.pvp.description = Luta contra outros jogadores locais.\n[gray]Necessita de pelo menos 2 núcleos de cores diferentes para jogar.
+mode.attack.name = Ataque
+mode.attack.description = Destrói a base inimiga.\n[gray]Requer um núcleo de cor vermelha no mapa para jogar.
+mode.custom = Regras personalizadas
+
+rules.invaliddata = Dados na área de transferência Inválidos
+rules.hidebannedblocks = Ocultar Blocos Banidos
+
+rules.infiniteresources = Recursos Infinitos
+rules.onlydepositcore = Permitir Apenas Depósito no Núcleo
+rules.derelictrepair = Permitir Reparação de Blocos Derelict
+rules.reactorexplosions = Esploções de Reatores
+rules.coreincinerates = Núcleo destrói Itens em Excesso
+rules.disableworldprocessors = Desativar Processadores Globais
+rules.schematic = Esquemas Permitidos
+rules.wavetimer = Tempo de Horda
+rules.wavesending = Envio de Hordas
+rules.allowedit = Permitir Edição de Regras
+rules.allowedit.info = Quando ativado, o jogador pode editar as regras em jogo através do botão no canto sup. esq. nop menu de Pausa.
rules.alloweditworldprocessors = Allow Editing World Processors
rules.alloweditworldprocessors.info = When enabled, world logic blocks can be placed and edited even outside the editor.
+
rules.waves = Hordas
-rules.airUseSpawns = Air units use spawn points
-rules.attack = Modo de ataque
-rules.buildai = Base Builder AI
-rules.buildaitier = Builder AI Tier
-rules.rtsai = RTS AI
+
+rules.airUseSpawns = Unidades Aéreas usam os Pontos de Spawn
+rules.attack = Modo de Ataque
+rules.buildai = Construtor de Base por IA
+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.rtsminsquadsize = Min Squad Size
-rules.rtsmaxsquadsize = Max Squad Size
-rules.rtsminattackweight = Min Attack Weight
-rules.cleanupdeadteams = Clean Up Defeated Team Buildings (PvP)
-rules.corecapture = Capture Core On Destruction
-rules.polygoncoreprotection = Polygonal Core Protection
-rules.placerangecheck = Placement Range Check
-rules.enemyCheat = Recursos de IA Infinitos
-rules.blockhealthmultiplier = Block Health Multiplier
-rules.blockdamagemultiplier = Block Damage Multiplier
-rules.unitbuildspeedmultiplier = Multiplicador de velocidade de criação de unidade
-rules.unitcostmultiplier = Unit Cost Multiplier
-rules.unithealthmultiplier = Multiplicador de vida de unidade
-rules.unitdamagemultiplier = Multiplicador de dano de Unidade
-rules.unitcrashdamagemultiplier = Unit Crash Damage Multiplier
-rules.solarmultiplier = Solar Power Multiplier
-rules.unitcapvariable = Cores Contribute To Unit Cap
-rules.unitpayloadsexplode = Carried Payloads Explode With The Unit
-rules.unitcap = Base Unit Cap
-rules.limitarea = Limit Map Area
-rules.enemycorebuildradius = Raio de "Não-criação" de core inimigo:[lightgray] (blocos)
-rules.wavespacing = Espaço entre hordas:[lightgray] (seg)
-rules.initialwavespacing = Initial Wave Spacing:[lightgray] (sec)
-rules.buildcostmultiplier = Multiplicador de custo de construção
-rules.buildspeedmultiplier = Multiplicador de velocidade de construção
-rules.deconstructrefundmultiplier = Deconstruct Refund Multiplier
-rules.waitForWaveToEnd = hordas esperam inimigos
-rules.wavelimit = Map Ends After Wave
-rules.dropzoneradius = Raio da zona de spawn:[lightgray] (blocos)
-rules.unitammo = Units Require Ammo
-rules.enemyteam = Enemy Team
-rules.playerteam = Player Team
+rules.rtsminsquadsize = Tamanho Mínimo de Esquadrão
+rules.rtsmaxsquadsize = Tamanho Máximo de Esquadrão
+rules.rtsminattackweight = Peso Mínimo de Ataque
+rules.cleanupdeadteams = Limpar Construções Inimigas quando derrotadas (PvP)
+rules.corecapture = Capturar Núcleo na Cestruição
+rules.polygoncoreprotection = Proteção do Núcleo Poligonal
+rules.placerangecheck = Verificação do intervalo de colocação
+rules.enemyCheat = Recursos Infinitos para a Equipa Inimiga
+rules.blockhealthmultiplier = Multiplicador de Vida do Bloco
+rules.blockdamagemultiplier = Multiplicador de Dano do Bloco
+rules.unitbuildspeedmultiplier = Multiplicador de Velocidade de Criação de Unidades
+rules.unitcostmultiplier = Multiplicador de Custo de Unidades
+rules.unithealthmultiplier = Multiplicador de Vida de Unidades
+rules.unitdamagemultiplier = Multiplicador de Dano de Unidades
+rules.unitcrashdamagemultiplier = Multiplicador de Dano de Unidades quando Destruídas.
+rules.unitminespeedmultiplier = Unit Mine Speed Multiplier
+rules.solarmultiplier = Multiplicador de Energia Solar
+rules.unitcapvariable = Núcleos Contribuem para o Limite de Unidades
+rules.unitpayloadsexplode = Cargas carregadas explodem junto com a Unidade
+rules.unitcap = Limite básico de Unidades
+rules.limitarea = Limitar Área do Mapa
+rules.enemycorebuildradius = Raio de Proteção Contra Construções do Núcleo Inimigo :[lightgray] (blocos)
+rules.extracorebuildradius = Extra No-Build Radius:[lightgray] (tiles)
+rules.wavespacing = Tempo entre Hordas:[lightgray] (seg.)
+rules.initialwavespacing = Intervalo da Primeira Horda:[lightgray] (seg.)
+rules.buildcostmultiplier = Multiplicador do Custo de Construção
+rules.buildspeedmultiplier = Multiplicador do Velocidade de Construção
+rules.deconstructrefundmultiplier = Multiplicador do Reemboso de Desconstrução
+rules.waitForWaveToEnd = Hordas Esperam a Anterior Acabar
+rules.wavelimit = Mapa Acaba após a Horda
+rules.dropzoneradius = Raio da Zona de Spawn:[lightgray] (blocos)
+rules.unitammo = UNidades Requerem Munição [red](pode ser removido)
+rules.enemyteam = Equipa Inimiga
+rules.playerteam = Equipa do jogador
+
rules.title.waves = Hordas
rules.title.resourcesbuilding = Recursos e Construções
rules.title.enemy = Inimigos
rules.title.unit = Unidades
rules.title.experimental = Experimental
-rules.title.environment = Environment
-rules.title.teams = Teams
-rules.title.planet = Planet
-rules.lighting = Lighting
-rules.fog = Fog of War
-rules.invasions = Enemy Sector Invasions
-rules.showspawns = Show Enemy Spawns
-rules.randomwaveai = Unpredictable Wave AI
-rules.fire = Fire
-rules.anyenv =
-rules.explosions = Block/Unit Explosion Damage
-rules.ambientlight = Ambient Light
+rules.title.environment = Ambiente
+rules.title.teams = Equipas
+rules.title.planet = Planeta
+rules.lighting = Iluminação
+rules.fog = Névoa de guerra
+rules.invasions = Invasões de Setores Inimigos
+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 = Mostrar Spawn de Inimigos
+rules.randomwaveai = IA de hordas imprevisível
+rules.fire = Fogo
+rules.anyenv =
+rules.explosions = Dano de Explosão a Bloco/Unidade
+rules.ambientlight = Luz Ambiente
+
rules.weather = Weather
-rules.weather.frequency = Frequency:
-rules.weather.always = Always
-rules.weather.duration = Duration:
-rules.randomwaveai.info = Makes units spawned in waves target random structures instead of directly attacking the core or power generators.
-rules.placerangecheck.info = Prevents players from placing anything near enemy buildings. When trying to place a turret, the range is increased, so the turret will not be able to reach the enemy.
-rules.onlydepositcore.info = Prevents units from depositing items into any buildings except cores.
+rules.weather.frequency = Frequência:
+rules.weather.always = Sempre
+rules.weather.duration = Duração:
+rules.randomwaveai.info = As unidades spawnadas por hordas atacam estruturas aleatórias em vez atacarem diretamente o núcleo ou geradores de energia.
+rules.placerangecheck.info = Previne os jogadores de colocarem qualquer coisa perto de construções inimigas. Ao tentar colocar uma torre, o raio é aumentado, por isso a torre não conseguirá alcançar o inimigo.
+rules.onlydepositcore.info = Previne as unidades de depositarem itens em qualquer construção excepto núcleos.
content.item.name = Itens
-content.liquid.name = Liquidos
+content.liquid.name = Líquidos
content.unit.name = Unidades
content.block.name = Blocos
-content.status.name = Status Effects
-content.sector.name = Sectors
-content.team.name = Factions
-wallore = (Wall)
+content.status.name = Efeitos de Estado
+content.sector.name = Setores
+content.team.name = Equipas
+wallore = (Muro)
item.copper.name = Cobre
item.lead.name = Chumbo
@@ -1422,35 +1503,36 @@ item.titanium.name = Titânio
item.thorium.name = Urânio
item.silicon.name = Sílicio
item.plastanium.name = Plastânio
-item.phase-fabric.name = Tecido de fase
-item.surge-alloy.name = Liga de surto
-item.spore-pod.name = Cápsula de esporos
+item.phase-fabric.name = Tecido de Fase
+item.surge-alloy.name = Liga de Surto
+item.spore-pod.name = Cápsula de Esporos
item.sand.name = Areia
-item.blast-compound.name = Composto de explosão
+item.blast-compound.name = Composto de Explosão
item.pyratite.name = Piratita
item.metaglass.name = Metavidro
item.scrap.name = Sucata
-item.fissile-matter.name = Fissile Matter
-item.beryllium.name = Beryllium
-item.tungsten.name = Tungsten
-item.oxide.name = Oxide
+item.fissile-matter.name = Matéria Físsil
+item.beryllium.name = Berílio
+item.tungsten.name = Tungsténio
+item.oxide.name = Óxido
item.carbide.name = Carbide
item.dormant-cyst.name = Dormant Cyst
+
liquid.water.name = Água
liquid.slag.name = Escória
liquid.oil.name = Petróleo
-liquid.cryofluid.name = Crio Fluido
-liquid.neoplasm.name = Neoplasm
-liquid.arkycite.name = Arkycite
-liquid.gallium.name = Gallium
-liquid.ozone.name = Ozone
-liquid.hydrogen.name = Hydrogen
-liquid.nitrogen.name = Nitrogen
-liquid.cyanogen.name = Cyanogen
+liquid.cryofluid.name = Criofluido
+liquid.neoplasm.name = Neoplasma
+liquid.arkycite.name = Arquicite
+liquid.gallium.name = Gálio
+liquid.ozone.name = Ozono
+liquid.hydrogen.name = Hidrogénio
+liquid.nitrogen.name = Nitrogénio
+liquid.cyanogen.name = Cianogénio
unit.dagger.name = Dagger
unit.mace.name = Mace
-unit.fortress.name = Fortaleza
+unit.fortress.name = Fortress
unit.nova.name = Nova
unit.pulsar.name = Pulsar
unit.quasar.name = Quasar
@@ -1505,105 +1587,105 @@ unit.evoke.name = Evoke
unit.incite.name = Incite
unit.emanate.name = Emanate
unit.manifold.name = Manifold
-unit.assembly-drone.name = Assembly Drone
+unit.assembly-drone.name = Drone de Montagem
unit.latum.name = Latum
unit.renale.name = Renale
block.parallax.name = Parallax
block.cliff.name = Cliff
-block.sand-boulder.name = Pedregulho de areia
-block.basalt-boulder.name = Basalt Boulder
-block.grass.name = Grama
-block.molten-slag.name = Slag
-block.pooled-cryofluid.name = Cryofluid
-block.space.name = Space
+block.sand-boulder.name = Pedregulho de Areia
+block.basalt-boulder.name = Pedregulho de Basalto
+block.grass.name = Relva
+block.molten-slag.name = Escória
+block.pooled-cryofluid.name = Criofluido
+block.space.name = Espaço
block.salt.name = Sal
-block.salt-wall.name = Salt Wall
+block.salt-wall.name = Parede de Sal
block.pebbles.name = Pedrinhas
block.tendrils.name = Gavinhas
-block.sand-wall.name = Sand Wall
-block.spore-pine.name = Pinheiro de esporo
-block.spore-wall.name = Spore Wall
-block.boulder.name = Boulder
-block.snow-boulder.name = Snow Boulder
-block.snow-pine.name = Pinheiro com neve
+block.sand-wall.name = Parede de Areia
+block.spore-pine.name = Pinheiro de Esporos
+block.spore-wall.name = Parede de Esporos
+block.boulder.name = Pedregulho
+block.snow-boulder.name = Bola de Neve
+block.snow-pine.name = Pinheiro com Neve
block.shale.name = Xisto
-block.shale-boulder.name = Pedra de xisto
+block.shale-boulder.name = Pedra de Xisto
block.moss.name = Musgo
block.shrubs.name = Arbusto
-block.spore-moss.name = Musgo de esporos
-block.shale-wall.name = Shale Wall
-block.scrap-wall.name = Muro de sucata
-block.scrap-wall-large.name = Muro grande de sucata
-block.scrap-wall-huge.name = Muro enorme de sucata
-block.scrap-wall-gigantic.name = Muro gigante de sucata
+block.spore-moss.name = Musgo de Esporos
+block.shale-wall.name = Muro de Xisto
+block.scrap-wall.name = Muro de Sucata
+block.scrap-wall-large.name = Muro Grande de Sucata
+block.scrap-wall-huge.name = Muro Enorme de Ducata
+block.scrap-wall-gigantic.name = Muro Gigante de Sucata
block.thruster.name = Propulsor
-block.kiln.name = Forno para metavidro
-block.graphite-press.name = Prensa de grafite
+block.kiln.name = Forno para Metavidro
+block.graphite-press.name = Prensa de Grafite
block.multi-press.name = Multi-Prensa
-block.constructing = {0}\n[lightgray](Construindo)
-block.spawn.name = Spawn dos inimigos
-block.remove-wall.name = Remove Wall
-block.remove-ore.name = Remove Ore
-block.core-shard.name = Fragmento do núcleo
-block.core-foundation.name = Fundação do núcleo
-block.core-nucleus.name = Núcleo do núcleo
-block.deep-water.name = Água profunda
+block.constructing = {0}\n[lightgray](A construir)
+block.spawn.name = Spawn dos Inimigos
+block.remove-wall.name = Remover Parede
+block.remove-ore.name = Remover Minério
+block.core-shard.name = Pedaço do Núcleo
+block.core-foundation.name = Fundação do Núcleo
+block.core-nucleus.name = Núcleo do Núcleo
+block.deep-water.name = Águas Profundas
block.shallow-water.name = Água
-block.tainted-water.name = Água contaminada
-block.deep-tainted-water.name = Deep Tainted Water
-block.darksand-tainted-water.name = Água contaminada sobre areia escura
-block.tar.name = Piche
+block.tainted-water.name = Água Contaminada
+block.deep-tainted-water.name = Água Contaminada Profunda
+block.darksand-tainted-water.name = Água Contaminada sobre Areia Escura
+block.tar.name = Alcatrão
block.stone.name = Pedra
block.sand-floor.name = Areia
-block.darksand.name = Areia escura
+block.darksand.name = Areia Escura
block.ice.name = Gelo
block.snow.name = Neve
block.crater-stone.name = Crateras
-block.sand-water.name = Água sobre areia
-block.darksand-water.name = Água sobre areia escura
+block.sand-water.name = Água sobre Areia
+block.darksand-water.name = Água sobre Areia Escura
block.char.name = Char
block.dacite.name = Dacite
-block.rhyolite.name = Rhyolite
-block.dacite-wall.name = Dacite Wall
-block.dacite-boulder.name = Dacite Boulder
-block.ice-snow.name = Gelo de neve
-block.stone-wall.name = Stone Wall
-block.ice-wall.name = Ice Wall
-block.snow-wall.name = Snow Wall
-block.dune-wall.name = Dune Wall
+block.rhyolite.name = Riolite
+block.dacite-wall.name = Parede de Dacite
+block.dacite-boulder.name = Pedreculho de Dacite
+block.ice-snow.name = Gelo de Neve
+block.stone-wall.name = Parede de Pedra
+block.ice-wall.name = Parede de Gelo
+block.snow-wall.name = Parede de Neve
+block.dune-wall.name = Parede de Duna
block.pine.name = Pinheiro
-block.dirt.name = Dirt
-block.dirt-wall.name = Dirt Wall
-block.mud.name = Mud
-block.white-tree-dead.name = Árvore branca morta
-block.white-tree.name = Árvore branca
-block.spore-cluster.name = Aglomerado de esporos
-block.metal-floor.name = Chão de metal
-block.metal-floor-2.name = Chão de metal 2
-block.metal-floor-3.name = Chão de metal 3
-block.metal-floor-4.name = Metal Floor 4
-block.metal-floor-5.name = Chão de metal 5
-block.metal-floor-damaged.name = Chão de metal danificado
-block.dark-panel-1.name = Painel escuro 1
-block.dark-panel-2.name = Painel escuro 2
-block.dark-panel-3.name = Painel escuro 3
-block.dark-panel-4.name = Painel escuro 4
-block.dark-panel-5.name = Painel escuro 5
-block.dark-panel-6.name = Painel escuro 6
-block.dark-metal.name = Metal escuro
-block.basalt.name = Basalt
-block.hotrock.name = Rocha quente
-block.magmarock.name = Rocha de magma
+block.dirt.name = Terra
+block.dirt-wall.name = Parede de Terra
+block.mud.name = Lama
+block.white-tree-dead.name = Árvore Branca Morta
+block.white-tree.name = Árvore Branca
+block.spore-cluster.name = Aglomerado de Esporos
+block.metal-floor.name = Chão de Metal
+block.metal-floor-2.name = Chão de Metal 2
+block.metal-floor-3.name = Chão de Metal 3
+block.metal-floor-4.name = Chão de Metal 4
+block.metal-floor-5.name = Chão de Metal 5
+block.metal-floor-damaged.name = Chão de Metal Danificado
+block.dark-panel-1.name = Painel Escuro 1
+block.dark-panel-2.name = Painel Escuro 2
+block.dark-panel-3.name = Painel Escuro 3
+block.dark-panel-4.name = Painel Escuro 4
+block.dark-panel-5.name = Painel Escuro 5
+block.dark-panel-6.name = Painel Escuro 6
+block.dark-metal.name = Metal eEscuro
+block.basalt.name = Basalto
+block.hotrock.name = Rocha Quente
+block.magmarock.name = Rocha de Magma
block.copper-wall.name = Parede de Cobre
-block.copper-wall-large.name = Parede de Cobre Grande
-block.titanium-wall.name = Parede de titânio
-block.titanium-wall-large.name = Parede de titânio grande
-block.plastanium-wall.name = Plastanium Wall
-block.plastanium-wall-large.name = Large Plastanium Wall
-block.phase-wall.name = Parede de fase
-block.phase-wall-large.name = Parde de fase grande
-block.thorium-wall.name = Parede de tório
-block.thorium-wall-large.name = Parede de tório grande
+block.copper-wall-large.name = Parede Grande de Cobre
+block.titanium-wall.name = Parede de Titânio
+block.titanium-wall-large.name = Parede Grande de Titânio
+block.plastanium-wall.name = Parede de Plastânio
+block.plastanium-wall-large.name = Parede Grande de Plastânio
+block.phase-wall.name = Parede de Fase
+block.phase-wall-large.name = Parde Grande de Fase
+block.thorium-wall.name = Parede de Tório
+block.thorium-wall-large.name = Parede Grande de tório
block.door.name = Porta
block.door-large.name = Porta Grande
block.duo.name = Dupla
@@ -1611,40 +1693,40 @@ block.scorch.name = Queimada
block.scatter.name = Dispersão
block.hail.name = Granizo
block.lancer.name = Lançador
-block.conveyor.name = Esteira
-block.titanium-conveyor.name = Esteira de Titânio
-block.plastanium-conveyor.name = Plastanium Conveyor
-block.armored-conveyor.name = Esteira Armadurada
+block.conveyor.name = Tapete Rolante
+block.titanium-conveyor.name = Tapete de Titânio
+block.plastanium-conveyor.name = Tapete de Plastânio
+block.armored-conveyor.name = Tapete Blindado
block.junction.name = Junção
block.router.name = Roteador
block.distributor.name = Distribuidor
block.sorter.name = Ordenador
-block.inverted-sorter.name = Inverted Sorter
+block.inverted-sorter.name = Ordenador Invertido
block.message.name = Mensagem
-block.reinforced-message.name = Reinforced Message
-block.world-message.name = World Message
-block.world-switch.name = World Switch
-block.illuminator.name = Illuminator
+block.reinforced-message.name = Mensagem Reforçada
+block.world-message.name = Mensagem Global
+block.world-switch.name = Interruptor Global
+block.illuminator.name = Iluminador
block.overflow-gate.name = Portão Sobrecarregado
block.underflow-gate.name = Portão Desobrecarregado
-block.silicon-smelter.name = Fundidora de silicio
+block.silicon-smelter.name = Fundidora de Silício
block.phase-weaver.name = Palheta de fase
block.pulverizer.name = Pulverizador
-block.cryofluid-mixer.name = Misturador de Crio Fluido
-block.melter.name = Aparelho de fusão
+block.cryofluid-mixer.name = Misturador de Criofluido
+block.melter.name = Fundidor
block.incinerator.name = Incinerador
-block.spore-press.name = Prensa de Esporo
+block.spore-press.name = Prensa de Esporos
block.separator.name = Separador
-block.coal-centrifuge.name = Centrifuga de carvão
-block.power-node.name = Célula de energia
-block.power-node-large.name = Célula de energia Grande
-block.surge-tower.name = Torre de surto
-block.diode.name = Battery Diode
+block.coal-centrifuge.name = Centrifugadora de Carvão
+block.power-node.name = Célula de Energia
+block.power-node-large.name = Célula de Energia Grande
+block.surge-tower.name = Torre de Surto
+block.diode.name = Díodo de bateria
block.battery.name = Bateria
block.battery-large.name = Bateria Grande
-block.combustion-generator.name = Gerador a combustão
+block.combustion-generator.name = Gerador a Combustão
block.steam-generator.name = Gerador de Turbina
-block.differential-generator.name = Gerador diferencial
+block.differential-generator.name = Gerador Diferencial
block.impact-reactor.name = Reator De Impacto
block.mechanical-drill.name = Broca Mecânica
block.pneumatic-drill.name = Broca Pneumática
@@ -1653,12 +1735,12 @@ block.water-extractor.name = Extrator de água
block.cultivator.name = Cultivador
block.conduit.name = Cano
block.mechanical-pump.name = Bomba Mecânica
-block.item-source.name = Criador de itens
-block.item-void.name = Destruidor de itens
-block.liquid-source.name = Criador de líquidos
-block.liquid-void.name = Liquid Void
-block.power-void.name = Anulador de energia
-block.power-source.name = Criador de energia
+block.item-source.name = Criador de Itens
+block.item-void.name = Destruidor de Itens
+block.liquid-source.name = Criador de Líquidos
+block.liquid-void.name = Destruidor de Líquidos
+block.power-void.name = Destruidor de Energia
+block.power-source.name = Criador de Energia
block.unloader.name = Descarregador
block.vault.name = Cofre
block.wave.name = Onda
@@ -1666,80 +1748,85 @@ block.tsunami.name = Tsunami
block.swarmer.name = Enxame
block.salvo.name = Salvo
block.ripple.name = Ondulação
-block.phase-conveyor.name = Esteira de Fases
-block.bridge-conveyor.name = Esteira-Ponte
+block.phase-conveyor.name = Tapete de Fase
+block.bridge-conveyor.name = Tapete-Ponte
block.plastanium-compressor.name = Compressor de Plastânio
block.pyratite-mixer.name = Misturador de Piratita
block.blast-mixer.name = Misturador de Explosão
block.solar-panel.name = Painel Solar
block.solar-panel-large.name = Painel Solar Grande
-block.oil-extractor.name = Extrator de petróleo
-block.repair-point.name = Ponto de Reparo
-block.repair-turret.name = Repair Turret
+block.oil-extractor.name = Extrator de Petróleo
+block.repair-point.name = Ponto de Reparação
+block.repair-turret.name = Torre de Reparação
block.pulse-conduit.name = Cano de Pulso
-block.plated-conduit.name = Plated Conduit
+block.plated-conduit.name = Cano Revestido
block.phase-conduit.name = Cano de Fase
block.liquid-router.name = Roteador de Líquido
block.liquid-tank.name = Tanque de Líquido
-block.liquid-container.name = Liquid Container
+block.liquid-container.name = Contentor de Líquido
block.liquid-junction.name = Junção de Líquido
-block.bridge-conduit.name = Cano Ponte
-block.rotary-pump.name = Bomba Rotatória
+block.bridge-conduit.name = Cano-Ponte
+block.rotary-pump.name = Bomba Rotativa
block.thorium-reactor.name = Reator a Tório
block.mass-driver.name = Drive de Massa
block.blast-drill.name = Broca de Explosão
-block.impulse-pump.name = Bomba térmica
+block.impulse-pump.name = Bomba Térmica
block.thermal-generator.name = Gerador Térmico
block.surge-smelter.name = Fundidora de Liga
block.mender.name = Reparador
-block.mend-projector.name = Projetor de reparo
-block.surge-wall.name = Parede de liga de surto
-block.surge-wall-large.name = Parede de liga de surto grande
+block.mend-projector.name = Projetor de Reparo
+block.surge-wall.name = Parede de Liga de Surto
+block.surge-wall-large.name = Parede Grande de Liga de Surto
block.cyclone.name = Ciclone
-block.fuse.name = Fundir
+block.fuse.name = Fusível
block.shock-mine.name = Mina de Choque
-block.overdrive-projector.name = Projetor de sobrecarga
-block.force-projector.name = Projetor de campo de força
+block.overdrive-projector.name = Projetor de Sobrecarga
+block.force-projector.name = Projetor de Campo de Força
block.arc.name = Arco Elétrico
block.rtg-generator.name = Gerador GTR
-block.spectre.name = Espectro
+block.spectre.name = Espetro
block.meltdown.name = Fusão
block.foreshadow.name = Foreshadow
-block.container.name = Contâiner
-block.launch-pad.name = Plataforma de lançamento
+block.container.name = Contentor
+block.launch-pad.name = Plataforma de Lançamento
+block.advanced-launch-pad.name = Launch Pad
+block.landing-pad.name = Landing Pad
+
block.segment.name = Segment
-block.ground-factory.name = Ground Factory
-block.air-factory.name = Air Factory
-block.naval-factory.name = Naval Factory
-block.additive-reconstructor.name = Additive Reconstructor
-block.multiplicative-reconstructor.name = Multiplicative Reconstructor
-block.exponential-reconstructor.name = Exponential Reconstructor
-block.tetrative-reconstructor.name = Tetrative Reconstructor
-block.payload-conveyor.name = Mass Conveyor
-block.payload-router.name = Payload Router
-block.duct.name = Duct
-block.duct-router.name = Duct Router
-block.duct-bridge.name = Duct Bridge
+block.ground-factory.name = Fábrica Terrestre
+block.air-factory.name = Fábrica Aérea
+block.naval-factory.name = Fábrica Naval
+block.additive-reconstructor.name = Reconstrutor Aditivo
+block.multiplicative-reconstructor.name = Reconstrutor Multiplicador
+block.exponential-reconstructor.name = Reconstrutor Exponencial
+block.tetrative-reconstructor.name = Reconstrutor Tetrativo
+block.payload-conveyor.name = Tapete de Carga
+block.payload-router.name = Roteador de Carga
+block.duct.name = Conduta
+block.duct-router.name = Roteador de Conduta
+block.duct-bridge.name = Ponte de Conduta
block.large-payload-mass-driver.name = Large Payload Mass Driver
-block.payload-void.name = Payload Void
-block.payload-source.name = Payload Source
-block.disassembler.name = Disassembler
+block.payload-void.name = Destruidor de Carga
+block.payload-source.name = Criador de Carga
+block.disassembler.name = Desmontador
block.silicon-crucible.name = Silicon Crucible
-block.overdrive-dome.name = Overdrive Dome
-block.interplanetary-accelerator.name = Interplanetary Accelerator
-block.constructor.name = Constructor
-block.constructor.description = Fabricates structures up to 2x2 tiles in size.
-block.large-constructor.name = Large Constructor
-block.large-constructor.description = Fabricates structures up to 4x4 tiles in size.
-block.deconstructor.name = Deconstructor
-block.deconstructor.description = Deconstructs structures and units. Returns 100% of build cost.
-block.payload-loader.name = Payload Loader
-block.payload-loader.description = Load liquids and items into blocks.
-block.payload-unloader.name = Payload Unloader
-block.payload-unloader.description = Unloads liquids and items from blocks.
-block.heat-source.name = Heat Source
-block.heat-source.description = A 1x1 block that gives virtualy infinite heat.
-block.empty.name = Empty
+block.overdrive-dome.name = Domo de Sobrecarga
+block.interplanetary-accelerator.name = Acelerador Interplanetário
+block.constructor.name = Construtor
+block.constructor.description = Produz estruturas com tamanho até 2x2 blocos.
+block.large-constructor.name = Construtor Grande
+block.large-constructor.description = Produz estruturas com tamanho até 4x4 blocos.
+block.deconstructor.name = Desconstrutor
+block.deconstructor.description = Desconstrói estruturas e unidades. Recupera 100% do custo de produção.
+block.payload-loader.name = Carregador de Carga
+block.payload-loader.description = Carrega itens e líquidos em blocos.
+block.payload-unloader.name = Descarregador de Carga
+block.payload-unloader.description = Descarrega líquidos e itens de blocos.
+block.heat-source.name = Fonte de Calor
+block.heat-source.description = Um bloco de tamanho 1x1 que gera virtualmente calor infinito.
+block.empty.name = Vazio
+
+#Erekir
block.rhyolite-crater.name = Rhyolite Crater
block.rough-rhyolite.name = Rough Rhyolite
block.regolith.name = Regolith
@@ -1762,9 +1849,11 @@ block.arkyic-vent.name = Arkyic Vent
block.yellow-stone-vent.name = Yellow Stone Vent
block.red-stone-vent.name = Red Stone Vent
block.crystalline-vent.name = Crystalline Vent
+block.stone-vent.name = Stone Vent
+block.basalt-vent.name = Basalt Vent
block.redmat.name = Redmat
block.bluemat.name = Bluemat
-block.core-zone.name = Core Zone
+block.core-zone.name = Zona de Núcleo
block.regolith-wall.name = Regolith Wall
block.yellow-stone-wall.name = Yellow Stone Wall
block.rhyolite-wall.name = Rhyolite Wall
@@ -1794,71 +1883,71 @@ block.rhyolite-boulder.name = Rhyolite Boulder
block.red-stone-boulder.name = Red Stone Boulder
block.graphitic-wall.name = Graphitic Wall
block.silicon-arc-furnace.name = Silicon Arc Furnace
-block.electrolyzer.name = Electrolyzer
-block.atmospheric-concentrator.name = Atmospheric Concentrator
-block.oxidation-chamber.name = Oxidation Chamber
-block.electric-heater.name = Electric Heater
-block.slag-heater.name = Slag Heater
-block.phase-heater.name = Phase Heater
-block.heat-redirector.name = Heat Redirector
-block.small-heat-redirector.name = Small Heat Redirector
-block.heat-router.name = Heat Router
-block.slag-incinerator.name = Slag Incinerator
+block.electrolyzer.name = Electrolizador
+block.atmospheric-concentrator.name = Concentrador Atmosférico
+block.oxidation-chamber.name = Câmara de Oxidação
+block.electric-heater.name = Aquecedor Elétrico
+block.slag-heater.name = Aquededor de Escória
+block.phase-heater.name = Aquecedor de Fase
+block.heat-redirector.name = Redirecionador de Calor
+block.small-heat-redirector.name = Redirecionador de Calor Pequeno
+block.heat-router.name = Roteador de Calor
+block.slag-incinerator.name = Incinerador de Escória
block.carbide-crucible.name = Carbide Crucible
-block.slag-centrifuge.name = Slag Centrifuge
+block.slag-centrifuge.name = Centrifugador de Escória
block.surge-crucible.name = Surge Crucible
-block.cyanogen-synthesizer.name = Cyanogen Synthesizer
-block.phase-synthesizer.name = Phase Synthesizer
-block.heat-reactor.name = Heat Reactor
-block.beryllium-wall.name = Beryllium Wall
-block.beryllium-wall-large.name = Large Beryllium Wall
-block.tungsten-wall.name = Tungsten Wall
-block.tungsten-wall-large.name = Large Tungsten Wall
+block.cyanogen-synthesizer.name = Sintetizador de Cianogénio
+block.phase-synthesizer.name = Sintetizador de Fase
+block.heat-reactor.name = Reator de Calor
+block.beryllium-wall.name = Parede de Berílio
+block.beryllium-wall-large.name = Parede Grande de Berílio
+block.tungsten-wall.name = Parede de Tungsténio
+block.tungsten-wall-large.name = Parede Grande de Tungsténio
block.blast-door.name = Blast Door
-block.carbide-wall.name = Carbide Wall
-block.carbide-wall-large.name = Large Carbide Wall
-block.reinforced-surge-wall.name = Reinforced Surge Wall
-block.reinforced-surge-wall-large.name = Large Reinforced Surge Wall
-block.shielded-wall.name = Shielded Wall
+block.carbide-wall.name = Parede de Carbide
+block.carbide-wall-large.name = Parede Grande de Carbide
+block.reinforced-surge-wall.name = Parede de Surto Reforçadd
+block.reinforced-surge-wall-large.name = Parede Grande de Surto Reforçado
+block.shielded-wall.name = Parede Blindada
block.radar.name = Radar
-block.build-tower.name = Build Tower
-block.regen-projector.name = Regen Projector
-block.shockwave-tower.name = Shockwave Tower
-block.shield-projector.name = Shield Projector
-block.large-shield-projector.name = Large Shield Projector
-block.armored-duct.name = Armored Duct
-block.overflow-duct.name = Overflow Duct
-block.underflow-duct.name = Underflow Duct
-block.duct-unloader.name = Duct Unloader
-block.surge-conveyor.name = Surge Conveyor
-block.surge-router.name = Surge Router
-block.unit-cargo-loader.name = Unit Cargo Loader
-block.unit-cargo-unload-point.name = Unit Cargo Unload Point
-block.reinforced-pump.name = Reinforced Pump
-block.reinforced-conduit.name = Reinforced Conduit
-block.reinforced-liquid-junction.name = Reinforced Liquid Junction
-block.reinforced-bridge-conduit.name = Reinforced Bridge Conduit
-block.reinforced-liquid-router.name = Reinforced Liquid Router
-block.reinforced-liquid-container.name = Reinforced Liquid Container
-block.reinforced-liquid-tank.name = Reinforced Liquid Tank
-block.beam-node.name = Beam Node
-block.beam-tower.name = Beam Tower
-block.beam-link.name = Beam Link
-block.turbine-condenser.name = Turbine Condenser
-block.chemical-combustion-chamber.name = Chemical Combustion Chamber
-block.pyrolysis-generator.name = Pyrolysis Generator
-block.vent-condenser.name = Vent Condenser
-block.cliff-crusher.name = Cliff Crusher
-block.large-cliff-crusher.name = Advanced Cliff Crusher
-block.plasma-bore.name = Plasma Bore
-block.large-plasma-bore.name = Large Plasma Bore
-block.impact-drill.name = Impact Drill
-block.eruption-drill.name = Eruption Drill
-block.core-bastion.name = Core Bastion
-block.core-citadel.name = Core Citadel
-block.core-acropolis.name = Core Acropolis
-block.reinforced-container.name = Reinforced Container
-block.reinforced-vault.name = Reinforced Vault
+block.build-tower.name = Torre de Construção
+block.regen-projector.name = Projetor de Regeneração
+block.shockwave-tower.name = Torre de Ondas de Choque
+block.shield-projector.name = Projetor de Escudo
+block.large-shield-projector.name = Projetor de Escudo Grande
+block.armored-duct.name = Conduta Blindada
+block.overflow-duct.name = Conduta de Sobrecarga
+block.underflow-duct.name = Conduta de Desobrecarga
+block.duct-unloader.name = Descarregador de Conduta
+block.surge-conveyor.name = Tapete de Surto
+block.surge-router.name = Roteador de Surto
+block.unit-cargo-loader.name = Carregador de Carga de Unidades
+block.unit-cargo-unload-point.name = Ponto de Descarregamento de Carga de Unidades
+block.reinforced-pump.name = Bomba Reforçada
+block.reinforced-conduit.name = Conduta Reforçada
+block.reinforced-liquid-junction.name = Junção de Líquido Reforçada
+block.reinforced-bridge-conduit.name = Ponte de Conduta Reforçada
+block.reinforced-liquid-router.name = Roteador de Líquido Reforçado
+block.reinforced-liquid-container.name = Contentor de Líquido Reforçado
+block.reinforced-liquid-tank.name = Tanque de Líquido Reforçado
+block.beam-node.name = Nó de Feixe
+block.beam-tower.name = Torre de Feixe
+block.beam-link.name = Conector de Feixe
+block.turbine-condenser.name = Condensador de Turbina
+block.chemical-combustion-chamber.name = Câmara de Combustão Química
+block.pyrolysis-generator.name = Gerador de Pirólise
+block.vent-condenser.name = Condensador de Ventilação
+block.cliff-crusher.name = Destruidor de Arribas
+block.large-cliff-crusher.name = Destruidor de Arribas Grande
+block.plasma-bore.name = Mineradora de Plasma
+block.large-plasma-bore.name = Mineradora Grande de Plasma
+block.impact-drill.name = Broca de Impacto
+block.eruption-drill.name = Broca de Erupção
+block.core-bastion.name = Bastião do Núcleo
+block.core-citadel.name = Citadela do Núcleo
+block.core-acropolis.name = Acrópole do Núcleo
+block.reinforced-container.name = Contentor Reforçado
+block.reinforced-vault.name = Cofre Reforçado
block.breach.name = Breach
block.sublimate.name = Sublimate
block.titan.name = Titan
@@ -1866,176 +1955,188 @@ block.disperse.name = Disperse
block.afflict.name = Afflict
block.lustre.name = Lustre
block.scathe.name = Scathe
-block.tank-refabricator.name = Tank Refabricator
-block.mech-refabricator.name = Mech Refabricator
-block.ship-refabricator.name = Ship Refabricator
-block.tank-assembler.name = Tank Assembler
-block.ship-assembler.name = Ship Assembler
-block.mech-assembler.name = Mech Assembler
-block.reinforced-payload-conveyor.name = Reinforced Payload Conveyor
-block.reinforced-payload-router.name = Reinforced Payload Router
+block.tank-refabricator.name = Refabricador de Tanque
+block.mech-refabricator.name = Refabricador de Mech
+block.ship-refabricator.name = Refabricador de Nave
+block.tank-assembler.name = Montador de Tanque
+block.ship-assembler.name = Montador de Nave
+block.mech-assembler.name = Montador de Mech
+block.reinforced-payload-conveyor.name = Tapete de Carga Reforçado
+block.reinforced-payload-router.name = Roteador de Carga Reforçado
block.payload-mass-driver.name = Payload Mass Driver
-block.small-deconstructor.name = Small Deconstructor
-block.canvas.name = Canvas
-block.world-processor.name = World Processor
-block.world-cell.name = World Cell
-block.tank-fabricator.name = Tank Fabricator
-block.mech-fabricator.name = Mech Fabricator
-block.ship-fabricator.name = Ship Fabricator
-block.prime-refabricator.name = Prime Refabricator
-block.unit-repair-tower.name = Unit Repair Tower
-block.diffuse.name = Diffuse
-block.basic-assembler-module.name = Basic Assembler Module
+block.small-deconstructor.name = Desconstrutor Pequeno
+block.canvas.name = Tela
+block.world-processor.name = Processador Global
+block.world-cell.name = Célula Global
+block.tank-fabricator.name = Fabricador de Tanque
+block.mech-fabricator.name = Fabricador de Mech
+block.ship-fabricator.name = Fabricador de Nave
+block.prime-refabricator.name = Refabricador Princial
+block.unit-repair-tower.name = Torre de Reparação de Unidades
+block.diffuse.name = Difusor
+block.basic-assembler-module.name = Módulo Básico de Montagem
block.smite.name = Smite
block.malign.name = Malign
-block.flux-reactor.name = Flux Reactor
-block.neoplasia-reactor.name = Neoplasia Reactor
+block.flux-reactor.name = Reator de Fluxo
+block.neoplasia-reactor.name = Reator de Neoplasma
-block.switch.name = Switch
-block.micro-processor.name = Micro Processor
-block.logic-processor.name = Logic Processor
-block.hyper-processor.name = Hyper Processor
-block.logic-display.name = Logic Display
-block.large-logic-display.name = Large Logic Display
-block.memory-cell.name = Memory Cell
-block.memory-bank.name = Memory Bank
+block.switch.name = Interruptor
+block.micro-processor.name = Microprocessador
+block.logic-processor.name = Processador Lógico
+block.hyper-processor.name = Hiper-processador
+block.logic-display.name = Ecrã Lógico
+block.large-logic-display.name = Ecrã Lógico Grande
+block.memory-cell.name = Célula de Memória
+block.memory-bank.name = Banco de Memória
team.malis.name = Malis
-team.crux.name = Vermelho
-team.sharded.name = orange
-team.derelict.name = derelict
+team.crux.name = Vermelho (Crux)
+team.sharded.name = Laranja (Sharded)
+team.derelict.name = Derelict
team.green.name = Verde
-
team.blue.name = Azul
-hint.skip = Skip
-hint.desktopMove = Use [accent][[WASD][] to move.
-hint.zoom = [accent]Scroll[] to zoom in or out.
-hint.desktopShoot = [accent][[Left-click][] to shoot.
-hint.depositItems = To transfer items, drag from your ship to the core.
-hint.respawn = To respawn as a ship, press [accent][[V][].
-hint.respawn.mobile = You have switched control to a unit/structure. To respawn as a ship, [accent]tap the avatar in the top left.[]
-hint.desktopPause = Press [accent][[Space][] to pause and unpause the game.
-hint.breaking = [accent]Right-click[] and drag to break blocks.
-hint.breaking.mobile = Activate the \ue817 [accent]hammer[] in the bottom right and tap to break blocks.\n\nHold down your finger for a second and drag to break in a selection.
-hint.blockInfo = View information of a block by selecting it in the [accent]build menu[], then selecting the [accent][[?][] button at the right.
-hint.derelict = [accent]Derelict[] structures are broken remnants of old bases that no longer function.\n\nThese structures can be [accent]deconstructed[] for resources.
+
+hint.skip = Saltar
+hint.desktopMove = Usa [accent][[WASD][] para mover.
+hint.zoom = [accent]Scroll[] para aumentar/diminuir zoom.
+hint.desktopShoot = [accent][[Botão esquerdo do rato][] para atirar.
+hint.depositItems = Para transferir itens, arrasta da tua nave para o núcleo.
+hint.respawn = Para renascer como nave, pressiona [accent][[V][].
+hint.respawn.mobile = Trocaste os controlos para uma unidade/estrutura. Para renascer como nave, [accent]toca no avatr no canto sup. esq.[]
+hint.desktopPause = Pressiona [accent][[Espaço][] para pausar/retomar o jogo.
+hint.breaking = Usa o [accent]botão direito do rato[] e arrasta.
+hint.breaking.mobile = Ativa o \ue817 [accent]martelo[] em baixo à direita e clica para partir blocos.\n\nMantém o teu dedo permido por um seg. e arrasta para partir uma seleção.
+hint.blockInfo = Vê as informações sobre um bloco ao selecioná-lo no [accent]menu de construção[], e depois selecionar o botão [accent][[?][] à direita.
+hint.derelict = Estruturas [accent]Derelict[] são restos quebrados de bases antigas que já não funcionam.\n\nEssas estruturas podem ser [accent]desconstruídas[] para ganhar recursos.
hint.research = Use the \ue875 [accent]Research[] button to research new technology.
-hint.research.mobile = Use the \ue875 [accent]Research[] button in the \ue88c [accent]Menu[] to research new technology.
-hint.unitControl = Hold [accent][[L-ctrl][] and [accent]click[] to control friendly units or turrets.
-hint.unitControl.mobile = [accent][[Double-tap][] to control friendly units or turrets.
-hint.unitSelectControl = To control units, enter [accent]command mode[] by holding [accent]L-shift.[]\nWhile in command mode, click and drag to select units. [accent]Right-click[] a location or target to command units there.
-hint.unitSelectControl.mobile = To control units, enter [accent]command mode[] by pressing the [accent]command[] button in the bottom left.\nWhile in command mode, long-press and drag to select units. Tap a location or target to command units there.
-hint.launch = Once enough resources are collected, you can [accent]Launch[] by selecting nearby sectors from the \ue827 [accent]Map[] in the bottom right.
-hint.launch.mobile = Once enough resources are collected, you can [accent]Launch[] by selecting nearby sectors from the \ue827 [accent]Map[] in the \ue88c [accent]Menu[].
-hint.schematicSelect = Hold [accent][[F][] and drag to select blocks to copy and paste.\n\n[accent][[Middle Click][] to copy a single block type.
-hint.rebuildSelect = Hold [accent][[B][] and drag to select destroyed block plans.\nThis will rebuild them automatically.
-hint.rebuildSelect.mobile = Select the \ue874 copy button, then tap the \ue80f rebuild button and drag to select destroyed block plans.\nThis will rebuild them automatically.
-hint.conveyorPathfind = Hold [accent][[L-Ctrl][] while dragging conveyors to automatically generate a path.
-hint.conveyorPathfind.mobile = Enable \ue844 [accent]diagonal mode[] and drag conveyors to automatically generate a path.
-hint.boost = Hold [accent][[L-Shift][] to fly over obstacles with your current unit.\n\nOnly a few ground units have boosters.
-hint.payloadPickup = Press [accent][[[] to pick up small blocks or units.
-hint.payloadPickup.mobile = [accent]Tap and hold[] a small block or unit to pick it up.
-hint.payloadDrop = Press [accent]][] to drop a payload.
-hint.payloadDrop.mobile = [accent]Tap and hold[] an empty location to drop a payload there.
-hint.waveFire = [accent]Wave[] turrets with water as ammunition will automatically put out nearby fires.
-hint.generator = \uf879 [accent]Combustion Generators[] burn coal and transmit power to adjacent blocks.\n\nPower transmission range can be extended with \uf87f [accent]Power Nodes[].
-hint.guardian = [accent]Guardian[] units are armored. Weak ammo such as [accent]Copper[] and [accent]Lead[] is [scarlet]not effective[].\n\nUse higher tier turrets or \uf835 [accent]Graphite[] \uf861Duo/\uf859Salvo ammunition to take Guardians down.
-hint.coreUpgrade = Cores can be upgraded by [accent]placing higher-tier cores over them[].\n\nPlace a \uf868 [accent]Foundation[] core over the \uf869 [accent]Shard[] core. Make sure it is free from nearby obstructions.
-hint.presetLaunch = Gray [accent]landing zone sectors[], such as [accent]Frozen Forest[], can be launched to from anywhere. They do not require capture of nearby territory.\n\n[accent]Numbered sectors[], such as this one, are [accent]optional[].
-hint.presetDifficulty = This sector has a [scarlet]high enemy threat level[].\nLaunching to such sectors is [accent]not recommended[] without proper technology and preparation.
-hint.coreIncinerate = After the core is filled to capacity with an item, any extra items of that type it receives will be [accent]incinerated[].
-hint.factoryControl = To set a unit factory's [accent]output destination[], click a factory block while in command mode, then right-click a location.\nUnits produced by it will automatically move there.
-hint.factoryControl.mobile = To set a unit factory's [accent]output destination[], tap a factory block while in command mode, then tap a location.\nUnits produced by it will automatically move there.
-gz.mine = Move near the \uf8c4 [accent]copper ore[] on the ground and click to begin mining.
-gz.mine.mobile = Move near the \uf8c4 [accent]copper ore[] on the ground and tap it to begin mining.
-gz.research = Open the \ue875 tech tree.\nResearch the \uf870 [accent]Mechanical Drill[], then select it from the menu in the bottom right.\nClick on a copper patch to place it.
-gz.research.mobile = Open the \ue875 tech tree.\nResearch the \uf870 [accent]Mechanical Drill[], then select it from the menu in the bottom right.\nTap on a copper patch to place it.\n\nPress the \ue800 [accent]checkmark[] at the bottom right to confirm.
-gz.conveyors = Research and place \uf896 [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nClick and drag to place multiple conveyors.\n[accent]Scroll[] to rotate.
-gz.conveyors.mobile = Research and place \uf896 [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nHold down your finger for a second and drag to place multiple conveyors.
-gz.drills = Expand the mining operation.\nPlace more Mechanical Drills.\nMine 100 copper.
-gz.lead = \uf837 [accent]Lead[] is another commonly used resource.\nSet up drills to mine lead.
-gz.moveup = \ue804 Move up for further objectives.
-gz.turrets = Research and place 2 \uf861 [accent]Duo[] turrets to defend the core.\nDuo turrets require \uf838 [accent]ammo[] from conveyors.
-gz.duoammo = Supply the Duo turrets with [accent]copper[], using conveyors.
-gz.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace \uf8ae [accent]copper walls[] around the turrets.
-gz.defend = Enemy incoming, prepare to defend.
-gz.aa = Flying units cannot easily be dispatched with standard turrets.\n\uf860 [accent]Scatter[] turrets provide excellent anti-air, but require \uf837 [accent]lead[] as ammo.
-gz.scatterammo = Supply the Scatter turret with [accent]lead[], using conveyors.
-gz.supplyturret = [accent]Supply Turret
-gz.zone1 = This is the enemy drop zone.
-gz.zone2 = Anything built in the radius is destroyed when a wave starts.
-gz.zone3 = A wave will begin now.\nGet ready.
-gz.finish = Build more turrets, mine more resources,\nand defend against all the waves to [accent]capture the sector[].
-onset.mine = Click to mine \uf748 [accent]beryllium[] from walls.\n\nUse [accent][[WASD] to move.
-onset.mine.mobile = Tap to mine \uf748 [accent]beryllium[] from walls.
-onset.research = Open the \ue875 tech tree.\nResearch, then place a \uf73e [accent]turbine condenser[] on the vent.\nThis will generate [accent]power[].
-onset.bore = Research and place a \uf741 [accent]plasma bore[].\nThis automatically mines resources from walls.
-onset.power = To [accent]power[] the plasma bore, research and place a \uf73d [accent]beam node[].\nConnect the turbine condenser to the plasma bore.
-onset.ducts = Research and place \uf799 [accent]ducts[] to move the mined resources from the plasma bore to the core.\nClick and drag to place multiple ducts.\n[accent]Scroll[] to rotate.
-onset.ducts.mobile = Research and place \uf799 [accent]ducts[] to move the mined resources from the plasma bore to the core.\n\nHold down your finger for a second and drag to place multiple ducts.
-onset.moremine = Expand the mining operation.\nPlace more Plasma Bores and use beam nodes and ducts to support them.\nMine 200 beryllium.
-onset.graphite = More complex blocks require \uf835 [accent]graphite[].\nSet up plasma bores to mine graphite.
-onset.research2 = Begin researching [accent]factories[].\nResearch the \uf74d [accent]cliff crusher[] and \uf779 [accent]silicon arc furnace[].
-onset.arcfurnace = The arc furnace needs \uf834 [accent]sand[] and \uf835 [accent]graphite[] to create \uf82f [accent]silicon[].\n[accent]Power[] is also required.
-onset.crusher = Use \uf74d [accent]cliff crushers[] to mine sand.
-onset.fabricator = Use [accent]units[] to explore the map, defend buildings, and attack the enemy. Research and place a \uf6a2 [accent]tank fabricator[].
-onset.makeunit = Produce a unit.\nUse the "?" button to see selected factory requirements.
-onset.turrets = Units are effective, but [accent]turrets[] provide better defensive capabilities if used effectively.\nPlace a \uf6eb [accent]Breach[] turret.\nTurrets require \uf748 [accent]ammo[].
-onset.turretammo = Supply the turret with [accent]beryllium ammo.[]
-onset.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace some \uf6ee [accent]beryllium walls[] around the turret.
-onset.enemies = Enemy incoming, prepare to defend.
+hint.research.mobile = Usa o botão de \ue875 [accent]Pesquisa[] para pesquisar novas tecnologias.
+hint.unitControl = Segura a tecla [accent][[ctrl esq.][] e [accent]click[] para controlar unidades ou torres aliadas.
+hint.unitControl.mobile = [accent][[Toca duas vezes][] para controlar unidades ou torres aliadas.
+hint.unitSelectControl = Para controlar unidades, entra no [accent]modo de comando[] segurando [accent]Shift esquerdo.[]\nEnquanto no modo de comando, clica e segura pra selecionar unidades. Clica com o [accent]Botão direito[] nalgum lugar ou alvo para mandar as unidades para lá.
+hint.unitSelectControl.mobile = Para controlar unidades, entra no [accent]modo de comando[] segurando o botão de [accent]comando[] no canto inf. esq.\nEnquanto no modo de comando, segura e arrasta pra selecionar unidades. Toque nalgum lugar ou alvo para mandar as unidades para lá.
+hint.launch = Quando forem recolhidos recursos suficientes, podes [accent]Lançar[] ao selecionar setores próximos a partir do \ue827 [accent]Mapa[] no canto inferior direito.
+hint.launch.mobile = Quando forem recolhidos recursos suficientes, podes [accent]Lançar[] ao selecionar setores próximos a partir do \ue827 [accent]Mapa[] no \ue88c [accent]Menu[].
+hint.schematicSelect = Segura a tecla [accent][[F][] e arrasta para selecionar blocos para copiar e colar.\n\n[accent][[Clique do meiro][] para copiar um bloco só.
+hint.rebuildSelect = Segura a tecla [accent][[B][] e arrasta para selecionar blocos destruídos.\nIsto irá reconstruí-los automaticamente.
+hint.rebuildSelect.mobile = Prime o \ue874 botão de copiar, e depois o botão de \ue80f reonstruir e arrasta para selecionar os planos de blocos destruídos.\nIsto irá reconstruí-los automaticamente.
+hint.conveyorPathfind = Segura a tecla [accent][[Ctrl Esq][] enquanto desenhas os tapetes para gerar automaticamente um caminho.
+hint.conveyorPathfind.mobile = Ativa o \ue844 [accent]modo diagonal[] e desenha os tapetes para gerar automaticamente um caminho.
+hint.boost = Segura a tecla [accent][Shift Esq][] para voar sobre obstáculos com a tua unidade.\n\nApenas algumas unidades terrestres têm propulsores.
+hint.payloadPickup = Prime [accent][[[] para pegar pequenos blocos e unidades.
+hint.payloadPickup.mobile = [accent]Toca e segura[] para pegar pequenos blocos ou unidades.
+#Translations beyond this point is pt_BR. When I'll have time I will rewrite them to pt_PT
+hint.payloadDrop = Pressione [accent]][] para soltar a carga.
+hint.payloadDrop.mobile = [accent]Toque e segure[] em um local vazio para soltar ali a carga.
+hint.waveFire = Torretas [accent]Onda[] com munição de água vão apagar automaticamente incêndios próximos.
+hint.generator = \uf879 [accent]Geradores a Combustão[] queimam carvão e transmitem energia aos blocos ao lado.\n\nO alcance da transmissão de energia pode ser aumentado com \uf87f [accent]Células de Energia[].
+hint.guardian = Unidades [accent]Guardião[] são blindadas. Munições fracas como [accent]Cobre[] e [accent]Chumbo[] são [scarlet]não efetivas[].\n\nUse torretas melhores ou \uf835 [accent]Grafite[] \uf861Duo/\uf859Salvo como munição para derrotar Guardiões.
+hint.coreUpgrade = Núcleos podem ser melhorados [accent]colocando núcelos melhores sobre eles[].\n\nColoque uma \uf868 [accent]Fundação do Núcleo[] sobre o \uf869 [accent]Fragmento do Núcleo[]. Tenha certeza de que está livre de obstruções próximas.
+hint.presetLaunch = [accent]Zona de setores[] cinzas, como a [accent]Floresta Congelada[], podem ser lançadas de qualquer lugar. Elas não precisam da captura de território próximo.\n\n[accent]Setores numerados[], como esse aqui, são [accent]opcionais[].
+hint.presetDifficulty = Esse setor tem um [scarlet]alto nível de ameaça inimiga[].\nIr para esse setores [accent]não é recomendado[] sem ter tecnologia e preparação adequadas.
+hint.coreIncinerate = Depois que o núcleo ter recebido até a capacidade máxima de um item, qualquer item do mesmo tipo que ele receber será [accent]incinerado[].
+hint.factoryControl = Para definir a [accent]o local de saída[] de uma fábrica de unidades, clique em uma fábrica enquanto estiver no modo de comando, depois clique com o botão direito em um local.\nAs unidades produzidas por ela se moverão automaticamente para lá.
+hint.factoryControl.mobile = Para definir a [accent]o local de saída[] de uma fábrica de unidades, toque em uma fábrica enquanto estiver no modo de comando, depois toque em um local.\nAs unidades produzidas por ela se moverão automaticamente para lá.
+
+gz.mine = Vá para perto do \uf8c4 [accent]minério de cobre[] no chão e clique para começar a minerar.
+gz.mine.mobile = Vá para perto do \uf8c4 [accent]minério de cobre[] no chão e toque nele para começar a minerar.
+gz.research = Abra a \ue875 árvore tecnológica.\nPesquise a \uf870 [accent]Broca mecânica[], Depois selecione-a pelo menu no canto inferior direito.\nClique no cobre para coloca-la.
+gz.research.mobile = Abra a \ue875 árvore tecnológica.\nPesquise a \uf870 [accent]Broca mecânica[], Depois selecione-a pelo menu no canto inferior direito.\nClique no cobre para colocá-la.\n\nPressione a \ue800 [accent]confirmação[] no canto inferior direito para confirmar.
+gz.conveyors = Pesquise e coloque \uf896 [accent]esteiras[] para mover os recursos minerados\ndas brocas para o núcleo.\n\nClique e arraste para pôr multiplas esteiras.\n[accent]Scroll[] para rotacionar.
+gz.conveyors.mobile = Pesquise e coloque \uf896 [accent]esteiras[] para mover os recursos minerados\ndas brocas para o núcleo.\n\nSegure por um segundo e arraste para colocar múltiplas esteiras.
+gz.drills = Expanda a mineração.\nColoque mais Brocas Mecânicas.\nMinere 100 cobres.
+gz.lead = \uf837 [accent]Chumbo[] é outro recurso comumente usado.\nColoque brocas para minerar chumbo.
+gz.moveup = \ue804 Vá para cima para outros objetivos.
+gz.turrets = Pesquise e coloque 2 torretas \uf861 [accent]Duo[] para defender o núcleo.\ntorretas Duo requerem \uf838 [accent]munição[] de esteiras.
+gz.duoammo = Abasteça as torretas Duo com [accent]cobre[], usando esteiras.
+gz.walls = [accent]Muros[] podem previnir danos recebidos de atingir as construções.\nColoque \uf8ae [accent]muros de cobre[] em volta das torretas.
+gz.defend = Inimigos vindo, prepare-se para defender.
+gz.aa = Unidades flutuantes não podem ser destruidas facilmente por torretas comuns.\nTorretas\uf860 [accent]Scatter[] Proveem ótima defesa aérea, mas requerem \uf837 [accent]chumbo[] como munição.
+gz.scatterammo = Abasteça a torreta Scatter com [accent]chumbo[], usando esteiras.
+gz.supplyturret = [accent]Abasteça a torreta
+gz.zone1 = Essa é a zona de spawn inimigo.
+gz.zone2 = Qualquer coisa construida nesta área será destruida quando uma horda começar.
+gz.zone3 = Uma horda vai começar agora\nSe prepare.
+gz.finish = Construa mais torretas, minere mais recursos,\ne se defenda de todas as hordas para [accent]capturar o setor[].
+
+onset.mine = Clique para minerar \uf748 [accent]berílio[] das paredes.\n\nUse [accent][[WASD] para se mover.
+onset.mine.mobile = Toque para minerar \uf748 [accent]berílio[] das paredes.
+onset.research = Abra a \ue875 árvore tecnológica.\nPesquise, e então coloque um \uf73e [accent]Condensador de Turbina[] na ventilação.\nIsso vai gerar [accent]energia[].
+onset.bore = Pesquise e coloque uma \uf741 [accent]Mineradora de Plasma[].\nEla minera recursos das paredes automaticamente.
+onset.power = Para[accent]alimentar[] a Mineradora de Plasma, pesquise e coloque uma \uf73d [accent]Célula de Feixe[].\nConecte o condensador de turbina ao minerador de plasma.
+onset.ducts = Pesquise e coloque \uf799 [accent]dutos[] para mover recursos minerados da mineradora de plasma para o núcleo.\nClique e segure para colocar múltiplos dutos.\n[accent]Scroll[] para rotacionar.
+onset.ducts.mobile = Pesquise e coloque \uf799 [accent]dutos[] para mover recursos minerados da mineradora de plasma para o núcleo.\n\nSegure por um segundo e arraste para colocar múltiplos dutos.
+onset.moremine = Expanda a mineração.\nColoque mais Mineradoras de Plasma, use as Células de Feixe e dutos para isso.\nMinere 200 berílios.
+onset.graphite = Blocos mais complexos requerem \uf835 [accent]grafite[].\nColoque Mineradoras de Plasma para minerar grafite.
+onset.research2 = Comece a pesquisar [accent]fábricas[].\nPesquise o \uf74d [accent]Esmagador de Penhasco[] e o \uf779 [accent]silicon arc furnace[].
+onset.arcfurnace = O arc furnace precisa de \uf834 [accent]areia[] e \uf835 [accent]grafite[] para criar \uf82f [accent]silício[].\n[accent]Energia[] também é necessária.
+onset.crusher = Use o \uf74d [accent]Esmagador de Areia[] para minerar areia.
+onset.fabricator = Use [accent]unidades[] para explorar o mapa, defender construções e atacar o inimigo. Pesquise e coloque um \uf6a2 [accent]Fabricador de Tanques[].
+onset.makeunit = Produza uma unidade.\nUse o botão "?" para ver os requisitos da fábrica selecionada.
+onset.turrets = Unidades são efetivas, mas [accent]torretas[] proveem melhores capacidades defensivas se usadas efetivamente.\nColoque uma torreta \uf6eb [accent]Breach[].\nTorretas requerem \uf748 [accent]munição[].
+onset.turretammo = Abasteça a torreta com [accent]munição de berílio.[]
+onset.walls = [accent]Muros[] podem previnir danos recebidos de atingir as construções.\nColoque \uf6ee [accent]muros de berílio[] em volta das torretas.
+onset.enemies = Inimigo vindo, se prepare.
onset.defenses = [accent]Set up defenses:[lightgray] {0}
-onset.attack = The enemy is vulnerable. Counter-attack.
-onset.cores = New cores can be placed on [accent]core tiles[].\nNew cores function as forward bases and share a resource inventory with other cores.\nPlace a \uf725 core.
-onset.detect = The enemy will be able to detect you in 2 minutes.\nSet up defenses, mining, and production.
+onset.attack = O inimigo está vulnerável. Contra ataque.
+onset.cores = Novos núcleos podem ser colocados em [accent]ladrilhos de núcleo[].\nNovos núcleos funcionam como bases avançadas e compartilham seus recursos com outros núcleos.\nColoque um \uf725 núcleo.
+onset.detect = O inimigo poderá te detectar em 2 minutos.\nConstrua defesas, mineração e produção.
onset.commandmode = Hold [accent]shift[] to enter [accent]command mode[].\n[accent]Left-click and drag[] to select units.\n[accent]Right-click[] to order selected units to move or attack.
onset.commandmode.mobile = Press the [accent]command button[] to enter [accent]command mode[].\nHold down a finger, then [accent]drag[] to select units.\n[accent]Tap[] to order selected units to move or attack.
aegis.tungsten = Tungsten can be mined using an [accent]impact drill[].\nThis structure requires [accent]water[] and [accent]power[].
+
split.pickup = Some blocks can be picked up by the core unit.\nPick up this [accent]container[] and place it onto the [accent]payload loader[].\n(Default keys are [ and ] to pick up and drop)
split.pickup.mobile = Some blocks can be picked up by the core unit.\nPick up this [accent]container[] and place it onto the [accent]payload loader[].\n(To pick up or drop something, long-press it.)
split.acquire = You must acquire some tungsten to build units.
split.build = Units must be transported to the other side of the wall.\nPlace two [accent]Payload Mass Drivers[], one on each side of the wall.\nSet up the link by pressing one of them, then selecting the other.
split.container = Similar to the container, units can also be transported using a [accent]Payload Mass Driver[].\nPlace a unit fabricator adjacent to a mass driver to load them, then send them across the wall to attack the enemy base.
+#Serpulo
item.copper.description = O material mais básico. Usado em todos os tipos de blocos.
-item.copper.details = Copper. Abnormally abundant metal on Serpulo. Structurally weak unless reinforced.
+item.copper.details = Cobre. Metal anormalmente abundante em Serpulo. Estruturalmente fraco a não ser que seja reforçado.
item.lead.description = Material de começo basico. usado extensivamente em blocos de transporte de líquidos e eletrônicos.
-item.lead.details = Dense. Inert. Extensively used in batteries.\nNote: Likely toxic to biological life forms. Not that there are many left here.
+item.lead.details = Denso. Inerte. Extensivamente usado em baterias.\nObservação: Provavelmente tóxico para formas de vida biológica. Não que tenha muito restando aqui.
item.metaglass.description = Composto de vidro super resistente. Extensivamente usado para distribuição e armazenagem de líquidos.
item.graphite.description = Carbono mineralizado, usado como munição e para isolação elétrica.
item.sand.description = Um material comum que é usado extensivamente em derretimento, tanto em ligas como em fluxo.
item.coal.description = Matéria vegetal fossilizada, formada muito depois de semeada. Usado extensivamente para produção de combustível e recursos.
-item.coal.details = Appears to be fossilized plant matter, formed long before the seeding event.
+item.coal.details = Parece ser matéria vegetal fossilizada, formada muito antes do evento da semeadura.
item.titanium.description = Um material raro super leve usado extensivamente no transporte de líquidos, em brocas e drones aéreos.
item.thorium.description = Um metal denso e radioativo, Usado como suporte material e combustivel nuclear.
item.scrap.description = Pedaços remanescentes de estruturas e unidades destruidas. Contem traços de diferentes metais.
-item.scrap.details = Leftover remnants of old structures and units.
+item.scrap.details = Pedaços restantes de estruturas e unidades destruidas. Contém traços de diferentes metais.
item.silicon.description = Condutor extremamente importante, com aplicação em paineis solares e aparelhos complexos.
item.plastanium.description = Material leve e maleável usado em drones aéreos avançados e como munição de fragmentação.
item.phase-fabric.description = Uma substância quase sem peso usada em eletrônica avançada e tecnologia de auto-reparo.
item.surge-alloy.description = Uma liga avançada com propriedades elétricas únicas.
item.spore-pod.description = Uma cápsula de esporos sintéticos, sintetizada de concentrações atmosféricas para propósitos industriais. Usada para conversão em petróleo, explosivos e combustíveis.
-item.spore-pod.details = Spores. Likely a synthetic life form. Emit gases toxic to other biological life. Extremely invasive. Highly flammable in certain conditions.
+item.spore-pod.details = Esporos. Provavelmente uma forma de vida sintética. Emite gases tóxicos para outras formas de vida biológica. Extremamente invasivo. Altamente inflamável em certas condições.
item.blast-compound.description = Um composto instável usado em bombas e em explosivos. Sintetizado de cápsulas de esporos e outras substâncias voláteis. Uso como combustível não é recomendado.
item.pyratite.description = Substância extremamente inflamável usada em armas incendiárias.
-item.beryllium.description = Used in many types of construction and ammunition on Erekir.
-item.tungsten.description = Used in drills, armor and ammunition. Required in the construction of more advanced structures.
-item.oxide.description = Used as a heat conductor and insulator for power.
-item.carbide.description = Used in advanced structures, heavier units, and ammunition.
+
+#Erekir
+item.beryllium.description = Usado em muitos tipos de construção e munição em Erekir.
+item.tungsten.description = Utilizado em brocas, armaduras e munições. Necessário na construção de estruturas mais avançadas.
+item.oxide.description = Utilizado como condutor de calor e isolante para energia.
+item.carbide.description = Utilizado em estruturas avançadas, unidades mais pesadas e munições.
+
+#Serpulo
liquid.water.description = O líquido mais útil, comumente usado em resfriamento de máquinas e no processamento de lixo. Dá pra beber, também.
liquid.slag.description = Vários metais derretidos misturados juntos. Pode ser separado em seus minerais constituentes, ou jogado nas unidades inimigas como uma arma.
liquid.oil.description = Um líquido usado na produção de materias avançados. Pode ser convertido em carvão como combustível, ou pulverizado e incendiado como arma.
liquid.cryofluid.description = A maneira mais eficiente de resfriar qualquer coisa, até seu corpo quando está calor, mas não faça isto.
-liquid.arkycite.description = Used in chemical reactions for power generation and material synthesis.
-liquid.ozone.description = Used as an oxidizing agent in material production, and as fuel. Moderately explosive.
-liquid.hydrogen.description = Used in resource extraction, unit production and structure repair. Flammable.
-liquid.cyanogen.description = Used for ammunition, construction of advanced units, and various reactions in advanced blocks. Highly flammable.
-liquid.nitrogen.description = Used in resource extraction, gas creation and unit production. Inert.
-liquid.neoplasm.description = A dangerous biological byproduct of the Neoplasia reactor. Quickly spreads to any adjacent water-containing block it touches, damaging them in the process. Viscous.
-liquid.neoplasm.details = Neoplasm. An uncontrollable mass of rapidly-dividing synthetic cells with a sludge-like consistency. Heat-resistant. Extremely dangerous to any structures involving water.\n\nToo complex and unstable for standard analysis. Potential applications unknown. Incineration in slag pools is recommended.
+
+#Erekir
+liquid.arkycite.description = Utilizado em reações químicas para geração de energia e síntese de materiais.
+liquid.ozone.description = Utilizado como agente oxidante na produção de material e como combustível. Moderadamente explosivo.
+liquid.hydrogen.description = Utilizado na extração de recursos, produção de unidades e reparo de estruturas. Inflamável.
+liquid.cyanogen.description = Utilizado para munição, construção de unidades avançadas e várias reações em blocos avançados. Altamente inflamável.
+liquid.nitrogen.description = Utilizado na extração de recursos, criação de gás e produção de unidades. Inerte.
+liquid.neoplasm.description = Um subproduto biológico perigoso do reator de Neoplasia. Espalha-se rapidamente para qualquer bloco adjacente contendo água que ele toque, danificando-os no processo. Viscoso.
+liquid.neoplasm.details = Neoplasma. Uma massa incontrolável de células sintéticas de rápida divisão com uma consistência semelhante à de lama. Resistente ao calor. Extremamente perigoso para qualquer estrutura que envolva água.\n\nMuito complexo e instável para análise padrão. Potenciais aplicações desconhecidas. Recomenda-se a incineração em piscinas de escória.
+
+#Serpulo
block.derelict = \uf77e [lightgray]Derelict
block.armored-conveyor.description = Move os itens com a mesma velocidade das esteiras de titânio, mas tem mais armadura. Não aceita itens dos lados de nada além de outras esteiras.
-block.illuminator.description = A small, compact, configurable light source. Requires power to function.
-
+block.illuminator.description = Uma fonte de luz pequena, configurável e compacta. Precisa de energia para funcionar.
block.message.description = Armazena uma mensagem. Usado para comunicação entre aliados.
block.reinforced-message.description = Stores a message for communication between allies.
block.world-message.description = A message block for use in mapmaking. Cannot be destroyed.
@@ -2060,15 +2161,15 @@ block.power-source.description = Infinitivamente da energia. Apenas caixa de are
block.item-source.description = Infinivamente da itens. Apenas caixa de areia.
block.item-void.description = Destroi qualquer item que entre sem requerir energia. Apenas caixa de areia.
block.liquid-source.description = Infinitivamente da Liquidos. Apenas caixa de areia.
-block.liquid-void.description = Removes any liquids. Sandbox only.
-block.payload-source.description = Infinitely outputs payloads. Sandbox only.
-block.payload-void.description = Destroys any payloads. Sandbox only.
+block.liquid-void.description = Destrói qualquer líquido que entrar. Apenas no modo sandbox.
+block.payload-source.description = Produz cargas infinitamete. Apenas sandbox.
+block.payload-void.description = Destrói qualquer carga. Apenas.
block.copper-wall.description = Um bloco defensivo e barato.\nUtil para proteger o núcleo e torretas no começo.
block.copper-wall-large.description = Um bloco defensivo e barato.\nUtil para proteger o núcleo e torretas no começo.\nOcupa múltiplos blocos.
block.titanium-wall.description = Um bloco defensivo moderadamente forte.\nProvidencia defesa moderada contra inimigos.
block.titanium-wall-large.description = Um bloco defensivo moderadamente forte.\nProvidencia defesa moderada contra inimigos.\nOcupa múltiplos blocos.
-block.plastanium-wall.description = A special type of wall that absorbs electric arcs and blocks automatic power node connections.
-block.plastanium-wall-large.description = A special type of wall that absorbs electric arcs and blocks automatic power node connections.\nSpans multiple tiles.
+block.plastanium-wall.description = Um tipo especial de muro que absorve arcos elétricos e bloqueia conexões automáticas de células de energia.
+block.plastanium-wall-large.description = Um tipo especial de muro que absorve arcos elétricos e bloqueia conexões automáticas de células de energia.\nOcupa múltiplos blocos.
block.thorium-wall.description = Um bloco defensivo forte.\nBoa proteção contra inimigos.
block.thorium-wall-large.description = Um bloco grande e defensivo.\nBoa proteção contra inimigos.\nOcupa multiplos blocos.
block.phase-wall.description = Um muro revestido com um composto especial baseado em tecido de fase. Desvia a maioria das balas no impacto.
@@ -2088,14 +2189,14 @@ block.force-projector.description = Cria um campo de forca hexagonal em volta de
block.shock-mine.description = Danifica inimigos em cima da mina. Quase invisivel ao inimigo.
block.conveyor.description = Bloco de transporte de item basico. Move os itens a frente e os deposita automaticamente em torretas ou construtores. Rotacionavel.
block.titanium-conveyor.description = Bloco de transporte de item avançado. Move itens mais rapidos que esteiras padrões.
-block.plastanium-conveyor.description = Moves items in batches.\nAccepts items at the back, and unloads them in three directions at the front.
+block.plastanium-conveyor.description = Transporta os itens para frente em lotes. Aceita itens na parte de trás, e os descarrega em três direções na frente. Requer múltiplos pontos de carga e descarga para o pico de produção.
block.junction.description = Funciona como uma ponte Para duas esteiras que estejam se cruzando. Util em situações que tenha duas esteiras diferentes carregando materiais diferentes para lugares diferentes.
block.bridge-conveyor.description = Bloco de transporte de itens avancado. Possibilita o transporte de itens acima de 3 blocos de construção ou paredes.
block.phase-conveyor.description = Bloco de transporte de item avançado. Usa energia para teleportar itens a uma esteira de fase sobre uma severa distancia.
-block.sorter.description = [interact]Aperte no bloco para configurar[]
-block.inverted-sorter.description = Processes items like a standard sorter, but outputs selected items to the sides instead.
+block.sorter.description = Se um item de entrada corresponde à seleção, ele passa para frente. Caso contrário, o item é enviado para a esquerda ou para a direita.
+block.inverted-sorter.description = Semelhante a um ordenador padrão, mas os itens selecionados vão para os lados.
block.router.description = Aceita itens de uma direção e os divide em 3 direções igualmente. Util para espalhar materiais da fonte para multiplos alvos.
-block.router.details = A necessary evil. Using next to production inputs is not advised, as they will get clogged by output.
+block.router.details = Um mal necessário. Usar próximo de entradas de produção não é recomendado, pois ele vai entupir a saída de itens.
block.distributor.description = Um roteador avancada que espalhas os itens em 7 outras direções igualmente.
block.overflow-gate.description = Uma combinação de roteador e divisor Que apenas manda para a esquerda e Direita se a frente estiver bloqueada.
block.underflow-gate.description = O oposto de um portão de transbordamento. Saídas para a frente se os caminhos esquerdo e direito estiverem bloqueados.
@@ -2105,9 +2206,9 @@ block.rotary-pump.description = Uma bomba avançada. Bombeia mais líquido, mas
block.impulse-pump.description = A bomba final.
block.conduit.description = Bloco básico de transporte de líquidos. Move líquidos para a frente. Usado em conjunto com bombas e outros canos.
block.pulse-conduit.description = Bloco avancado de transporte de liquido. Transporta liquidos mais rápido e armazena mais que os canos padrões.
-block.plated-conduit.description = Moves liquids at the same rate as pulse conduits, but possesses more armor. Does not accept fluids from the sides by anything other than conduits.\nLeaks less.
+block.plated-conduit.description = Move líquidos na mesma velocidade que canos de pulso, mas possui blindagem. Não aceita entradas dos lados. Não vaza.
block.liquid-router.description = Aceita liquidos de uma direcão e os joga em 3 direções igualmente. Pode armazenar uma certa quantidade de liquido. Util para espalhar liquidos de uma fonte para multiplos alvos.
-block.liquid-container.description = Stores a sizeable amount of liquid. Outputs to all sides, similarly to a liquid router.
+block.liquid-container.description = Armazena uma grande quantidade de líquido. Joga para todos os lados, de forma semelhante a um roteador de líquido.
block.liquid-tank.description = Armazena grandes quantidades de liquido. Use quando a demanda de materiais não for constante ou para guardar itens para resfriar blocos vitais.
block.liquid-junction.description = Age como uma ponte para dois canos que se cruzam. Útil em situações em que há dois cano carregando liquidos diferentes até localizações diferentes.
block.bridge-conduit.description = Bloco de transporte de liquidos avancados. Possibilita o transporte de liquido sobre 3 blocos acima de construções ou paredes
@@ -2115,37 +2216,40 @@ block.phase-conduit.description = Bloco avancado de transporte de liquido. Usa e
block.power-node.description = Transmite energia para células conectadas. A célula vai receber energia ou alimentar qualquer bloco adjacente.
block.power-node-large.description = Uma célula de energia avançada com maior alcance e mais conexões.
block.surge-tower.description = Uma célula de energia com um extremo alcance mas com menos conexões disponíveis.
-block.diode.description = Battery power can flow through this block in only one direction, but only if the other side has less power stored.
+block.diode.description = Movimenta a energia da bateria em uma direção, mas somente se o outro lado tiver menos energia armazenada.
block.battery.description = Armazena energia em tempos de energia excedente. Libera energia em tempos de déficit.
block.battery-large.description = Guarda muito mais energia que uma beteria comum.
block.combustion-generator.description = Gera energia usando combustível ou petróleo.
block.thermal-generator.description = Gera uma quantidade grande de energia usando lava.
block.steam-generator.description = Mais eficiente que o gerador de Combustão, Mas requer agua adicional.
-block.differential-generator.description = Generates large amounts of energy. Utilizes the temperature difference between cryofluid and burning pyratite.
+block.differential-generator.description = Gera grandes quantidades de energia. Utiliza a diferença de temperatura entre o criofluido e a piratita.
block.rtg-generator.description = Um Gerador termoelétrico de radioisótopos Que não precisa de refriamento Mas da muito menos energia que o reator de torio.
block.solar-panel.description = Gera pequenas quantidades de energia do sol.
block.solar-panel-large.description = Da muito mais energia que o painel solar comum, Mas sua produção é mais cara.
block.thorium-reactor.description = Gera altas quantidades de energia do torio radioativo. Requer resfriamento constante. Vai explodir violentamente Se resfriamento insuficiente for fornecido.
-block.impact-reactor.description = An advanced generator, capable of creating massive amounts of power at peak efficiency. Requires a significant power input to kickstart the process.
+block.impact-reactor.description = Um gerador avançado, capaz de criar quantidades enormes de energia em seu poder total. Requer uma entrada significativa de energia ao iniciar.
block.mechanical-drill.description = Uma broca barata. Quando posto em blocos apropriados, retira itens em um ritmo lento e indefinitavamente.
block.pneumatic-drill.description = Uma broca improvisada que é mais rápida e capaz de processar materiais mais duros usando a pressão do ar
block.laser-drill.description = Possibilita a mineração ainda mais rapida usando tecnologia a laser, Mas requer poder adcionalmente torio radioativo pode ser recuperado com essa mineradora
block.blast-drill.description = A melhor mineradora. Requer muita energia.
block.water-extractor.description = Extrai água do chão. Use quando não tive nenhum lago proximo
block.cultivator.description = Cultiva o solo com agua para pegar bio materia.
-block.cultivator.details = Recovered technology. Used to produce massive amounts of biomass as efficiently as possible. Likely the initial incubator of the spores now covering Serpulo.
+block.cultivator.details = Tecnologia recuperada. Costumava produzir quantidades massivas de biomassa o mais eficiente o possível. Provavelmente o primeiro incubador de esporos cobrindo Serpulo agora.
block.oil-extractor.description = Usa altas quantidades de energia Para extrair oleo da areia. Use quando não tiver fontes de oleo por perto
block.core-shard.description = Primeira iteração da cápsula do núcleo. Uma vez destruida, o controle da região inteira é perdido. Não deixe isso acontecer.
-block.core-shard.details = The first iteration. Compact. Self-replicating. Equipped with single-use launch thrusters. Not designed for interplanetary travel.
+block.core-shard.details = A primeira interação. Compacto. Auto-replicante. Equipado com propulsores de lançamento de uso único. Não projetado para viagens interplanetárias.
block.core-foundation.description = A segunda versão do núcleo. Melhor armadura. Guarda mais recursos.
-block.core-foundation.details = The second iteration.
+block.core-foundation.details = A segunda versão.
block.core-nucleus.description = A terceira e ultima iteração do núcleo. Extremamente bem armadurada. Guarda quantidades massivas de recursos.
-block.core-nucleus.details = The third and final iteration.
+block.core-nucleus.details = A terceira e última versão.
block.vault.description = Carrega uma alta quantidade de itens. Usado para criar fontes Quando não tem uma necessidade constante de materiais. Um[lightgray] Descarregador[] pode ser usado para recuperar esses itens do container.
block.container.description = Carrega uma baixa quantidade de itens. Usado para criar fontes Quando não tem uma necessidade constante de materiais. Um[lightgray] Descarregador[] pode ser usado para recuperar esses itens do container.
block.unloader.description = Descarrega itens de um container, Descarrega em uma esteira ou diretamente em um bloco adjacente. O tipo de item que pode ser descarregado pode ser mudado clicando no descarregador.
block.launch-pad.description = Lança montes de itens sem qualquer necessidade de um lançamento de núcleo.
-block.launch-pad.details = Sub-orbital system for point-to-point transportation of resources. Payload pods are fragile and incapable of surviving re-entry.
+block.advanced-launch-pad.description = Launches batches of items to selected sectors. Only accepts one item type at a time.
+block.advanced-launch-pad.details = Sub-orbital system for point-to-point transportation of resources.
+block.landing-pad.description = Receives items from launch pads in other sectors. Requires large amounts of water to protect against impacts of landings.
+
block.duo.description = Uma torre pequena e barata.
block.scatter.description = Uma torre anti aerea media. Joga montes de cobre ou sucata aos inimigos.
block.scorch.description = Queima qualquer inimigo terrestre próximo. Altamente efetivo a curta distncia.
@@ -2160,228 +2264,235 @@ block.ripple.description = Uma grande torre que atira simultaneamente.
block.cyclone.description = Uma grande torre de tiro rapido.
block.spectre.description = Uma grande torre que da dois tiros poderosos ao mesmo tempo.
block.meltdown.description = Uma grande torre que atira dois raios poderosos ao mesmo tempo.
-block.foreshadow.description = Fires a large single-target bolt over long distances. Prioritizes enemies with higher max health.
+block.foreshadow.description = Dispara um feixe gigante de único alvo a grandes distâncias. Prioriza inimigos com maior vida máxima.
block.repair-point.description = Continuamente repara a unidade danificada mais proxima.
-block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
-block.parallax.description = Fires a tractor beam that pulls in air targets, damaging them in the process.
-block.tsunami.description = Fires powerful streams of liquid at enemies. Automatically extinguishes fires when supplied with water.
-block.silicon-crucible.description = Refines silicon from sand and coal, using pyratite as an additional heat source. More efficient in hot locations.
-block.disassembler.description = Separates slag into trace amounts of exotic mineral components at low efficiency. Can produce thorium.
-block.overdrive-dome.description = Increases the speed of nearby buildings. Requires phase fabric and silicon to operate.
-block.payload-conveyor.description = Moves large payloads, such as units from factories.
-block.payload-router.description = Splits input payloads into 3 output directions.
-block.ground-factory.description = Produces ground units. Output units can be used directly, or moved into reconstructors for upgrading.
-block.air-factory.description = Produces air units. Output units can be used directly, or moved into reconstructors for upgrading.
-block.naval-factory.description = Produces naval units. Output units can be used directly, or moved into reconstructors for upgrading.
-block.additive-reconstructor.description = Upgrades inputted units to the second tier.
-block.multiplicative-reconstructor.description = Upgrades inputted units to the third tier.
-block.exponential-reconstructor.description = Upgrades inputted units to the fourth tier.
-block.tetrative-reconstructor.description = Upgrades inputted units to the fifth and final tier.
-block.switch.description = A toggleable switch. State can be read and controlled with logic processors.
-block.micro-processor.description = Runs a sequence of logic instructions in a loop. Can be used to control units and buildings.
-block.logic-processor.description = Runs a sequence of logic instructions in a loop. Can be used to control units and buildings. Faster than the micro processor.
-block.hyper-processor.description = Runs a sequence of logic instructions in a loop. Can be used to control units and buildings. Faster than the logic processor.
-block.memory-cell.description = Stores information for a logic processor.
-block.memory-bank.description = Stores information for a logic processor. High capacity.
-block.logic-display.description = Displays arbitrary graphics from a logic processor.
-block.large-logic-display.description = Displays arbitrary graphics from a logic processor.
-block.interplanetary-accelerator.description = A massive electromagnetic railgun tower. Accelerates cores to escape velocity for interplanetary deployment.
-block.repair-turret.description = Continuously repairs the closest damaged unit in its vicinity. Optionally accepts coolant.
-block.core-bastion.description = Core of the base. Armored. Once destroyed, the sector is lost.
-block.core-citadel.description = Core of the base. Very well armored. Stores more resources than a Bastion core.
-block.core-acropolis.description = Core of the base. Exceptionally well armored. Stores more resources than a Citadel core.
-block.breach.description = Fires piercing beryllium or tungsten ammunition at enemy targets.
-block.diffuse.description = Fires a burst of bullets in a wide cone. Pushes enemy targets back.
-block.sublimate.description = Fires a continuous jet of flame at enemy targets. Pierces armor.
-block.titan.description = Fires a massive explosive artillery shell at ground targets. Requires hydrogen.
-block.afflict.description = Fires a massive charged orb of fragmentary flak. Requires heating.
-block.disperse.description = Fires bursts of flak at aerial targets.
-block.lustre.description = Fires a slow-moving single-target laser at enemy targets.
-block.scathe.description = Launches a powerful missile at ground targets over vast distances.
-block.smite.description = Fires bursts of piercing, lightning-emitting bullets.
-block.malign.description = Fires a barrage of homing laser charges at enemy targets. Requires extensive heating.
-block.silicon-arc-furnace.description = Refines silicon from sand and graphite.
-block.oxidation-chamber.description = Converts beryllium and ozone into oxide. Emits heat as a by-product.
-block.electric-heater.description = Heats facing blocks. Requires large amounts of power.
-block.slag-heater.description = Heats facing blocks. Requires slag.
-block.phase-heater.description = Heats facing blocks. Requires phase fabric.
-block.heat-redirector.description = Redirects accumulated heat to other blocks.
-block.small-heat-redirector.description = Redirects accumulated heat to other blocks.
-block.heat-router.description = Spreads accumulated heat in three output directions.
-block.electrolyzer.description = Converts water into hydrogen and ozone gas.
-block.atmospheric-concentrator.description = Concentrates nitrogen from the atmosphere. Requires heat.
-block.surge-crucible.description = Forms surge alloy from slag and silicon. Requires heat.
-block.phase-synthesizer.description = Synthesizes phase fabric from thorium, sand, and ozone. Requires heat.
-block.carbide-crucible.description = Fuses graphite and tungsten into carbide. Requires heat.
-block.cyanogen-synthesizer.description = Synthesizes cyanogen from arkycite and graphite. Requires heat.
-block.slag-incinerator.description = Incinerates non-volatile items or liquids. Requires slag.
-block.vent-condenser.description = Condenses vent gases into water. Consumes power.
-block.plasma-bore.description = When placed facing an ore wall, outputs items indefinitely. Requires small amounts of power.
-block.large-plasma-bore.description = A larger plasma bore. Capable of mining tungsten and thorium. Requires hydrogen and power.
-block.cliff-crusher.description = Crushes walls, outputting sand indefinitely. Requires power. Efficiency varies based on type of wall.
+block.segment.description = Destrói projéteis inimigos que se aproximam. Projéteis a laser não serão detectados.
+block.parallax.description = Dispara um feixe de energia que puxa unidades aéreas, danificando-as no processo.
+block.tsunami.description = Lança poderosos jatos de líquido em inimigos. Automaticamente apaga incêndios se for abastecido com água ou criofluido.
+block.silicon-crucible.description = Refina silício com carvão e areia, usando piratita como uma fonte de calor adicional. Mais eficiente em locais quentes.
+block.disassembler.description = Separa escória em traços de minerais componentes exóticos. Pode produzir tório.
+block.overdrive-dome.description = Aumenta a velocidade de construções vizinhas. Requer tecido de fase e silício para operar.
+block.payload-conveyor.description = Movimenta grandes cargas ,como unidades saindo das fábricas.
+block.payload-router.description = Separa cargas recebidas em 3 direções de saída.
+block.ground-factory.description = Produz unidades terrestres. Unidades produzidas podem ser usadas diretamente, ou movido em reconstrutores para melhorar.
+block.air-factory.description = Produz unidades aéreas. Unidades produzidas podem ser usadas diretamente, ou movido em reconstrutores para melhorar.
+block.naval-factory.description = Produz unidades navais. Unidades produzidas podem ser usadas diretamente, ou movido em reconstrutores para melhorar.
+block.additive-reconstructor.description = Melhora unidades recebidas para o seu segundo nível.
+block.multiplicative-reconstructor.description = Melhora unidades recebidas para o seu terceiro nível.
+block.exponential-reconstructor.description = Melhora unidades recebidas para o seu quarto nível.
+block.tetrative-reconstructor.description = Melhora unidades recebidas para o seu quinto e último nível.
+block.switch.description = Uma alavanca alternável. O seu estado pode ser lido e controlado com processadores lógicos.
+block.micro-processor.description = Executa uma sequência de instruções lógicas em um loop. Pode ser usado para controlar unidades e construções.
+block.logic-processor.description = Executa uma sequência de instruções lógicas em um loop. Pode ser usado para controlar unidades e construções. Mais rápido que um micro processador.
+block.hyper-processor.description = Executa uma sequência de instruções lógicas em um loop. Pode ser usado para controlar unidades e construções. Mais rápido que um processador lógico.
+block.memory-cell.description = Guarda informações para um processador lógico.
+block.memory-bank.description = Guarda informações para um processador lógico. Capacidade alta.
+block.logic-display.description = Exibe gráficos arbitrários de um processador lógico.
+block.large-logic-display.description = Exibe gráficos arbitrários de um processador lógico.
+block.interplanetary-accelerator.description = Uma enorme torre eletromagnética. Acelera a velocidade de fuga dos núcleos para o desdobramento interplanetário.
+block.repair-turret.description = Conserta continuamente a unidade danificada mais próxima a ela. Opcionalmente, aceita líquido refrigerante.
+
+#Erekir
+block.core-bastion.description = O núcleo da base. Blindado. Uma vez destruído, o setor é perdido.
+block.core-citadel.description = O núcleo da base. Muito bem blindado. Armazena mais recursos do que um Bastião do Núcleo.
+block.core-acropolis.description = O núcleo da base. Excepcionalmente bem blindado. Armazena mais recursos do que a Cidadela do Núcleo.
+block.breach.description = Dispara munições perfurantes de berílio ou tungstênio em alvos inimigos.
+block.diffuse.description = Dispara balas em um cone largo. Empurra os alvos inimigos de volta.
+block.sublimate.description = Dispara um jato contínuo de chamas sobre alvos inimigos. Penetra armadura.
+block.titan.description = Dispara um enorme projétil de artilharia explosiva em alvos terrestres. Requer hidrogênio.
+block.afflict.description = Dispara uma esfera maciça e carregada de fragmentos. Requer aquecimento.
+block.disperse.description = Dispara projéteis em alvos aéreos.
+block.lustre.description = Dispara um laser de movimento lento de alvo único em alvos inimigos.
+block.scathe.description = Lança um poderoso míssil em alvos terrestres a grandes distâncias.
+block.smite.description = Dispara balas perfurantes e emissoras de raios.
+block.malign.description = Dispara uma barragem de cargas de laser teleguiadas em alvos inimigos. Exige aquecimento extensivo.
+block.silicon-arc-furnace.description = Refina Silício a partir de areia e grafite.
+block.oxidation-chamber.description = Converte Berílio e Ozono em Óxido. Emite calor como um subproduto.
+block.electric-heater.description = Aquece blocos a frente. Requer grandes quantidades de energia.
+block.slag-heater.description = Aquece blocos a frente. Requer Escória.
+block.phase-heater.description = Aquece blocos a frente. Requer Tecido de Fase
+block.heat-redirector.description = Redireciona o calor acumulado para outros blocos.
+block.small-heat-redirector.description = Redireciona o calor acumulado para outros blocos.
+block.heat-router.description = Espalha o calor acumulado em 3 direções.
+block.electrolyzer.description = Converte Água em Hidrogénio e gás de Ozono.
+block.atmospheric-concentrator.description = Concentra o Nitrogénio da atmosfera. Requer calor.
+block.surge-crucible.description = Forma Liga de Surto a partir de Escória e Silício. Requer calor.
+block.phase-synthesizer.description = Sintetiza Tecido de Fase a partir do Tório, Areia e Ozono. Requer calor.
+block.carbide-crucible.description = Funde Grafite e Tungsténio em Carboneto. Requer calor.
+block.cyanogen-synthesizer.description = Sintetiza Cianogénio a partir de Arkycite e Grafite. Requer calor.
+block.slag-incinerator.description = Incinera itens ou líquidos não voláteis. Requer escória.
+block.vent-condenser.description = Condensa os gases de ventilação em água. Consome energia.
+block.plasma-bore.description = Quando colocado de frente para uma parede de minério, produz itens por tempo indeterminado. Requer pequenas quantidades de energia.
+block.large-plasma-bore.description = Uma Broca de Plasma maior. Capaz de extrair tungsténio e tório. Requer hidrogénio e energia.
+block.cliff-crusher.description = Esmaga as paredes, produzindo areia indefinidamente. Requer energia. A eficiência varia de acordo com o tipo de parede.
block.large-cliff-crusher.description = Crushes walls, outputting sand indefinitely. Requires power and ozone. Efficiency varies based on type of wall. Optionally consumes tungsten to increase efficiency.
-block.impact-drill.description = When placed on ore, outputs items in bursts indefinitely. Requires power and water.
-block.eruption-drill.description = An improved impact drill. Capable of mining thorium. Requires hydrogen.
-block.reinforced-conduit.description = Moves fluids forward. Doesn't accept non-conduit inputs to the sides.
-block.reinforced-liquid-router.description = Distributes fluids equally to all sides.
-block.reinforced-liquid-tank.description = Stores a large amount of fluids.
-block.reinforced-liquid-container.description = Stores a sizeable amount of fluids.
-block.reinforced-bridge-conduit.description = Transports fluids over structures and terrain.
-block.reinforced-pump.description = Pumps and outputs liquids. Requires hydrogen.
-block.beryllium-wall.description = Protects structures from enemy projectiles.
-block.beryllium-wall-large.description = Protects structures from enemy projectiles.
-block.tungsten-wall.description = Protects structures from enemy projectiles.
-block.tungsten-wall-large.description = Protects structures from enemy projectiles.
-block.carbide-wall.description = Protects structures from enemy projectiles.
-block.carbide-wall-large.description = Protects structures from enemy projectiles.
-block.reinforced-surge-wall.description = Protects structures from enemy projectiles, periodically launching electric arcs upon projectile contact.
-block.reinforced-surge-wall-large.description = Protects structures from enemy projectiles, periodically launching electric arcs upon projectile contact.
-block.shielded-wall.description = Protects structures from enemy projectiles. Deploys a shield that absorbs most projectiles when power is provided. Conducts power.
-block.blast-door.description = A wall that opens when allied ground units are in range. Cannot be manually controlled.
-block.duct.description = Moves items forward. Only capable of storing a single item.
-block.armored-duct.description = Moves items forward. Does not accept non-duct inputs from the sides.
-block.duct-router.description = Distributes items equally across three directions. Only accepts items from the back side. Can be configured as an item sorter.
-block.overflow-duct.description = Only outputs items to the sides if the front path is blocked.
-block.duct-bridge.description = Moves items over structures and terrain.
-block.duct-unloader.description = Unloads the selected item from the block behind it. Cannot unload from cores.
-block.underflow-duct.description = Opposite of an overflow duct. Outputs to the front if the left and right paths are blocked.
-block.reinforced-liquid-junction.description = Acts as a junction between two crossing conduits.
-block.surge-conveyor.description = Moves items in batches. Can be sped up with power. Conducts power.
-block.surge-router.description = Equally distributes items in three directions from surge conveyors. Can be sped up with power. Conducts power.
-block.unit-cargo-loader.description = Constructs cargo drones. Drones automatically distribute items to Cargo Unload Points with a matching filter.
-block.unit-cargo-unload-point.description = Acts as an unloading point for cargo drones. Accepts items that match the selected filter.
-block.beam-node.description = Transmits power to other blocks orthogonally. Stores a small amount of power.
-block.beam-tower.description = Transmits power to other blocks orthogonally. Stores a large amount of power. Long-range.
-block.turbine-condenser.description = Generates power when placed on vents. Produces a small amount of water.
-block.chemical-combustion-chamber.description = Generates power from arkycite and ozone.
-block.pyrolysis-generator.description = Generates large amounts of power from arkycite and slag. Produces water as a byproduct.
-block.flux-reactor.description = Generates large amounts of power when heated. Requires cyanogen as a stabilizer. Power output and cyanogen requirements are proportional to heat input.\nExplodes if insufficient cyanogen is provided.
-block.neoplasia-reactor.description = Uses arkycite, water and phase fabric to generate large amounts of power. Produces heat and dangerous neoplasm as a byproduct.\nExplodes violently if neoplasm is not removed from the reactor via conduits.
-block.build-tower.description = Automatically rebuilds structures in range and assists other units in construction.
-block.regen-projector.description = Slowly repairs allied structures in a square perimeter. Requires hydrogen.
-block.reinforced-container.description = Stores a small amount of items. Contents can be retrieved via unloaders. Does not increase core storage capacity.
-block.reinforced-vault.description = Stores a large amount of items. Contents can be retrieved via unloaders. Does not increase core storage capacity.
-block.tank-fabricator.description = Constructs Stell units. Outputted units can be used directly, or moved into refabricators for upgrading.
-block.ship-fabricator.description = Constructs Elude units. Outputted units can be used directly, or moved into refabricators for upgrading.
-block.mech-fabricator.description = Constructs Merui units. Outputted units can be used directly, or moved into refabricators for upgrading.
-block.tank-assembler.description = Assembles large tanks out of inputted blocks and units. Output tier may be increased by adding modules.
-block.ship-assembler.description = Assembles large ships out of inputted blocks and units. Output tier may be increased by adding modules.
-block.mech-assembler.description = Assembles large mechs out of inputted blocks and units. Output tier may be increased by adding modules.
-block.tank-refabricator.description = Upgrades inputted tank units to the second tier.
-block.ship-refabricator.description = Upgrades inputted ship units to the second tier.
-block.mech-refabricator.description = Upgrades inputted mech units to the second tier.
-block.prime-refabricator.description = Upgrades inputted units to the third tier.
-block.basic-assembler-module.description = Increases assembler tier when placed next to a construction boundary. Requires power. Can be used as a payload input.
-block.small-deconstructor.description = Deconstructs inputted structures and units. Returns 100% of the build cost.
-block.reinforced-payload-conveyor.description = Moves payloads forward.
-block.reinforced-payload-router.description = Distributes payloads into adjacent blocks. Functions as a sorter when a filter is set.
-block.payload-mass-driver.description = Long-range payload transport structure. Shoots received payloads to linked payload mass drivers.
+block.impact-drill.description = Quando colocados sobre minério, os itens saem em rajadas indefinidamente. Requer energia e água.
+block.eruption-drill.description = Uma Broca de Impacto melhorada. Capaz de minerar Tório. Requer Hidrogénio.
+block.reinforced-conduit.description = Movimenta fluidos para frente. Não aceita entradas de outros blocos, a não ser canos, dos lados.
+block.reinforced-liquid-router.description = Distribui fluidos igualmente para todos os lados.
+block.reinforced-liquid-tank.description = Armazena uma grande quantidade de fluidos.
+block.reinforced-liquid-container.description = Armazena uma quantidade considerável de fluidos.
+block.reinforced-bridge-conduit.description = Transporta fluidos sobre estruturas e terrenos.
+block.reinforced-pump.description = Bombeia e produz líquidos. Requer hidrogênio.
+block.beryllium-wall.description = Protege estruturas contra projéteis inimigos.
+block.beryllium-wall-large.description = Protege estruturas contra projéteis inimigos.
+block.tungsten-wall.description = Protege estruturas contra projéteis inimigos.
+block.tungsten-wall-large.description = Protege estruturas contra projéteis inimigos.
+block.carbide-wall.description = Protege estruturas contra projéteis inimigos.
+block.carbide-wall-large.description = Protege estruturas contra projéteis inimigos.
+block.reinforced-surge-wall.description = Protege estruturas contra projéteis inimigos, lançando periodicamente arcos elétricos em contato com o projétil.
+block.reinforced-surge-wall-large.description = Protege estruturas contra projéteis inimigos, lançando periodicamente arcos elétricos em contato com o projétil.
+block.shielded-wall.description = Protege estruturas contra projéteis inimigos. Implanta um escudo que absorve a maioria dos projéteis quando energia é fornecida. Conduz energia.
+block.blast-door.description = Uma parede que se abre quando as unidades terrestres aliadas estão no alcance. Não pode ser controlada manualmente.
+block.duct.description = Move itens para frente. Só é capaz de armazenar um único item.
+block.armored-duct.description = Move itens para frente. Não aceita entradas de blocos não-dutos dos lados.
+block.duct-router.description = Distribui os itens igualmente em três direções. Aceita somente itens pela parte de trás. Pode ser configurado como um ordenador de itens.
+block.overflow-duct.description = Só libera itens para os lados se a frente estiver bloqueada.
+block.duct-bridge.description = Move itens sobre estruturas e terrenos.
+block.duct-unloader.description = Descarrega o item selecionado do bloco atrás dele. Não pode descarregar do núcleo.
+block.underflow-duct.description = O contrário de um duto de sobrecarga. Libera itens para a frente se os caminhos esquerdo e direito estiverem bloqueados.
+block.reinforced-liquid-junction.description = Atua como uma junção entre dois canos se cruzando.
+block.surge-conveyor.description = Move itens em lotes. Pode ser acelerado com energia. Conduz energia.
+block.surge-router.description = Distribui igualmente os itens em três direções a partir de Esteiras de Liga de Surto. Podem ser acelerados com energia. Conduz energia.
+block.unit-cargo-loader.description = Constrói drones de carga. Os drones distribuem automaticamente os itens aos pontos de descarga de carga com um filtro correspondente.
+block.unit-cargo-unload-point.description = Atua como um ponto de descarga de drones de carga. Aceita itens que combinam com o filtro selecionado.
+block.beam-node.description = Transmite energia para outros blocos ortogonalmente. Armazena uma pequena quantidade de energia.
+block.beam-tower.description = Transmite energia para outros blocos ortogonalmente. Armazena uma grande quantidade de energia. Longo alcance.
+block.beam-link.description = Transmits power over vast distances.\nOnly capable of connecting to adjacent structures or other beam links.
+block.turbine-condenser.description = Gera energia quando colocado em ventilações. Produz uma pequena quantidade de água.
+block.chemical-combustion-chamber.description = Gera energia a partir de arkycite e ozônio.
+block.pyrolysis-generator.description = Gera grandes quantidades de energia a partir de arkycite e escória. Produz água como subproduto.
+block.flux-reactor.description = Gera grandes quantidades de energia quando aquecido. Requer cianogênio como estabilizador. A saída de energia e os requisitos de cianogênio são proporcionais à entrada de calor.\nExplode se o cianogênio for insuficiente.
+block.neoplasia-reactor.description = Utiliza arkycite, água e tecido de fase para gerar grandes quantidades de energia. Produz calor e neoplasma perigoso como subproduto.\nExplode violentamente se o neoplasma não for removido do reator através de canos.
+block.build-tower.description = Reconstrói automaticamente estruturas em alcance e auxilia outras unidades na construção.
+block.regen-projector.description = Lentamente repara estruturas aliadas em um perímetro quadrado. Requer hidrogênio.
+block.reinforced-container.description = Armazena uma pequena quantidade de itens. O conteúdo pode ser recuperado através de descarregadores. Não aumenta a capacidade de armazenamento do núcleo.
+block.reinforced-vault.description = Armazena uma grande quantidade de itens. O conteúdo pode ser recuperado através de descarregadores. Não aumenta a capacidade de armazenamento do núcleo.
+block.tank-fabricator.description = Constrói unidades Stell. As unidades produzidas podem ser usadas diretamente, ou movidas para refabricadores para atualização.
+block.ship-fabricator.description = Constrói unidades Elude. As unidades produzidas podem ser usadas diretamente, ou movidas para refabricadores para atualização.
+block.mech-fabricator.description = Constrói unidades Merui. As unidades produzidas podem ser usadas diretamente, ou movidas para refabricadores para atualização.
+block.tank-assembler.description = Monta grandes tanques a partir dos blocos e unidades inseridos. O tier pode ser aumentado com a adição de módulos.
+block.ship-assembler.description = Monta grandes naves a partir de blocos e unidades inseridos. O tier pode ser aumentado com a adição de módulos.
+block.mech-assembler.description = Monta grandes mechs a partir de blocos e unidades inseridos. O tier pode ser aumentado com a adição de módulos.
+block.tank-refabricator.description = Atualiza as unidades tanques inseridas para o segundo tier.
+block.ship-refabricator.description = Atualiza as unidades naves inseridas para o segundo tier.
+block.mech-refabricator.description = Atualiza as unidades mech inseridas para o segundo tier.
+block.prime-refabricator.description = Atualiza as unidades inseridas para o terceiro tier.
+block.basic-assembler-module.description = Aumenta o tier do montador quando colocado próximo a um limite de construção. Requer energia. Pode ser usado como entrada de carga.
+block.small-deconstructor.description = Desconstrói as estruturas e unidades inseridos. Devolve 100% do custo de construção.
+block.reinforced-payload-conveyor.description = Movimenta cargas para frente.
+block.reinforced-payload-router.description = Distribui cargas em blocos adjacentes. Funciona como um ordenador quando um filtro é configurado.
+block.payload-mass-driver.description = = Estrutura de transporte de carga útil de longo alcance. Atira cargas recebidas para Catapultas de Carga Eletromagnéticas conectadas.
block.large-payload-mass-driver.description = Long-range payload transport structure. Shoots received payloads to linked payload mass drivers.
-block.unit-repair-tower.description = Repairs all units in its vicinity. Requires ozone.
-block.radar.description = Gradually uncovers terrain and enemy units in a large radius. Requires power.
-block.shockwave-tower.description = Damages and destroys enemy projectiles in a radius. Requires cyanogen.
+block.unit-repair-tower.description = Repara todas as unidades em sua proximidade. Requer ozônio.
+block.radar.description = Gradualmente descobre o terreno e as unidades inimigas em um grande raio. Requer energia.
+block.shockwave-tower.description = Danifica e destrói projéteis inimigos em um raio. Requer cianogênio.
block.canvas.description = Displays a simple image with a pre-defined palette. Editable.
-unit.dagger.description = Fires standard bullets at all nearby enemies.
-unit.mace.description = Fires streams of flame at all nearby enemies.
-unit.fortress.description = Fires long-range artillery at ground targets.
-unit.scepter.description = Fires a barrage of charged bullets at all nearby enemies.
-unit.reign.description = Fires a barrage of massive piercing bullets at all nearby enemies.
-unit.nova.description = Fires laser bolts that damage enemies and repair allied structures. Capable of flight.
-unit.pulsar.description = Fires arcs of electricity that damage enemies and repair allied structures. Capable of flight.
-unit.quasar.description = Fires piercing laser beams that damage enemies and repair allied structures. Capable of flight. Shielded.
-unit.vela.description = Fires a massive continuous laser beam that damages enemies, causes fires and repairs allied structures. Capable of flight.
-unit.corvus.description = Fires a massive laser blast that damages enemies and repairs allied structures. Can step over most terrain.
-unit.crawler.description = Runs toward enemies and self-destructs, causing a large explosion.
-unit.atrax.description = Fires debilitating orbs of slag at ground targets. Can step over most terrain.
-unit.spiroct.description = Fires sapping laser beams at enemies, repairing itself in the process. Can step over most terrain.
-unit.arkyid.description = Fires large sapping laser beams at enemies, repairing itself in the process. Can step over most terrain.
-unit.toxopid.description = Fires large electric cluster-shells and piercing lasers at enemies. Can step over most terrain.
-unit.flare.description = Fires standard bullets at nearby ground targets.
-unit.horizon.description = Drops clusters of bombs on ground targets.
-unit.zenith.description = Fires salvos of missiles at all nearby enemies.
-unit.antumbra.description = Fires a barrage of bullets at all nearby enemies.
-unit.eclipse.description = Fires two piercing lasers and a barrage of flak at all nearby enemies.
-unit.mono.description = Automatically mines copper and lead, depositing it into the core.
-unit.poly.description = Automatically rebuilds destroyed structures and assists other units in construction.
-unit.mega.description = Automatically repairs damaged structures. Capable of carrying blocks and small ground units.
-unit.quad.description = Drops large bombs on ground targets, repairing allied structures and damaging enemies. Capable of carrying medium-sized ground units.
-unit.oct.description = Protects nearby allies with its regenerating shield. Capable of carrying most ground units.
-unit.risso.description = Fires a barrage of missiles and bullets at all nearby enemies.
-unit.minke.description = Fires shells and standard bullets at nearby ground targets.
-unit.bryde.description = Fires long-range artillery shells and missiles at enemies.
-unit.sei.description = Fires a barrage of missiles and armor-piercing bullets at enemies.
-unit.omura.description = Fires a long-range piercing railgun bolt at enemies. Constructs flare units.
-unit.alpha.description = Defends the Shard core from enemies. Builds structures.
-unit.beta.description = Defends the Foundation core from enemies. Builds structures.
-unit.gamma.description = Defends the Nucleus core from enemies. Builds structures.
-unit.retusa.description = Fires homing torpedoes at nearby enemies. Repairs allied units.
+
+unit.dagger.description = Dispara projéteis padrões em todos os inimigos em volta.
+unit.mace.description = Dispara corrents de chamas em todos os inimigos em volta.
+unit.fortress.description = Dispara artilharia de longo alcance em alvos terrestres.
+unit.scepter.description = Dispara uma barragem de projéteis carregados em todos os inimigos em volta.
+unit.reign.description = Dispara uma barragem de projéteis perfuradoes massivos em todos os inimigos em volta.
+unit.nova.description = Dispara raios-lasers que danificam inimigos e repara estruturas aliadas. Capaz de voar.
+unit.pulsar.description = Dispara arcos de eletricidade que danificam inimigos e repara estruturas aliadas. Capaz de voar.
+unit.quasar.description = Dispara feixes penetradores de lasers que danificam inimigos e repara estruturas aliadas. Capaz de voar. Possui um escudo.
+unit.vela.description = Dispara um massivo feixe de laser massivo que danificam inimigos, causa fogo e repara estruturas aliadas. Capaz de voar.
+unit.corvus.description = Dispara um massivo laser que danificam inimigos e repara estruturas aliadas. Pode pisar em cima da maioria do terreno.
+unit.crawler.description = Corre atrás de inimigos e se destrói, causando uma grande explosão.
+unit.atrax.description = Dispara orbes debilitantes de escória em alvos terrestres. Pode pisar em cima da maioria do terreno.
+unit.spiroct.description = Dispara lasers enfraquecedores em inimigos, se reparando no processo. Pode pisar em cima da maioria do terreno.
+unit.arkyid.description = Dispara grandes lasers enfraquecedores em inimigos, se reparando no processo. Pode pisar em cima da maioria do terreno.
+unit.toxopid.description = Dispara grande granadas agrupadas elétricas e lasers penetradoes em inimigos. Pode pisar em cima da maioria do terreno.
+unit.flare.description = Dispara projéteis padrões em alvos terrestres.
+unit.horizon.description = Larga aglomerados de bombas em alvos terrestres.
+unit.zenith.description = Dispara salvos de mísseis em todos os inimigos em volta.
+unit.antumbra.description = Dispara uma barragem de projéteis em todos os inimigos em volta.
+unit.eclipse.description = Dispara dois lasers penetradores e uma barragem de fogo antiaéreo em todos os inimigos em volta.
+unit.mono.description = Automaticamente minera cobre e chumbo, depositando-os no núcleo.
+unit.poly.description = Automaticamente reconstrói estruturas destruídas e ajuda outras unidades em construção.
+unit.mega.description = Automaticamente repara estruturas danificadas. Capaz de carregar blocos e unidades de chão pequenas.
+unit.quad.description = Larga grandes bombas em alvos terrestres, reparando estruturas aliadas e danificando inimigos. Capaz de carregar unidades terrestres de tamanho médio.
+unit.oct.description = Protege aliados em volta com o seu escudo regenerador. Capaz de carregar a maioria das unidades terrestres.
+unit.risso.description = Dispara uma barragem de mísseis e projéteis em todos os inimigos em volta.
+unit.minke.description = Dispara granadas e projéteis padrões em alvos terrestres.
+unit.bryde.description = Dispara granadas de artilharia de longo alcance e mísseis em todos os inimigos em volta.
+unit.sei.description = Dispara uma barragem de mísseis e projéteis penetradoras de armadura em inimigos.
+unit.omura.description = Dispara um raio de longo alcance atravessador em inimigos. Constrói unidades flare.
+unit.alpha.description = Defende o Fragmento do Núcleo de inimigos. Constrói estruturas.
+unit.beta.description = Defende a Fundação do Núcleo de inimigos. Constrói estruturas.
+unit.gamma.description = Defende o Centro do Núcleo de inimigos. Constrói estruturas.
+unit.retusa.description = Atira torpedos teleguiados em inimigos próximos. Repara unidades aliadas.
unit.oxynoe.description = Fires structure-repairing streams of flame at nearby enemies. Targets nearby enemy projectiles with a point defense turret.
-unit.cyerce.description = Fires seeking cluster-missiles at enemies. Repairs allied units.
-unit.aegires.description = Shocks all enemy units and structures that enter its energy field. Repairs all allies.
-unit.navanax.description = Fires explosive EMP projectiles, dealing significant damage to enemy power networks and repairing allied structures. Melts nearby enemies with 4 autonomous laser turrets.
-unit.stell.description = Fires standard bullets at enemy targets.
-unit.locus.description = Fires alternating bullets at enemy targets.
-unit.precept.description = Fires piercing cluster bullets at enemy targets.
-unit.vanquish.description = Fires large piercing splitting bullets at enemy targets.
-unit.conquer.description = Fires large piercing cascades of bullets at enemy targets.
-unit.merui.description = Fires long-range artillery at enemy ground targets. Can step over most terrain.
-unit.cleroi.description = Fires dual shells at enemy targets. Targets enemy projectiles with point defense turrets. Can step over most terrain.
-unit.anthicus.description = Fires long-range homing missiles at enemy targets. Can step over most terrain.
-unit.tecta.description = Fires homing plasma missiles at enemy targets. Protects itself with a directional shield. Can step over most terrain.
-unit.collaris.description = Fires long-range fragmenting artillery at enemy targets. Can step over most terrain.
-unit.elude.description = Fires pairs of homing bullets at enemy targets. Can float over bodies of liquid.
-unit.avert.description = Fires twisting pairs of bullets at enemy targets.
-unit.obviate.description = Fires twisting pairs of lightning orbs at enemy targets.
-unit.quell.description = Fires long-range homing missiles at enemy targets. Suppresses enemy structure repair blocks.
-unit.disrupt.description = Fires long-range homing suppression missiles at enemy targets. Suppresses enemy structure repair blocks.
-unit.evoke.description = Builds structures to defend the Bastion core. Repairs structures with a beam.
-unit.incite.description = Builds structures to defend the Citadel core. Repairs structures with a beam.
-unit.emanate.description = Builds structures to defend the Acropolis core. Repairs structures with beams.
-lst.read = Read a number from a linked memory cell.
-lst.write = Write a number to a linked memory cell.
-lst.print = Add text to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used.
+unit.cyerce.description = Dispara fragmentos de mísseis em inimigos. Repara unidades aliadas.
+unit.aegires.description = Causa choque a todas as unidades e estruturas inimigas que entram em seu campo de enrgia. Repara todos os aliados.
+unit.navanax.description = Dispara projéteis de PEM explosivos, causando danos significativos às redes de energia inimigas e reparando as estruturas aliadas. Derrete os inimigos próximos com 4 torres laser autônomas.
+unit.stell.description = Dispara balas padrão em alvos inimigos.
+unit.locus.description = Dispara balas alternadas em alvos inimigos.
+unit.precept.description = Atira balas de fragmentação perfurantes em alvos inimigos.
+unit.vanquish.description = Dispara grandes balas de fragmentação perfurantes em alvos inimigos.
+unit.conquer.description = Dispara grandes cascatas de balas perfurantes em alvos inimigos.
+unit.merui.description = Dispara artilharia de longo alcance em alvos terrestres inimigos. Pode pisar sobre a maioria dos terrenos.
+unit.cleroi.description = Dispara projéteis duplos em alvos inimigos. Ataca projéteis inimigos com torretas de defesa de ponto. Pode pisar sobre a maioria dos terrenos.
+unit.anthicus.description = Atira mísseis teleguiados de longo alcance em alvos inimigos. Pode pisar sobre a maioria dos terrenos.
+unit.tecta.description = Atira mísseis teleguiados de plasma em direção a alvos inimigos. Protege-se com um escudo direcional. Pode pisar sobre a maioria dos terrenos.
+unit.collaris.description = Dispara artilharia de fragmentação de longo alcance em alvos inimigos. Pode pisar sobre a maioria dos terrenos.
+unit.elude.description = Dispara pares de balas teleguiadas em alvos inimigos. Pode flutuar sobre regiões de líquido.
+unit.avert.description = Dispara pares de balas em alvos inimigos.
+unit.obviate.description = Dispara pares de orbes de relâmpagos em alvos inimigos.
+unit.quell.description = Atira mísseis de longo alcance em alvos inimigos. Suprime os blocos de reparo de estruturas inimigas.
+unit.disrupt.description = Dispara mísseis teleguiados de supressão de longo alcance em alvos inimigos. Suprime os blocos de reparo de estruturas inimigas.
+unit.evoke.description = Constrói estruturas para defender o Bastião do Núcleo. Conserta estruturas com um feixe.
+unit.incite.description = Constrói estruturas para defender a Cidadela do Núcleo. Repara estruturas com um feixe.
+unit.emanate.description = Constrói estruturas para defender o Núcelo Acrópole. Repara estruturas com feixes.
+
+lst.read = Ler um número de uma célula de memória vinculada.
+lst.write = Escrever um número de uma célula de memória vinculada.
+lst.print = Adiciona texto ao buffer de impressão.\nNão exibe nada até [accent]Print Flush[] ser usado.
+lst.printchar = Add a UTF-16 character or content icon to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used.
lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example"
-lst.draw = Add an operation to the drawing buffer.\nDoes not display anything until [accent]Draw Flush[] is used.
-lst.drawflush = Flush queued [accent]Draw[] operations to a display.
-lst.printflush = Flush queued [accent]Print[] operations to a message block.
-lst.getlink = Get a processor link by index. Starts at 0.
-lst.control = Control a building.
-lst.radar = Locate units around a building with range.
-lst.sensor = Get data from a building or unit.
-lst.set = Set a variable.
-lst.operation = Perform an operation on 1-2 variables.
-lst.end = Jump to the top of the instruction stack.
-lst.wait = Wait a certain number of seconds.
-lst.stop = Halt execution of this processor.
-lst.lookup = Look up an item/liquid/unit/block type by ID.\nTotal counts of each type can be accessed with:\n[accent]@unitCount[] / [accent]@itemCount[] / [accent]@liquidCount[] / [accent]@blockCount[]
-lst.jump = Conditionally jump to another statement.
-lst.unitbind = Bind to the next unit of a type, and store it in [accent]@unit[].
-lst.unitcontrol = Control the currently bound unit.
-lst.unitradar = Locate units around the currently bound unit.
-lst.unitlocate = Locate a specific type of position/building anywhere on the map.\nRequires a bound unit.
-lst.getblock = Get tile data at any location.
-lst.setblock = Set tile data at any location.
-lst.spawnunit = Spawn unit at a location.
-lst.applystatus = Apply or clear a status effect from a uniut.
+lst.draw = Adicionar uma operação ao buffer de desenho.\nNão exibe nada até [accent]Draw Flush[] ser usado.
+lst.drawflush = Liberar operações [accent]Draw[] enfileiradas para um display.
+lst.printflush = Liberar operações [accent]Print[] enfileiradas para um bloco de mensagem.
+lst.getlink = Obtenha um link de processador por índice. Começa em 0.
+lst.control = Controle uma construção.
+lst.radar = Localize unidades ao redor de um prédio com alcance.
+lst.sensor = Obtenha dados de um edifício ou unidade.
+lst.set = Defina uma variável.
+lst.operation = Execute uma operação em 1-2 variáveis.
+lst.end = Pule para o topo da pilha de instruções.
+lst.wait = Aguarde um determinado número de segundos.
+lst.stop = Interrompa a execução deste processador.
+lst.lookup = Pesquise um tipo de item/líquido/unidade/bloco por ID.\nAs contagens totais de cada tipo podem ser acessadas com:\n[accent]@unitCount[] / [accent]@itemCount[] / [accent]@liquidCount[] / [accent]@blockCount[]
+lst.jump = Salte condicionalmente para outra instrução.
+lst.unitbind = Vincule à próxima unidade de um tipo e armazene-a em [accent]@unit[].
+lst.unitcontrol = Controle a unidade atualmente vinculada.
+lst.unitradar = Localize as unidades ao redor da unidade atualmente vinculada.
+lst.unitlocate = Localize um tipo específico de posição/construção em qualquer lugar do mapa.\nRequer uma unidade vinculada.
+lst.getblock = Obtenha dados de blocos em qualquer local.
+lst.setblock = Defina os dados do bloco em qualquer local.
+lst.spawnunit = Gere uma unidade em um local.
+lst.applystatus = Aplique ou elimine um efeito de status de uma unidade.
lst.weathersense = Check if a type of weather is active.
lst.weatherset = Set the current state of a type of weather.
-lst.spawnwave = Simulate a wave being spawned at a arbitrary location.\nWill not increment the wave counter.
-lst.explosion = Create an explosion at a location.
-lst.setrate = Set processor execution speed in instructions/tick.
-lst.fetch = Lookup units, cores, players or buildings by index.\nIndices start at 0 and end at their returned count.
-lst.packcolor = Pack [0, 1] RGBA components into a single number for drawing or rule-setting.
-lst.setrule = Set a game rule.
-lst.flushmessage = Display a message on the screen from the text buffer.\nWill wait until the previous message finishes.
-lst.cutscene = Manipulate the player camera.
-lst.setflag = Set a global flag that can be read by all processors.
-lst.getflag = Check if a global flag is set.
-lst.setprop = Sets a property of a unit or building.
+lst.spawnwave = Gerar uma onda.
+lst.explosion = Crie uma explosão em um local.
+lst.setrate = Defina a velocidade de execução do processador em instruções/tick.
+lst.fetch = Pesquise unidades, núcleos, jogadores ou edifícios por índice.\nOs índices começam em 0 e terminam na contagem retornada.
+lst.packcolor = Empacote [0, 1] componentes RGBA em um único número para desenho ou configuração de regra.
+lst.setrule = Defina uma regra do jogo.
+lst.flushmessage = Exibe uma mensagem na tela do buffer de texto.\nAguardará até que a mensagem anterior termine.
+lst.cutscene = Manipule a câmera do jogador.
+lst.setflag = Defina um sinalizador global que possa ser lido por todos os processadores.
+lst.getflag = Verifique se um sinalizador global está definido.
+lst.setprop = Define uma propriedade de uma unidade ou edifício.
lst.effect = Create a particle effect.
lst.sync = Sync a variable across the network.\nOnly invoked 10 times a second at most.
lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position.
lst.makemarker = Create a new logic marker in the world.\nAn ID to identify this marker must be provided.\nMarkers currently limited to 20,000 per world.
lst.setmarker = Set a property for a marker.\nThe ID used must be the same as in the Make Marker instruction.
lst.localeprint = Add map locale property value to the text buffer.\nTo set map locale bundles in map editor, check [accent]Map Info > Locale Bundles[].\nIf client is a mobile device, tries to print a property ending in ".mobile" first.
+
lglobal.false = 0
lglobal.true = 1
lglobal.null = null
@@ -2418,140 +2529,162 @@ lglobal.@clientUnit = Unit of client running the code
lglobal.@clientName = Player name of client running the code
lglobal.@clientTeam = Team ID of client running the code
lglobal.@clientMobile = True is the client running the code is on mobile, false otherwise
-logic.nounitbuild = [red]Unit building logic is not allowed here.
-lenum.type = Type of building/unit.\ne.g. for any router, this will return [accent]@router[].\nNot a string.
-lenum.shoot = Shoot at a position.
-lenum.shootp = Shoot at a unit/building with velocity prediction.
-lenum.config = Building configuration, e.g. sorter item.
-lenum.enabled = Whether the block is enabled.
+
+logic.nounitbuild = [red]Lógica de construção de unidades não é permitida aqui.
+
+lenum.type = Tipo de edifício/unidade.\ne.g. para qualquer roteador, isso retornará [accent]@router[].\não uma string.
+lenum.shoot = Atire em uma posição.
+lenum.shootp = Atire em uma unidade/edifício com previsão de velocidade.
+lenum.config = Configuração do edifício, por ex. item classificador.
+lenum.enabled = Se o bloco está ativado.
+
laccess.currentammotype = Current ammo item/liquid of a turret.
-laccess.color = Illuminator color.
-laccess.controller = Unit controller. If processor controlled, returns processor.\nIf in a formation, returns leader.\nOtherwise, returns the unit itself.
-laccess.dead = Whether a unit/building is dead or no longer valid.
-laccess.controlled = Returns:\n[accent]@ctrlProcessor[] if unit controller is processor\n[accent]@ctrlPlayer[] if unit/building controller is player\n[accent]@ctrlFormation[] if unit is in formation\nOtherwise, 0.
-laccess.progress = Action progress, 0 to 1.\nReturns production, turret reload or construction progress.
-laccess.speed = Top speed of a unit, in tiles/sec.
+laccess.memorycapacity = Number of cells in a memory block.
+laccess.color = Cor do iluminador.
+laccess.controller = Controlador de unidade. Se controlado pelo processador, retorna o processador.\nCaso contrário, retorna a própria unidade.
+laccess.dead = Se uma unidade/edifício está morta ou não é mais válida.
+laccess.controlled = Retorna:\n[accent]@ctrlProcessor[] se o controlador da unidade for o processador\n[accent]@ctrlPlayer[] se o controlador da unidade/edifício for o player\n[accent]@ctrlCommand[] se o controlador da unidade for um comando do player\nCaso contrário , 0.
+laccess.progress = Progresso da ação, 0 a 1.\nRetorna a produção, a recarga da torre ou o progresso da construção.
+laccess.speed = Velocidade máxima de uma unidade, em ladrilhos/seg.
+laccess.size = Size of a unit/building or the length of a string.
laccess.id = ID of a unit/block/item/liquid.\nThis is the inverse of the lookup operation.
-lcategory.unknown = Unknown
-lcategory.unknown.description = Uncategorized instructions.
-lcategory.io = Input & Output
-lcategory.io.description = Modify contents of memory blocks and processor buffers.
-lcategory.block = Block Control
-lcategory.block.description = Interact with blocks.
-lcategory.operation = Operations
-lcategory.operation.description = Logical operations.
-lcategory.control = Flow Control
-lcategory.control.description = Manage execution order.
-lcategory.unit = Unit Control
-lcategory.unit.description = Give units commands.
-lcategory.world = World
-lcategory.world.description = Control how the world behaves.
-graphicstype.clear = Fill the display with a color.
-graphicstype.color = Set color for next drawing operations.
-graphicstype.col = Equivalent to color, but packed.\nPacked colors are written as hex codes with a [accent]%[] prefix.\nExample: [accent]%ff0000[] would be red.
-graphicstype.stroke = Set line width.
-graphicstype.line = Draw line segment.
-graphicstype.rect = Fill a rectangle.
-graphicstype.linerect = Draw a rectangle outline.
-graphicstype.poly = Fill a regular polygon.
-graphicstype.linepoly = Draw a regular polygon outline.
-graphicstype.triangle = Fill a triangle.
-graphicstype.image = Draw an image of some content.\nex: [accent]@router[] or [accent]@dagger[].
+
+lcategory.unknown = Desconhecido
+lcategory.unknown.description = Instruções não categorizadas.
+lcategory.io = Entrada e Saída
+lcategory.io.description = Modifica o conteúdo dos blocos de memória e buffers do processador.
+lcategory.block = Controle de bloco
+lcategory.block.description = Interaja com os blocos.
+lcategory.operation = Operações
+lcategory.operation.description = Operações lógicas.
+lcategory.control = Controle de fluxo
+lcategory.control.description = Gerencia ordem de execução.
+lcategory.unit = Unidade de controle
+lcategory.unit.description = Dá comandos às unidades.
+lcategory.world = Mundo
+lcategory.world.description = Controla como o mundo se comporta.
+
+graphicstype.clear = Preenche o visor com uma cor.
+graphicstype.color = Define a cor para as próximas operações de desenho.
+graphicstype.col = Equivalente à cor, mas agrupada.\nAs cores agrupadas são escritas como códigos hexadecimais com um prefixo [accent]%[].\nExemplo: [accent]%ff0000[] seria vermelho.
+graphicstype.stroke = Define a largura da linha.
+graphicstype.line = Desenha o segmento de linha.
+graphicstype.rect = Preenche um retângulo.
+graphicstype.linerect = Desenha um contorno retangular.
+graphicstype.poly = Preenche um polígono regular.
+graphicstype.linepoly = Desenha um contorno de polígono regular.
+graphicstype.triangle = Preenche um triângulo.
+graphicstype.image = Desenha uma imagem de algum conteúdo.\nex: [accent]@router[] ou [accent]@dagger[].
graphicstype.print = Draws text from the print buffer.\nClears the print buffer.
-lenum.always = Always true.
-lenum.idiv = Integer division.
-lenum.div = Division.\nReturns [accent]null[] on divide-by-zero.
+
+lenum.always = Sempre verdade.
+lenum.idiv = Divisão inteira.
+lenum.div = Divisão.\nRetorna [accent]null[] na divisão por zero.
lenum.mod = Modulo.
-lenum.equal = Equal. Coerces types.\nNon-null objects compared with numbers become 1, otherwise 0.
-lenum.notequal = Not equal. Coerces types.
-lenum.strictequal = Strict equality. Does not coerce types.\nCan be used to check for [accent]null[].
-lenum.shl = Bit-shift left.
-lenum.shr = Bit-shift right.
-lenum.or = Bitwise OR.
-lenum.land = Logical AND.
-lenum.and = Bitwise AND.
-lenum.not = Bitwise flip.
-lenum.xor = Bitwise XOR.
-lenum.min = Minimum of two numbers.
-lenum.max = Maximum of two numbers.
-lenum.angle = Angle of vector in degrees.
-lenum.anglediff = Absolute distance between two angles in degrees.
-lenum.len = Length of vector.
-lenum.sin = Sine, in degrees.
-lenum.cos = Cosine, in degrees.
-lenum.tan = Tangent, in degrees.
-lenum.asin = Arc sine, in degrees.
-lenum.acos = Arc cosine, in degrees.
-lenum.atan = Arc tangent, in degrees.
-lenum.rand = Random decimal in range [0, value).
-lenum.log = Natural logarithm (ln).
-lenum.log10 = Base 10 logarithm.
-lenum.noise = 2D simplex noise.
-lenum.abs = Absolute value.
-lenum.sqrt = Square root.
-lenum.any = Any unit.
-lenum.ally = Ally unit.
-lenum.attacker = Unit with a weapon.
-lenum.enemy = Enemy unit.
-lenum.boss = Guardian unit.
-lenum.flying = Flying unit.
+lenum.equal = Igual. Coage tipos.\nObjetos não nulos comparados com números tornam-se 1, caso contrário, 0.
+lenum.notequal = Não igual. Tipos de coerção.
+lenum.strictequal = Igualdade estrita. Não coage tipos.Pode ser usado para verificar [accent]null[].
+lenum.shl = Deslocamento de bit para a esquerda.
+lenum.shr = Deslocamento de bits para a direita.
+lenum.or = OU bit a bit.
+lenum.land = Lógico E.
+lenum.and = E bit a bit.
+lenum.not = Virar bit a bit.
+lenum.xor = XOR bit a bit.
+
+lenum.min = Mínimo de dois números.
+lenum.max = Máximo de dois números.
+lenum.angle = Ângulo do vetor em graus.
+lenum.anglediff = Distância absoluta entre dois ângulos em graus.
+lenum.len = Comprimento do vetor.
+
+lenum.sin = Seno, em graus.
+lenum.cos = Cosseno, em graus.
+lenum.tan = Tangente, em graus.
+
+lenum.asin = Arco seno, em graus.
+lenum.acos = Arco cosseno, em graus.
+lenum.atan = Arco tangente, em graus.
+
+#not a typo, look up 'range notation'
+lenum.rand = Decimal aleatório no intervalo [0, valor).
+lenum.log = Logaritmo natural (ln).
+lenum.log10 = Logaritmo de base 10.
+lenum.noise = Ruído simplex 2D.
+lenum.abs = Valor absoluto.
+lenum.sqrt = Raiz quadrada.
+
+lenum.any = Qualquer unidade.
+lenum.ally = Unidade aliada.
+lenum.attacker = Unidade com uma arma.
+lenum.enemy = Unidade inimiga.
+lenum.boss = Unidade Guardiã.
+lenum.flying = Unidade voadora.
lenum.ground = Ground unit.
-lenum.player = Unit controlled by a player.
-lenum.ore = Ore deposit.
-lenum.damaged = Damaged ally building.
-lenum.spawn = Enemy spawn point.\nMay be a core or a position.
-lenum.building = Building in a specific group.
-lenum.core = Any core.
-lenum.storage = Storage building, e.g. Vault.
-lenum.generator = Buildings that generate power.
-lenum.factory = Buildings that transform resources.
-lenum.repair = Repair points.
-lenum.battery = Any battery.
-lenum.resupply = Resupply points.\nOnly relevant when [accent]"Unit Ammo"[] is enabled.
-lenum.reactor = Impact/Thorium reactor.
-lenum.turret = Any turret.
-sensor.in = The building/unit to sense.
-radar.from = Building to sense from.\nSensor range is limited by building range.
-radar.target = Filter for units to sense.
-radar.and = Additional filters.
-radar.order = Sorting order. 0 to reverse.
-radar.sort = Metric to sort results by.
-radar.output = Variable to write output unit to.
-unitradar.target = Filter for units to sense.
-unitradar.and = Additional filters.
-unitradar.order = Sorting order. 0 to reverse.
-unitradar.sort = Metric to sort results by.
-unitradar.output = Variable to write output unit to.
-control.of = Building to control.
-control.unit = Unit/building to aim at.
-control.shoot = Whether to shoot.
-unitlocate.enemy = Whether to locate enemy buildings.
-unitlocate.found = Whether the object was found.
-unitlocate.building = Output variable for located building.
-unitlocate.outx = Output X coordinate.
-unitlocate.outy = Output Y coordinate.
-unitlocate.group = Building group to look for.
+lenum.player = Unidade controlada por um jogador.
+
+lenum.ore = Depósito de minério.
+lenum.damaged = Edifício aliado danificado.
+lenum.spawn = Ponto de geração do inimigo.\nPode ser um núcleo ou uma posição.
+lenum.building = Construção em um grupo específico.
+
+lenum.core = Qualquer núcleo.
+lenum.storage = Edifício de armazenamento, por ex. Cofre.
+lenum.generator = Edifícios que geram energia.
+lenum.factory = Edifícios que transformam recursos.
+lenum.repair = Pontos de reparo.
+lenum.battery = Qualquer bateria.
+lenum.resupply = Pontos de reabastecimento.\nRelevante apenas quando [accent]"Unit Ammo"[] está habilitado.
+lenum.reactor = Reator de impacto/tório.
+lenum.turret = Qualquer torre.
+
+sensor.in = O edifício/unidade para sentir.
+
+radar.from = Construir para detectar.\nO alcance do sensor é limitado pelo alcance do edifício.
+radar.target = Filtre as unidades a serem detectadas.
+radar.and = Filtros adicionais.
+radar.order = Ordem de classificação. 0 para inverter.
+radar.sort = Métrica pela qual classificar os resultados.
+radar.output = Variável para gravar a unidade de saída.
+
+unitradar.target = Filtre as unidades a serem detectadas.
+unitradar.and = Filtros adicionais.
+unitradar.order = Ordem de classificação. 0 para inverter.
+unitradar.sort = Métrica pela qual classificar os resultados.
+unitradar.output = Variável para gravar a unidade de saída.
+
+control.of = Construir para controlar.
+control.unit = Unidade/edifício a visar.
+control.shoot = Se atirar.
+
+unitlocate.enemy = Se deve localizar edifícios inimigos.
+unitlocate.found = Se o objeto foi encontrado.
+unitlocate.building = Variável de saída para edifício localizado.
+unitlocate.outx = Coordenada X de saída.
+unitlocate.outy = Coordenada Y de saída.
+unitlocate.group = Grupo de construção para procurar.
playsound.limit = If true, prevents this sound from playing\nif it has already been played in the same frame.
-lenum.idle = Don't move, but keep building/mining.\nThe default state.
-lenum.stop = Stop moving/mining/building.
-lenum.unbind = Completely disable logic control.\nResume standard AI.
-lenum.move = Move to exact position.
-lenum.approach = Approach a position with a radius.
-lenum.pathfind = Pathfind to the enemy spawn.
+
+lenum.idle = Não se mova, mas continue construindo/minerando.\nO estado padrão.
+lenum.stop = Pare de mover/mineração/construção.
+lenum.unbind = Desabilite completamente o controle lógico.\nRetome AI padrão.
+lenum.move = Mover para a posição exata.
+lenum.approach = Aproxime-se de uma posição com um raio.
+lenum.pathfind = Pathfind para o spawn inimigo.
lenum.autopathfind = Automatically pathfinds to the nearest enemy core or drop point.\nThis is the same as standard wave enemy pathfinding.
-lenum.target = Shoot a position.
-lenum.targetp = Shoot a target with velocity prediction.
-lenum.itemdrop = Drop an item.
-lenum.itemtake = Take an item from a building.
-lenum.paydrop = Drop current payload.
-lenum.paytake = Pick up payload at current location.
-lenum.payenter = Enter/land on the payload block the unit is on.
-lenum.flag = Numeric unit flag.
-lenum.mine = Mine at a position.
-lenum.build = Build a structure.
+lenum.target = Atire em uma posição.
+lenum.targetp = Atire em um alvo com previsão de velocidade.
+lenum.itemdrop = Solte um item.
+lenum.itemtake = Pegue um item de um edifício.
+lenum.paydrop = Solte a carga útil atual.
+lenum.paytake = Pegue a carga no local atual.
+lenum.payenter = Entre/pouse no bloco de carga em que a unidade está.
+lenum.flag = Sinalizador de unidade numérica.
+lenum.mine = Mina em uma posição.
+lenum.build = Construa uma estrutura.
lenum.getblock = Fetch building, floor and block type at coordinates.\nUnit must be in range of the position, otherwise null is returned.
-lenum.within = Check if unit is near a position.
-lenum.boost = Start/stop boosting.
+lenum.within = Verifique se a unidade está perto de uma posição.
+lenum.boost = Iniciar/parar o reforço.
lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle.
lenum.texture = Texture name straight from game's texture atlas (using kebab-case naming style).\nIf printFlush is set to true, consumes text buffer content as text argument.
lenum.texturesize = Size of texture in tiles. Zero value scales marker width to original texture's size.
@@ -2559,3 +2692,29 @@ lenum.autoscale = Whether to scale marker corresponding to player's zoom level.
lenum.posi = Indexed position, used for line and quad markers with index zero being the first position.
lenum.uvi = Texture's position ranging from zero to one, used for quad markers.
lenum.colori = Indexed position, used for line and quad markers with index zero being the first color.
+lenum.wavetimer = Whether the waves come automatically on a timer. If not, waves come when the play button is pressed.
+lenum.wave = Current wave number. Can be anything in non-wave modes.
+lenum.currentwavetime = Wave countdown in ticks.
+lenum.waves = Whether waves are spawnable at all.
+lenum.wavesending = Whether the waves can be manually summoned with the play button.
+lenum.attackmode = Determines if gamemode is attack mode.
+lenum.wavespacing = Time between waves in ticks.
+lenum.enemycorebuildradius = No-build zone around enemy core radius.
+lenum.dropzoneradius = Radius around enemy wave drop zones.
+lenum.unitcap = Base unit cap. Can still be increased by blocks.
+lenum.lighting = Whether ambient lighting is enabled.
+lenum.buildspeed = Multiplier for building speed.
+lenum.unithealth = How much health units start with.
+lenum.unitbuildspeed = How fast unit factories build units.
+lenum.unitcost = Multiplier of resources that units take to build.
+lenum.unitdamage = How much damage units deal.
+lenum.blockhealth = How much health blocks start with.
+lenum.blockdamage = How much damage blocks (turrets) deal.
+lenum.rtsminweight = Minimum "advantage" needed for a squad to attack. Higher -> more cautious.
+lenum.rtsminsquad = Minimum size of attack squads.
+lenum.maparea = Playable map area. Anything outside the area will not be interactable.
+lenum.ambientlight = Ambient light color. Used when lighting is enabled.
+lenum.solarmultiplier = Multiplies power output of solar panels.
+lenum.dragmultiplier = Environment drag multiplier.
+lenum.ban = Blocks or units that cannot be placed or built.
+lenum.unban = Unban a unit or block.
diff --git a/core/assets/bundles/bundle_ro.properties b/core/assets/bundles/bundle_ro.properties
index f48d3578a7..9b571dc726 100644
--- a/core/assets/bundles/bundle_ro.properties
+++ b/core/assets/bundles/bundle_ro.properties
@@ -131,6 +131,7 @@ feature.unsupported = Dispozitivul tău nu suportă această funcție.
mods.initfailed = [red]⚠[] Instanța Mindustry precedentă a eșuat la inițializare. De obicei se întâmplă din cauza unui mod care nu se acționează cum trebuie.\n\nPt a preveni un lanț de crashuri continue, [red]toate modurile au fost dezactivate.[]\n\nPoți dezactiva asta din [accent]Setări->Joc->Dezactivează Modurile în Cazul unui Crash la Pornire[].
mods = Moduri
+mods.name = Mod:
mods.none = [lightgray]Nu s-au găsit moduri!
mods.guide = Ghid de Modding
mods.report = Raportează Bug
@@ -155,7 +156,7 @@ mod.erroredcontent = [scarlet]Erori de Conținut
mod.circulardependencies = [red]Circular Dependencies
mod.incompletedependencies = [red]Incomplete Dependencies
mod.requiresversion.details = Requires game version: [accent]{0}[]\nYour game is outdated. This mod requires a newer version of the game (possibly a beta/alpha release) to function.
-mod.outdatedv7.details = This mod is incompatible with the latest version of the game. The author must update it, and add [accent]minGameVersion: 136[] to its [accent]mod.json[] file.
+mod.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 = This mod has been manually blacklisted for causing crashes or other issues with this version of the game. Do not use it.
mod.missingdependencies.details = This mod is missing dependencies: {0}
mod.erroredcontent.details = This game caused errors when loading. Ask the mod author to fix them.
@@ -164,7 +165,6 @@ mod.incompletedependencies.details = This mod is unable to be loaded due to inva
mod.requiresversion = Requires game version: [red]{0}
mod.errors = Au apărut erori la încărcarea conținutului.
mod.noerrorplay = [scarlet]Modurile tale au erori.[] Dezactivează modurile afectate sau repară erorile înainte să joci.
-mod.nowdisabled = [scarlet]Modul '{0}' are dependențe lipsă:[accent] {1}\n[lightgray]Mai întâi trebuie să descarci aceste moduri.\nAcest mod va fi dezactivat automat.
mod.enable = Activează
mod.requiresrestart = Jocul se va închide acum pt a aplica modificările modurilor.
mod.reloadrequired = [scarlet]E Nevoie de o Repornire
@@ -179,6 +179,15 @@ mod.missing = Această salvare conține moduri cărora le-ai făcut update recen
mod.preview.missing = Înainte să publici acest mod pe Workshop, trebuie să adaugi o imagine pt previzualizare.\nPune o imagine numită[accent] preview.png[] în folderul modului și încearcă din nou.
mod.folder.missing = Doar modurile din câmpul folder pot fi publicate pe Workshop.\nPt a converti orice mod într-un folder, dezarhivează zipul într-un folder și șterge vechiul zip, apoi repornește jocul sau reîncărcă-ți modurile.
mod.scripts.disable = Dispozitivul tău nu suportă moduri cu scripturi. Trebuie să dezactivezi aceste moduri ca să joci jocul.
+mod.dependencies.error = [scarlet]Mods are missing dependencies
+mod.dependencies.soft = (optional)
+mod.dependencies.download = Import
+mod.dependencies.downloadreq = Import Required
+mod.dependencies.downloadall = Import All
+mod.dependencies.status = Import Results
+mod.dependencies.success = Successfully downloaded:
+mod.dependencies.failure = Failed to download:
+mod.dependencies.imported = This mod requires dependencies. Download?
about.button = Despre
name = Nume:
@@ -295,6 +304,7 @@ disconnect.error = Eroare de conexiune.
disconnect.closed = Conexiune închisă.
disconnect.timeout = Întârzie să răspundă.
disconnect.data = Nu s-au putut încărca datele lumii!
+disconnect.snapshottimeout = Timed out while receiving UDP snapshots.\nThis may be caused by an unstable network or connection.
cantconnect = Nu te-ai putut alătura jocului ([accent]{0}[]).
connecting = [accent]Conectare...
reconnecting = [accent]Reconectare...
@@ -463,6 +473,7 @@ editor.shiftx = Shift X
editor.shifty = Shift Y
workshop = Workshop
waves.title = Valuri
+waves.team = Team
waves.remove = Elimină
waves.every = la fiecare
waves.waves = val(uri)
@@ -714,14 +725,18 @@ loadout = Încărcare
resources = Resurse
resources.max = Max
bannedblocks = Blocuri Interzise
+unbannedblocks = Unbanned Blocks
objectives = Objectives
bannedunits = Unități Interzise
+unbannedunits = Unbanned Units
bannedunits.whitelist = Banned Units As Whitelist
bannedblocks.whitelist = Banned Blocks As Whitelist
addall = Adaugă-le pe toate
launch.from = Lansează Din: [accent]{0}
launch.capacity = Launching Item Capacity: [accent]{0}
launch.destination = Destinație: {0}
+landing.sources = Source Sectors: [accent]{0}[]
+landing.import = Max Total Import: {0}[accent]{1}[lightgray]/min
configure.invalid = Cantitatea trebuie să fie un număr între 0 și {0}.
add = Adaugă...
guardian = Gardian
@@ -760,7 +775,9 @@ sectors.stored = Stocat:
sectors.resume = Revino
sectors.launch = Lansare
sectors.select = Selectează
+sectors.launchselect = Select Launch Destination
sectors.nonelaunch = [lightgray]nimic (soarele)
+sectors.redirect = Redirect Launch Pads
sectors.rename = Redenumește Sectorul
sectors.enemybase = [scarlet]Bază Inamică
sectors.vulnerable = [scarlet]Vulnerabil
@@ -792,6 +809,10 @@ difficulty.easy = Easy
difficulty.normal = Normal
difficulty.hard = Hard
difficulty.eradication = Eradication
+difficulty.enemyHealthMultiplier = Enemy Health: {0}
+difficulty.enemySpawnMultiplier = Enemy Amount: {0}
+difficulty.waveTimeMultiplier = Wave Timer: {0}
+difficulty.nomodifiers = [lightgray](No modifiers)
planets = Planete
@@ -1023,6 +1044,7 @@ stat.buildspeedmultiplier = Multiplicator Viteză Construcție
stat.reactive = Reacționează la
stat.immunities = Immunities
stat.healing = Reparare
+stat.efficiency = [stat]{0}% Efficiency
ability.forcefield = Câmp de Forță
ability.forcefield.description = Projects a force shield that absorbs bullets
@@ -1070,6 +1092,7 @@ ability.stat.buildtime = [stat]{0} sec[lightgray] build time
bar.onlycoredeposit = Only Core Depositing Allowed
bar.drilltierreq = Burghiu Mai Bun Necesar
+bar.nobatterypower = Insufficieny Battery Power
bar.noresources = Resurse lipsă
bar.corereq = Plasare pe Nucleu Necesară
bar.corefloor = Core Zone Tile Required
@@ -1078,6 +1101,7 @@ bar.drillspeed = Viteză Minare: {0}/s
bar.pumpspeed = Viteză Pompare: {0}/s
bar.efficiency = Eficiență: {0}%
bar.boost = Efect Grăbire: +{0}%
+bar.powerbuffer = Battery Power: {0}/{1}
bar.powerbalance = Electricitate: {0}/s
bar.powerstored = Stocată: {0}/{1}
bar.poweramount = Electricitate: {0}
@@ -1088,6 +1112,7 @@ bar.capacity = Capacitate: {0}
bar.unitcap = {0} {1}/{2}
bar.liquid = Lichid
bar.heat = Căldură
+bar.cooldown = Cooldown
bar.instability = Instability
bar.heatamount = Heat: {0}
bar.heatpercent = Heat: {0} ({1}%)
@@ -1112,6 +1137,7 @@ bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
bullet.frags = [stat]{0}[lightgray]x fragmente:
bullet.lightning = [stat]{0}[lightgray]x fulgere ~ [stat]{1}[lightgray] forță
bullet.buildingdamage = [stat]{0}%[lightgray] forță/clădire
+bullet.shielddamage = [stat]{0}%[lightgray] shield damage
bullet.knockback = [stat]{0}[lightgray] împingere
bullet.pierce = [stat]{0}[lightgray]x penetrează
bullet.infinitepierce = [stat]penetrează
@@ -1138,6 +1164,7 @@ unit.minutes = min
unit.persecond = /sec
unit.perminute = /min
unit.timesspeed = x viteză
+unit.multiplier = x
unit.percent = %
unit.shieldhealth = viață scut
unit.items = materiale
@@ -1214,11 +1241,13 @@ setting.mutemusic.name = Muzica pe Mut
setting.sfxvol.name = Volum Efecte Sonore
setting.mutesound.name = Sunetul pe Mut
setting.crashreport.name = Trimite Rapoarte de Crash anonime
+setting.communityservers.name = Fetch Community Server List
setting.savecreate.name = Auto-Creează Salvări
setting.steampublichost.name = Public Game Visibility
setting.playerlimit.name = Limita Jucătorilor
setting.chatopacity.name = Opacitate Chat
setting.lasersopacity.name = Opacitate Laser Electric
+setting.unitlaseropacity.name = Unit Mining Beam Opacity
setting.bridgeopacity.name = Opacitate Poduri
setting.playerchat.name = Vezi Chat Temporar
setting.showweather.name = Vezi Vremea
@@ -1227,6 +1256,9 @@ setting.macnotch.name = Adaptați interfața pentru a afișa notch-ul
setting.macnotch.description = Repornire necesară pt a aplica schimbările.
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.
public.beta = De reținut că versiunile beta ale jocului nu poate face servere publice.
uiscale.reset = Scara interfeței a fost schimbată.\nApasă "OK" pt a confirma această scară.\n[scarlet]Revin setările și se iese în [accent] {0}[] secunde...
uiscale.cancel = Anulare și ieșire
@@ -1307,6 +1339,7 @@ keybind.shoot.name = Trage
keybind.zoom.name = Zoom
keybind.menu.name = Meniu
keybind.pause.name = Pauză
+keybind.skip_wave.name = Skip Wave
keybind.pause_building.name = Pauză/Reia Construcție
keybind.minimap.name = Minihartă
keybind.planet_map.name = Harta Planetei
@@ -1374,12 +1407,14 @@ rules.unitcostmultiplier = Unit Cost Multiplier
rules.unithealthmultiplier = Multiplicatorul Vieții Unităților
rules.unitdamagemultiplier = Multiplicatorul Deteriorării Unităților
rules.unitcrashdamagemultiplier = Unit Crash Damage Multiplier
+rules.unitminespeedmultiplier = Unit Mine Speed Multiplier
rules.solarmultiplier = Solar Power Multiplier
rules.unitcapvariable = Nucleele Contribuie la Limita Unităților
rules.unitpayloadsexplode = Carried Payloads Explode With The Unit
rules.unitcap = Limita de Bază a Unităților
rules.limitarea = Limit Map Area
rules.enemycorebuildradius = Interzisă Construirea în Jurul Nucleului Inamic:[lightgray] (pătrate)
+rules.extracorebuildradius = Extra No-Build Radius:[lightgray] (tiles)
rules.wavespacing = Spațiul Dintre Valuri:[lightgray] (sec)
rules.initialwavespacing = Initial Wave Spacing:[lightgray] (sec)
rules.buildcostmultiplier = Multiplicatorul Costului Construcției
@@ -1402,6 +1437,9 @@ rules.title.planet = Planet
rules.lighting = Luminozitate Ambientală
rules.fog = Fog of War
rules.invasions = Enemy Sector Invasions
+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.fire = Foc
@@ -1720,6 +1758,8 @@ block.meltdown.name = Meltdown
block.foreshadow.name = Foreshadow
block.container.name = Container
block.launch-pad.name = Platformă de Lansare
+block.advanced-launch-pad.name = Launch Pad
+block.landing-pad.name = Landing Pad
block.segment.name = Segment
block.ground-factory.name = Fabrică Unități Artilerie
block.air-factory.name = Fabrică Unități Aeriene
@@ -1775,6 +1815,8 @@ block.arkyic-vent.name = Arkyic Vent
block.yellow-stone-vent.name = Yellow Stone Vent
block.red-stone-vent.name = Red Stone Vent
block.crystalline-vent.name = Crystalline Vent
+block.stone-vent.name = Stone Vent
+block.basalt-vent.name = Basalt Vent
block.redmat.name = Redmat
block.bluemat.name = Bluemat
block.core-zone.name = Core Zone
@@ -1929,77 +1971,77 @@ hint.respawn = Pt a te regenera ca navă în nucleu, apasă [accent][[V][].
hint.respawn.mobile = Acum controlezi o unitate/structură. Pt a te regenera ca navă în nucleu, [accent]dă click pe avatarul din colțul din stânga-sus.[]
hint.desktopPause = Apasă pe [accent][[Space][] pt a da pauză jocului. Apasă din nou pt a ieși din modul pauză.
hint.breaking = Ține apăsat [accent]click-dreapta[] și trage pe ecran pt a distruge blocuri.
-hint.breaking.mobile = Activează \ue817 [accent]ciocanul[] din dreapta-jos și dă click pt a distruge blocuri.\n\nȚine apăsat cu degetul pt o secundă și trage pt a distruge mai multe blocuri deodată.
+hint.breaking.mobile = Activează :hammer: [accent]ciocanul[] din dreapta-jos și dă click pt a distruge blocuri.\n\nȚine apăsat cu degetul pt o secundă și trage pt a distruge mai multe blocuri deodată.
hint.blockInfo = Poți vedea informații despre un bloc selectându-l în [accent]meniul de construcție[] și dând click pe butonul [accent][[?][] din dreapta.
hint.derelict = [accent]Ruinele[] sunt rămășițe deteriorate ale bazelor vechi care nu mai funcționează.\n\nAceste structuri pot fi [accent]deconstruite[] pt resurse.
-hint.research = Folosește butonul \ue875 [accent]Cercetează[] pt a cerceta noi tehnologii.
-hint.research.mobile = Folosește butonul \ue875 [accent]Cercetează[] din \ue88c [accent]Meniu[] pt a cerceta noi tehnologii.
+hint.research = Folosește butonul :tree: [accent]Cercetează[] pt a cerceta noi tehnologii.
+hint.research.mobile = Folosește butonul :tree: [accent]Cercetează[] din :menu: [accent]Meniu[] pt a cerceta noi tehnologii.
hint.unitControl = Ține apăsat [accent][[Ctrl][] și [accent]dă click[] pt a controla unități aliate sau arme.
hint.unitControl.mobile = [accent][[Dă dublu click][] pt a controla unități aliate sau arme.
hint.unitSelectControl = To control units, enter [accent]command mode[] by holding [accent]L-shift.[]\nWhile in command mode, click and drag to select units. [accent]Right-click[] a location or target to command units there.
hint.unitSelectControl.mobile = To control units, enter [accent]command mode[] by pressing the [accent]command[] button in the bottom left.\nWhile in command mode, long-press and drag to select units. Tap a location or target to command units there.
-hint.launch = Odată ce s-au strâns suficiente resurse, poți [accent]Lansa[] către o altă zonă selectând sectoarele învecinate folosind \ue827 [accent]Harta[] din dreapta-jos.
-hint.launch.mobile = Odată ce s-au strâns suficiente resurse, poți [accent]Lansa[] către o altă zonă selectând sectoarele învecinate folosind \ue827 [accent]Harta[] din \ue88c [accent]Meniu[].
+hint.launch = Odată ce s-au strâns suficiente resurse, poți [accent]Lansa[] către o altă zonă selectând sectoarele învecinate folosind :map: [accent]Harta[] din dreapta-jos.
+hint.launch.mobile = Odată ce s-au strâns suficiente resurse, poți [accent]Lansa[] către o altă zonă selectând sectoarele învecinate folosind :map: [accent]Harta[] din :menu: [accent]Meniu[].
hint.schematicSelect = Ține apăsat [accent][[F][] și trage pt a selecta blocuri pt copiere.\n\n[accent][[Click pe rotiță][] pt a copia un singur tip de bloc.
hint.rebuildSelect = Hold [accent][[B][] and drag to select destroyed block plans.\nThis will rebuild them automatically.
-hint.rebuildSelect.mobile = Select the \ue874 copy button, then tap the \ue80f rebuild button and drag to select destroyed block plans.\nThis will rebuild them automatically.
+hint.rebuildSelect.mobile = Select the :copy: copy button, then tap the :wrench: rebuild button and drag to select destroyed block plans.\nThis will rebuild them automatically.
hint.conveyorPathfind = Ține apăsat [accent][[Ctrl][] în timp ce plasezi benzi pt a genera automat o cale între 2 puncte.
-hint.conveyorPathfind.mobile = Activează \ue844 [accent]modul diagonal[] și plasează benzi pt a genera automat o cale între 2 puncte.
+hint.conveyorPathfind.mobile = Activează :diagonal: [accent]modul diagonal[] și plasează benzi pt a genera automat o cale între 2 puncte.
hint.boost = Ține apăsat [accent][[Shift][] pt a zbura peste obstacole cu unitatea ta.\n\nDoar câteva unități de artilerie au propulsoare.
hint.payloadPickup = Apasă [accent][[[] pt a ridica blocuri mici sau unități.
hint.payloadPickup.mobile = [accent]Ține apăsat[] pe un bloc mic/o unitate pt a o ridica.
hint.payloadDrop = Apasă [accent]][] pt a descărca încărcătura.
hint.payloadDrop.mobile = [accent]Ține apăsat[] pe o locație goală pt a descărca încărcătura acolo.
hint.waveFire = Armele [accent]Wave[] încărcate cu apă vor stinge incendiile automat.
-hint.generator = \uf879 [accent]Generatoarele pe Combustie[] ard cărbunele și transmit electricitatea blocurilor învecinate.\n\nElectricitatea poate fi transmisă pe distanțe lungi folosind \uf87f [accent]Noduri Electrice[].
-hint.guardian = Unitățile [accent]Gardian[] au armuri puternice. Munițiile slabe precum [accent]Cuprul[] și [accent]Plumbul[] [scarlet]nu sunt eficiente[].\n\nFolosește arme mai bune sau muniție de \uf835 [accent]Grafit[] pt \uf861Duo/\uf859Salvo pt a nimici Gardianul.
-hint.coreUpgrade = Un nucleu poate pot fi îmbunătățit [accent]plasând o alt nucleu mai bun peste el[].\n\nPlasează un nucleu \uf868 [accent]Foundation[] peste nucleul \uf869 [accent]Shard[]. Nucleul nu poate fi plasat decât pe alte nuclee. Asigură-te că nu sunt alte benzi sau obstacole care să împiedice plasarea.
+hint.generator = :combustion-generator: [accent]Generatoarele pe Combustie[] ard cărbunele și transmit electricitatea blocurilor învecinate.\n\nElectricitatea poate fi transmisă pe distanțe lungi folosind :power-node: [accent]Noduri Electrice[].
+hint.guardian = Unitățile [accent]Gardian[] au armuri puternice. Munițiile slabe precum [accent]Cuprul[] și [accent]Plumbul[] [scarlet]nu sunt eficiente[].\n\nFolosește arme mai bune sau muniție de :graphite: [accent]Grafit[] pt :duo:Duo/:salvo:Salvo pt a nimici Gardianul.
+hint.coreUpgrade = Un nucleu poate pot fi îmbunătățit [accent]plasând o alt nucleu mai bun peste el[].\n\nPlasează un nucleu :core-foundation: [accent]Foundation[] peste nucleul :core-shard: [accent]Shard[]. Nucleul nu poate fi plasat decât pe alte nuclee. Asigură-te că nu sunt alte benzi sau obstacole care să împiedice plasarea.
hint.presetLaunch = Poți lansa de oriunde în sectoarele gri, precum [accent]Pădurea Glacială[]. Ele sunt [accent]zone[] speciale [accent]de aterizare[]. Nu ai nevoie să capturezi sectoarele învecinate pt a lansa.\n\n[accent]Sectoarele numerotate[], ca acesta, sunt [accent]opționale[].
hint.presetDifficulty = Acest sector are un [scarlet]nivel ridicat de amenințare inamică[].\n[accent]Nu e recomandat[] să lansezi în asemenea sectoare fără pregătiri sau tehnologie adecvată.
hint.coreIncinerate = După ce nucleul se umple până la refuz cu un tip de material, toate materialele în plus de acel tip care încearcă să între în nucleu sunt [accent]incinerate[].
hint.factoryControl = To set a unit factory's [accent]output destination[], click a factory block while in command mode, then right-click a location.\nUnits produced by it will automatically move there.
hint.factoryControl.mobile = To set a unit factory's [accent]output destination[], tap a factory block while in command mode, then tap a location.\nUnits produced by it will automatically move there.
-gz.mine = Move near the \uf8c4 [accent]copper ore[] on the ground and click to begin mining.
-gz.mine.mobile = Move near the \uf8c4 [accent]copper ore[] on the ground and tap it to begin mining.
-gz.research = Open the \ue875 tech tree.\nResearch the \uf870 [accent]Mechanical Drill[], then select it from the menu in the bottom right.\nClick on a copper patch to place it.
-gz.research.mobile = Open the \ue875 tech tree.\nResearch the \uf870 [accent]Mechanical Drill[], then select it from the menu in the bottom right.\nTap on a copper patch to place it.\n\nPress the \ue800 [accent]checkmark[] at the bottom right to confirm.
-gz.conveyors = Research and place \uf896 [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nClick and drag to place multiple conveyors.\n[accent]Scroll[] to rotate.
-gz.conveyors.mobile = Research and place \uf896 [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nHold down your finger for a second and drag to place multiple conveyors.
+gz.mine = Move near the :ore-copper: [accent]copper ore[] on the ground and click to begin mining.
+gz.mine.mobile = Move near the :ore-copper: [accent]copper ore[] on the ground and tap it to begin mining.
+gz.research = Open the :tree: tech tree.\nResearch the :mechanical-drill: [accent]Mechanical Drill[], then select it from the menu in the bottom right.\nClick on a copper patch to place it.
+gz.research.mobile = Open the :tree: tech tree.\nResearch the :mechanical-drill: [accent]Mechanical Drill[], then select it from the menu in the bottom right.\nTap on a copper patch to place it.\n\nPress the \ue800 [accent]checkmark[] at the bottom right to confirm.
+gz.conveyors = Research and place :conveyor: [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nClick and drag to place multiple conveyors.\n[accent]Scroll[] to rotate.
+gz.conveyors.mobile = Research and place :conveyor: [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nHold down your finger for a second and drag to place multiple conveyors.
gz.drills = Expand the mining operation.\nPlace more Mechanical Drills.\nMine 100 copper.
-gz.lead = \uf837 [accent]Lead[] is another commonly used resource.\nSet up drills to mine lead.
-gz.moveup = \ue804 Move up for further objectives.
-gz.turrets = Research and place 2 \uf861 [accent]Duo[] turrets to defend the core.\nDuo turrets require \uf838 [accent]ammo[] from conveyors.
+gz.lead = :lead: [accent]Lead[] is another commonly used resource.\nSet up drills to mine lead.
+gz.moveup = :up: Move up for further objectives.
+gz.turrets = Research and place 2 :duo: [accent]Duo[] turrets to defend the core.\nDuo turrets require \uf838 [accent]ammo[] from conveyors.
gz.duoammo = Supply the Duo turrets with [accent]copper[], using conveyors.
-gz.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace \uf8ae [accent]copper walls[] around the turrets.
+gz.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace :copper-wall: [accent]copper walls[] around the turrets.
gz.defend = Enemy incoming, prepare to defend.
-gz.aa = Flying units cannot easily be dispatched with standard turrets.\n\uf860 [accent]Scatter[] turrets provide excellent anti-air, but require \uf837 [accent]lead[] as ammo.
+gz.aa = Flying units cannot easily be dispatched with standard turrets.\n:scatter: [accent]Scatter[] turrets provide excellent anti-air, but require :lead: [accent]lead[] as ammo.
gz.scatterammo = Supply the Scatter turret with [accent]lead[], using conveyors.
gz.supplyturret = [accent]Supply Turret
gz.zone1 = This is the enemy drop zone.
gz.zone2 = Anything built in the radius is destroyed when a wave starts.
gz.zone3 = A wave will begin now.\nGet ready.
gz.finish = Build more turrets, mine more resources,\nand defend against all the waves to [accent]capture the sector[].
-onset.mine = Click to mine \uf748 [accent]beryllium[] from walls.\n\nUse [accent][[WASD] to move.
-onset.mine.mobile = Tap to mine \uf748 [accent]beryllium[] from walls.
-onset.research = Open the \ue875 tech tree.\nResearch, then place a \uf73e [accent]turbine condenser[] on the vent.\nThis will generate [accent]power[].
-onset.bore = Research and place a \uf741 [accent]plasma bore[].\nThis automatically mines resources from walls.
-onset.power = To [accent]power[] the plasma bore, research and place a \uf73d [accent]beam node[].\nConnect the turbine condenser to the plasma bore.
-onset.ducts = Research and place \uf799 [accent]ducts[] to move the mined resources from the plasma bore to the core.\nClick and drag to place multiple ducts.\n[accent]Scroll[] to rotate.
-onset.ducts.mobile = Research and place \uf799 [accent]ducts[] to move the mined resources from the plasma bore to the core.\n\nHold down your finger for a second and drag to place multiple ducts.
+onset.mine = Click to mine :beryllium: [accent]beryllium[] from walls.\n\nUse [accent][[WASD] to move.
+onset.mine.mobile = Tap to mine :beryllium: [accent]beryllium[] from walls.
+onset.research = Open the :tree: tech tree.\nResearch, then place a :turbine-condenser: [accent]turbine condenser[] on the vent.\nThis will generate [accent]power[].
+onset.bore = Research and place a :plasma-bore: [accent]plasma bore[].\nThis automatically mines resources from walls.
+onset.power = To [accent]power[] the plasma bore, research and place a :beam-node: [accent]beam node[].\nConnect the turbine condenser to the plasma bore.
+onset.ducts = Research and place :duct: [accent]ducts[] to move the mined resources from the plasma bore to the core.\nClick and drag to place multiple ducts.\n[accent]Scroll[] to rotate.
+onset.ducts.mobile = Research and place :duct: [accent]ducts[] to move the mined resources from the plasma bore to the core.\n\nHold down your finger for a second and drag to place multiple ducts.
onset.moremine = Expand the mining operation.\nPlace more Plasma Bores and use beam nodes and ducts to support them.\nMine 200 beryllium.
-onset.graphite = More complex blocks require \uf835 [accent]graphite[].\nSet up plasma bores to mine graphite.
-onset.research2 = Begin researching [accent]factories[].\nResearch the \uf74d [accent]cliff crusher[] and \uf779 [accent]silicon arc furnace[].
-onset.arcfurnace = The arc furnace needs \uf834 [accent]sand[] and \uf835 [accent]graphite[] to create \uf82f [accent]silicon[].\n[accent]Power[] is also required.
-onset.crusher = Use \uf74d [accent]cliff crushers[] to mine sand.
-onset.fabricator = Use [accent]units[] to explore the map, defend buildings, and attack the enemy. Research and place a \uf6a2 [accent]tank fabricator[].
+onset.graphite = More complex blocks require :graphite: [accent]graphite[].\nSet up plasma bores to mine graphite.
+onset.research2 = Begin researching [accent]factories[].\nResearch the :cliff-crusher: [accent]cliff crusher[] and :silicon-arc-furnace: [accent]silicon arc furnace[].
+onset.arcfurnace = The arc furnace needs :sand: [accent]sand[] and :graphite: [accent]graphite[] to create :silicon: [accent]silicon[].\n[accent]Power[] is also required.
+onset.crusher = Use :cliff-crusher: [accent]cliff crushers[] to mine sand.
+onset.fabricator = Use [accent]units[] to explore the map, defend buildings, and attack the enemy. Research and place a :tank-fabricator: [accent]tank fabricator[].
onset.makeunit = Produce a unit.\nUse the "?" button to see selected factory requirements.
-onset.turrets = Units are effective, but [accent]turrets[] provide better defensive capabilities if used effectively.\nPlace a \uf6eb [accent]Breach[] turret.\nTurrets require \uf748 [accent]ammo[].
+onset.turrets = Units are effective, but [accent]turrets[] provide better defensive capabilities if used effectively.\nPlace a :breach: [accent]Breach[] turret.\nTurrets require :beryllium: [accent]ammo[].
onset.turretammo = Supply the turret with [accent]beryllium ammo.[]
-onset.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace some \uf6ee [accent]beryllium walls[] around the turret.
+onset.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace some :beryllium-wall: [accent]beryllium walls[] around the turret.
onset.enemies = Enemy incoming, prepare to defend.
onset.defenses = [accent]Set up defenses:[lightgray] {0}
onset.attack = The enemy is vulnerable. Counter-attack.
-onset.cores = New cores can be placed on [accent]core tiles[].\nNew cores function as forward bases and share a resource inventory with other cores.\nPlace a \uf725 core.
+onset.cores = New cores can be placed on [accent]core tiles[].\nNew cores function as forward bases and share a resource inventory with other cores.\nPlace a :core-bastion: core.
onset.detect = The enemy will be able to detect you in 2 minutes.\nSet up defenses, mining, and production.
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.
@@ -2160,7 +2202,9 @@ block.vault.description = Stochează o mare cantitate de materiale de orice tip.
block.container.description = Stochează o mică cantitate de materiale de orice tip. Conținutul poate fi recuperat folosind un descărcător.
block.unloader.description = Descarcă materialele din orice bloc din apropiere, mai puțin cele de transport.
block.launch-pad.description = Lansează grămezi de materiale către sectoarele selectate.
-block.launch-pad.details = Sub-orbital system for point-to-point transportation of resources. Payload pods are fragile and incapable of surviving re-entry.
+block.advanced-launch-pad.description = Launches batches of items to selected sectors. Only accepts one item type at a time.
+block.advanced-launch-pad.details = Sub-orbital system for point-to-point transportation of resources.
+block.landing-pad.description = Receives items from launch pads in other sectors. Requires large amounts of water to protect against impacts of landings.
block.duo.description = Trage cu gloanțe alternante către inamici.
block.scatter.description = Trage cu bucățele de plumb, fier vechi sau metasticlă către aeronavele inamice.
block.scorch.description = Arde orice artilerie inamică din apropiere. Foarte eficient la distanță mică.
@@ -2267,6 +2311,7 @@ block.unit-cargo-loader.description = Constructs cargo drones. Drones automatica
block.unit-cargo-unload-point.description = Acts as an unloading point for cargo drones. Accepts items that match the selected filter.
block.beam-node.description = Transmits power to other blocks orthogonally. Stores a small amount of power.
block.beam-tower.description = Transmits power to other blocks orthogonally. Stores a large amount of power. Long-range.
+block.beam-link.description = Transmits power over vast distances.\nOnly capable of connecting to adjacent structures or other beam links.
block.turbine-condenser.description = Generates power when placed on vents. Produces a small amount of water.
block.chemical-combustion-chamber.description = Generates power from arkycite and ozone.
block.pyrolysis-generator.description = Generates large amounts of power from arkycite and slag. Produces water as a byproduct.
@@ -2357,6 +2402,7 @@ unit.emanate.description = Builds structures to defend the Acropolis core. Repai
lst.read = Citește un număr dintr-o celulă de memorie conectată.
lst.write = Scrie un număr într-o celulă de memorie conectată.
lst.print = Adaugă text în bufferul de tipărire.\nNu tipărește decât când se execută [accent]Print Flush[].
+lst.printchar = Add a UTF-16 character or content icon to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used.
lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example"
lst.draw = Adaugă o operație în bufferul de desenare.\nNu afișează decât când se execută [accent]Draw Flush[].
lst.drawflush = Afișează pe un monitor instrucțiunile [accent]Draw[] aflate în așteptare.
@@ -2444,6 +2490,7 @@ lenum.shootp = Lovește către o unitate/clădire. Anticipează viteza țintei
lenum.config = Configurația clădirii, de ex. materialul selectat pt Sortator.
lenum.enabled = Specifică dacă clădirea este pornită.
laccess.currentammotype = Current ammo item/liquid of a turret.
+laccess.memorycapacity = Number of cells in a memory block.
laccess.color = Culoarea iluminatorului.
laccess.controller = Controlorul unității. Dacă e controlată de procesor, returnează procesorul.\nDacă e într-o formație, returnează liderul.\nAltfel, returnează unitatea însăși.
@@ -2451,6 +2498,7 @@ laccess.dead = Specifică dacă o unitate sau clădire a murit/nu mai e validă.
laccess.controlled = Returnează:\n[accent]@ctrlProcessor[] dacă controlorul unității e procesor\n[accent]@ctrlPlayer[] dacă controlorul unității/clădirii e jucător\n[accent]@ctrlFormation[] dacă unitatea e într-o formație\nAltfel dă 0.
laccess.progress = Progresul acțiunii, de la 0 la 1.\nReturnează progresul producției, al construcției sau reîncărcarea armelor.
laccess.speed = Top speed of a unit, in tiles/sec.
+laccess.size = Size of a unit/building or the length of a string.
laccess.id = ID of a unit/block/item/liquid.\nThis is the inverse of the lookup operation.
lcategory.unknown = Unknown
lcategory.unknown.description = Uncategorized instructions.
@@ -2595,3 +2643,29 @@ lenum.autoscale = Whether to scale marker corresponding to player's zoom level.
lenum.posi = Indexed position, used for line and quad markers with index zero being the first position.
lenum.uvi = Texture's position ranging from zero to one, used for quad markers.
lenum.colori = Indexed position, used for line and quad markers with index zero being the first color.
+lenum.wavetimer = Whether the waves come automatically on a timer. If not, waves come when the play button is pressed.
+lenum.wave = Current wave number. Can be anything in non-wave modes.
+lenum.currentwavetime = Wave countdown in ticks.
+lenum.waves = Whether waves are spawnable at all.
+lenum.wavesending = Whether the waves can be manually summoned with the play button.
+lenum.attackmode = Determines if gamemode is attack mode.
+lenum.wavespacing = Time between waves in ticks.
+lenum.enemycorebuildradius = No-build zone around enemy core radius.
+lenum.dropzoneradius = Radius around enemy wave drop zones.
+lenum.unitcap = Base unit cap. Can still be increased by blocks.
+lenum.lighting = Whether ambient lighting is enabled.
+lenum.buildspeed = Multiplier for building speed.
+lenum.unithealth = How much health units start with.
+lenum.unitbuildspeed = How fast unit factories build units.
+lenum.unitcost = Multiplier of resources that units take to build.
+lenum.unitdamage = How much damage units deal.
+lenum.blockhealth = How much health blocks start with.
+lenum.blockdamage = How much damage blocks (turrets) deal.
+lenum.rtsminweight = Minimum "advantage" needed for a squad to attack. Higher -> more cautious.
+lenum.rtsminsquad = Minimum size of attack squads.
+lenum.maparea = Playable map area. Anything outside the area will not be interactable.
+lenum.ambientlight = Ambient light color. Used when lighting is enabled.
+lenum.solarmultiplier = Multiplies power output of solar panels.
+lenum.dragmultiplier = Environment drag multiplier.
+lenum.ban = Blocks or units that cannot be placed or built.
+lenum.unban = Unban a unit or block.
diff --git a/core/assets/bundles/bundle_ru.properties b/core/assets/bundles/bundle_ru.properties
index 9e0d94677d..bf2d2e6af7 100644
--- a/core/assets/bundles/bundle_ru.properties
+++ b/core/assets/bundles/bundle_ru.properties
@@ -36,7 +36,7 @@ load.scripts = Скрипты
be.update = Доступна новая сборка Bleeding Edge:
be.update.confirm = Загрузить её и перезапустить игру сейчас?
-be.updating = Обновляется…
+be.updating = Обновляется...
be.ignore = Игнорировать
be.noupdates = Обновления не найдены.
be.check = Проверить обновления
@@ -55,12 +55,12 @@ mods.browser.sortdate = Сортировка по дате изменения
mods.browser.sortstars = Сортировка по количеству звёзд
schematic = Схема
-schematic.add = Сохранить схему…
+schematic.add = Сохранить схему...
schematics = Схемы
-schematic.search = Поиск схем…
+schematic.search = Поиск схем...
schematic.replace = Схема с таким названием уже существует. Заменить её?
schematic.exists = Схема с таким названием уже существует.
-schematic.import = Импортировать схему…
+schematic.import = Импортировать схему...
schematic.exportfile = Экспортировать файл
schematic.importfile = Импортировать файл
schematic.browseworkshop = Просмотр Мастерской
@@ -131,6 +131,7 @@ feature.unsupported = Ваше устройство не поддерживае
mods.initfailed = [red]⚠[] Не удалось инициализировать предыдущий запуск Mindustry. Это могло быть вызвано неисправными модификациями.\n\nЧтобы предотвратить зацикленные вылеты игры, [red]все модификации были отключены.[]
mods = Модификации
+mods.name = Mod:
mods.none = [lightgray]Модификации не найдены!
mods.guide = Руководство по модификациям
mods.report = Доложить об ошибке
@@ -155,7 +156,7 @@ mod.erroredcontent = [scarlet]Ошибки содержимого
mod.circulardependencies = [red]Цикличные зависимости
mod.incompletedependencies = [red]Недопустимые или отсутствующие зависимости
mod.requiresversion.details = Требуется версия игры: [accent]{0}[]\nВаша игра устарела. Для работы этого мода требуется более новая версия игры (возможно, альфа/бета-версия).
-mod.outdatedv7.details = Этот мод несовместим с последней версией игры. Автор должен обновить его и добавить [accent]minGameVersion: 136[] в файл [accent]mod.json[].
+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 = Этот мод был вручную занесен в черный список из-за того, что он вызывал сбои или другие проблемы с текущей версией игры. Не используйте его.
mod.missingdependencies.details = Для этого мода отсутствуют зависимости: {0}
mod.erroredcontent.details = Этот мод вызвал ошибки при загрузке. Попросите автора мода исправить их.
@@ -165,7 +166,6 @@ mod.incompletedependencies.details = Этот мод не может быть з
mod.requiresversion = Требуется версия игры: [red]{0}
mod.errors = Ошибки были вызваны загружаемым содержимым.
mod.noerrorplay = [scarlet]У Вас есть модификации с ошибками.[] Выключите проблемные модификации или исправьте ошибки перед игрой.
-mod.nowdisabled = [scarlet]Модификации '{0}' требуются родительские модификации:[accent] {1}\n[lightgray]Сначала нужно загрузить их.\nЭта модификация будет автоматически отключена.
mod.enable = Вкл.
mod.requiresrestart = Теперь игра закроется, чтобы применить изменения в модификациях.
mod.reloadrequired = [scarlet]Необходим перезапуск
@@ -180,6 +180,15 @@ mod.missing = В этом сохранении есть следы модифи
mod.preview.missing = Перед публикацией этой модификации в Мастерской, вы должны добавить изображение предпросмотра.\nРазместите изображение с именем[accent] preview.png[] в папке модификации и попробуйте снова.
mod.folder.missing = Модификации могут быть опубликованы в Мастерской только в виде папки.\nЧтобы конвертировать любой мод в папку, просто извлеките его из архива и удалите старый архив .zip, затем перезапустите игру или перезагрузите модификации.
mod.scripts.disable = Ваше устройство не поддерживает модификации со скриптами. Отключите такие модификации, чтобы играть.
+mod.dependencies.error = [scarlet]Mods are missing dependencies
+mod.dependencies.soft = (optional)
+mod.dependencies.download = Import
+mod.dependencies.downloadreq = Import Required
+mod.dependencies.downloadall = Import All
+mod.dependencies.status = Import Results
+mod.dependencies.success = Successfully downloaded:
+mod.dependencies.failure = Failed to download:
+mod.dependencies.imported = This mod requires dependencies. Download?
about.button = Об игре
name = Имя:
@@ -211,7 +220,7 @@ players = Игроков: {0}
players.single = {0} игрок
players.search = поиск
players.notfound = [gray]игроки не найдены
-server.closing = [accent]Закрытие сервера…
+server.closing = [accent]Закрытие сервера...
server.kicked.kick = Вас выгнали с сервера!
server.kicked.whitelist = Вы не в белом списке сервера.
server.kicked.serverClose = Сервер закрыт.
@@ -229,13 +238,13 @@ server.kicked.customClient = Этот сервер не поддерживает
server.kicked.gameover = Игра окончена!
server.kicked.serverRestarting = Сервер перезапускается.
server.versions = Ваша версия:[accent] {0}[]\nВерсия сервера:[accent] {1}[]
-host.info = Кнопка [accent]Открыть сервер[] запускает сервер на порте [scarlet]6567[].\nЛюбой пользователь в той же [lightgray]локальной сети или WiFi[] должен увидеть ваш сервер в своём списке серверов.\n\nЕсли вы хотите, чтобы люди могли подключаться откуда угодно по IP, то требуется [accent]переадресация (проброс) портов[] и наличие [red]ВНЕШНЕГО[] WAN адреса (WAN адрес [red]НЕ должен[] начинаться с [red]10[][lightgray].x.x.x[], [red]100.64[][lightgray].x.x[], [red]172.16[][lightgray].x.x[], [red]192.168[][lightgray].x.x[], [red]127[][lightgray].x.x.x[])!\nКлиентам мобильных операторов нужно уточнять информацию в личном кабинете на сайте вашего оператора!\n\n[lightgray]Примечание: Если у кого-то возникают проблемы с подключением к вашей игре по локальной сети, убедитесь, что вы разрешили доступ Mindustry к вашей локальной сети в настройках брандмауэра. Обратите внимание, что публичные сети иногда не позволяют обнаружение сервера.
+host.info = Кнопка [accent]Открыть сервер[] запускает сервер на указанном порте.\nЛюбой пользователь в той же [lightgray]локальной сети или WiFi[] должен увидеть ваш сервер в своём списке серверов.\n\nЕсли вы хотите, чтобы люди могли подключаться откуда угодно по IP, то требуется [accent]переадресация (проброс) портов[] и наличие [red]ВНЕШНЕГО[] WAN адреса (WAN адрес [red]НЕ должен[] начинаться с [red]10[][lightgray].x.x.x[], [red]100.64[][lightgray].x.x[], [red]172.16[][lightgray].x.x[], [red]192.168[][lightgray].x.x[], [red]127[][lightgray].x.x.x[])!\nКлиентам мобильных операторов нужно уточнять информацию в личном кабинете на сайте вашего оператора!\n\n[lightgray]Примечание: Если у кого-то возникают проблемы с подключением к вашей игре по локальной сети, убедитесь, что вы разрешили доступ Mindustry к вашей локальной сети в настройках брандмауэра. Обратите внимание, что публичные сети иногда не позволяют обнаружение сервера.
join.info = Здесь вы можете ввести [accent]IP-адрес сервера[], найти доступные [accent]локальные[] и [accent]глобальные[] серверы для подключения.\nПоддерживаются оба многопользовательских режима: LAN и WAN.\n\n[lightgray]Если вы хотите подключиться к кому-то по IP-адресу, Вам нужно будет попросить IP-адрес у самого хоста. Хост может узнать IP-адрес своего устройства через Google запрос [accent]"my ip"[].
hostserver = Запустить многопользовательский сервер
invitefriends = Пригласить друзей
hostserver.mobile = Запустить сервер
host = Открыть сервер
-hosting = [accent]Открытие сервера…
+hosting = [accent]Открытие сервера...
hosts.refresh = Обновить
hosts.discovering = Поиск локальных игр
hosts.discovering.any = Поиск игр
@@ -257,17 +266,17 @@ trace = Отслеживать игрока
trace.playername = Имя игрока: [accent]{0}
trace.ip = IP: [accent]{0}
trace.id = ID: [accent]{0}
-trace.language = Language: [accent]{0}
+trace.language = Язык: [accent]{0}
trace.mobile = Мобильный клиент: [accent]{0}
trace.modclient = Пользовательский клиент: [accent]{0}
trace.times.joined = Присоединялся раз: [accent]{0}
trace.times.kicked = Был выгнан раз: [accent]{0}
-trace.ips = Все адреса:
-trace.names = Имена:
+trace.ips = Все IP:
+trace.names = Все имена:
invalidid = Недопустимый ID клиента! Отправьте отчёт об ошибке.
player.ban = Заблокировать
player.kick = Выгнать
-player.trace = Статистика
+player.trace = Отслеживать
player.admin = Переключить администратора
player.team = Сменить команду
server.bans = Блокировки
@@ -286,7 +295,7 @@ confirmkick = Вы действительно хотите выгнать игр
confirmunban = Вы действительно хотите разблокировать этого игрока?
confirmadmin = Вы действительно хотите сделать игрока «{0}[white]» администратором?
confirmunadmin = Вы действительно хотите убрать игрока «{0}[white]» из администраторов?
-votekick.reason = Причина
+votekick.reason = Причина голосования
votekick.reason.message = Вы уверены, что хотите голосованием выгнать "{0}[white]"?\nЕсли да, введите причину:
joingame.title = Присоединиться к игре
joingame.ip = IP:
@@ -295,10 +304,11 @@ disconnect.error = Ошибка соединения.
disconnect.closed = Соединение закрыто.
disconnect.timeout = Время ожидания истекло.
disconnect.data = Ошибка при загрузке данных мира!
+disconnect.snapshottimeout = Timed out while receiving UDP snapshots.\nThis may be caused by an unstable network or connection.
cantconnect = Не удаётся присоединиться к игре ([accent]{0}[]).
-connecting = [accent]Подключение…
-reconnecting = [accent]Переподключение…
-connecting.data = [accent]Загрузка данных мира…
+connecting = [accent]Подключение...
+reconnecting = [accent]Переподключение...
+connecting.data = [accent]Загрузка данных мира...
server.port = Порт:
server.invalidport = Неверный номер порта!
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!
@@ -350,17 +360,18 @@ command.rebuild = Восстанавливать
command.assist = Помогать игроку
command.move = Двигаться
command.boost = Лететь
-command.enterPayload = Enter Payload Block
-command.loadUnits = Load Units
-command.loadBlocks = Load Blocks
-command.unloadPayload = Unload Payload
+command.enterPayload = Войти в грузовой блок
+command.loadUnits = Загрузить единицы
+command.loadBlocks = Загрузить постройки
+command.unloadPayload = Выгрузить груз
command.loopPayload = Loop Unit Transfer
-stance.stop = Cancel Orders
-stance.shoot = Stance: Shoot
-stance.holdfire = Stance: Hold Fire
-stance.pursuetarget = Stance: Pursue Target
-stance.patrol = Stance: Patrol Path
-stance.ram = Stance: Ram\n[lightgray]Straight line movement, no pathfinding
+stance.stop = Отменить команду
+stance.shoot = Положение: Стрелять
+stance.holdfire = Положение: Удерживать огонь
+stance.pursuetarget = Положение: Преследовать цель
+stance.patrol = Положение: Патрулировать путь
+stance.ram = Положение: Таран\n[lightgray]Движение по прямой, без поиска пути
+
openlink = Открыть ссылку
copylink = Скопировать ссылку
back = Назад
@@ -376,9 +387,9 @@ data.exported = Данные экспортированы.
data.invalid = Эти игровые данные являются недействительными.
data.import.confirm = Импорт внешних данных сотрёт[scarlet] все[] ваши игровые данные.\n[accent]Это не может быть отменено![]\n\nКак только данные будут импортированы, ваша игра немедленно закроется.
quit.confirm = Вы уверены, что хотите выйти?
-loading = [accent]Загрузка…
+loading = [accent]Загрузка...
downloading = [accent]Скачивание...
-saving = [accent]Сохранение…
+saving = [accent]Сохранение...
respawn = [accent][[{0}][] для возрождения из ядра
cancelbuilding = [accent][[{0}][] для очистки плана
selectschematic = [accent][[{0}][] выделить и скопировать
@@ -392,8 +403,8 @@ wave = [accent]Волна {0}
wave.cap = [accent]Волна {0}/{1}
wave.waiting = [lightgray]Волна через {0}
wave.waveInProgress = [lightgray]Волна продолжается
-waiting = [lightgray]Ожидание…
-waiting.players = Ожидание игроков…
+waiting = [lightgray]Ожидание...
+waiting.players = Ожидание игроков...
wave.enemies = [lightgray]Враги: {0}
wave.enemycores = [lightgray]Вражеских ядер: [accent]{0}
wave.enemycore = [accent]{0}[lightgray] вражеское ядро
@@ -420,7 +431,7 @@ changelog = Список изменений (необязательно):
updatedesc = Перезаписать заголовок и описание
eula = Лицензионное соглашение Steam с конечным пользователем
missing = Этот предмет был удалён или перемещён.\n[lightgray]Публикация в Мастерской была автоматически удалена.
-publishing = [accent]Отправка…
+publishing = [accent]Отправка...
publish.confirm = Вы уверены, что хотите опубликовать этот предмет?\n\n[lightgray]Убедитесь, что вы согласны с EULA Мастерской, иначе ваши предметы не будут отображаться!
publish.error = Ошибка отправки предмета: {0}
steam.error = Не удалось инициализировать сервисы Steam.\nОшибка: {0}
@@ -441,12 +452,12 @@ editor.waves = Волны:
editor.rules = Правила:
editor.generation = Генерация:
editor.objectives = Цели
-editor.locales = Locale Bundles
-editor.worldprocessors = World Processors
-editor.worldprocessors.editname = Edit Name
-editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
-editor.worldprocessors.nospace = No free space to place a world processor!\nDid you fill the map with structures? Why would you do this?
-editor.worldprocessors.delete.confirm = Are you sure you want to delete this world processor?\n\nIf it is surrounded by walls, it will be replaced by an environmental wall.
+editor.locales = Наборы локалей
+editor.worldprocessors = Мировые процессоры
+editor.worldprocessors.editname = Изменить название
+editor.worldprocessors.none = [lightgray]Не найдено ни одного блока мирового процессора\nДобавьте его в редакторе карт или воспользуйтесь кнопкой "\ue813 Добавить" ниже.
+editor.worldprocessors.nospace = Нет свободного места для размещения мирового процессора!\n Возможно на карте всё занято структурами
+editor.worldprocessors.delete.confirm = Вы уверены, что хотите удалить этот мировой процессор?\n\nЕсли он окружен стенами, он будет заменен стеной окружения.
editor.ingame = Редактировать в игре
editor.playtest = Опробовать карту
editor.publish.workshop = Опубликовать в Мастерской
@@ -463,6 +474,7 @@ editor.shiftx = Сдвиг по X
editor.shifty = Сдвиг по Y
workshop = Мастерская
waves.title = Волны
+waves.team = Team
waves.remove = Удалить
waves.every = каждый
waves.waves = волна(ы)
@@ -477,7 +489,7 @@ waves.spawn.none = [scarlet]не обнаружено точек появлен
waves.max = максимум единиц
waves.guardian = Страж
waves.preview = Предварительный просмотр
-waves.edit = Редактировать…
+waves.edit = Редактировать...
waves.random = Случайно
waves.copy = Копировать в буфер обмена
waves.load = Загрузить из буфера обмена
@@ -498,14 +510,15 @@ waves.units.show = Показать все
wavemode.counts = количество единиц
wavemode.totals = всего единиц
wavemode.health = всего прочности
-all = All
+all = всего
editor.default = [lightgray]<По умолчанию>
-details = Подробности…
-edit = Редактировать…
+details = Подробности...
+edit = Редактировать...
variables = Переменные
-logic.clear.confirm = Are you sure you want to clear all code from this processor?
-logic.globals = Built-in Variables
+logic.clear.confirm = Вы уверены, что хотите удалить весь код из этого процессора?
+
+logic.globals = Встроенные переменные
editor.name = Название:
editor.spawn = Создать боевую единицу
editor.removeunit = Удалить боевую единицу
@@ -517,7 +530,7 @@ editor.errorlegacy = Эта карта слишком старая и испол
editor.errornot = Это не файл карты.
editor.errorheader = Этот файл карты недействителен или повреждён.
editor.errorname = Карта не имеет имени. Может быть, вы пытаетесь загрузить сохранение?
-editor.errorlocales = Error reading invalid locale bundles.
+editor.errorlocales = Ошибка при чтении недопустимых наборов локалей.
editor.update = Обновить
editor.randomize = Случайно
editor.moveup = Выше
@@ -529,19 +542,19 @@ editor.sectorgenerate = Генерация сектора
editor.resize = Изменить\nразмер
editor.loadmap = Загрузить\nкарту
editor.savemap = Сохранить\nкарту
-editor.savechanges = [scarlet]You have unsaved changes!\n\n[]Do you want to save them?
+editor.savechanges = [scarlet]У вас есть несохраненные изменения!\n\n[]Вы хотите сохранить их?
editor.saved = Сохранено!
editor.save.noname = У вашей карты нет имени! Назовите её в меню «Информация о карте».
editor.save.overwrite = Ваша карта не может быть записана поверх встроенной карты! Введите другое название в меню «Информация о карте»
editor.import.exists = [scarlet]Не удалось импортировать:[] карта с именем «{0}» уже существует!
-editor.import = Импорт…
+editor.import = Импорт...
editor.importmap = Импортировать карту
editor.importmap.description = Импортировать уже существующую карту
editor.importfile = Импортировать файл
editor.importfile.description = Импортировать файл карты извне
editor.importimage = Импортировать файл изображения
editor.importimage.description = Импортировать изображение карты извне
-editor.export = Экспорт…
+editor.export = Экспорт...
editor.exportfile = Экспортировать файл
editor.exportfile.description = Экспорт файла карты
editor.exportimage = Экспортировать ландшафт
@@ -565,11 +578,11 @@ toolmode.orthogonal.description = Рисует только\nпрямоугол
toolmode.square = Квадрат
toolmode.square.description = Квадратная кисть.
toolmode.eraseores = Стереть руды
-toolmode.eraseores.description = Стереть только руды.
+toolmode.eraseores.description = Стирает только руды.
toolmode.fillteams = Изменить команду блоков
toolmode.fillteams.description = Изменяет принадлежность\nблоков к команде.
-toolmode.fillerase = Стереть тип
-toolmode.fillerase.description = Стирает все блоки этого типа.
+toolmode.fillerase = Стереть заливкой
+toolmode.fillerase.description = Стирает все блоки\nодного типа.
toolmode.drawteams = Изменить команду блока
toolmode.drawteams.description = Изменяет принадлежность\nблока к команде.
toolmode.underliquid = Под жидкостями
@@ -593,7 +606,7 @@ filter.clear = Очистить
filter.option.ignore = Игнорировать
filter.scatter = Сеятель
filter.terrain = Ландшафт
-filter.logic = Logic
+filter.logic = Логика
filter.option.scale = Масштаб фильтра
filter.option.chance = Шанс
@@ -617,25 +630,25 @@ filter.option.floor2 = Вторая поверхность
filter.option.threshold2 = Вторичный предельный порог
filter.option.radius = Радиус
filter.option.percentile = Процентиль
-filter.option.code = Code
-filter.option.loop = Loop
-locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
-locales.deletelocale = Are you sure you want to delete this locale bundle?
-locales.applytoall = Apply Changes To All Locales
-locales.addtoother = Add To Other Locales
-locales.rollback = Rollback to last applied
-locales.filter = Property filter
-locales.searchname = Search name...
-locales.searchvalue = Search value...
-locales.searchlocale = Search locale...
-locales.byname = By name
-locales.byvalue = By value
-locales.showcorrect = Show properties that are present in all locales and have unique values everywhere
-locales.showmissing = Show properties that are missing in some locales
-locales.showsame = Show properties that have same values in different locales
-locales.viewproperty = View in all locales
-locales.viewing = Viewing property "{0}"
-locales.addicon = Add Icon
+filter.option.code = Код
+filter.option.loop = Цикл
+locales.info = Здесь вы можете добавить на карту наборы локалей для определенных языков. В наборах локалей каждое свойство имеет имя и значение. Эти свойства могут использоваться мировыми процессорами и целями по их именам. Они поддерживают форматирование текста (заменяя пропуски реальными значениями).\n\n[cyan]Пример свойства:\n[]name: [accent]timer[]\nvalue: [accent]Пример таймера, оставшееся время: {0}[]\n\n[cyan]Использование:\n[]Установите его как текст цели: [accent]@timer\n\n[]Введите его в мировом процессоре:\n[accent]localeprint «timer»\nformat time\n[gray] (где time - отдельно вычисляемая переменная)
+locales.deletelocale = Вы уверены, что хотите удалить этот набор локалей?
+locales.applytoall = Применить изменения ко всем локалям
+locales.addtoother = Добавить в другие локали
+locales.rollback = Откат к последнему примененному значению
+locales.filter = Фильтр свойств
+locales.searchname = Поиск по имени...
+locales.searchvalue = Поиск значения...
+locales.searchlocale = Поиск локали...
+locales.byname = По имени
+locales.byvalue = По значению
+locales.showcorrect = Показать свойства, которые присутствуют во всех локалях и имеют везде уникальные значения
+locales.showmissing = Показать свойства, отсутствующие в некоторых локалях
+locales.showsame = Показать свойства, которые имеют одинаковые значения в разных локалях
+locales.viewproperty = Смотреть во всех локалях
+locales.viewing = Просмотр свойства "{0}"
+locales.addicon = Добавить иконку
width = Ширина:
height = Высота:
@@ -685,12 +698,12 @@ objective.destroycore.name = Уничтожить ядро
objective.commandmode.name = Командовать единицей
objective.flag.name = Флаг
marker.shapetext.name = Фигура с текстом
-marker.point.name = Point
+marker.point.name = Точка
marker.shape.name = Фигура
marker.text.name = Текст
-marker.line.name = Line
-marker.quad.name = Quad
-marker.texture.name = Texture
+marker.line.name = Линия
+marker.quad.name = Четырёхугольник
+marker.texture.name = Текстура
marker.background = Фон
marker.outline = Контур
objective.research = [accent]Исследуйте:\n[]{0}[lightgray]{1}
@@ -714,14 +727,18 @@ loadout = Груз
resources = Ресурсы
resources.max = Максимум
bannedblocks = Запрещённые блоки
+unbannedblocks = Unbanned Blocks
objectives = Цели
bannedunits = Запрещённые единицы
+unbannedunits = Unbanned Units
bannedunits.whitelist = Запрещенные единицы как белый список
bannedblocks.whitelist = Запрещенные блоки как белый список
addall = Добавить всё
launch.from = Запуск из: [accent]{0}
launch.capacity = Вместимость запускаемого предмета: [accent]{0}
launch.destination = Место назначения: {0}
+landing.sources = Source Sectors: [accent]{0}[]
+landing.import = Max Total Import: {0}[accent]{1}[lightgray]/min
configure.invalid = Количество должно быть числом между 0 и {0}.
add = Добавить...
guardian = Страж
@@ -761,7 +778,9 @@ sectors.stored = Накоплено:
sectors.resume = Продолжить
sectors.launch = Высадка
sectors.select = Выбор
+sectors.launchselect = Select Launch Destination
sectors.nonelaunch = [lightgray]нет (солнце)
+sectors.redirect = Redirect Launch Pads
sectors.rename = Переименовать сектор
sectors.enemybase = [scarlet]Вражеская база
sectors.vulnerable = [scarlet]Уязвим
@@ -776,8 +795,8 @@ sector.curlost = Сектор потерян
sector.missingresources = [scarlet]Недостаточно ресурсов для высадки
sector.attacked = Сектор [accent]{0}[white] атакован!
sector.lost = Сектор [accent]{0}[white] потерян!
-sector.capture = Sector [accent]{0}[white]Captured!
-sector.capture.current = Sector Captured!
+sector.capture = Сектор [accent]{0}[white] захвачен!
+sector.capture.current = Сектор захвачен!
sector.changeicon = Изменить иконку
sector.noswitch.title = Перемещение между секторами
sector.noswitch = Вы не можете переключаться между секторами, пока существующий сектор находится под атакой.\n\nСектор: [accent]{0}[] на [accent]{1}[]
@@ -789,10 +808,14 @@ threat.high = Высокая
threat.extreme = Экстремальная
threat.eradication = Истребляющая
difficulty.casual = Casual
-difficulty.easy = Easy
-difficulty.normal = Normal
-difficulty.hard = Hard
-difficulty.eradication = Eradication
+difficulty.easy = Лёгкая
+difficulty.normal = Нормальная
+difficulty.hard = Сложная
+difficulty.eradication = Истребляющая
+difficulty.enemyHealthMultiplier = Enemy Health: {0}
+difficulty.enemySpawnMultiplier = Enemy Amount: {0}
+difficulty.waveTimeMultiplier = Wave Timer: {0}
+difficulty.nomodifiers = [lightgray](No modifiers)
planets = Планеты
@@ -829,7 +852,7 @@ sector.weatheredChannels.name = Weathered Channels
sector.mycelialBastion.name = Mycelial Bastion
sector.frontier.name = Frontier
-sector.groundZero.description = Оптимальная локация для повторных игр. Низкая вражеская угроза. Немного ресурсов.\nСоберите как можно больше свинца и меди.\nДвигайтесь дальше.
+sector.groundZero.description = Оптимальная локация чтобы начать сначала. Низкая вражеская угроза. Немного ресурсов.\nСоберите как можно больше свинца и меди.\nДвигайтесь дальше.
sector.frozenForest.description = Даже здесь, ближе к горам, споры распространились. Холодные температуры не могут сдерживать их вечно.\n\nНачните вкладываться в энергию. Постройте генераторы внутреннего сгорания. Научитесь пользоваться регенератором.
sector.saltFlats.description = На окраине пустыни лежат соляные равнины. В этой местности можно найти немного ресурсов.\n\nВраги возвели здесь комплекс хранения ресурсов. Искорените их ядро. Не оставьте камня на камне.
sector.craters.description = Вода скопилась в этом кратере, реликвии времён старых войн. Восстановите область. Соберите песок. Выплавьте метастекло. Качайте воду для охлаждения турелей и буров.
@@ -920,7 +943,7 @@ settings.controls = Управление
settings.game = Игра
settings.sound = Звук
settings.graphics = Графика
-settings.cleardata = Очистить игровые данные…
+settings.cleardata = Очистить игровые данные...
settings.clear.confirm = Вы действительно хотите очистить свои данные?\nЭто нельзя отменить!
settings.clearall.confirm = [scarlet]ОСТОРОЖНО![]\nЭто сотрёт все данные, включая сохранения, карты, прогресс кампании и настройки управления.\nПосле того как вы нажмёте [accent][ОК][], игра уничтожит все данные и автоматически закроется.
settings.clearsaves.confirm = Вы уверены, что хотите удалить все сохранения?
@@ -1015,7 +1038,7 @@ stat.abilities = Способности
stat.canboost = Может взлететь
stat.flying = Летающий
stat.ammouse = Использование боеприпасов
-stat.ammocapacity = Ammo Capacity
+stat.ammocapacity = Вместимость боеприпасов
stat.damagemultiplier = Множитель урона
stat.healthmultiplier = Множитель прочности
stat.speedmultiplier = Множитель скорости
@@ -1024,52 +1047,55 @@ stat.buildspeedmultiplier = Множитель скорости строител
stat.reactive = Реактивен
stat.immunities = Невосприимчив
stat.healing = Ремонт
+stat.efficiency = [stat]{0}% Efficiency
ability.forcefield = Силовое поле
-ability.forcefield.description = Projects a force shield that absorbs bullets
+ability.forcefield.description = Создает силовой щит, поглощающий пули
ability.repairfield = Ремонтирующее поле
-ability.repairfield.description = Repairs nearby units
+ability.repairfield.description = Ремонтирует близлежащие единицы
ability.statusfield = Усиливающее поле
-ability.statusfield.description = Applies a status effect to nearby units
+ability.statusfield.description = Накладывает эффект на ближайшие единицы
ability.unitspawn = Завод единиц �
-ability.unitspawn.description = Constructs units
+ability.unitspawn.description = Конструирует единицы
ability.shieldregenfield = Поле восстановления щита
-ability.shieldregenfield.description = Regenerates shields of nearby units
+ability.shieldregenfield.description = Восстанавливает щиты ближайших юнитов
ability.movelightning = Молнии при движении
-ability.movelightning.description = Releases lightning while moving
-ability.armorplate = Armor Plate
-ability.armorplate.description = Reduces damage taken while shooting
+ability.movelightning.description = Выпускает молнии при движении
+ability.armorplate = Бронепластина
+ability.armorplate.description = Снижает урон, получаемый при стрельбе
ability.shieldarc = Дуговой щит
-ability.shieldarc.description = Projects a force shield in an arc that absorbs bullets
+ability.shieldarc.description = Выпускает силовой щит по дуге, поглощающий пули
ability.suppressionfield = Поле подавления регенерации
-ability.suppressionfield.description = Stops nearby repair buildings
+ability.suppressionfield.description = Останавливает ремонтные здания
ability.energyfield = Энергетическое поле
-ability.energyfield.description = Zaps nearby enemies
-ability.energyfield.healdescription = Zaps nearby enemies and heals allies
-ability.regen = Regeneration
-ability.regen.description = Regenerates own health over time
-ability.liquidregen = Liquid Absorption
-ability.liquidregen.description = Absorbs liquid to heal itself
-ability.spawndeath = Death Spawns
-ability.spawndeath.description = Releases units on death
-ability.liquidexplode = Death Spillage
-ability.liquidexplode.description = Spills liquid on death
-ability.stat.firingrate = [stat]{0}/sec[lightgray] firing rate
-ability.stat.regen = [stat]{0}[lightgray] health/sec
+ability.energyfield.description = Электризует ближайших врагов
+ability.energyfield.healdescription = Электризует ближайших врагов и лечит союзников
+ability.regen = Регенерация
+ability.regen.description = Восстанавливает собственное здоровье с течением времени
+ability.liquidregen = Поглощение жидкости
+ability.liquidregen.description = Поглощает жидкость для самовосстановления
+ability.spawndeath = Смертельное порождение
+ability.spawndeath.description = Создает единицы после смерти
+ability.liquidexplode = Смертельное разлитие
+ability.liquidexplode.description = Разливает жидкость при смерти
+ability.stat.firingrate = [stat]{0}/сек[lightgray] темп стрельбы
+ability.stat.regen = [stat]{0}[lightgray] здоровья/сек
ability.stat.pulseregen = [stat]{0}[lightgray] health/pulse
-ability.stat.shield = [stat]{0}[lightgray] shield
-ability.stat.repairspeed = [stat]{0}/sec[lightgray] repair speed
-ability.stat.slurpheal = [stat]{0}[lightgray] health/liquid unit
-ability.stat.cooldown = [stat]{0} sec[lightgray] cooldown
-ability.stat.maxtargets = [stat]{0}[lightgray] max targets
-ability.stat.sametypehealmultiplier = [stat]{0}%[lightgray] same type repair amount
-ability.stat.damagereduction = [stat]{0}%[lightgray] damage reduction
-ability.stat.minspeed = [stat]{0} tiles/sec[lightgray] min speed
-ability.stat.duration = [stat]{0} sec[lightgray] duration
-ability.stat.buildtime = [stat]{0} sec[lightgray] build time
+ability.stat.shield = [stat]{0}[lightgray] щит
+ability.stat.repairspeed = [stat]{0}/sec[lightgray] скорость регенерации
+ability.stat.slurpheal = [stat]{0}[lightgray] здоровья/единица жидкости
+ability.stat.cooldown = [stat]{0} сек[lightgray] перезарядка
+ability.stat.maxtargets = [stat]{0}[lightgray] максимум целей
+ability.stat.sametypehealmultiplier = [stat]{0}%[lightgray] тот же тип ремонта
+ability.stat.damagereduction = [stat]{0}%[lightgray] снижение урона
+ability.stat.minspeed = [stat]{0} плиток/сек[lightgray] минимальная скорость
+ability.stat.duration = [stat]{0} сек[lightgray] продолжительность
+ability.stat.buildtime = [stat]{0} сек[lightgray] время постройки
+
bar.onlycoredeposit = Доступен перенос только в ядро
bar.drilltierreq = Требуется бур получше
+bar.nobatterypower = Insufficieny Battery Power
bar.noresources = Недостаточно ресурсов
bar.corereq = Требуется основа ядра
bar.corefloor = Требуется зона ядра
@@ -1078,6 +1104,7 @@ bar.drillspeed = Скорость бурения: {0}/с
bar.pumpspeed = Скорость выкачивания: {0}/с
bar.efficiency = Эффективность: {0}%
bar.boost = Ускорение: +{0}%
+bar.powerbuffer = Battery Power: {0}/{1}
bar.powerbalance = Энергия: {0}/с
bar.powerstored = Накоплено: {0}/{1}
bar.poweramount = Энергия: {0}
@@ -1088,6 +1115,7 @@ bar.capacity = Вместимость: {0}
bar.unitcap = {0} {1}/{2}
bar.liquid = Жидкости
bar.heat = Нагрев
+bar.cooldown = Cooldown
bar.instability = Нестабильность
bar.heatamount = Нагрев: {0}
bar.heatpercent = Нагрев: {0} ({1}%)
@@ -1112,6 +1140,7 @@ bullet.interval = [stat]{0}/сек[lightgray] интервальный(ых) с
bullet.frags = [stat]{0}[lightgray]x осколочный(ых) снаряд(ов):
bullet.lightning = [stat]{0}[lightgray]x молнии ~ [stat]{1}[lightgray] урона
bullet.buildingdamage = [stat]{0}%[lightgray] урона по постройкам
+bullet.shielddamage = [stat]{0}%[lightgray] shield damage
bullet.knockback = [stat]{0}[lightgray] отбрасывания
bullet.pierce = [stat]{0}[lightgray]x пробития
bullet.infinitepierce = [stat]бесконечное пробитие
@@ -1138,13 +1167,14 @@ unit.minutes = мин
unit.persecond = /сек
unit.perminute = /мин
unit.timesspeed = x скорость
+unit.multiplier = x
unit.percent = %
unit.shieldhealth = прочность щита
unit.items = предметов
unit.thousands = к
unit.millions = М
unit.billions = кM
-unit.shots = shots
+unit.shots = выстрелы
unit.pershot = /выстрел
category.purpose = Назначение
category.general = Основные
@@ -1154,8 +1184,9 @@ category.items = Предметы
category.crafting = Ввод/вывод
category.function = Действие
category.optional = Дополнительные улучшения
-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 = Всегда играть музыку
+setting.alwaysmusic.description = Если включить эту функцию, музыка всегда будет воспроизводиться в игре по кругу.\nЕсли выключить, она будет воспроизводиться только через случайные промежутки времени.
+
setting.skipcoreanimation.name = Пропускать анимацию запуска/приземления ядра
setting.landscape.name = Только альбомный (горизонтальный) режим
setting.shadows.name = Тени
@@ -1167,7 +1198,7 @@ setting.backgroundpause.name = Фоновая пауза
setting.buildautopause.name = Автоматическая приостановка строительства
setting.doubletapmine.name = Добыча руды двойным нажатием
setting.commandmodehold.name = Удерживать для командования боевыми единицами
-setting.distinctcontrolgroups.name = Limit One Control Group Per Unit
+setting.distinctcontrolgroups.name = Ограничение на одну контрольную группу на единицу
setting.modcrashdisable.name = Отключение модификаций после вылета при запуске
setting.animatedwater.name = Анимированные поверхности
setting.animatedshields.name = Анимированные щиты
@@ -1214,11 +1245,13 @@ setting.mutemusic.name = Заглушить музыку
setting.sfxvol.name = Громкость эффектов
setting.mutesound.name = Заглушить звук
setting.crashreport.name = Отправлять анонимные отчёты о вылетах
+setting.communityservers.name = Fetch Community Server List
setting.savecreate.name = Автоматическое создание сохранений
-setting.steampublichost.name = Public Game Visibility
+setting.steampublichost.name = Видимость публичной игры
setting.playerlimit.name = Ограничение игроков
setting.chatopacity.name = Непрозрачность чата
setting.lasersopacity.name = Непрозрачность лазеров энергоснабжения
+setting.unitlaseropacity.name = Unit Mining Beam Opacity
setting.bridgeopacity.name = Непрозрачность мостов
setting.playerchat.name = Отображать облака чата над игроками
setting.showweather.name = Отображать погоду
@@ -1227,23 +1260,26 @@ setting.macnotch.name = Адаптировать интерфейс к выре
setting.macnotch.description = Для вступления изменений в силу требуется перезагрузка игры
steam.friendsonly = Только друзья
steam.friendsonly.tooltip = Только ли друзья из Steam могут присоединяться к вашей игре.\nУбрав эту галочку, вы сделаете вашу игру публичной - присоединиться сможет любой желающий.
+setting.maxmagnificationmultiplierpercent.name = Min Camera Distance
+setting.minmagnificationmultiplierpercent.name = Max Camera Distance
+setting.minmagnificationmultiplierpercent.description = High values may cause performance issues.
public.beta = Имейте в виду, что бета-версия игры не может делать игры публичными.
-uiscale.reset = Масштаб пользовательского интерфейса был изменён.\nНажмите «ОК» для подтверждения этого масштаба.\n[scarlet]Возврат настроек и выход через[accent] {0}[] секунд…
+uiscale.reset = Масштаб пользовательского интерфейса был изменён.\nНажмите «ОК» для подтверждения этого масштаба.\n[scarlet]Возврат настроек и выход через[accent] {0}[] секунд...
uiscale.cancel = Отменить & Выйти
setting.bloom.name = Свечение
keybind.title = Настройка управления
keybinds.mobile = [scarlet]Большинство комбинаций клавиш здесь не работает на мобильных устройствах. Поддерживается только базовое движение.
category.general.name = Основное
category.view.name = Просмотр
-category.command.name = Unit Command
+category.command.name = Командование единицой
category.multiplayer.name = Сетевая игра
category.blocks.name = Выбор блока
placement.blockselectkeys = \n[lightgray]Клавиша: [{0},
keybind.respawn.name = Возрождение в ядре
keybind.control.name = Перехватить контроль над единицей
keybind.clear_building.name = Очистить план строительства
-keybind.press = Нажмите клавишу…
-keybind.press.axis = Нажмите ось или клавишу…
+keybind.press = Нажмите клавишу...
+keybind.press.axis = Нажмите ось или клавишу...
keybind.screenshot.name = Скриншот карты
keybind.toggle_power_lines.name = Отображение лазеров энергоснабжения
keybind.toggle_block_status.name = Отображение статусов блоков
@@ -1307,6 +1343,7 @@ keybind.shoot.name = Выстрел
keybind.zoom.name = Масштабирование
keybind.menu.name = Меню
keybind.pause.name = Пауза
+keybind.skip_wave.name = Skip Wave
keybind.pause_building.name = Приостановить/возобновить строительство
keybind.minimap.name = Мини-карта
keybind.planet_map.name = Карта планеты
@@ -1374,12 +1411,14 @@ rules.unitcostmultiplier = Множитель стоимости боев. ед.
rules.unithealthmultiplier = Множитель прочности боев. ед.
rules.unitdamagemultiplier = Множитель урона боев. ед.
rules.unitcrashdamagemultiplier = Множитель урона от падения боев. ед.
+rules.unitminespeedmultiplier = Unit Mine Speed Multiplier
rules.solarmultiplier = Множитель солнечной энергии
rules.unitcapvariable = Ядра увеличивают лимит единиц
rules.unitpayloadsexplode = Carried Payloads Explode With The Unit
rules.unitcap = Начальный лимит единиц
rules.limitarea = Ограничить область карты
rules.enemycorebuildradius = Радиус защиты враж. ядер:[lightgray] (блок.)
+rules.extracorebuildradius = Extra No-Build Radius:[lightgray] (tiles)
rules.wavespacing = Интервал волн:[lightgray] (сек)
rules.initialwavespacing = Время до первой волны:[lightgray] (сек)
rules.buildcostmultiplier = Множитель затрат на строительство
@@ -1401,9 +1440,13 @@ rules.title.teams = Команды
rules.title.planet = Планета
rules.lighting = Освещение
rules.fog = Туман войны
-rules.invasions = Enemy Sector Invasions
-rules.showspawns = Show Enemy Spawns
-rules.randomwaveai = Unpredictable Wave AI
+rules.invasions = Вторжения врагов на сектора
+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 = Показывать появление врагов
+rules.randomwaveai = Непредсказуемый ИИ волн
+
rules.fire = Огонь
rules.anyenv = <Любая>
rules.explosions = Урон от взрывов блоков/единиц
@@ -1720,6 +1763,8 @@ block.meltdown.name = Испепелитель
block.foreshadow.name = Знамение
block.container.name = Контейнер
block.launch-pad.name = Пусковая площадка
+block.advanced-launch-pad.name = Launch Pad
+block.landing-pad.name = Landing Pad
block.segment.name = Сегмент
block.ground-factory.name = Наземная фабрика
block.air-factory.name = Воздушная фабрика
@@ -1775,6 +1820,8 @@ block.arkyic-vent.name = Аркическое жерло
block.yellow-stone-vent.name = Жёлтокаменное жерло
block.red-stone-vent.name = Краснокаменное жерло
block.crystalline-vent.name = Кристаллическое жерло
+block.stone-vent.name = Stone Vent
+block.basalt-vent.name = Basalt Vent
block.redmat.name = Красная земля
block.bluemat.name = Синяя земля
block.core-zone.name = Зона ядра
@@ -1928,51 +1975,51 @@ hint.respawn = Чтобы заново появиться в корабле, н
hint.respawn.mobile = Вы переключили управление единицей/постройкой. Чтобы заново появиться в корабле, [accent]нажмите на аватар слева сверху.[]
hint.desktopPause = Нажмите [accent][[Пробел][] для приостановки и возобновления игры.
hint.breaking = Выделите блоки в рамку [accent]правой кнопкой мыши[], чтобы разобрать их.
-hint.breaking.mobile = Активируйте \ue817 [accent]молоток[] в правом нижнем углу и нажимайте на блоки, чтобы разобрать их. Удерживайте палец в течение секунды и переместите, чтобы разобрать выделением.
+hint.breaking.mobile = Активируйте :hammer: [accent]молоток[] в правом нижнем углу и нажимайте на блоки, чтобы разобрать их. Удерживайте палец в течение секунды и переместите, чтобы разобрать выделением.
hint.blockInfo = Для просмотра информации о блоке, выберите его в [accent]меню строительства[], затем нажмите на кнопку [accent][[?][] справа.
hint.derelict = [accent]Покинутые[] постройки - это остатки старых баз, которые больше не функционируют.\n\nОни могут быть [accent]разобраны[] для получения ресурсов.
-hint.research = Используйте кнопку \ue875 [accent]Исследований[], чтобы исследовать новые технологии.
-hint.research.mobile = Используйте кнопку \ue875 [accent]Исследований[] в \ue88c [accent]Меню[], чтобы исследовать новые технологии.
+hint.research = Используйте кнопку :tree: [accent]Исследований[], чтобы исследовать новые технологии.
+hint.research.mobile = Используйте кнопку :tree: [accent]Исследований[] в :menu: [accent]Меню[], чтобы исследовать новые технологии.
hint.unitControl = Зажмите [accent][[Л-Ctrl][] и [accent]нажмите левую кнопку мыши[], чтобы контролировать дружественные единицы и турели.
hint.unitControl.mobile = [accent]Дважды коснитесь[], чтобы контролировать дружественные единицы и турели.
hint.unitSelectControl = Чтобы управлять боевыми единицами, войдите в [accent]режим командования[], зажав [accent]L-shift.[]\nВ режиме комадования, нажмите и перетаскивайте для выбора боевых единиц. Нажмите [accent]правой кнопкой мыши[] по месту или цели, чтобы отправить их туда.
hint.unitSelectControl.mobile = Чтобы управлять боевыми единицами, войдите в [accent]режим командования[], нажав на кнопку [accent]"Командовать"[] внизу слева.\nВ режиме командования, зажмите и перетаскивайте для выбора боевых единиц. Нажмите пальцем по месту или цели, чтобы отправить их туда.
-hint.launch = Как только будет собрано достаточно ресурсов, вы сможете осуществить [accent]Запуск[], выбрав близлежащие секторы на \ue827 [accent]Карте[] из правого нижнего угла.
-hint.launch.mobile = Как только будет собрано достаточно ресурсов, вы сможете осуществить [accent]Запуск[], выбрав близлежащие секторы на \ue827 [accent]Карте[] в \ue88c [accent]Меню[].
+hint.launch = Как только будет собрано достаточно ресурсов, вы сможете осуществить [accent]Запуск[], выбрав близлежащие секторы на :map: [accent]Карте[] из правого нижнего угла.
+hint.launch.mobile = Как только будет собрано достаточно ресурсов, вы сможете осуществить [accent]Запуск[], выбрав близлежащие секторы на :map: [accent]Карте[] в :menu: [accent]Меню[].
hint.schematicSelect = Зажмите [accent][[F][] и переместите, чтобы выбрать блоки для копирования и вставки.\n\nЩелкните [accent][[колёсиком][] по блоку для копирования.
hint.rebuildSelect = Удерживайте [accent][[B][] и перетаскивайте, чтобы выбрать уничтоженные блоки.\nОни будут перестроены автоматически.
-hint.rebuildSelect.mobile = Выберите кнопку \ue874 копирования, затем нажмите кнопку \ue80f перестройки, и проведите для выбора уничтоженных блоков.\nЭто перестроит их автоматически.
+hint.rebuildSelect.mobile = Выберите кнопку :copy: копирования, затем нажмите кнопку :wrench: перестройки, и проведите для выбора уничтоженных блоков.\nЭто перестроит их автоматически.
hint.conveyorPathfind = Удерживайте [accent][[Л-Ctrl][] при размещении конвейеров для автоматической прокладки пути.
-hint.conveyorPathfind.mobile = Включите \ue844 [accent]диагональный режим[] и перетащите конвейеры для автоматической прокладки пути.
+hint.conveyorPathfind.mobile = Включите :diagonal: [accent]диагональный режим[] и перетащите конвейеры для автоматической прокладки пути.
hint.boost = Удерживайте [accent][[Л-Shift][], чтобы пролететь над препятствиями при помощи вашей единицы.\n\nТолько некоторые наземные единицы могут взлетать.
hint.payloadPickup = Нажмите [accent][[[], чтобы подобрать маленькие блоки или единицы.
hint.payloadPickup.mobile = [accent]Нажмите и удерживайте[] палец на маленьком блоке или единице, чтобы подобрать их.
hint.payloadDrop = Нажмите [accent]][], чтобы сбросить груз.
hint.payloadDrop.mobile = [accent]Нажмите и удерживайте[] палец на пустой локации, чтобы сбросить туда груз.
hint.waveFire = Турели [accent]Волна[] при подаче воды будут автоматически тушить пожары вокруг.
-hint.generator = \uf879 [accent]Генераторы внутреннего сгорания[] сжигают уголь и передают энергию рядом стоящим блокам.\n\nДальность передачи энергии может быть увеличена при помощи \uf87f [accent]силовых узлов[].
-hint.guardian = [accent]Стражи[] бронированы. Слабые боеприпасы, такие как [accent]медь[] и [accent]свинец[], [scarlet]не эффективны[].\n\nИспользуйте турели высокого уровня или \uf835 [accent]графитные[] боеприпасы в \uf861двойных турелях/\uf859залпах, чтобы уничтожить Стража.
-hint.coreUpgrade = Ядра могут быть улучшены путем [accent]размещения над ними ядер более высокого уровня[].\n\nПоместите ядро \uf868 [accent]Штаб[] поверх ядра \uf869 [accent]Осколок[]. Убедитесь, что никакие препятствия не мешают ему.
+hint.generator = :combustion-generator: [accent]Генераторы внутреннего сгорания[] сжигают уголь и передают энергию рядом стоящим блокам.\n\nДальность передачи энергии может быть увеличена при помощи :power-node: [accent]силовых узлов[].
+hint.guardian = [accent]Стражи[] бронированы. Слабые боеприпасы, такие как [accent]медь[] и [accent]свинец[], [scarlet]не эффективны[].\n\nИспользуйте турели высокого уровня или :graphite: [accent]графитные[] боеприпасы в :duo:двойных турелях/:salvo:залпах, чтобы уничтожить Стража.
+hint.coreUpgrade = Ядра могут быть улучшены путем [accent]размещения над ними ядер более высокого уровня[].\n\nПоместите ядро :core-foundation: [accent]Штаб[] поверх ядра :core-shard: [accent]Осколок[]. Убедитесь, что никакие препятствия не мешают ему.
hint.presetLaunch = В серые [accent]секторы с посадочными зонами[], такие как [accent]Ледяной лес[], можно запускаться из любого места. Они не требуют захвата близлежащей территории.\n\n[accent]Нумерованные секторы[], такие как этот, [accent]не обязательны[] для прохождения.
hint.presetDifficulty = У этого сектора [scarlet]высокий уровень угрозы[].\nЗапуск на такие сектора [accent]не рекомендуется[] без достаточных технологий и подготовки.
hint.coreIncinerate = После того, как ядро будет заполнено предметом до отказа, любые лишние входящие предметы этого типа будут [accent]сожжены[].
hint.factoryControl = Чтобы установить [accent]место вывода единиц[] фабрики, щелкните на блок фабрики в командном режиме, затем щелкните правой кнопкой мыши на соответствующее место.\nЕдиницы, произведенные ею, автоматически переместятся туда.
hint.factoryControl.mobile = Чтобы установить [accent]место вывода единиц[] фабрики, нажмите на блок фабрики в командном режиме, затем нажмите на соответствующее место.\nЕдиницы, произведенные ею, будут автоматически перемещены туда.
-gz.mine = Приблизьтесь к \uf8c4 [accent]медной руде[] на земле и нажмите на нее, чтобы начать копать.
-gz.mine.mobile = Приблизьтесь к \uf8c4 [accent]медной руде[] на земле и нажмите на нее, чтобы начать копать.
-gz.research = Откройте дерево технологий \ue875.\nИсследуйте \uf870 [accent]Механический бур[], затем выберите его в меню в правом нижнем углу.\nНажмите на медную руду, чтобы начать строительство бура.
-gz.research.mobile = Откройте дерево технологий \ue875.\nИсследуйте \uf870 [accent]Механический бур[], затем выберите его в меню справа внизу.\nНажмите на медную руду, чтобы разместить бур.\n\nНажмите на \ue800 [accent]галочку[] справа внизу, чтобы подтвердить строительство.
-gz.conveyors = Исследуйте и разместите \uf896 [accent]конвейеры[] для перемещения добытых ресурсов\nот буров до ядра.\n\nЗажмите и перетащите, чтобы разместить несколько конвейеров.\n[accent]Scroll[] для вращения.
-gz.conveyors.mobile = Исследуйте и разместите \uf896 [accent]конвейеры[] для перемещения добытых ресурсов\nот буровых до ядра.\n\nЗадержите палец на секунду и перетащите его, чтобы разместить несколько конвейеров.
+gz.mine = Приблизьтесь к :ore-copper: [accent]медной руде[] на земле и нажмите на нее, чтобы начать копать.
+gz.mine.mobile = Приблизьтесь к :ore-copper: [accent]медной руде[] на земле и нажмите на нее, чтобы начать копать.
+gz.research = Откройте дерево технологий :tree:.\nИсследуйте :mechanical-drill: [accent]Механический бур[], затем выберите его в меню в правом нижнем углу.\nНажмите на медную руду, чтобы начать строительство бура.
+gz.research.mobile = Откройте дерево технологий :tree:.\nИсследуйте :mechanical-drill: [accent]Механический бур[], затем выберите его в меню справа внизу.\nНажмите на медную руду, чтобы разместить бур.\n\nНажмите на \ue800 [accent]галочку[] справа внизу, чтобы подтвердить строительство.
+gz.conveyors = Исследуйте и разместите :conveyor: [accent]конвейеры[] для перемещения добытых ресурсов\nот буров до ядра.\n\nЗажмите и перетащите, чтобы разместить несколько конвейеров.\n[accent]Scroll[] для вращения.
+gz.conveyors.mobile = Исследуйте и разместите :conveyor: [accent]конвейеры[] для перемещения добытых ресурсов\nот буровых до ядра.\n\nЗадержите палец на секунду и перетащите его, чтобы разместить несколько конвейеров.
gz.drills = \nУвеличьте объемы добычи.\nПоместите больше механических буров.\nДобудьте 100 слитков меди.
-gz.lead = \uf837 [accent]Свинец[] - еще один часто используемый ресурс.\nПодготовьте буры для добычи свинца.
-gz.moveup = \ue804 Двигайтесь вверх для получения дальнейших указаний.
-gz.turrets = Исследуйте и поставьте 2 \uf861 [accent]Двойные турели[] для защиты ядра.\nДвойные турели требуют \uf838 [accent]боеприпасы[] с конвейеров.
+gz.lead = :lead: [accent]Свинец[] - еще один часто используемый ресурс.\nПодготовьте буры для добычи свинца.
+gz.moveup = :up: Двигайтесь вверх для получения дальнейших указаний.
+gz.turrets = Исследуйте и поставьте 2 :duo: [accent]Двойные турели[] для защиты ядра.\nДвойные турели требуют \uf838 [accent]боеприпасы[] с конвейеров.
gz.duoammo = Снабдите двойные турели [accent]медью[] с помощью конвейеров.
-gz.walls = [accent]Стены[] могут предотвратить повреждение близлежащих построек.\nПоставьте \uf8ae [accent]медные стены[] вокруг турелей.
+gz.walls = [accent]Стены[] могут предотвратить повреждение близлежащих построек.\nПоставьте :copper-wall: [accent]медные стены[] вокруг турелей.
gz.defend = Враг на подходе, приготовьтесь защищаться.
-gz.aa = Летающие боевые единицы не могут быть легко уничтожены стандартными турелями.\n\uf860 Рассеиватели[] предоставляют отличную противовоздушную оборону, но требуют \uf837 [accent]свинец[] в качестве боеприпасов.
+gz.aa = Летающие боевые единицы не могут быть легко уничтожены стандартными турелями.\n:scatter: Рассеиватели[] предоставляют отличную противовоздушную оборону, но требуют :lead: [accent]свинец[] в качестве боеприпасов.
gz.scatterammo = Снабдите Рассеиватель [accent]свинцом[] с помощью конвейеров.
gz.supplyturret = [accent]Запитайте турель.
gz.zone1 = Это - вражеская зона высадки.
@@ -1980,27 +2027,27 @@ gz.zone2 = Все, что построено в её радиусе, будет
gz.zone3 = Волна начнётся прямо сейчас.\nПриготовьтесь.
gz.finish = Постройте больше турелей, добудьте больше ресурсов,\nи отстойте все волны, чтобы [accent]захватить сектор[].
-onset.mine = Нажмите, чтобы добыть \uf748 [accent]бериллий[] из стен.\n\nИспользуйте [accent][[WASD] для передвижения.
-onset.mine.mobile = Нажмите, чтобы добыть \uf748 [accent]бериллий[] из стен.
-onset.research = Откройте \ue875 дерево исследований.\nИсследуйте, затем поставьте \uf73e [accent]турбинный конденсатор[] на жерло.\nОна будет производить [accent]энергию[].
-onset.bore = Исследуйте и поставьте \uf741 [accent]плазменный бур[].\nОн будет автоматически добывать ресурсы из стен.
-onset.power = Чтобы [accent]подключить[] плазменный бур, исследуйте и поставьте \uf73d [accent]лучевой узел[].\nСоедините турбинный конденсатор с плазменным буром.
-onset.ducts = Исследуйте и поставьте \uf799 [accent]предметные каналы[] для перевозки ресурсов из плазменного бура в ядро.\nПеретаскивайте для установки нескольких каналов.\n[accent]Вращайте колёсико мыши[] для поворота.
-onset.ducts.mobile = Исследуйте и поставьте \uf799 [accent]предметные каналы[] для перевозки ресурсов из плазменного бура в ядро.\nЗажмите палец на секунду, затем перетаскивайте для установки нескольких каналов.
+onset.mine = Нажмите, чтобы добыть :beryllium: [accent]бериллий[] из стен.\n\nИспользуйте [accent][[WASD] для передвижения.
+onset.mine.mobile = Нажмите, чтобы добыть :beryllium: [accent]бериллий[] из стен.
+onset.research = Откройте :tree: дерево исследований.\nИсследуйте, затем поставьте :turbine-condenser: [accent]турбинный конденсатор[] на жерло.\nОна будет производить [accent]энергию[].
+onset.bore = Исследуйте и поставьте :plasma-bore: [accent]плазменный бур[].\nОн будет автоматически добывать ресурсы из стен.
+onset.power = Чтобы [accent]подключить[] плазменный бур, исследуйте и поставьте :beam-node: [accent]лучевой узел[].\nСоедините турбинный конденсатор с плазменным буром.
+onset.ducts = Исследуйте и поставьте :duct: [accent]предметные каналы[] для перевозки ресурсов из плазменного бура в ядро.\nПеретаскивайте для установки нескольких каналов.\n[accent]Вращайте колёсико мыши[] для поворота.
+onset.ducts.mobile = Исследуйте и поставьте :duct: [accent]предметные каналы[] для перевозки ресурсов из плазменного бура в ядро.\nЗажмите палец на секунду, затем перетаскивайте для установки нескольких каналов.
onset.moremine = Расширьте добычу.\nПоставьте больше плазменных буров и используйте лучевые узлы и предметные каналы для их поддержки.\nДобудьте 200 бериллия.
-onset.graphite = Более продвинутые блоки требуют \uf835 [accent]графит[].\nПоставьте плазменные буры для добычи графита.
-onset.research2 = Начните исследовать [accent]фабрики[].\nИсследуйте \uf74d [accent]дробитель скал[] и \uf779 [accent]кремниевую дуговую печь[].
-onset.arcfurnace = Дуговая печь требует \uf834 [accent]песок[] и \uf835 [accent]графит[] для производства \uf82f [accent]кремния[].\nТакже нужна [accent]энергия[].
-onset.crusher = Используйте \uf74d [accent]дробители скал[] для добычи песка.
-onset.fabricator = Используйте [accent]боевые единицы[] для исследования карты, защиты построек и нападения на врага. Исследуйте и поставьте \uf6a2 [accent]конструктор танков[].
+onset.graphite = Более продвинутые блоки требуют :graphite: [accent]графит[].\nПоставьте плазменные буры для добычи графита.
+onset.research2 = Начните исследовать [accent]фабрики[].\nИсследуйте :cliff-crusher: [accent]дробитель скал[] и :silicon-arc-furnace: [accent]кремниевую дуговую печь[].
+onset.arcfurnace = Дуговая печь требует :sand: [accent]песок[] и :graphite: [accent]графит[] для производства :silicon: [accent]кремния[].\nТакже нужна [accent]энергия[].
+onset.crusher = Используйте :cliff-crusher: [accent]дробители скал[] для добычи песка.
+onset.fabricator = Используйте [accent]боевые единицы[] для исследования карты, защиты построек и нападения на врага. Исследуйте и поставьте :tank-fabricator: [accent]конструктор танков[].
onset.makeunit = Произведите боевую единицу.\nНажмите на кнопку "?", чтобы узнать текущие необходимые ресурсы для фабрики.
-onset.turrets = Боевые единицы эффективны, но [accent]турели[] предоставляют больший оборонный потенциал при их эффективном использовании.\nПоставьте турель \uf6eb [accent]Разрыв[].\nТурели требуют \uf748 [accent]боеприпасы[].
+onset.turrets = Боевые единицы эффективны, но [accent]турели[] предоставляют больший оборонный потенциал при их эффективном использовании.\nПоставьте турель :breach: [accent]Разрыв[].\nТурели требуют :beryllium: [accent]боеприпасы[].
onset.turretammo = Снабдите турель [accent]бериллиевыми боеприпасами.[]
-onset.walls = [accent]Стены[] могут предотвратить повреждение близлежащих построек.\nПоставьте \uf6ee [accent]бериллиевые стены[] вокруг турели.
+onset.walls = [accent]Стены[] могут предотвратить повреждение близлежащих построек.\nПоставьте :beryllium-wall: [accent]бериллиевые стены[] вокруг турели.
onset.enemies = Враг на подходе, приготовьтесь защищаться.
onset.defenses = [accent]Приготовьте оборону:[lightgray] {0}
onset.attack = Враг уязвим. Начните контратаку.
-onset.cores = Новые ядра могут быть поставлены на [accent]зоны ядра[].\nНовые ядра функционируют как передовые базы и имеют общий инвентарь между другими ядрами.\nПоставьте \uf725 ядро.
+onset.cores = Новые ядра могут быть поставлены на [accent]зоны ядра[].\nНовые ядра функционируют как передовые базы и имеют общий инвентарь между другими ядрами.\nПоставьте :core-bastion: ядро.
onset.detect = Враг обнаружит вас через 2 минуты.\nПриготовьте оборону, добычу и производство.
onset.commandmode = Удерживайте [accent]shift[], чтобы войти в [accent]режим командования[].\n[accent]Щелкните левой кнопкой мыши и выделите область[] для выбора боевых единиц.\n[accent]Щелкните правой кнопкой мыши[], чтобы приказать выбранным единицам двигаться или атаковать.
onset.commandmode.mobile = Нажмите [accent]Командовать[], чтобы войти в [accent]режим командования[].\nЗажмите палец, затем [accent]выделите область[] для выбора боевых единиц.\n[accent]Нажмите[], чтобы приказать выбранным единицам двигаться или атаковать.
@@ -2162,7 +2209,9 @@ block.vault.description = Хранит большое количество пр
block.container.description = Хранит небольшое количество предметов каждого типа. Предметы можно извлечь при помощи разгрузчика.
block.unloader.description = Выгружает выбранный предмет из соседних блоков.
block.launch-pad.description = Запускает партии предметов в выбранные секторы.
-block.launch-pad.details = Суборбитальная система транспортировки ресурсов методом «point-to-point». Разгрузочные капсулы хрупки и не способны выжить при повторном входе.
+block.advanced-launch-pad.description = Launches batches of items to selected sectors. Only accepts one item type at a time.
+block.advanced-launch-pad.details = Sub-orbital system for point-to-point transportation of resources.
+block.landing-pad.description = Receives items from launch pads in other sectors. Requires large amounts of water to protect against impacts of landings.
block.duo.description = Стреляет по врагам чередующимися пулями.
block.scatter.description = Стреляет кусками свинца, металлолома или метастекла по вражеским воздушным единицам.
block.scorch.description = Сжигает любых наземных врагов рядом с ним. Высокоэффективен на близком расстоянии.
@@ -2269,6 +2318,7 @@ block.unit-cargo-loader.description = Производит грузовые др
block.unit-cargo-unload-point.description = Действует как точка разгрузки для грузовых дронов. Принимает предметы, соответствующие выбранному фильтру.
block.beam-node.description = Передает энергию по прямой. Хранит небольшое количество энергии.
block.beam-tower.description = Усовершенствованный лучевой узел с большей дальностью. Хранит большое количество энергии.
+block.beam-link.description = Transmits power over vast distances.\nOnly capable of connecting to adjacent structures or other beam links.
block.turbine-condenser.description = Вырабатывает энергию, когда размещен на жерле. Производит небольшое количество воды.
block.chemical-combustion-chamber.description = Генерирует энергию из аркицита и озона.
block.pyrolysis-generator.description = Генерирует большое количество энергии из аркицита и шлака. Производит воду в качестве побочного продукта.
@@ -2359,6 +2409,7 @@ unit.emanate.description = Защищает ядро «Акрополь» от
lst.read = Считывает число из соединённой ячейки памяти.
lst.write = Записывает число в соединённую ячейку памяти.
lst.print = Добавляет текст в текстовый буфер. Ничего не отображает, пока не будет вызван [accent]Print Flush[].
+lst.printchar = Add a UTF-16 character or content icon to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used.
lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example"
lst.draw = Добавляет операцию в буфер отрисовки. Ничего не отображает, пока не будет вызван [accent]Draw Flush[].
lst.drawflush = Сбрасывает буфер [accent]Draw[] операций на дисплей.
@@ -2445,15 +2496,17 @@ lenum.shoot = Стрельба в определённую позицию.
lenum.shootp = Стрельба в единицу/постройку с расчётом скорости.
lenum.config = Конфигурация постройки, например, предмет сортировки.
lenum.enabled = Включён ли блок.
-laccess.currentammotype = Current ammo item/liquid of a turret.
+laccess.currentammotype = Текущий боеприпас турели.
+laccess.memorycapacity = Number of cells in a memory block.
laccess.color = Цвет осветителя.
laccess.controller = Командующий единицей. Если единица управляется процессором, возвращает процессор. Если в строю, возвращает командующего.\nВ противном случае возвращает саму единицу.
laccess.dead = Является ли единица/постройка неработающей или несуществующей.
laccess.controlled = Возвращает:\n[accent]@ctrlProcessor[] если единица управляется процессором\n[accent]@ctrlPlayer[] если единица/постройка управляется игроком\n[accent]@ctrlFormation[] если единица в строю\nВ противном случае — 0.
laccess.progress = Прогресс действия от 0 до 1. Возвращает прогресс производства, перезарядку турели или прогресс постройки.
-laccess.speed = Максимальная скорость единицы, в тайлах/сек.
-laccess.id = ID of a unit/block/item/liquid.\nThis is the inverse of the lookup operation.
+laccess.speed = Максимальная скорость единицы, в плитках/сек.
+laccess.size = Size of a unit/building or the length of a string.
+laccess.id = Идентификатор единицы/блока/предмета/жидкости.\nЭто обратная операция поиска.
lcategory.unknown = Неизвестно
lcategory.unknown.description = Нет категории.
lcategory.io = Ввод и вывод
@@ -2568,7 +2621,7 @@ unitlocate.building = Переменная для записи обнаруже
unitlocate.outx = Вывод X координаты.
unitlocate.outy = Вывод Y координаты.
unitlocate.group = Группа построек для поиска.
-playsound.limit = If true, prevents this sound from playing\nif it has already been played in the same frame.
+playsound.limit = Если значение равно true, предотвращает воспроизведение этого звука,\n если он уже воспроизводился в том же кадре.
lenum.idle = Остановка движения, но продолжение строительства/копания.\nСостояние по умолчанию.
lenum.stop = Остановка движения/копания/строительства.
@@ -2576,7 +2629,7 @@ lenum.unbind = Полностью отключает управление лог
lenum.move = Перемещение в определённую позицию.
lenum.approach = Приближение к позиции с указанным радиусом.
lenum.pathfind = Перемещение к точке появления врагов.
-lenum.autopathfind = Automatically pathfinds to the nearest enemy core or drop point.\nThis is the same as standard wave enemy pathfinding.
+lenum.autopathfind = Автоматический поиск пути к ближайшему вражескому ядру или точке высадки.\nЭто то же самое, что и стандартный поиск пути к врагу во время волны.
lenum.target = Стрельба в определённую позицию.
lenum.targetp = Стрельба в единицу/постройку с расчётом скорости.
lenum.itemdrop = Сбрасывание предметов.
@@ -2587,13 +2640,39 @@ lenum.payenter = Войти/приземлиться на грузовой бл
lenum.flag = Числовой флаг единицы.
lenum.mine = Копание в заданной позиции.
lenum.build = Строительство блоков.
-lenum.getblock = Fetch building, floor and block type at coordinates.\nUnit must be in range of the position, otherwise null is returned.
+lenum.getblock = Получает тип постройки, пола и блока по заданным координатам.\nЕдиница должна быть в диапазоне позиции, иначе возвращается null.
lenum.within = Проверка на нахождение единицы рядом с позицией.
lenum.boost = Включение/выключение полёта.
-lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle.
-lenum.texture = Texture name straight from game's texture atlas (using kebab-case naming style).\nIf printFlush is set to true, consumes text buffer content as text argument.
-lenum.texturesize = Size of texture in tiles. Zero value scales marker width to original texture's size.
-lenum.autoscale = Whether to scale marker corresponding to player's zoom level.
-lenum.posi = Indexed position, used for line and quad markers with index zero being the first position.
-lenum.uvi = Texture's position ranging from zero to one, used for quad markers.
-lenum.colori = Indexed position, used for line and quad markers with index zero being the first color.
+lenum.flushtext = Сбрасывает содержимое текстового буфера, если применимо. \nЕсли значение fetch равно true, пытаеся получить свойства из набора локали карты или набора локали игры.
+lenum.texture = Имя текстуры прямо из атласа текстур игры (используя стиль написания с дефисами, например: build-tower) .\nЕсли printFlush имеет значение true, то в качестве текстового аргумента используется содержимое текстового буфера.
+lenum.texturesize = Размер текстуры в плитках. Нулевое значение масштабирует ширину маркера до размера исходной текстуры.
+lenum.autoscale = Масштабировать ли маркер в соответствии с уровнем масштабирования игрока.
+lenum.posi = Индексированная позиция, используемая для линейных и квадратных маркеров с нулевым индексом в качестве первой позиции.
+lenum.uvi = Положение текстуры в диапазоне от нуля до единицы, используется для квадратных маркеров.
+lenum.colori = Индексируемая позиция, используемая для линейных и квадратных маркеров с нулевым индексом, являющимся первым цветом.
+lenum.wavetimer = Whether the waves come automatically on a timer. If not, waves come when the play button is pressed.
+lenum.wave = Current wave number. Can be anything in non-wave modes.
+lenum.currentwavetime = Wave countdown in ticks.
+lenum.waves = Whether waves are spawnable at all.
+lenum.wavesending = Whether the waves can be manually summoned with the play button.
+lenum.attackmode = Determines if gamemode is attack mode.
+lenum.wavespacing = Time between waves in ticks.
+lenum.enemycorebuildradius = No-build zone around enemy core radius.
+lenum.dropzoneradius = Radius around enemy wave drop zones.
+lenum.unitcap = Base unit cap. Can still be increased by blocks.
+lenum.lighting = Whether ambient lighting is enabled.
+lenum.buildspeed = Multiplier for building speed.
+lenum.unithealth = How much health units start with.
+lenum.unitbuildspeed = How fast unit factories build units.
+lenum.unitcost = Multiplier of resources that units take to build.
+lenum.unitdamage = How much damage units deal.
+lenum.blockhealth = How much health blocks start with.
+lenum.blockdamage = How much damage blocks (turrets) deal.
+lenum.rtsminweight = Minimum "advantage" needed for a squad to attack. Higher -> more cautious.
+lenum.rtsminsquad = Minimum size of attack squads.
+lenum.maparea = Playable map area. Anything outside the area will not be interactable.
+lenum.ambientlight = Ambient light color. Used when lighting is enabled.
+lenum.solarmultiplier = Multiplies power output of solar panels.
+lenum.dragmultiplier = Environment drag multiplier.
+lenum.ban = Blocks or units that cannot be placed or built.
+lenum.unban = Unban a unit or block.
diff --git a/core/assets/bundles/bundle_sr.properties b/core/assets/bundles/bundle_sr.properties
index 5346942a15..74738d542b 100644
--- a/core/assets/bundles/bundle_sr.properties
+++ b/core/assets/bundles/bundle_sr.properties
@@ -131,6 +131,7 @@ feature.unsupported = Vaš uređaj ne podržava ovu funkciju
mods.initfailed = [red]⚠[] Mindustry se nije mogao podići prethodni put.. To je verovatno izazvano greškom u vezi modova.\n\nDa bi se sprečilo večno ispadanje, [red]svi modovi su onemogućeni..[]
mods = Modovi
+mods.name = Mod:
mods.none = [lightgray]Modovi nisu pronađeni!
mods.guide = Vodič za modovanje
mods.report = Prijavi grešku
@@ -155,7 +156,7 @@ mod.erroredcontent = [scarlet]Greška u sadržaju
mod.circulardependencies = [red]Circular Dependencies
mod.incompletedependencies = [red]Incomplete Dependencies
mod.requiresversion.details = Zahteva verziju igre: [accent]{0}[]\nVaša igra je zastarela. Ovaj mod zahteva novu verziju igre (po mogućstvu alfa/beta izdanje) da bi funkcionisala.
-mod.outdatedv7.details = Ovaj mod nije podesan sa novijom verzijom igre. Autor mora da ga ažurira, i da doda [accent]minGameVersion: 136[] u [accent]mod.json[] datoteku.
+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 = Ovaj mod nema podršku zato što stalno ispada ili prave razne greške u ovoj verziji igre. Ne koristi te ga.
mod.missingdependencies.details = Ovaj mod nema sledeće zavisne modove: {0}
mod.erroredcontent.details = Ova igra sadrži greške. Pitajte autora moda da ih popravi.
@@ -164,7 +165,6 @@ mod.incompletedependencies.details = This mod is unable to be loaded due to inva
mod.requiresversion = Requires game version: [red]{0}
mod.errors = Greške su nastale tokom učitavanja sadržaja.
mod.noerrorplay = [scarlet]Imate modove sa greškama.[] Onemogućite te modove, ili ispravite greške.
-mod.nowdisabled = [scarlet]Mod '{0}'nema potrebne zavisne modove:[accent] {1}\n[lightgray]Ove modove treba instalirati prvo.\nMod se automatski onemogućava.
mod.enable = Omogući
mod.requiresrestart = Igra će se zatvoriti da ažurira modove.
mod.reloadrequired = [scarlet]Ponovno pokretanje potrebno
@@ -179,6 +179,15 @@ mod.missing = Ovaj snimak sadrži modove koji su ili promenjeni ili onemogućeni
mod.preview.missing = Pre objavljivanja moda u radionicu, neophodno je staviti sliku za mod.\nPostaviti sliku sa imenom: [accent] preview.png[] u folder moda i pokušati ponovo.
mod.folder.missing = Mod mora biti u obliku foldera da bi se objavio na radionicu.\nDa pretvorite bilo koji mod u folder, ekstraktujte fajl u neko folder, izbrišite stari .zip, ponovo pokrenite igru i učitajte modove.
mod.scripts.disable = Vaš uređaj ne podržava modove sa skriptama. Onemogućite te modove.
+mod.dependencies.error = [scarlet]Mods are missing dependencies
+mod.dependencies.soft = (optional)
+mod.dependencies.download = Import
+mod.dependencies.downloadreq = Import Required
+mod.dependencies.downloadall = Import All
+mod.dependencies.status = Import Results
+mod.dependencies.success = Successfully downloaded:
+mod.dependencies.failure = Failed to download:
+mod.dependencies.imported = This mod requires dependencies. Download?
about.button = Više Informacija
name = Ime:
@@ -295,6 +304,7 @@ disconnect.error = Greška u povezivanju.
disconnect.closed = Connection closed.
disconnect.timeout = Timed out.
disconnect.data = Neuspešno učitavanje podataka!
+disconnect.snapshottimeout = Timed out while receiving UDP snapshots.\nThis may be caused by an unstable network or connection.
cantconnect = Ne može se pridružiti igri ([accent]{0}[]).
connecting = [accent]Povezivanje...
reconnecting = [accent]Ponovno povezivanje...
@@ -463,6 +473,7 @@ editor.shiftx = Pomeri X
editor.shifty = Pomeri Y
workshop = Radionica
waves.title = Talasi
+waves.team = Team
waves.remove = Ukloni
waves.every = svakih
waves.waves = talas(a)
@@ -715,14 +726,18 @@ loadout = Loadout
resources = Resursi
resources.max = Maksimum
bannedblocks = Nedozvoljeni Blokovi
+unbannedblocks = Unbanned Blocks
objectives = Zadaci
bannedunits = Nedozvoljene Jedinice
+unbannedunits = Unbanned Units
bannedunits.whitelist = Nedozvoljene Jedinice Kao Bela Lista
bannedblocks.whitelist = Nedozvoljeni Blokovi Kao Bela Lista
addall = Dodaj Sve
launch.from = Lansirati Od: [accent]{0}
launch.capacity = Lansirni Kapacitet Materijala: [accent]{0}
launch.destination = Destinacija: {0}
+landing.sources = Source Sectors: [accent]{0}[]
+landing.import = Max Total Import: {0}[accent]{1}[lightgray]/min
configure.invalid = Količina mora biti između 0 i {0}.
add = Dodaj...
guardian = Čuvar
@@ -761,7 +776,9 @@ sectors.stored = Skladišćeno:
sectors.resume = Nastavi
sectors.launch = Lansiraj
sectors.select = Izaberi
+sectors.launchselect = Select Launch Destination
sectors.nonelaunch = [lightgray]nema (sunce)
+sectors.redirect = Redirect Launch Pads
sectors.rename = Preimenuj Sektor
sectors.enemybase = [scarlet]Neprijateljska Baza
sectors.vulnerable = [scarlet]Vulnerable
@@ -793,6 +810,10 @@ difficulty.easy = Easy
difficulty.normal = Normal
difficulty.hard = Hard
difficulty.eradication = Eradication
+difficulty.enemyHealthMultiplier = Enemy Health: {0}
+difficulty.enemySpawnMultiplier = Enemy Amount: {0}
+difficulty.waveTimeMultiplier = Wave Timer: {0}
+difficulty.nomodifiers = [lightgray](No modifiers)
planets = Planete
@@ -1025,6 +1046,7 @@ stat.buildspeedmultiplier = Umnožavač brzine gradnje
stat.reactive = Reaguje sa
stat.immunities = Imuniteti
stat.healing = Popravlja
+stat.efficiency = [stat]{0}% Efficiency
ability.forcefield = Polje Sile
ability.forcefield.description = Projects a force shield that absorbs bullets
@@ -1072,6 +1094,7 @@ ability.stat.buildtime = [stat]{0} sec[lightgray] build time
bar.onlycoredeposit = Dozvoljeno Dostavljanje Samo Unutar Jezgra
bar.drilltierreq = Bolja Bušilica Potrebna
+bar.nobatterypower = Insufficieny Battery Power
bar.noresources = Nedostaju Resursi
bar.corereq = Potrebno Jezgro kao Osnova
bar.corefloor = Zahteva Zonu Jezgra
@@ -1080,6 +1103,7 @@ bar.drillspeed = Brzina Bušenja: {0}/s
bar.pumpspeed = Brzina Pumpanja: {0}/s
bar.efficiency = Efikasnost: {0}%
bar.boost = Pojačanje: +{0}%
+bar.powerbuffer = Battery Power: {0}/{1}
bar.powerbalance = Energija: {0}/s
bar.powerstored = Skladišćeno: {0}/{1}
bar.poweramount = Količina: {0}
@@ -1090,6 +1114,7 @@ bar.capacity = Kapacitet: {0}
bar.unitcap = {0} {1}/{2}
bar.liquid = Tečnost
bar.heat = Toplota
+bar.cooldown = Cooldown
bar.instability = Nestabilnost
bar.heatamount = Količina Toplote: {0}
bar.heatpercent = Količina Toplote: {0} ({1}%)
@@ -1114,6 +1139,7 @@ bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
bullet.frags = [stat]{0}[lightgray]x šrapnela:
bullet.lightning = [stat]{0}[lightgray]x munja ~ [stat]{1}[lightgray] štete
bullet.buildingdamage = [stat]{0}%[lightgray] šteta za strukture
+bullet.shielddamage = [stat]{0}%[lightgray] shield damage
bullet.knockback = [stat]{0}[lightgray] odbacivanje
bullet.pierce = [stat]{0}[lightgray]x probijanje
bullet.infinitepierce = [stat]proboj
@@ -1140,6 +1166,7 @@ unit.minutes = minuti
unit.persecond = /sekundi
unit.perminute = /minuti
unit.timesspeed = x brzina
+unit.multiplier = x
unit.percent = %
unit.shieldhealth = snaga štita
unit.items = materijali
@@ -1216,11 +1243,13 @@ setting.mutemusic.name = Nema Muzike
setting.sfxvol.name = Jačina Zvučnih Efekata
setting.mutesound.name = Nema Zvuka
setting.crashreport.name = Send Anonymous Crash Reports
+setting.communityservers.name = Fetch Community Server List
setting.savecreate.name = Automatski Snimaj Igru
setting.steampublichost.name = Public Game Visibility
setting.playerlimit.name = Limit Igrača
setting.chatopacity.name = Prozirnost Četa
setting.lasersopacity.name = Prozirnost Energetskih Lasera
+setting.unitlaseropacity.name = Unit Mining Beam Opacity
setting.bridgeopacity.name = Prozirnost Mostova
setting.playerchat.name = Prikazuj Čet Mehure Igrača
setting.showweather.name = Prikazuj Grafiku Vremena
@@ -1229,6 +1258,9 @@ setting.macnotch.name = Prilagodi interfejs da prikaže zarez
setting.macnotch.description = Restartovanje je zahtevano da bi se učitale promene
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.
public.beta = Note that beta versions of the game cannot make public lobbies.
uiscale.reset = UI skala se promenija.\nPritisnite "OK" da porvdite ovu skali.\n[scarlet]Vraćanje i izlazak za[accent] {0}[] sekundi...
uiscale.cancel = Obustavi i Izađi
@@ -1309,6 +1341,7 @@ keybind.shoot.name = Ispaljuj
keybind.zoom.name = Zoom
keybind.menu.name = Meni
keybind.pause.name = Pauziraj
+keybind.skip_wave.name = Skip Wave
keybind.pause_building.name = Pauziraj/Nastavi Gradnju
keybind.minimap.name = Minimapa
keybind.planet_map.name = Planetarna Mapa
@@ -1376,12 +1409,14 @@ rules.unitcostmultiplier = Unit Cost Multiplier
rules.unithealthmultiplier = Unit Health Multiplier
rules.unitdamagemultiplier = Unit Damage Multiplier
rules.unitcrashdamagemultiplier = Unit Crash Damage Multiplier
+rules.unitminespeedmultiplier = Unit Mine Speed Multiplier
rules.solarmultiplier = Solar Power Multiplier
rules.unitcapvariable = Jezgara Povećavaju Maksimalni Broj Jedinica
rules.unitpayloadsexplode = Carried Payloads Explode With The Unit
rules.unitcap = Maksimalni Broj Jedinica (ne računajući jezgra)
rules.limitarea = Ograniči Prostor Mape
rules.enemycorebuildradius = Radius Neprijateljskog jezgra bez gradnje:[lightgray] (polja)
+rules.extracorebuildradius = Extra No-Build Radius:[lightgray] (tiles)
rules.wavespacing = Razmak Između Talasa:[lightgray] (sec)
rules.initialwavespacing = Početni Razmak Talasa:[lightgray] (sec)
rules.buildcostmultiplier = Build Cost Multiplier
@@ -1404,6 +1439,9 @@ rules.title.planet = Planeta
rules.lighting = Osvetljenje
rules.fog = Magla Rata
rules.invasions = Enemy Sector Invasions
+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.fire = Plamen
@@ -1722,6 +1760,8 @@ block.meltdown.name = Istopitelj
block.foreshadow.name = Predznak
block.container.name = Kontejner
block.launch-pad.name = Launch Pad
+block.advanced-launch-pad.name = Launch Pad
+block.landing-pad.name = Landing Pad
block.segment.name = Segment
block.ground-factory.name = Zemna Fabrika
block.air-factory.name = Vazdušna Fabrika
@@ -1777,6 +1817,8 @@ block.arkyic-vent.name = Lučarni Gejzir
block.yellow-stone-vent.name = Gejzir Žute Stene
block.red-stone-vent.name = Gejzir Crvene Stene
block.crystalline-vent.name = Crystalline Vent
+block.stone-vent.name = Stone Vent
+block.basalt-vent.name = Basalt Vent
block.redmat.name = Redmat
block.bluemat.name = Bluemat
block.core-zone.name = Zona Jezgra
@@ -1932,77 +1974,77 @@ hint.respawn = Da se stvoriš kao letelica, pritisni [accent][[V][].
hint.respawn.mobile = Promenio si kontrolu u jedinicu/građevinu. Da se stvoriš kao letelica, [accent]pritisni avatar u gornjem levom uglu.[]
hint.desktopPause = Pritisni [accent][[Space][] da pauziraš, i posle nastaviš igru.
hint.breaking = [accent]Desni-klik[] i vuci da bi razrušio blokove.
-hint.breaking.mobile = Aktiviraj \ue817 [accent]čekić[] u donjem desnom uglu i pritiskaj blokove ra rušenje.\n\nDrži prst za trenutak i vuci ga za rušenje u prostoru.
+hint.breaking.mobile = Aktiviraj :hammer: [accent]čekić[] u donjem desnom uglu i pritiskaj blokove ra rušenje.\n\nDrži prst za trenutak i vuci ga za rušenje u prostoru.
hint.blockInfo = Da bi video informacije o bloku [accent]meniju gradnje[], pritom izaberite [accent][[?][] dugme desno.
hint.derelict = [accent]Derelict[] structures are broken remnants of old bases that no longer function.\n\nThese structures can be [accent]deconstructed[] for resources.
-hint.research = Koristi \ue875 [accent]Izuči[] dugme da bi izučio nove tehnologije.
-hint.research.mobile = Koristi \ue875 [accent]Izuči[] dugme u \ue88c [accent]Meniju[] da bi izučio nove tehnologije.
+hint.research = Koristi :tree: [accent]Izuči[] dugme da bi izučio nove tehnologije.
+hint.research.mobile = Koristi :tree: [accent]Izuči[] dugme u :menu: [accent]Meniju[] da bi izučio nove tehnologije.
hint.unitControl = Drži [accent][[L-ctrl][] i [accent]klikni[] da bi kontrolisao prijateljsku jedinicu ili platformu.
hint.unitControl.mobile = [accent][[Pritisni-dva-puta][] da bi kontrolisao prijateljsku jedinicu ili platformu.
hint.unitSelectControl = Da bi kontrolisao jedinice, uđi u [accent]komandni mod[] pomoću držanja [accent]L-shift.[]\nTokom komandnog moda, drži klik i vuci da bi izabrao jedinice. [accent]Desni-klik[] na lokaciju ili metu da bi komandovao jedinice tamo.
hint.unitSelectControl.mobile = Da bi kontrolisao jedinice, uđi u [accent]komandni mod[] pomoću pritiskanja [accent]komanda[] dugmeta u donjem levom uglu.\nTokom komadnog moda, dugo pritisni i prevuci da bi izabrao jedinice. Pritisni na lokaciju ili metu da bi komandovao jedinice tamo.
-hint.launch = Jednom kada je dovoljno resursa skupljeno, možeš [accent]Lansirati[] tako što bi izabrao obljižnji sektor iz \ue827 [accent]Mape[] u donjem desnom uglu.
-hint.launch.mobile = Jednom kada je dovoljno resursa skupljeno, možeš [accent]Lansirati[] tako što bi izabrao obljižnji sektor iz \ue827 [accent]Mape[] u \ue88c [accent]Meniju[].
+hint.launch = Jednom kada je dovoljno resursa skupljeno, možeš [accent]Lansirati[] tako što bi izabrao obljižnji sektor iz :map: [accent]Mape[] u donjem desnom uglu.
+hint.launch.mobile = Jednom kada je dovoljno resursa skupljeno, možeš [accent]Lansirati[] tako što bi izabrao obljižnji sektor iz :map: [accent]Mape[] u :menu: [accent]Meniju[].
hint.schematicSelect = Drži [accent][[F][] i vuci da bi izabrao blokove da kopiraš i postaviš.\n\n[accent][[Srednji Klick][] Da iskopiraš samo jedan tip blokova.
hint.rebuildSelect = Drži [accent][[B][] i vuci da bi izabrao planove izabranih blokova.\nOvo će automatski ponovo da ih sagradi.
-hint.rebuildSelect.mobile = Select the \ue874 copy button, then tap the \ue80f rebuild button and drag to select destroyed block plans.\nThis will rebuild them automatically.
+hint.rebuildSelect.mobile = Select the :copy: copy button, then tap the :wrench: rebuild button and drag to select destroyed block plans.\nThis will rebuild them automatically.
hint.conveyorPathfind = Drži [accent][[L-Ctrl][] dok vučeš trake da automatski stvoriš put.
-hint.conveyorPathfind.mobile = Osposobi \ue844 [accent]dijagonalni mod[] dok vučeš trake da automatski stvoriš put.
+hint.conveyorPathfind.mobile = Osposobi :diagonal: [accent]dijagonalni mod[] dok vučeš trake da automatski stvoriš put.
hint.boost = Hold [accent][[L-Shift][] to fly over obstacles with your current unit.\n\nOnly a few ground units have boosters.
hint.payloadPickup = Pritisni [accent][[[] da bi preuzeo male blokove ili jedinice.
hint.payloadPickup.mobile = [accent]Pritisni i drži[] mali blok ili jedinicu da bi ga preuzeo.
hint.payloadDrop = Pritisni [accent]][] da bi spustio tovar.
hint.payloadDrop.mobile = [accent]Pritisni i drži[] prazno mesto da bi spustio tovar tamo.
hint.waveFire = [accent]Talas[] platforma sa vodom kao municiom automatski gasi vatru.
-hint.generator = \uf879 [accent]Generatori Sagorevanja[] sagorevaju ugalj i proizvode energiju.\n\nDomet prenosa energije se može povećati preko \uf87f [accent]Strujnog Čvora[].
-hint.guardian = [accent]Čuvari[] kao jedinice su oklopljenje. Slaba municija potput [accent]Bakra[] i [accent]Olovo[] [scarlet]nije efikasan[].\n\nKoristi platforme većeg tijera ili\uf835 [accent]Grafit[] \uf861Duo/\uf859Salvo municiju da bi se rešio čuvara.
+hint.generator = :combustion-generator: [accent]Generatori Sagorevanja[] sagorevaju ugalj i proizvode energiju.\n\nDomet prenosa energije se može povećati preko :power-node: [accent]Strujnog Čvora[].
+hint.guardian = [accent]Čuvari[] kao jedinice su oklopljenje. Slaba municija potput [accent]Bakra[] i [accent]Olovo[] [scarlet]nije efikasan[].\n\nKoristi platforme većeg tijera ili:graphite: [accent]Grafit[] :duo:Duo/:salvo:Salvo municiju da bi se rešio čuvara.
hint.coreUpgrade = Jezgra mogu da se unaprede [accent]postavljanjem većih jezgara preko njih[].\n\nPostavi [accent]Temelj[] preko [accent]Krhotina[] jezgra. Osigurajte da bude planiran prostor čist.
hint.presetLaunch = [accent]Sektori sa ivicom[] sive boje, kao [accent]Zamrznutna Šuma[], se mogu lansiradi svuda. Oni ne zahtevaju zauzetu obljižnju teritoriju.\n\n[accent]Numerisani sektori[], potput ovog, su [accent]opcionalni[].
hint.presetDifficulty = This sector has a [scarlet]high enemy threat level[].\nLaunching to such sectors is [accent]not recommended[] without proper technology and preparation.
hint.coreIncinerate = Kada je jezgro skroz puno sa specifičnim materijalom, svaka dodatna jedinica materijala koja je primljena će biti [accent]spaljena[].
hint.factoryControl = To set a unit factory's [accent]output destination[], click a factory block while in command mode, then right-click a location.\nJedinice proizvedene iz njih će se automatski pomeriti tamo.
hint.factoryControl.mobile = To set a unit factory's [accent]output destination[], tap a factory block while in command mode, then tap a location.\nJedinice proizvedene iz njih će se automatski pomeriti tamo.
-gz.mine = Pomerite se pored \uf8c4 [accent]bakarne rude[] na zemlji i klikni ga da bi započeo iskopavanje.
-gz.mine.mobile = Pomerite se pored \uf8c4 [accent]bakarne rude[] na zemlji i pritisni ga da bi započeo iskopavanje.
-gz.research = Otvorite \ue875 drvo tehnologija.Izučite \uf870 [accent]Mehaničku Drobilicu[], pritom ga izaberi iz menija u donjem desnom uglu.\nKliknite ga na nalazište bakra da bi ga postavio.
-gz.research.mobile = Otvorite \ue875 drvo tehnologija.Izučite \uf870 [accent]Mehaničku Drobilicu[], pritom ga izaberi iz menija u donjem desnom uglu.\nPritisnite nalazište bakra da bi ga postavio..\n\nPritisnite \ue800 [accent]checkmark[] u donjem desnom uglu da potvrdite.
-gz.conveyors = Izučite i postavite \uf896 [accent]pokretne trake[] da bi ste pomerili iskopane resurse\niz drobilice u jezgro.\n\nKliknite i držite da bi ste postavili više traka.\n[accent]Scroll[] da rotirate.
-gz.conveyors.mobile = Izučite i postavite \uf896 [accent]pokretne trake[] da bi ste pomerili iskopane resurse\niz drobilice u jezgro.\n\nDržite vaš prst na sekundu i vucite da bi ste postavili više traka.
+gz.mine = Pomerite se pored :ore-copper: [accent]bakarne rude[] na zemlji i klikni ga da bi započeo iskopavanje.
+gz.mine.mobile = Pomerite se pored :ore-copper: [accent]bakarne rude[] na zemlji i pritisni ga da bi započeo iskopavanje.
+gz.research = Otvorite :tree: drvo tehnologija.Izučite :mechanical-drill: [accent]Mehaničku Drobilicu[], pritom ga izaberi iz menija u donjem desnom uglu.\nKliknite ga na nalazište bakra da bi ga postavio.
+gz.research.mobile = Otvorite :tree: drvo tehnologija.Izučite :mechanical-drill: [accent]Mehaničku Drobilicu[], pritom ga izaberi iz menija u donjem desnom uglu.\nPritisnite nalazište bakra da bi ga postavio..\n\nPritisnite \ue800 [accent]checkmark[] u donjem desnom uglu da potvrdite.
+gz.conveyors = Izučite i postavite :conveyor: [accent]pokretne trake[] da bi ste pomerili iskopane resurse\niz drobilice u jezgro.\n\nKliknite i držite da bi ste postavili više traka.\n[accent]Scroll[] da rotirate.
+gz.conveyors.mobile = Izučite i postavite :conveyor: [accent]pokretne trake[] da bi ste pomerili iskopane resurse\niz drobilice u jezgro.\n\nDržite vaš prst na sekundu i vucite da bi ste postavili više traka.
gz.drills = Proširite rudarsku operaciju.\nPostavite dodatne mehaničke drobilice.\nIskopajte 100 bakra.
-gz.lead = \uf837 [accent]Olovo[] je takođe često korišćen resurs.\nPostavite drobilice za iskopavanje olova.
-gz.moveup = \ue804 Krenite dalje za dodatne zadatke.
-gz.turrets = Izučite i postavite 2 \uf861 [accent]Duo[] platforme za odbranu jezgra.\nDuo platforme zahtevaju \uf838 [accent]municiju[] preko pokretnih traka.
+gz.lead = :lead: [accent]Olovo[] je takođe često korišćen resurs.\nPostavite drobilice za iskopavanje olova.
+gz.moveup = :up: Krenite dalje za dodatne zadatke.
+gz.turrets = Izučite i postavite 2 :duo: [accent]Duo[] platforme za odbranu jezgra.\nDuo platforme zahtevaju \uf838 [accent]municiju[] preko pokretnih traka.
gz.duoammo = Snabdevajte Duo platforma sa [accent]bakrom[] pomoću pokretnih traka.
-gz.walls = [accent]Zidovi[] mogu da spreče da se šteta nanese na građevine.\nPostavite \uf8ae [accent]bakarne zidove[] preko platformi.
+gz.walls = [accent]Zidovi[] mogu da spreče da se šteta nanese na građevine.\nPostavite :copper-wall: [accent]bakarne zidove[] preko platformi.
gz.defend = Neprijatelj stiže, pripremite se za odbranu.
-gz.aa = Teško se možete rešiti lebdećih jedinica sa standarnim platformama.\n\uf860 [accent]Razbaci[] platforme su savršena protiv-vazdušna odbrana, ali zahtevaju \uf837 [accent]olovo[] kao municiju.
+gz.aa = Teško se možete rešiti lebdećih jedinica sa standarnim platformama.\n:scatter: [accent]Razbaci[] platforme su savršena protiv-vazdušna odbrana, ali zahtevaju :lead: [accent]olovo[] kao municiju.
gz.scatterammo = Snabdevajte Razbaci sa [accent]olovom[] pomoću pokretnih traka.
gz.supplyturret = [accent]Snabdevanje Platforme
gz.zone1 = Ovo je neprijateljska zona.
gz.zone2 = Sve sagrađeno u njoj će biti uništeno kada se započne talas.
gz.zone3 = Talas će uskoro započeti.\nSpremi se.
gz.finish = Build more turrets, mine more resources,\nand defend against all the waves to [accent]capture the sector[].
-onset.mine = Klikni da bi iskopao \uf748 [accent]berilijum[] iz zidova.\nKoristi [accent][[WASD] za kretanje.
-onset.mine.mobile = Pritisni da bi iskopao \uf748 [accent]berilijum[] iz zidova.
-onset.research = Otvori \ue875 drvo tehnologija.\nIzuči, i pritom postavi \uf73e [accent]Turbinski Kondezator[] na ventil.\nOvo će da proizvodi [accent]energiju[].
-onset.bore = Izuči i postavi \uf741 [accent]plazma bušilicu[].\nOvo će automatski da iskopava rude sa zida.
-onset.power = Da bi snabdevao plazma bušilicu [accent]energijom[], izučite i postavite \uf73d [accent]snopnu diodu[].\nPovežite turbinski kondezator i plazma bušilicu.
-onset.ducts = Izučite i postavite \uf799 [accent]kanale[] da bi ste pomerili iskopane resurse iz plazma bušilice u jezgro.\nKliknite i držite da bi ste postavili više kanala.\n[accent]Scroll[] da rotirate.
-onset.ducts.mobile = Izučite i postavite \uf799 [accent]kanale[] da bi ste pomerili iskopane resurse iz plazma bušilice u jezgro.\n\nDržite vaš prst na sekundu i vucite da bi ste postavili više kanala.
+onset.mine = Klikni da bi iskopao :beryllium: [accent]berilijum[] iz zidova.\nKoristi [accent][[WASD] za kretanje.
+onset.mine.mobile = Pritisni da bi iskopao :beryllium: [accent]berilijum[] iz zidova.
+onset.research = Otvori :tree: drvo tehnologija.\nIzuči, i pritom postavi :turbine-condenser: [accent]Turbinski Kondezator[] na ventil.\nOvo će da proizvodi [accent]energiju[].
+onset.bore = Izuči i postavi :plasma-bore: [accent]plazma bušilicu[].\nOvo će automatski da iskopava rude sa zida.
+onset.power = Da bi snabdevao plazma bušilicu [accent]energijom[], izučite i postavite :beam-node: [accent]snopnu diodu[].\nPovežite turbinski kondezator i plazma bušilicu.
+onset.ducts = Izučite i postavite :duct: [accent]kanale[] da bi ste pomerili iskopane resurse iz plazma bušilice u jezgro.\nKliknite i držite da bi ste postavili više kanala.\n[accent]Scroll[] da rotirate.
+onset.ducts.mobile = Izučite i postavite :duct: [accent]kanale[] da bi ste pomerili iskopane resurse iz plazma bušilice u jezgro.\n\nDržite vaš prst na sekundu i vucite da bi ste postavili više kanala.
onset.moremine = Proširite rudarsku operaciju.\nPostavite dodatne Plazma Bušilice i koristite snopne diode i kanale kao potporu.\nIskopajte 200 berilijuma.
-onset.graphite = Složenije građevine zahtevaju \uf835 [accent]grafit[].\nPostavite plazma bušilice da bi ste iskopali grafit.
-onset.research2 = Započnite izučavanje [accent]fabrika[].\nIzučite \uf74d [accent]planinolome[] i \uf779 [accent]elektrolučnu silicijumsku pećnicu[].
-onset.arcfurnace = Elektrolučna pećnica zahteva \uf834 [accent]pesak[] i \uf835 [accent]grafit[] da bi proizveo \uf82f [accent]silicijum[].\nIsto tako je potrebna [accent]Energija[].
-onset.crusher = Koristite \uf74d [accent]planilonome[] da kopate pesak.
-onset.fabricator = Use [accent]units[] to explore the map, defend buildings, and attack the enemy. Research and place a \uf6a2 [accent]tank fabricator[].
+onset.graphite = Složenije građevine zahtevaju :graphite: [accent]grafit[].\nPostavite plazma bušilice da bi ste iskopali grafit.
+onset.research2 = Započnite izučavanje [accent]fabrika[].\nIzučite :cliff-crusher: [accent]planinolome[] i :silicon-arc-furnace: [accent]elektrolučnu silicijumsku pećnicu[].
+onset.arcfurnace = Elektrolučna pećnica zahteva :sand: [accent]pesak[] i :graphite: [accent]grafit[] da bi proizveo :silicon: [accent]silicijum[].\nIsto tako je potrebna [accent]Energija[].
+onset.crusher = Koristite :cliff-crusher: [accent]planilonome[] da kopate pesak.
+onset.fabricator = Use [accent]units[] to explore the map, defend buildings, and attack the enemy. Research and place a :tank-fabricator: [accent]tank fabricator[].
onset.makeunit = Proizvedi jedinicu.\nKoristite "?" da bi ste videli šta fabrika zahteva.
-onset.turrets = Jedinice su efikasne, ali [accent]platforme[] imaju veći odbrambeni potencijal ako su efikasno postavljene.\nPostavite \uf6eb [accent]Proboj[] platformu.\nPlatforme zahtevaju \uf748 [accent]municiju[].
+onset.turrets = Jedinice su efikasne, ali [accent]platforme[] imaju veći odbrambeni potencijal ako su efikasno postavljene.\nPostavite :breach: [accent]Proboj[] platformu.\nPlatforme zahtevaju :beryllium: [accent]municiju[].
onset.turretammo = Snabdevajte platformu sa [accent]berilijumskom municijom.[]
-onset.walls = [accent]Zidovi[] mogu da spreče da se šteta nanese na građevine.\nPostavite nekoliko \uf6ee [accent]berilijumskih zidova[] oko platformi.
+onset.walls = [accent]Zidovi[] mogu da spreče da se šteta nanese na građevine.\nPostavite nekoliko :beryllium-wall: [accent]berilijumskih zidova[] oko platformi.
onset.enemies = Neprijatelj dolazi, spremite se.
onset.defenses = [accent]Set up defenses:[lightgray] {0}
onset.attack = The enemy is vulnerable. Counter-attack.
-onset.cores = Nova jezgra se mogu postaviti na [accent]poljima jezgra[].\nNova jezgra funkcionišu kao prednje baze i dele resursni invetar sa ostalim jezgrima.\nPostavi \uf725 jezgro.
+onset.cores = Nova jezgra se mogu postaviti na [accent]poljima jezgra[].\nNova jezgra funkcionišu kao prednje baze i dele resursni invetar sa ostalim jezgrima.\nPostavi :core-bastion: jezgro.
onset.detect = Neprijatelj će te primetiti za 2 minuta.\nPostavite odbranu, rudu i proizvodnju.
onset.commandmode = Drži [accent]shift[] da bi ušao u [accent]komandni mod[].\n[accent]Levi-klik i vuci[] da izabereš jedinice.\n[accent]Desni-klik[] da bi naredio jedinicama da se kreću ili napadaju.
onset.commandmode.mobile = Pritisni [accent]komandno dugme[] da bi ušao [accent]komandni mod[].\nDrži prstom, pritom [accent]vuci[] da izabereš jedinice.\n[accent]Pritisni[] da bi naredio jedinicama da se kreću ili napadaju.
@@ -2163,7 +2205,9 @@ block.vault.description = Skladišti veliku količinu od svake vrste materijala.
block.container.description = Skladišti malu količinu od svake vrste materijala. Contents can be retrieved with an unloader.
block.unloader.description = Istovaruje određeni materijal iz obližnih blokova.
block.launch-pad.description = Lansira bačve resursa u izabrani sektor.
-block.launch-pad.details = Sub-orbital system for point-to-point transportation of resources. Payload pods are fragile and incapable of surviving re-entry.
+block.advanced-launch-pad.description = Launches batches of items to selected sectors. Only accepts one item type at a time.
+block.advanced-launch-pad.details = Sub-orbital system for point-to-point transportation of resources.
+block.landing-pad.description = Receives items from launch pads in other sectors. Requires large amounts of water to protect against impacts of landings.
block.duo.description = Ispaljuje metke naizmenično na neprijatelje.
block.scatter.description = Fires clumps of lead, scrap or metaglass flak at enemy aircraft.
block.scorch.description = Burns any ground enemies close to it. Highly effective at close range.
@@ -2270,6 +2314,7 @@ block.unit-cargo-loader.description = Proizvodi tovarne dronove. Dronovi automat
block.unit-cargo-unload-point.description = Služi dronovima za mesto dostave materijala. Prima materijale koji su izabrane preko filtera.
block.beam-node.description = Prenosi energiju na druge blokove ortogonalno. Skladišti malu količinu energije.
block.beam-tower.description = Prenosi energiju na druge blokove ortogonalno. Skladišti veću količinu energije. Dugog dometa.
+block.beam-link.description = Transmits power over vast distances.\nOnly capable of connecting to adjacent structures or other beam links.
block.turbine-condenser.description = Proizvodi energiju kada je na ventilu. Proizvodi malu količinu vode.
block.chemical-combustion-chamber.description = Proizvodi energiju od lučara i ozona.
block.pyrolysis-generator.description = Generates large amounts of power from arkycite and slag. Produces water as a byproduct.
@@ -2360,6 +2405,7 @@ unit.emanate.description = Gradi građevine da odbrani Veliki Grad jezgro. Popra
lst.read = Čita broj iz povezane memorijske ćelije.
lst.write = Piše broj u povezanu memorijsku ćeliju.
lst.print = Add text to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used.
+lst.printchar = Add a UTF-16 character or content icon to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used.
lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example"
lst.draw = Add an operation to the drawing buffer.\nDoes not display anything until [accent]Draw Flush[] is used.
lst.drawflush = Flush queued [accent]Draw[] operations to a display.
@@ -2447,6 +2493,7 @@ lenum.shootp = Shoot at a unit/building with velocity prediction.
lenum.config = Konfiguracija građevine, npr. sortirani materijal.
lenum.enabled = Da li je ova građevina osposobljena.
laccess.currentammotype = Current ammo item/liquid of a turret.
+laccess.memorycapacity = Number of cells in a memory block.
laccess.color = Boja iluminatora.
laccess.controller = Upravljač jedinice. Ako upravljano putem procesora, šalji "processor".\nAko je upravljano u formaciji, šalji "lider".U ostalim slučajevima, šalji jedinicu za sebe.
@@ -2454,6 +2501,7 @@ laccess.dead = Da li je građevina/jedinica mrtva, ili više ne radi.
laccess.controlled = Returns:\n[accent]@ctrlProcessor[] if unit controller is processor\n[accent]@ctrlPlayer[] if unit/building controller is player\n[accent]@ctrlFormation[] if unit is in formation\nOtherwise, 0.
laccess.progress = Action progress, 0 to 1.\nReturns production, turret reload or construction progress.
laccess.speed = Maksimalna brzina jedinice, u polja/sekundi.
+laccess.size = Size of a unit/building or the length of a string.
laccess.id = ID of a unit/block/item/liquid.\nThis is the inverse of the lookup operation.
lcategory.unknown = Nepoznato
lcategory.unknown.description = Uncategorized instructions.
@@ -2598,3 +2646,29 @@ lenum.autoscale = Whether to scale marker corresponding to player's zoom level.
lenum.posi = Indexed position, used for line and quad markers with index zero being the first position.
lenum.uvi = Texture's position ranging from zero to one, used for quad markers.
lenum.colori = Indexed position, used for line and quad markers with index zero being the first color.
+lenum.wavetimer = Whether the waves come automatically on a timer. If not, waves come when the play button is pressed.
+lenum.wave = Current wave number. Can be anything in non-wave modes.
+lenum.currentwavetime = Wave countdown in ticks.
+lenum.waves = Whether waves are spawnable at all.
+lenum.wavesending = Whether the waves can be manually summoned with the play button.
+lenum.attackmode = Determines if gamemode is attack mode.
+lenum.wavespacing = Time between waves in ticks.
+lenum.enemycorebuildradius = No-build zone around enemy core radius.
+lenum.dropzoneradius = Radius around enemy wave drop zones.
+lenum.unitcap = Base unit cap. Can still be increased by blocks.
+lenum.lighting = Whether ambient lighting is enabled.
+lenum.buildspeed = Multiplier for building speed.
+lenum.unithealth = How much health units start with.
+lenum.unitbuildspeed = How fast unit factories build units.
+lenum.unitcost = Multiplier of resources that units take to build.
+lenum.unitdamage = How much damage units deal.
+lenum.blockhealth = How much health blocks start with.
+lenum.blockdamage = How much damage blocks (turrets) deal.
+lenum.rtsminweight = Minimum "advantage" needed for a squad to attack. Higher -> more cautious.
+lenum.rtsminsquad = Minimum size of attack squads.
+lenum.maparea = Playable map area. Anything outside the area will not be interactable.
+lenum.ambientlight = Ambient light color. Used when lighting is enabled.
+lenum.solarmultiplier = Multiplies power output of solar panels.
+lenum.dragmultiplier = Environment drag multiplier.
+lenum.ban = Blocks or units that cannot be placed or built.
+lenum.unban = Unban a unit or block.
diff --git a/core/assets/bundles/bundle_sv.properties b/core/assets/bundles/bundle_sv.properties
index 9692a42633..4cb7722ab8 100644
--- a/core/assets/bundles/bundle_sv.properties
+++ b/core/assets/bundles/bundle_sv.properties
@@ -128,6 +128,7 @@ done = Klar
feature.unsupported = Din enhet stödjer inte denna funktion.
mods.initfailed = [red]⚠[] Den tidigare Mindustry instansen kunde inte initieras. Detta var troligtvis orsakat av misskötta moddar.\n\nFör att förhindra en kraschslinga, [red]har alla mods inaktiverats.[]
mods = Moddar
+mods.name = Mod:
mods.none = [lightgray]Hittar inga Moddar!
mods.guide = Modding Guide
mods.report = Rapportera Bug
@@ -152,7 +153,7 @@ mod.erroredcontent = [scarlet]Innehålls Fel
mod.circulardependencies = [red]Circular Dependencies
mod.incompletedependencies = [red]Incomplete Dependencies
mod.requiresversion.details = Requires game version: [accent]{0}[]\nYour game is outdated. This mod requires a newer version of the game (possibly a beta/alpha release) to function.
-mod.outdatedv7.details = This mod is incompatible with the latest version of the game. The author must update it, and add [accent]minGameVersion: 136[] to its [accent]mod.json[] file.
+mod.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 = This mod has been manually blacklisted for causing crashes or other issues with this version of the game. Do not use it.
mod.missingdependencies.details = This mod is missing dependencies: {0}
mod.erroredcontent.details = This game caused errors when loading. Ask the mod author to fix them.
@@ -161,7 +162,6 @@ mod.incompletedependencies.details = This mod is unable to be loaded due to inva
mod.requiresversion = Requires game version: [red]{0}
mod.errors = Fel har inträffat under laddning av innehåll.
mod.noerrorplay = [scarlet]Du har moddar med fel.[] Stäng antingen av de drabbade moddarna eller fixa felen innan du spelar.
-mod.nowdisabled = [scarlet]Mod '{0}' saknar beroenden:[accent] {1}\n[lightgray]Dessa mods måste laddas ned först.\nDetta mod kommer att inaktiveras automatiskt.
mod.enable = Aktivera
mod.requiresrestart = Spelet kommer nu att stängas av för att tillämpa mod ändringarna.
mod.reloadrequired = [scarlet]Omstart krävs
@@ -176,6 +176,15 @@ mod.missing = Denna sparfil innehåller moddar som du nyligen har uppdaterat ell
mod.preview.missing = Innan du publicerar detta mod i workshoppen, måste du lägga till en förhandsgransknings bild.\nPlacera en bild döpt[accent] preview.png[] i moddens mapp och försök igen.
mod.folder.missing = Endast moddar i mapp form kan bli publicerade på workshoppen.\nFör att konvertera ett mod till en mapp, packa helt enkelt upp filen i en mapp och ta bort den gamla zip-filen, starta sedan om ditt spel eller ladda om dina moddar.
mod.scripts.disable = Din enhet stödjer inte moddar med skripter. Du måste inaktivera dessa moddar för att kunna spela spelet.
+mod.dependencies.error = [scarlet]Mods are missing dependencies
+mod.dependencies.soft = (optional)
+mod.dependencies.download = Import
+mod.dependencies.downloadreq = Import Required
+mod.dependencies.downloadall = Import All
+mod.dependencies.status = Import Results
+mod.dependencies.success = Successfully downloaded:
+mod.dependencies.failure = Failed to download:
+mod.dependencies.imported = This mod requires dependencies. Download?
about.button = Om
name = Namn:
@@ -291,6 +300,7 @@ disconnect.error = Kopplingsfel.
disconnect.closed = Koppling stängd.
disconnect.timeout = Timed out.
disconnect.data = Failed to load world data!
+disconnect.snapshottimeout = Timed out while receiving UDP snapshots.\nThis may be caused by an unstable network or connection.
cantconnect = Unable to join game ([accent]{0}[]).
connecting = [accent]Ansluter...
reconnecting = [accent]Reconnecting...
@@ -459,6 +469,7 @@ editor.shiftx = Shift X
editor.shifty = Shift Y
workshop = Workshop
waves.title = Vågor
+waves.team = Team
waves.remove = Ta bort
waves.every = var
waves.waves = våg(or)
@@ -706,14 +717,18 @@ loadout = Loadout
resources = Resources
resources.max = Max
bannedblocks = Banned Blocks
+unbannedblocks = Unbanned Blocks
objectives = Objectives
bannedunits = Banned Units
+unbannedunits = Unbanned Units
bannedunits.whitelist = Banned Units As Whitelist
bannedblocks.whitelist = Banned Blocks As Whitelist
addall = Add All
launch.from = Launching From: [accent]{0}
launch.capacity = Launching Item Capacity: [accent]{0}
launch.destination = Destination: {0}
+landing.sources = Source Sectors: [accent]{0}[]
+landing.import = Max Total Import: {0}[accent]{1}[lightgray]/min
configure.invalid = Amount must be a number between 0 and {0}.
add = Lägg till...
guardian = Guardian
@@ -752,7 +767,9 @@ sectors.stored = Lagrade:
sectors.resume = Återuppta
sectors.launch = Skjuta upp
sectors.select = Select
+sectors.launchselect = Select Launch Destination
sectors.nonelaunch = [lightgray]none (sun)
+sectors.redirect = Redirect Launch Pads
sectors.rename = Byt namn på sektor
sectors.enemybase = [scarlet]Enemy Base
sectors.vulnerable = [scarlet]Vulnerable
@@ -783,6 +800,10 @@ difficulty.easy = Easy
difficulty.normal = Normal
difficulty.hard = Hard
difficulty.eradication = Eradication
+difficulty.enemyHealthMultiplier = Enemy Health: {0}
+difficulty.enemySpawnMultiplier = Enemy Amount: {0}
+difficulty.waveTimeMultiplier = Wave Timer: {0}
+difficulty.nomodifiers = [lightgray](No modifiers)
planets = Planets
planet.serpulo.name = Serpulo
@@ -1012,6 +1033,7 @@ stat.buildspeedmultiplier = Build Speed Multiplier
stat.reactive = Reacts
stat.immunities = Immunities
stat.healing = Healing
+stat.efficiency = [stat]{0}% Efficiency
ability.forcefield = Force Field
ability.forcefield.description = Projects a force shield that absorbs bullets
@@ -1059,6 +1081,7 @@ ability.stat.buildtime = [stat]{0} sec[lightgray] build time
bar.onlycoredeposit = Only Core Depositing Allowed
bar.drilltierreq = Bättre Borr Krävs
+bar.nobatterypower = Insufficieny Battery Power
bar.noresources = Missing Resources
bar.corereq = Core Base Required
bar.corefloor = Core Zone Tile Required
@@ -1067,6 +1090,7 @@ bar.drillspeed = Drill Speed: {0}/s
bar.pumpspeed = Pump Speed: {0}/s
bar.efficiency = Effektivitet: {0}%
bar.boost = Boost: +{0}%
+bar.powerbuffer = Battery Power: {0}/{1}
bar.powerbalance = Power: {0}/s
bar.powerstored = Stored: {0}/{1}
bar.poweramount = Power: {0}
@@ -1077,6 +1101,7 @@ bar.capacity = Capacity: {0}
bar.unitcap = {0} {1}/{2}
bar.liquid = Vätska
bar.heat = Hetta
+bar.cooldown = Cooldown
bar.instability = Instability
bar.heatamount = Heat: {0}
bar.heatpercent = Heat: {0} ({1}%)
@@ -1101,6 +1126,7 @@ bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
bullet.frags = [stat]{0}[lightgray]x frag bullets:
bullet.lightning = [stat]{0}[lightgray]x lightning ~ [stat]{1}[lightgray] damage
bullet.buildingdamage = [stat]{0}%[lightgray] building damage
+bullet.shielddamage = [stat]{0}%[lightgray] shield damage
bullet.knockback = [stat]{0}[lightgray] knockback
bullet.pierce = [stat]{0}[lightgray]x pierce
bullet.infinitepierce = [stat]pierce
@@ -1127,6 +1153,7 @@ unit.minutes = mins
unit.persecond = /sek
unit.perminute = /min
unit.timesspeed = x hastighet
+unit.multiplier = x
unit.percent = %
unit.shieldhealth = shield health
unit.items = föremål
@@ -1203,11 +1230,13 @@ setting.mutemusic.name = Stäng Av Musik
setting.sfxvol.name = Ljudeffektvolym
setting.mutesound.name = Stäng Av Ljudeffekter
setting.crashreport.name = Skicka Anonyma Krashrapporter
+setting.communityservers.name = Fetch Community Server List
setting.savecreate.name = Auto-Create Saves
setting.steampublichost.name = Public Game Visibility
setting.playerlimit.name = Player Limit
setting.chatopacity.name = Chattgenomskinlighet
setting.lasersopacity.name = Power Laser Opacity
+setting.unitlaseropacity.name = Unit Mining Beam Opacity
setting.bridgeopacity.name = Bridge Opacity
setting.playerchat.name = Visa
setting.showweather.name = Show Weather Graphics
@@ -1216,6 +1245,9 @@ setting.macnotch.name = Anpassa gränssnittet för att visa skåra
setting.macnotch.description = Omstart krävs för att tillämpa ändringar
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.
public.beta = Note that beta versions of the game cannot make public lobbies.
uiscale.reset = UI-skalan har ändrats.\nTryck "OK" för att använda den här skalan.\n[scarlet]Avslutar och återställer om[accent] {0}[] sekunder...
uiscale.cancel = Avbryt och Avsluta
@@ -1296,6 +1328,7 @@ keybind.shoot.name = Shoot
keybind.zoom.name = Zoom
keybind.menu.name = Menu
keybind.pause.name = Pause
+keybind.skip_wave.name = Skip Wave
keybind.pause_building.name = Pause/Resume Building
keybind.minimap.name = Minimap
keybind.planet_map.name = Planet Map
@@ -1363,12 +1396,14 @@ rules.unitcostmultiplier = Unit Cost Multiplier
rules.unithealthmultiplier = Unit Health Multiplier
rules.unitdamagemultiplier = Unit Damage Multiplier
rules.unitcrashdamagemultiplier = Unit Crash Damage Multiplier
+rules.unitminespeedmultiplier = Unit Mine Speed Multiplier
rules.solarmultiplier = Solar Power Multiplier
rules.unitcapvariable = Cores Contribute To Unit Cap
rules.unitpayloadsexplode = Carried Payloads Explode With The Unit
rules.unitcap = Base Unit Cap
rules.limitarea = Limit Map Area
rules.enemycorebuildradius = Enemy Core No-Build Radius:[lightgray] (tiles)
+rules.extracorebuildradius = Extra No-Build Radius:[lightgray] (tiles)
rules.wavespacing = Wave Spacing:[lightgray] (sec)
rules.initialwavespacing = Initial Wave Spacing:[lightgray] (sec)
rules.buildcostmultiplier = Build Cost Multiplier
@@ -1391,6 +1426,9 @@ rules.title.planet = Planet
rules.lighting = Lighting
rules.fog = Fog of War
rules.invasions = Enemy Sector Invasions
+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.fire = Fire
@@ -1707,6 +1745,8 @@ block.meltdown.name = Meltdown
block.foreshadow.name = Foreshadow
block.container.name = Container
block.launch-pad.name = Launch Pad
+block.advanced-launch-pad.name = Launch Pad
+block.landing-pad.name = Landing Pad
block.segment.name = Segment
block.ground-factory.name = Ground Factory
block.air-factory.name = Air Factory
@@ -1762,6 +1802,8 @@ block.arkyic-vent.name = Arkyic Vent
block.yellow-stone-vent.name = Yellow Stone Vent
block.red-stone-vent.name = Red Stone Vent
block.crystalline-vent.name = Crystalline Vent
+block.stone-vent.name = Stone Vent
+block.basalt-vent.name = Basalt Vent
block.redmat.name = Redmat
block.bluemat.name = Bluemat
block.core-zone.name = Core Zone
@@ -1915,77 +1957,77 @@ hint.respawn = To respawn as a ship, press [accent][[V][].
hint.respawn.mobile = You have switched control to a unit/structure. To respawn as a ship, [accent]tap the avatar in the top left.[]
hint.desktopPause = Press [accent][[Space][] to pause and unpause the game.
hint.breaking = [accent]Right-click[] and drag to break blocks.
-hint.breaking.mobile = Activate the \ue817 [accent]hammer[] in the bottom right and tap to break blocks.\n\nHold down your finger for a second and drag to break in a selection.
+hint.breaking.mobile = Activate the :hammer: [accent]hammer[] in the bottom right and tap to break blocks.\n\nHold down your finger for a second and drag to break in a selection.
hint.blockInfo = View information of a block by selecting it in the [accent]build menu[], then selecting the [accent][[?][] button at the right.
hint.derelict = [accent]Derelict[] structures are broken remnants of old bases that no longer function.\n\nThese structures can be [accent]deconstructed[] for resources.
-hint.research = Use the \ue875 [accent]Research[] button to research new technology.
-hint.research.mobile = Use the \ue875 [accent]Research[] button in the \ue88c [accent]Menu[] to research new technology.
+hint.research = Use the :tree: [accent]Research[] button to research new technology.
+hint.research.mobile = Use the :tree: [accent]Research[] button in the :menu: [accent]Menu[] to research new technology.
hint.unitControl = Hold [accent][[L-ctrl][] and [accent]click[] to control friendly units or turrets.
hint.unitControl.mobile = [accent][[Double-tap][] to control friendly units or turrets.
hint.unitSelectControl = To control units, enter [accent]command mode[] by holding [accent]L-shift.[]\nWhile in command mode, click and drag to select units. [accent]Right-click[] a location or target to command units there.
hint.unitSelectControl.mobile = To control units, enter [accent]command mode[] by pressing the [accent]command[] button in the bottom left.\nWhile in command mode, long-press and drag to select units. Tap a location or target to command units there.
-hint.launch = Once enough resources are collected, you can [accent]Launch[] by selecting nearby sectors from the \ue827 [accent]Map[] in the bottom right.
-hint.launch.mobile = Once enough resources are collected, you can [accent]Launch[] by selecting nearby sectors from the \ue827 [accent]Map[] in the \ue88c [accent]Menu[].
+hint.launch = Once enough resources are collected, you can [accent]Launch[] by selecting nearby sectors from the :map: [accent]Map[] in the bottom right.
+hint.launch.mobile = Once enough resources are collected, you can [accent]Launch[] by selecting nearby sectors from the :map: [accent]Map[] in the :menu: [accent]Menu[].
hint.schematicSelect = Hold [accent][[F][] and drag to select blocks to copy and paste.\n\n[accent][[Middle Click][] to copy a single block type.
hint.rebuildSelect = Hold [accent][[B][] and drag to select destroyed block plans.\nThis will rebuild them automatically.
-hint.rebuildSelect.mobile = Select the \ue874 copy button, then tap the \ue80f rebuild button and drag to select destroyed block plans.\nThis will rebuild them automatically.
+hint.rebuildSelect.mobile = Select the :copy: copy button, then tap the :wrench: rebuild button and drag to select destroyed block plans.\nThis will rebuild them automatically.
hint.conveyorPathfind = Hold [accent][[L-Ctrl][] while dragging conveyors to automatically generate a path.
-hint.conveyorPathfind.mobile = Enable \ue844 [accent]diagonal mode[] and drag conveyors to automatically generate a path.
+hint.conveyorPathfind.mobile = Enable :diagonal: [accent]diagonal mode[] and drag conveyors to automatically generate a path.
hint.boost = Hold [accent][[L-Shift][] to fly over obstacles with your current unit.\n\nOnly a few ground units have boosters.
hint.payloadPickup = Press [accent][[[] to pick up small blocks or units.
hint.payloadPickup.mobile = [accent]Tap and hold[] a small block or unit to pick it up.
hint.payloadDrop = Press [accent]][] to drop a payload.
hint.payloadDrop.mobile = [accent]Tap and hold[] an empty location to drop a payload there.
hint.waveFire = [accent]Wave[] turrets with water as ammunition will automatically put out nearby fires.
-hint.generator = \uf879 [accent]Combustion Generators[] burn coal and transmit power to adjacent blocks.\n\nPower transmission range can be extended with \uf87f [accent]Power Nodes[].
-hint.guardian = [accent]Guardian[] units are armored. Weak ammo such as [accent]Copper[] and [accent]Lead[] is [scarlet]not effective[].\n\nUse higher tier turrets or \uf835 [accent]Graphite[] \uf861Duo/\uf859Salvo ammunition to take Guardians down.
-hint.coreUpgrade = Cores can be upgraded by [accent]placing higher-tier cores over them[].\n\nPlace a \uf868 [accent]Foundation[] core over the \uf869 [accent]Shard[] core. Make sure it is free from nearby obstructions.
+hint.generator = :combustion-generator: [accent]Combustion Generators[] burn coal and transmit power to adjacent blocks.\n\nPower transmission range can be extended with :power-node: [accent]Power Nodes[].
+hint.guardian = [accent]Guardian[] units are armored. Weak ammo such as [accent]Copper[] and [accent]Lead[] is [scarlet]not effective[].\n\nUse higher tier turrets or :graphite: [accent]Graphite[] :duo:Duo/:salvo:Salvo ammunition to take Guardians down.
+hint.coreUpgrade = Cores can be upgraded by [accent]placing higher-tier cores over them[].\n\nPlace a :core-foundation: [accent]Foundation[] core over the :core-shard: [accent]Shard[] core. Make sure it is free from nearby obstructions.
hint.presetLaunch = Gray [accent]landing zone sectors[], such as [accent]Frozen Forest[], can be launched to from anywhere. They do not require capture of nearby territory.\n\n[accent]Numbered sectors[], such as this one, are [accent]optional[].
hint.presetDifficulty = This sector has a [scarlet]high enemy threat level[].\nLaunching to such sectors is [accent]not recommended[] without proper technology and preparation.
hint.coreIncinerate = After the core is filled to capacity with an item, any extra items of that type it receives will be [accent]incinerated[].
hint.factoryControl = To set a unit factory's [accent]output destination[], click a factory block while in command mode, then right-click a location.\nUnits produced by it will automatically move there.
hint.factoryControl.mobile = To set a unit factory's [accent]output destination[], tap a factory block while in command mode, then tap a location.\nUnits produced by it will automatically move there.
-gz.mine = Move near the \uf8c4 [accent]copper ore[] on the ground and click to begin mining.
-gz.mine.mobile = Move near the \uf8c4 [accent]copper ore[] on the ground and tap it to begin mining.
-gz.research = Open the \ue875 tech tree.\nResearch the \uf870 [accent]Mechanical Drill[], then select it from the menu in the bottom right.\nClick on a copper patch to place it.
-gz.research.mobile = Open the \ue875 tech tree.\nResearch the \uf870 [accent]Mechanical Drill[], then select it from the menu in the bottom right.\nTap on a copper patch to place it.\n\nPress the \ue800 [accent]checkmark[] at the bottom right to confirm.
-gz.conveyors = Research and place \uf896 [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nClick and drag to place multiple conveyors.\n[accent]Scroll[] to rotate.
-gz.conveyors.mobile = Research and place \uf896 [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nHold down your finger for a second and drag to place multiple conveyors.
+gz.mine = Move near the :ore-copper: [accent]copper ore[] on the ground and click to begin mining.
+gz.mine.mobile = Move near the :ore-copper: [accent]copper ore[] on the ground and tap it to begin mining.
+gz.research = Open the :tree: tech tree.\nResearch the :mechanical-drill: [accent]Mechanical Drill[], then select it from the menu in the bottom right.\nClick on a copper patch to place it.
+gz.research.mobile = Open the :tree: tech tree.\nResearch the :mechanical-drill: [accent]Mechanical Drill[], then select it from the menu in the bottom right.\nTap on a copper patch to place it.\n\nPress the \ue800 [accent]checkmark[] at the bottom right to confirm.
+gz.conveyors = Research and place :conveyor: [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nClick and drag to place multiple conveyors.\n[accent]Scroll[] to rotate.
+gz.conveyors.mobile = Research and place :conveyor: [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nHold down your finger for a second and drag to place multiple conveyors.
gz.drills = Expand the mining operation.\nPlace more Mechanical Drills.\nMine 100 copper.
-gz.lead = \uf837 [accent]Lead[] is another commonly used resource.\nSet up drills to mine lead.
-gz.moveup = \ue804 Move up for further objectives.
-gz.turrets = Research and place 2 \uf861 [accent]Duo[] turrets to defend the core.\nDuo turrets require \uf838 [accent]ammo[] from conveyors.
+gz.lead = :lead: [accent]Lead[] is another commonly used resource.\nSet up drills to mine lead.
+gz.moveup = :up: Move up for further objectives.
+gz.turrets = Research and place 2 :duo: [accent]Duo[] turrets to defend the core.\nDuo turrets require \uf838 [accent]ammo[] from conveyors.
gz.duoammo = Supply the Duo turrets with [accent]copper[], using conveyors.
-gz.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace \uf8ae [accent]copper walls[] around the turrets.
+gz.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace :copper-wall: [accent]copper walls[] around the turrets.
gz.defend = Enemy incoming, prepare to defend.
-gz.aa = Flying units cannot easily be dispatched with standard turrets.\n\uf860 [accent]Scatter[] turrets provide excellent anti-air, but require \uf837 [accent]lead[] as ammo.
+gz.aa = Flying units cannot easily be dispatched with standard turrets.\n:scatter: [accent]Scatter[] turrets provide excellent anti-air, but require :lead: [accent]lead[] as ammo.
gz.scatterammo = Supply the Scatter turret with [accent]lead[], using conveyors.
gz.supplyturret = [accent]Supply Turret
gz.zone1 = This is the enemy drop zone.
gz.zone2 = Anything built in the radius is destroyed when a wave starts.
gz.zone3 = A wave will begin now.\nGet ready.
gz.finish = Build more turrets, mine more resources,\nand defend against all the waves to [accent]capture the sector[].
-onset.mine = Click to mine \uf748 [accent]beryllium[] from walls.\n\nUse [accent][[WASD] to move.
-onset.mine.mobile = Tap to mine \uf748 [accent]beryllium[] from walls.
-onset.research = Open the \ue875 tech tree.\nResearch, then place a \uf73e [accent]turbine condenser[] on the vent.\nThis will generate [accent]power[].
-onset.bore = Research and place a \uf741 [accent]plasma bore[].\nThis automatically mines resources from walls.
-onset.power = To [accent]power[] the plasma bore, research and place a \uf73d [accent]beam node[].\nConnect the turbine condenser to the plasma bore.
-onset.ducts = Research and place \uf799 [accent]ducts[] to move the mined resources from the plasma bore to the core.\nClick and drag to place multiple ducts.\n[accent]Scroll[] to rotate.
-onset.ducts.mobile = Research and place \uf799 [accent]ducts[] to move the mined resources from the plasma bore to the core.\n\nHold down your finger for a second and drag to place multiple ducts.
+onset.mine = Click to mine :beryllium: [accent]beryllium[] from walls.\n\nUse [accent][[WASD] to move.
+onset.mine.mobile = Tap to mine :beryllium: [accent]beryllium[] from walls.
+onset.research = Open the :tree: tech tree.\nResearch, then place a :turbine-condenser: [accent]turbine condenser[] on the vent.\nThis will generate [accent]power[].
+onset.bore = Research and place a :plasma-bore: [accent]plasma bore[].\nThis automatically mines resources from walls.
+onset.power = To [accent]power[] the plasma bore, research and place a :beam-node: [accent]beam node[].\nConnect the turbine condenser to the plasma bore.
+onset.ducts = Research and place :duct: [accent]ducts[] to move the mined resources from the plasma bore to the core.\nClick and drag to place multiple ducts.\n[accent]Scroll[] to rotate.
+onset.ducts.mobile = Research and place :duct: [accent]ducts[] to move the mined resources from the plasma bore to the core.\n\nHold down your finger for a second and drag to place multiple ducts.
onset.moremine = Expand the mining operation.\nPlace more Plasma Bores and use beam nodes and ducts to support them.\nMine 200 beryllium.
-onset.graphite = More complex blocks require \uf835 [accent]graphite[].\nSet up plasma bores to mine graphite.
-onset.research2 = Begin researching [accent]factories[].\nResearch the \uf74d [accent]cliff crusher[] and \uf779 [accent]silicon arc furnace[].
-onset.arcfurnace = The arc furnace needs \uf834 [accent]sand[] and \uf835 [accent]graphite[] to create \uf82f [accent]silicon[].\n[accent]Power[] is also required.
-onset.crusher = Use \uf74d [accent]cliff crushers[] to mine sand.
-onset.fabricator = Use [accent]units[] to explore the map, defend buildings, and attack the enemy. Research and place a \uf6a2 [accent]tank fabricator[].
+onset.graphite = More complex blocks require :graphite: [accent]graphite[].\nSet up plasma bores to mine graphite.
+onset.research2 = Begin researching [accent]factories[].\nResearch the :cliff-crusher: [accent]cliff crusher[] and :silicon-arc-furnace: [accent]silicon arc furnace[].
+onset.arcfurnace = The arc furnace needs :sand: [accent]sand[] and :graphite: [accent]graphite[] to create :silicon: [accent]silicon[].\n[accent]Power[] is also required.
+onset.crusher = Use :cliff-crusher: [accent]cliff crushers[] to mine sand.
+onset.fabricator = Use [accent]units[] to explore the map, defend buildings, and attack the enemy. Research and place a :tank-fabricator: [accent]tank fabricator[].
onset.makeunit = Produce a unit.\nUse the "?" button to see selected factory requirements.
-onset.turrets = Units are effective, but [accent]turrets[] provide better defensive capabilities if used effectively.\nPlace a \uf6eb [accent]Breach[] turret.\nTurrets require \uf748 [accent]ammo[].
+onset.turrets = Units are effective, but [accent]turrets[] provide better defensive capabilities if used effectively.\nPlace a :breach: [accent]Breach[] turret.\nTurrets require :beryllium: [accent]ammo[].
onset.turretammo = Supply the turret with [accent]beryllium ammo.[]
-onset.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace some \uf6ee [accent]beryllium walls[] around the turret.
+onset.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace some :beryllium-wall: [accent]beryllium walls[] around the turret.
onset.enemies = Enemy incoming, prepare to defend.
onset.defenses = [accent]Set up defenses:[lightgray] {0}
onset.attack = The enemy is vulnerable. Counter-attack.
-onset.cores = New cores can be placed on [accent]core tiles[].\nNew cores function as forward bases and share a resource inventory with other cores.\nPlace a \uf725 core.
+onset.cores = New cores can be placed on [accent]core tiles[].\nNew cores function as forward bases and share a resource inventory with other cores.\nPlace a :core-bastion: core.
onset.detect = The enemy will be able to detect you in 2 minutes.\nSet up defenses, mining, and production.
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.
@@ -2145,7 +2187,9 @@ block.vault.description = Stores a large amount of items of each type. An unload
block.container.description = Stores a small amount of items of each type. An unloader block can be used to retrieve items from the container.
block.unloader.description = Unloads items from a container, vault or core onto a conveyor or directly into an adjacent block. The type of item to be unloaded can be changed by tapping.
block.launch-pad.description = Launches batches of items without any need for a core launch.
-block.launch-pad.details = Sub-orbital system for point-to-point transportation of resources. Payload pods are fragile and incapable of surviving re-entry.
+block.advanced-launch-pad.description = Launches batches of items to selected sectors. Only accepts one item type at a time.
+block.advanced-launch-pad.details = Sub-orbital system for point-to-point transportation of resources.
+block.landing-pad.description = Receives items from launch pads in other sectors. Requires large amounts of water to protect against impacts of landings.
block.duo.description = A small, cheap turret. Useful against ground units.
block.scatter.description = An essential anti-air turret. Sprays clumps of lead or scrap flak at enemy units.
block.scorch.description = Burns any ground enemies close to it. Highly effective at close range.
@@ -2252,6 +2296,7 @@ block.unit-cargo-loader.description = Constructs cargo drones. Drones automatica
block.unit-cargo-unload-point.description = Acts as an unloading point for cargo drones. Accepts items that match the selected filter.
block.beam-node.description = Transmits power to other blocks orthogonally. Stores a small amount of power.
block.beam-tower.description = Transmits power to other blocks orthogonally. Stores a large amount of power. Long-range.
+block.beam-link.description = Transmits power over vast distances.\nOnly capable of connecting to adjacent structures or other beam links.
block.turbine-condenser.description = Generates power when placed on vents. Produces a small amount of water.
block.chemical-combustion-chamber.description = Generates power from arkycite and ozone.
block.pyrolysis-generator.description = Generates large amounts of power from arkycite and slag. Produces water as a byproduct.
@@ -2340,6 +2385,7 @@ unit.emanate.description = Builds structures to defend the Acropolis core. Repai
lst.read = Read a number from a linked memory cell.
lst.write = Write a number to a linked memory cell.
lst.print = Add text to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used.
+lst.printchar = Add a UTF-16 character or content icon to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used.
lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example"
lst.draw = Add an operation to the drawing buffer.\nDoes not display anything until [accent]Draw Flush[] is used.
lst.drawflush = Flush queued [accent]Draw[] operations to a display.
@@ -2425,12 +2471,14 @@ lenum.shootp = Shoot at a unit/building with velocity prediction.
lenum.config = Building configuration, e.g. sorter item.
lenum.enabled = Whether the block is enabled.
laccess.currentammotype = Current ammo item/liquid of a turret.
+laccess.memorycapacity = Number of cells in a memory block.
laccess.color = Illuminator color.
laccess.controller = Unit controller. If processor controlled, returns processor.\nIf in a formation, returns leader.\nOtherwise, returns the unit itself.
laccess.dead = Whether a unit/building is dead or no longer valid.
laccess.controlled = Returns:\n[accent]@ctrlProcessor[] if unit controller is processor\n[accent]@ctrlPlayer[] if unit/building controller is player\n[accent]@ctrlFormation[] if unit is in formation\nOtherwise, 0.
laccess.progress = Action progress, 0 to 1.\nReturns production, turret reload or construction progress.
laccess.speed = Top speed of a unit, in tiles/sec.
+laccess.size = Size of a unit/building or the length of a string.
laccess.id = ID of a unit/block/item/liquid.\nThis is the inverse of the lookup operation.
lcategory.unknown = Unknown
lcategory.unknown.description = Uncategorized instructions.
@@ -2559,3 +2607,29 @@ lenum.autoscale = Whether to scale marker corresponding to player's zoom level.
lenum.posi = Indexed position, used for line and quad markers with index zero being the first position.
lenum.uvi = Texture's position ranging from zero to one, used for quad markers.
lenum.colori = Indexed position, used for line and quad markers with index zero being the first color.
+lenum.wavetimer = Whether the waves come automatically on a timer. If not, waves come when the play button is pressed.
+lenum.wave = Current wave number. Can be anything in non-wave modes.
+lenum.currentwavetime = Wave countdown in ticks.
+lenum.waves = Whether waves are spawnable at all.
+lenum.wavesending = Whether the waves can be manually summoned with the play button.
+lenum.attackmode = Determines if gamemode is attack mode.
+lenum.wavespacing = Time between waves in ticks.
+lenum.enemycorebuildradius = No-build zone around enemy core radius.
+lenum.dropzoneradius = Radius around enemy wave drop zones.
+lenum.unitcap = Base unit cap. Can still be increased by blocks.
+lenum.lighting = Whether ambient lighting is enabled.
+lenum.buildspeed = Multiplier for building speed.
+lenum.unithealth = How much health units start with.
+lenum.unitbuildspeed = How fast unit factories build units.
+lenum.unitcost = Multiplier of resources that units take to build.
+lenum.unitdamage = How much damage units deal.
+lenum.blockhealth = How much health blocks start with.
+lenum.blockdamage = How much damage blocks (turrets) deal.
+lenum.rtsminweight = Minimum "advantage" needed for a squad to attack. Higher -> more cautious.
+lenum.rtsminsquad = Minimum size of attack squads.
+lenum.maparea = Playable map area. Anything outside the area will not be interactable.
+lenum.ambientlight = Ambient light color. Used when lighting is enabled.
+lenum.solarmultiplier = Multiplies power output of solar panels.
+lenum.dragmultiplier = Environment drag multiplier.
+lenum.ban = Blocks or units that cannot be placed or built.
+lenum.unban = Unban a unit or block.
diff --git a/core/assets/bundles/bundle_th.properties b/core/assets/bundles/bundle_th.properties
index 1efd96ac21..af6268aed7 100644
--- a/core/assets/bundles/bundle_th.properties
+++ b/core/assets/bundles/bundle_th.properties
@@ -131,6 +131,7 @@ feature.unsupported = อุปกรณ์ของคุณไม่รอง
mods.initfailed = [red]⚠[] ไม่สามารถเปิดเกม Mindustry ได้ อาจเกิดจากม็อดที่ทำงานผิดปกติ\n\nเพื่อป้องกันการแครชต่อเนื่อง [red]ม็อดทั้งหมดได้ทำการปิดตัวลง[]
mods = ม็อด
+mods.name = Mod:
mods.none = [lightgray]ไม่พบม็อด!
mods.guide = คู่มือการทำม็อด
mods.report = รายงานบัค
@@ -155,7 +156,7 @@ mod.erroredcontent = [scarlet]เนื้อหาผิดพลาด
mod.circulardependencies = [red]ม็อดพึ่งพาวนลูป
mod.incompletedependencies = [red]ม็อดพึ่งพาไม่ครบ
mod.requiresversion.details = ต้องการเวอร์ชั่นเกม: [accent]{0}[]\nเกมของคุณนั้นเก่าเกินไป ม็อดนี้ต้องการเวอร์ชั่นเกมที่ใหม่กว่านี้ (อาจเป็นรุ่น beta/alpha) เพื่อที่จะทำงานได้
-mod.outdatedv7.details = ม็อดนี้ไม่สามารถใช้งานร่วมกับเกมเวอร์ชั่นล่าสุดได้ ผู้พัฒนาม็อดจะต้องอัปเดตม็อด และเพิ่ม [accent]minGameVersion: 136[] ลงในไฟล์ [accent]mod.json[] ของม็อด
+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 = ม็อดนี้ถูกขึ้นบัญชีดำเพราะทำให้เกิดข้อขัดข้องและปัญหาอื่นๆ ในเวอร์ชั่นเกมนี้ ห้ามใช้เด็ดขาด
mod.missingdependencies.details = ม็อดนี้ขาดม็อดพึ่งพา: {0}
mod.erroredcontent.details = เกมเกิดปัญหาในระหว่างการโหลด กรุณาสอบถามผู้พัฒนาม็อดเพื่อให้แก้ไข
@@ -164,7 +165,6 @@ mod.incompletedependencies.details = ม็อดนี้ไม่สามา
mod.requiresversion = ต้องการเวอร์ชั่นเกม: [red]{0}
mod.errors = มีข้อผิดพลาดเกิดขึ้นระหว่างโหลดเนื้อหา
mod.noerrorplay = [scarlet]คุณมีม็อดที่มีข้อผิดพลาด[] กรุณาปิดม็อดนั้นๆ หรือแก้ไขข้อผิดพลาดก่อนที่จะเล่น
-mod.nowdisabled = [scarlet]ม็อด '{0}' ขาดม็อดพื่งพา:[accent] {1}\n[lightgray]จำเป็นต้องโหลดม็อดพวกนี้ก่อน\nม็อดนี้จะถูกปิดใช้งานโดยอัตโนมัติ
mod.enable = เปิดใช้งาน
mod.requiresrestart = เกมจะปิดตัวลงเพื่อติดตั้งม็อด
mod.reloadrequired = [scarlet]จำเป็นต้องรีโหลด
@@ -179,6 +179,15 @@ mod.missing = เซฟนี้มีม็อดที่คุณพึ่ง
mod.preview.missing = ก่อนที่จะนำม็อดไปลงในเวิร์กช็อป คุณต้องใส่รูปพรีวิวก่อน\nใส่รูปชื่อ[accent] preview.png[] ลงในโฟลเดอร์ของม็อดแล้วลองอีกครั้ง
mod.folder.missing = ม็อดที่อยู่ในรูปแบบโฟลเดอร์เท่านั้นที่สามารถลงในเวิร์กช็อปได้\nunzip ไฟล์แล้วลบไฟล์ zip เก่า แล้วรีสตาร์ทเกมหรือรีโหลดม็อด
mod.scripts.disable = เครื่องของคุณไม่รองรับม็อดที่มีสคริปต์ คุณจำเป็นต้องปิดม็อดเหล่านี้ก่อนจึงจะสามารถเล่นได้
+mod.dependencies.error = [scarlet]Mods are missing dependencies
+mod.dependencies.soft = (optional)
+mod.dependencies.download = Import
+mod.dependencies.downloadreq = Import Required
+mod.dependencies.downloadall = Import All
+mod.dependencies.status = Import Results
+mod.dependencies.success = Successfully downloaded:
+mod.dependencies.failure = Failed to download:
+mod.dependencies.imported = This mod requires dependencies. Download?
about.button = เกี่ยวกับ
name = ชื่อ:
@@ -295,6 +304,7 @@ disconnect.error = การเชื่อมต่อมีปัญหา
disconnect.closed = การเชื่อมต่อถูกปิดแล้ว
disconnect.timeout = หมดเวลา
disconnect.data = การโหลดข้อมูลของโลกผิดพลาด!
+disconnect.snapshottimeout = Timed out while receiving UDP snapshots.\nThis may be caused by an unstable network or connection.
cantconnect = ไม่สามารถเข้าร่วมเซิร์ฟเวอร์ ([accent]{0}[])
connecting = [accent]กำลังเชื่อมต่อ...
reconnecting = [accent]กำลังเชื่อมต่อใหม่...
@@ -463,6 +473,7 @@ editor.shiftx = เลื่อน X
editor.shifty = เลื่อน Y
workshop = เวิร์กช็อป
waves.title = คลื่น
+waves.team = Team
waves.remove = ลบ
waves.every = ทุกๆ
waves.waves = คลื่น
@@ -715,14 +726,18 @@ loadout = ทรัพยากรเริ่มต้น
resources = ทรัพยากร
resources.max = เต็ม
bannedblocks = บล็อกต้องห้าม
+unbannedblocks = Unbanned Blocks
objectives = เป้าหมาย
bannedunits = ยูนิตต้องห้าม
+unbannedunits = Unbanned Units
bannedunits.whitelist = ตั้งยูนิตต้องห้ามเป็นไวท์ลิสต์
bannedblocks.whitelist = ตั้งบล็อกต้องห้ามเป็นไวท์ลิสต์
addall = เพิ่มทั้งหมด
launch.from = ลงจอดจากเซ็กเตอร์: [accent]{0}
launch.capacity = ความจุไอเท็มลงจอด: [accent]{0}
launch.destination = จุดหมายปลายทาง: {0}
+landing.sources = Source Sectors: [accent]{0}[]
+landing.import = Max Total Import: {0}[accent]{1}[lightgray]/min
configure.invalid = จำนวนต้องอยู่ระหว่าง 0 ถึง {0}
add = เพิ่ม...
guardian = ผู้พิทักษ์
@@ -762,7 +777,9 @@ sectors.stored = คลังไอเท็ม:
sectors.resume = ไปต่อ
sectors.launch = ลงจอด
sectors.select = เลือก
+sectors.launchselect = Select Launch Destination
sectors.nonelaunch = [lightgray]ไม่มี (ดวงอาทิตย์)
+sectors.redirect = Redirect Launch Pads
sectors.rename = เปลี่ยนชื่อเซ็กเตอร์
sectors.enemybase = [scarlet]ฐานทัพศัตรู
sectors.vulnerable = [scarlet]เสี่ยงภัย
@@ -794,6 +811,10 @@ difficulty.easy = Easy
difficulty.normal = Normal
difficulty.hard = Hard
difficulty.eradication = Eradication
+difficulty.enemyHealthMultiplier = Enemy Health: {0}
+difficulty.enemySpawnMultiplier = Enemy Amount: {0}
+difficulty.waveTimeMultiplier = Wave Timer: {0}
+difficulty.nomodifiers = [lightgray](No modifiers)
planets = ดาว
@@ -1026,6 +1047,7 @@ stat.buildspeedmultiplier = พหุคูณความเร็วการ
stat.reactive = ปฏิกิริยา
stat.immunities = ต่อต้านสถานะ
stat.healing = การรักษา
+stat.efficiency = [stat]{0}% Efficiency
ability.forcefield = โล่พลังงาน
ability.forcefield.description = ฉายโล่พลังงานที่ดูดซับกระสุนต่างๆ
@@ -1073,6 +1095,7 @@ ability.stat.buildtime = [stat]{0} วิ[lightgray] ความในการ
bar.onlycoredeposit = ขนย้ายทรัพยากรลงแกนกลางได้เท่านั้น
bar.drilltierreq = ต้องมีเครื่องขุดที่ดีกว่านี้
+bar.nobatterypower = Insufficieny Battery Power
bar.noresources = ขาดทรัพยากร
bar.corereq = ต้องวางบนแกนกลาง
bar.corefloor = ต้องวางบนช่องโซนแกนกลาง
@@ -1081,6 +1104,7 @@ bar.drillspeed = ความเร็วการขุด: {0}/วิ
bar.pumpspeed = ความเร็วการปั้ม: {0}/วิ
bar.efficiency = ประสิทธิภาพ: {0}%
bar.boost = การเร่ง: +{0}%
+bar.powerbuffer = Battery Power: {0}/{1}
bar.powerbalance = พลังงาน: {0}/วิ
bar.powerstored = สะสมไว้: {0}/{1}
bar.poweramount = พลังงาน: {0}
@@ -1091,6 +1115,7 @@ bar.capacity = ความจุ: {0}
bar.unitcap = {0} {1}/{2}
bar.liquid = ของเหลว
bar.heat = ความร้อน
+bar.cooldown = Cooldown
bar.instability = ความไม่เสถียร
bar.heatamount = ความร้อน: {0}
bar.heatpercent = ความร้อน: {0} ({1}%)
@@ -1115,6 +1140,7 @@ bullet.interval = [stat]{0}/วิ[lightgray] กระสุนช่วงร
bullet.frags = [stat]{0}[lightgray]x กระสุนกระจาย:
bullet.lightning = [stat]{0}[lightgray]x สายฟ้า ~ [stat]{1}[lightgray] ดาเมจ
bullet.buildingdamage = [lightgray]ดาเมจต่อสิ่งก่อสร้าง [stat]{0}%[lightgray]
+bullet.shielddamage = [stat]{0}%[lightgray] shield damage
bullet.knockback = [stat]{0}[lightgray] ดันกลับ
bullet.pierce = [lightgray]เจาะทะลุ [stat]{0}[lightgray]x
bullet.infinitepierce = [stat]เจาะทะลุ
@@ -1141,6 +1167,7 @@ unit.minutes = นาที
unit.persecond = /วิ
unit.perminute = /นาที
unit.timesspeed = x เร็วขึ้น
+unit.multiplier = x
unit.percent = %
unit.shieldhealth = พลังชีวิตโล่
unit.items = ไอเท็ม
@@ -1217,11 +1244,13 @@ setting.mutemusic.name = ปิดเสียงเพลง
setting.sfxvol.name = ระดับเสียง SFX
setting.mutesound.name = ปิดเสียง
setting.crashreport.name = ส่งรายงานข้อขัดข้องแบบไม่ระบุตัวตน
+setting.communityservers.name = Fetch Community Server List
setting.savecreate.name = สร้างเซฟโดยอัตโนมัติ
setting.steampublichost.name = การมองเห็นเกมสาธารณะ
setting.playerlimit.name = จำกัดผู้เล่น
setting.chatopacity.name = ความโปร่งแสงของแชท
setting.lasersopacity.name = ความโปร่งแสงของลำแสงพลังงาน
+setting.unitlaseropacity.name = Unit Mining Beam Opacity
setting.bridgeopacity.name = ความโปร่งแสงของสะพาน
setting.playerchat.name = แสดงกล่องแชทบนผู้เล่น
setting.showweather.name = แสดงกราฟิกสภาพอากาศ
@@ -1230,6 +1259,9 @@ setting.macnotch.name = ปรับอินเตอร์เฟซให้
setting.macnotch.description = อาจจะต้องรีสตาร์ทเพื่อใช้งานการเปลี่ยนแปลง
steam.friendsonly = เพื่อนเท่านั้น
steam.friendsonly.tooltip = ว่าจะให้แค่เพื่อนเท่านั้นหรือไม่ที่จะสามารถเข้าร่วมเกมของคุณได้\nหากคุณติ๊กช่องนี้ออกนั้นจะทำให้เกมของคุณเปิดเป็นสาธารณะ - ใครๆก็จะสามารถเข้าร่วมเกมของคุณได้
+setting.maxmagnificationmultiplierpercent.name = Min Camera Distance
+setting.minmagnificationmultiplierpercent.name = Max Camera Distance
+setting.minmagnificationmultiplierpercent.description = High values may cause performance issues.
public.beta = เกมเวอร์ชั่นเบต้าไม่สามารถเปิดเซิร์ฟเวอร์สาธารณะได้
uiscale.reset = อัตราขนาดของ UI ได้มีการเปลี่ยนแปลง\nกด "โอเค" เพื่อยืนยันขนาด UI นี้\n[scarlet]จะเปลี่ยนกลับไปเป็นขนาดเดิมและออกในอีก[accent] {0}[] วินาที...
uiscale.cancel = ยกเลิกและออก
@@ -1310,6 +1342,7 @@ keybind.shoot.name = ยิง
keybind.zoom.name = ซูม
keybind.menu.name = เมนู
keybind.pause.name = หยุดชั่วคราว
+keybind.skip_wave.name = Skip Wave
keybind.pause_building.name = หยุด/สร้างต่อ
keybind.minimap.name = มินิแมพ
keybind.planet_map.name = แผนที่ดาวเคราะห์
@@ -1377,12 +1410,14 @@ rules.unitcostmultiplier = พหูคุณราคาทรัพยาก
rules.unithealthmultiplier = พหุคูณพลังชีวิตของยูนิต
rules.unitdamagemultiplier = พหุคูณพลังโจมตีของยูนิต
rules.unitcrashdamagemultiplier = พหูคูณดาเมจการตกของยานยูนิต
+rules.unitminespeedmultiplier = Unit Mine Speed Multiplier
rules.solarmultiplier = พหูคุณพลังงานแสงอาทิตย์
rules.unitcapvariable = เพิ่มจำนวนยูนิตสูงสุดต่อแกนกลาง
rules.unitpayloadsexplode = สิ่งบรรทุกระเบิดไปพร้อมกับยูนิต
rules.unitcap = ขีดกำจัดยูนิตสูงสุดพื้นฐาน
rules.limitarea = จำกัดพื้นที่แมพ
rules.enemycorebuildradius = รัศมีห้ามสร้างบริเวณแกนกลางของศัตรู:[lightgray] (ช่อง)
+rules.extracorebuildradius = Extra No-Build Radius:[lightgray] (tiles)
rules.wavespacing = ระยะเวลาระหว่างคลื่น:[lightgray] (วินาที)
rules.initialwavespacing = ระยะเวลาระหว่างคลื่นแรก:[lightgray] (วินาที)
rules.buildcostmultiplier = พหุคูณราคาทรัพยากรในการสร้าง
@@ -1405,6 +1440,9 @@ rules.title.planet = ดาว
rules.lighting = แสง
rules.fog = หมอกแห่งสงคราม
rules.invasions = การรุกรานของฐานทัพศัตรู
+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 = แสดงจุดเกิดศัตรู
rules.randomwaveai = AI คลื่นแบบคาดเดาไม่ได้
rules.fire = ไฟ
@@ -1724,6 +1762,8 @@ block.meltdown.name = เมลท์ดาวน์
block.foreshadow.name = ฟอร์ชาโดว์
block.container.name = ตู้เก็บของ
block.launch-pad.name = ฐานส่งทรัพยากร
+block.advanced-launch-pad.name = Launch Pad
+block.landing-pad.name = Landing Pad
block.segment.name = เซ็กเมนต์
block.ground-factory.name = โรงงานยูนิตพื้นดิน
block.air-factory.name = โรงงานยูนิตอากาศ
@@ -1779,6 +1819,8 @@ block.arkyic-vent.name = ปล่องอาร์ยคิค
block.yellow-stone-vent.name = ปล่องหินเหลือง
block.red-stone-vent.name = ปล่องหินแดง
block.crystalline-vent.name = ปล่องหินตกผลืก
+block.stone-vent.name = Stone Vent
+block.basalt-vent.name = Basalt Vent
block.redmat.name = แมตแดง
block.bluemat.name = แมตน้ำเงิน
block.core-zone.name = โซนแกนกลาง
@@ -1933,51 +1975,51 @@ hint.respawn = ถ้าอยากเกิดใหม่ ให้กดป
hint.respawn.mobile = คุณกำลังควบคุมยูนิตหรือบล็อกอยู่ ถ้าจะเกิดใหม่เป็นยาน [accent]กดที่รูปอวาตาร์ซ้ายบน[]
hint.desktopPause = กด [accent][[Space][] เพื่อหยุดชั่วคราวหรือเล่นต่อ
hint.breaking = [accent]คลิ๊กขวา[] แล้วลากเพื่อทำลายบล็อก
-hint.breaking.mobile = เปิดใช้ \ue817 [accent]ค้อน[] ตรงล่างขวาแล้วเลือกเพื่อทำลายบล็อก\n\nเอานิ้วจิ้มลงไปสักแป๊บนึงแล้วลากเพื่อเลือกหลายๆ อัน
+hint.breaking.mobile = เปิดใช้ :hammer: [accent]ค้อน[] ตรงล่างขวาแล้วเลือกเพื่อทำลายบล็อก\n\nเอานิ้วจิ้มลงไปสักแป๊บนึงแล้วลากเพื่อเลือกหลายๆ อัน
hint.blockInfo = ดูข้อมูลของบล็อกโดยการเลือกจาก[accent]เมนูการสร้าง[] แล้วกดที่รูป [accent][[?][] ตรงด้านขวา
hint.derelict = สิ่งก่อสร้างที่ถูก[accent]ทิ้งร้าง[]คือเศษซากพังทลายของฐานเก่าแก่ที่ไม่สามารถใช้งานได้แล้ว\n\nสิ่งก่อสร้างพวกนี้สามารถ[accent]ทุบทิ้ง[]เพื่อเก็บเกี่ยวทรัพยากรที่อยู่ในนั้นได้
-hint.research = กดปุ่ม \ue875 [accent]วิจัย[] เพื่อวิจัยเทคโนโลยีใหม่ๆ
-hint.research.mobile = กดปุ่ม \ue875 [accent]วิจัย[] ใน \ue88c [accent]เมนู[] เพื่อวิจัยเทคโนโลยีใหม่ๆ
+hint.research = กดปุ่ม :tree: [accent]วิจัย[] เพื่อวิจัยเทคโนโลยีใหม่ๆ
+hint.research.mobile = กดปุ่ม :tree: [accent]วิจัย[] ใน :menu: [accent]เมนู[] เพื่อวิจัยเทคโนโลยีใหม่ๆ
hint.unitControl = กด [accent][[L-Ctrl][] ค้างไว้แล้วกด[accent]คลิ๊ก[]เพื่อควบคุมยานพันธมิตรหรือป้อมปืน
hint.unitControl.mobile = [accent][[กดสองครั้ง][] เพื่อควบคุมยานพันธมิตรหรือป้อมปืน
hint.unitSelectControl = เพื่อที่จะควบคุมยูนิต ให้เปิด[accent]โหมดสั่งการ[]โดยการกด [accent]L-shift[]\nระหว่างที่อยู่ในโหมดสั่งการ ให้คลิ๊กแล้วลากเพื่อเลือกยูนิต แล้ว[accent]คลิ๊กขวา[]ที่ตำแหน่งหรือเป้าหมายเพื่อสั่งการให้ยูนิตไปที่นั่น
hint.unitSelectControl.mobile = เพื่อที่จะควบคุมยูนิต ให้เปิด[accent]โหมดสั่งการ[]โดยการกดปุ่ม[accent]สั่งการ[]ที่ซ้ายล่างของจอ\nระหว่างที่อยู่ในโหมดสั่งการ ให้กดค้างแล้วลากเพื่อเลือกยูนิต แล้วกดที่ตำแหน่งหรือเป้าหมายเพื่อสั่งการให้ยูนิตไปที่นั่น
-hint.launch = เมื่อเก็บทรัพยากรเยอะพอ คุณสามารถ[accent]ส่งแกนกลาง[]ไปยังเซ็กเตอร์ถัดไปโดยการเลือกเซ็กเตอร์จาก \ue827 [accent]แผนที่[] ตรงขวาล่าง
-hint.launch.mobile = เมื่อเก็บทรัพยากรเยอะพอ คุณสามารถ[accent]ส่งแกนกลาง[]ไปยังเซ็กเตอร์ถัดไปโดยการเลือกเซ็กเตอร์จาก \ue827 [accent]แผนที่[] ใน \ue88c [accent]เมนู[]
+hint.launch = เมื่อเก็บทรัพยากรเยอะพอ คุณสามารถ[accent]ส่งแกนกลาง[]ไปยังเซ็กเตอร์ถัดไปโดยการเลือกเซ็กเตอร์จาก :map: [accent]แผนที่[] ตรงขวาล่าง
+hint.launch.mobile = เมื่อเก็บทรัพยากรเยอะพอ คุณสามารถ[accent]ส่งแกนกลาง[]ไปยังเซ็กเตอร์ถัดไปโดยการเลือกเซ็กเตอร์จาก :map: [accent]แผนที่[] ใน :menu: [accent]เมนู[]
hint.schematicSelect = กด [accent][[F][] แล้วลากเพื่อเลือกบล็อกที่จะคัดลอกและวาง\n\n[accent][[คลิ๊กกลาง][] เพื่อคัดลอกบล็อกชนิดเดียว
hint.rebuildSelect = กด [accent][[B][] แล้วลากเพื่อเลือกแผนบล็อกที่ถูกทำลาย\nแผนบล็อกที่เลือกจะถูกสร้างใหม้โดยอัตโนมัติ
-hint.rebuildSelect.mobile = กดปุ่ม \ue874 คัดลอก แล้วกดปุ่ม \ue80f สร้างใหม่แล้วลากเพื่อเลือกแผนบล็อกที่ถูกทำลาย\nแผนบล็อกที่เลือกจะถูกสร้างใหม้โดยอัตโนมัติ
+hint.rebuildSelect.mobile = กดปุ่ม :copy: คัดลอก แล้วกดปุ่ม :wrench: สร้างใหม่แล้วลากเพื่อเลือกแผนบล็อกที่ถูกทำลาย\nแผนบล็อกที่เลือกจะถูกสร้างใหม้โดยอัตโนมัติ
hint.conveyorPathfind = กด [accent][[L-Ctrl][] ในขณะที่กำลังลากสายพานเพื่อสร้างเส้นทางแบบอัตโนมัติ
-hint.conveyorPathfind.mobile = เปิดใช้งาน \ue844 [accent]โหมดแนวทแยง[] แล้วลากสายพานเพื่อสร้างเส้นทางแบบอัตโนมัติ
+hint.conveyorPathfind.mobile = เปิดใช้งาน :diagonal: [accent]โหมดแนวทแยง[] แล้วลากสายพานเพื่อสร้างเส้นทางแบบอัตโนมัติ
hint.boost = กด [accent][[L-Shift][] เพื่อบูสต์ข้ามสิ่งกีดขวางด้วยยูนิตของคุณ\n\nยูนิตพื้นดินบางประเภทเท่านั้นที่บินได้
hint.payloadPickup = กด [accent][[[] เพื่อหยิบบล็อกเล็กๆ หรือยูนิต
hint.payloadPickup.mobile = [accent]กดค้างไว้[]ที่บล็อกเล็กๆ หรือตัวยูนิตเพื่อหยิบขึ้นมา
hint.payloadDrop = กด [accent]][] เพื่อวางสิ่งที่บรรทุกอยู่
hint.payloadDrop.mobile = [accent]กดค้างไว้[]ที่พื้นที่โล่งๆ เพื่อวางสิ่งที่บรรทุกอยู่
hint.waveFire = ป้อมปืน[accent]คลื่นน้ำ[]หากเติมน้ำเข้าไปจะช่วยดับไฟรอบข้างให้อัตโนมัติ
-hint.generator = \uf879 [accent]เครื่องกำเนิดไฟฟ้าเผาไหม้[]จะเผาถ่านและส่งพลังงานไปยังบล็อกที่อยู่ใกล้ๆ\n\nระยะของพลังงานสามารถขยายได้ด้วย \uf87f [accent]ตัวจ่ายพลังงาน[]
-hint.guardian = หน่วย[accent]ผู้พิทักษ์[]มีเกราะป้องกันหนาแน่น กระสุนเปราะบางอย่าง[accent]ทองแดง[]และ[accent]ตะกั่ว[][scarlet]ไม่มีประสิทธิภาพ[]\n\nควรใช้ป้อมปืนที่ดีกว่านี้หรือใช้ \uf835 [accent]กราไฟท์[]ใส่ใน \uf861 ดูโอ/ \uf859 ซัลโวเป็นกระสุนเพื่อทำลายผู้พิทักษ์
-hint.coreUpgrade = สามารถอัปเกรดแกนกลางได้โดย[accent]วางแกนกลางที่ใหญ่กว่าทับมัน[]\n\nวาง \uf868 [accent]แกนกลาง: ฟาวน์เดชั่น[]ทับ \uf869 [accent]แกนกลาง: ชาร์ด[] ต้องแน่ใจว่ารอบข้างมีที่ว่างก่อนจะวาง
+hint.generator = :combustion-generator: [accent]เครื่องกำเนิดไฟฟ้าเผาไหม้[]จะเผาถ่านและส่งพลังงานไปยังบล็อกที่อยู่ใกล้ๆ\n\nระยะของพลังงานสามารถขยายได้ด้วย :power-node: [accent]ตัวจ่ายพลังงาน[]
+hint.guardian = หน่วย[accent]ผู้พิทักษ์[]มีเกราะป้องกันหนาแน่น กระสุนเปราะบางอย่าง[accent]ทองแดง[]และ[accent]ตะกั่ว[][scarlet]ไม่มีประสิทธิภาพ[]\n\nควรใช้ป้อมปืนที่ดีกว่านี้หรือใช้ :graphite: [accent]กราไฟท์[]ใส่ใน :duo: ดูโอ/ :salvo: ซัลโวเป็นกระสุนเพื่อทำลายผู้พิทักษ์
+hint.coreUpgrade = สามารถอัปเกรดแกนกลางได้โดย[accent]วางแกนกลางที่ใหญ่กว่าทับมัน[]\n\nวาง :core-foundation: [accent]แกนกลาง: ฟาวน์เดชั่น[]ทับ :core-shard: [accent]แกนกลาง: ชาร์ด[] ต้องแน่ใจว่ารอบข้างมีที่ว่างก่อนจะวาง
hint.presetLaunch = [accent]เซ็กเตอร์ลงจอด[]สีเทา อย่างเช่น[accent]ป่าหนาวเหน็บ[] สามารถลงจอดจากที่ไหนที่ได้ในแผนที่ พวกนั้นไม่จำเป็นต้องยืดครองเซ็กเตอร์รอบข้างเพื่อส่งแกนกลางไป\n\n[accent]เซ็กเตอร์ที่มีเลข[] อย่างเช่นอันนี้[accent]ไม่จำเป็น[]ต้องยืดครอง
hint.presetDifficulty = เซ็กเตอร์นี้มี[scarlet]ระดับภัยคุกคามศัตรูสูง[]\n[accent]ไม่แนะนำ[]ให้ลงจอดไปยังเซ็กเซอร์พวกนั้นหากไม่มีการเตรียมพร้อมและเทคโนโลยี
hint.coreIncinerate = เมื่อแกนกลางมีจำนวนไอเท็มชนิดหนึ่งที่กักเก็บไว้เต็ม ไอเท็มชนิดนั้นที่เข้ามาเพิ่มจะ[accent]ถูกเผา[]
hint.factoryControl = เพื่อที่จะตั้ง[accent]ตำแหน่งการส่งออก[]ของโรงงานยูนิต ให้กดที่โรงงานยูนิตในระหว่างที่อยู่ในโหมดสั่งการ แล้วกดคลิ๊กขวาที่ตำแหน่งที่ต้องการตั้ง\nยูนิตที่ถูกผลิตจะขยับออกมาที่จุดที่ตั้งโดยอัตโนมัติ
hint.factoryControl.mobile = เพื่อที่จะตั้ง[accent]ตำแหน่งการส่งออก[]ของโรงงานยูนิต ให้กดที่โรงงานยูนิตในระหว่างที่อยู่ในโหมดสั่งการ แล้วกดที่ตำแหน่งที่ต้องการตั้ง\nยูนิตที่ถูกผลิตจะขยับออกมาที่จุดที่ตั้งโดยอัตโนมัติ
-gz.mine = ขยับเข้าไปใกล้ๆ กับ \uf8c4 [accent]แร่ทองแดง[]ที่อยู่บนพื้นแล้วคลิ๊กเพื่อเริ่มการขุด
-gz.mine.mobile = ขยับเข้าไปใกล้ๆ กับ \uf8c4 [accent]แร่ทองแดง[]ที่อยู่บนพื้นแล้วกดที่แร่เพื่อเริ่มการขุด
-gz.research = เปิด \ue875 ต้นไม้แห่งเทคโนโลยี\nวิจัย \uf870 [accent]เครื่องขุดเชิงกล[] แล้วกดเลือกจากเมนูตรงแถบขวาล่าง\nคลิ๊กที่กลุ่มแร่ทองแดงเพื่อวางที่ขุด
-gz.research.mobile = เปิด \ue875 ต้นไม้แห่งเทคโนโลยี\nวิจัย \uf870 [accent]เครื่องขุดเชิงกล[] แล้วกดเลือกจากเมนูตรงแถบขวาล่าง\nกดที่กลุ่มแร่ทองแดงเพื่อวางที่ขุด\n\nกดปุ่ม \ue800 [accent]ติ๊กถูก[]ที่แถบล่างขวาเพื่อยืนยัน
-gz.conveyors = วิจัยและวาง \uf896 [accent]สายพาน[] เพื่อเคลื่อนย้ายทรัพยากรที่ขุดมาได้\nจากที่ขุดไปยังแกนกลาง\n\nกดคลิ๊กแล้วลากเพื่อวางสายพานหลายๆ อันให้เป็นทาง\n[accent]หมุนเม้าส์[]เพื่อหมุน
-gz.conveyors.mobile = วิจัยและวาง \uf896 [accent]สายพาน[] เพื่อเคลื่อนย้ายทรัพยากรที่ขุดมาได้\nจากที่ขุดไปยังแกนกลาง\n\nใช้นิ้วกดค้างที่ตำแหน่งซักวิแล้วลากเพื่อวางสายพานหลายๆ อันให้เป็นทาง
+gz.mine = ขยับเข้าไปใกล้ๆ กับ :ore-copper: [accent]แร่ทองแดง[]ที่อยู่บนพื้นแล้วคลิ๊กเพื่อเริ่มการขุด
+gz.mine.mobile = ขยับเข้าไปใกล้ๆ กับ :ore-copper: [accent]แร่ทองแดง[]ที่อยู่บนพื้นแล้วกดที่แร่เพื่อเริ่มการขุด
+gz.research = เปิด :tree: ต้นไม้แห่งเทคโนโลยี\nวิจัย :mechanical-drill: [accent]เครื่องขุดเชิงกล[] แล้วกดเลือกจากเมนูตรงแถบขวาล่าง\nคลิ๊กที่กลุ่มแร่ทองแดงเพื่อวางที่ขุด
+gz.research.mobile = เปิด :tree: ต้นไม้แห่งเทคโนโลยี\nวิจัย :mechanical-drill: [accent]เครื่องขุดเชิงกล[] แล้วกดเลือกจากเมนูตรงแถบขวาล่าง\nกดที่กลุ่มแร่ทองแดงเพื่อวางที่ขุด\n\nกดปุ่ม \ue800 [accent]ติ๊กถูก[]ที่แถบล่างขวาเพื่อยืนยัน
+gz.conveyors = วิจัยและวาง :conveyor: [accent]สายพาน[] เพื่อเคลื่อนย้ายทรัพยากรที่ขุดมาได้\nจากที่ขุดไปยังแกนกลาง\n\nกดคลิ๊กแล้วลากเพื่อวางสายพานหลายๆ อันให้เป็นทาง\n[accent]หมุนเม้าส์[]เพื่อหมุน
+gz.conveyors.mobile = วิจัยและวาง :conveyor: [accent]สายพาน[] เพื่อเคลื่อนย้ายทรัพยากรที่ขุดมาได้\nจากที่ขุดไปยังแกนกลาง\n\nใช้นิ้วกดค้างที่ตำแหน่งซักวิแล้วลากเพื่อวางสายพานหลายๆ อันให้เป็นทาง
gz.drills = ขยายปฎิบัติการขุด\nวางเครื่องขุดเชิงกลเพิ่ม\nขุดทองแดง 100 ชิ้น
-gz.lead = \uf837 [accent]ตะกั่ว[]เป็นทรัพยากรอีกชนิดที่ใช้กันอย่างแพร่หลาย\nตั้งเครื่องขุดเพื่อขุดแร่ตะกั่ว
-gz.moveup = \ue804 ขยับขึ้นเพื่อไปยังเป้าหมายถัดไป
-gz.turrets = วิจัยและวางป้อมปืน \uf861 [accent]ดูโอ้[]สองป้อมเพื่อปกป้องแกนกลางจากศัตรู\nป้อมปืนดูโอ้ต้องการ \uf838 [accent]กระสุน[]จากสายพาน
+gz.lead = :lead: [accent]ตะกั่ว[]เป็นทรัพยากรอีกชนิดที่ใช้กันอย่างแพร่หลาย\nตั้งเครื่องขุดเพื่อขุดแร่ตะกั่ว
+gz.moveup = :up: ขยับขึ้นเพื่อไปยังเป้าหมายถัดไป
+gz.turrets = วิจัยและวางป้อมปืน :duo: [accent]ดูโอ้[]สองป้อมเพื่อปกป้องแกนกลางจากศัตรู\nป้อมปืนดูโอ้ต้องการ \uf838 [accent]กระสุน[]จากสายพาน
gz.duoammo = เติมกระสุนให้แก่ป้อมปืนดูโอ้ด้วย[accent]ทองแดง[] โดยใช้สายพาน
-gz.walls = [accent]กำแพง[]สามารถป้องกันความเสียหายที่จะมาถึงให้ไม่ไปโดนสิ่งก่อสร้างได้\nวาง \uf8ae [accent]กำแพงทองแดง[]รอบๆ ป้อมปืน
+gz.walls = [accent]กำแพง[]สามารถป้องกันความเสียหายที่จะมาถึงให้ไม่ไปโดนสิ่งก่อสร้างได้\nวาง :copper-wall: [accent]กำแพงทองแดง[]รอบๆ ป้อมปืน
gz.defend = ศัตรูกำลังจะเข้ามา เตรียมตัวป้องกันให้ดี
-gz.aa = ป้อมปืนมาตรฐานไม่สามารถจัดการยูนิตบินได้เร็วพอ\nป้อมปืน \uf860 [accent]สแก็ตเตอร์[]นี้สามารถที่จะต่อต้านยูนิตบินได้อย่างดีเยี่ยม แต่ต้องใช้ \uf837 [accent]ตะกั่ว[]เป็นกระสุน
+gz.aa = ป้อมปืนมาตรฐานไม่สามารถจัดการยูนิตบินได้เร็วพอ\nป้อมปืน :scatter: [accent]สแก็ตเตอร์[]นี้สามารถที่จะต่อต้านยูนิตบินได้อย่างดีเยี่ยม แต่ต้องใช้ :lead: [accent]ตะกั่ว[]เป็นกระสุน
gz.scatterammo = เติมกระสุนให้แก่ป้อมปืนสแก็ตเตอร์ด้วย[accent]ตะกั่ว[] โดยใช้สายพาน
gz.supplyturret = [accent]เติมกระสุนป้อมปืน
gz.zone1 = นี่คือจุดเกิดของศัตรู
@@ -1985,27 +2027,27 @@ gz.zone2 = สิ่งก่อสร้างทุกอย่างในร
gz.zone3 = คลื่นกำลังจะเริ่มขึ้นแล้ว\nเตรียมตัวให้พร้อม
gz.finish = สร้างป้อมปืนเพิ่ม ขุดทรัพยากรให้ได้มากกว่านี้\nแล้วป้องกันคลื่นทั้งหมดเพื่อ[accent]ยึดครองเซ็กเตอร์[]
-onset.mine = กดคลิ๊กซ้ายเพื่อขุด \uf748 [accent]เบริลเลี่ยม[] จากกำแพง\n\nกด [accent][[WASD][] เพื่อขยับ
-onset.mine.mobile = กดที่หน้าจอเพื่อขุด \uf748 [accent]เบริลเลี่ยม[] จากกำแพง
-onset.research = เปิดหน้า \ue875 ต้นไม้แห่งเทคโนโลยี\nวิจัย แล้ววาง \uf73e [accent]เครื่องควบแน่นกังหัน[] บนปล่อง\nเครื่องนี้จะผลิต[accent]พลังงาน[]
-onset.bore = วิจัยและวาง \uf741 [accent]เครื่องขุดเจาะพลาสม่า[]\nเครื่องนี้จะขุดทรัพยากรที่อยู่ในกำแพงให้โดยอัตโนมัติ
-onset.power = เพื่อที่จะ[accent]จ่ายพลังงาน[]ให้กับเครื่องขุดเจาะพลาสม่า วิจัยและวาง \uf73d [accent]โหนดลำแสง[]\nลากโหนดเพื่อเชื่อมต่อเครื่องควบแน่นกังหันกับเครื่องขุดเจาะพลาสม่า
-onset.ducts = วิจัยและวาง \uf799 [accent]ท่อสูญญากาศ[]เพื่อเคลื่อนย้ายทรัพยากรที่ขุดมาได้จากเครื่องขุดเจาะพลาสม่าไปยังแกนกลาง\nกดคลิ๊กแล้วลากเพื่อวางท่อสูญญากาศหลายๆ ท่อให้เป็นทาง\n[accent]หมุนเม้าส์[]เพื่อหมุน
-onset.ducts.mobile = วิจัยและวาง \uf799 [accent]ท่อสูญญากาศ[]เพื่อเคลื่อนย้ายทรัพยากรที่ขุดมาได้จากเครื่องขุดเจาะพลาสม่าไปยังแกนกลาง\n\nใช้นิ้วกดค้างที่ตำแหน่งซักวิแล้วลากเพื่อวางท่อสูญญากาศหลายๆ ท่อให้เป็นทาง
+onset.mine = กดคลิ๊กซ้ายเพื่อขุด :beryllium: [accent]เบริลเลี่ยม[] จากกำแพง\n\nกด [accent][[WASD][] เพื่อขยับ
+onset.mine.mobile = กดที่หน้าจอเพื่อขุด :beryllium: [accent]เบริลเลี่ยม[] จากกำแพง
+onset.research = เปิดหน้า :tree: ต้นไม้แห่งเทคโนโลยี\nวิจัย แล้ววาง :turbine-condenser: [accent]เครื่องควบแน่นกังหัน[] บนปล่อง\nเครื่องนี้จะผลิต[accent]พลังงาน[]
+onset.bore = วิจัยและวาง :plasma-bore: [accent]เครื่องขุดเจาะพลาสม่า[]\nเครื่องนี้จะขุดทรัพยากรที่อยู่ในกำแพงให้โดยอัตโนมัติ
+onset.power = เพื่อที่จะ[accent]จ่ายพลังงาน[]ให้กับเครื่องขุดเจาะพลาสม่า วิจัยและวาง :beam-node: [accent]โหนดลำแสง[]\nลากโหนดเพื่อเชื่อมต่อเครื่องควบแน่นกังหันกับเครื่องขุดเจาะพลาสม่า
+onset.ducts = วิจัยและวาง :duct: [accent]ท่อสูญญากาศ[]เพื่อเคลื่อนย้ายทรัพยากรที่ขุดมาได้จากเครื่องขุดเจาะพลาสม่าไปยังแกนกลาง\nกดคลิ๊กแล้วลากเพื่อวางท่อสูญญากาศหลายๆ ท่อให้เป็นทาง\n[accent]หมุนเม้าส์[]เพื่อหมุน
+onset.ducts.mobile = วิจัยและวาง :duct: [accent]ท่อสูญญากาศ[]เพื่อเคลื่อนย้ายทรัพยากรที่ขุดมาได้จากเครื่องขุดเจาะพลาสม่าไปยังแกนกลาง\n\nใช้นิ้วกดค้างที่ตำแหน่งซักวิแล้วลากเพื่อวางท่อสูญญากาศหลายๆ ท่อให้เป็นทาง
onset.moremine = ขยายปฎิบัติการขุด\nวางเครื่องขุดเจาะพลาสม่าเพิ่มแล้วใช้โหนดลำแสงเพื่อจ่ายพลังงานให้กับมัน\nขุดเบริลเลี่ยม 200 ชิ้น
-onset.graphite = บล็อกที่สูงขั้นกว่าจำเป็นต้องใช้ \uf835 [accent]กราไฟต์[]\nจัดตั้งเครื่องขุดเจาะพลาสม่าเพื่อขุดกราไฟต์
-onset.research2 = เริ่มการวิจัย[accent]โรงงาน[]\nวิจัย \uf74d [accent]เครื่องบดหน้าผา[]และ \uf779 [accent]เตาหลอมไฟฟ้าซิลิกอน[]
-onset.arcfurnace = เตาหลอมไฟฟ้าจะต้องใช้ \uf834 [accent]ทราย[]และ \uf835 [accent]กราไฟต์[]เพื่อผลิต \uf82f [accent]ซิลิกอน[]\nการผลิตจำเป็นจะต้องใช้[accent]พลังงาน[]ด้วย
-onset.crusher = ใช้ \uf74d [accent]เครื่องบดหน้าผา[]เพื่อผลิตทราย
-onset.fabricator = ใช้[accent]ยูนิต[]เพื่อสำรวจพื้นที่ ป้องกันสิ่งก่อสร้าง และโจมตีศัตรู วิจัยและวาง \uf6a2 [accent]เครื่องสรรค์สร้างรถถัง[]
+onset.graphite = บล็อกที่สูงขั้นกว่าจำเป็นต้องใช้ :graphite: [accent]กราไฟต์[]\nจัดตั้งเครื่องขุดเจาะพลาสม่าเพื่อขุดกราไฟต์
+onset.research2 = เริ่มการวิจัย[accent]โรงงาน[]\nวิจัย :cliff-crusher: [accent]เครื่องบดหน้าผา[]และ :silicon-arc-furnace: [accent]เตาหลอมไฟฟ้าซิลิกอน[]
+onset.arcfurnace = เตาหลอมไฟฟ้าจะต้องใช้ :sand: [accent]ทราย[]และ :graphite: [accent]กราไฟต์[]เพื่อผลิต :silicon: [accent]ซิลิกอน[]\nการผลิตจำเป็นจะต้องใช้[accent]พลังงาน[]ด้วย
+onset.crusher = ใช้ :cliff-crusher: [accent]เครื่องบดหน้าผา[]เพื่อผลิตทราย
+onset.fabricator = ใช้[accent]ยูนิต[]เพื่อสำรวจพื้นที่ ป้องกันสิ่งก่อสร้าง และโจมตีศัตรู วิจัยและวาง :tank-fabricator: [accent]เครื่องสรรค์สร้างรถถัง[]
onset.makeunit = ผลิตยูนิตขึ้นมา\nใช้ปุ่ม "?" เพื่อดูความต้องการทรัพยากรของแต่ละโรงงานที่เลือกมา
-onset.turrets = ยูนิตนั้นมีประสิทธิภาพ แต่[accent]ป้อมปืน[]นั้นสามารถที่จะใช้ตั้งรับได้ดีกว่าหากใช้อย่างมีประสิทธิภาพ\nวางป้อมปืน \uf6eb [accent]บรีช[]\nป้อมปืนจำเป็นจะต้องใช้ \uf748 [accent]กระสุน[]
+onset.turrets = ยูนิตนั้นมีประสิทธิภาพ แต่[accent]ป้อมปืน[]นั้นสามารถที่จะใช้ตั้งรับได้ดีกว่าหากใช้อย่างมีประสิทธิภาพ\nวางป้อมปืน :breach: [accent]บรีช[]\nป้อมปืนจำเป็นจะต้องใช้ :beryllium: [accent]กระสุน[]
onset.turretammo = เติมกระสุนให้แก่ป้อมปืนด้วย[accent]กระสุนเบริลเลี่ยม[]
-onset.walls = [accent]กำแพง[]สามารถป้องกันความเสียหายที่จะมาถึงให้ไม่ไปโดนสิ่งก่อสร้างได้\nวางกำแพง \uf6ee [accent]กำแพงเบริลเลี่ยม[]รอบๆ ป้อมปืน
+onset.walls = [accent]กำแพง[]สามารถป้องกันความเสียหายที่จะมาถึงให้ไม่ไปโดนสิ่งก่อสร้างได้\nวางกำแพง :beryllium-wall: [accent]กำแพงเบริลเลี่ยม[]รอบๆ ป้อมปืน
onset.enemies = ศัตรูกำลังจะเข้ามา เตรียมตัวป้องกันให้ดี
onset.defenses = [accent]ติดตั้งแนวป้องกัน:[lightgray] {0}
onset.attack = ศัตรูอ่อนแอลงแล้ว ตอบโต้กลับ
-onset.cores = แกนกลางใหม่สามารถวางได้บน[accent]โซนแกนกลาง[]\nแกนกลางใหม่จะทำหน้าที่เป็นฐานทัพด่านหน้าและจะแบ่งปันทรัพยากรกับแกนกลางอื่นๆ\nวาง \uf725 แกนกลาง
+onset.cores = แกนกลางใหม่สามารถวางได้บน[accent]โซนแกนกลาง[]\nแกนกลางใหม่จะทำหน้าที่เป็นฐานทัพด่านหน้าและจะแบ่งปันทรัพยากรกับแกนกลางอื่นๆ\nวาง :core-bastion: แกนกลาง
onset.detect = ศัตรูจะสามารถตรวจจับการมีอยู่ของคุณได้ในอีก 2 นาที\nจัดตั้งกองกำลังป้องกัน ปฏิบัติการขุด และการผลิต
#Don't translate these yet!
@@ -2173,7 +2215,9 @@ block.vault.description = เก็บไอเท็มแต่ละชนิ
block.container.description = เก็บไอเท็มแต่ละชนิดได้นิดหน่อย สามารถใช้ตัวถ่ายไอเท็มในการดึงไอเท็มออกมาได้
block.unloader.description = ดึงไอเท็มที่กำหนดไว้ออกมาจากบล็อกใกล้เคียง
block.launch-pad.description = ส่งไอเท็มเป็นชุดๆ ไปยังเซ็กเตอร์ที่กำหนดไว้
-block.launch-pad.details = ระบบขนส่งทรัพยากรวงโคจรย่อยจากจุดหนึ่งไปอีกจุดหนึ่ง แคปซูลบรรทุกทรัพยากรนั้นเปราะบางและไม่สามารถทนความร้อนจากชั้นบรรยากาศได้
+block.advanced-launch-pad.description = Launches batches of items to selected sectors. Only accepts one item type at a time.
+block.advanced-launch-pad.details = Sub-orbital system for point-to-point transportation of resources.
+block.landing-pad.description = Receives items from launch pads in other sectors. Requires large amounts of water to protect against impacts of landings.
block.duo.description = ป้อมปืนขนาดเล็ก ยิงกระสุนที่อยู่ในตัวมันใส่เป้าหมายศัตรู
block.scatter.description = ยิงก้อนตะกั่ว เศษเหล็กหรือกระจกเมต้าใส่ยานบินศัตรูที่อยู่ใกล้เคียง
block.scorch.description = เผาศัตรูพื้นดินที่อยู่ใกล้ๆ มีประสิทธิภาพสูงสุดเมื่อใช้ในระยะใกล้
@@ -2282,6 +2326,7 @@ block.unit-cargo-loader.description = สร้างโดรนบรรทุ
block.unit-cargo-unload-point.description = เป็นจุดสำหรับโดรนบรรทุกที่จะถ่ายไอเท็มลง จะรับไอเท็มที่ตรงกับตัวกรองที่ได้ตั้งไว้เท่านั้น
block.beam-node.description = ส่งพลังงานไปยังโหนดลำแสงอื่นในแนวตั้งฉาก กักเก็บพลังงานได้จำนวนเล็กน้อย
block.beam-tower.description = ส่งพลังงานไปยังโหนดลำแสงอื่นในแนวตั้งฉาก กักเก็บพลังงานได้จำนวนมาก ระยะไกลกว่าโหนดลำแสง
+block.beam-link.description = Transmits power over vast distances.\nOnly capable of connecting to adjacent structures or other beam links.
block.turbine-condenser.description = ผลิตพลังงานออกมาเมื่อวางบนปล่อง ผลิตน้ำจำนวนเล็กน้อยเป็นผลมาจากการควบแน่น
block.chemical-combustion-chamber.description = ผลิตพลังงานจากการเผาไหม้ทางเคมีระหว่างอาร์คย์ไซต์และโอโซน
block.pyrolysis-generator.description = ผลิตพลังงานจำนวนมากจากอาร์คย์ไซต์และแร่หลอม ผลิตน้ำออกมาซึ่งเป็นผลมาจากปฎิบัติการ
@@ -2374,6 +2419,7 @@ unit.emanate.description = สร้างสิ่งต่างๆ เพื
lst.read = อ่านเลขจากเซลล์ความจำที่เชื่อมต่อไว้
lst.write = เขียนเลขไปยังเซลล์ความจำที่เชื่อมต่อไว้
lst.print = เพิ่มข้อความไปยังคิวข้อความ\nข้อความจะยังไม่แสดงจนกว่าจะใช้คำสั่ง [accent]Print Flush[]
+lst.printchar = Add a UTF-16 character or content icon to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used.
lst.format = แทนที่ข้อความตัวแทนถัดไปในบัฟเฟอร์ข้อความด้วยค่า\nจะไม่ทำอะไรหากรูปแบบข้อความแทนที่นั้นไม่ถูกต้อง\nรูปแบบข้อความแทนที่: "{[accent]ตัวเลข 0-9[]}"\nตัวอย่าง:\n[accent]print "ทดสอบ {0}"\nformat "สวัสดี"
lst.draw = เพิ่มรูปไปยังคิวการวาด\nภาพจะยังไม่แสดงจนกว่าจะใช้คำสั่ง [accent]Draw Flush[]
lst.drawflush = ปล่อยคิว [accent]Draw[] ไปยังหน้าจอลอจิกที่เชื่อมต่อไว้
@@ -2461,6 +2507,7 @@ lenum.shootp = ยิงเป้าหมายโดยมีการคำ
lenum.config = การกำหนดค่าของสิ่งก่อสร้าง เช่น ไอเท็มของเครื่องคัดแยก
lenum.enabled = ว่าบล็อกเปิดใช้งาน/ทำงานอยู่หรือเปล่า
laccess.currentammotype = ประเภทของกระสุนไอเท็ม/ของเหลวในปัจจุบันของป้อมปืน
+laccess.memorycapacity = Number of cells in a memory block.
laccess.color = สีของตัวเปล่งแสง
laccess.controller = ผู้ควบคุมยูนิต ถ้าผู้ควบคุมคือตัวประมวลผล จะส่งกลับค่า processor\nนอกนั้น จะส่งกลับค่าตัวยูนิตเอง
@@ -2468,6 +2515,7 @@ laccess.dead = ว่าสิ่งก่อสร้าง/ยูนิตน
laccess.controlled = จะส่งกลับ:\n[accent]@ctrlProcessor[] ถ้าผู้ควบคุมคือตัวประมวลผลลอจิก\n[accent]@ctrlPlayer[] ถ้าสิ่งก่อสร้าง/ยูนิตถูกควบคุมโดยผู้เล่น\n[accent]@ctrlCommand[] ถ้ายูนิตถูกสั่งการโดยผู้เล่นอยู่\nนอกนั้นจะเป็น 0
laccess.progress = ความคืบหน้าการดำเนินการจาก 0 ถึง 1\nจะส่งกลับค่าการผลิต การรีโหลดของป้อมปืน หรือความคืบหน้าในการสร้างสิ่งก่อสร้าง
laccess.speed = ความเร็วสูงสุดของยูนิตในหน่วย ช่อง/วินาที
+laccess.size = Size of a unit/building or the length of a string.
laccess.id = ID ของยูนิต/บล็อก/ไอเท็ม/ของเหลว\nคำสั่งนี้จะตรงกันข้ามกับคำสั่ง lookup
lcategory.unknown = ไม่ทราบ
@@ -2613,3 +2661,29 @@ lenum.autoscale = ว่าจะให้เครื่องหมายเ
lenum.posi = ตำแหน่งในดัชนี ใช้สำหรับเครื่องหมายเส้นตรงและสี่เหลี่ยมที่มีดัชนีศูนย์เป็นตำแหน่งเริ่มต้น
lenum.uvi = ตำแหน่งของเทกเจอร์ในคาบระหว่างศูนย์ถึงหนึ่ง ใช้สำหรับเครื่องหมายสี่เหลี่ยม
lenum.colori = ค่าสีในดัชนี ใช้สำหรับเครื่องหมายเส้นตรงและสี่เหลี่ยมที่มีดัชนีศูนย์เป็นสีเริ่มต้น
+lenum.wavetimer = Whether the waves come automatically on a timer. If not, waves come when the play button is pressed.
+lenum.wave = Current wave number. Can be anything in non-wave modes.
+lenum.currentwavetime = Wave countdown in ticks.
+lenum.waves = Whether waves are spawnable at all.
+lenum.wavesending = Whether the waves can be manually summoned with the play button.
+lenum.attackmode = Determines if gamemode is attack mode.
+lenum.wavespacing = Time between waves in ticks.
+lenum.enemycorebuildradius = No-build zone around enemy core radius.
+lenum.dropzoneradius = Radius around enemy wave drop zones.
+lenum.unitcap = Base unit cap. Can still be increased by blocks.
+lenum.lighting = Whether ambient lighting is enabled.
+lenum.buildspeed = Multiplier for building speed.
+lenum.unithealth = How much health units start with.
+lenum.unitbuildspeed = How fast unit factories build units.
+lenum.unitcost = Multiplier of resources that units take to build.
+lenum.unitdamage = How much damage units deal.
+lenum.blockhealth = How much health blocks start with.
+lenum.blockdamage = How much damage blocks (turrets) deal.
+lenum.rtsminweight = Minimum "advantage" needed for a squad to attack. Higher -> more cautious.
+lenum.rtsminsquad = Minimum size of attack squads.
+lenum.maparea = Playable map area. Anything outside the area will not be interactable.
+lenum.ambientlight = Ambient light color. Used when lighting is enabled.
+lenum.solarmultiplier = Multiplies power output of solar panels.
+lenum.dragmultiplier = Environment drag multiplier.
+lenum.ban = Blocks or units that cannot be placed or built.
+lenum.unban = Unban a unit or block.
diff --git a/core/assets/bundles/bundle_tk.properties b/core/assets/bundles/bundle_tk.properties
index d2526d59fb..aa366b5e86 100644
--- a/core/assets/bundles/bundle_tk.properties
+++ b/core/assets/bundles/bundle_tk.properties
@@ -128,6 +128,7 @@ done = Done
feature.unsupported = Your device does not support this feature.
mods.initfailed = [red]⚠[] The previous Mindustry instance failed to initialize. This was likely caused by misbehaving mods.\n\nTo prevent a crash loop, [red]all mods have been disabled.[]
mods = Mods
+mods.name = Mod:
mods.none = [lightgray]No mods found!
mods.guide = Modding Guide
mods.report = Report Bug
@@ -152,7 +153,7 @@ mod.erroredcontent = [scarlet]Content Errors
mod.circulardependencies = [red]Circular Dependencies
mod.incompletedependencies = [red]Incomplete Dependencies
mod.requiresversion.details = Requires game version: [accent]{0}[]\nYour game is outdated. This mod requires a newer version of the game (possibly a beta/alpha release) to function.
-mod.outdatedv7.details = This mod is incompatible with the latest version of the game. The author must update it, and add [accent]minGameVersion: 136[] to its [accent]mod.json[] file.
+mod.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 = This mod has been manually blacklisted for causing crashes or other issues with this version of the game. Do not use it.
mod.missingdependencies.details = This mod is missing dependencies: {0}
mod.erroredcontent.details = This game caused errors when loading. Ask the mod author to fix them.
@@ -161,7 +162,6 @@ mod.incompletedependencies.details = This mod is unable to be loaded due to inva
mod.requiresversion = Requires game version: [red]{0}
mod.errors = Errors have occurred loading content.
mod.noerrorplay = [scarlet]You have mods with errors.[] Either disable the affected mods or fix the errors before playing.
-mod.nowdisabled = [scarlet]Mod '{0}' is missing dependencies:[accent] {1}\n[lightgray]These mods need to be downloaded first.\nThis mod will be automatically disabled.
mod.enable = Enable
mod.requiresrestart = The game will now close to apply the mod changes.
mod.reloadrequired = [scarlet]Reload Required
@@ -176,6 +176,15 @@ mod.missing = This save contains mods that you have recently updated or no longe
mod.preview.missing = Before publishing this mod in the workshop, you must add an image preview.\nPlace an image named[accent] preview.png[] into the mod's folder and try again.
mod.folder.missing = Only mods in folder form can be published on the workshop.\nTo convert any mod into a folder, simply unzip its file into a folder and delete the old zip, then restart your game or reload your mods.
mod.scripts.disable = Your device does not support mods with scripts. You must disable these mods to play the game.
+mod.dependencies.error = [scarlet]Mods are missing dependencies
+mod.dependencies.soft = (optional)
+mod.dependencies.download = Import
+mod.dependencies.downloadreq = Import Required
+mod.dependencies.downloadall = Import All
+mod.dependencies.status = Import Results
+mod.dependencies.success = Successfully downloaded:
+mod.dependencies.failure = Failed to download:
+mod.dependencies.imported = This mod requires dependencies. Download?
about.button = Hakkinda
name = isim:
@@ -291,6 +300,7 @@ disconnect.error = Connection error.
disconnect.closed = Connection closed.
disconnect.timeout = Timed out.
disconnect.data = Oyunun geri yuklenemedi!
+disconnect.snapshottimeout = Timed out while receiving UDP snapshots.\nThis may be caused by an unstable network or connection.
cantconnect = Unable to join game ([accent]{0}[]).
connecting = [accent]Baglaniliyor
reconnecting = [accent]Reconnecting...
@@ -459,6 +469,7 @@ editor.shiftx = Shift X
editor.shifty = Shift Y
workshop = Workshop
waves.title = Waves
+waves.team = Team
waves.remove = Remove
waves.every = every
waves.waves = wave(s)
@@ -706,14 +717,18 @@ loadout = Loadout
resources = Resources
resources.max = Max
bannedblocks = Banned Blocks
+unbannedblocks = Unbanned Blocks
objectives = Objectives
bannedunits = Banned Units
+unbannedunits = Unbanned Units
bannedunits.whitelist = Banned Units As Whitelist
bannedblocks.whitelist = Banned Blocks As Whitelist
addall = Add All
launch.from = Launching From: [accent]{0}
launch.capacity = Launching Item Capacity: [accent]{0}
launch.destination = Destination: {0}
+landing.sources = Source Sectors: [accent]{0}[]
+landing.import = Max Total Import: {0}[accent]{1}[lightgray]/min
configure.invalid = Amount must be a number between 0 and {0}.
add = Add...
guardian = Guardian
@@ -752,7 +767,9 @@ sectors.stored = Stored:
sectors.resume = Resume
sectors.launch = Launch
sectors.select = Select
+sectors.launchselect = Select Launch Destination
sectors.nonelaunch = [lightgray]none (sun)
+sectors.redirect = Redirect Launch Pads
sectors.rename = Rename Sector
sectors.enemybase = [scarlet]Enemy Base
sectors.vulnerable = [scarlet]Vulnerable
@@ -783,6 +800,10 @@ difficulty.easy = Easy
difficulty.normal = Normal
difficulty.hard = Hard
difficulty.eradication = Eradication
+difficulty.enemyHealthMultiplier = Enemy Health: {0}
+difficulty.enemySpawnMultiplier = Enemy Amount: {0}
+difficulty.waveTimeMultiplier = Wave Timer: {0}
+difficulty.nomodifiers = [lightgray](No modifiers)
planets = Planets
planet.serpulo.name = Serpulo
@@ -1012,6 +1033,7 @@ stat.buildspeedmultiplier = Build Speed Multiplier
stat.reactive = Reacts
stat.immunities = Immunities
stat.healing = Healing
+stat.efficiency = [stat]{0}% Efficiency
ability.forcefield = Force Field
ability.forcefield.description = Projects a force shield that absorbs bullets
@@ -1059,6 +1081,7 @@ ability.stat.buildtime = [stat]{0} sec[lightgray] build time
bar.onlycoredeposit = Only Core Depositing Allowed
bar.drilltierreq = Better Drill Required
+bar.nobatterypower = Insufficieny Battery Power
bar.noresources = Missing Resources
bar.corereq = Core Base Required
bar.corefloor = Core Zone Tile Required
@@ -1067,6 +1090,7 @@ bar.drillspeed = Drill Speed: {0}/s
bar.pumpspeed = Pump Speed: {0}/s
bar.efficiency = Efficiency: {0}%
bar.boost = Boost: +{0}%
+bar.powerbuffer = Battery Power: {0}/{1}
bar.powerbalance = Power: {0}
bar.powerstored = Stored: {0}/{1}
bar.poweramount = Power: {0}
@@ -1077,6 +1101,7 @@ bar.capacity = Capacity: {0}
bar.unitcap = {0} {1}/{2}
bar.liquid = Liquid
bar.heat = Heat
+bar.cooldown = Cooldown
bar.instability = Instability
bar.heatamount = Heat: {0}
bar.heatpercent = Heat: {0} ({1}%)
@@ -1101,6 +1126,7 @@ bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
bullet.frags = [stat]{0}[lightgray]x frag bullets:
bullet.lightning = [stat]{0}[lightgray]x lightning ~ [stat]{1}[lightgray] damage
bullet.buildingdamage = [stat]{0}%[lightgray] building damage
+bullet.shielddamage = [stat]{0}%[lightgray] shield damage
bullet.knockback = [stat]{0}[lightgray] knockback
bullet.pierce = [stat]{0}[lightgray]x pierce
bullet.infinitepierce = [stat]pierce
@@ -1127,6 +1153,7 @@ unit.minutes = mins
unit.persecond = /sec
unit.perminute = /min
unit.timesspeed = x speed
+unit.multiplier = x
unit.percent = %
unit.shieldhealth = shield health
unit.items = esya
@@ -1203,11 +1230,13 @@ setting.mutemusic.name = Sesi kapat
setting.sfxvol.name = Ses seviyesi
setting.mutesound.name = Sesi kapat
setting.crashreport.name = Send Anonymous Crash Reports
+setting.communityservers.name = Fetch Community Server List
setting.savecreate.name = Auto-Create Saves
setting.steampublichost.name = Public Game Visibility
setting.playerlimit.name = Player Limit
setting.chatopacity.name = Chat Opacity
setting.lasersopacity.name = Power Laser Opacity
+setting.unitlaseropacity.name = Unit Mining Beam Opacity
setting.bridgeopacity.name = Bridge Opacity
setting.playerchat.name = Display In-Game Chat
setting.showweather.name = Show Weather Graphics
@@ -1216,6 +1245,9 @@ setting.macnotch.name = Kesgitlemek üçin interfeýsi uýgunlaşdyryň
setting.macnotch.description = Üýtgeşmeleri ulanmak üçin täzeden başlaň
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.
public.beta = Note that beta versions of the game cannot make public lobbies.
uiscale.reset = UI scale has been changed.\nPress "OK" to confirm this scale.\n[scarlet]Reverting and exiting in[accent] {0}[] settings...
uiscale.cancel = Cancel & Exit
@@ -1296,6 +1328,7 @@ keybind.shoot.name = Sik
keybind.zoom.name = Yaklas
keybind.menu.name = Menu
keybind.pause.name = Durdur
+keybind.skip_wave.name = Skip Wave
keybind.pause_building.name = Pause/Resume Building
keybind.minimap.name = Minimap
keybind.planet_map.name = Planet Map
@@ -1363,12 +1396,14 @@ rules.unitcostmultiplier = Unit Cost Multiplier
rules.unithealthmultiplier = Unit Health Multiplier
rules.unitdamagemultiplier = Unit Damage Multiplier
rules.unitcrashdamagemultiplier = Unit Crash Damage Multiplier
+rules.unitminespeedmultiplier = Unit Mine Speed Multiplier
rules.solarmultiplier = Solar Power Multiplier
rules.unitcapvariable = Cores Contribute To Unit Cap
rules.unitpayloadsexplode = Carried Payloads Explode With The Unit
rules.unitcap = Base Unit Cap
rules.limitarea = Limit Map Area
rules.enemycorebuildradius = Enemy Core No-Build Radius:[lightgray] (tiles)
+rules.extracorebuildradius = Extra No-Build Radius:[lightgray] (tiles)
rules.wavespacing = Wave Spacing:[lightgray] (sec)
rules.initialwavespacing = Initial Wave Spacing:[lightgray] (sec)
rules.buildcostmultiplier = Build Cost Multiplier
@@ -1391,6 +1426,9 @@ rules.title.planet = Planet
rules.lighting = Lighting
rules.fog = Fog of War
rules.invasions = Enemy Sector Invasions
+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.fire = Fire
@@ -1707,6 +1745,8 @@ block.meltdown.name = Meltdown
block.foreshadow.name = Foreshadow
block.container.name = Container
block.launch-pad.name = Launch Pad
+block.advanced-launch-pad.name = Launch Pad
+block.landing-pad.name = Landing Pad
block.segment.name = Segment
block.ground-factory.name = Ground Factory
block.air-factory.name = Air Factory
@@ -1762,6 +1802,8 @@ block.arkyic-vent.name = Arkyic Vent
block.yellow-stone-vent.name = Yellow Stone Vent
block.red-stone-vent.name = Red Stone Vent
block.crystalline-vent.name = Crystalline Vent
+block.stone-vent.name = Stone Vent
+block.basalt-vent.name = Basalt Vent
block.redmat.name = Redmat
block.bluemat.name = Bluemat
block.core-zone.name = Core Zone
@@ -1915,77 +1957,77 @@ hint.respawn = To respawn as a ship, press [accent][[V][].
hint.respawn.mobile = You have switched control to a unit/structure. To respawn as a ship, [accent]tap the avatar in the top left.[]
hint.desktopPause = Press [accent][[Space][] to pause and unpause the game.
hint.breaking = [accent]Right-click[] and drag to break blocks.
-hint.breaking.mobile = Activate the \ue817 [accent]hammer[] in the bottom right and tap to break blocks.\n\nHold down your finger for a second and drag to break in a selection.
+hint.breaking.mobile = Activate the :hammer: [accent]hammer[] in the bottom right and tap to break blocks.\n\nHold down your finger for a second and drag to break in a selection.
hint.blockInfo = View information of a block by selecting it in the [accent]build menu[], then selecting the [accent][[?][] button at the right.
hint.derelict = [accent]Derelict[] structures are broken remnants of old bases that no longer function.\n\nThese structures can be [accent]deconstructed[] for resources.
-hint.research = Use the \ue875 [accent]Research[] button to research new technology.
-hint.research.mobile = Use the \ue875 [accent]Research[] button in the \ue88c [accent]Menu[] to research new technology.
+hint.research = Use the :tree: [accent]Research[] button to research new technology.
+hint.research.mobile = Use the :tree: [accent]Research[] button in the :menu: [accent]Menu[] to research new technology.
hint.unitControl = Hold [accent][[L-ctrl][] and [accent]click[] to control friendly units or turrets.
hint.unitControl.mobile = [accent][[Double-tap][] to control friendly units or turrets.
hint.unitSelectControl = To control units, enter [accent]command mode[] by holding [accent]L-shift.[]\nWhile in command mode, click and drag to select units. [accent]Right-click[] a location or target to command units there.
hint.unitSelectControl.mobile = To control units, enter [accent]command mode[] by pressing the [accent]command[] button in the bottom left.\nWhile in command mode, long-press and drag to select units. Tap a location or target to command units there.
-hint.launch = Once enough resources are collected, you can [accent]Launch[] by selecting nearby sectors from the \ue827 [accent]Map[] in the bottom right.
-hint.launch.mobile = Once enough resources are collected, you can [accent]Launch[] by selecting nearby sectors from the \ue827 [accent]Map[] in the \ue88c [accent]Menu[].
+hint.launch = Once enough resources are collected, you can [accent]Launch[] by selecting nearby sectors from the :map: [accent]Map[] in the bottom right.
+hint.launch.mobile = Once enough resources are collected, you can [accent]Launch[] by selecting nearby sectors from the :map: [accent]Map[] in the :menu: [accent]Menu[].
hint.schematicSelect = Hold [accent][[F][] and drag to select blocks to copy and paste.\n\n[accent][[Middle Click][] to copy a single block type.
hint.rebuildSelect = Hold [accent][[B][] and drag to select destroyed block plans.\nThis will rebuild them automatically.
-hint.rebuildSelect.mobile = Select the \ue874 copy button, then tap the \ue80f rebuild button and drag to select destroyed block plans.\nThis will rebuild them automatically.
+hint.rebuildSelect.mobile = Select the :copy: copy button, then tap the :wrench: rebuild button and drag to select destroyed block plans.\nThis will rebuild them automatically.
hint.conveyorPathfind = Hold [accent][[L-Ctrl][] while dragging conveyors to automatically generate a path.
-hint.conveyorPathfind.mobile = Enable \ue844 [accent]diagonal mode[] and drag conveyors to automatically generate a path.
+hint.conveyorPathfind.mobile = Enable :diagonal: [accent]diagonal mode[] and drag conveyors to automatically generate a path.
hint.boost = Hold [accent][[L-Shift][] to fly over obstacles with your current unit.\n\nOnly a few ground units have boosters.
hint.payloadPickup = Press [accent][[[] to pick up small blocks or units.
hint.payloadPickup.mobile = [accent]Tap and hold[] a small block or unit to pick it up.
hint.payloadDrop = Press [accent]][] to drop a payload.
hint.payloadDrop.mobile = [accent]Tap and hold[] an empty location to drop a payload there.
hint.waveFire = [accent]Wave[] turrets with water as ammunition will automatically put out nearby fires.
-hint.generator = \uf879 [accent]Combustion Generators[] burn coal and transmit power to adjacent blocks.\n\nPower transmission range can be extended with \uf87f [accent]Power Nodes[].
-hint.guardian = [accent]Guardian[] units are armored. Weak ammo such as [accent]Copper[] and [accent]Lead[] is [scarlet]not effective[].\n\nUse higher tier turrets or \uf835 [accent]Graphite[] \uf861Duo/\uf859Salvo ammunition to take Guardians down.
-hint.coreUpgrade = Cores can be upgraded by [accent]placing higher-tier cores over them[].\n\nPlace a \uf868 [accent]Foundation[] core over the \uf869 [accent]Shard[] core. Make sure it is free from nearby obstructions.
+hint.generator = :combustion-generator: [accent]Combustion Generators[] burn coal and transmit power to adjacent blocks.\n\nPower transmission range can be extended with :power-node: [accent]Power Nodes[].
+hint.guardian = [accent]Guardian[] units are armored. Weak ammo such as [accent]Copper[] and [accent]Lead[] is [scarlet]not effective[].\n\nUse higher tier turrets or :graphite: [accent]Graphite[] :duo:Duo/:salvo:Salvo ammunition to take Guardians down.
+hint.coreUpgrade = Cores can be upgraded by [accent]placing higher-tier cores over them[].\n\nPlace a :core-foundation: [accent]Foundation[] core over the :core-shard: [accent]Shard[] core. Make sure it is free from nearby obstructions.
hint.presetLaunch = Gray [accent]landing zone sectors[], such as [accent]Frozen Forest[], can be launched to from anywhere. They do not require capture of nearby territory.\n\n[accent]Numbered sectors[], such as this one, are [accent]optional[].
hint.presetDifficulty = This sector has a [scarlet]high enemy threat level[].\nLaunching to such sectors is [accent]not recommended[] without proper technology and preparation.
hint.coreIncinerate = After the core is filled to capacity with an item, any extra items of that type it receives will be [accent]incinerated[].
hint.factoryControl = To set a unit factory's [accent]output destination[], click a factory block while in command mode, then right-click a location.\nUnits produced by it will automatically move there.
hint.factoryControl.mobile = To set a unit factory's [accent]output destination[], tap a factory block while in command mode, then tap a location.\nUnits produced by it will automatically move there.
-gz.mine = Move near the \uf8c4 [accent]copper ore[] on the ground and click to begin mining.
-gz.mine.mobile = Move near the \uf8c4 [accent]copper ore[] on the ground and tap it to begin mining.
-gz.research = Open the \ue875 tech tree.\nResearch the \uf870 [accent]Mechanical Drill[], then select it from the menu in the bottom right.\nClick on a copper patch to place it.
-gz.research.mobile = Open the \ue875 tech tree.\nResearch the \uf870 [accent]Mechanical Drill[], then select it from the menu in the bottom right.\nTap on a copper patch to place it.\n\nPress the \ue800 [accent]checkmark[] at the bottom right to confirm.
-gz.conveyors = Research and place \uf896 [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nClick and drag to place multiple conveyors.\n[accent]Scroll[] to rotate.
-gz.conveyors.mobile = Research and place \uf896 [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nHold down your finger for a second and drag to place multiple conveyors.
+gz.mine = Move near the :ore-copper: [accent]copper ore[] on the ground and click to begin mining.
+gz.mine.mobile = Move near the :ore-copper: [accent]copper ore[] on the ground and tap it to begin mining.
+gz.research = Open the :tree: tech tree.\nResearch the :mechanical-drill: [accent]Mechanical Drill[], then select it from the menu in the bottom right.\nClick on a copper patch to place it.
+gz.research.mobile = Open the :tree: tech tree.\nResearch the :mechanical-drill: [accent]Mechanical Drill[], then select it from the menu in the bottom right.\nTap on a copper patch to place it.\n\nPress the \ue800 [accent]checkmark[] at the bottom right to confirm.
+gz.conveyors = Research and place :conveyor: [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nClick and drag to place multiple conveyors.\n[accent]Scroll[] to rotate.
+gz.conveyors.mobile = Research and place :conveyor: [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nHold down your finger for a second and drag to place multiple conveyors.
gz.drills = Expand the mining operation.\nPlace more Mechanical Drills.\nMine 100 copper.
-gz.lead = \uf837 [accent]Lead[] is another commonly used resource.\nSet up drills to mine lead.
-gz.moveup = \ue804 Move up for further objectives.
-gz.turrets = Research and place 2 \uf861 [accent]Duo[] turrets to defend the core.\nDuo turrets require \uf838 [accent]ammo[] from conveyors.
+gz.lead = :lead: [accent]Lead[] is another commonly used resource.\nSet up drills to mine lead.
+gz.moveup = :up: Move up for further objectives.
+gz.turrets = Research and place 2 :duo: [accent]Duo[] turrets to defend the core.\nDuo turrets require \uf838 [accent]ammo[] from conveyors.
gz.duoammo = Supply the Duo turrets with [accent]copper[], using conveyors.
-gz.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace \uf8ae [accent]copper walls[] around the turrets.
+gz.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace :copper-wall: [accent]copper walls[] around the turrets.
gz.defend = Enemy incoming, prepare to defend.
-gz.aa = Flying units cannot easily be dispatched with standard turrets.\n\uf860 [accent]Scatter[] turrets provide excellent anti-air, but require \uf837 [accent]lead[] as ammo.
+gz.aa = Flying units cannot easily be dispatched with standard turrets.\n:scatter: [accent]Scatter[] turrets provide excellent anti-air, but require :lead: [accent]lead[] as ammo.
gz.scatterammo = Supply the Scatter turret with [accent]lead[], using conveyors.
gz.supplyturret = [accent]Supply Turret
gz.zone1 = This is the enemy drop zone.
gz.zone2 = Anything built in the radius is destroyed when a wave starts.
gz.zone3 = A wave will begin now.\nGet ready.
gz.finish = Build more turrets, mine more resources,\nand defend against all the waves to [accent]capture the sector[].
-onset.mine = Click to mine \uf748 [accent]beryllium[] from walls.\n\nUse [accent][[WASD] to move.
-onset.mine.mobile = Tap to mine \uf748 [accent]beryllium[] from walls.
-onset.research = Open the \ue875 tech tree.\nResearch, then place a \uf73e [accent]turbine condenser[] on the vent.\nThis will generate [accent]power[].
-onset.bore = Research and place a \uf741 [accent]plasma bore[].\nThis automatically mines resources from walls.
-onset.power = To [accent]power[] the plasma bore, research and place a \uf73d [accent]beam node[].\nConnect the turbine condenser to the plasma bore.
-onset.ducts = Research and place \uf799 [accent]ducts[] to move the mined resources from the plasma bore to the core.\nClick and drag to place multiple ducts.\n[accent]Scroll[] to rotate.
-onset.ducts.mobile = Research and place \uf799 [accent]ducts[] to move the mined resources from the plasma bore to the core.\n\nHold down your finger for a second and drag to place multiple ducts.
+onset.mine = Click to mine :beryllium: [accent]beryllium[] from walls.\n\nUse [accent][[WASD] to move.
+onset.mine.mobile = Tap to mine :beryllium: [accent]beryllium[] from walls.
+onset.research = Open the :tree: tech tree.\nResearch, then place a :turbine-condenser: [accent]turbine condenser[] on the vent.\nThis will generate [accent]power[].
+onset.bore = Research and place a :plasma-bore: [accent]plasma bore[].\nThis automatically mines resources from walls.
+onset.power = To [accent]power[] the plasma bore, research and place a :beam-node: [accent]beam node[].\nConnect the turbine condenser to the plasma bore.
+onset.ducts = Research and place :duct: [accent]ducts[] to move the mined resources from the plasma bore to the core.\nClick and drag to place multiple ducts.\n[accent]Scroll[] to rotate.
+onset.ducts.mobile = Research and place :duct: [accent]ducts[] to move the mined resources from the plasma bore to the core.\n\nHold down your finger for a second and drag to place multiple ducts.
onset.moremine = Expand the mining operation.\nPlace more Plasma Bores and use beam nodes and ducts to support them.\nMine 200 beryllium.
-onset.graphite = More complex blocks require \uf835 [accent]graphite[].\nSet up plasma bores to mine graphite.
-onset.research2 = Begin researching [accent]factories[].\nResearch the \uf74d [accent]cliff crusher[] and \uf779 [accent]silicon arc furnace[].
-onset.arcfurnace = The arc furnace needs \uf834 [accent]sand[] and \uf835 [accent]graphite[] to create \uf82f [accent]silicon[].\n[accent]Power[] is also required.
-onset.crusher = Use \uf74d [accent]cliff crushers[] to mine sand.
-onset.fabricator = Use [accent]units[] to explore the map, defend buildings, and attack the enemy. Research and place a \uf6a2 [accent]tank fabricator[].
+onset.graphite = More complex blocks require :graphite: [accent]graphite[].\nSet up plasma bores to mine graphite.
+onset.research2 = Begin researching [accent]factories[].\nResearch the :cliff-crusher: [accent]cliff crusher[] and :silicon-arc-furnace: [accent]silicon arc furnace[].
+onset.arcfurnace = The arc furnace needs :sand: [accent]sand[] and :graphite: [accent]graphite[] to create :silicon: [accent]silicon[].\n[accent]Power[] is also required.
+onset.crusher = Use :cliff-crusher: [accent]cliff crushers[] to mine sand.
+onset.fabricator = Use [accent]units[] to explore the map, defend buildings, and attack the enemy. Research and place a :tank-fabricator: [accent]tank fabricator[].
onset.makeunit = Produce a unit.\nUse the "?" button to see selected factory requirements.
-onset.turrets = Units are effective, but [accent]turrets[] provide better defensive capabilities if used effectively.\nPlace a \uf6eb [accent]Breach[] turret.\nTurrets require \uf748 [accent]ammo[].
+onset.turrets = Units are effective, but [accent]turrets[] provide better defensive capabilities if used effectively.\nPlace a :breach: [accent]Breach[] turret.\nTurrets require :beryllium: [accent]ammo[].
onset.turretammo = Supply the turret with [accent]beryllium ammo.[]
-onset.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace some \uf6ee [accent]beryllium walls[] around the turret.
+onset.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace some :beryllium-wall: [accent]beryllium walls[] around the turret.
onset.enemies = Enemy incoming, prepare to defend.
onset.defenses = [accent]Set up defenses:[lightgray] {0}
onset.attack = The enemy is vulnerable. Counter-attack.
-onset.cores = New cores can be placed on [accent]core tiles[].\nNew cores function as forward bases and share a resource inventory with other cores.\nPlace a \uf725 core.
+onset.cores = New cores can be placed on [accent]core tiles[].\nNew cores function as forward bases and share a resource inventory with other cores.\nPlace a :core-bastion: core.
onset.detect = The enemy will be able to detect you in 2 minutes.\nSet up defenses, mining, and production.
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.
@@ -2145,7 +2187,9 @@ block.vault.description = Stores a large amount of items. Use it for creating bu
block.container.description = Stores a small amount of items. Use it for creating buffers when there is a non-constant demand of materials. An[lightgray] unloader[] can be used to retrieve items from the container.
block.unloader.description = Unloads items from a container, vault or core onto a conveyor or directly into an adjacent block. The type of item to be unloaded can be changed by tapping on the unloader.
block.launch-pad.description = Launches batches of items without any need for a core launch. Unfinished.
-block.launch-pad.details = Sub-orbital system for point-to-point transportation of resources. Payload pods are fragile and incapable of surviving re-entry.
+block.advanced-launch-pad.description = Launches batches of items to selected sectors. Only accepts one item type at a time.
+block.advanced-launch-pad.details = Sub-orbital system for point-to-point transportation of resources.
+block.landing-pad.description = Receives items from launch pads in other sectors. Requires large amounts of water to protect against impacts of landings.
block.duo.description = A small, cheap turret.
block.scatter.description = A medium-sized anti-air turret. Sprays clumps of lead or scrap flak at enemy units.
block.scorch.description = Burns any ground enemies close to it. Highly effective at close range.
@@ -2252,6 +2296,7 @@ block.unit-cargo-loader.description = Constructs cargo drones. Drones automatica
block.unit-cargo-unload-point.description = Acts as an unloading point for cargo drones. Accepts items that match the selected filter.
block.beam-node.description = Transmits power to other blocks orthogonally. Stores a small amount of power.
block.beam-tower.description = Transmits power to other blocks orthogonally. Stores a large amount of power. Long-range.
+block.beam-link.description = Transmits power over vast distances.\nOnly capable of connecting to adjacent structures or other beam links.
block.turbine-condenser.description = Generates power when placed on vents. Produces a small amount of water.
block.chemical-combustion-chamber.description = Generates power from arkycite and ozone.
block.pyrolysis-generator.description = Generates large amounts of power from arkycite and slag. Produces water as a byproduct.
@@ -2340,6 +2385,7 @@ unit.emanate.description = Builds structures to defend the Acropolis core. Repai
lst.read = Read a number from a linked memory cell.
lst.write = Write a number to a linked memory cell.
lst.print = Add text to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used.
+lst.printchar = Add a UTF-16 character or content icon to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used.
lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example"
lst.draw = Add an operation to the drawing buffer.\nDoes not display anything until [accent]Draw Flush[] is used.
lst.drawflush = Flush queued [accent]Draw[] operations to a display.
@@ -2425,12 +2471,14 @@ lenum.shootp = Shoot at a unit/building with velocity prediction.
lenum.config = Building configuration, e.g. sorter item.
lenum.enabled = Whether the block is enabled.
laccess.currentammotype = Current ammo item/liquid of a turret.
+laccess.memorycapacity = Number of cells in a memory block.
laccess.color = Illuminator color.
laccess.controller = Unit controller. If processor controlled, returns processor.\nIf in a formation, returns leader.\nOtherwise, returns the unit itself.
laccess.dead = Whether a unit/building is dead or no longer valid.
laccess.controlled = Returns:\n[accent]@ctrlProcessor[] if unit controller is processor\n[accent]@ctrlPlayer[] if unit/building controller is player\n[accent]@ctrlFormation[] if unit is in formation\nOtherwise, 0.
laccess.progress = Action progress, 0 to 1.\nReturns production, turret reload or construction progress.
laccess.speed = Top speed of a unit, in tiles/sec.
+laccess.size = Size of a unit/building or the length of a string.
laccess.id = ID of a unit/block/item/liquid.\nThis is the inverse of the lookup operation.
lcategory.unknown = Unknown
lcategory.unknown.description = Uncategorized instructions.
@@ -2559,3 +2607,29 @@ lenum.autoscale = Whether to scale marker corresponding to player's zoom level.
lenum.posi = Indexed position, used for line and quad markers with index zero being the first position.
lenum.uvi = Texture's position ranging from zero to one, used for quad markers.
lenum.colori = Indexed position, used for line and quad markers with index zero being the first color.
+lenum.wavetimer = Whether the waves come automatically on a timer. If not, waves come when the play button is pressed.
+lenum.wave = Current wave number. Can be anything in non-wave modes.
+lenum.currentwavetime = Wave countdown in ticks.
+lenum.waves = Whether waves are spawnable at all.
+lenum.wavesending = Whether the waves can be manually summoned with the play button.
+lenum.attackmode = Determines if gamemode is attack mode.
+lenum.wavespacing = Time between waves in ticks.
+lenum.enemycorebuildradius = No-build zone around enemy core radius.
+lenum.dropzoneradius = Radius around enemy wave drop zones.
+lenum.unitcap = Base unit cap. Can still be increased by blocks.
+lenum.lighting = Whether ambient lighting is enabled.
+lenum.buildspeed = Multiplier for building speed.
+lenum.unithealth = How much health units start with.
+lenum.unitbuildspeed = How fast unit factories build units.
+lenum.unitcost = Multiplier of resources that units take to build.
+lenum.unitdamage = How much damage units deal.
+lenum.blockhealth = How much health blocks start with.
+lenum.blockdamage = How much damage blocks (turrets) deal.
+lenum.rtsminweight = Minimum "advantage" needed for a squad to attack. Higher -> more cautious.
+lenum.rtsminsquad = Minimum size of attack squads.
+lenum.maparea = Playable map area. Anything outside the area will not be interactable.
+lenum.ambientlight = Ambient light color. Used when lighting is enabled.
+lenum.solarmultiplier = Multiplies power output of solar panels.
+lenum.dragmultiplier = Environment drag multiplier.
+lenum.ban = Blocks or units that cannot be placed or built.
+lenum.unban = Unban a unit or block.
diff --git a/core/assets/bundles/bundle_tr.properties b/core/assets/bundles/bundle_tr.properties
index 9df37b8121..ba3ccb4eba 100644
--- a/core/assets/bundles/bundle_tr.properties
+++ b/core/assets/bundles/bundle_tr.properties
@@ -1,20 +1,20 @@
credits.text = [royal]Anuken[] tarafından yapıldı - [sky]anukendev@gmail.com[]
credits = Jenerik
contributors = Çevirmenler ve Katkıda Bulunanlar
-discord = Mindustry'nin Discord sunucusuna Katıl!
-link.discord.description = Resmî Mindustry Discord sunucusu
-link.reddit.description = Mindustry subreddit'i
-link.github.description = Oyun Kaynak Kodu
+discord = Mindustry Discord sunucusuna katıl!
+link.discord.description = Resmi Mindustry Discord sunucusu
+link.reddit.description = Mindustry subredditi
+link.github.description = Oyun kaynak kodu
link.changelog.description = Güncelleme değişikliklerinin listesi
-link.dev-builds.description = Dengesiz Oyun Sürümleri
-link.trello.description = Planlanan özellikler için resmî Trello Sayfası
+link.dev-builds.description = Kararsız oyun sürümleri
+link.trello.description = Planlanan özellikler için resmi Trello sayfası
link.itch.io.description = itch.io sayfası
link.google-play.description = Google Play mağaza sayfası
-link.f-droid.description = F-Droid kataloğu
-link.wiki.description = Resmî Mindustry wikisi
+link.f-droid.description = F-Droid sayfası
+link.wiki.description = Resmi Mindustry vikisi
link.suggestions.description = Yeni özellikler öner
link.bug.description = Hata mı buldun? Hemen şikayet et!
-linkopen = Bu Server sana bir link gönderdi. Açmak istediğine emin misin?\n\n[sky]{0}
+linkopen = Bu server sana bir link gönderdi. Açmak istediğine emin misin?\n\n[sky]{0}
linkfail = Link açılamadı!\nURL kopyalandı.
screenshot = Ekran görüntüsü {0} konumuna kaydedildi
screenshot.invalid = Harita çok büyük, muhtemelen ekran görüntüsü için yeterli bellek yok.
@@ -49,27 +49,27 @@ mods.browser.view-releases = Sürümleri İncele
mods.browser.noreleases = [scarlet]Sürüm Bulunamadı\n[accent]Bu mod için yayımlanmış bir sürüm bulunamadı.
mods.browser.latest =
mods.browser.releases = Yayımlar
-mods.github.open = Repo
+mods.github.open = Depo
mods.github.open-release = Yayım Sayfası
-mods.browser.sortdate = En Yeniye göre Sırala
-mods.browser.sortstars = Yıldıza göre Sırala
+mods.browser.sortdate = En yeniye göre sırala
+mods.browser.sortstars = Yıldız sayısına göre sırala
schematic = Şema
schematic.add = Şemayı Kaydet...
schematics = Şemalar
-schematic.search = Şema Arat...
-schematic.replace = Aynı isimde bir şema zaten var. Üzerine yazılsın mı?
-schematic.exists = Aynı isimde bir şema zaten var.
-schematic.import = Şemayı İçeri Aktar
-schematic.exportfile = Dışa Aktar
-schematic.importfile = İçe Aktar
+schematic.search = Şema ara...
+schematic.replace = Aynı adda bir şema zaten var. Üzerine yazılsın mı?
+schematic.exists = Aynı adda bir şema zaten var.
+schematic.import = Şemayı İçeri Aktar...
+schematic.exportfile = Dışarı Aktar
+schematic.importfile = İçeri Aktar
schematic.browseworkshop = Atölyeyi araştır
schematic.copy = Panoya Kopyala
-schematic.copy.import = Panodan İçeri Aktar
+schematic.copy.import = Panodan Yapıştır
schematic.shareworkshop = Atölyede paylaş
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Şemayı döndür
schematic.saved = Şema Kaydedildi.
-schematic.delete.confirm = Bu şema tamamen silinecek.
+schematic.delete.confirm = Bu şema tamamen yok edilecek.
schematic.edit = Şemayı Düzenle
schematic.info = {0}x{1}, {2} blok
schematic.disabled = [scarlet]Şema devre dışı bırakıldı[]\nBu şemayı [accent]bu haritada[] veya [accent]server'da kullanma iznin yok.
@@ -79,18 +79,18 @@ schematic.addtag = Etiket Ekle
schematic.texttag = Yazı Etiketi
schematic.icontag = İkon Etiketi
schematic.renametag = Etiketi Yeniden Adlandır
-schematic.tagged = {0} etiketli
+schematic.tagged = {0} etiketlendi
schematic.tagdelconfirm = Bu Etiketi Silmek istediğine emin misin?
schematic.tagexists = Böyle bir Etiket zaten var.
stats = İstatistikler
-stats.wave = Dalga Fethedilidi
-stats.unitsCreated = Birim Üretildi
-stats.enemiesDestroyed = Düşman Yokedildi
-stats.built = Bina İnşaa Edildi
-stats.destroyed = Bina Yokedildi
-stats.deconstructed = Bina Kırıldı
-stats.playtime = Oyun Süresi
+stats.wave = Kazanılan Dalgalar
+stats.unitsCreated = Üretilen Birimler
+stats.enemiesDestroyed = Yok Edilen Düşmanlar
+stats.built = İnşa Edilen Yapılar
+stats.destroyed = Yıkılan Yapılar
+stats.deconstructed = Kaldırılan Yapılar
+stats.playtime = Oynanan Süre
globalitems = [accent]Toplanan Kaynaklar
map.delete = "[accent]{0}[]" haritasını silmek istediğine emin misin?
@@ -109,10 +109,10 @@ newgame = Yeni Oyun
none =
none.found = [lightgray]
none.inmap = [lightgray]
-minimap = Harita
+minimap = Küçük Harita
position = Konum
close = Kapat
-website = Websitesi
+website = Genel ağ sayfası
quit = Çık
save.quit = Kaydet & Çık
maps = Haritalar
@@ -131,6 +131,7 @@ feature.unsupported = Cihazınızda bu özellik desteklenmemektedir.
mods.initfailed = [red]⚠[] NOLAMAZ! Mindustry Çöktü. Bu Büyük ihtimalle bir moddan kaynaklandı.\n\nSonsuz Çökmeyi önlemek için, [red]tüm modlar kapatıldı.[]\n\nBu özelliği kapamak için, [accent]Ayarlar->Oyun->Modları Başlangıçta Çökme Durumunda Kapat[].
mods = Modlar
+mods.name = Mod:
mods.none = [lightgray]Hiç mod bulunamadı!
mods.guide = Mod Rehberi
mods.report = Hata bildir
@@ -155,7 +156,7 @@ mod.erroredcontent = [scarlet]İçerik hatası.
mod.circulardependencies = [red]Döngüsel Bağımlılıklar
mod.incompletedependencies = [red]Eksik Bağımlılıklar
mod.requiresversion.details = [accent]{0}[] oyun sürümü gerekiyor.\nSürümün eski. Bu mod, çalışmak için oyunun daha yeni bir sürümünü gerektiriyor (büyük ihtimal alpha/beta).
-mod.outdatedv7.details = Bu mod, oyunun en son sürümüyle uyumsuz. Modun yapmıcısının [accent]mod.json[] dosyasına, [accent]minGameVersion: 146[] eklemesi gerekiyor.
+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 = Bu mod, oyunun bu sürümüyle hata verdiğinden veya başka sorunlar ötürü kara listeye alınmıştır. [#ff]KULLANMAYINIZ!
mod.missingdependencies.details = Bu Mod, şu ek modları gerektiriyor: {0}
mod.erroredcontent.details = Bu mod yüklenirken hata veriyor, yapımcıdan hataları düzeltmesini isteyin.
@@ -164,7 +165,6 @@ mod.incompletedependencies.details = Eksik veya yanlış bağlılıklardan dolay
mod.requiresversion = Şu oyun sürümü gerekiyor: [red]{0}
mod.errors = İçerik yüklenirken bir hata oluştu.
mod.noerrorplay = [scarlet]Hatalı modlarınız var.[] Oynamadan önce bu modları devre dışı bırakın veya dosyadaki hataları düzeltin.
-mod.nowdisabled = [scarlet]'{0}' modunun çalışması için gerekli olan modlardan bazıları bulunamadı:[accent] {1}\n[lightgray]Önce bu modların indirilmesi gerekmektedir.\nBu mod otomatik olarak devre dışı bırakılacaktır.
mod.enable = Etkinleştir
mod.requiresrestart = Oyun mod değişikliklerini uygulamak için kapatılacak.
mod.reloadrequired = [scarlet]Yeniden Yükleme Gerekli
@@ -179,6 +179,15 @@ mod.missing = Bu kayıt yakın zamanda güncellediğiniz ya da artık yüklü ol
mod.preview.missing = Bu modu atölyede yayınlamadan önce bir resim önizlemesi eklemelisiniz.\nMod dosyasına [accent]preview.png[] adlı bir resim yerleştirin ve tekrar deneyin.
mod.folder.missing = Atölyede sadece klasör halindeki modlar yayınlanabilir.Bir modu klasöre çevirmek için, sadece mod dosyalarını bir klasöre çıkarın ve eski sıkıştırılmış dosyayı silin, sonra da oyunu tekrar başlatın ya da modlarınızı tekrar yükleyin.
mod.scripts.disable = Cihazınız kod içeren modları desteklemiyor. \nOyunu oynamak için bu modları devre dışı bırakmalısınız.
+mod.dependencies.error = [scarlet]Mods are missing dependencies
+mod.dependencies.soft = (optional)
+mod.dependencies.download = Import
+mod.dependencies.downloadreq = Import Required
+mod.dependencies.downloadall = Import All
+mod.dependencies.status = Import Results
+mod.dependencies.success = Successfully downloaded:
+mod.dependencies.failure = Failed to download:
+mod.dependencies.imported = This mod requires dependencies. Download?
about.button = Hakkında
name = İsim:
@@ -194,7 +203,7 @@ campaign.select = Başlangıç Mücadelesi Seç
campaign.none = [lightgray]Başlamak için bir gezegen seç.\nBu seçim herhangi bir zamanda değiştirlebilir.
campaign.erekir = Daha yeni ve cilalanmış içerikler. Genellikle kararlı ilerleme.\n\nDaha kaliteli haritalar ve deneyim (herhalde).
campaign.serpulo = Eski içerik; klasik deneyim. Daha serbest.\n\nDaha dengesiz harita ve deneyim. Cilayı unutmuşlar işte...
-campaign.difficulty = Difficulty
+campaign.difficulty = Zorluk
completed = [accent]Tamamlandı
techtree = Teknoloji Ağacı
techtree.select = Teknoloji Ağacı Seç
@@ -262,7 +271,7 @@ trace.mobile = Mobil Sürüm: [accent]{0}
trace.modclient = Özel Sürüm: [accent]{0}
trace.times.joined = Girme Sayısı: [accent]{0}
trace.times.kicked = Atılma Sayısı: [accent]{0}
-trace.ips = IPs:
+trace.ips = IPler:
trace.names = İsimler:
invalidid = Geçersiz Sürüm Kimliği! Bir hata raporu gönder.
player.ban = Yasakla
@@ -295,13 +304,14 @@ disconnect.error = Bağlantı hatası.
disconnect.closed = Bağlantı kapatıldı.
disconnect.timeout = Zaman aşımı.
disconnect.data = Dünya verisi yüklenemedi!
+disconnect.snapshottimeout = Timed out while receiving UDP snapshots.\nThis may be caused by an unstable network or connection.
cantconnect = Oyuna girilemiyor ([accent]{0}[]).
connecting = [accent]Bağlanılıyor...
reconnecting = [accent]Yeniden Bağlanılıyor...
connecting.data = [accent]Dünya verisi yükleniyor...
server.port = Port:
server.invalidport = Geçersiz port sayısı!
-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]Port 6567 açılamadı.[]\n\nCihaz ve internetinde başka bir Mindustry sunucusu açık olmadığından emin ol!
server.error = [crimson]Sunucu kurulamadı: [accent]{0}
save.new = Yeni kayıt
save.overwrite = Bu kaydın üstüne yazmak istediğine\nemin misin?
@@ -354,7 +364,7 @@ command.enterPayload = Kargo Bloğu Seç
command.loadUnits = Birim Yükle
command.loadBlocks = Blok Yükle
command.unloadPayload = Birim Bırak
-command.loopPayload = Loop Unit Transfer
+command.loopPayload = Birim Transferini Döngüye Sok
stance.stop = Emri İptal Et
stance.shoot = Duruş: Saldırı
stance.holdfire = Duruş: Hazır Ol
@@ -441,12 +451,12 @@ editor.waves = Dalgalar:
editor.rules = Kurallar:
editor.generation = Oluşum:
editor.objectives = Görevler:
-editor.locales = Yerel Paketler
+editor.locales = Dil Paketleri
editor.worldprocessors = Evrensel İşlemciler
-editor.worldprocessors.editname = İsmi Değiştir
-editor.worldprocessors.none = [lightgray]Evrensel İşlemci bulunamadı!\nEditörden bu muazzam bloğu ekle veya şu düğmeye bas: \ue813 Ekle
-editor.worldprocessors.nospace = Evrensel İşlemci koycak yer yok!\nCidden tüm mapi binalarla mı doldurdun? Oyunun kasmıyor mu? İşsiz misin? Harbi NPC...
-editor.worldprocessors.delete.confirm = Bu Evrensel İşlemciyi silmek istediğine emin misin?\n\nEğer etrafında duvar varsa doğal bir duvarla yer değiştiricek.
+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.
+editor.worldprocessors.nospace = Evrensel İşlemci yerleştirecek yer yok!\n Gerçekten bütün haritayı yapılarla mı doldurdun? Bunu neden yaparsın?
+editor.worldprocessors.delete.confirm = Bu Evrensel İşlemciyi silmek istediğine emin misin?\n\nEğer etrafında duvar varsa bir doğal duvarla yer değiştirilecek.
editor.ingame = Oyun içinde düzenle
editor.playtest = Test Et
editor.publish.workshop = Atölyede Yayınla
@@ -463,6 +473,7 @@ editor.shiftx = X Ekseninde Kaydır
editor.shifty = Y Ekseninde Kaydır
workshop = Atölye
waves.title = Dalgalar
+waves.team = Team
waves.remove = Kaldır
waves.every = her
waves.waves = dalga(lar)
@@ -498,14 +509,14 @@ waves.units.show = Hepsini Göster
wavemode.counts = miktarlar
wavemode.totals = toplamlar
wavemode.health = can
-all = All
+all = Tüm
editor.default = [lightgray]
details = Detaylar...
edit = Düzenle...
variables = Değişkenler
-logic.clear.confirm = Bu işlemcideki tüm kodu silmek istediğine emin misin?
-logic.globals = Yerleşik Değişkenler
+logic.clear.confirm = Bu işlemciden bütün kodları silmek istediğinze emin misiniz?
+logic.globals = Dahili Değişkenler
editor.name = İsim:
editor.spawn = Birim Oluştur
editor.removeunit = Birim Kaldır
@@ -529,7 +540,7 @@ editor.sectorgenerate = Sektör Oluştur
editor.resize = Yeniden Boyutlandır
editor.loadmap = Harita Yükle
editor.savemap = Haritayı Kaydet
-editor.savechanges = [scarlet]Kaydedilmemiş değişiklerin var!\n\n[]Onları kaydetsen mi acaba?
+editor.savechanges = [scarlet]Kaydedilmemiş değişiklikleriniz var!\n\n[]Kaydetmek ister misiniz?
editor.saved = Kaydedildi!
editor.save.noname = Haritanın bir ismi yok! 'Harita bilgileri' menüsünden bir isim seç.
editor.save.overwrite = Haritan bir yerleşik haritayla örtüşüyor! 'Harita bilgileri' menüsünden farklı bir isim seç.
@@ -568,8 +579,8 @@ toolmode.eraseores = Maden Sil
toolmode.eraseores.description = Sadece madenleri siler..
toolmode.fillteams = Takımları Doldur
toolmode.fillteams.description = Bloklar yerine takımları doldurur.
-toolmode.fillerase = Doldurarak Sil
-toolmode.fillerase.description = Anyı tip blokları sil.
+toolmode.fillerase = Doldur Sil
+toolmode.fillerase.description = Aynı türden blokları sil.
toolmode.drawteams = Takım Çiz
toolmode.drawteams.description = Bloklar yerine takımları çizer..
toolmode.underliquid = Sıvı Altı
@@ -619,23 +630,23 @@ filter.option.radius = Yarıçap
filter.option.percentile = Yüzdelik
filter.option.code = Kod
filter.option.loop = Döngü
-locales.info = Buraya oyun içi kullanmak için yerel dil paketleri yükleyebilirsin. Yerel dil paketlerinde her değişkenin bir ismi ve değeri var. Bu değişkenler Evrensel İşlemciler ve Görevler tarafından okunabilir. Yazı formatlanabilir.\n\n[cyan]Örnek:\n[]name: [accent]zamanlayıcı[]\ndeğer: [accent]Örnek zamanlayıcı, kalan zaman: {0}[]\n\n[cyan]Kullanım:\n[]Görev yazısı olarak ayarla: [accent]@zamanlayıcı\n\n[]Evrensel İşlemciye yaz:\n[accent]localeprint "zamanlayıcı"\nformat zaman\n[gray](zaman başka hesaplanan bir değişken)
-locales.deletelocale = Bu yerel dil paketini silmek istediğine emin misin?
-locales.applytoall = Değişiklikleri TÜM yerel paketlere uygula
-locales.addtoother = Başka yerel paket ekle
-locales.rollback = En sonki değişikliğe geri al
-locales.filter = Özellik Filtresi
-locales.searchname = İsim arat...
-locales.searchvalue = Değer arat...
-locales.searchlocale = Yerel Paket arat...
-locales.byname = İsme göre
+locales.info = Burada, haritanız için dil paketleri ekleyebilirsiniz. Dil paketlerinde, her sabitin bir adı ve de bir değeri olur. Bu sabitler adları ile evrensel işlemciler ve hedefler tarafından kullanılabilirler. Metin biçimlendirme desteklerler (placeholder değerleri asıllarıyla değiştirmeyi).\n\n[cyan]Örnek sabit:\n[]ad: [accent]timer[]\ndeğer: [accent]Örnek zamanlayıcı, kalan zaman: {0}[]\n\n[cyan]Kullanım:\n[]Bir görevin metni olarak ayarla: [accent]@timer\n\n[]Evrensel işlemcide yazdır:\n[accent]localeprint "timer"\nformat time\n[gray](time burada ayrıca hesaplanan bir değişken)
+locales.deletelocale = Bu dil paketini silmek istediğinze emin misiniz?
+locales.applytoall = Değişiklikleri Tüm Dil Paketlerine Uygula
+locales.addtoother = Diğer Dil Paketlerine Ekle
+locales.rollback = Son uygulanana geri dön
+locales.filter = Sabit filtresi
+locales.searchname = Ad ara...
+locales.searchvalue = Değer ara...
+locales.searchlocale = Dil paketi ara...
+locales.byname = Ada göre
locales.byvalue = Değere göre
-locales.showcorrect = Tüm yerel paketlerde bulunan ve her yerde olan değerleri her yerde göster
-locales.showmissing = Bazı yerel paketlerde eksik olan değerleri göster
-locales.showsame = Başka yerel paketlerde aynı isme sahip değerleri göster
-locales.viewproperty = Tüm yerel paketlerde göster
-locales.viewing = Görünüm tipi "{0}"
-locales.addicon = İkon ekle
+locales.showcorrect = Bütün dil paketlerinde bulunan ve her yerde özel değeri olan sabitleri göster
+locales.showmissing = Bazı dil paketlerinde eksik olan sabitleri göster
+locales.showsame = Farklı dil paketlerinde aynı değere sahip sabitleri göster
+locales.viewproperty = Bütün dillerde göster
+locales.viewing = Sabit "{0}" gösteriliyor.
+locales.addicon = Simge Ekle
width = En:
height = Boy:
@@ -685,7 +696,7 @@ objective.destroycore.name = Merkezi Yok Et
objective.commandmode.name = Komuta Et
objective.flag.name = Bayrak
marker.shapetext.name = Şekilli Yazı
-marker.point.name = Point
+marker.point.name = Nokta
marker.shape.name = Şekil
marker.text.name = Yazı
marker.line.name = Hat
@@ -714,14 +725,18 @@ loadout = Yükleme
resources = Kaynaklar
resources.max = Maks
bannedblocks = Yasaklı Bloklar
+unbannedblocks = Unbanned Blocks
objectives = Görevler
bannedunits = Yasaklı Birimler
+unbannedunits = Unbanned Units
bannedunits.whitelist = Yasaklı Birimleri Beyazlisteye Ata
bannedblocks.whitelist = Yasaklı Binaları Beyazlisteye Ata
addall = Hepsini Ekle
launch.from = [accent]{0} dan fırlatılıyor.
launch.capacity = Fırlatılan Malzeme Kapasitesi: [accent]{0}
launch.destination = Varış Yeri: {0}
+landing.sources = Source Sectors: [accent]{0}[]
+landing.import = Max Total Import: {0}[accent]{1}[lightgray]/min
configure.invalid = Miktar 0 ve {0} arasında bir sayı olmalı.
add = Ekle...
guardian = Gardiyan
@@ -736,7 +751,7 @@ error.mapnotfound = Harita dosyası bulunamadı!
error.io = Ağ I/O hatası.
error.any = Bilinmeyen ağ hatası.
error.bloom = Kamaşma başlatılamadı.\nCihazınız bu özelliği desteklemiyor olabilir.
-error.moddex = Mindustry is unable to load this mod.\nYour device is blocking import of Java mods due to recent changes in Android.\nThere is no known workaround to this issue.
+error.moddex = Mindustry bu modu yükleyemedi.\nAndroid'de son değişimlerden dolayı cihazın Java modlarını yükleyemiyor.\nBu sorunun bilinen bir çözümü yok, zaten oyunu git pc de oyna, mobil kontroller kanser...
weather.rain.name = Yağmur
weather.snowing.name = Kar
@@ -760,7 +775,9 @@ sectors.stored = Depolanan:
sectors.resume = Devam Et
sectors.launch = Fırlat
sectors.select = Seç
+sectors.launchselect = Select Launch Destination
sectors.nonelaunch = [lightgray]yok (güneş)
+sectors.redirect = Redirect Launch Pads
sectors.rename = Sektörü Yeniden Adlandır
sectors.enemybase = [scarlet]Düşman Üs
sectors.vulnerable = [scarlet]Dayanıksız
@@ -787,11 +804,15 @@ threat.medium = Orta
threat.high = Yüksek
threat.extreme = Aşırı
threat.eradication = İmkansız
-difficulty.casual = Casual
-difficulty.easy = Easy
+difficulty.casual = Sakin
+difficulty.easy = Kolay
difficulty.normal = Normal
-difficulty.hard = Hard
-difficulty.eradication = Eradication
+difficulty.hard = Zor
+difficulty.eradication = Absürd
+difficulty.enemyHealthMultiplier = Enemy Health: {0}
+difficulty.enemySpawnMultiplier = Enemy Amount: {0}
+difficulty.waveTimeMultiplier = Wave Timer: {0}
+difficulty.nomodifiers = [lightgray](No modifiers)
planets = Gezegenler
@@ -799,7 +820,7 @@ planet.serpulo.name = Serpulo
planet.erekir.name = Erekir
planet.sun.name = Güneş
-sector.impact0078.name = 0078 Darbesi
+sector.impact0078.name = Darbe 0078
sector.groundZero.name = Sıfır Noktası
sector.craters.name = Kraterler
sector.frozenForest.name = Donmuş Orman
@@ -811,22 +832,22 @@ sector.overgrowth.name = Sarmaşık Sporlar
sector.tarFields.name = Katran Çölü
sector.saltFlats.name = Tuz Düzlükleri
sector.fungalPass.name = Mantar Geçidi
-sector.biomassFacility.name = Sentetik BioMadde Santrali
+sector.biomassFacility.name = Sentetik Biyokütle Tesisi
sector.windsweptIslands.name = Rüzgarlı Adalar
sector.extractionOutpost.name = Kazı Üssü
-sector.facility32m.name = Facility 32 M
-sector.taintedWoods.name = Tainted Woods
-sector.infestedCanyons.name = Infested Canyons
+sector.facility32m.name = 32 M Üssü
+sector.taintedWoods.name = İsli Orman
+sector.infestedCanyons.name = İstila Edilmiş Canyon
sector.planetaryTerminal.name = Gezegenler Arası Terminal
sector.coastline.name = Kıyı Şeridi
sector.navalFortress.name = Deniz Kalesi
-sector.polarAerodrome.name = Polar Aerodrome
-sector.atolls.name = Atolls
-sector.testingGrounds.name = Testing Grounds
-sector.seaPort.name = Sea Port
-sector.weatheredChannels.name = Weathered Channels
-sector.mycelialBastion.name = Mycelial Bastion
-sector.frontier.name = Frontier
+sector.polarAerodrome.name = Polar Havaalanı
+sector.atolls.name = Atoller
+sector.testingGrounds.name = Test Arazisi
+sector.seaPort.name = Deniz Limanı
+sector.weatheredChannels.name = Erezyonlu Kanallar
+sector.mycelialBastion.name = Mantar Kale
+sector.frontier.name = Öncü Üs
sector.groundZero.description = Yeniden başlamak için ideal bölge. Düşük düşman tehlikesi ve az miktarda kaynak mevcut. Mümkün olduğunca çok bakır ve kurşun topla.\nİlerle.
sector.frozenForest.description = Burada, dağlara yakın bölgelerde bile sporlar etrafa yayıldı. Dondurucu soğuk onları sonsuza dek durduramaz.\n\nEnerji kullanmaya başla. Termik jeneratörler inşa et. Tamircileri kullanmayı öğren.
@@ -846,8 +867,8 @@ sector.impact0078.description = Burası, eskiden buraya düşmüş bir yıldızl
sector.planetaryTerminal.description = Son aşama.\n\nBu üs, başka gezegenlere gitmeyi sağlayan teknolojiyi barıdırıyor. Aşırı iyi bir şekilde korunuyor.\n\nOlabildiğince hızlı bir şekilde gemi üret ve düşman üssü elegeçir. Gezegenler Arası Hızladırıcıyı aç!
sector.coastline.description = Bu bölgede denizel birim teknoloji kalıntıları tespit edildi. Düşman saldırılarını püskürt, sektörü ele geçir ve teknolojiyi kurtar.
sector.navalFortress.description = Düşman bu uzak adaya doğal olarak korunan bir üs kurmuş. Bu üssü yok et. Onların gelişmiş savaş gemisi teknolojilerini elde et ve araştır.
-sector.cruxscape.name = Cruxscape
-sector.geothermalStronghold.name = Geothermal Stronghold
+sector.cruxscape.name = Crux Düzlüğü
+sector.geothermalStronghold.name = Jeotermal Sığınağı
sector.facility32m.description = WIP, map submission by Stormride_R
sector.taintedWoods.description = WIP, map submission by Stormride_R
sector.atolls.description = WIP, map submission by Stormride_R
@@ -919,7 +940,7 @@ settings.game = Oyun
settings.sound = Ses
settings.graphics = Grafikler
settings.cleardata = ⚠ Tüm Oyun Verisini Sil ⚠
-settings.clear.confirm = Verileri silmek istediğinizden emin misiniz?\nBu işlemi geri alamazsınız!
+settings.clear.confirm = Verileri silmek istediğinizden emin misiniz?\nBu işlemi geri alamazsınız!!!
settings.clearall.confirm = [scarlet]Uyarı![]\nBu işlem kayıtlar, haritalar açılan bloklar ve tuş atamaları dahil bütün verileri silecektir.\n"Tamam" tuşuna bastığınızda bütün verileriniz silinecek ve oyun kapanacaktır.
settings.clearsaves.confirm = Tüm kayıtlarınızı silmek istediğinizden emin misiniz?
settings.clearsaves = Kayıtları Sil
@@ -1022,6 +1043,7 @@ stat.buildspeedmultiplier = İnşa Hızı Çarpanı
stat.reactive = Tepki Verir
stat.immunities = Bağışıklıklar
stat.healing = Tamir Eder
+stat.efficiency = [stat]{0}% Efficiency
ability.forcefield = Güç Kalkanı
ability.forcefield.description = Mermilere karşı bir güç kalkanı açar
@@ -1068,6 +1090,7 @@ ability.stat.buildtime = [stat]{0} sn[lightgray] inşa süresi
bar.onlycoredeposit = Sadece Merkeze Aktarım Mümkün
bar.drilltierreq = Daha Güçlü Matkap Gerekli
+bar.nobatterypower = Insufficieny Battery Power
bar.noresources = Kaynak Yetersiz
bar.corereq = Merkez Tabanı Gerekli
bar.corefloor = Merkez Alan Zemini Gerekli
@@ -1076,6 +1099,7 @@ bar.drillspeed = Matkap Hızı: {0}/s
bar.pumpspeed = Pompa Hızı: {0}/s
bar.efficiency = Verim: {0}%
bar.boost = Hızlanış: +{0}%
+bar.powerbuffer = Battery Power: {0}/{1}
bar.powerbalance = Enerji: {0}/sn
bar.powerstored = Depolanan: {0}/{1}
bar.poweramount = Enerji: {0}
@@ -1086,6 +1110,7 @@ bar.capacity = Kapasite: {0}
bar.unitcap = {0} {1}/{2}
bar.liquid = Sıvı
bar.heat = Isı
+bar.cooldown = Cooldown
bar.instability = Dengesizlik
bar.heatamount = Isı: {0}
bar.heatpercent = Isı: {0} ({1}%)
@@ -1110,6 +1135,7 @@ bullet.interval = [stat]{0}/sn[lightgray] ara mermiler:
bullet.frags = [stat]{0}[lightgray]x parçalı mermiler:
bullet.lightning = [stat]{0}[lightgray]x elektrik ~ [stat]{1}[lightgray] hasarı
bullet.buildingdamage = [stat]{0}%[lightgray] inşa hasarı
+bullet.shielddamage = [stat]{0}%[lightgray] shield damage
bullet.knockback = [stat]{0} [lightgray]savurma
bullet.pierce = [stat]{0}[lightgray]x delme
bullet.infinitepierce = [stat]delme
@@ -1118,8 +1144,8 @@ bullet.healamount = [stat]{0}[lightgray] direkt tamir
bullet.multiplier = [stat]{0}[lightgray]x mermi çarpanı
bullet.reload = [stat]{0}[lightgray]x atış hızı
bullet.range = [stat]{0}[lightgray] blok menzil
-bullet.notargetsmissiles = [stat] ignores buildings
-bullet.notargetsbuildings = [stat] ignores missiles
+bullet.notargetsmissiles = [stat] binaları görmezden gelir
+bullet.notargetsbuildings = [stat] füzeleri görmezden gelir
unit.blocks = blok
unit.blockssquared = blok²
@@ -1136,6 +1162,7 @@ unit.minutes = dakika
unit.persecond = /sn
unit.perminute = /dk
unit.timesspeed = x hız
+unit.multiplier = x
unit.percent = %
unit.shieldhealth = kalkan canı
unit.items = eşya
@@ -1157,18 +1184,18 @@ setting.alwaysmusic.description = When enabled, music will always play on loop i
setting.skipcoreanimation.name = Merkez Fırlatma/İnme Animasyonunu Atla
setting.landscape.name = Yatayda sabitle
setting.shadows.name = Gölgeler
-setting.blockreplace.name = Otomatik Blok önerileri
+setting.blockreplace.name = Otomatik Blok Önerileri
setting.linear.name = Lineer Filtreleme
setting.hints.name = İpuçları
-setting.logichints.name = İşemci İpuçları
+setting.logichints.name = İşlemci İpuçları
setting.backgroundpause.name = Arka Planda Durdur
-setting.buildautopause.name = İnşa etmeyi otomatik olarak durdur
-setting.doubletapmine.name = İki Tıklamayla Kaz
+setting.buildautopause.name = İnşa Etmeyi Otomatik Olarak Durdur
+setting.doubletapmine.name = Çift Tıklamayla Kaz
setting.commandmodehold.name = Komuta Modu için Basılı Tut
-setting.distinctcontrolgroups.name = Birim başına bir kontrol grubuna sınırla
-setting.modcrashdisable.name = Modları Çökmede Kapa
-setting.animatedwater.name = Animasyonlu Su
-setting.animatedshields.name = Animasyonlu Kalkanlar
+setting.distinctcontrolgroups.name = Birim Başı Bir Kontrol Grubuna Sınırla
+setting.modcrashdisable.name = Çökmede Modları Kapa
+setting.animatedwater.name = Hareketli Su
+setting.animatedshields.name = Hareketli Kalkanlar
setting.playerindicators.name = Oyuncu Belirteçleri
setting.indicators.name = Düşman/Müttefik Belirteçleri
setting.autotarget.name = Otomatik Hedef Alma
@@ -1212,11 +1239,13 @@ setting.mutemusic.name = Müziği Kapat
setting.sfxvol.name = Oyun Sesi
setting.mutesound.name = Sesi Kapat
setting.crashreport.name = Anonim Çökme Raporları Gönder
+setting.communityservers.name = Fetch Community Server List
setting.savecreate.name = Otomatik Kayıt Oluştur
setting.steampublichost.name = Herkese Açık Oyun Görünürlüğü
setting.playerlimit.name = Oyuncu Limiti
setting.chatopacity.name = Mesajlaşma Opaklığı
setting.lasersopacity.name = Enerji Lazeri Opaklığı
+setting.unitlaseropacity.name = Unit Mining Beam Opacity
setting.bridgeopacity.name = Köprü Opaklığı
setting.playerchat.name = Oyun-içi Konuşmayı Göster
setting.showweather.name = Hava Durmu Grafiklerini Göster
@@ -1225,6 +1254,9 @@ setting.macnotch.name = Arayüzü çentik gösterecek şekilde uyarlayın
setting.macnotch.description = Değişikleri uygulamak için yeniden başlatma gerekli
steam.friendsonly = Arkadaşlara özel
steam.friendsonly.tooltip = Sadece Steam arkadaşlarının katılıp katılabilemeyeceğini belirler.\nBu kutudan tiki kaldırmak oyununuzu herkese açık yapacaktır.
+setting.maxmagnificationmultiplierpercent.name = Min Camera Distance
+setting.minmagnificationmultiplierpercent.name = Max Camera Distance
+setting.minmagnificationmultiplierpercent.description = High values may cause performance issues.
public.beta = Oyunun beta sürümlerinin halka açık lobiler yapamayacağını unutmayın.
uiscale.reset = Arayüz ölçeği değiştirildi.\nBu ölçeği onaylamak için "Tamam" butonuna basın.\n[accent] {0}[] [scarlet]saniye içinde eski ayarlara geri dönülüp oyundan çıkılıyor…[]
uiscale.cancel = İptal Et ve Çık
@@ -1305,6 +1337,7 @@ keybind.shoot.name = Ateş Et
keybind.zoom.name = Yakınlaştırma/Uzaklaştırma
keybind.menu.name = Menü
keybind.pause.name = Durdur
+keybind.skip_wave.name = Skip Wave
keybind.pause_building.name = İnşaatı Duraklat/İnşaata Devam Et
keybind.minimap.name = Harita
keybind.planet_map.name = Gezegen Haritası
@@ -1345,18 +1378,18 @@ rules.disableworldprocessors = Evrensel İşlemcileri Devredışı Bırak
rules.schematic = Şema Kullanılabilir
rules.wavetimer = Dalga Zamanlayıcısı
rules.wavesending = Dalga Gönderiliyor
-rules.allowedit = Allow Editing Rules
-rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu.
-rules.alloweditworldprocessors = Allow Editing World Processors
-rules.alloweditworldprocessors.info = When enabled, world logic blocks can be placed and edited even outside the editor.
+rules.allowedit = Ayaraları Düzenlemeye İzin Ver
+rules.allowedit.info = Açıldığında, oyuncular durdurma tuşunun altındaki bir tuş ile ayarları düzenleyebilir.
+rules.alloweditworldprocessors = Evrensel İşlemcileri Düzenlemeye İzin Ver
+rules.alloweditworldprocessors.info = Açıldığında, oyuncular evren işlemcileri oyun içinde düzenleyebilir.
rules.waves = Dalgalar
-rules.airUseSpawns = Hava Birimleri doğuş bölgelerini kullanır
+rules.airUseSpawns = Hava Birimleri Doğum Noktalarını Kullanır
rules.attack = Saldırı Modu
rules.buildai = Üs inşa edici YZ
rules.buildaitier = İnşaatçı YZ sınıfı
rules.rtsai = RTS YZ
-rules.rtsai.campaign = RTS Attack AI
-rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner.
+rules.rtsai.campaign = RTS Saldırı YZ
+rules.rtsai.campaign.info = Saldırı Haritalarında, yapay zekayı daha 'zeki' yapar.
rules.rtsminsquadsize = Asgari Gurup Boyutu
rules.rtsmaxsquadsize = Azami Gurup Boyutu
rules.rtsminattackweight = Asgari Saldırı Boyutu
@@ -1364,7 +1397,7 @@ rules.cleanupdeadteams = Kaybeden Takımın Bloklarını Temizle (PvP)
rules.corecapture = Yıkımda Çekirdeği Elegeçir
rules.polygoncoreprotection = Çokgenli Merkez Koruması
rules.placerangecheck = İnşa Menzilini Doğrula
-rules.enemyCheat = Sınırsız AI (Düşman Takım) Kaynakları
+rules.enemyCheat = Sınırsız YZ (Düşman Takım) Kaynakları
rules.blockhealthmultiplier = Blok Can Çarpanı
rules.blockdamagemultiplier = Blok Hasar Çarpanı
rules.unitbuildspeedmultiplier = Birim Üretim Hız Çarpanı
@@ -1372,12 +1405,14 @@ rules.unitcostmultiplier = Birim Fiyat Çarpanı
rules.unithealthmultiplier = Birim Can Çarpanı
rules.unitdamagemultiplier = Birim Hasar Çapanı
rules.unitcrashdamagemultiplier = Birim Çakılma Hasar Çarpanı
+rules.unitminespeedmultiplier = Unit Mine Speed Multiplier
rules.solarmultiplier = Güneş Paneli Üretim Çarpanı
rules.unitcapvariable = Merkezler Birim Sınırını Etkiler
rules.unitpayloadsexplode = Carried Payloads Explode With The Unit
rules.unitcap = Sabit Birim Sınırı
rules.limitarea = Haritayı Sınırla
rules.enemycorebuildradius = Düşman Merkezi İnşa Yasağı Yarıçapı: [lightgray](kare)
+rules.extracorebuildradius = Extra No-Build Radius:[lightgray] (tiles)
rules.wavespacing = Dalga Aralığı: [lightgray](sn)
rules.initialwavespacing = Başlangıç Dalga Aralığı:[lightgray] (sn)
rules.buildcostmultiplier = İnşa Ücreti Çarpanı
@@ -1399,9 +1434,12 @@ rules.title.teams = Takımlar
rules.title.planet = Gezegen
rules.lighting = Işıklandırma
rules.fog = Savaş Sisi
-rules.invasions = Enemy Sector Invasions
-rules.showspawns = Show Enemy Spawns
-rules.randomwaveai = Unpredictable Wave AI
+rules.invasions = Düşman Sektör Saldırıları
+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 = Düşman Doğuş Noktalarını Göster
+rules.randomwaveai = Tahmin Edilemez Dalgalar
rules.fire = Ateş
rules.anyenv =
rules.explosions = Blok/Birlik Patlama Hasarı
@@ -1410,7 +1448,7 @@ rules.weather = Hava Durumu
rules.weather.frequency = Sıklık:
rules.weather.always = Her zaman
rules.weather.duration = Süreklilik:
-rules.randomwaveai.info = Makes units spawned in waves target random structures instead of directly attacking the core or power generators.
+rules.randomwaveai.info = Düşman Birimler Rastgele Saldırır ve direkt çekirdeğe veya enerji kaynaklarına gitmezler.
rules.placerangecheck.info = Oyuncuların düşman üssüne yakın inşa etmesini engeller. Bu, silah kurarken daha da fazla.
rules.onlydepositcore.info = Birimlerin Merkez dışında malzeme aktarmasını engeller.
@@ -1429,7 +1467,7 @@ item.coal.name = Kömür
item.graphite.name = Grafit
item.titanium.name = Titanyum
item.thorium.name = Toryum
-item.silicon.name = Silikon
+item.silicon.name = Silisyum
item.plastanium.name = Plastanyum
item.phase-fabric.name = Faz Örgüsü
item.surge-alloy.name = Akı Alaşımı
@@ -1553,8 +1591,8 @@ block.graphite-press.name = Grafit Ezici
block.multi-press.name = Çoklu-Ezici
block.constructing = {0} [lightgray](İnşa Ediliyor)
block.spawn.name = Düşman Doğum Noktası
-block.remove-wall.name = Remove Wall
-block.remove-ore.name = Remove Ore
+block.remove-wall.name = Duvar Kaldır
+block.remove-ore.name = Maden Kaldır
block.core-shard.name = Merkez: Parçacık
block.core-foundation.name = Merkez: Temel
block.core-nucleus.name = Merkez: Çekirdek
@@ -1638,7 +1676,7 @@ block.world-switch.name = Evrensel Şalter
block.illuminator.name = Aydınlatıcı
block.overflow-gate.name = Taşma Geçidi
block.underflow-gate.name = Ters Taşma Geçidi
-block.silicon-smelter.name = Silikon Fırını
+block.silicon-smelter.name = Silisyum Fırını
block.phase-weaver.name = Faz Örücü
block.pulverizer.name = Ufalayıcı
block.cryofluid-mixer.name = Kriyosıvı Karıştırıcı
@@ -1718,6 +1756,8 @@ block.meltdown.name = Meltdown
block.foreshadow.name = Foreshadow
block.container.name = Konteyner
block.launch-pad.name = Fıralatış Rampası
+block.advanced-launch-pad.name = Launch Pad
+block.landing-pad.name = Landing Pad
block.segment.name = Segment
block.ground-factory.name = Yer Birimi Fabrikası
block.air-factory.name = Hava Birimi Fabrikası
@@ -1735,7 +1775,7 @@ block.large-payload-mass-driver.name = Büyük Kargo Kütle Sürücü
block.payload-void.name = Kargo Yokedici
block.payload-source.name = Kargo Kaynağı
block.disassembler.name = Sökücü
-block.silicon-crucible.name = Silikon Kazanı
+block.silicon-crucible.name = Silisyum Krozesi
block.overdrive-dome.name = Hızlandırma Kubbesi
block.interplanetary-accelerator.name = Gezegenler Arası Hızlandırıcı
#Düzgün tutun bu TR translatei uğraştırıyonuz beni. -RTOmega (harbi ya XD)
@@ -1774,6 +1814,8 @@ block.arkyic-vent.name = Arkisit Baca
block.yellow-stone-vent.name = Sarı Taş Baca
block.red-stone-vent.name = Kızıl Taş Baca
block.crystalline-vent.name = Kristal Baca
+block.stone-vent.name = Stone Vent
+block.basalt-vent.name = Basalt Vent
block.redmat.name = KızılMat
block.bluemat.name = MaviMat
block.core-zone.name = Merkez Alanı
@@ -1816,9 +1858,9 @@ block.heat-redirector.name = Isı Aktarıcı
block.small-heat-redirector.name = Small Heat Redirector
block.heat-router.name = Isı Yönlendirici
block.slag-incinerator.name = Cürüf Yakıcı
-block.carbide-crucible.name = Karbür Kazanı
+block.carbide-crucible.name = Karbür Krozesi
block.slag-centrifuge.name = Cürüf Sentrifüjü
-block.surge-crucible.name = Akı Kazanı
+block.surge-crucible.name = Akı Krozesi
block.cyanogen-synthesizer.name = Siyanojen Sentezleyici
block.phase-synthesizer.name = Faz Sentezleyici
block.heat-reactor.name = Isı Reaktörü
@@ -1856,7 +1898,7 @@ block.reinforced-liquid-tank.name = Güçlendirilmiş Sıvı Tankı
block.beam-node.name = Işın Noktası
block.beam-tower.name = Işın Kulesi
block.beam-link.name = Işın Bağlantısı
-block.turbine-condenser.name = Türbin Sıkıştırıcı
+block.turbine-condenser.name = Türbin Kondensatörü
block.chemical-combustion-chamber.name = Kimyasal Yanma Odası
block.pyrolysis-generator.name = Piroliz Jeneratörü
block.vent-condenser.name = Baca Sıkıştırıcı
@@ -1887,7 +1929,7 @@ block.mech-assembler.name = Robot İnşaatcı
block.reinforced-payload-conveyor.name = Güçlendirilmiş Kargo Konveyör
block.reinforced-payload-router.name = Güçlendirilmiş Kargo Yönlendirici
block.payload-mass-driver.name = Kargo Kütle Sürücü
-block.small-deconstructor.name = Küçük YapıSökücü
+block.small-deconstructor.name = Küçük Yapı Sökücü
block.canvas.name = Tuval
block.world-processor.name = Evrensel İşlemci
block.world-cell.name = Evrensel Bellek Hücresi
@@ -1988,8 +2030,8 @@ onset.ducts = \uf799[accent]Tüp[]'ü aç ve konveyör gibi kullanarak madenleri
onset.ducts.mobile = \uf799[accent]Tüp[]'ü aç ve konveyör gibi kullanarak madenleri merkeze taşı.\nTıklayığ basılı tutarak birden fazla tüp koy.
onset.moremine = Kazı operasyonunu genişlet.\nDaha fazla Plazma Kayalık Kazıcı inşa et.\n200 Berilyum kaz.
onset.graphite = Daha gelişmiş bloklar\uf835 [accent]grafit[] gerektirir.\nGafit kazmak için Plazma Kayalık Kazıcıları inşa et.
-onset.research2 = [accent]Fabrikaları[] araştırmaya başla.\n\uf74d[accent]Kayalık Delici[] ve\uf779 [accent]Ark Silikon Fırını[]'nı araştır.
-onset.arcfurnace = Ark Fırın,\uf834 [accent]kum[] ve \uf835 [accent]grafit[]'ten \uf82f [accent]silikon[] üret.\nBu işlem [accent]Enerji[] de gerektirir.
+onset.research2 = [accent]Fabrikaları[] araştırmaya başla.\n\uf74d[accent]Kayalık Delici[] ve\uf779 [accent]Ark Silisyum Fırını[]'nı araştır.
+onset.arcfurnace = Ark Fırın,\uf834 [accent]kum[] ve \uf835 [accent]grafit[]'ten \uf82f [accent]silisyum[] üret.\nBu işlem [accent]Enerji[] de gerektirir.
onset.crusher = \uf74d [accent]Kayalık Delici[] kullanarak kum kaz.
onset.fabricator = [accent]Birim[] kullanarak haritayı gez, binalarını koru ve düşmanları alt et. \uf6a2 [accent]Tank İnşaatcı[]'sını araştır ve inşa et.
onset.makeunit = Bir Birim üret.\n"?" tuşunu kullanarak gereksinimleri görebilirsin.
@@ -2028,7 +2070,7 @@ item.plastanium.description = Gelişmiş uçak ve parçalama için kullanılan h
item.phase-fabric.description = Gelişmiş elektronik ve kendi kendini tamir etme teknolojisınde kullanılan neredeyse ağırlıksız bir madde.
item.surge-alloy.description = Kendine özgü elektriksel özelliklere sahip gelişmiş bir alaşım.
item.spore-pod.description = Endüstriyel kullanım için atmosferik partiküllerden üretilen sentetik sporlarla dolu bir kapsül. Yağ, patlayıcı ve yakıt yapımı için kullanılır.
-item.spore-pod.details = Spor.Büyük ihtimalle sentetik bir yaşam formu. Tokisk bir gaz yayıyor. Aşırı istilacı. Aşırı yanıcı.
+item.spore-pod.details = Spor. Büyük ihtimalle sentetik bir yaşam formu. Tokisk bir gaz yayıyor. Aşırı istilacı. Aşırı yanıcı.
item.blast-compound.description = Bomba ve patlayıcılarda kullanılan dengesiz bir bileşim. Spor kapsülleri ve diğer uçucu maddelerden sentezlenir. Yakıt olarak tavsiye edilmez.
item.pyratite.description = Yakıcı silahlarda kullanılan son derece yanıcı bir madde.
item.beryllium.description = Erekirde mermi olarak kullanılır.
@@ -2056,11 +2098,11 @@ block.reinforced-message.description = Dostlarınla muhabbet için bir mesaj blo
block.world-message.description = Harita yapımcıları için bir mesaj bloğu. Yokedilemez.
block.graphite-press.description = Kömür parçalarını sıkıştırıp saf grafit tabakaları üretir.
block.multi-press.description = Grafit presinin yükseltilmiş versiyonu. Kömürün hızlı ve verimli bir şekilde işlenmesi için su ve enerji kullanır.
-block.silicon-smelter.description = Kumu saf kömürle eritip silikon üretir.
+block.silicon-smelter.description = Kumu saf kömürle eritip silisyum üretir.
block.kiln.description = Kum ve kurşunu eritir ve metacam olarak bilinen malzemeyi oluşturur. Çalıştırması için az miktar enerji gerekir.
block.plastanium-compressor.description = Petrol ve titanyumdan plastanyum üretir.
block.phase-weaver.description = Kum ve radyoaktif toryumdan faz örgüsü üretir. Çalışması için çok miktarda enerji gerekir.
-block.surge-smelter.description = Akı alaşımı üretmek için titanyum, kurşun, silikon ve bakırı birleştirir.
+block.surge-smelter.description = Akı alaşımı üretmek için titanyum, kurşun, silisyum ve bakırı birleştirir.
block.cryofluid-mixer.description = Su ve titanyum tozunu karıştırıp kriyosıvı üretir. Toryum reaktörü kullanımı için gereklidir.
block.blast-mixer.description = Patlayıcı bileşen üretmek için spor kapsüllerini Piratit ile ezer ve karıştırır.
block.pyratite-mixer.description = Kömür, kurşun ve kumu karıştırıp oldukça yanıcı olan Piratit üretir.
@@ -2090,13 +2132,13 @@ block.phase-wall.description = Özel faz örgüsü bazlı yansıtıcı materyal
block.phase-wall-large.description = Özel faz bazlı yansıtıcı bileşik ile kaplanmış bir duvar. Çoğu mermi çarpma anında geri sektirir.\nBirçok blok alan kaplar.
block.surge-wall.description = Son derece dayanıklı bir savunma bloğu.\nMermi temasıyla yükü toplar ve bu yükü rastgele serbest bırakır.
block.surge-wall-large.description = Son derece dayanıklı bir savunma bloğu.\nMermi temasıyla yükü toplar ve bu yükü rastgele serbest bırakır.\nBirçok blok alan kaplar.
-block.scrap-wall.description = Protects structures from enemy projectiles.
-block.scrap-wall-large.description = Protects structures from enemy projectiles.
-block.scrap-wall-huge.description = Protects structures from enemy projectiles.
-block.scrap-wall-gigantic.description = Protects structures from enemy projectiles.
+block.scrap-wall.description = Binaları düşman mermilerinden korur.
+block.scrap-wall-large.description = Binaları düşman mermilerinden korur.
+block.scrap-wall-huge.description = Binaları düşman mermilerinden korur.
+block.scrap-wall-gigantic.description = Binaları düşman mermilerinden korur.
block.door.description = Küçük bir kapı. Dokunarak açılabilir veya kapatılabilir.
block.door-large.description = Büyük bir kapı. Dokunarak açılabilir veya kapatılabilir.\nBirçok blok alan kaplar.
-block.mender.description = Çevresindeki blokları periyodik olarak tamir eder. Savunmaları dalgalar arasında tamir eder.\nİsteğe bağlı olarak menzili ve verimi arttırmak için silikon kullanılabilir.
+block.mender.description = Çevresindeki blokları periyodik olarak tamir eder. Savunmaları dalgalar arasında tamir eder.\nİsteğe bağlı olarak menzili ve verimi arttırmak için silisyum kullanılabilir.
block.mend-projector.description = Tamircinin yükseltilmiş bir versiyonu. Çevresindeki blokları onarır.\nİsteğe bağlı olarak menzili ve verimliliği artırmak için faz örgüsü kullanılabilir.
block.overdrive-projector.description = Yakınındaki binaların hızını artırır.\nİsteğe bağlı olarak menzili ve verimliliği artırmak için faz örgüsü kullanılabilir.
block.force-projector.description = Kendi etrafında altıgen güç alanı oluşturur. Çok fazla zarar gördüğünde aşırı ısınır ve kapanır.\nİsteğe bağlı olarak aşırı ısınmasını önlemek için soğutma sıvısı,koruyucu boyutunu artırmak için ise faz örgüsü kullanılabilir.
@@ -2138,10 +2180,10 @@ block.thermal-generator.description = Sıcak bölgelere konulduğunda enerji ür
block.steam-generator.description = Daha gelişmiş bir termik jeneratör. Daha verimlidir, ama buhar üretebilmek için suya ihtiyaç duyar.
block.differential-generator.description = Çok miktarda enerji üretir. Kriyosıvı ve yanan Piratit arasındaki sıcaklık farkından yararlanır.
block.rtg-generator.description = Basit, güvenilir bir reaktör. Bozunan radyoaktif materyallerin ısısını kullanır.
-block.solar-panel.description = Güneşten küçük miktarda enerji üretir.
+block.solar-panel.description = Güneşten az miktarda enerji üretir.
block.solar-panel-large.description = Standart güneş panelinin daha verimli bir versiyonu.
block.thorium-reactor.description = Toryumdan, yüksek miktarda enerji üretir. Devamlı soğutulmaya ihtiyacı vardır. Yeterli soğutucu temin edilmezse şiddetle patlar. ürettiği enerji doluluk oranına bağlıdır, tam dolu iken temel düzeyde enerji üretir.
-block.impact-reactor.description = Gelişmiş bir jeneratör, tam verimle dev miktarda enerji üretebilir. İşlemi başlatmak için dışarıdan bir miktar enerjiye ihtiyacı vardır.
+block.impact-reactor.description = Gelişmiş bir jeneratör, tam verimle çok yüksek miktarda enerji üretebilir. İşlemi başlatmak için dışarıdan bir miktar enerjiye ihtiyacı vardır.
block.mechanical-drill.description = Ucuz bir matkap. Doğru karelere konulduğunda, bir materyalden yavaş ama durmaksızın üretir. Sadece temel kaynaklardan kazabilir.
block.pneumatic-drill.description = Titanyumu kazabilen, daha gelişmiş bir matkap. Mekanik matkaptan daha hızlıdır.
block.laser-drill.description = Lazer teknolojisi sayesinde daha da hızlı kazmaya izin verir ancak çalışması için enerji gerekir. Toryumu kazabilir.
@@ -2154,13 +2196,15 @@ block.core-shard.description = Merkez kapsülünün ilk versiyonu. Yok edilirse,
block.core-shard.details = İlk aşama. Bu üstün makine, kendini kopyalama ve tek inişlik roket özelliklerine sahip. Gezegenler arası ulaşımda kullanılamaz!
block.core-foundation.description = Merkez kapsülünün ikinci versiyonu. Daha iyi zırhlı ve daha çok materyal depolayabilir.
block.core-foundation.details = İkinci Aşama.
-block.core-nucleus.description = Merkez kapsülünün üçüncü ve son versiyonu. Aşırı derecede zırhlı ve dev miktarda materyal depolayabilir.
+block.core-nucleus.description = Merkez kapsülünün üçüncü ve son versiyonu. Aşırı derecede zırhlı ve çok yüksek miktarda materyal depolayabilir.
block.core-nucleus.details = Üçüncü ve Son Aşama. Daha sonrası var mı acaba?
block.vault.description = Her materyalden az miktarda saklar. Materyalleri kasadan almak için bir boşaltıcı bloğu kullanılabilir.
block.container.description = Her materyalden az miktarda saklar. Materyalleri konteynerden almak için bir boşaltıcı bloğu kullanılabilir.
block.unloader.description = Materyalleri bir konteyner, depo veya merkezden çıkarıp; bir konveyöre veya dibindeki bir bloğa koyar. Çıkardığı materyal türü dokunularak değiştirilebilir.
block.launch-pad.description = Başka Bir Sektöre item gönderir.
-block.launch-pad.details = Yörüngesel Nokta-dan-Nokta ya malzeme aktarım sistemi. Kargo Kapsülleri dayanıksızdır ve yörüngeye girerken parçalanırlar.
+block.advanced-launch-pad.description = Launches batches of items to selected sectors. Only accepts one item type at a time.
+block.advanced-launch-pad.details = Sub-orbital system for point-to-point transportation of resources.
+block.landing-pad.description = Receives items from launch pads in other sectors. Requires large amounts of water to protect against impacts of landings.
block.duo.description = Küçük, ucuz bir taret. Yer birimlerine karşı etkilidir.
block.scatter.description = Önemli bir uçaksavar tareti. Düşman birimlerine hurda ya da kurşun uçaksavar mermileri atar.
block.scorch.description = Etrafındaki düşmanları ateşe verir. Yakın mesafede çok etkilidir.
@@ -2180,9 +2224,9 @@ block.repair-point.description = Kendisine en yakın hasarlı birimi tamir eder.
block.segment.description = Gelen mermilere zarar verir ve onları yok eder. Lazer mermilere etki etmez.
block.parallax.description = Çekici bir ışın fırlatarak hava düşmanlarını kendine çeker. Onlara az da olsa zarar verir.
block.tsunami.description = Düşmanlara yüksek miktarda sıvı püskürtür. Ateşleri otomatik söndürür.
-block.silicon-crucible.description = Kum ve Kömürü, Piratitle eriterek Silikon üretir. Sıcak ortamda daha iyi çalışır.
-block.disassembler.description = Cürufü aşırı sıcak ortamda seritir. Toryum elde edebilir.
-block.overdrive-dome.description = Yakındaki binaları hızlandırır. Çalışmak için silikon ve faz gerektirir.
+block.silicon-crucible.description = Kum ve kömürü, piratitle eriterek silisyum üretir. Sıcak ortamda daha iyi çalışır.
+block.disassembler.description = Cürufü eser miktardaki egzotik bileşenlerine düşük verimde ayırır. Toryum elde edebilir.
+block.overdrive-dome.description = Yakındaki binaları hızlandırır. Çalışmak için silisyum ve faz gerektirir.
block.payload-conveyor.description = Büyük yükleri hareket ettirir. Birimler gibi.
block.payload-router.description = Büyük Yükleri 3 Ayrı yöne aktarır.
block.ground-factory.description = Yer Birimi üretir. Bu birimler direk kullanılabilir veya geliştirilebilir.
@@ -2215,8 +2259,8 @@ block.lustre.description = Düşmanlara yavaş hareket eden ve tek bir birimi he
block.scathe.description = Uzak yer birimerline çok uzun bir mesafeden füzelerle saldırır.
block.smite.description = Delici enerji saçıcı mermiler fırlatır.
block.malign.description = Takipçi lazerlerle saldırır. Yüksek mikatrda ısı ister.
-block.silicon-arc-furnace.description = Kum ve Grafitten, silikon üretir. Hayal Gibi...
-block.oxidation-chamber.description = Beriliyum ve Ozonu, Oksite çevirir. Yan ürün olarak ısı üretir.
+block.silicon-arc-furnace.description = Kum ve grafitten silisyum üretir. Hayal Gibi...
+block.oxidation-chamber.description = Beriliyum ve ozonu oksite çevirir. Yan ürün olarak ısı üretir.
block.electric-heater.description = Önündeki bloğu ısıtır. Enerji gerektirir.
block.slag-heater.description = Önündeki bloğu ısıtır. Cürüf gerektirir.
block.phase-heater.description = Önündeki bloğu ısıtır. Faz gerektirir.
@@ -2225,8 +2269,8 @@ block.small-heat-redirector.description = Redirects accumulated heat to other bl
block.heat-router.description = Isıyı üç yöne dağtırır.
block.electrolyzer.description = Suyu Oksijen ve Hidrojene ayırır. H₂O
block.atmospheric-concentrator.description = Atmosferden Nitrojen emcikler. Isı gerktirir.
-block.surge-crucible.description = Silikon ve Cürüften Akı üretir. Isı gerktirir.
-block.phase-synthesizer.description = Toryum, Kum ve Ozon'dan Faz üretir. Isı gerktirir.
+block.surge-crucible.description = Silisyum ve cürüften Akı üretir. Isı gerktirir.
+block.phase-synthesizer.description = Toryum, kum ve ozon'dan Faz üretir. Isı gerktirir.
block.carbide-crucible.description = Grafit ve Tungsteni birleştirip Karbür üretir. Isı gerktirir.
block.cyanogen-synthesizer.description = Arkyisit ve Grafiti birleştirip Siyanojen üretir. Isı gerktirir.
block.slag-incinerator.description = Her şeyi eriterek yok eder. Cürüf gerektirir.
@@ -2267,6 +2311,7 @@ block.unit-cargo-loader.description = Kargo Dronları üretir. Kargo Dronları o
block.unit-cargo-unload-point.description = Kargo Dronları için malzeme bırakma noktası.
block.beam-node.description = X ve Y kordinatında enerji aktarır. Az da olsa enerji depolar.
block.beam-tower.description = X ve Y kordinatında enerji aktarır. Enerji depolar. Uzun Mesafeli.
+block.beam-link.description = Transmits power over vast distances.\nOnly capable of connecting to adjacent structures or other beam links.
block.turbine-condenser.description = Baca üstüne konunca enerji üretir. Azcık da su.
block.chemical-combustion-chamber.description = Arkisit ve Ozondan enerji üretir.
block.pyrolysis-generator.description = Arkisit ve Cürüften enerji üretir. Yan ürün olarak su çıkarır.
@@ -2357,7 +2402,8 @@ unit.emanate.description = Akropolis Merkezini korumak için binalar inşa eder.
lst.read = Bağlı hafıza kutusundaki numarayı okur.
lst.write = Bağlı hafıza kutuaundaki numaraya yazar.
lst.print = Yazı yazar.
-lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example"
+lst.printchar = Add a UTF-16 character or content icon to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used.
+lst.format = Yazı Haznesindeki son değeri başka bir değerle değiştirir.\nYerleştiricek değer boş ise hiç bir şey yapmaz.\nÖrnek Değer: "{[accent]sayı 0-9[]}"\nÖrnek:\n[accent]print "test {0}"\nformat "örnek"
lst.draw = Ekrana Çizer.
lst.drawflush = Ekrana Çizimi Aktarır.
lst.printflush = Mesaj bloğuna metnini aktarır,
@@ -2380,8 +2426,8 @@ lst.getblock = Herhangi bir yerdeki blok bilgisini al.
lst.setblock = Herhangi bir yerdeki blok bilgisini değiştir.
lst.spawnunit = Herhangi bir yerde birim var et.
lst.applystatus = Bir Birime Durum Etkisi ekle.
-lst.weathersense = Check if a type of weather is active.
-lst.weatherset = Set the current state of a type of weather.
+lst.weathersense = Hava durumunu kontrol et.
+lst.weatherset = Hava durumunu değiştir.
lst.spawnwave = Bellir bir noktada dalga başlat.\nDalga Zamanlayıcı Oluşturmaz!
lst.explosion = Bir Noktada Patlama oluştur.
lst.setrate = İşlemci Hızını Ayarla (işlem/tick)
@@ -2395,7 +2441,7 @@ lst.getflag = Evrensel İşaretli Numara Oku.
lst.setprop = Bir bina veya birime nitelik atar.
lst.effect = Parçacık efekti oluştur.
lst.sync = Ağ boyunca bir değişkeni senkronize et.\nSaniyede en fazla 10 kere yapılabilir.
-lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position.
+lst.playsound = Bir ses çal.\nSes şiddeti bir küresel değer olabilir veya konuma göre belirlenebilir.
lst.makemarker = Dünyada yeni bir İşlemci İşareti koy.\nBu İşarete bir Kimlik adamalısın.\nDünya başına 20.000 limit bulunmakta.
lst.setmarker = Bir İşlemci İşareti için bir arazi seç.\nKimlik, İşaret Koyucudaki ile aynı olmalı.
lst.localeprint = Harita yerel paket özellik değerini metin arabelleğine ekleyin.\nHarita düzenleyicide harita yerel ayar paketlerini ayarlamak için şunu işaretleyin: [accent]Harita Bilgisi > Yerel Paketler[].\nİstemci bir mobil cihazsa, önce ".mobile" ile biten bir özelliği yazdırmaya çalışır.
@@ -2443,7 +2489,8 @@ lenum.shoot = Bir konuma ateş et.
lenum.shootp = Belli bir birim veya binaya ateş et.
lenum.config = Bina yapılandırması, örnek: Ayıklayıcı Türü
lenum.enabled = Blok aktif mi?
-laccess.currentammotype = Current ammo item/liquid of a turret.
+laccess.currentammotype = Bir turretin içindeki şuanki mermi/sıvı.
+laccess.memorycapacity = Number of cells in a memory block.
laccess.color = Aydınlatıcı Rengi
laccess.controller = Birim Kontrol edici. Eğer işlemci kontrol ediyorsa işlemci döner. \nFormasyon durumundaysa, lider döner.\nDiğer şekilde, birimi kendi döner.
@@ -2451,6 +2498,7 @@ laccess.dead = Bir bina veya birim hala var mı?
laccess.controlled = Bir birim ne tarafından kontrol ediliyor?
laccess.progress = Bir şeyin oluş aşaması, örnek: bir turetin yeniden doldurma süresindeki aşama.
laccess.speed = Bir Birimin Maks hızı, blok/sn.
+laccess.size = Size of a unit/building or the length of a string.
laccess.id = Bir birim/blok/eşya/sıvı kimliği. \nBu arama operasyonun zıttıdır.
lcategory.unknown = ???
lcategory.unknown.description = Kategorize edilmemiş talimatlar
@@ -2497,7 +2545,7 @@ lenum.xor = Çapraz Veya
lenum.min = İki sayıdan en küçüğü.
lenum.max = İki sayıdan en büyüğü.
-lenum.angle = İki Işının yaptığı Açı.
+lenum.angle = İki ışının yaptığı açı.
lenum.anglediff = İki açı arasındaki derece cinsinden mutlak mesafe.
lenum.len = Bir Işının Uzunluğu.
@@ -2570,7 +2618,7 @@ playsound.limit = If true, prevents this sound from playing\nif it has already b
lenum.idle = Hareket etmez ancak kazmaya ve inşa etmeye devam eder.
lenum.stop = Dur!
-lenum.unbind = Logic Kontrolü tamaman devre dışı bırak.\nNormal AI'ı devreye sok.
+lenum.unbind = Mantık Kontrolü tamaman devre dışı bırak.\nNormal YZ'yı devreye sok.
lenum.move = Tam konuma git.
lenum.approach = Bir Konuma yaklaş.
lenum.pathfind = Düşman Doğuş noktasına git.
@@ -2585,7 +2633,7 @@ lenum.payenter = Bir birimi, kargo tutabilen bir bloğa indir.
lenum.flag = Numara ile işaretle.
lenum.mine = Kaz.
lenum.build = Bina inşa et.
-lenum.getblock = Kordinatta bina, blok veya zemin tipi al.\nBirimler kordinata yakın olmalı yoksa boş geri döner.
+lenum.getblock = Kordinattaki yapıyı, zemini ve blok türünü al.\nKonum birimin alanında olmalı yoksa null dönülür.
lenum.within = Bir birim menzil alanında mı?
lenum.boost = Gazlamaya başla/dur
lenum.flushtext = Varsa, yazdırma arabelleğinin içeriğini işaretleyiciye boşaltın.\nGetirme doğru olarak ayarlanmışsa, harita yerel dil paketinden veya oyun paketinden bilgileri getirmeye çalışır.
@@ -2595,3 +2643,29 @@ lenum.autoscale = İşaretçinin oyuncunun yakınlaştırma düzeyine göre öl
lenum.posi = Sıfır indeksinin ilk konum olduğu çizgi ve dörtlü işaretleyiciler için kullanılan indekslenmiş konum.
lenum.uvi = Dokunun sıfırdan bire kadar değişen konumu, dörtlü işaretçiler için kullanılır.
lenum.colori = Sıfır indeksinin ilk renk olduğu çizgi ve dörtlü işaretleyiciler için kullanılan indekslenmiş konum.
+lenum.wavetimer = Whether the waves come automatically on a timer. If not, waves come when the play button is pressed.
+lenum.wave = Current wave number. Can be anything in non-wave modes.
+lenum.currentwavetime = Wave countdown in ticks.
+lenum.waves = Whether waves are spawnable at all.
+lenum.wavesending = Whether the waves can be manually summoned with the play button.
+lenum.attackmode = Determines if gamemode is attack mode.
+lenum.wavespacing = Time between waves in ticks.
+lenum.enemycorebuildradius = No-build zone around enemy core radius.
+lenum.dropzoneradius = Radius around enemy wave drop zones.
+lenum.unitcap = Base unit cap. Can still be increased by blocks.
+lenum.lighting = Whether ambient lighting is enabled.
+lenum.buildspeed = Multiplier for building speed.
+lenum.unithealth = How much health units start with.
+lenum.unitbuildspeed = How fast unit factories build units.
+lenum.unitcost = Multiplier of resources that units take to build.
+lenum.unitdamage = How much damage units deal.
+lenum.blockhealth = How much health blocks start with.
+lenum.blockdamage = How much damage blocks (turrets) deal.
+lenum.rtsminweight = Minimum "advantage" needed for a squad to attack. Higher -> more cautious.
+lenum.rtsminsquad = Minimum size of attack squads.
+lenum.maparea = Playable map area. Anything outside the area will not be interactable.
+lenum.ambientlight = Ambient light color. Used when lighting is enabled.
+lenum.solarmultiplier = Multiplies power output of solar panels.
+lenum.dragmultiplier = Environment drag multiplier.
+lenum.ban = Blocks or units that cannot be placed or built.
+lenum.unban = Unban a unit or block.
diff --git a/core/assets/bundles/bundle_uk_UA.properties b/core/assets/bundles/bundle_uk_UA.properties
index b766d26ea5..78a714f084 100644
--- a/core/assets/bundles/bundle_uk_UA.properties
+++ b/core/assets/bundles/bundle_uk_UA.properties
@@ -131,6 +131,7 @@ feature.unsupported = Ваш пристрій не підтримує цю фу
mods.initfailed = [red]⚠[] Попереднього разу не вдалося ініціалізувати Mindustry. Це, ймовірно, спричинено неправильною поведінкою модифікацій.\n\nДля запобігання нескінченним аварійним циклам [red]необхідно вимкнути всі модифікації.[]\n\nДля вимкнення цієї функції перейдіть до [accent]Налаштування -> Гра -> Вимикати модифікації після аварійного запуску[].
mods = Модифікації
+mods.name = Mod:
mods.none = [lightgray]Модифікацій не знайдено!
mods.guide = Посібник із модифікацій
mods.report = Повідомити про ваду
@@ -157,7 +158,7 @@ mod.erroredcontent = [scarlet]Помилки під час завантажен
mod.circulardependencies = [red]Кругові залежності
mod.incompletedependencies = [red]Неповні залежності
mod.requiresversion.details = Необхідна версія гри: [accent]{0}[]\nВаша гра застаріла. Мод потребує новішу версію гри (можливо бета- чи альфа-версію) для роботи.
-mod.outdatedv7.details = Ця модифікація не сумісна з останньою версією гри. Розробник модифікації має оновити її та додати [accent]minGameVersion: 136[] у свій [accent]mod.json[] файл.
+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 = Цю модифікацію було вручну внесено у чорний список за постійні збої або інші проблеми з цією версією гри. Не використовуйте її.
mod.missingdependencies.details = У цій модифікації відсутні наступні залежності: {0}
mod.erroredcontent.details = Ця модифікація спричинила помилки під час завантаження. Попросіть автора виправити їх.
@@ -166,7 +167,6 @@ mod.incompletedependencies.details = Цей мод неможливо заван
mod.requiresversion = Необхідна версія гри: [red]{0}
mod.errors = Виникли помилки під час завантаження змісту.
mod.noerrorplay = [red]Ви маєте модифікації з помилками.[] Або вимкніть проблемні модифікації, або виправте їх.
-mod.nowdisabled = [red]Модифікації «{0}» не вистачає залежних модифікацій:[accent] {1}\n[lightgray]Ці модифікації потрібно завантажити спочатку.\nЦя модифікація буде автоматично вимкнена.
mod.enable = Увімкнути
mod.requiresrestart = А тепер гра закриється, щоби застосувати зміни модифікацій.
mod.reloadrequired = [red]Потрібно перезавантаження
@@ -181,6 +181,15 @@ mod.missing = Це збереження містить модифікації,
mod.preview.missing = До публікації цієї модифікації в Майстерні, ви мусите додати зображення попереднього перегляду.\nПомістіть зображення з назвою [accent] preview.png[] у теку з модифікаціями та спробуйте знову.
mod.folder.missing = Тільки модифікації у формі теці можуть бути опубліковані в Майстерні.\nЩоб перетворити будь-яку модифікацію в теку, просто розархівуйте цей файл у теку та видаліть старий архів, і потім перезапустіть гру або перезавантажте ваші модифікації.
mod.scripts.disable = Ваш пристрій не підтримує модифікації зі скриптами. Вимкніть модифікацію для запуску гри.
+mod.dependencies.error = [scarlet]Mods are missing dependencies
+mod.dependencies.soft = (optional)
+mod.dependencies.download = Import
+mod.dependencies.downloadreq = Import Required
+mod.dependencies.downloadall = Import All
+mod.dependencies.status = Import Results
+mod.dependencies.success = Successfully downloaded:
+mod.dependencies.failure = Failed to download:
+mod.dependencies.imported = This mod requires dependencies. Download?
about.button = Про гру
name = Ім’я:
@@ -297,6 +306,7 @@ disconnect.error = Помилка з’єднання.
disconnect.closed = З’єднання закрито.
disconnect.timeout = Час вийшов.
disconnect.data = Не вдалося завантажити світові дані!
+disconnect.snapshottimeout = Timed out while receiving UDP snapshots.\nThis may be caused by an unstable network or connection.
cantconnect = Не вдалося під’єднатися до гри ([accent]{0}[]).
connecting = [accent]Приєднання…
reconnecting = [accent]Повторне з’єднання…
@@ -465,6 +475,7 @@ editor.shiftx = Зміщення за віссю X
editor.shifty = Зміщення за віссю Y
workshop = Майстерня
waves.title = Хвилі
+waves.team = Team
waves.remove = Видалити
waves.every = кожен
waves.waves = хвиля(і)
@@ -722,14 +733,18 @@ loadout = Вивантаження
resources = Ресурси
resources.max = Максимум
bannedblocks = Заборонені блоки
+unbannedblocks = Unbanned Blocks
objectives = Завдання
bannedunits = Заборонені одиниці
+unbannedunits = Unbanned Units
bannedunits.whitelist = Заборонені одиниці як білий список
bannedblocks.whitelist = Заборонені блоки як білий список
addall = Додати все
launch.from = Запуск з [accent]{0}
launch.capacity = Місткість предметів, що запускаються: [accent]{0}
launch.destination = Пункт призначення: {0}
+landing.sources = Source Sectors: [accent]{0}[]
+landing.import = Max Total Import: {0}[accent]{1}[lightgray]/min
configure.invalid = Кількість має бути числом між 0 та {0}.
add = Додати…
guardian = Вартовий
@@ -769,7 +784,9 @@ sectors.stored = Зберігає:
sectors.resume = Продовжити
sectors.launch = Запустити
sectors.select = Вибрати
+sectors.launchselect = Select Launch Destination
sectors.nonelaunch = [lightgray]нічого (сонце)
+sectors.redirect = Redirect Launch Pads
sectors.rename = Перейменування сектору
sectors.enemybase = [scarlet]Ворожа база
sectors.vulnerable = [scarlet]Уразливий
@@ -801,6 +818,10 @@ difficulty.easy = Easy
difficulty.normal = Normal
difficulty.hard = Hard
difficulty.eradication = Eradication
+difficulty.enemyHealthMultiplier = Enemy Health: {0}
+difficulty.enemySpawnMultiplier = Enemy Amount: {0}
+difficulty.waveTimeMultiplier = Wave Timer: {0}
+difficulty.nomodifiers = [lightgray](No modifiers)
planets = Планети
@@ -1033,6 +1054,7 @@ stat.buildspeedmultiplier = Множник швидкості будування
stat.reactive = Реактивний
stat.immunities = Імунітети
stat.healing = Відновлювання
+stat.efficiency = [stat]{0}% Efficiency
ability.forcefield = Силовий щит
ability.forcefield.description = Створює силове поле, який поглинає кулі
@@ -1079,6 +1101,7 @@ ability.stat.buildtime = [lightgray]Час побудови: [stat]{0} за се
bar.onlycoredeposit = Передача предметів дозволена лише до ядра
bar.drilltierreq = Потрібен ліпший бур
+bar.nobatterypower = Insufficieny Battery Power
bar.noresources = Бракує ресурсів
bar.corereq = Необхідне основне ядро
bar.corefloor = Необхідні плитки зони ядра
@@ -1087,6 +1110,7 @@ bar.drillspeed = Швидкість буріння: {0} за сек.
bar.pumpspeed = Швидкість викачування: {0} за сек.
bar.efficiency = Ефективність: {0}%
bar.boost = Підсилення: +{0}%
+bar.powerbuffer = Battery Power: {0}/{1}
bar.powerbalance = Енергія: {0} за сек.
bar.powerstored = Зберігає: {0}/{1}
bar.poweramount = Енергія: {0}
@@ -1097,6 +1121,7 @@ bar.capacity = Місткість: {0}
bar.unitcap = {0} {1}/{2}
bar.liquid = Рідина
bar.heat = Нагрівання
+bar.cooldown = Cooldown
bar.instability = Нестабільність
bar.heatamount = Нагрівання: {0}
bar.heatpercent = Нагрівання: {0} ({1}%)
@@ -1121,6 +1146,7 @@ bullet.interval = [stat]{0} за сек. [lightgray] період між кул
bullet.frags = [stat]{0}[lightgray]x шкода по ділянці від снарядів:
bullet.lightning = [stat]{0}[lightgray]x блискавки ~ [stat]{1}[lightgray] шкоди
bullet.buildingdamage = [stat]{0}%[lightgray] шкода по будівлях
+bullet.shielddamage = [stat]{0}%[lightgray] shield damage
bullet.knockback = [stat]{0}[lightgray] відкидання
bullet.pierce = [stat]{0}[lightgray]x пробиття
bullet.infinitepierce = [stat]пробиття
@@ -1147,6 +1173,7 @@ unit.minutes = хв.
unit.persecond = за сек.
unit.perminute = за хв.
unit.timesspeed = x швидкість
+unit.multiplier = x
unit.percent = %
unit.shieldhealth = міцність щита
unit.items = предм.
@@ -1223,11 +1250,13 @@ setting.mutemusic.name = Заглушити музику
setting.sfxvol.name = Гучність звукових ефектів
setting.mutesound.name = Заглушити звук
setting.crashreport.name = Відсилати анонімні звіти про аварійне завершення гри
+setting.communityservers.name = Fetch Community Server List
setting.savecreate.name = Автоматичне створення збережень
setting.steampublichost.name = Загальнодоступність гри
setting.playerlimit.name = Обмеження гравців
setting.chatopacity.name = Непрозорість чату
setting.lasersopacity.name = Непрозорість лазерів енергопостачання
+setting.unitlaseropacity.name = Unit Mining Beam Opacity
setting.bridgeopacity.name = Непрозорість мостів
setting.playerchat.name = Показувати хмару чата над гравцями
setting.showweather.name = Показувати погоду
@@ -1236,6 +1265,9 @@ setting.macnotch.name = Адаптуйте інтерфейс для показ
setting.macnotch.description = Потрібен перезапуск для застосування змін
steam.friendsonly = Лише друзі
steam.friendsonly.tooltip = Чи лише друзі Steam зможуть приєднатися до вашої гри.Якщо зняти цей прапорець, ваша гра стане загальнодоступною – будь-хто зможе приєднатися.
+setting.maxmagnificationmultiplierpercent.name = Min Camera Distance
+setting.minmagnificationmultiplierpercent.name = Max Camera Distance
+setting.minmagnificationmultiplierpercent.description = High values may cause performance issues.
public.beta = Зауважте, що в бета-версії гри ви не можете робити публічні ігри.
uiscale.reset = Масштаб користувацького інтерфейсу було змінено.\nНатисніть «Гаразд» для підтвердження цього масштабу.\n[scarlet]Повернення налаштувань і вихід через[accent] {0}[] секунд…
uiscale.cancel = Скасувати й вийти
@@ -1316,6 +1348,7 @@ keybind.shoot.name = Постріл
keybind.zoom.name = Наблизити
keybind.menu.name = Меню
keybind.pause.name = Пауза
+keybind.skip_wave.name = Skip Wave
keybind.pause_building.name = Призупинити/продовжити будування
keybind.minimap.name = Мінімапа
keybind.planet_map.name = Планетна мапа
@@ -1383,12 +1416,14 @@ rules.unitcostmultiplier = Множник вартості одиниць
rules.unithealthmultiplier = Множник здоров’я бойових одиниць
rules.unitdamagemultiplier = Множник шкоди бойових одиниць
rules.unitcrashdamagemultiplier = Множник шкоди одиниці при зіткненні одиниць
+rules.unitminespeedmultiplier = Unit Mine Speed Multiplier
rules.solarmultiplier = Множник сонячної енергії
rules.unitcapvariable = Ядра збільшують обмеження на кількість одиниць
rules.unitpayloadsexplode = Carried Payloads Explode With The Unit
rules.unitcap = Початкове обмеження одиниць
rules.limitarea = Обмежити територію мапи
rules.enemycorebuildradius = Радіус оборони для ворожого ядра:[lightgray] (плитки)
+rules.extracorebuildradius = Extra No-Build Radius:[lightgray] (tiles)
rules.wavespacing = Інтервал хвиль:[lightgray] (секунди)
rules.initialwavespacing = Початковий інтервал хвиль:[lightgray] (секунди)
rules.buildcostmultiplier = Множник затрат на будування
@@ -1411,6 +1446,9 @@ rules.title.planet = Планета
rules.lighting = Світлотінь
rules.fog = Туман війни
rules.invasions = Enemy Sector Invasions
+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.fire = Вогонь
@@ -1731,6 +1769,8 @@ block.meltdown.name = Розплавлювач
block.foreshadow.name = Передвісник
block.container.name = Сховище
block.launch-pad.name = Пусковий майданчик
+block.advanced-launch-pad.name = Launch Pad
+block.landing-pad.name = Landing Pad
block.segment.name = Сегмент
block.ground-factory.name = Наземний завод
block.air-factory.name = Повітряний завод
@@ -1788,6 +1828,8 @@ block.arkyic-vent.name = Аркицитове джерело
block.yellow-stone-vent.name = Жовте кам’яне джерело
block.red-stone-vent.name = Червоне кам’яне джерело
block.crystalline-vent.name = Кристалічне джерело
+block.stone-vent.name = Stone Vent
+block.basalt-vent.name = Basalt Vent
block.redmat.name = Редмат
block.bluemat.name = Блюмат
block.core-zone.name = Зона ядра
@@ -1942,80 +1984,80 @@ hint.respawn = Для відродження кораблем натисніть
hint.respawn.mobile = Ви контролюєте одиницю чи структуру. Щоби відродитися як корабель, [accent]торкніться свого аватара вгорі ліворуч.[]
hint.desktopPause = Натисніть [accent][[Пробіл][], щоби зупинити чи продовжити гру.
hint.breaking = Натисніть [accent]ПКМ[] і тягніть, щоби зруйнувати блоки.
-hint.breaking.mobile = Активуйте \ue817 [accent]молот[] внизу праворуч і зробіть швидке натискання блоків, щоби їх розібрати.\n\nУтримуйте палець протягом секунди й протягніть, щоби розібрати виділене.
+hint.breaking.mobile = Активуйте :hammer: [accent]молот[] внизу праворуч і зробіть швидке натискання блоків, щоби їх розібрати.\n\nУтримуйте палець протягом секунди й протягніть, щоби розібрати виділене.
hint.blockInfo = Подивіться інформацію про блок. Перейдіть до [accent]меню будівництва[] і натисніть на кнопку [accent][[?][] праворуч.
hint.derelict = Будівлі [accent]Переможених[] є зламаними залишками старих баз, що більше не функціонують.\n\nЇх можна [accent]розібрати[] для отримання ресурсів або відбудувати.
-hint.research = Використовуйте кнопку \ue875 [accent]Дослідження[] для дослідження нової технології.
-hint.research.mobile = Використовуйте \ue875 [accent]Дослідження[] в \ue88c [accent]меню[] для дослідження нової технології.
+hint.research = Використовуйте кнопку :tree: [accent]Дослідження[] для дослідження нової технології.
+hint.research.mobile = Використовуйте :tree: [accent]Дослідження[] в :menu: [accent]меню[] для дослідження нової технології.
hint.unitControl = Утримуйте [accent][[лівий Ctrl][] і [accent]натисніть[] на одиницю чи башту, щоби контролювати її.
hint.unitControl.mobile = [accent][Зробіть коротке натискання двічі[], щоби контролювати союзні одиниці чи башти.
hint.unitSelectControl = Для керування одиницями увійдіть в [accent]режим командування[], утримуючи [accent]лівий Shift[].\nПеребуваючи в командному режимі, натисніть і протягуйте для вибору одиниць. Натисніть [accent]ПКМ[] на позицію або ціль, щоби віддати наказ одиницям, які там знаходяться.
hint.unitSelectControl.mobile = Для керування одиницями увійдіть в [accent]режим командування[], натиснувши кнопку [accent]командувати[] ліворуч знизу.\nПеребуваючи в командному режимі, зробіть довгий натиск і протягуйте для вибору одиниць. Торкніться позиції або цілі, щоби віддати наказ одиницям, які там знаходяться.
-hint.launch = Як тільки буде зібрано достатньо ресурсів, ви зможете зробити [accent]Запуск[] до наступних секторів \ue827 [accent]мапи[] внизу праворуч і перейти на нову локацію..
-hint.launch.mobile = Як тільки буде зібрано достатньо ресурсів, ви зможете зробити [accent]Запуск[] за допомогою вибору найближчих секторів з \ue827 [accent]мапи[] у \ue88c [accent]меню[].
+hint.launch = Як тільки буде зібрано достатньо ресурсів, ви зможете зробити [accent]Запуск[] до наступних секторів :map: [accent]мапи[] внизу праворуч і перейти на нову локацію..
+hint.launch.mobile = Як тільки буде зібрано достатньо ресурсів, ви зможете зробити [accent]Запуск[] за допомогою вибору найближчих секторів з :map: [accent]мапи[] у :menu: [accent]меню[].
hint.schematicSelect = Утримуйте [accent][[F][] і тягніть, щоби вибрати блоки для їхнього подальшого копіювання і вставлення.\n\nНатисніть [accent][[СКМ][], щоби скопіювати певний тип блоку.
hint.rebuildSelect = Утримуючи [accent][[B][], протягніть, щоби вибрати зруйновані проєкти блоків.\nЦе призведе до їхньої автоматичної перебудови.
-hint.rebuildSelect.mobile = Натисніть кнопку \ue874 копіювання, потім натисніть кнопку \ue80f перебудови і перетягніть, щоби вибрати знищені проєкти блоків.\nЦе призведе до їхньої автоматичної перебудови.
+hint.rebuildSelect.mobile = Натисніть кнопку :copy: копіювання, потім натисніть кнопку :wrench: перебудови і перетягніть, щоби вибрати знищені проєкти блоків.\nЦе призведе до їхньої автоматичної перебудови.
hint.conveyorPathfind = Утримуйте [accent][[лівий Ctrl][], коли тягнете конвеєри, щоб автоматично прокласти шлях.
-hint.conveyorPathfind.mobile = Увімкніть \ue844 [accent]діагональний режим[] і тягніть конвеєри, щоб автоматично прокласти шлях.
+hint.conveyorPathfind.mobile = Увімкніть :diagonal: [accent]діагональний режим[] і тягніть конвеєри, щоб автоматично прокласти шлях.
hint.boost = Утримуйте [accent][[лівий Shift][], щоби літати над перешкодами поточною одиницею.\n\nЛише декілька наземних одиниць мають цю перевагу.
hint.payloadPickup = Натисніть [accent][[[], щоби підібрати невеличкі блоки чи одиниці.
hint.payloadPickup.mobile = [accent]Натисніть й утримуйте[] невеличкий блок чи одиницю, щоби підібрати їх.
hint.payloadDrop = Натисніть [accent]][], щоби вивантажити вантаж.
hint.payloadDrop.mobile = [accent]Натисніть[] на вільне місце й [accent]утримуйте[], щоби вивантажити туди вантаж.
hint.waveFire = Башта [accent]хвиля[] з водою буде автоматично гасити найближчі пожежі.
-hint.generator = \uf879 [accent]Генератори внутрішнього згорання[] спалюють вугілля і передають енергію прилеглим блокам.\n\nРадіус передачі енергії можна збільшити за допомогою \uf87f [accent]силових вузлів[].
-hint.guardian = [accent]Вартові[] одиниці броньовані. Слабкі боєприпаси, як-от [accent]мідь[] чи [accent]свинець[], [scarlet]не є ефективними[].\n\nВикористовуйте башти вищого рангу чи \uf835 [accent]графітові боєприпаси[] для Подвійної башти чи\uf859Залпу, щоб убити Вартових.
-hint.coreUpgrade = Ядро можна покращити, якщо [accent]розмістити поверх нього ядро вищого рівня[].\n\nРозмістіть \uf868 ядро [accent]«Штаб»[] поверх \uf869 ядра [accent]«Уламок»[]. Переконайтесь, що поблизу ядер немає перешкод (зайвих блоків).
+hint.generator = :combustion-generator: [accent]Генератори внутрішнього згорання[] спалюють вугілля і передають енергію прилеглим блокам.\n\nРадіус передачі енергії можна збільшити за допомогою :power-node: [accent]силових вузлів[].
+hint.guardian = [accent]Вартові[] одиниці броньовані. Слабкі боєприпаси, як-от [accent]мідь[] чи [accent]свинець[], [scarlet]не є ефективними[].\n\nВикористовуйте башти вищого рангу чи :graphite: [accent]графітові боєприпаси[] для Подвійної башти чи:salvo:Залпу, щоб убити Вартових.
+hint.coreUpgrade = Ядро можна покращити, якщо [accent]розмістити поверх нього ядро вищого рівня[].\n\nРозмістіть :core-foundation: ядро [accent]«Штаб»[] поверх :core-shard: ядра [accent]«Уламок»[]. Переконайтесь, що поблизу ядер немає перешкод (зайвих блоків).
hint.presetLaunch = Сірі [accent]сектори зони посадки[], як-от [accent]Крижаний ліс[], можна запустити з будь-якого місця. Вони не вимагають захоплення сусідньої території.\n\n[accent]Нумеровані сектори[], як цей, [accent]необов’язкові[].
hint.presetDifficulty = Цей сектор має [scarlet]високий рівень ворожої загрози[].\nРобити запуск в такі [accent]не рекомендується[] без належних технологій та підготовки.
hint.coreIncinerate = Після того, як ядро наповниться предметом, будь-які додаткові предмети того ж типу, які воно отримує, будуть [accent]спалені[].
hint.factoryControl = Щоб установити [accent]місце виводу[] заводу одиниць, клацніть на неї у режимі командування, потім клацніть ПКМ на місце призначення. \nВироблені нею одиниці автоматично перемістяться туди.
hint.factoryControl.mobile = Щоб установити [accent]місце виводу[] заводу одиниць, швидко натисніть на неї у режимі командування, потім зробіть коротке натискання на місце призначення. \nВироблені нею одиниці автоматично перемістяться туди.
-gz.mine = Наблизьтеся до \uf8c4 [accent]мідної руди[] і почніть видобувати її.
-gz.mine.mobile = Наблизьтеся до \uf8c4 [accent]мідної руди[] і торкніться її, щоби почати видобуток.
-gz.research = Відкрийте \ue875 дерево технологій.\nДослідіть \uf870 [accent]механічний бур[], потім виберіть його з правого нижнього меню.\nНатисніть на мідний клаптик, щоби почати видобуток.
-gz.research.mobile = Відкрийте \ue875 дерево технологій.\nДослідіть \uf870 [accent]механічний бур[], потім виберіть його з правого нижнього меню.\nТоркніться до мідного клаптика, щоби розмістити його.\n\nНатисніть на\ue800 [accent]галочку[] праворуч внизу для підтвердження.
-gz.conveyors = Дослідіть і розташуйте\uf896 [accent]конвеєри[], щоби переміщувати видобуті ресурси\nвід бурів до ядра.\n\nНатисніть і протягніть для розміщення кількох конвеєрів.\n[accent]Прокручуйте[] для обертання.
-gz.conveyors.mobile = Дослідіть і розташуйте \uf896 [accent]конвеєри[], щоби переміщувати видобуті ресурси\nвід бурів до ядра.\n\nУтримуйте свій палець близько секунди протягніть його для розміщення кількох конвеєрів.
+gz.mine = Наблизьтеся до :ore-copper: [accent]мідної руди[] і почніть видобувати її.
+gz.mine.mobile = Наблизьтеся до :ore-copper: [accent]мідної руди[] і торкніться її, щоби почати видобуток.
+gz.research = Відкрийте :tree: дерево технологій.\nДослідіть :mechanical-drill: [accent]механічний бур[], потім виберіть його з правого нижнього меню.\nНатисніть на мідний клаптик, щоби почати видобуток.
+gz.research.mobile = Відкрийте :tree: дерево технологій.\nДослідіть :mechanical-drill: [accent]механічний бур[], потім виберіть його з правого нижнього меню.\nТоркніться до мідного клаптика, щоби розмістити його.\n\nНатисніть на\ue800 [accent]галочку[] праворуч внизу для підтвердження.
+gz.conveyors = Дослідіть і розташуйте:conveyor: [accent]конвеєри[], щоби переміщувати видобуті ресурси\nвід бурів до ядра.\n\nНатисніть і протягніть для розміщення кількох конвеєрів.\n[accent]Прокручуйте[] для обертання.
+gz.conveyors.mobile = Дослідіть і розташуйте :conveyor: [accent]конвеєри[], щоби переміщувати видобуті ресурси\nвід бурів до ядра.\n\nУтримуйте свій палець близько секунди протягніть його для розміщення кількох конвеєрів.
gz.drills = Наростіть видобуток корисних копалин.\nРозмістіть більше механічних бурів.\nВидобудьте 100 міді.
-gz.lead = \uf837 [accent]Свинець[] є ще одним часто використовуваним ресурсом.\nУстановіть бури, щоби розпочати видобуток.
-gz.moveup = \ue804 Рухайтеся вперед до подальших цілей.
-gz.turrets = Дослідіть і розмістіть 2 \uf861 [accent]подвійні[] башти, щоби захистити ядро.\nПодвійні башти потребують \uf838 [accent]боєприпаси[] з конвеєрів.
+gz.lead = :lead: [accent]Свинець[] є ще одним часто використовуваним ресурсом.\nУстановіть бури, щоби розпочати видобуток.
+gz.moveup = :up: Рухайтеся вперед до подальших цілей.
+gz.turrets = Дослідіть і розмістіть 2 :duo: [accent]подвійні[] башти, щоби захистити ядро.\nПодвійні башти потребують \uf838 [accent]боєприпаси[] з конвеєрів.
gz.duoammo = Забезпечте подвійні башти [accent]міддю[], використовуючи конвеєри.
-gz.walls = [accent]Стіни[] можуть запобігти потраплянню зустрічних пошкоджень на будівлі\nРозмістіть \uf8ae [accent]мідні стіни[] навколо башт.
+gz.walls = [accent]Стіни[] можуть запобігти потраплянню зустрічних пошкоджень на будівлі\nРозмістіть :copper-wall: [accent]мідні стіни[] навколо башт.
gz.defend = Ворог наступає, приготуйтеся до оборони.
-gz.aa = Повітряні одиниці не можуть бути легко знищені зі стандартними баштами.\n\uf860 Башта [accent]розсіювач[] забезпечує відмінну протиповітряну оборону, але потребує \uf837 [accent]свинець[] як боєприпас.
-gz.scatterammo = Забезпечте башту розсіювач \uf837 [accent]свинцем[], використовуючи конвеєр.
+gz.aa = Повітряні одиниці не можуть бути легко знищені зі стандартними баштами.\n:scatter: Башта [accent]розсіювач[] забезпечує відмінну протиповітряну оборону, але потребує :lead: [accent]свинець[] як боєприпас.
+gz.scatterammo = Забезпечте башту розсіювач :lead: [accent]свинцем[], використовуючи конвеєр.
gz.supplyturret = [accent]Постачання до башти
gz.zone1 = Це зона висадки ворога.
gz.zone2 = Усе, що побудовано в цьому радіусі, знищується, коли починається хвиля.
gz.zone3 = Зараз почнеться хвиля.\nПриготуйется
gz.finish = Збудуйте більше башт, видобудьте більше ресурсів \nі захистіться проти всіх хвиль, щоби [accent]захопити сектор[].
-onset.mine = Натисніть, щоби видобути \uf748 [accent]берилій[]зі стін.\n\nДля переміщення використовуйте [accent][[WASD].
-onset.mine.mobile = Торкніться, щоби видобути \uf748 [accent]берилій[]зі стін.
-onset.research = Відкрийте \ue875 дерево технологій.\nДослідіть, а потім розмістіть \uf73e [accent]Турбінний кондесатор[] на джерелі (отворі).\nЦе буде генерувати [accent]енергію[].
-onset.bore = Дослідіть і розмістіть \uf741 [accent]плазмовий бурильник[].\nВін автоматично видобуває ресурси зі стін.
-onset.power = Для підключення [accent]енергії[] до плазмового бурильника, дослідіть і розмістіть \uf73d [accent]променевий вузол[].\nПід’єднайте турбінний коденсатор до плазмового бурильника.
-onset.ducts = Дослідіть і розмістіть \uf799 [accent]канали[], щоби переміщувати видобуті ресурси від плазмового бурильника до ядра.\nНатисніть і простягніть, щоби розмістити декілька каналів.\n[accent]Прокрутіть[], щоб обернути.
-onset.ducts.mobile = Дослідіть і розмістіть \uf799 [accent]канали[], щоби переміщувати видобуті ресурси від плазмового бурильника до ядра.\n\nУтримуйте свій палець близько секунди і простягніть, щоби розмістити декілька каналів.
+onset.mine = Натисніть, щоби видобути :beryllium: [accent]берилій[]зі стін.\n\nДля переміщення використовуйте [accent][[WASD].
+onset.mine.mobile = Торкніться, щоби видобути :beryllium: [accent]берилій[]зі стін.
+onset.research = Відкрийте :tree: дерево технологій.\nДослідіть, а потім розмістіть :turbine-condenser: [accent]Турбінний кондесатор[] на джерелі (отворі).\nЦе буде генерувати [accent]енергію[].
+onset.bore = Дослідіть і розмістіть :plasma-bore: [accent]плазмовий бурильник[].\nВін автоматично видобуває ресурси зі стін.
+onset.power = Для підключення [accent]енергії[] до плазмового бурильника, дослідіть і розмістіть :beam-node: [accent]променевий вузол[].\nПід’єднайте турбінний коденсатор до плазмового бурильника.
+onset.ducts = Дослідіть і розмістіть :duct: [accent]канали[], щоби переміщувати видобуті ресурси від плазмового бурильника до ядра.\nНатисніть і простягніть, щоби розмістити декілька каналів.\n[accent]Прокрутіть[], щоб обернути.
+onset.ducts.mobile = Дослідіть і розмістіть :duct: [accent]канали[], щоби переміщувати видобуті ресурси від плазмового бурильника до ядра.\n\nУтримуйте свій палець близько секунди і простягніть, щоби розмістити декілька каналів.
onset.moremine = Наростіть видобуток корисних копалин.\nРозмістіть більше плазмових бурильників і використайте променеві вузли та канали для їхнього обслуговування.\nВидобудьте 200 берилію.
-onset.graphite = Складніші блоки потребують \uf835 [accent]графіту[].\nУстановіть плазмові бурильники для видобування графіту.
-onset.research2 = Почніть дослідження [accent]заводів[].\nДослідіть \uf74d [accent]дробарку скель[] і \uf779 [accent]кремнієву дугову піч[].
-onset.arcfurnace = Дугова піч потребує \uf834 [accent]пісок[] і \uf835 [accent]графіт[] задля \uf82f [accent]кремнію[].\n[accent]Енергія[] також потрібна.
-onset.crusher = Використайте \uf74d [accent]дробарку скель[], щоби видобути пісок.
-onset.fabricator = Використовуйте [accent]одиниць[] для дослідження, захисту будівель та нападу на ворога. Дослідіть і розмістіть \uf6a2 [accent]танкобудівний завод[].
+onset.graphite = Складніші блоки потребують :graphite: [accent]графіту[].\nУстановіть плазмові бурильники для видобування графіту.
+onset.research2 = Почніть дослідження [accent]заводів[].\nДослідіть :cliff-crusher: [accent]дробарку скель[] і :silicon-arc-furnace: [accent]кремнієву дугову піч[].
+onset.arcfurnace = Дугова піч потребує :sand: [accent]пісок[] і :graphite: [accent]графіт[] задля :silicon: [accent]кремнію[].\n[accent]Енергія[] також потрібна.
+onset.crusher = Використайте :cliff-crusher: [accent]дробарку скель[], щоби видобути пісок.
+onset.fabricator = Використовуйте [accent]одиниць[] для дослідження, захисту будівель та нападу на ворога. Дослідіть і розмістіть :tank-fabricator: [accent]танкобудівний завод[].
onset.makeunit = Виробіть одиницю.\nВикористайте кнопку «?», щоби побачити вимоги для вибраного заводу.
-onset.turrets = Одиниці ефективні, але [accent]башти[] забезпечують ліпші оборонні можливості, якщо їх ефективно використовувати.\nУстановіть \uf6eb башту [accent]Прорив[].\nБашти вимагають \uf748 [accent]боєприпасів[].
+onset.turrets = Одиниці ефективні, але [accent]башти[] забезпечують ліпші оборонні можливості, якщо їх ефективно використовувати.\nУстановіть :breach: башту [accent]Прорив[].\nБашти вимагають :beryllium: [accent]боєприпасів[].
onset.turretammo = Забезпечте башту [accent]берилієвими боєприпасами[].
-onset.walls = [accent]Стіни[] cможе запобігти потраплянню зустрічної шкоди на будівлі.\nРозмістіть декілька \uf6ee [accent]берилієвих стін[] навколо башти.
+onset.walls = [accent]Стіни[] cможе запобігти потраплянню зустрічної шкоди на будівлі.\nРозмістіть декілька :beryllium-wall: [accent]берилієвих стін[] навколо башти.
onset.enemies = Ворог наступає, готуйтеся до оборони.
onset.defenses = [accent]Підготуйте захист:[lightgray] {0}
onset.attack = Ворог беззахисний. Контратакуйте.
-onset.cores = Нові ядра можуть бути розміщені на плитках [accent]зони ядра[].\nНові ядра функціонують як передові бази й мають спільний інвентар ресурсів з іншими ядрами.\nРозмістіть \uf725 ядро.
+onset.cores = Нові ядра можуть бути розміщені на плитках [accent]зони ядра[].\nНові ядра функціонують як передові бази й мають спільний інвентар ресурсів з іншими ядрами.\nРозмістіть :core-bastion: ядро.
onset.detect = Ворог зможе виявити вас за 2 хвилини.\nОрганізуйте оборону, видобуток корисних копалин та виробництво.
#Don't translate these yet!
@@ -2183,7 +2225,9 @@ block.vault.description = Англійська назва: Vault\nЗберіга
block.container.description = Англійська назва: Container\nЗберігає малу кількість предметів кожного типу. Блок розвантажувача може використовуватися для отримання предметів зі сховища.
block.unloader.description = Англійська назва: Unloader\nВивантажує предмети з найближчих блоків
block.launch-pad.description = Англійська назва: Launch Pad\nЗапускає партії предметів без необхідності запуску ядра.
-block.launch-pad.details = Суборбітальна система для транспортування ресурсів від точки А до точки Б. Корпуси вантажу крихкі й не здатні вижити при повторному вході.
+block.advanced-launch-pad.description = Launches batches of items to selected sectors. Only accepts one item type at a time.
+block.advanced-launch-pad.details = Sub-orbital system for point-to-point transportation of resources.
+block.landing-pad.description = Receives items from launch pads in other sectors. Requires large amounts of water to protect against impacts of landings.
block.duo.description = Англійська назва: Duo\nВистрілює чергами куль у ворогів.
block.scatter.description = Англійська назва: Scatter\nВистрілює скупченням свинцю, брухту чи метаскла в повітряних противників.
block.scorch.description = Англійська назва: Scorch\nПідпалює будь-яких наземних противників поблизу. Високоефективна на близькій відстані.
@@ -2292,6 +2336,7 @@ block.unit-cargo-loader.description = Англійська назва: Unit Carg
block.unit-cargo-unload-point.description = Англійська назва: Unit Cargo Unload Point\nВиступає в якості пункта розвантаження для вантажних дронів. Приймає вантажі, які відповідають вибраному фільтру.
block.beam-node.description = Англійська назва: Beam Node\nПередає енергію іншим блокам ортогонально. Запасає невелику кількість енергії.
block.beam-tower.description = Англійська назва: Beam Tower\nПередає енергію іншим блокам ортогонально. Зберігає велику кількість енергії. Має великий радіус дії.
+block.beam-link.description = Transmits power over vast distances.\nOnly capable of connecting to adjacent structures or other beam links.
block.turbine-condenser.description = Англійська назва: Turbine Condenser\nВиробляє енергію при розміщенні на джерелах. Виробляє невелику кількість води.
block.chemical-combustion-chamber.description = Англійська назва: Chemical Combustion Chamber\nВиробляє енергію з аркициту та озону.
block.pyrolysis-generator.description = Англійська назва: Pyrolysis Generator\nВиробляє велику кількість електроенергії з аркициту та шлаку. Виробляє воду як побічний продукт.
@@ -2384,6 +2429,7 @@ unit.emanate.description = Англійська назва: Emanate\nБудує
lst.read = Зчитує число із з’єднаної комірки пам’яті.
lst.write = Записує числу у з’єднану комірку пам’яті.
lst.print = Додайте текст до буфера друку.\nНічого не відображає, поки [accent]Print Flush[] використовується.
+lst.printchar = Add a UTF-16 character or content icon to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used.
lst.format = Замінити наступний замінник у текстовому буфері значенням.\nНе робить нічого, якщо шаблон заповнювача є недійсним.\nШаблон заповнювача: "{[accent]number 0-9[]}"\nПриклад:\n[accent]print "test {0}"\nformat "example"
lst.draw = Додає операцію до буфера рисунка.\nНічого не відображає, поки [accent]Draw Flush[] використовується.
lst.drawflush = Скидає буфер операцій [accent]Draw[] на дисплей.
@@ -2471,6 +2517,7 @@ lenum.shootp = Стріляти в одиницю чи будівлю із пе
lenum.config = Конфігурація будівлі, як-от в сортувальника.
lenum.enabled = Чи блок увімкнено.
laccess.currentammotype = Current ammo item/liquid of a turret.
+laccess.memorycapacity = Number of cells in a memory block.
laccess.color = Колір освітлювача.
laccess.controller = Керувач одиницями. Якщо процесор керує одиницею, повертає процесор.\nЯкщо у формуванні, повертається лідер.\nІнакше повертає саму одиницю.
@@ -2478,6 +2525,7 @@ laccess.dead = Чи є одиниця або будівля мертвою аб
laccess.controlled = Повертає \n[accent]@ctrlProcessor[] якщо одиниця контролюється процесором;\n[accent]@ctrlPlayer[] якщо одиниця чи будівля контролюєть гравцем\n[accent]@ctrlFormation[] якщо одиниця у загоні (формуванні)\nІнакше — 0.
laccess.progress = Прогрес дії, від 0 до 1.\nПовертає виробництво, перезавантаження башти або хід будівництва.
laccess.speed = Максимальна швидкість одиниці, у плитках за секунду.
+laccess.size = Size of a unit/building or the length of a string.
laccess.id = Ідентифікатор одиниці/блоку/предмету/рідини.\nЦе зворотна операція до операції пошуку.
lcategory.unknown = Невідома категорія
@@ -2623,3 +2671,29 @@ lenum.autoscale = Whether to scale marker corresponding to player's zoom level.
lenum.posi = Indexed position, used for line and quad markers with index zero being the first position.
lenum.uvi = Texture's position ranging from zero to one, used for quad markers.
lenum.colori = Indexed position, used for line and quad markers with index zero being the first color.
+lenum.wavetimer = Whether the waves come automatically on a timer. If not, waves come when the play button is pressed.
+lenum.wave = Current wave number. Can be anything in non-wave modes.
+lenum.currentwavetime = Wave countdown in ticks.
+lenum.waves = Whether waves are spawnable at all.
+lenum.wavesending = Whether the waves can be manually summoned with the play button.
+lenum.attackmode = Determines if gamemode is attack mode.
+lenum.wavespacing = Time between waves in ticks.
+lenum.enemycorebuildradius = No-build zone around enemy core radius.
+lenum.dropzoneradius = Radius around enemy wave drop zones.
+lenum.unitcap = Base unit cap. Can still be increased by blocks.
+lenum.lighting = Whether ambient lighting is enabled.
+lenum.buildspeed = Multiplier for building speed.
+lenum.unithealth = How much health units start with.
+lenum.unitbuildspeed = How fast unit factories build units.
+lenum.unitcost = Multiplier of resources that units take to build.
+lenum.unitdamage = How much damage units deal.
+lenum.blockhealth = How much health blocks start with.
+lenum.blockdamage = How much damage blocks (turrets) deal.
+lenum.rtsminweight = Minimum "advantage" needed for a squad to attack. Higher -> more cautious.
+lenum.rtsminsquad = Minimum size of attack squads.
+lenum.maparea = Playable map area. Anything outside the area will not be interactable.
+lenum.ambientlight = Ambient light color. Used when lighting is enabled.
+lenum.solarmultiplier = Multiplies power output of solar panels.
+lenum.dragmultiplier = Environment drag multiplier.
+lenum.ban = Blocks or units that cannot be placed or built.
+lenum.unban = Unban a unit or block.
diff --git a/core/assets/bundles/bundle_vi.properties b/core/assets/bundles/bundle_vi.properties
index 7499bd3d03..470e2471c7 100644
--- a/core/assets/bundles/bundle_vi.properties
+++ b/core/assets/bundles/bundle_vi.properties
@@ -131,20 +131,21 @@ feature.unsupported = Thiết bị của bạn không hỗ trợ tính năng nà
mods.initfailed = [red]⚠[] Mindustry không khởi chạy được. Điều này có thể do các mod bị lỗi.\n\nĐể tránh gặp sự cố lặp lại, [red]tất cả các mod đã bị tắt.[]
mods = Danh sách mod
+mods.name = Bản mod:
mods.none = [lightgray]Không tìm thấy mod!
mods.guide = Hướng dẫn mod
mods.report = Báo lỗi
mods.openfolder = Mở thư mục
mods.viewcontent = Xem nội dung
mods.reload = Tải lại
-mods.reloadexit = Trò chơi sẽ đóng để mod được tải lại.
+mods.reloadexit = Để tải lại các mod, trò chơi sẽ đóng lại ngay bây giờ.
mod.installed = [[Đã cài đặt]
mod.display = [gray]Mod:[orange] {0}
mod.enabled = [lightgray]Đã bật
mod.disabled = [red]Đã tắt
mod.multiplayer.compatible = [gray]Tương thích với chế độ nhiều người chơi
mod.disable = Tắt
-mod.version = Version:
+mod.version = Phiên bản:
mod.content = Nội dung:
mod.delete.error = Không thể xóa mod. Tệp có thể đang được sử dụng.
@@ -157,7 +158,7 @@ mod.circulardependencies = [red]Phụ thuộc tròn
mod.incompletedependencies = [red]Phụ thuộc chưa hoàn thiện
mod.requiresversion.details = Yêu cầu phiên bản trò chơi: [accent]{0}[]\nPhiên bản của bạn đã lỗi thời. Mod này yêu cầu phiên bản mới hơn của trò chơi (có thể là các bản phát hành beta/alpha) để hoạt động.
-mod.outdatedv7.details = Mod này không tương thích với phiên bản mới nhất của trò chơi. Tác giả cần phải cập nhật nó, và thêm [accent]minGameVersion: 136[] vào tệp [accent]mod.json[].
+mod.incompatiblemod.details = Mod này không tương thích với phiên bản mới nhất của trò chơi. Tác giả cần phải cập nhật nó, và thêm [accent]minGameVersion: 147[] vào tệp [accent]mod.json[].
mod.blacklisted.details = Mod này đã bị đưa vào danh sách đen do gây ra các sự cố đối với phiên bản trò chơi này. Đừng sử dụng nó.
mod.missingdependencies.details = Mod này thiếu các phụ thuộc: {0}
mod.erroredcontent.details = Mod này gây lỗi khi tải. Vui lòng yêu cầu tác giả của mod sửa chúng.
@@ -168,7 +169,6 @@ mod.requiresversion = Yêu cầu phiên bản trò chơi: [red]{0}
mod.errors = Đã xảy ra lỗi khi tải nội dung.
mod.noerrorplay = [red]Bạn có mod bị lỗi.[] Tắt các mod bị ảnh hưởng hoặc sửa các lỗi trước khi chơi.
-mod.nowdisabled = [red]Mod '{0}' thiếu phụ thuộc:[accent] {1}\n[lightgray]Bạn cần tải các mod này xuống trước.\nBản mod này sẽ tự động tắt.
mod.enable = Bật
mod.requiresrestart = Trò chơi sẽ đóng để áp dụng các thay đổi của mod.
mod.reloadrequired = [scarlet]Yêu cầu khởi động lại
@@ -184,6 +184,16 @@ mod.preview.missing = Trước khi đăng bản mod này lên workshop, bạn ph
mod.folder.missing = Chỉ có thể đăng các mod ở dạng thư mục lên workshop.\nĐể chuyển đổi bất kỳ mod nào thành một thư mục, chỉ cần giải nén tệp của nó vào một thư mục và xóa tệp nén cũ, sau đó khởi động lại trò chơi của bạn hoặc tải lại các bản mod của bạn.
mod.scripts.disable = Thiết bị của bạn không hỗ trợ mod chứa các ngữ lệnh. Bạn phải tắt các mod này để chơi trò chơi.
+mod.dependencies.error = [scarlet]Các bản mod đang thiếu phụ thuộc
+mod.dependencies.soft = (tùy chọn)
+mod.dependencies.download = Nhập
+mod.dependencies.downloadreq = Yêu cầu nhập
+mod.dependencies.downloadall = Nhập tất cả
+mod.dependencies.status = Kết quả nhập
+mod.dependencies.success = Đã tải xuống thành công:
+mod.dependencies.failure = Tải xuống thất bại:
+mod.dependencies.imported = Bản mod này cần có các phụ thuộc. Có tải xuống?
+
about.button = Giới thiệu
name = Tên:
noname = Hãy nhập một[accent] tên người chơi[] trước.
@@ -232,7 +242,7 @@ server.kicked.customClient = Máy chủ này không hỗ trợ bản dựng tùy
server.kicked.gameover = Trò chơi kết thúc!
server.kicked.serverRestarting = Máy chủ đang khởi động lại.
server.versions = Phiên bản của bạn:[accent] {0}[]\nPhiên bản máy chủ:[accent] {1}[]
-host.info = Nút [accent]Mở máy chủ[] mở máy chủ trên cổng [scarlet]6567[].\nBất kỳ ai trên cùng [lightgray]wifi hoặc mạng cục bộ[] sẽ có thể thấy máy chủ của bạn trong danh sách máy chủ của họ.\n\nNếu bạn muốn mọi người có thể kết nối từ mọi nơi bằng IP, [accent]chuyển tiếp cổng (port forwarding)[] là bắt buộc.\n\n[lightgray]Lưu ý: Nếu ai đó đang gặp sự cố khi kết nối với máy chủ trong mạng LAN của bạn, đảm bảo rằng bạn đã cho phép Mindustry truy cập vào mạng cục bộ của mình trong cài đặt tường lửa. Lưu ý rằng các mạng công cộng đôi khi không cho phép khám phá máy chủ.
+host.info = Nút [accent]Mở máy chủ[] mở máy chủ trên cổng đã chỉ định.\nBất kỳ ai trên cùng [lightgray]wifi hoặc mạng cục bộ[] sẽ có thể thấy máy chủ của bạn trong danh sách máy chủ của họ.\n\nNếu bạn muốn mọi người có thể kết nối từ mọi nơi bằng IP, [accent]chuyển tiếp cổng (port forwarding)[] là bắt buộc.\n\n[lightgray]Lưu ý: Nếu ai đó đang gặp sự cố khi kết nối với máy chủ trong mạng LAN của bạn, đảm bảo rằng bạn đã cho phép Mindustry truy cập vào mạng cục bộ của mình trong cài đặt tường lửa. Lưu ý rằng các mạng công cộng đôi khi không cho phép khám phá máy chủ.
join.info = Tại đây, bạn có thể nhập [accent]IP máy chủ[] kết nối, hoặc khám phá [accent]mạng cục bộ[] hay kết nối đến máy chủ [accent]toàn cầu[].\nCả mạng LAN và WAN đều được hỗ trợ.\n\n[lightgray]Nếu bạn muốn kết nối với ai đó bằng IP, bạn sẽ cần phải hỏi IP của họ, có thể được tìm thấy bằng cách tra google với từ khóa "my ip" trên thiết bị của họ.
hostserver = Mở máy chủ nhiều người chơi
invitefriends = Mời bạn bè
@@ -301,6 +311,7 @@ disconnect.error = Lỗi kết nối.
disconnect.closed = Kết nối đã bị đóng.
disconnect.timeout = Hết thời gian chờ.
disconnect.data = Không tải được dữ liệu thế giới!
+disconnect.snapshottimeout = Đã hết thời gian trong khi nhận ảnh chụp nhanh UDP.\nĐiều này xảy ra do mạng hoặc kết nối không ổn định.
cantconnect = Không thể tham gia trò chơi ([accent]{0}[]).
connecting = [accent]Đang kết nối...
reconnecting = [accent]Đang kết nối lại...
@@ -469,6 +480,7 @@ editor.shiftx = Dịch theo X
editor.shifty = Dịch theo Y
workshop = Workshop
waves.title = Đợt
+waves.team = Đội
waves.remove = Loại bỏ
waves.every = mỗi
waves.waves = đợt
@@ -728,14 +740,18 @@ loadout = Vật phẩm khởi đầu
resources = Tài nguyên
resources.max = Tối đa
bannedblocks = Khối bị cấm
+unbannedblocks = Khối được gỡ cấm
objectives = Mục tiêu nhiệm vụ
bannedunits = Đơn vị bị cấm
+unbannedunits = Đơn vị được gỡ cấm
bannedunits.whitelist = Chỉ dùng các đơn vị bị cấm
bannedblocks.whitelist = Chỉ dùng các khối bị cấm
addall = Thêm tất cả
launch.from = Đang phóng từ: [accent]{0}
-launch.capacity = Sức chứa vật phẩm khi phóng: [accent]{0}
+launch.capacity = Trữ lượng vật phẩm khi phóng: [accent]{0}
launch.destination = Đích đến: {0}
+landing.sources = Khu vực nguồn: [accent]{0}[]
+landing.import = Tổng nhập tối đa: {0}[accent]{1}[lightgray]/phút
configure.invalid = Số lượng phải là số trong khoảng 0 đến {0}.
add = Thêm...
guardian = Trùm
@@ -750,7 +766,7 @@ error.mapnotfound = Không tìm thấy tệp bản đồ!
error.io = Lỗi mạng đầu vào/ra.
error.any = Lỗi mạng không xác định.
error.bloom = Không khởi tạo được hiệu ứng phát sáng.\nThiết bị của bạn có thể không hỗ trợ.
-error.moddex = Mindustry không thể nạp bản mod này.\nThiết bị của bạn đang chặn nhập mod Java do thay đổi gần đây trong Android.\nKhông có giải pháp tạm thời nào cho vấn đề này.
+error.moddex = Mindustry không thể nạp bản mod này.\nThiết bị của bạn đang chặn nhập mod Java do thay đổi gần đây trong Android.\nVấn đề này không thể sửa được. Không có giải pháp tạm thời nào cho vấn đề này.
weather.rain.name = Mưa
weather.snowing.name = Tuyết
@@ -775,7 +791,9 @@ sectors.stored = Lưu trữ:
sectors.resume = Tiếp tục
sectors.launch = Phóng
sectors.select = Chọn
+sectors.launchselect = Chọn đích phóng
sectors.nonelaunch = [lightgray]không có (mặt trời)
+sectors.redirect = Chuyển hướng bệ phóng
sectors.rename = Đổi tên khu vực
sectors.enemybase = [scarlet]Căn cứ địch
sectors.vulnerable = [scarlet]Dễ bị tổn thất
@@ -808,6 +826,10 @@ difficulty.easy = Dễ
difficulty.normal = Vừa
difficulty.hard = Khó
difficulty.eradication = Hủy diệt
+difficulty.enemyHealthMultiplier = Enemy Health: {0}
+difficulty.enemySpawnMultiplier = Enemy Amount: {0}
+difficulty.waveTimeMultiplier = Wave Timer: {0}
+difficulty.nomodifiers = [lightgray](No modifiers)
planets = Hành tinh
@@ -922,8 +944,8 @@ status.sapped.name = Ăn mòn
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
-status.overdrive.name = Tăng cường
-status.overclock.name = Gia tốc
+status.overdrive.name = Tăng tốc
+status.overclock.name = Ép xung
status.shocked.name = Sốc
status.blasted.name = Nổ
status.unmoving.name = Bất động
@@ -1042,6 +1064,7 @@ stat.buildspeedmultiplier = Hệ số tốc độ xây dựng
stat.reactive = Phản ứng
stat.immunities = Miễn nhiễm
stat.healing = Hồi phục
+stat.efficiency = [stat]{0}% Hiệu suất
ability.forcefield = Khiên trường lực
ability.forcefield.description = Phát một khiên trường lực hấp thụ các loại đạn
@@ -1089,6 +1112,7 @@ ability.stat.buildtime = thời gian xây [stat]{0} giây[lightgray]
bar.onlycoredeposit = Chỉ được phép đưa vào lõi
bar.drilltierreq = Cần máy khoan tốt hơn
+bar.nobatterypower = Thiếu năng lượng pin
bar.noresources = Thiếu tài nguyên
bar.corereq = Yêu cầu lõi cơ bản
bar.corefloor = Yêu cầu ô nền lõi
@@ -1097,6 +1121,7 @@ bar.drillspeed = Tốc độ khoan: {0}/giây
bar.pumpspeed = Tốc độ bơm: {0}/giây
bar.efficiency = Hiệu suất: {0}%
bar.boost = Tăng tốc: +{0}%
+bar.powerbuffer = Pin: {0}/{1}
bar.powerbalance = Năng lượng: {0}/giây
bar.powerstored = Lưu trữ: {0}/{1}
bar.poweramount = Năng lượng: {0}
@@ -1107,6 +1132,7 @@ bar.capacity = Sức chứa: {0}
bar.unitcap = {0} {1}/{2}
bar.liquid = Chất lỏng
bar.heat = Nhiệt lượng
+bar.cooldown = Hồi phục
bar.instability = Bất ổn định
bar.heatamount = Nhiệt lượng: {0}
bar.heatpercent = Nhiệt lượng: {0} ({1}%)
@@ -1131,6 +1157,7 @@ bullet.interval = [stat]{0}/giây[lightgray] đạn ngắt quãng:
bullet.frags = [stat]{0}x[lightgray] đạn phá mảnh:
bullet.lightning = [stat]{0}[lightgray]x phóng điện ~ [stat]{1}[lightgray] sát thương
bullet.buildingdamage = [stat]{0}%[lightgray] sát thương công trình
+bullet.shielddamage = [stat]{0}%[lightgray] sát thương khiên chắn
bullet.knockback = [stat]{0}[lightgray] đẩy lùi
bullet.pierce = [stat]{0}[lightgray]x xuyên thấu
bullet.infinitepierce = [stat]xuyên thấu
@@ -1139,8 +1166,8 @@ bullet.healamount = [stat]{0}[lightgray] sửa chữa trực tiếp
bullet.multiplier = [stat]{0}[lightgray] đạn/vật phẩm
bullet.reload = [stat]{0}%[lightgray] tốc độ bắn
bullet.range = [stat]{0}[lightgray] ô phạm vi
-bullet.notargetsmissiles = [stat] ignores buildings
-bullet.notargetsbuildings = [stat] ignores missiles
+bullet.notargetsmissiles = [stat] phớt lờ tên lửa
+bullet.notargetsbuildings = [stat] phớt lờ công trình
unit.blocks = khối
unit.blockssquared = khối²
@@ -1157,6 +1184,7 @@ unit.minutes = phút
unit.persecond = /giây
unit.perminute = /phút
unit.timesspeed = x tốc độ
+unit.multiplier = x
unit.percent = %
unit.shieldhealth = độ bền khiên
unit.items = vật phẩm
@@ -1233,11 +1261,13 @@ setting.mutemusic.name = Tắt nhạc
setting.sfxvol.name = Âm lượng hiệu ứng âm thanh (SFX)
setting.mutesound.name = Tắt âm
setting.crashreport.name = Gửi báo cáo sự cố ẩn danh
+setting.communityservers.name = Lấy danh sách máy chủ cộng đồng
setting.savecreate.name = Tự động tạo bản lưu
setting.steampublichost.name = Hiển thị trò chơi công khai
setting.playerlimit.name = Giới hạn người chơi
setting.chatopacity.name = Độ mờ trò chuyện
setting.lasersopacity.name = Độ mờ kết nối năng lượng
+setting.unitlaseropacity.name = Độ mờ tia khai khoáng của đơn vị
setting.bridgeopacity.name = Độ mờ cầu
setting.playerchat.name = Hiển thị bong bóng trò chuyện của người chơi
setting.showweather.name = Hiện đồ họa thời tiết
@@ -1246,6 +1276,9 @@ setting.macnotch.name = Giao diện phù hợp với hiển thị tai thỏ (not
setting.macnotch.description = Cần khởi động lại để áp dụng các thay đổi
steam.friendsonly = Chỉ bạn bè
steam.friendsonly.tooltip = Liệu chỉ bạn bè trên Steam mới có thể tham gia trò chơi của bạn hay không.\nBỏ chọn ô này sẽ làm trò chơi của bạn công khai - mọi người có thể tham gia.
+setting.maxmagnificationmultiplierpercent.name = Tầm xa tối thiểu của máy quay
+setting.minmagnificationmultiplierpercent.name = Tầm xa tối đa của máy quay
+setting.minmagnificationmultiplierpercent.description = Giá trị cao có thể gây ra vấn đề hiệu suất.
public.beta = Lưu ý rằng phiên bản beta của trò chơi không thể tạo sảnh công khai.
uiscale.reset = Tỉ lệ giao diện đã được thay đổi.\nNhấn "Đồng ý" để xác nhận tỉ lệ này.\n[scarlet]Hoàn lại và thoát trong[accent] {0}[] giây...
uiscale.cancel = Hủy & Thoát
@@ -1329,6 +1362,7 @@ keybind.shoot.name = Bắn
keybind.zoom.name = Thu phóng
keybind.menu.name = Trình đơn
keybind.pause.name = Tạm dừng
+keybind.skip_wave.name = Skip Wave
keybind.pause_building.name = Tạm dừng/Tiếp tục xây dựng
keybind.minimap.name = Bản đồ nhỏ
keybind.planet_map.name = Bản đồ hành tinh
@@ -1396,12 +1430,14 @@ rules.unitcostmultiplier = Hệ Số Chi Phí Sản Xuất Đơn Vị
rules.unithealthmultiplier = Hệ Số Độ Bền Của Đơn Vị
rules.unitdamagemultiplier = Hệ Số Sát Thương Của Đơn Vị
rules.unitcrashdamagemultiplier = Hệ Số Sát Thương Của Đơn Vị Khi Bị Bắn Rơi
+rules.unitminespeedmultiplier = Hệ Số Tốc Độ Khai Khoáng Đơn Vị
rules.solarmultiplier = Hệ Số Năng Lượng Mặt Trời
rules.unitcapvariable = Lõi Tăng Giới Hạn Đơn Vị
rules.unitpayloadsexplode = Khối Hàng Mang Theo Phát Nổ Cùng Đơn Vị
rules.unitcap = Giới Hạn Đơn Vị Ban Đầu
rules.limitarea = Giới Hạn Kích Thước Bản Đồ
rules.enemycorebuildradius = Bán Kính Không Xây Dựng Từ Lõi Của Kẻ Địch:[lightgray] (ô)
+rules.extracorebuildradius = Bán Kính Không Xây Dựng Cộng Thêm:[lightgray] (ô)
rules.wavespacing = Giãn Cách Đợt:[lightgray] (giây)
rules.initialwavespacing = Giãn Cách Đợt Đầu:[lightgray] (giây)
rules.buildcostmultiplier = Hệ Số Chi Phí Xây Dựng
@@ -1424,6 +1460,9 @@ rules.title.planet = Hành Tinh
rules.lighting = Ánh Sáng
rules.fog = Sương Mù Chiến Tranh
rules.invasions = Kẻ Địch Xâm Lược Khu Vực
+rules.legacylaunchpads = Cơ chế bệ phóng di sản
+rules.legacylaunchpads.info = Cho phép dùng bệ phóng mà không cần bệ đáp, như trong bản 7.0.
+landingpad.legacy.disabled = [scarlet]\ue815 Đã tắt[lightgray] (Bệ phóng di sản được bật)
rules.showspawns = Hiện Khu Kẻ Địch Xuất Hiện
rules.randomwaveai = Đợt Tấn Công AI Không Đoán Trước
rules.fire = Lửa
@@ -1744,7 +1783,10 @@ block.spectre.name = Spectre
block.meltdown.name = Meltdown
block.foreshadow.name = Foreshadow
block.container.name = Thùng chứa
-block.launch-pad.name = Bệ phóng
+block.launch-pad.name = Bệ phóng [lightgray](Di sản)
+block.advanced-launch-pad.name = Bệ phóng
+block.landing-pad.name = Bệ đáp
+
block.segment.name = Segment
block.ground-factory.name = Nhà máy Bộ binh
block.air-factory.name = Nhà máy Không quân
@@ -1763,7 +1805,7 @@ block.payload-void.name = Huỷ khối hàng
block.payload-source.name = Nguồn khối hàng
block.disassembler.name = Máy phân rã
block.silicon-crucible.name = Máy nấu Silicon lớn
-block.overdrive-dome.name = Máy chiếu tăng tốc lớn
+block.overdrive-dome.name = Vòm tăng tốc
block.interplanetary-accelerator.name = Máy gia tốc liên hành tinh
block.constructor.name = Máy chế tạo
block.constructor.description = Chế tạo các khối có kích thước 2x2 ô.
@@ -1802,6 +1844,8 @@ block.arkyic-vent.name = Lỗ hơi nước Arkyic
block.yellow-stone-vent.name = Lỗ hơi nước đá vàng
block.red-stone-vent.name = Lỗ hơi nước đá đỏ
block.crystalline-vent.name = Lỗ hơi nước pha lê
+block.stone-vent.name = Stone Vent
+block.basalt-vent.name = Basalt Vent
block.redmat.name = Thảm đỏ
block.bluemat.name = Thảm xanh
block.core-zone.name = Vùng đặt lõi
@@ -1841,7 +1885,7 @@ block.electric-heater.name = Máy nhiệt từ điện
block.slag-heater.name = Máy nhiệt từ xỉ
block.phase-heater.name = Máy nhiệt từ lượng tử
block.heat-redirector.name = Khối điều hướng nhiệt
-block.small-heat-redirector.name = Small Heat Redirector
+block.small-heat-redirector.name = Khối điều hướng nhiệt nhỏ
block.heat-router.name = Khối phân phát nhiệt
block.slag-incinerator.name = Lò xỉ huỷ vật phẩm
block.carbide-crucible.name = Máy nấu Carbide
@@ -1889,9 +1933,9 @@ block.chemical-combustion-chamber.name = Bể điện hoá
block.pyrolysis-generator.name = Máy phát điện nhiệt phân
block.vent-condenser.name = Máy ngưng tụ hơi nước
block.cliff-crusher.name = Máy nghiền vách đá
-block.large-cliff-crusher.name = Advanced Cliff Crusher
+block.large-cliff-crusher.name = Máy nghiền vách đá cao cấp
block.plasma-bore.name = Khoan plasma
-block.large-plasma-bore.name = Khoan plasma lớn
+block.large-plasma-bore.name = Khoan plasma cao cấp
block.impact-drill.name = Máy khoan động lực
block.eruption-drill.name = Máy khoan siêu động lực
block.core-bastion.name = Lõi: Pháo đài
@@ -1956,79 +2000,79 @@ hint.respawn = Để hồi sinh dưới dạng phi thuyền, nhấn [accent][[V]
hint.respawn.mobile = Bạn đã chuyển điều khiển một đơn vị/công trình. Để hồi sinh dưới dạng phi thuyền, [accent]nhấn vào hình đại diện ở phía trên cùng bên trái.[]
hint.desktopPause = Nhấn [accent][[Phím cách][] để tạm dừng và tiếp tục trò chơi.
hint.breaking = [accent]Nhấn chuột phải[] và kéo để phá vỡ các khối.
-hint.breaking.mobile = Kích hoạt \ue817 [accent]cây búa[] ở phía dưới cùng bên phải và nhấn để phá vỡ các khối.\n\nGiữ ngón tay của bạn trong một giây và kéo để phá khối trong vùng được chọn.
-hint.blockInfo = Xem thông tin của một khối bằng cách chọn nó trong [accent]trình đơn xây dựng[], Sau đó chọn nút [accent][[?][] ở bên phải.
+hint.breaking.mobile = Kích hoạt :hammer: [accent]cây búa[] ở phía dưới cùng bên phải và nhấn để phá vỡ các khối.\n\nGiữ ngón tay của bạn trong một giây và kéo để phá khối trong vùng được chọn.
+hint.blockInfo = Xem vật phẩm nhập và thông tin của một khối bằng cách chọn nó trong [accent]trình đơn xây dựng[], Sau đó chọn nút [accent][[?][] ở bên phải.
hint.derelict = [accent]Bỏ hoang[] là các công trình bị hỏng của các căn cứ cũ mà không còn hoạt động.\n\nCác công trình này có thể [accent]được tháo dỡ[] để nhận được tài nguyên hoặc sửa chữa.
-hint.research = Sử dụng nút \ue875 [accent]Nghiên cứu[] để nghiên cứu công nghệ mới.
-hint.research.mobile = Sử dụng nút \ue875 [accent]Nghiên cứu[] trong \ue88c [accent]Trình đơn[] để nghiên cứu công nghệ mới.
+hint.research = Sử dụng nút :tree: [accent]Nghiên cứu[] để nghiên cứu công nghệ mới.
+hint.research.mobile = Sử dụng nút :tree: [accent]Nghiên cứu[] trong :menu: [accent]Trình đơn[] để nghiên cứu công nghệ mới.
hint.unitControl = Giữ [accent][[Ctrl trái][] và [accent]nhấn chuột[] để điều khiển thủ công đơn vị của bạn hoặc súng.
hint.unitControl.mobile = [accent][[Nhấn đúp][] để điều khiển thủ công đơn vị của bạn hoặc súng.
hint.unitSelectControl = Để điều khiển đơn vị, hãy nhấn [accent]chế độ mệnh lệnh[] bằng cách giữ [accent]Shift trái[].\nKhi ở chế độ mệnh lệnh, hãy nhấn và kéo để chọn đơn vị. [accent]Nhấn chuột phải[] vào một vị trí hoặc mục tiêu để ra lệnh đơn vị đến đó.
hint.unitSelectControl.mobile = Để điều khiển đơn vị, hãy nhấn [accent]chế độ mệnh lệnh[] bằng cách nhấn nút [accent]mệnh lệnh[] ở phía dưới cùng bên trái.\nKhi ở chế độ mệnh lệnh, hãy nhấn giữ và kéo để chọn đơn vị. Nhấp vào một vị trí hoặc mục tiêu để ra lệnh đơn vị đến đó.
-hint.launch = Một khi thu thập đủ tài nguyên, bạn có thể [accent]Phóng[] bằng cách chọn các khu vực lân cận bằng cách mở \ue827 [accent]Bản đồ[] ở phía dưới cùng bên phải, và lướt chọn vị trí mới.
-hint.launch.mobile = Một khi thu thập đủ tài nguyên, bạn có thể [accent]Phóng[] bằng cách chọn các khu vực lân cận từ \ue827 [accent]Bản đồ[] trong \ue88c [accent]Trình đơn[].
+hint.launch = Một khi thu thập đủ tài nguyên, bạn có thể [accent]Phóng[] bằng cách chọn các khu vực lân cận bằng cách mở :map: [accent]Bản đồ[] ở phía dưới cùng bên phải, và lướt chọn vị trí mới.
+hint.launch.mobile = Một khi thu thập đủ tài nguyên, bạn có thể [accent]Phóng[] bằng cách chọn các khu vực lân cận từ :map: [accent]Bản đồ[] trong :menu: [accent]Trình đơn[].
hint.schematicSelect = Giữ [accent][[F][] và kéo để chọn các khối để sao chép và dán.\n\n[accent][[Nhấn chuột giữa][] để sao chép một kiểu khối đơn lẻ.
hint.rebuildSelect = Giữ [accent][[B][] và kéo để chọn các khối đã bị phá hủy.\nChúng sẽ được tự động được xây lại.
-hint.rebuildSelect.mobile = Chọn nút \ue874 sao chép, sau đó nhấp nút \ue80f xây lại và kéo để chọn khu vực của các khối đã bị phá hủy.\nViệc này sẽ giúp xây lại chúng một cách tự động.
+hint.rebuildSelect.mobile = Chọn nút :copy: sao chép, sau đó nhấp nút :wrench: xây lại và kéo để chọn khu vực của các khối đã bị phá hủy.\nViệc này sẽ giúp xây lại chúng một cách tự động.
hint.conveyorPathfind = Giữ [accent][[Ctrl trái][] trong khi kéo băng chuyền để tự động tạo đường dẫn.
-hint.conveyorPathfind.mobile = Bật \ue844 [accent]chế độ đường chéo[] và kéo băng chuyền để tự động tạo đường dẫn.
+hint.conveyorPathfind.mobile = Bật :diagonal: [accent]chế độ đường chéo[] và kéo băng chuyền để tự động tạo đường dẫn.
hint.boost = Giữ [accent][[Shift trái][] bay qua các chướng ngại vật với đơn vị hiện tại của bạn.\n\nChỉ một số đơn vị mặt đất có thể bay được.
hint.payloadPickup = Nhấn [accent][[[] để nhặt một khối nhỏ hoặc một đơn vị.
hint.payloadPickup.mobile = [accent]Nhấn và giữ[] một khối nhỏ hoặc một đơn vị để nhặt nó.
hint.payloadDrop = Nhấn [accent]][] để thả một khối hàng.
hint.payloadDrop.mobile = [accent]Nhấn và giữ[] tại một khu vực trống để thả khối hàng tại đó.
hint.waveFire = [accent]Wave[] súng có nước làm đạn dược sẽ tự động dập tắt các đám cháy gần đó.
-hint.generator = \uf879 [accent]Máy phát điện đốt cháy[] đốt than và truyền năng lượng cho các khối liền kề.\n\nPhạm vi truyền tải năng lượng có thể được mở rộng với \uf87f [accent]Chốt điện[].
-hint.guardian = [accent]Trùm[] được bọc giáp. Sử dụng loại đạn yếu chẳng hạn như [accent]Đồng[] và [accent]Chì[] là [scarlet]không hiệu quả[].\n\nSử dụng súng tiên tiến hơn hoặc sử dụng \uf835 [accent]Than chì[] làm đạn \uf861Duo/\uf859Salvo đạn dược để hạ gục Trùm.
-hint.coreUpgrade = Các lõi có thể được nâng cấp bằng cách [accent]đặt lõi cấp cao hơn trên chúng[].\n\nĐặt một lõi \uf868 [accent]Trụ sở[] trên lõi \uf869 [accent]Cơ sở[]. Đảm bảo không có vật cản gần đó.
+hint.generator = :combustion-generator: [accent]Máy phát điện đốt cháy[] đốt than và truyền năng lượng cho các khối liền kề.\n\nPhạm vi truyền tải năng lượng có thể được mở rộng với :power-node: [accent]Chốt điện[].
+hint.guardian = [accent]Trùm[] được bọc giáp. Sử dụng loại đạn yếu chẳng hạn như [accent]Đồng[] và [accent]Chì[] là [scarlet]không hiệu quả[].\n\nSử dụng súng tiên tiến hơn hoặc sử dụng :graphite: [accent]Than chì[] làm đạn :duo:Duo/:salvo:Salvo đạn dược để hạ gục Trùm.
+hint.coreUpgrade = Các lõi có thể được nâng cấp bằng cách [accent]đặt lõi cấp cao hơn trên chúng[].\n\nĐặt một lõi :core-foundation: [accent]Trụ sở[] trên lõi :core-shard: [accent]Cơ sở[]. Đảm bảo không có vật cản gần đó.
hint.presetLaunch = [accent]Khu vực đáp[] xám, như [accent]Frozen Forest[], có thể được phóng đến từ bất cứ đâu. Nó không yêu cầu chiếm các khu vực lân cận.\n\n[accent]Các khu vực được đánh số[], chẳng hạn như cái này, là [accent]không bắt buộc[].
hint.presetDifficulty = Khu vực này có [scarlet]mối đe dọa thù địch cao[].\nPhóng đến khu vực như vậy [accent]không được khuyến khích[] nếu không có công nghệ và chuẩn bị phù hợp.
hint.coreIncinerate = Sau khi lõi đầy một loại vật phẩm, bất kỳ vật phẩm vào thuộc loại đó nhận được sẽ bị [accent]tiêu hủy[].
hint.factoryControl = Để đặt [accent]điểm đầu ra[] của một nhà máy, nhấn vào một khối nhà máy trong chế độ ra lệnh, sau đó nhấn chuột phải vào một vị trí.\nCác đơn vị sản xuất bởi nó sẽ tự động di chuyển đến đó.
hint.factoryControl.mobile = Để đặt [accent]điểm đầu ra[] của một nhà máy, nhấp vào một khối nhà máy trong chế độ ra lệnh, sau đó nhấp vào một vị trí.\nCác đơn vị sản xuất bởi nó sẽ tự động di chuyển đến đó.
-gz.mine = Di chuyển gần \uf8c4 [accent]quặng đồng[] trên đất và nhấn vào nó để bắt đầu khai thác.
-gz.mine.mobile = Di chuyển gần \uf8c4 [accent]quặng đồng[] trên đất và nhấp vào nó để bắt đầu khai thác.
-gz.research = Mở \ue875 cây công nghệ.\nNghiên cứu \uf870 [accent]Máy khoan cơ khí[], sau đó chọn nó từ \ue85e trình đơn ở góc dưới bên phải.\nNhấp vào một khoảng quặng đồng để đặt nó.
-gz.research.mobile = Mở \ue875 cây công nghệ.\nNghiên cứu \uf870 [accent]Máy khoan cơ khí[], sau đó chọn nó từ \ue85e trình đơn ở góc dưới bên phải.\nNhấp vào một khoảng quặng đồng để đặt nó.\n\nNhấp vào \ue800 [accent]dấu tích[] ở góc dưới bên phải để xác nhận.
-gz.conveyors = Nghiên cứu và đặt \uf896 [accent]băng chuyền[] để di chuyển các tài nguyên được khai thác\ntừ các máy khoan đến lõi.\n\nNhấn và kéo để đặt nhiều băng chuyền.\n[accent]Cuộn[] để xoay.
-gz.conveyors.mobile = Nghiên cứu và đặt \uf896 [accent]băng chuyền[] để di chuyển các tài nguyên được khai thác\ntừ các máy khoan đến lõi.\n\nGiữ ngón tay một giây và kéo để đặt nhiều băng chuyền.
+gz.mine = Di chuyển gần :ore-copper: [accent]quặng đồng[] trên đất và nhấn vào nó để bắt đầu khai thác.
+gz.mine.mobile = Di chuyển gần :ore-copper: [accent]quặng đồng[] trên đất và nhấp vào nó để bắt đầu khai thác.
+gz.research = Mở :tree: cây công nghệ.\nNghiên cứu :mechanical-drill: [accent]Máy khoan cơ khí[], sau đó chọn nó từ :production: trình đơn ở góc dưới bên phải.\nNhấp vào một khoảng quặng đồng để đặt nó.
+gz.research.mobile = Mở :tree: cây công nghệ.\nNghiên cứu :mechanical-drill: [accent]Máy khoan cơ khí[], sau đó chọn nó từ :production: trình đơn ở góc dưới bên phải.\nNhấp vào một khoảng quặng đồng để đặt nó.\n\nNhấp vào :ok: [accent]dấu tích[] ở góc dưới bên phải để xác nhận.
+gz.conveyors = Nghiên cứu và đặt :conveyor: [accent]băng chuyền[] để di chuyển các tài nguyên được khai thác\ntừ các máy khoan đến lõi.\n\nNhấn và kéo để đặt nhiều băng chuyền.\n[accent]Cuộn[] để xoay.
+gz.conveyors.mobile = Nghiên cứu và đặt :conveyor: [accent]băng chuyền[] để di chuyển các tài nguyên được khai thác\ntừ các máy khoan đến lõi.\n\nGiữ ngón tay một giây và kéo để đặt nhiều băng chuyền.
gz.drills = Mở rộng hoạt động khai thác.\nĐặt thêm Máy khoan cơ khí.\nKhai thác 100 đồng.
-gz.lead = \uf837 [accent]Chì[] là một tài nguyên được sử dụng phổ biến.\nHãy đặt các máy khoan để khai thác chì.
-gz.moveup = \ue804 Di chuyển lên để xem các nhiệm vụ tiếp theo.
-gz.turrets = Nghiên cứu và đặt 2 súng \uf861 [accent]Duo[] để bảo vệ lõi.\nSúng Duo cần \uf838 [accent]đạn[] từ băng chuyền.
-gz.duoammo = Tiếp đạn cho súng Duo bằng [accent]đồng[], sử dụng băng chuyền.
-gz.walls = [accent]Tường[] có thể ngăn chặn sát thương đến các công trình.\nĐặt \uf8ae [accent]tường đồng[] xung quanh các súng.
+gz.lead = :lead: [accent]Chì[] là một tài nguyên được sử dụng phổ biến.\nHãy đặt các máy khoan để khai thác chì.
+gz.moveup = :up: Di chuyển lên để xem các nhiệm vụ tiếp theo.
+gz.turrets = Nghiên cứu và đặt 2 súng :duo: [accent]Duo[] để bảo vệ lõi.\nSúng Duo cần :copper: [accent]đạn[] từ băng chuyền.
+gz.duoammo = Tiếp đạn cho súng Duo bằng :copper: [accent]đồng[], sử dụng băng chuyền.
+gz.walls = [accent]Tường[] có thể ngăn chặn sát thương đến các công trình.\nĐặt :copper-wall: [accent]tường đồng[] xung quanh các súng.
gz.defend = Quân địch đang đến, hãy chuẩn bị phòng thủ.
-gz.aa = Các đơn vị bay không thể dễ dàng bị bắn hạ với các súng tiêu chuẩn.\n\uf860 [accent]Scatter[] cung cấp tốt khả năng phòng không, nhưng cần \uf837 [accent]chì[] là đạn.
-gz.scatterammo = Tiếp đạn cho súng Scatter bằng \uf837 [accent]chì[], sử dụng băng chuyền.
+gz.aa = Các đơn vị bay không thể dễ dàng bị bắn hạ với các súng tiêu chuẩn.\n:scatter: [accent]Scatter[] cung cấp tốt khả năng phòng không, nhưng cần :lead: [accent]chì[] là đạn.
+gz.scatterammo = Tiếp đạn cho súng Scatter bằng :lead: [accent]chì[], sử dụng băng chuyền.
gz.supplyturret = [accent]Cấp đạn cho súng
gz.zone1 = Đây là khu vực quân địch đáp xuống.
gz.zone2 = Bất kỳ thứ gì được xây dựng trong bán kính này sẽ bị phá hủy khi một đợt mới bắt đầu.
gz.zone3 = Một đợt sẽ bắt đầu ngay bây giờ.\nHãy chuẩn bị.
gz.finish = Đặt thêm các súng, khai thác thêm nguyên liệu,\nvà vượt qua tất cả các đợt để [accent]chiếm khu vực[].
-onset.mine = Nhấn để khai thác \uf748 [accent]beryl[] từ tường.\n\nSử dụng [accent][[WASD] để di chuyển.
-onset.mine.mobile = Nhấp để khai thác \uf748 [accent]beryl[] từ tường.
-onset.research = Mở \ue875 cây công nghệ.\nNghiên cứu, sau đó đặt \uf73e [accent]tua-bin điện tụ nước[] trên lỗ hơi nước.\nĐiều này sẽ tạo ra [accent]điện[].
-onset.bore = Nghiên cứu và đặt \uf741 [accent]khoan plasma[].\nĐiều này sẽ tự động khai thác tài nguyên từ tường.
-onset.power = Để nối [accent]điện[] cho khoan plasma, nghiên cứu và đặt \uf73d [accent]Chốt tia điện[].\nKết nối tua-bin điện hơi nước với khoan plasma.
-onset.ducts = Nghiên cứu và đặt \uf799 [accent]ống chân không[] để di chuyển các tài nguyên được khai thác từ các máy khoan plasma đến lõi.\nNhấn và kéo để đặt nhiều ống chân không.\n[accent]Cuộn[] để xoay.
-onset.ducts.mobile = Nghiên cứu và đặt \uf799 [accent]ống chân không[] để di chuyển các tài nguyên được khai thác từ các máy khoan plasma đến lõi.\n\nGiữ ngón tay một giây và kéo để đặt nhiều ống chân không.
+onset.mine = Nhấn để khai thác :beryllium: [accent]beryl[] từ tường.\n\nSử dụng [accent][[WASD] để di chuyển.
+onset.mine.mobile = Nhấp để khai thác :beryllium: [accent]beryl[] từ tường.
+onset.research = Mở :tree: cây công nghệ.\nNghiên cứu, sau đó đặt :turbine-condenser: [accent]tua-bin điện tụ nước[] trên lỗ hơi nước.\nĐiều này sẽ tạo ra [accent]điện[].
+onset.bore = Nghiên cứu và đặt :plasma-bore: [accent]khoan plasma[].\nĐiều này sẽ tự động khai thác tài nguyên từ tường.
+onset.power = Để nối [accent]điện[] cho khoan plasma, nghiên cứu và đặt :beam-node: [accent]Chốt tia điện[].\nKết nối tua-bin điện hơi nước với khoan plasma.
+onset.ducts = Nghiên cứu và đặt :duct: [accent]ống chân không[] để di chuyển các tài nguyên được khai thác từ các máy khoan plasma đến lõi.\nNhấn và kéo để đặt nhiều ống chân không.\n[accent]Cuộn[] để xoay.
+onset.ducts.mobile = Nghiên cứu và đặt :duct: [accent]ống chân không[] để di chuyển các tài nguyên được khai thác từ các máy khoan plasma đến lõi.\n\nGiữ ngón tay một giây và kéo để đặt nhiều ống chân không.
onset.moremine = Mở rộng hoạt động khai thác.\nĐặt thêm Máy khoan plasma và sử dụng chốt tia điện và ống chân không để cùng phụ trợ chúng.\nKhai thác 200 beryl.
-onset.graphite = Các khối phức tạp hơn cần \uf835 [accent]than chì[].\nĐặt khoan plasma để khai thác than chì.
-onset.research2 = Bắt đầu nghiên cứu [accent]các nhà máy[].\nNghiên cứu \uf74d [accent]máy phá đá[] và \uf779 [accent]lò tinh luyện silicon[].
-onset.arcfurnace = Lò tinh luyện cần \uf834 [accent]cát[] và \uf835 [accent]than chì[] để tạo \uf82f [accent]silicon[].\nYêu cầu có [accent]Điện[].
-onset.crusher = Sử dụng \uf74d [accent]máy nghiền vách đá[] để khai thác cát.
-onset.fabricator = Sử dụng [accent]đơn vị[] để khám phá bản đồ, bảo vệ các công trình, và tấn công quân địch.\nNghiên cứu và đặt \uf6a2 [accent]máy chế tạo xe tăng[].
+onset.graphite = Các khối phức tạp hơn cần :graphite: [accent]than chì[].\nĐặt khoan plasma để khai thác than chì.
+onset.research2 = Bắt đầu nghiên cứu [accent]các nhà máy[].\nNghiên cứu :cliff-crusher: [accent]máy phá đá[] và :silicon-arc-furnace: [accent]lò tinh luyện silicon[].
+onset.arcfurnace = Lò tinh luyện cần :sand: [accent]cát[] và :graphite: [accent]than chì[] để tạo :silicon: [accent]silicon[].\nYêu cầu có [accent]Điện[].
+onset.crusher = Sử dụng :cliff-crusher: [accent]máy nghiền vách đá[] để khai thác cát.
+onset.fabricator = Sử dụng [accent]đơn vị[] để khám phá bản đồ, bảo vệ các công trình, và tấn công quân địch.\nNghiên cứu và đặt :tank-fabricator: [accent]máy chế tạo xe tăng[].
onset.makeunit = Sản xuất một đơn vị.\nSử dụng nút "?" để xem các yêu cầu của máy đã chọn.
-onset.turrets = Các đơn vị rất hiệu quả, nhưng [accent]súng[] cung cấp khả năng phòng thủ tốt hơn nếu được sử dụng hiệu quả.\nĐặt một \uf6eb [accent]Breach[].\nSúng cần \uf748 [accent]đạn[].
+onset.turrets = Các đơn vị rất hiệu quả, nhưng [accent]súng[] cung cấp khả năng phòng thủ tốt hơn nếu được sử dụng hiệu quả.\nĐặt một :breach: [accent]Breach[].\nSúng cần :beryllium: [accent]đạn[].
onset.turretammo = Tiếp đạn cho súng bằng [accent]beryl[] dùng ống chân không.
-onset.walls = [accent]Tường[] có thể ngăn chặn sát thương đến các công trình.\nĐặt một số \uf6ee [accent]tường beryl[] xung quanh súng.
+onset.walls = [accent]Tường[] có thể ngăn chặn sát thương đến các công trình.\nĐặt một số :beryllium-wall: [accent]tường beryl[] xung quanh súng.
onset.enemies = Quân địch đang đến, hãy chuẩn bị phòng thủ.
onset.defenses = [accent]Thiết lập phòng thủ:[lightgray] {0}
onset.attack = Quân địch đã suy yếu. Hãy phản công.
-onset.cores = Các lõi mới có thể được đặt trên [accent]ô đặt lõi[].\nCác lõi mới hoạt động như một tiền cứ và chia sẻ kho tài nguyên với các lõi khác.\nĐặt một \uf725 lõi.
+onset.cores = Các lõi mới có thể được đặt trên [accent]ô đặt lõi[].\nCác lõi mới hoạt động như một tiền cứ và chia sẻ kho tài nguyên với các lõi khác.\nĐặt một :core-bastion: lõi.
onset.detect = Quân địch sẽ phát hiện bạn trong vòng 2 phút.\nHãy chuẩn bị phòng thủ, khai thác, và sản xuất.
onset.commandmode = Giữ [accent]Shift[] để vào [accent]chế độ mệnh lệnh[].\n[accent]Nhấn chuột trái và kéo[] để chọn các đơn vị.\n[accent]Nhấn chuột phải[] để ra lệnh các đơn vị di chuyển hoặc tấn công.
onset.commandmode.mobile = Nhấn vào [accent]nút mệnh lệnh[] để vào [accent]chế độ mệnh lệnh[].\nGiữ một ngón tay, sau đó [accent]kéo[] để chọn các đơn vị.\n[accent]Nhấp[] để ra lệnh các đơn vị di chuyển hoặc tấn công.
@@ -2075,7 +2119,7 @@ liquid.cryofluid.description = Được dùng như chất làm mát trong lò ph
#Erekir
liquid.arkycite.description = Được dùng trong các phản ứng hóa học để phát điện và tổng hợp vật liệu.
-liquid.ozone.description = Được sử dụng như một chất ôxy hóa trong sản xuất vật liệu, và làm nhiên liệu. Gây nổ vừa phải.
+liquid.ozone.description = Được sử dụng như một nhiên liệu và chất ôxy hóa trong sản xuất vật liệu. Gây nổ vừa phải.
liquid.hydrogen.description = Được dùng trong khai thác tài nguyên, sản xuất đơn vị và sửa chữa công trình. Dễ cháy.
liquid.cyanogen.description = Được dùng cho đạn dược, xây dựng các đơn vị tiên tiến và các phản ứng khác nhau trong các khối tiên tiến. Rất dễ cháy.
liquid.nitrogen.description = Được dùng trong khai thác tài nguyên, tạo khí và sản xuất đơn vị. Trơ.
@@ -2132,7 +2176,7 @@ block.door.description = Một bức tường có thể mở và đóng.
block.door-large.description = Một bức tường có thể mở và đóng.
block.mender.description = Sửa chữa định kỳ các khối trong vùng lân cận.\nTùy chọn sử dụng silicon để tăng phạm vi và hiệu quả.
block.mend-projector.description = Sửa chữa các khối lân cận.\nTùy chọn sử dụng sợi lượng tử để tăng phạm vi và hiệu quả.
-block.overdrive-projector.description = Tăng tốc độ làm việc của các công trình gần đó.\nTùy chọn sử dụng sợi lượng tử để tăng phạm vi và hiệu quả.
+block.overdrive-projector.description = Tăng tốc độ làm việc của các công trình gần đó.\nTùy chọn sử dụng sợi lượng tử để tăng phạm vi và hiệu quả. Không cộng dồn.
block.force-projector.description = Tạo ra một trường lực lục giác xung quanh nó, bảo vệ các công trình và đơn vị bên trong khỏi bị hư hại.\nQuá nóng nếu chịu quá nhiều sát thương. Tùy chọn sử dụng chất làm mát để chống quá nhiệt. Sử dụng sợi lượng tử để tăng kích thước lá chắn.
block.shock-mine.description = Giải phóng tia điện khi tiếp xúc với đơn vị đối phương.
block.conveyor.description = Vận chuyển vật phẩm về phía trước.
@@ -2194,7 +2238,9 @@ block.vault.description = Lưu trữ lượng lớn vật phẩm mỗi loại. M
block.container.description = Lưu trữ lượng nhỏ vật phẩm mỗi loại. Mở rộng kho lưu trữ khi đặt kế bên một lõi. Nội dung có thể được lấy ra với điểm dỡ hàng.
block.unloader.description = Lấy các vật phẩm được chọn từ các khối gần đó.
block.launch-pad.description = Phóng lô vật phẩm vào khu vực được chọn.
-block.launch-pad.details = Hệ thống quỹ đạo phụ để vận chuyển tài nguyên từ điểm này sang điểm khác. Các nhóm khối hàng rất dễ vỡ và không có khả năng tồn tại khi tái nhập.
+block.advanced-launch-pad.description = Phóng lô vật phẩm vào khu vực được chọn. Chỉ nhận một kiểu vật phẩm một lúc.
+block.advanced-launch-pad.details = Hệ thống tiểu quỹ đạo để vận chuyển tài nguyên từ điểm này đến điểm khác.
+block.landing-pad.description = Nhận vật phẩm từ bệ phóng ở khu vực khác. Cần một lượng nước lớn để bảo vệ chống lại va chạm khi đáp.
block.duo.description = Bắn xen kẽ đạn vào kẻ địch.
block.scatter.description = Bắn khối chì, phế liệu hoặc thuỷ tinh vào kẻ địch trên không.
block.scorch.description = Đốt mọi kẻ địch trên mặt đất ở gần. Hiệu quả cao ở tầm gần.
@@ -2216,7 +2262,7 @@ block.parallax.description = Bắn một tia kéo mục tiêu trên không và l
block.tsunami.description = Phóng một tia chất lỏng mạnh vào kẻ địch. Tự chữa cháy nếu được cung cấp nước hoặc chất làm mát.
block.silicon-crucible.description = Tinh chế silicon từ cát và than, sử dụng nhiệt thạch làm nguồn nhiệt phụ. Có hiệu quả cao hơn khi ở nơi nóng.
block.disassembler.description = Tách xỉ thành lượng nhỏ các thành phần khoáng chất lạ với hiệu suất thấp. Có thể sản xuất thori.
-block.overdrive-dome.description = Tăng tốc độ làm việc của các công trình lân cận. Sử dụng sợi lượng tử và silicon để hoạt động.
+block.overdrive-dome.description = Tăng tốc độ làm việc của các công trình lân cận. Sử dụng sợi lượng tử và silicon để hoạt động. Không cộng dồn.
block.payload-conveyor.description = Di chuyển những khối hàng lớn, chẳng hạn như các đơn vị từ nhà máy. Từ tính. Sử dụng ở những môi trường không trọng lực.
block.payload-router.description = Tách những khối hàng đầu vào thành 3 hướng đầu ra. Hoạt động như một bộ lọc khi được thiết lập. Từ tính. Sử dụng ở những môi trường không trọng lực.
block.ground-factory.description = Sản xuất đơn vị bộ binh. Các đơn vị đầu ra có thể được sử dụng trực tiếp, hoặc đưa vào máy tái thiết để nâng cấp.
@@ -2241,14 +2287,14 @@ block.repair-turret.description = Sửa chữa những đơn vị bị hư hỏn
block.core-bastion.description = Trung tâm của căn cứ. Bọc giáp. Một khi bị phá hủy, khu vực sẽ mất.
block.core-citadel.description = Trung tâm của căn cứ. Bọc giáp tốt hơn. Lưu trữ nhiều vật phẩm hơn lõi Pháo đài.
block.core-acropolis.description = Trung tâm của căn cứ. Được bọc giáp rất tốt. Lưu trữ nhiều vật phẩm hơn lõi Thủ Phủ.
-block.breach.description = Bắn đạn beryl hoặc tungsten xuyên thấu vào kẻ địch.
-block.diffuse.description = Bắn một loạt đạn mảnh theo hình nón. Đẩy kẻ địch về phía sau.
+block.breach.description = Bắn các loại đạn xuyên thấu vào kẻ địch.
+block.diffuse.description = Bắn các loạt đạn mảnh theo hình nón. Đẩy lùi mục tiêu kẻ địch về phía sau.
block.sublimate.description = Thổi tia lửa mạnh liên tục vào kẻ địch. Xuyên giáp.
-block.titan.description = Bắn đạn pháo nổ khổng lồ vào các mục tiêu trên mặt đất. Yêu cầu hy-đrô lỏng.
-block.afflict.description = Bắn ra các mảnh vỡ của một quả cầu tích điện khổng lồ. Yêu cầu nhiệt.
+block.titan.description = Bắn các đạn pháo nổ khổng lồ vào các mục tiêu trên mặt đất. Yêu cầu hy-đrô lỏng.
+block.afflict.description = Bắn ra các mảnh vỡ của các quả cầu tích điện khổng lồ. Yêu cầu nhiệt.
block.disperse.description = Bắn các mảnh vỡ vào các mục tiêu trên không.
-block.lustre.description = Bắn một tia laser di chuyển chậm một mục tiêu vào các mục tiêu của địch.
-block.scathe.description = Phóng một tên lửa mạnh vào các mục tiêu trên mặt đất ở khoảng cách lớn.
+block.lustre.description = Bắn một tia laser di chuyển chậm một mục tiêu liên tục vào các mục tiêu kẻ địch.
+block.scathe.description = Phóng các tên lửa mạnh vào các mục tiêu trên mặt đất ở khoảng cách lớn.
block.smite.description = Bắn viên đạn phát sáng nổ xuyên thấu.
block.malign.description = Bắn chùm hàng loạt những tia laser dẫn đường nhắm thẳng mục tiêu kẻ địch. Yêu cầu lượng nhệt lớn.
block.silicon-arc-furnace.description = Tinh chế silicone từ cát và than chì.
@@ -2257,11 +2303,11 @@ block.electric-heater.description = Làm nóng công trình. Yêu cầu một l
block.slag-heater.description = Làm nóng công trinh. Yêu cầu xỉ.
block.phase-heater.description = Làm nóng công trình. Yêu cầu sợi lượng tử.
block.heat-redirector.description = Chuyển lượng nhiệt nhận được sang các khối khác.
-block.small-heat-redirector.description = Redirects accumulated heat to other blocks.
+block.small-heat-redirector.description = Chuyển lượng nhiệt nhận được sang các khối khác.
block.heat-router.description = Phân phát nhiệt nhận được sang ba hướng đầu ra.
-block.electrolyzer.description = Chuyển đổi nước thành hy-đrô lỏng và khí ô-zôn. Các khí xuất hai hướng đối nhau, được đánh dấu bằng các màu tương ứng.
+block.electrolyzer.description = Phân tách nước thành hy-đrô lỏng và khí ô-zôn. Các khí xuất hai hướng đối nhau, được đánh dấu bằng các màu tương ứng.
block.atmospheric-concentrator.description = Cô đặc ni-tơ từ khí quyển. Yêu cầu nhiệt.
-block.surge-crucible.description = Tinh chế hợp kim từ xỉ và silicon. Yêu cầu nhiệt.
+block.surge-crucible.description = Chế tạo hợp kim từ xỉ và silicon. Yêu cầu nhiệt.
block.phase-synthesizer.description = Tổng hợp sợi lượng tử từ thori, cát, và ôzôn. Yêu cầu nhiệt.
block.carbide-crucible.description = Kết hợp than chì và tungsten để tạo ra carbide. Yêu cầu nhiệt.
block.cyanogen-synthesizer.description = Tổng hợp cyano từ arkycite và than chì. Yêu cầu nhiệt.
@@ -2270,9 +2316,9 @@ block.vent-condenser.description = Ngưng tụ khí từ lỗ hơi nước để
block.plasma-bore.description = Khi được đặt đối diện với một bức tường quặng, sản xuất vô hạn vật phẩm. Yêu cầu một lượng điện nhỏ.\nTùy chọn sử dụng hy-đrô lỏng để tăng hiệu suất.
block.large-plasma-bore.description = Một máy khoan plasma lớn hơn. Có thể khoan tungsten và thori. Yêu cầu hy-đrô lỏng và điện.\nTùy chọn sử dụng ni-tơ lỏng để tăng hiệu suất.
block.cliff-crusher.description = Nghiền vách đá, xuất ra cát vô hạn. Yêu cầu năng lượng. Hiệu quả thay đổi dựa theo loại vách đá.
-block.large-cliff-crusher.description = Crushes walls, outputting sand indefinitely. Requires power and ozone. Efficiency varies based on type of wall. Optionally consumes tungsten to increase efficiency.
-block.impact-drill.description = Khi được đặt lên một loại quặng, sản xuất vô hạn vật phẩm. Yêu cầu điện và nước.
-block.eruption-drill.description = Phiên bản cải tiến của máy khoan động lực. Có thể khoan thori. Yêu cầu hy-đrô lỏng.
+block.large-cliff-crusher.description = Nghiền vách đá, xuất ra cát vô hạn. Yêu cầu năng lượng và hydro. Hiệu quả thay đổi dựa theo loại vách đá. Tùy chọn tiêu thụ than chì để gia tăng hiệu suất.
+block.impact-drill.description = Khi được đặt lên một loại quặng, sản xuất vô hạn vật phẩm. Yêu cầu điện và nước.\nTùy chọn dùng ô-zôn để tăng cường hiệu quả.
+block.eruption-drill.description = Phiên bản cải tiến của máy khoan động lực. Có thể khoan thori. Yêu cầu hy-đrô lỏng.\nTùy chọn dùng cyano để tăng cường hiệu quả.
block.reinforced-conduit.description = Di chuyển chất lỏng về phía trước. Không nhận đầu vào nếu không phải ống dẫn từ các bên.
block.reinforced-liquid-router.description = Phân chia chất lỏng đều cho tất cả các bên.
block.reinforced-liquid-tank.description = Lưu trữ một lượng chất lỏng lớn.
@@ -2303,6 +2349,7 @@ block.unit-cargo-loader.description = Tạo thiết bị bay chở hàng. Thiế
block.unit-cargo-unload-point.description = Hoạt động như một điểm thả hàng cho thiết bị bay chở hàng. Nhận món đồ khớp với bộ lọc đã chọn.
block.beam-node.description = Truyền điện cho các khối khác theo hướng thẳng. Lưu trữ một lượng điện nhỏ.
block.beam-tower.description = Truyền điện cho các khối khác theo hướng thẳng. Lưu trữ một lượng điện lớn. Có phạm vi rộng.
+block.beam-link.description = Transmits power over vast distances.\nOnly capable of connecting to adjacent structures or other beam links.
block.turbine-condenser.description = Tạo ra điện khi được đặt trên các lỗ hơi nước. Tạo ra một lượng nước nhỏ.
block.chemical-combustion-chamber.description = Tạo ra điện từ arkycite và ôzôn.
block.pyrolysis-generator.description = Tạo ra một lượng điện lớn từ arkycite và xỉ nóng chảy. Tạo ra nước như một sản phẩm phụ.
@@ -2395,6 +2442,7 @@ unit.emanate.description = Xây công trình để phòng thủ lõi Đại đô
lst.read = Đọc một số từ bộ nhớ được liên kết.
lst.write = Ghi một số vào bộ nhớ được liên kết.
lst.print = Thêm văn bản vào bộ đệm in.\nKhông hiển thị gì cho đến khi [accent]Print Flush[] được sử dụng.
+lst.printchar = Thêm một ký tự UTF-16 hoặc biểu tượng nội dung vào bộ đệm in.\nKhông hiển thị gì cho đến khi [accent]Print Flush[] được sử dụng.
lst.format = Thay thế từ giữ chỗ tiếp theo trong bộ đệm văn bản bằng giá trị.\nKhông làm gì nếu khuôn mẫu từ giữ chỗ không hợp lệ.\nKhuôn mẫu từ giữ chỗ: "{[accent]số 0-9[]}"\nVí dụ:\n[accent]print "ví dụ {0}"\nformat "mẫu"
lst.draw = Thêm một thao tác vào bộ đệm vẽ.\nKhông hiển thị gì cho đến khi [accent]Draw Flush[] được sử dụng.
lst.drawflush = Đẩy các thao tác [accent]Draw[] theo trình tự đến màn hình.
@@ -2490,12 +2538,14 @@ lenum.config = Cấu hình công trình, kiểu như vật phẩm của Khối s
lenum.enabled = Khối có đang hoạt động.
laccess.currentammotype = Đạn vật phẩm/chất lỏng hiện tại của bệ súng.
+laccess.memorycapacity = Số ô nhớ trong một khối bộ nhớ.
laccess.color = Màu đèn chiếu sáng.
laccess.controller = Thứ điều khiển đơn vị. Nếu khối xử lý đã điều khiển, trả về khối xử lý.\nNgược lại, trả về chính đơn vị đó.
laccess.dead = Đơn vị/công trình đã chết hoặc không còn hợp lệ hay không.
laccess.controlled = Trả về:\n[accent]@ctrlProcessor[] nếu điều khiển là khối xử lý\n[accent]@ctrlPlayer[] nếu điều khiển đơn vị/công trình là người chơi\n[accent]@ctrlCommand[] nếu điều khiển đơn vị là một mệnh lệnh người chơi\nNgược lại, 0.
laccess.progress = Tiến trình thực hiện, 0 đến 1.\nTrả về tiến trình sản xuất, nạp đạn bệ súng hoặc xây dựng.
laccess.speed = Tốc độ cao nhất của đơn vị, tính bằng ô/giây.
+laccess.size = Kích thước của đơn vị/công trình hoặc độ dài của chuỗi ký tự.
laccess.id = Định danh của một đơn vị/khối/vật phẩm/chất lỏng.\nViệc này làm ngược lại với thao tác tra cứu.
lcategory.unknown = Không xác định
@@ -2643,3 +2693,30 @@ lenum.autoscale = Có chia tỷ lệ điểm đánh dấu tương ứng với m
lenum.posi = Vị trí theo chỉ số, dùng cho điểm đánh dấu đường kẻ và tứ giác với 0 là vị trí đầu tiên.
lenum.uvi = Vị trí của kết cấu trong phạm vi từ 0 đến 1, dùng cho đánh dấu tứ giác.
lenum.colori = Màu theo chỉ số, dùng cho điểm đánh dấu đường kẻ và tứ giác với 0 là màu đầu tiên.
+
+lenum.wavetimer = Lượt có tự động xuất hiện khi có bộ đếm ngược không. Nếu không, lượt sẽ xuất hiện khi nhấn nút tiếp.
+lenum.wave = Số lượt hiện tại. Có thể là bất kỳ thứ gì trong chế độ không phải lượt tấn công.
+lenum.currentwavetime = Đếm ngược của lượt tính bằng tích-tắc.
+lenum.waves = Liệu có thể tạo ra lượt hay không.
+lenum.wavesending = Có thể triệu hồi lượt thủ công bằng nút lượt tiếp không.
+lenum.attackmode = Xác định xem chế độ chơi có phải là chế độ tấn công hay không.
+lenum.wavespacing = Thời gian giữa các lượt tính bằng tích-tắc.
+lenum.enemycorebuildradius = Khu vực cấm xây dựng xung quanh bán kính lõi của kẻ địch.
+lenum.dropzoneradius = Bán kính quanh khu vực thả của kẻ địch.
+lenum.unitcap = Giới hạn đơn vị cơ bản. Vẫn có thể tăng nhờ vào các khối.
+lenum.lighting = Ánh sáng môi trường có được bật.
+lenum.buildspeed = Hệ số tốc độ xây dựng.
+lenum.unithealth = Độ bền ban đầu của đơn vị.
+lenum.unitbuildspeed = Độ nhanh của tốc độ tạo đơn vị.
+lenum.unitcost = Hệ số của tài nguyên đơn vị dùng để xây.
+lenum.unitdamage = Sát thương đơn vị gây ra.
+lenum.blockhealth = Độ bền ban đầu của khối.
+lenum.blockdamage = Sát thương khối (súng) gây ra.
+lenum.rtsminweight = "Lợi thế" tối thiểu cần có để một đội tấn công. Cao hơn -> thận trọng hơn.
+lenum.rtsminsquad = Quy mô tối thiểu của đội tấn công.
+lenum.maparea = Khu vực bản đồ có thể chơi được. Mọi thứ nằm ngoài khu vực đó sẽ không thể tương tác được.
+lenum.ambientlight = Màu ánh sáng xung quanh. Được sử dụng khi bật đèn.
+lenum.solarmultiplier = Hệ số năng lượng đầu ra của tấm pin mặt trời.
+lenum.dragmultiplier = Hệ số cản của môi trường.
+lenum.ban = Các khối hoặc đơn vị không thể đặt hoặc xây dựng.
+lenum.unban = Bỏ cấm một đơn vị hoặc khối.
diff --git a/core/assets/bundles/bundle_zh_CN.properties b/core/assets/bundles/bundle_zh_CN.properties
index 59c7ca859b..11d63bb863 100644
--- a/core/assets/bundles/bundle_zh_CN.properties
+++ b/core/assets/bundles/bundle_zh_CN.properties
@@ -57,7 +57,7 @@ mods.browser.sortstars = 按星数排序
schematic = 蓝图
schematic.add = 保存蓝图…
schematics = 蓝图
-schematic.search = Search schematics...
+schematic.search = 查找蓝图中…
schematic.replace = 存在同名蓝图,是否覆盖?
schematic.exists = 存在同名蓝图。
schematic.import = 导入蓝图…
@@ -131,6 +131,7 @@ feature.unsupported = 您的设备不支持此特性。
mods.initfailed = [red]⚠[]Mindustry的上一次启动失败了,可能是异常的模组导致的。 \n\n为了防止连续崩溃,[red]所有模组都被禁用了。[]
mods = 模组
+mods.name = Mod:
mods.none = [lightgray]没有找到模组!
mods.guide = 模组制作教程
mods.report = 报告 Bug
@@ -157,7 +158,7 @@ mod.circulardependencies = [red]循环依赖
mod.incompletedependencies = [red]缺失依赖
mod.requiresversion.details = 所需的最低游戏版本:[accent]{0}[]\n您的游戏版本过低。 此模组需要更新的游戏版本(通常是beta/alpha版本)才能工作。
-mod.outdatedv7.details = 此模组与最新版游戏不兼容。 作者必须更新它,并在[accent]mod.json[]文件中写入[accent]minGameVersion: 136[]。
+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 = 此模组由于造成该版本游戏崩溃或其他原因被手动禁用了。 不要使用它。
mod.missingdependencies.details = 缺少前置模组:{0}
mod.erroredcontent.details = 此模组在游戏加载时发生了错误。 请通知模组作者修复它。
@@ -167,7 +168,6 @@ mod.requiresversion = 需要游戏版本: [red]{0}
mod.errors = 读取内容时发生错误。
mod.noerrorplay = [scarlet]您的模组发生了错误。 []禁用相关模组或修复错误后才能进入游戏。
-mod.nowdisabled = [scarlet]“{0}”模组缺少依赖的其他模组:[accent]{1}\n[lightgray]需要先下载上述模组。 \n此模组现在将被自动禁用。
mod.enable = 启用
mod.requiresrestart = 游戏将退出以应用模组修改。
mod.reloadrequired = [scarlet]需要重启
@@ -182,6 +182,15 @@ mod.missing = 此存档包含您最近更新或者尚未安装的模组,加载
mod.preview.missing = 在创意工坊中发布此模组前,您必须添加一张预览图片。 \n请将名为[accent]preview.png[]的图片放入模组文件夹,然后重试。
mod.folder.missing = 只有文件夹形式的模组能在创意工坊上发布。 \n要将模组转换为文件夹,只需将其文件解压缩到文件夹中并删除压缩包,然后重新启动游戏或重新加载模组。
mod.scripts.disable = 您的设备不支持含有脚本的模组,必须禁用相关模组才能进入游戏。
+mod.dependencies.error = [scarlet]Mods are missing dependencies
+mod.dependencies.soft = (optional)
+mod.dependencies.download = Import
+mod.dependencies.downloadreq = Import Required
+mod.dependencies.downloadall = Import All
+mod.dependencies.status = Import Results
+mod.dependencies.success = Successfully downloaded:
+mod.dependencies.failure = Failed to download:
+mod.dependencies.imported = This mod requires dependencies. Download?
about.button = 关于
name = 名字:
@@ -298,13 +307,14 @@ disconnect.error = 连接错误。
disconnect.closed = 连接关闭。
disconnect.timeout = 连接超时。
disconnect.data = 地图加载失败!
+disconnect.snapshottimeout = 接收 UDP 快照时超时。\n这可能是由不稳定的网络或连接引起的。
cantconnect = 无法加入游戏([accent]{0}[])。
connecting = [accent]连接中…
reconnecting = [accent]重新连接中…
connecting.data = [accent]地图加载中…
server.port = 端口:
server.invalidport = 无效的端口!
-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]无法在端口 6567 上打开服务器。[]\n\n确保您的设备或网络上没有其他 Mindustry 服务器正在运行!
server.error = [scarlet]创建服务器错误。
save.new = 新存档
save.overwrite = 确定要覆盖这个存档吗?
@@ -445,11 +455,11 @@ editor.rules = 规则
editor.generation = 生成
editor.objectives = 目标
editor.locales = 本地化语言包
-editor.worldprocessors = World Processors
-editor.worldprocessors.editname = Edit Name
-editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
-editor.worldprocessors.nospace = No free space to place a world processor!\nDid you fill the map with structures? Why would you do this?
-editor.worldprocessors.delete.confirm = Are you sure you want to delete this world processor?\n\nIf it is surrounded by walls, it will be replaced by an environmental wall.
+editor.worldprocessors = 世界处理器
+editor.worldprocessors.editname = 命名
+editor.worldprocessors.none = [lightgray]未找到世界处理器!\n请在地图编辑器中添加或使用下方的\ue813 添加按钮。
+editor.worldprocessors.nospace = 没有足够空间放置世界处理器!\n您是否在地图上布满了建筑?为什么要这样做?
+editor.worldprocessors.delete.confirm = 你确定要删除这个世界处理器吗?\n\n如果其周围有环境墙体,将由环境墙体取代。
editor.ingame = 游戏内编辑
editor.playtest = 游戏内测试
editor.publish.workshop = 上传到创意工坊
@@ -466,6 +476,7 @@ editor.shiftx = x轴平移
editor.shifty = y轴平移
workshop = 创意工坊
waves.title = 波次
+waves.team = Team
waves.remove = 移除
waves.every = 每
waves.waves = 波
@@ -507,7 +518,7 @@ editor.default = [lightgray]<默认>
details = 详情…
edit = 编辑…
variables = 变量
-logic.clear.confirm = Are you sure you want to clear all code from this processor?
+logic.clear.confirm = 您确定要清除该处理器的所有代码吗?
logic.globals = 内置变量
editor.name = 名称:
editor.spawn = 生成单位
@@ -723,14 +734,18 @@ loadout = 装运
resources = 资源
resources.max = 最大
bannedblocks = 禁用建筑
+unbannedblocks = Unbanned Blocks
objectives = 任务目标
bannedunits = 禁用单位
+unbannedunits = Unbanned Units
bannedunits.whitelist = 仅启用选中的单位
bannedblocks.whitelist = 仅启用选中的建筑
addall = 全部装运
launch.from = 发射自:[accent]{0}
launch.capacity = 装运物品: [accent]{0}
launch.destination = 目的地:{0}
+landing.sources = Source Sectors: [accent]{0}[]
+landing.import = Max Total Import: {0}[accent]{1}[lightgray]/min
configure.invalid = 数量必须在0到{0}之间。
add = 添加…
guardian = Boss
@@ -745,7 +760,7 @@ error.mapnotfound = 找不到地图文件!
error.io = 网络I/O错误。
error.any = 未知网络错误。
error.bloom = 未能初始化光效。 \n您的设备可能不支持。
-error.moddex = Mindustry is unable to load this mod.\nYour device is blocking import of Java mods due to recent changes in Android.\nThere is no known workaround to this issue.
+error.moddex = Mindustry 无法加载此模组。\n您的设备由于最近的 Android 系统更新,正在阻止导入 Java 模组。\n目前对此问题尚无已知的解决方法
weather.rain.name = 降雨
weather.snowing.name = 降雪
@@ -770,7 +785,9 @@ sectors.stored = 贮存:
sectors.resume = 继续
sectors.launch = 发射
sectors.select = 选择
+sectors.launchselect = Select Launch Destination
sectors.nonelaunch = [lightgray]无(自动销毁)
+sectors.redirect = Redirect Launch Pads
sectors.rename = 重命名区块
sectors.enemybase = [scarlet]敌方基地
sectors.vulnerable = [scarlet]易受攻击
@@ -802,6 +819,10 @@ difficulty.easy = Easy
difficulty.normal = Normal
difficulty.hard = Hard
difficulty.eradication = Eradication
+difficulty.enemyHealthMultiplier = Enemy Health: {0}
+difficulty.enemySpawnMultiplier = Enemy Amount: {0}
+difficulty.waveTimeMultiplier = Wave Timer: {0}
+difficulty.nomodifiers = [lightgray](No modifiers)
planets = 行星
@@ -824,19 +845,19 @@ sector.fungalPass.name = 真菌通道
sector.biomassFacility.name = 生物质合成区
sector.windsweptIslands.name = 风吹群岛
sector.extractionOutpost.name = 萃取前哨
-sector.facility32m.name = Facility 32 M
-sector.taintedWoods.name = Tainted Woods
-sector.infestedCanyons.name = Infested Canyons
+sector.facility32m.name = 工业区 32 M
+sector.taintedWoods.name = 孢染丛林
+sector.infestedCanyons.name = 菌疫峡谷
sector.planetaryTerminal.name = 行星发射终端
sector.coastline.name = 边际海湾
sector.navalFortress.name = 海军要塞
-sector.polarAerodrome.name = Polar Aerodrome
-sector.atolls.name = Atolls
-sector.testingGrounds.name = Testing Grounds
-sector.seaPort.name = Sea Port
-sector.weatheredChannels.name = Weathered Channels
-sector.mycelialBastion.name = Mycelial Bastion
-sector.frontier.name = Frontier
+sector.polarAerodrome.name = 极地空港
+sector.atolls.name = 环礁群岛
+sector.testingGrounds.name = 实验禁区
+sector.seaPort.name = 边海港口
+sector.weatheredChannels.name = 风化海峡
+sector.mycelialBastion.name = 菌丝堡垒
+sector.frontier.name = 边陲哨站
sector.groundZero.description = 踏上旅程的最佳位置。 这里的敌人威胁很小,但资源也少。\n\n尽你所能收集铅和铜,出发吧!
sector.frozenForest.description = 一个靠近山脉的地方。 哪怕是在这里,也有了孢子扩散的痕迹。\n连极寒也无法长久地约束它们。\n\n开始运用电力,建造火力发电机并学会使用修理器。
@@ -856,8 +877,8 @@ sector.impact0078.description = 最初进入这个星系的星际运输船,残
sector.planetaryTerminal.description = 最终目标。\n这座滨海基地有一个可以将核心发射到其他行星的建筑,防卫森严。\n\n制造海军单位,尽快消灭敌人,研究发射建筑。
sector.coastline.description = 这里探测到了海军单位科技的遗迹。 击退敌人的进攻,占领区块,获取技术。
sector.navalFortress.description = 敌人在一个有天然防御屏障的偏远岛屿上建立了基地。 摧毁它,并研究高级海军科技。
-sector.cruxscape.name = Cruxscape
-sector.geothermalStronghold.name = Geothermal Stronghold
+sector.cruxscape.name = 赤色总部
+sector.geothermalStronghold.name = 熔石要塞
sector.facility32m.description = WIP, map submission by Stormride_R
sector.taintedWoods.description = WIP, map submission by Stormride_R
sector.atolls.description = WIP, map submission by Stormride_R
@@ -1034,6 +1055,7 @@ stat.buildspeedmultiplier = 建造速度倍率
stat.reactive = 反应
stat.immunities = 免疫
stat.healing = 治疗
+stat.efficiency = [stat]{0}% Efficiency
ability.forcefield = 力墙场
ability.forcefield.description = 投射一个能吸收子弹的力场护盾
@@ -1081,6 +1103,7 @@ ability.stat.buildtime = [stat]{0} 秒[lightgray] 建造时间
bar.onlycoredeposit = 仅核心可丢入资源
bar.drilltierreq = 需要更高级的钻头
+bar.nobatterypower = Insufficieny Battery Power
bar.noresources = 资源不足
bar.corereq = 需要核心基座
bar.corefloor = 需要核心地板
@@ -1089,6 +1112,7 @@ bar.drillspeed = 挖掘速度:{0}/秒
bar.pumpspeed = 泵送速度:{0}/秒
bar.efficiency = 效率:{0}%
bar.boost = 超速:+{0}%
+bar.powerbuffer = Battery Power: {0}/{1}
bar.powerbalance = 电力:{0}/秒
bar.powerstored = 电力储存:{0}/{1}
bar.poweramount = 电力:{0}
@@ -1099,6 +1123,7 @@ bar.capacity = 容量:{0}
bar.unitcap = {0} {1}/{2}
bar.liquid = 液体
bar.heat = 热量
+bar.cooldown = Cooldown
bar.instability = 不稳定性
bar.heatamount = 热量: {0}
bar.heatpercent = 热量: {0} ({1}%)
@@ -1123,6 +1148,7 @@ bullet.interval = [stat]{0}/秒[lightgray] 分裂子弹:
bullet.frags = [stat]{0}[lightgray]x分裂子弹:
bullet.lightning = [stat]{0}[lightgray]x闪电~[stat]{1}[lightgray]伤害
bullet.buildingdamage = [stat]{0}%[lightgray]对建筑伤害
+bullet.shielddamage = [stat]{0}%[lightgray] shield damage
bullet.knockback = [stat]{0}[lightgray]击退
bullet.pierce = [stat]{0}[lightgray]x穿透
bullet.infinitepierce = [stat]无限穿透
@@ -1149,6 +1175,7 @@ unit.minutes = 分
unit.persecond = /秒
unit.perminute = /分
unit.timesspeed = x速度
+unit.multiplier = x
unit.percent = %
unit.shieldhealth = 护盾容量
unit.items = 物品
@@ -1165,8 +1192,8 @@ category.items = 物品
category.crafting = 输入/输出
category.function = 功能
category.optional = 强化(可选)
-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 = 始终播放音乐
+setting.alwaysmusic.description = 启用时,音乐将在游戏中始终循环播放。\n禁用时,音乐仅会在随机间隔播放。
setting.skipcoreanimation.name = 跳过核心发射与着陆动画
setting.landscape.name = 锁定横屏
setting.shadows.name = 影子
@@ -1225,11 +1252,13 @@ setting.mutemusic.name = 禁用音乐
setting.sfxvol.name = 音效音量
setting.mutesound.name = 禁用音效
setting.crashreport.name = 发送匿名的崩溃报告
+setting.communityservers.name = 获取社区服务器列表
setting.savecreate.name = 自动创建存档
setting.steampublichost.name = 公共游戏可见性
setting.playerlimit.name = 玩家数量限制
setting.chatopacity.name = 聊天界面不透明度
setting.lasersopacity.name = 电力连接线不透明度
+setting.unitlaseropacity.name = 单位采矿光束不透明度
setting.bridgeopacity.name = 桥梁不透明度
setting.playerchat.name = 显示玩家聊天气泡
setting.showweather.name = 显示天气效果
@@ -1238,6 +1267,9 @@ setting.macnotch.name = 立陶宛語
setting.macnotch.description = 需要重新启动
steam.friendsonly = 仅限好友
steam.friendsonly.tooltip = 是否只有 Steam 好友才能加入您的游戏。\n取消选中此选项将使您的游戏公开 - 任何人都可以加入。
+setting.maxmagnificationmultiplierpercent.name = Min Camera Distance
+setting.minmagnificationmultiplierpercent.name = Max Camera Distance
+setting.minmagnificationmultiplierpercent.description = High values may cause performance issues.
public.beta = 请注意,测试版的游戏不能公开可见。
uiscale.reset = UI缩放比例已更改。\n点击“确定”接受更改。\n[accent]{0}[]秒后[scarlet]将自动退出并还原设置。
uiscale.cancel = 取消并退出
@@ -1272,17 +1304,18 @@ keybind.unit_stance_hold_fire.name = 单位姿态:停火
keybind.unit_stance_pursue_target.name = 单位姿态:追逐目标
keybind.unit_stance_patrol.name = 单位姿态:巡逻
keybind.unit_stance_ram.name = 单位姿态:冲锋
-keybind.unit_command_move.name = Unit Command: Move
-keybind.unit_command_repair.name = Unit Command: Repair
-keybind.unit_command_rebuild.name = Unit Command: Rebuild
-keybind.unit_command_assist.name = Unit Command: Assist
-keybind.unit_command_mine.name = Unit Command: Mine
-keybind.unit_command_boost.name = Unit Command: Boost
-keybind.unit_command_load_units.name = Unit Command: Load Units
-keybind.unit_command_load_blocks.name = Unit Command: Load Blocks
-keybind.unit_command_unload_payload.name = Unit Command: Unload Payload
-keybind.unit_command_enter_payload.name = Unit Command: Enter Payload
+keybind.unit_command_move.name = 单位命令: 移动
+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_load_units.name = 单位命令: 装载单位
+keybind.unit_command_load_blocks.name = 单位命令: 转载建筑
+keybind.unit_command_unload_payload.name = 单位命令: 卸载有效载荷
+keybind.unit_command_enter_payload.name = 单位命令: 进入入有效载荷
keybind.unit_command_loop_payload.name = Unit Command: Loop Unit Transfer
+
keybind.rebuild_select.name = 重建建筑
keybind.schematic_select.name = 框选建筑
keybind.schematic_menu.name = 蓝图目录
@@ -1318,6 +1351,7 @@ keybind.shoot.name = 射击
keybind.zoom.name = 缩放
keybind.menu.name = 菜单
keybind.pause.name = 暂停
+keybind.skip_wave.name = Skip Wave
keybind.pause_building.name = 暂停/继续建造
keybind.minimap.name = 打开小地图
keybind.planet_map.name = 打开行星地图
@@ -1358,18 +1392,19 @@ rules.disableworldprocessors = 禁用世界处理器
rules.schematic = 允许使用蓝图
rules.wavetimer = 波次计时器
rules.wavesending = 波次可跳波
-rules.allowedit = Allow Editing Rules
-rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu.
-rules.alloweditworldprocessors = Allow Editing World Processors
-rules.alloweditworldprocessors.info = When enabled, world logic blocks can be placed and edited even outside the editor.
+rules.allowedit = 允许编辑规则
+rules.allowedit.info = 启用后,玩家可以通过暂停菜单左下角的按钮在游戏中编辑规则。
+rules.alloweditworldprocessors = 允许编辑世界处理器
+rules.alloweditworldprocessors.info = 启用后,世界逻辑块可以即使在编辑器外也能被放置和编辑。
+
rules.waves = 波次
-rules.airUseSpawns = Air units use spawn points
+rules.airUseSpawns = 空军单位刷怪点
rules.attack = 进攻模式
rules.buildai = 基础建筑者 AI
rules.buildaitier = 建筑者 AI 等级
rules.rtsai = RTS AI
rules.rtsai.campaign = RTS Attack AI
-rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner.
+rules.rtsai.campaign.info = 在攻击地图中,使单位能够组队并以更智能的方式攻击玩家基地。
rules.rtsminsquadsize = 最小部队规模
rules.rtsmaxsquadsize = 最大部队规模
rules.rtsminattackweight = 最低进攻强度
@@ -1385,12 +1420,14 @@ rules.unitcostmultiplier = 单位生产花费倍率
rules.unithealthmultiplier = 单位生命倍率
rules.unitdamagemultiplier = 单位伤害倍率
rules.unitcrashdamagemultiplier = 单位坠毁伤害倍率
+rules.unitminespeedmultiplier = Unit Mine Speed Multiplier
rules.solarmultiplier = 太阳能发电倍率
rules.unitcapvariable = 核心可增加单位上限
rules.unitpayloadsexplode = 单位携带载荷与单位一起爆炸
rules.unitcap = 基础单位上限
rules.limitarea = 限制地图有效区域
rules.enemycorebuildradius = 敌方核心不可建造区域半径:[lightgray](格)
+rules.extracorebuildradius = Extra No-Build Radius:[lightgray] (tiles)
rules.wavespacing = 波次间隔:[lightgray](秒)
rules.initialwavespacing = 第一波间隔:[lightgray](秒)
rules.buildcostmultiplier = 建造花费倍率
@@ -1412,9 +1449,12 @@ rules.title.teams = 队伍
rules.title.planet = 星球
rules.lighting = 环境光
rules.fog = 战争迷雾
-rules.invasions = Enemy Sector Invasions
-rules.showspawns = Show Enemy Spawns
-rules.randomwaveai = Unpredictable Wave AI
+rules.invasions = 敌方区块入侵
+rules.legacylaunchpads = 旧版发射台机制
+rules.legacylaunchpads.info = 允许在没有着陆垫的情况下使用发射台,如同 7.0 版本。
+landingpad.legacy.disabled = [scarlet]\ue815 禁用[lightgray] (旧版发射台已启用)
+rules.showspawns = 显示敌方刷怪点
+rules.randomwaveai = 不可预测的波次 AI
rules.fire = 允许火焰产生并蔓延
rules.anyenv = <任意>
rules.explosions = 建筑/单位爆炸伤害
@@ -1423,9 +1463,10 @@ rules.weather = 天气
rules.weather.frequency = 周期:
rules.weather.always = 永久
rules.weather.duration = 时长:
-rules.randomwaveai.info = Makes units spawned in waves target random structures instead of directly attacking the core or power generators.
-rules.placerangecheck.info = Prevents players from placing anything near enemy buildings. When trying to place a turret, the range is increased, so the turret will not be able to reach the enemy.
-rules.onlydepositcore.info = Prevents units from depositing items into any buildings except cores.
+rules.randomwaveai.info = 使波次生成的单位攻击随机结构,而不是直接攻击核心或发电机组。
+rules.placerangecheck.info = 防止玩家在敌方建筑附近放置任何东西。在尝试放置炮塔时,范围会增大,因此炮塔无法接近敌人。
+rules.onlydepositcore.info = 阻止单位向除核心区以外的任何建筑物存放物品。
+
content.item.name = 物品
content.liquid.name = 液体
@@ -1433,7 +1474,7 @@ content.unit.name = 单位
content.block.name = 建筑
content.status.name = 状态效果
content.sector.name = 战役区块
-content.team.name = 派系
+content.team.name = 队伍
wallore = (墙)
@@ -1649,7 +1690,7 @@ block.inverted-sorter.name = 反向分类器
block.message.name = 信息板
block.reinforced-message.name = 强化信息板
block.world-message.name = 世界信息板
-block.world-switch.name = World Switch
+block.world-switch.name = 世界开关
block.illuminator.name = 照明器
block.overflow-gate.name = 溢流门
block.underflow-gate.name = 反向溢流门
@@ -1733,6 +1774,8 @@ block.meltdown.name = 熔毁
block.foreshadow.name = 厄兆
block.container.name = 容器
block.launch-pad.name = 发射台
+block.advanced-launch-pad.name = 新发射台
+block.landing-pad.name = 着陆台
block.segment.name = 裂解
block.ground-factory.name = 陆军工厂
block.air-factory.name = 空军工厂
@@ -1790,6 +1833,8 @@ block.arkyic-vent.name = 芳石喷口
block.yellow-stone-vent.name = 黄石喷口
block.red-stone-vent.name = 红石喷口
block.crystalline-vent.name = 晶石喷口
+block.stone-vent.name = Stone Vent
+block.basalt-vent.name = Basalt Vent
block.redmat.name = 红地垫
block.bluemat.name = 蓝地垫
block.core-zone.name = 核心区
@@ -1829,7 +1874,7 @@ block.electric-heater.name = 电制热机
block.slag-heater.name = 矿渣制热机
block.phase-heater.name = 相织制热机
block.heat-redirector.name = 热量传输机
-block.small-heat-redirector.name = Small Heat Redirector
+block.small-heat-redirector.name = 小型热量传输机
block.heat-router.name = 热量路由器
block.slag-incinerator.name = 矿渣焚化炉
block.carbide-crucible.name = 碳化物坩埚
@@ -1877,7 +1922,7 @@ block.chemical-combustion-chamber.name = 化学燃烧室
block.pyrolysis-generator.name = 热解发生器
block.vent-condenser.name = 排气冷凝器
block.cliff-crusher.name = 墙壁粉碎机
-block.large-cliff-crusher.name = Advanced Cliff Crusher
+block.large-cliff-crusher.name = 高级墙壁粉碎机
block.plasma-bore.name = 等离子钻机
block.large-plasma-bore.name = 大型等离子钻机
block.impact-drill.name = 冲击钻头
@@ -1944,52 +1989,52 @@ hint.respawn = 要以初始飞船的形式重生,请按[accent][[V][]键。
hint.respawn.mobile = 您正在控制某个单位或建筑。 要以初始飞船的形式重生,请[accent]点击左上方的图标(您的单位/建筑图标)。[]
hint.desktopPause = 按[accent][[空格][]键暂停或恢复游戏。
hint.breaking = 按住[accent]右键[]拖动以拆除建筑。
-hint.breaking.mobile = 激活右下角的\ue817[accent]锤子[]并点击以拆除建筑。 \n\n长按一秒后拖动,可拆除范围内多个建筑。
+hint.breaking.mobile = 激活右下角的:hammer:[accent]锤子[]并点击以拆除建筑。 \n\n长按一秒后拖动,可拆除范围内多个建筑。
hint.blockInfo = 要查看建筑信息,可以先在[accent]建造菜单[]中选择建筑,然后点击右侧的[accent][[?][]按钮。
hint.derelict = [accent]废墟[]建筑是已废弃基地的残骸。 \n\n可以[accent]拆除[]这些建筑获取资源。
-hint.research = 点击\ue875[accent]科技树[]按钮研究新科技。
-hint.research.mobile = 点击\ue88c[accent]菜单[]中的\ue875[accent]科技树[]按钮以研究新科技。
+hint.research = 点击:tree:[accent]科技树[]按钮研究新科技。
+hint.research.mobile = 点击:menu:[accent]菜单[]中的:tree:[accent]科技树[]按钮以研究新科技。
hint.unitControl = 按住[accent][[L-ctrl][]键并[accent]点击[]己方单位或炮塔进行控制。
hint.unitControl.mobile = [accent][双击][]己方单位或炮塔进行控制。
hint.unitSelectControl = 按[accent]L-shift[]键进入[accent]指挥模式[]以控制单位。\n在指挥模式下,点击并拖动框选单位。[accent]右键[]命令单位移动或攻击。
hint.unitSelectControl.mobile = 按左下角的[accent]指挥[]按钮进入[accent]指挥模式[]以控制单位。\n在指挥模式下,长按并拖动框选单位。[accent]点击[]命令单位移动或攻击。
-hint.launch = 一旦收集了足够的资源,您就可以通过右下角的\ue827[accent]地图[]选择附近的区块[accent]发射[]核心。
-hint.launch.mobile = 一旦收集到足够的资源,您就可以通过\ue88c[accent]菜单[]中的\ue827[accent]地图[]选择附近的区块[accent]发射[]核心。
+hint.launch = 一旦收集了足够的资源,您就可以通过右下角的:map:[accent]地图[]选择附近的区块[accent]发射[]核心。
+hint.launch.mobile = 一旦收集到足够的资源,您就可以通过:menu:[accent]菜单[]中的:map:[accent]地图[]选择附近的区块[accent]发射[]核心。
hint.schematicSelect = 按住[accent][[F][]键用鼠标框选建筑以复制粘贴。 \n\n[accent][鼠标中键][]复制单个建筑。
hint.rebuildSelect = 按住[accent][[B][]用鼠标框选被摧毁的建筑以自动重建。
-hint.rebuildSelect.mobile = 选择\ue874复制按钮,然后点击\ue80f重建按钮并拖动以选中被摧毁的建筑。\n这将自动重建这些建筑。
+hint.rebuildSelect.mobile = 选择:copy:复制按钮,然后点击:wrench:重建按钮并拖动以选中被摧毁的建筑。\n这将自动重建这些建筑。
hint.conveyorPathfind = 按住[accent][[L-Ctrl][]键并拖动传送带,使其自动寻路。
-hint.conveyorPathfind.mobile = 启用\ue844[accent]传送带自动寻路[]后,拖动传送带可使其自动寻路。
+hint.conveyorPathfind.mobile = 启用:diagonal:[accent]传送带自动寻路[]后,拖动传送带可使其自动寻路。
hint.boost = 按住[accent][[L-Shift][]控制当前单位助推,可飞越障碍物。 \n\n只有一部分地面单位有助推功能。
hint.payloadPickup = 按[accent][[[]键拾取小型建筑或单位作为载荷。
hint.payloadPickup.mobile = [accent]长按[]拾取一个小型建筑或单位作为载荷。
hint.payloadDrop = 按[accent]][]键放下载荷。
hint.payloadDrop.mobile = [accent]长按[]一个空的位置将载荷放在那里。
hint.waveFire = [accent]波浪[]炮塔以水作弹药时,会自动扑灭附近的火焰。
-hint.generator = \uf879[accent]火力发电机[]燃煤发电,并将电力输送至相邻建筑。 \n\n用\uf87f[accent]电力节点[]可以扩展电力输送范围。
-hint.guardian = [accent]Boss[]单位装甲厚重。 [accent]铜[]和[accent]铅[]这类较弱的子弹对其[scarlet]作用不佳[]。 \n\n使用高级别炮塔或使用\uf835[accent]石墨[]作为\uf861双管炮及\uf859齐射炮的弹药来消灭Boss。
-hint.coreUpgrade = 核心可以通过[accent]在上面覆盖更高等级的核心[]进行升级。 \n\n在\uf869[accent]初代核心[]上放置一个\uf868[accent]次代核心[]。 确保周围没有障碍物。
+hint.generator = :combustion-generator:[accent]火力发电机[]燃煤发电,并将电力输送至相邻建筑。 \n\n用:power-node:[accent]电力节点[]可以扩展电力输送范围。
+hint.guardian = [accent]Boss[]单位装甲厚重。 [accent]铜[]和[accent]铅[]这类较弱的子弹对其[scarlet]作用不佳[]。 \n\n使用高级别炮塔或使用:graphite:[accent]石墨[]作为:duo:双管炮及:salvo:齐射炮的弹药来消灭Boss。
+hint.coreUpgrade = 核心可以通过[accent]在上面覆盖更高等级的核心[]进行升级。 \n\n在:core-shard:[accent]初代核心[]上放置一个:core-foundation:[accent]次代核心[]。 确保周围没有障碍物。
hint.presetLaunch = 灰色的[accent]着陆区块[],如[accent]冰冻森林[],从其他任何地方发射都可以到达,不需要先占领邻近的区块。 \n\n[accent]数字编号的区块[],比如这个,可以[accent]选择性[]占领。
hint.presetDifficulty = 这个区块受敌人[scarlet]威胁程度很高[]。 \n解锁适当的科技,并做好充分准备,否则[accent]不建议[]向这里发射。
hint.coreIncinerate = 核心内一种物品达到容量上限后,同种物品再进入时会被[accent]销毁[]。
hint.factoryControl = 如果要设置某单位工厂的[accent]集合点[],在指挥模式下点击该单位工厂,然后右键点击某位置,由它制造的单位将会自动移动到那里。
hint.factoryControl.mobile = 如果要设置某单位工厂的[accent]集合点[],在指挥模式下点击该单位工厂,然后再点击某位置,由它制造的单位将会自动移动到那里。
-gz.mine = 接近\uf8c4[accent]铜矿[]并点击以手动开采。
-gz.mine.mobile = 接近\uf8c4[accent]铜矿[]并点击以手动开采。
-gz.research = 打开\ue875科技树。\n研究\uf870[accent]机械钻头[],然后在右下角的菜单中将其选中。\n点击铜矿放置钻头。
-gz.research.mobile = 打开\ue875科技树。\n研究\uf870[accent]机械钻头[],然后在右下角的菜单中将其选中。\n点击铜矿放置钻头。\n\n点击右下角的\ue800[accent]勾[]以确认。
-gz.conveyors = 研究并放置\uf896[accent]传送带[]\n将钻头挖掘的矿物移至核心。\n\n点击并拖动以连续放置传送带。\n滚动[accent]鼠标滚轮[]以转向。
-gz.conveyors.mobile = 研究并放置\uf896[accent]传送带[]\n将钻头挖掘的矿物移至核心。\n\n长按一秒,然后拖动以连续放置传送带。
+gz.mine = 接近:ore-copper:[accent]铜矿[]并点击以手动开采。
+gz.mine.mobile = 接近:ore-copper:[accent]铜矿[]并点击以手动开采。
+gz.research = 打开:tree:科技树。\n研究:mechanical-drill:[accent]机械钻头[],然后在右下角的菜单中将其选中。\n点击铜矿放置钻头。
+gz.research.mobile = 打开:tree:科技树。\n研究:mechanical-drill:[accent]机械钻头[],然后在右下角的菜单中将其选中。\n点击铜矿放置钻头。\n\n点击右下角的\ue800[accent]勾[]以确认。
+gz.conveyors = 研究并放置:conveyor:[accent]传送带[]\n将钻头挖掘的矿物移至核心。\n\n点击并拖动以连续放置传送带。\n滚动[accent]鼠标滚轮[]以转向。
+gz.conveyors.mobile = 研究并放置:conveyor:[accent]传送带[]\n将钻头挖掘的矿物移至核心。\n\n长按一秒,然后拖动以连续放置传送带。
gz.drills = 扩大挖掘规模。\n放置更多的机械钻头。\n挖掘100铜。
-gz.lead = \uf837[accent]铅[]是另一种常用资源。\n用钻头挖掘铅矿。
-gz.moveup = \ue804扩张以推进任务。
-gz.turrets = 研究并放置2个\uf861[accent]双管[]保卫核心。\n双管需要传送带供给\uf838[accent]弹药[]。
+gz.lead = :lead:[accent]铅[]是另一种常用资源。\n用钻头挖掘铅矿。
+gz.moveup = :up:扩张以推进任务。
+gz.turrets = 研究并放置2个:duo:[accent]双管[]保卫核心。\n双管需要传送带供给\uf838[accent]弹药[]。
gz.duoammo = 用传送带给双管供给[accent]铜[]。
-gz.walls = [accent]墙[]可以防止建筑受到伤害。\n在炮塔周围放置一些\uf8ae[accent]铜墙[]。
+gz.walls = [accent]墙[]可以防止建筑受到伤害。\n在炮塔周围放置一些:copper-wall:[accent]铜墙[]。
gz.defend = 敌人来袭,准备防御。
-gz.aa = 普通炮塔难以快速击落空中单位。\n\uf860[accent]分裂[]防空能力出色,但使用[accent]铅[]弹药。
+gz.aa = 普通炮塔难以快速击落空中单位。\n:scatter:[accent]分裂[]防空能力出色,但使用[accent]铅[]弹药。
gz.scatterammo = 用传送带给分裂供给[accent]铅[]。
gz.supplyturret = [accent]给炮塔供弹
gz.zone1 = 这是敌人的出生点。
@@ -1997,31 +2042,31 @@ gz.zone2 = 波次开始时,范围内的所有建筑都会被摧毁。
gz.zone3 = 波次即将开始。\n做好准备。
gz.finish = 建造更多炮塔,挖掘更多资源,\n击退所有波次以[accent]占领区块[]。
-onset.mine = 点击墙壁上的\uf748[accent]铍矿[]以手动开采。\n\n使用[accent][[WASD]移动。
-onset.mine.mobile = 点击墙壁上的\uf748[accent]铍矿[]以手动开采。
-onset.research = 打开\ue875科技树。\n研究\uf73e[accent]涡轮冷凝器[],并放置在喷口上。\n它可以产生[accent]电力[]。
-onset.bore = 研究并放置\uf741[accent]等离子钻机[]。\n它可以自动挖掘墙上的资源。
-onset.power = 为了给等离子钻机提供[accent]电力[],研究并放置一个\uf73d[accent]激光节点[]。\n它会连接涡轮冷凝器与等离子钻机。
-onset.ducts = 研究并放置\uf799[accent]物品管道[]将等离子钻机挖掘的矿物移至核心。\n\n点击并拖动以连续放置物品管道。\n滚动[accent]鼠标滚轮[]以转向。
-onset.ducts.mobile = 研究并放置\uf799[accent]物品管道[]将等离子钻机挖掘的矿物移至核心。\n\n长按一秒,然后拖动以连续放置物品管道。
+onset.mine = 点击墙壁上的:beryllium:[accent]铍矿[]以手动开采。\n\n使用[accent][[WASD]移动。
+onset.mine.mobile = 点击墙壁上的:beryllium:[accent]铍矿[]以手动开采。
+onset.research = 打开:tree:科技树。\n研究:turbine-condenser:[accent]涡轮冷凝器[],并放置在喷口上。\n它可以产生[accent]电力[]。
+onset.bore = 研究并放置:plasma-bore:[accent]等离子钻机[]。\n它可以自动挖掘墙上的资源。
+onset.power = 为了给等离子钻机提供[accent]电力[],研究并放置一个:beam-node:[accent]激光节点[]。\n它会连接涡轮冷凝器与等离子钻机。
+onset.ducts = 研究并放置:duct:[accent]物品管道[]将等离子钻机挖掘的矿物移至核心。\n\n点击并拖动以连续放置物品管道。\n滚动[accent]鼠标滚轮[]以转向。
+onset.ducts.mobile = 研究并放置:duct:[accent]物品管道[]将等离子钻机挖掘的矿物移至核心。\n\n长按一秒,然后拖动以连续放置物品管道。
onset.moremine = 扩大挖掘规模。\n放置更多的等离子钻机,并用激光节点与物品管道来使它们正常工作。\n挖掘200铍。
-onset.graphite = 要建造更高级的建筑,需要\uf835[accent]石墨[]。\n使用等离子钻机挖掘石墨。
-onset.research2 = 开始研究[accent]工厂[]。\n研究\uf74d[accent]墙壁粉碎机[]和\uf779[accent]电弧硅炉[]。
-onset.arcfurnace = 电弧硅炉需要\uf834[accent]沙[]与\uf835[accent]石墨[]以冶炼\uf82f[accent]硅[]。\n它也需要[accent]电力[]。
-onset.crusher = 使用\uf74d[accent]墙壁粉碎机[]挖掘沙。
-onset.fabricator = 使用[accent]单位[]探索地图,进行防御,发动攻击。\n研究并放置一个\uf6a2[accent]坦克制造厂[]。
+onset.graphite = 要建造更高级的建筑,需要:graphite:[accent]石墨[]。\n使用等离子钻机挖掘石墨。
+onset.research2 = 开始研究[accent]工厂[]。\n研究:cliff-crusher:[accent]墙壁粉碎机[]和:silicon-arc-furnace:[accent]电弧硅炉[]。
+onset.arcfurnace = 电弧硅炉需要:sand:[accent]沙[]与:graphite:[accent]石墨[]以冶炼:silicon:[accent]硅[]。\n它也需要[accent]电力[]。
+onset.crusher = 使用:cliff-crusher:[accent]墙壁粉碎机[]挖掘沙。
+onset.fabricator = 使用[accent]单位[]探索地图,进行防御,发动攻击。\n研究并放置一个:tank-fabricator:[accent]坦克制造厂[]。
onset.makeunit = 生产单位。\n点击"?"以显示生产单位所需资源。
-onset.turrets = 使用单位防御很有效,但合理使用[accent]炮塔[]可以提供更好的防御力。\n放置一个\uf6eb[accent]撕裂[]。\n炮塔需要供给\uf748[accent]弹药[]。
+onset.turrets = 使用单位防御很有效,但合理使用[accent]炮塔[]可以提供更好的防御力。\n放置一个:breach:[accent]撕裂[]。\n炮塔需要供给:beryllium:[accent]弹药[]。
onset.turretammo = 给炮塔供给[accent]铍[]。
-onset.walls = [accent]墙[]可以防止建筑受到伤害。\n在炮塔周围放置一些\uf6ee[accent]铍墙[]。
+onset.walls = [accent]墙[]可以防止建筑受到伤害。\n在炮塔周围放置一些:beryllium-wall:[accent]铍墙[]。
onset.enemies = 敌人来袭,准备防御。
onset.defenses = [accent]Set up defenses:[lightgray] {0}
onset.attack = 敌军基地十分脆弱。 发动反攻。
-onset.cores = 你可以在[accent]核心地块[]上建造新的核心。\n新核心的功能类似于前沿基地,且与其他核心共享资源仓库。\n放置一个\uf725核心。
+onset.cores = 你可以在[accent]核心地块[]上建造新的核心。\n新核心的功能类似于前沿基地,且与其他核心共享资源仓库。\n放置一个:core-bastion:核心。
onset.detect = 敌军将在2分钟内发现你。\n设立防御,挖掘矿物,并建造生产设施。
onset.commandmode = 按住[accent]shift[]键进入[accent]指挥模式[]。\n按住[accent]鼠标左键[]框选单位。\n[accent]右键[]指挥所选单位移动或攻击。
onset.commandmode.mobile = 点击左下角的[accent]指挥[]进入[accent]指挥模式[]。\n按住屏幕,[accent]拖动[]框选单位。\n[accent]点击[]指挥所选单位移动或攻击。
-aegis.tungsten = Tungsten can be mined using an [accent]impact drill[].\nThis structure requires [accent]water[] and [accent]power[].
+aegis.tungsten = 钨可以使用[accent]冲击钻[]进行开采。\n该结构需要[accent]水[]和[accent]电力[]。
split.pickup = 核心单位可以拾取一些方块。\n拾取这个[accent]强化容器[]并将其放到[accent]载荷装载器[]中。\n(默认使用快捷键“[”拾取载荷,“]“放下载荷)
split.pickup.mobile = 核心单位可以拾取一些方块。\n拾取这个[accent]强化容器[]并将其放到[accent]载荷装载器[]中。\n(长按以拾取或放下载荷)
@@ -2183,7 +2228,9 @@ block.vault.description = 大量存储各种类型的物品。 可使用装卸
block.container.description = 少量存储各种类型的物品。 可使用装卸器卸载物品。
block.unloader.description = 从周围的建筑卸载指定物品。
block.launch-pad.description = 将货物发射至指定区块。
-block.launch-pad.details = 用于资源点对点运输的亚轨道系统。 载荷仓很脆弱,再入大气时无法保留。
+block.advanced-launch-pad.description = Launches batches of items to selected sectors. Only accepts one item type at a time.
+block.advanced-launch-pad.details = Sub-orbital system for point-to-point transportation of resources.
+block.landing-pad.description = Receives items from launch pads in other sectors. Requires large amounts of water to protect against impacts of landings.
block.duo.description = 交替向敌人发射子弹。
block.scatter.description = 向敌方战机发射铅、 废料或钢化玻璃高射炮弹。
block.scorch.description = 焚烧任何靠近它的地面敌人。 近距离内十分有效。
@@ -2246,7 +2293,7 @@ block.electric-heater.description = 加热朝向的建筑。 需要大量电力
block.slag-heater.description = 加热朝向的建筑。 需要矿渣。
block.phase-heater.description = 加热朝向的建筑。 需要相织布。
block.heat-redirector.description = 将累积的热量传输到其他建筑。
-block.small-heat-redirector.description = Redirects accumulated heat to other blocks.
+block.small-heat-redirector.description = 将累积的热量传输到其他建筑。
block.heat-router.description = 将累积的热量平均分配到其它3个方向。
block.electrolyzer.description = 将水电解为氢和臭氧气体。
block.atmospheric-concentrator.description = 从大气中浓缩氮气。 需要热量。
@@ -2259,7 +2306,7 @@ block.vent-condenser.description = 将排出的水蒸气冷凝成水。 消耗
block.plasma-bore.description = 面向矿壁放置时,以缓慢的速度无限产出物品。 需要少量电力。
block.large-plasma-bore.description = 更大的等离子钻机。 能够开采钨和钍。 需要氢气和电力。
block.cliff-crusher.description = 粉碎墙壁,以缓慢的速度无限产出沙子。 需要电力。 效率因墙的类型而异。
-block.large-cliff-crusher.description = Crushes walls, outputting sand indefinitely. Requires power and ozone. Efficiency varies based on type of wall. Optionally consumes tungsten to increase efficiency.
+block.large-cliff-crusher.description = 粉碎墙壁,持续产出沙子。 需要电力和臭氧。 效率因墙的类型而异。 可选消耗钨以提高效率。
block.impact-drill.description = 放置在矿物上时,以缓慢的速度无限产出物品。 需要电力和水。
block.eruption-drill.description = 改进过的冲击钻头。 能够开采钍。 需要氢。
block.reinforced-conduit.description = 向前传输流体。 不接受侧面的非导管输入。
@@ -2292,6 +2339,7 @@ block.unit-cargo-loader.description = 建造货运无人机。 无人机通过
block.unit-cargo-unload-point.description = 作为货运无人机的卸货点。接受需求的物品。
block.beam-node.description = 向其他互相垂直的节点传输电力。 存储少量电力。
block.beam-tower.description = 向其他互相垂直的节点传输电力。 存储大量电力。 连接距离远。
+block.beam-link.description = Transmits power over vast distances.\nOnly capable of connecting to adjacent structures or other beam links.
block.turbine-condenser.description = 当放置在喷口上时产生电力。 同时产生少量水。
block.chemical-combustion-chamber.description = 利用芳油和臭氧发电。
block.pyrolysis-generator.description = 使用矿渣热解芳油产生大量电力。 同时产生水。
@@ -2347,10 +2395,10 @@ unit.poly.description = 自动重建被摧毁的建筑,并协助其他单位
unit.mega.description = 自动修复受损建筑。 能够携带建筑和小型地面单位。
unit.quad.description = 向地面目标投掷等离子炸弹,修复己方建筑并摧毁敌人。 能够携带中型地面单位。
unit.oct.description = 用它的再生护盾保护附近的己方单位。 能够携带大多数地面单位。
-unit.risso.description = 向敌人发射一串导弹和子弹。
+unit.risso.description = 向敌人发射一串导弹与子弹。
unit.minke.description = 向敌人发射炮弹和标准子弹。
unit.bryde.description = 向敌人发射远程炮弹和导弹。
-unit.sei.description = 向敌人发射一串导弹和穿甲弹。
+unit.sei.description = 向敌人发射一串导弹与穿甲弹。
unit.omura.description = 向敌人发射远程穿透轨道炮。 自动生产星辉单位。
unit.alpha.description = 保护初代核心,可建造建筑。
unit.beta.description = 保护次代核心,可建造建筑。
@@ -2384,7 +2432,8 @@ unit.emanate.description = 保护卫城核心,可建造建筑。 使用一对
lst.read = 从连接的内存读取数字
lst.write = 向连接的内存写入数字
lst.print = 添加文字到打印缓存\n使用[accent]Print Flush[]后才会真正显示
-lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example"
+lst.printchar = 向打印缓存添加一个 UTF-16 字符或内容图标。\n直到使用 [accent]Print Flush[] 后才会真正显示。
+lst.format = 用一个值替换文本缓冲区中的下一个占位符。\n如果占位符模式无效,则不会执行任何操作。\n占位模式: "{[accent]number 0-9[]}"\n示例:\n[accent]print "test {0}"\n格式 "示例"
lst.draw = 添加绘图操作到绘图缓存\n使用[accent]Draw Flush[]后才会真正显示
lst.drawflush = 将绘图缓存中的[accent]Draw[]队列刷新到显示屏
lst.printflush = 将打印缓存中的[accent]Print[]队列刷新到信息板
@@ -2422,7 +2471,7 @@ lst.getflag = 检查是否设置了全局标志。
lst.setprop = 设置单位或建筑物的属性。
lst.effect = 创建一个粒子效果。
lst.sync = 在网络中同步一个变量。\n最多每秒调用10次。
-lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position.
+lst.playsound = 播放声音。\n音量和声场位置可以是全局值,也可以根据位置计算得出。
lst.makemarker = 在世界中创建一个新的逻辑标记。\n必须提供一个用于标识此标记的ID。\n目前每个世界限制最多20000个标记。
lst.setmarker = 为标记设置属性。\n使用的ID必须与制作标记指令中的相同。
lst.localeprint = 将地图本地化文本属性值添加到文本缓冲区中。\n要在地图编辑器中设置地图本地化包,请检查 [accent]地图信息 > 本地化包[]。\n如果客户端是移动设备,则尝试首先打印以 ".mobile" 结尾的属性。
@@ -2472,6 +2521,7 @@ lenum.shootp = 根据提前量向某个单位或建筑瞄准/射击
lenum.config = 建筑设置,例如分类器所设置的筛选物品种类
lenum.enabled = 建筑是否已启用
laccess.currentammotype = Current ammo item/liquid of a turret.
+laccess.memorycapacity = Number of cells in a memory block.
laccess.color = 照明器发光的颜色
laccess.controller = 单位的控制方\n如果单位由处理器控制,返回对应的处理器\n如果单位在编队中,返回编队的领队\n其他情况,返回单位自身
@@ -2479,6 +2529,7 @@ laccess.dead = 单位或建筑是否已被摧毁或者已失效
laccess.controlled = 若单位的控制方是处理器,返回[accent]@ctrlProcessor[]\n若单位/建筑由玩家控制,返回[accent]@ctrlPlayer[]\n若单位在编队中,返回[accent]@ctrlFormation[]\n其他情况,返回0
laccess.progress = 进度,0到1之间的数值。 \n返回工厂生产、 炮塔装填,或者建筑建造的进度
laccess.speed = 单位的最高速度(格/秒)
+laccess.size = Size of a unit/building or the length of a string.
laccess.id = 单位/块/物品/液体的ID。\n这是 Lookup 的反向操作。
lcategory.unknown = 未知
@@ -2595,7 +2646,7 @@ unitlocate.building = 找到的建筑存入此变量
unitlocate.outx = 存入找到的X轴坐标
unitlocate.outy = 存入找到的Y轴坐标
unitlocate.group = 所搜寻的建筑分类
-playsound.limit = If true, prevents this sound from playing\nif it has already been played in the same frame.
+playsound.limit = 如果为真,则阻止此声音在同一帧内重复播放。
lenum.idle = 原地不动,但继续进行手上的采矿/建造动作\n单位的默认状态
lenum.stop = 停止移动/采矿/建造动作
@@ -2614,7 +2665,7 @@ lenum.payenter = 进入/降落到单位下方的荷载方块中
lenum.flag = 给单位赋予数字形式的标记
lenum.mine = 从某个位置采集矿物
lenum.build = 建造建筑
-lenum.getblock = Fetch building, floor and block type at coordinates.\nUnit must be in range of the position, otherwise null is returned.
+lenum.getblock = 根据坐标获取建筑物、环境块和环境墙体类型。\n单位必须在位置范围内,否则返回空值。
lenum.within = 检查单位是否接近了某个位置
lenum.boost = 开始/停止助推
lenum.flushtext = 如果适用的话,将打印缓冲区的内容刷新到标记。\n如果 fetch 设置为 true,则尝试从地图本地化包或游戏的包中获取属性。
@@ -2624,3 +2675,30 @@ lenum.autoscale = 是否根据玩家的缩放级别缩放标记。
lenum.posi = 索引位置,用于线和四边形标记,索引零表示第一个位置。
lenum.uvi = 纹理的位置范围从零到一,用于四边形标记。
lenum.colori = 索引位置,用于线和四边形标记,索引零表示第一个颜色。
+
+lenum.wavetimer = 波次是否自动出现在计时器上。如果没有,按下播放按钮时会出现波次
+lenum.wave = 当前波数,可以是非波次模式下的任何值
+lenum.currentwavetime = 波次倒计时(以tick为单位)
+lenum.waves = 波次是否可以生成
+lenum.wavesending = 是否可以通过播放按钮手动生成波次
+lenum.attackmode = 确定游戏模式是否为攻击模式
+lenum.wavespacing = 波形之间的时间(以tick为单位)
+lenum.enemycorebuildradius = 敌人核心半径周围无建筑区
+lenum.dropzoneradius = 敌人出生点周围的半径
+lenum.unitcap = 基本单位上限。但仍然可以通过方块增加
+lenum.lighting = 是否启用环境照明
+lenum.buildspeed = 建筑速度倍率
+lenum.unithealth = 单位受伤减免, 计算方式是伤害除以减免值
+lenum.unitbuildspeed = 单元工厂建造单元的速度
+lenum.unitcost = 单位建设所需资源的倍率
+lenum.unitdamage = 单位造成多少伤害
+lenum.blockhealth = 方块受伤减免, 计算方式是伤害除以减免值
+lenum.blockdamage = 方块(炮塔)造成的伤害有多大
+lenum.rtsminweight = 进攻小队所需的最小“优势”。越高->越谨慎
+lenum.rtsminsquad = 攻击小队的最小规模
+lenum.maparea = 设置区域范围
+lenum.ambientlight = 环境光颜色,启用照明时使用
+lenum.solarmultiplier = 太阳能电池板的功率输出倍率
+lenum.dragmultiplier = 环境阻力乘数
+lenum.ban = 无法放置或构建的块或单元
+lenum.unban = 取消ban
diff --git a/core/assets/bundles/bundle_zh_TW.properties b/core/assets/bundles/bundle_zh_TW.properties
index e75b703044..ba215dc7c5 100644
--- a/core/assets/bundles/bundle_zh_TW.properties
+++ b/core/assets/bundles/bundle_zh_TW.properties
@@ -13,7 +13,7 @@ link.google-play.description = Google Play 商店頁面
link.f-droid.description = F-Droid 目錄頁面
link.wiki.description = 官方 Mindustry 維基
link.suggestions.description = 建議新功能
-link.bug.description = 找到臭蟲?在這裡回報
+link.bug.description = 發現錯誤?在這裡回報
linkopen = 網路連結由伺服器提供。確定要打開連結?\n\n[sky]{0}
linkfail = 無法打開連結!\n我們已將該網址複製到您的剪貼簿。
screenshot = 截圖儲存到{0}
@@ -57,7 +57,7 @@ mods.browser.sortstars = 以星數篩選
schematic = 藍圖
schematic.add = 儲存藍圖……
schematics = 藍圖
-schematic.search = Search schematics...
+schematic.search = 搜尋藍圖...
schematic.replace = 相同名稱的藍圖已經存在。是否取代它?
schematic.exists = 相同名稱的藍圖已經存在。
schematic.import = 匯入藍圖……
@@ -70,22 +70,22 @@ schematic.shareworkshop = 分享到工作坊
schematic.flip = [accent][[{0}][]/[accent][[{1}][]:翻轉藍圖
schematic.saved = 藍圖已儲存。
schematic.delete.confirm = 該藍圖將被完全清除。
-schematic.edit = Edit Schematic
+schematic.edit = 編輯藍圖
schematic.info = {0}x{1}, {2}方塊
-schematic.disabled = [scarlet]藍圖被進用[]\n你不能在這個[accent]地圖[] 或 [accent]伺服器中使用藍圖.
+schematic.disabled = [scarlet]藍圖被進用[]\n您不能在這個[accent]地圖[]或[accent]伺服器中使用藍圖.
schematic.tags = 標籤:
schematic.edittags = 編輯標籤
schematic.addtag = 新增標籤
schematic.texttag = 文字標籤
schematic.icontag = 圖像標籤
schematic.renametag = 重新命名
-schematic.tagged = {0} tagged
+schematic.tagged = {0} 已被加上標籤
schematic.tagdelconfirm = 確認刪除此標籤?
schematic.tagexists = 該標籤已存在。
stats = 統計
stats.wave = 防守波數
-stats.unitsCreated = 生産單位
+stats.unitsCreated = 生產單位
stats.enemiesDestroyed = 摧毀敵人
stats.built = 建造建築
stats.destroyed = 摧毁建築
@@ -131,6 +131,7 @@ feature.unsupported = 您的裝置不支援此功能。
mods.initfailed = [red]⚠[] Mindustry 無法啟動。這可能是因模組造成。\n\n為了避免不斷閃退,[red]所有的模組已被停用。[]
mods = 模組
+mods.name = Mod:
mods.none = [lightgray]找不到模組!
mods.guide = 模組指南
mods.report = 回報錯誤
@@ -147,24 +148,23 @@ mod.disable = 禁用
mod.version = Version:
mod.content = 內容:
mod.delete.error = 無法刪除模組,檔案可能在使用中。
-mod.incompatiblegame = [red]Outdated Game
-mod.incompatiblemod = [red]Incompatible
-mod.blacklisted = [red]Unsupported
-mod.unmetdependencies = [red]Unmet Dependencies
+mod.incompatiblegame = [red]遊戲版本過低
+mod.incompatiblemod = [red]無法兼容
+mod.blacklisted = [red]不支持
+mod.unmetdependencies = [red]缺少前置模組
mod.erroredcontent = [scarlet]內容錯誤
-mod.circulardependencies = [red]Circular Dependencies
-mod.incompletedependencies = [red]Incomplete Dependencies
-mod.requiresversion.details = Requires game version: [accent]{0}[]\nYour game is outdated. This mod requires a newer version of the game (possibly a beta/alpha release) to function.
-mod.outdatedv7.details = This mod is incompatible with the latest version of the game. The author must update it, and add [accent]minGameVersion: 136[] to its [accent]mod.json[] file.
-mod.blacklisted.details = This mod has been manually blacklisted for causing crashes or other issues with this version of the game. Do not use it.
-mod.missingdependencies.details = This mod is missing dependencies: {0}
-mod.erroredcontent.details = This game caused errors when loading. Ask the mod author to fix them.
-mod.circulardependencies.details = This mod has dependencies that depends on each other.
-mod.incompletedependencies.details = This mod is unable to be loaded due to invalid or missing dependencies: {0}.
-mod.requiresversion = Requires game version: [red]{0}
+mod.circulardependencies = [red]循環依賴錯誤
+mod.incompletedependencies = [red]依賴項缺失
+mod.requiresversion.details = 所需最低遊戲版本: [accent]{0}[]\n您的遊戲版本過低。此模組需要更新的遊戲版本(通常是beta/alpha版本)才能運作
+mod.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 = 這個模組已被手動列入黑名單,因為它在此版本的遊戲中引起崩潰或其他問題。請勿使用。
+mod.missingdependencies.details = 此模組缺少依賴項:{0}
+mod.erroredcontent.details = 此模組在加載時引發錯誤。請求模組作者修復它們。
+mod.circulardependencies.details = 這個模組具有相互依賴的依賴項。
+mod.incompletedependencies.details = 由於無效或缺失的依賴項,此模組無法加載:{0}。
+mod.requiresversion = 需要遊戲版本:[red]{0}
mod.errors = 載入內容時發生錯誤
-mod.noerrorplay = [scarlet]你使用了有問題的模組。[] 遊戲前請先停用相關模組或修正問題。
-mod.nowdisabled = [scarlet]「{0}」模組缺少依賴關係:[accent] {1}\n[lightgray]必須先下載這些模組。\n此模組將被自動停用。
+mod.noerrorplay = [scarlet]您使用了有問題的模組。[] 遊戲前請先停用相關模組或修正問題。
mod.enable = 啟用
mod.requiresrestart = 遊戲將立即關閉以套用模組變更。
mod.reloadrequired = [scarlet]需要重新載入
@@ -179,6 +179,15 @@ mod.missing = 此存檔含有您最近更新或已解除安裝的模組。可能
mod.preview.missing = 在工作坊發佈這個模組前,您必須新增預覽圖。\n在該模組的資料夾中加入一個名為[accent] preview.png[]的圖片並重試。
mod.folder.missing = 只有資料夾形式的模組可以在工作坊上發布。\n要將模組轉換為資料夾,只需將其文件解壓縮到資料夾並刪除舊的.zip檔,然後重新啟動遊戲或重新載入模組。
mod.scripts.disable = 您的裝置不支持包含指令檔的模組。您必須關閉這些模組才能進行遊戲。
+mod.dependencies.error = [scarlet]Mods are missing dependencies
+mod.dependencies.soft = (optional)
+mod.dependencies.download = Import
+mod.dependencies.downloadreq = Import Required
+mod.dependencies.downloadall = Import All
+mod.dependencies.status = Import Results
+mod.dependencies.success = Successfully downloaded:
+mod.dependencies.failure = Failed to download:
+mod.dependencies.imported = This mod requires dependencies. Download?
about.button = 關於
name = 名稱:
@@ -190,16 +199,17 @@ filename = 檔案名稱︰
unlocked = 已解鎖新內容!
available = 可研究新科技!
unlock.incampaign = <在戰役中解鎖>
-campaign.select = Select Starting Campaign
-campaign.none = [lightgray]Select a planet to start on.\nThis can be switched at any time.
-campaign.erekir = Newer, more polished content. Mostly linear campaign progression.\n\nHigher quality maps and overall experience.
-campaign.serpulo = Older content; the classic experience. More open-ended.\n\nPotentially unbalanced maps and campaign mechanics. Less polished.
+campaign.select = 選擇戰役出發點
+campaign.none = [lightgray]選擇初始星球。\n星球隨時都可以切換。
+campaign.erekir = 更新、更精緻的內容。戰役大部分都是連貫性的。\n\n難度更高,但有高品質的地圖和整體的經驗。
+campaign.serpulo = 較舊的內容,經典的體驗。更加開放且有更多內容。\n\n有可能會有不平衡的地圖以及戰役機制,較不完美。
campaign.difficulty = Difficulty
+
completed = [accent]完成
techtree = 科技樹
techtree.select = 選擇科技樹
techtree.serpulo = 蕈孢星
-techtree.erekir = 瑞克爾
+techtree.erekir = 熾熱之境
research.load = 載入
research.discard = 放棄
research.list = [lightgray]研究︰
@@ -222,8 +232,8 @@ server.kicked.typeMismatch = 該伺服器與您的版本不相容。
server.kicked.playerLimit = 該伺服器已滿。請等待玩家離開。
server.kicked.recentKick = 您最近曾被踢出伺服器。\n請稍後再進行連線。
server.kicked.nameInUse = 伺服器中已經\n有人有相同的名稱了。
-server.kicked.nameEmpty = 你的名稱必須至少包含一個字母或數字。
-server.kicked.idInUse = 你已經在伺服器中!不允許使用兩個帳號。
+server.kicked.nameEmpty = 您的名稱必須至少包含一個字母或數字。
+server.kicked.idInUse = 您已經在伺服器中!不允許使用兩個帳號。
server.kicked.customClient = 這個伺服器不支援自訂的客戶端,請下載官方版本。
server.kicked.gameover = 遊戲結束!
server.kicked.serverRestarting = 伺服器正在重新啟動。
@@ -262,14 +272,14 @@ trace.mobile = 行動客戶端:[accent]{0}
trace.modclient = 自訂客戶端:[accent]{0}
trace.times.joined = 加入次數:[accent]{0}
trace.times.kicked = 踢除次數:[accent]{0}
-trace.ips = IPs:
-trace.names = Names:
+trace.ips = IP:
+trace.names = 名字:
invalidid = 無效的客戶端 ID!請遞交錯誤回報。
-player.ban = Ban
-player.kick = Kick
-player.trace = Trace
-player.admin = Toggle Admin
-player.team = Change Team
+player.ban = 封鎖
+player.kick = 踢除
+player.trace = 追蹤
+player.admin = 切換管理員
+player.team = 切換隊伍
server.bans = 封鎖
server.bans.none = 沒有玩家被封鎖!
server.admins = 管理員
@@ -286,8 +296,8 @@ confirmkick = 您確定要踢出「[white]{0}[]」嗎?
confirmunban = 您確定要解除封鎖這個玩家嗎?
confirmadmin = 您確定要晉升「[white]{0}[]」為管理員嗎?
confirmunadmin = 您確定要解除「[white]{0}[]」的管理員嗎?
-votekick.reason = Vote-Kick Reason
-votekick.reason.message = Are you sure you want to vote-kick "{0}[white]"?\nIf yes, please enter the reason:
+votekick.reason = 投票踢出原因
+votekick.reason.message = 確定要投票踢出玩家"{0}[white]"?\n如果是,請輸入理由:
joingame.title = 加入遊戲
joingame.ip = IP 位置:
disconnect = 已中斷連線。
@@ -295,6 +305,7 @@ disconnect.error = 連線錯誤。
disconnect.closed = 連線關閉。
disconnect.timeout = 連線逾時。
disconnect.data = 無法載入地圖資料!
+disconnect.snapshottimeout = Timed out while receiving UDP snapshots.\nThis may be caused by an unstable network or connection.
cantconnect = 無法加入遊戲 ([accent]{0}[]).
connecting = [accent]連線中……
reconnecting = [accent]重新連接中……
@@ -305,7 +316,7 @@ server.error.addressinuse = [scarlet]Failed to open server on port 6567.[]\n\nMa
server.error = [crimson]建立伺服器時發生錯誤。
save.new = 新存檔
save.overwrite = 您確定要覆寫存檔嗎?
-save.nocampaign = Individual save files from the campaign cannot be imported.
+save.nocampaign = 無法匯入單一戰役中的存檔。
overwrite = 覆寫
save.none = 找不到存檔!
savefail = 存檔失敗!
@@ -349,18 +360,19 @@ command.repair = 修復
command.rebuild = 重建
command.assist = 協助玩家
command.move = 移動
-command.boost = Boost
-command.enterPayload = Enter Payload Block
-command.loadUnits = Load Units
-command.loadBlocks = Load Blocks
-command.unloadPayload = Unload Payload
+command.boost = 推進
+command.enterPayload = 進入負荷方塊
+command.loadUnits = 拾取單位
+command.loadBlocks = 拾取方塊
+command.unloadPayload = 卸下負載
command.loopPayload = Loop Unit Transfer
-stance.stop = Cancel Orders
-stance.shoot = Stance: Shoot
-stance.holdfire = Stance: Hold Fire
-stance.pursuetarget = Stance: Pursue Target
-stance.patrol = Stance: Patrol Path
-stance.ram = Stance: Ram\n[lightgray]Straight line movement, no pathfinding
+stance.stop = 取消指令
+stance.shoot = 狀態:射擊
+stance.holdfire = 狀態: 停火
+stance.pursuetarget = 狀態:追逐目標
+stance.patrol = 狀態:路徑巡邏
+stance.ram = 狀態:衝鋒\n[lightgray]直線移動,不進行尋路。
+
openlink = 開啟連結
copylink = 複製連結
back = 返回
@@ -386,10 +398,10 @@ pausebuilding = [accent][[{0}][]暫停建造
resumebuilding = [scarlet][[{0}][]繼續建造
enablebuilding = [scarlet][[{0}][]啟用建造
showui = 已隱藏介面。\n按[accent][[{0}][]顯示介面。
-commandmode.name = [accent]Command Mode
+commandmode.name = [accent]指揮模式
commandmode.nounits = [no units]
wave = [accent]第{0}波
-wave.cap = [accent]Wave {0}/{1}
+wave.cap = [accent]波 {0}/{1}
wave.waiting = [lightgray]將於{0}秒後抵達
wave.waveInProgress = [lightgray]波次進行中
waiting = [lightgray]等待中……
@@ -440,7 +452,7 @@ editor.nodescription = 在地圖發佈前必須有至少四個字以上的描述
editor.waves = 波次:
editor.rules = 規則:
editor.generation = 自動生成:
-editor.objectives = Objectives
+editor.objectives = 目標
editor.locales = Locale Bundles
editor.worldprocessors = World Processors
editor.worldprocessors.editname = Edit Name
@@ -459,10 +471,11 @@ editor.filters.type = 地圖種類:
editor.filters.search = 搜尋的資料夾:
editor.filters.author = 作者
editor.filters.description = 描述
-editor.shiftx = Shift X
-editor.shifty = Shift Y
+editor.shiftx = X位移
+editor.shifty = Y位移
workshop = 工作坊
waves.title = 波次
+waves.team = Team
waves.remove = 移除
waves.every = 每
waves.waves = 波次
@@ -478,7 +491,7 @@ waves.max = 最大單位數
waves.guardian = 守衛者
waves.preview = 預覽
waves.edit = 編輯……
-waves.random = Random
+waves.random = 隨機
waves.copy = 複製到剪貼簿
waves.load = 從剪貼簿載入
waves.invalid = 剪貼簿中的波次無效。
@@ -489,8 +502,8 @@ waves.sort.reverse = 反向排序
waves.sort.begin = 開始
waves.sort.health = 血量
waves.sort.type = 兵種
-waves.search = Search waves...
-waves.filter = Unit Filter
+waves.search = 搜尋波...
+waves.filter = 單位過濾
waves.units.hide = 全部隱藏
waves.units.show = 全部顯示
@@ -505,7 +518,8 @@ details = 詳細資訊……
edit = 編輯……
variables = 變數
logic.clear.confirm = Are you sure you want to clear all code from this processor?
-logic.globals = Built-in Variables
+logic.globals = 內建變數
+
editor.name = 名稱:
editor.spawn = 重生單位
editor.removeunit = 移除單位
@@ -517,19 +531,19 @@ editor.errorlegacy = 此地圖太舊,並使用不支援的舊地圖格式。
editor.errornot = 這不是地圖檔。
editor.errorheader = 此地圖檔無效或已損毀。
editor.errorname = 地圖沒有定義名稱。
-editor.errorlocales = Error reading invalid locale bundles.
+editor.errorlocales = 讀取語言包時出錯。
editor.update = 更新
editor.randomize = 隨機化
-editor.moveup = Move Up
-editor.movedown = Move Down
-editor.copy = Copy
+editor.moveup = 向上移動
+editor.movedown = 向下移動
+editor.copy = 複製
editor.apply = 使用
editor.generate = 產生
editor.sectorgenerate = 產生地區
editor.resize = 調整大小
editor.loadmap = 載入地圖
editor.savemap = 儲存地圖
-editor.savechanges = [scarlet]You have unsaved changes!\n\n[]Do you want to save them?
+editor.savechanges = [scarlet]您有尚未保存的更改!\n\n[]您想要保存這些更改嗎?
editor.saved = 已儲存!
editor.save.noname = 您的地圖沒有名稱!在「地圖資訊」畫面設定一個名稱。
editor.save.overwrite = 您的地圖覆寫了內建的地圖!在「地圖資訊」畫面設定其他名稱。
@@ -568,13 +582,13 @@ toolmode.eraseores = 清除礦物
toolmode.eraseores.description = 僅清除礦物。
toolmode.fillteams = 填充團隊
toolmode.fillteams.description = 填充團隊而非方塊。
-toolmode.fillerase = Fill Erase
-toolmode.fillerase.description = Erase blocks of the same type.
+toolmode.fillerase = 清除相同
+toolmode.fillerase.description = 清除相同種類的方塊。
toolmode.drawteams = 繪製團隊
toolmode.drawteams.description = 繪製團隊而非方塊。
#unused
-toolmode.underliquid = Under Liquids
-toolmode.underliquid.description = Draw floors under liquid tiles.
+toolmode.underliquid = 水下地形
+toolmode.underliquid.description = 繪製液體下的地形
filters.empty = [lightgray]沒有過濾器!使用下面的按鈕新增一個。
@@ -594,7 +608,7 @@ filter.clear = 清除
filter.option.ignore = 忽略
filter.scatter = 分散
filter.terrain = 地形
-filter.logic = Logic
+filter.logic = 邏輯
filter.option.scale = 規模
filter.option.chance = 機會
@@ -666,8 +680,8 @@ requirement.core = 在{0}摧毀敵人核心
requirement.research = 研究 {0}
requirement.produce = 生產 {0}
requirement.capture = 捕獲 {0}
-requirement.onplanet = Control Sector On {0}
-requirement.onsector = Land On Sector: {0}
+requirement.onplanet = 控制區域:{0}
+requirement.onsector = 登陸區域:{0}
launch.text = 發射
map.multiplayer = 只有管理者可以查看地圖
uncover = 探索
@@ -707,27 +721,32 @@ objective.coreitem = [accent]Move into Core:\n[][lightgray]{0}[]/{1}\n{2}[lightg
objective.build = [accent]建造:[][lightgray]{0}[]x\n{1}[lightgray]{2}
objective.buildunit = [accent]產生單位:[][lightgray]{0}[]x\n{1}[lightgray]{2}
objective.destroyunits = [accent]摧毀:[][lightgray]{0}[]x 單位
-objective.enemiesapproaching = [accent]敵人在 [lightgray]{0} 到達[]
-objective.enemyescelating = [accent]敵人正在 [lightgray]{0} 加緊生產[]
-objective.enemyairunits = [accent]敵人在 [lightgray]{0} 開始產生空中單位[]
-objective.destroycore = [accent]摧毀敵人核心
-objective.command = [accent]Command Units
-objective.nuclearlaunch = [accent]⚠ Nuclear launch detected: [lightgray]{0}
+objective.enemiesapproaching = [accent]的人在 [lightgray]{0} 到達[]
+objective.enemyescelating = [accent]敵人在[lightgray]{0}[]後擴大單位生產
+objective.enemyairunits = [accent]敵人在[lightgray]{0}[]後產生空軍單位
-announce.nuclearstrike = [red]⚠ NUCLEAR STRIKE INBOUND ⚠
+objective.destroycore = [accent]摧毀敵人核心
+objective.command = [accent]指揮單位
+objective.nuclearlaunch = [accent]⚠ 偵測到核彈打擊: [lightgray]{0}
+
+announce.nuclearstrike = [red]⚠ 核彈打擊入侵警告 ⚠
loadout = 裝載
resources = 資源
resources.max = 最大
bannedblocks = 禁用方塊
+unbannedblocks = Unbanned Blocks
objectives = 目標
bannedunits = 禁用單位
+unbannedunits = Unbanned Units
bannedunits.whitelist = Banned Units As Whitelist
bannedblocks.whitelist = Banned Blocks As Whitelist
addall = 全部加入
launch.from = 發射來源:[accent]{0}
launch.capacity = 發射物品容量:[accent]{0}
launch.destination = 目的地:{0}
+landing.sources = Source Sectors: [accent]{0}[]
+landing.import = Max Total Import: {0}[accent]{1}[lightgray]/min
configure.invalid = 數值必須介於 0 到 {0}。
add = 新增……
guardian = 頭目
@@ -744,12 +763,12 @@ error.any = 未知網路錯誤。
error.bloom = 初始化特效失敗。\n您的裝置可能不支援
error.moddex = Mindustry is unable to load this mod.\nYour device is blocking import of Java mods due to recent changes in Android.\nThere is no known workaround to this issue.
-weather.rain.name = 雨
-weather.snowing.name = 雪
+weather.rain.name = 降雨
+weather.snowing.name = 降雪
weather.sandstorm.name = 沙塵暴
weather.sporestorm.name = 孢子風暴
weather.fog.name = 霧
-campaign.playtime = \uf129 [lightgray]Sector Playtime: {0}
+campaign.playtime = \uf129 [lightgray]地區遊玩時間: {0}
campaign.complete = [accent]Congratulations.\n\nThe enemy on {0} has been defeated.\n[lightgray]The final sector has been conquered.
sectorlist = 地區
@@ -766,12 +785,14 @@ sectors.stored = 儲存:
sectors.resume = 繼續
sectors.launch = 發射
sectors.select = 選取
+sectors.launchselect = Select Launch Destination
sectors.nonelaunch = [lightgray]無(太陽)
+sectors.redirect = Redirect Launch Pads
sectors.rename = 重新命名區域
sectors.enemybase = [scarlet]敵方基地
sectors.vulnerable = [scarlet]易受攻擊
sectors.underattack = [scarlet]敵軍來襲! [accent]{0}% 受損
-sectors.underattack.nodamage = [scarlet]Uncaptured
+sectors.underattack.nodamage = [scarlet]尚未佔領
sectors.survives = [accent]存活 {0} 波次
sectors.go = 進入
sector.abandon = 放棄
@@ -781,8 +802,8 @@ sector.curlost = 已失去該地區
sector.missingresources = [scarlet]核心資源不足
sector.attacked = 地區 [accent]{0}[white] 遭受攻擊!
sector.lost = 地區 [accent]{0}[white] 戰敗!
-sector.capture = Sector [accent]{0}[white]Captured!
-sector.capture.current = Sector Captured!
+sector.capture = Sector [accent]{0}[white]已佔領!
+sector.capture.current = 地區已佔領!
sector.changeicon = 更改圖標
sector.noswitch.title = 無法切換地區
sector.noswitch = 當前地區遭受攻擊時,無法切換地區\n\n地區: [accent]{0}[] 於 [accent]{1}[]
@@ -798,11 +819,15 @@ difficulty.easy = 簡單模式
difficulty.normal = 普通模式
difficulty.hard = 困難模式
difficulty.eradication = 滅絕模式
+difficulty.enemyHealthMultiplier = Enemy Health: {0}
+difficulty.enemySpawnMultiplier = Enemy Amount: {0}
+difficulty.waveTimeMultiplier = Wave Timer: {0}
+difficulty.nomodifiers = [lightgray](No modifiers)
planets = 行星
planet.serpulo.name = 蕈孢星
-planet.erekir.name = Erekir
+planet.erekir.name = 熾熱之境
planet.sun.name = 太陽
sector.impact0078.name = 衝擊0078
@@ -814,9 +839,9 @@ sector.stainedMountains.name = 多色山脈
sector.desolateRift.name = 荒谷
sector.nuclearComplex.name = 核能電網
sector.overgrowth.name = 雜草叢生
-sector.tarFields.name = 油田
+sector.tarFields.name = 焦油田
sector.saltFlats.name = 鹽灘
-sector.fungalPass.name = 真菌走廊
+sector.fungalPass.name = 真菌廊道
sector.biomassFacility.name = 生物質合成工廠
sector.windsweptIslands.name = 風之島
sector.extractionOutpost.name = 萃取哨站
@@ -850,8 +875,8 @@ sector.windsweptIslands.description = 坐落於海岸線外的一串群島。紀
sector.extractionOutpost.description = 由敵方建造的遠端哨站,用來發射資源到其他地區。\n\n跨地區運輸是征服星球不可或缺的技術。摧毀該基地。研究他們的發射台。
sector.impact0078.description = 沉睡在此的是第一個進入本星系的星際運輸船。\n\n回收任何能利用的東西。研究任何殘存的科技。
sector.planetaryTerminal.description = 最終目標。\n\n這麼濱海基地具有能夠發射核心到其他行星的建築。 其防禦非常嚴密。\n\n生產海上單位。盡速摧毀敵人。研究該發射建築。
-sector.coastline.description = Remnants of naval unit technology have been detected at this location. Repel the enemy attacks, capture this sector, and acquire the technology.
-sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it.
+sector.coastline.description = 偵測到海軍單位科技的遺跡。擊退敵人的進攻,佔領地區,並獲得科技。
+sector.navalFortress.description = 敵人已在這個有天然防禦屏障的偏遠島嶼設置了一座海軍基地。摧毀它。獲得海上科技的進階科技。
sector.cruxscape.name = Cruxscape
sector.geothermalStronghold.name = Geothermal Stronghold
sector.facility32m.description = WIP, map submission by Stormride_R
@@ -865,23 +890,24 @@ sector.seaPort.description = WIP, map submission by inkognito626
sector.weatheredChannels.description = WIP, map submission by Skeledragon
sector.mycelialBastion.description = WIP, map submission by Skeledragon
-sector.onset.name = 著陸點
-sector.aegis.name = 神盾
-sector.lake.name = 橙色湖泊
-sector.intersect.name = 交會點
+
+sector.onset.name = 啟程之處
+sector.aegis.name = 神盾領域
+sector.lake.name = 岩漿之湖
+sector.intersect.name = 交會之地
sector.atlas.name = 亞特拉斯
-sector.split.name = 分岔點
-sector.basin.name = 搖籃
-sector.marsh.name = Marsh
-sector.peaks.name = Peaks
-sector.ravine.name = Ravine
-sector.caldera-erekir.name = Caldera
-sector.stronghold.name = Stronghold
-sector.crevice.name = Crevice
-sector.siege.name = Siege
-sector.crossroads.name = Crossroads
-sector.karst.name = Karst
-sector.origin.name = Origin
+sector.split.name = 分割地帶
+sector.basin.name = 沉積盆地
+sector.marsh.name = 芳油沼澤
+sector.peaks.name = 峰頂之境
+sector.ravine.name = 運輸深谷
+sector.caldera-erekir.name = 熔岩群島
+sector.stronghold.name = 壁壘要塞
+sector.crevice.name = 狹縫之界
+sector.siege.name = 平行窄道
+sector.crossroads.name = 十字路口
+sector.karst.name = 岩溶洞窟
+sector.origin.name = 終局之戰
sector.onset.description = 新手教學地區。尚無作戰目標,請等候後續指示。
sector.aegis.description = 敵人受護盾保護。一個在實驗階段的護盾破壞器坐落在此區域,找到並提供鎢原料啟用它。摧毀敵方基地。
@@ -889,17 +915,17 @@ sector.lake.description = 本地區的熔渣湖嚴重限縮普通單位的機動
sector.intersect.description = 掃描顯示本區域會在降落後遭受多面攻擊。快速築起防禦,加速擴張。必須建造\n [accent]機甲[] 單位通過陡峭的地形。
sector.atlas.description = 本地區有多樣地形,建造不同單位以有效進攻。這裡偵測到大型敵方基地,可能需要用升級過的單位突破。\n研究 [accent]電解槽[] 和 [accent]戰車重塑者[]。
sector.split.description = 較少敵軍活動適合本地區測試最新的運輸科技。
-sector.basin.description = Large enemy presence detected in this sector.\nBuild units quickly and capture enemy cores to gain a foothold.
-sector.marsh.description = This sector has an abundance of arkycite, but has limited vents.\nBuild [accent]Chemical Combustion Chambers[] to generate power.
-sector.peaks.description = The mountainous terrain in this sector make most units useless. Flying units will be required.\nBe aware of enemy anti-air installations. It may be possible to disable some of these installations by targeting their supporting buildings.
-sector.ravine.description = No enemy cores detected in the sector, although it's an important transportation route for the enemy. Expect variety of enemy forces.\nProduce [accent]surge alloy[]. Construct [accent]Afflict[] turrets.
-sector.caldera-erekir.description = The resources detected in this sector are scattered across several islands.\nResearch and deploy drone-based transportation.
-sector.stronghold.description = The large enemy encampment in this sector guards significant deposits of [accent]thorium[].\nUse it to develop higher tier units and turrets.
-sector.crevice.description = The enemy will send fierce attack forces to take out your base in this sector.\nDeveloping [accent]carbide[] and the [accent]Pyrolysis Generator[] may be imperative for survival.
-sector.siege.description = This sector features two parallel canyons that will force a two-pronged attack.\nResearch [accent]cyanogen[] to gain the capability to create even stronger tank units.\nCaution: enemy long-range missiles have been detected. The missiles may be shot down before impact.
-sector.crossroads.description = The enemy bases in this sector have been established in varying terrain. Research different units to adapt.\nAdditionally, some bases are protected by shields. Figure out how they are powered.
-sector.karst.description = This sector is rich in resources, but will be attacked by the enemy once a new core lands.\nTake advantage of the resources and research [accent]phase fabric[].
-sector.origin.description = The final sector with a significant enemy presence.\nNo probable research opportunities remain - focus solely on destroying all enemy cores.
+sector.basin.description = 本區域有大量敵軍。\n儘快建造單位並摧毀敵方基地以在此地立足。
+sector.marsh.description = 本地區有大量芳油,但只有少數的噴口。 \n建造[accent]化學燃燒發電機[]以發電。
+sector.peaks.description = 本地區的山區地形使得大多數單位無法正常發揮。需要使用飛行單位。\n請注意敵軍的防空設備,切斷這些設備的輔助建築即可使其停止發射。
+sector.ravine.description = 雖然在本地區沒有發現任何的敵人基地,但此地其實是敵軍的一個重要運輸路線。\n 請準備好對抗多種敵軍。\n儘快生產[accent]波浪合金[]並建造[accent]折磨[]砲塔。
+sector.caldera-erekir.description = 根據偵測,本區域的資源分佈在多個島嶼上。\n研究並部署無人機運輸設備。
+sector.stronghold.description = 本地區的敵軍基地的守護者大量的[accent]釷[]\n使用它來研究高級的單位和炮塔。
+sector.crevice.description = 敵軍會派遣猛烈的打擊攻擊來徹底擊潰您的基地。\n盡快研究[accent]碳化鎢[]及[accent]熱解發電機[]以確保生存。
+sector.siege.description = 本區域的兩條平行山谷使得不得不進行兩線作戰。\n研究[accent]氰氣[]以生產更強的戰車單位。\n警告:偵測到敵方長距離的導彈,導彈爆炸前可以被攔截。
+sector.crossroads.description = 本區域的敵軍基地建立在多種的地形上。嘗試研究不同的單位以適應此環境。\n還有,有些敵軍基地是被護盾保護的,找出他們是如何被供電的。
+sector.karst.description = 本區域的資源豐富,但敵人在一降落就會馬上發動攻勢。\n利用資源優勢以研究[accent]相織布[].
+sector.origin.description = 終局之戰,敵人數量極多。\n所有研究均已完畢,只需專注摧毀所有的人基地。
status.burning.name = 燃燒
status.freezing.name = 凍結
@@ -932,9 +958,9 @@ settings.clearall.confirm = [scarlet]警告![]\n這會清除所有資料,包
settings.clearsaves.confirm = 您確定您想要清除所有存檔嗎?
settings.clearsaves = 清除存檔
settings.clearresearch = 清除研究
-settings.clearresearch.confirm = 你確定要清除所有研究?
+settings.clearresearch.confirm = 您確定要清除所有研究?
settings.clearcampaignsaves = 清除戰役紀錄
-settings.clearcampaignsaves.confirm = 你確定要清除所有戰役紀錄?
+settings.clearcampaignsaves.confirm = 您確定要清除所有戰役紀錄?
paused = [accent](已暫停)
clear = 清除
banned = [scarlet]已被封鎖
@@ -984,7 +1010,7 @@ stat.repairspeed = 修復速度
stat.weapons = 武器
stat.bullet = 子彈
stat.moduletier = 模組等級
-stat.unittype = Unit Type
+stat.unittype = 單位類別
stat.speedincrease = 速度提升
stat.range = 範圍
stat.drilltier = 可鑽取礦物
@@ -1021,61 +1047,64 @@ stat.abilities = 能力
stat.canboost = 推進器
stat.flying = 飛行單位
stat.ammouse = 彈藥使用
-stat.ammocapacity = Ammo Capacity
+stat.ammocapacity = 彈藥容量
stat.damagemultiplier = 傷害加成
stat.healthmultiplier = 血量加成
stat.speedmultiplier = 速度加成
stat.reloadmultiplier = 射速加成
stat.buildspeedmultiplier = 建造速度加成
stat.reactive = 狀態傷害加成
-stat.immunities = Immunities
+stat.immunities = 免疫
stat.healing = 治癒
+stat.efficiency = [stat]{0}% Efficiency
-ability.forcefield = 防護罩
-ability.forcefield.description = 投射一個能吸收子彈的防護罩
+ability.forcefield = 防護力場
+ability.forcefield.description = 投射一個可以吸收子彈的防護力場
ability.repairfield = 維修力場
-ability.repairfield.description = Repairs nearby units
+ability.repairfield.description = 修復周圍的單位
ability.statusfield = 狀態力場
-ability.statusfield.description = Applies a status effect to nearby units
+ability.statusfield.description = 對周圍的單位施加狀態效果
ability.unitspawn = 工廠
-ability.unitspawn.description = Constructs units
+ability.unitspawn.description = 建造單位
ability.shieldregenfield = 護盾充能力場
-ability.shieldregenfield.description = Regenerates shields of nearby units
+ability.shieldregenfield.description = 為周圍的單位重新生成護盾
ability.movelightning = 移動閃電
-ability.movelightning.description = Releases lightning while moving
-ability.armorplate = Armor Plate
-ability.armorplate.description = Reduces damage taken while shooting
-ability.shieldarc = Shield Arc
-ability.shieldarc.description = Projects a force shield in an arc that absorbs bullets
-ability.suppressionfield = Regen Suppression Field
-ability.suppressionfield.description = Stops nearby repair buildings
-ability.energyfield = 能量場:
-ability.energyfield.description = Zaps nearby enemies
-ability.energyfield.healdescription = Zaps nearby enemies and heals allies
-ability.regen = Regeneration
-ability.regen.description = Regenerates own health over time
-ability.liquidregen = Liquid Absorption
-ability.liquidregen.description = Absorbs liquid to heal itself
-ability.spawndeath = Death Spawns
-ability.spawndeath.description = Releases units on death
-ability.liquidexplode = Death Spillage
-ability.liquidexplode.description = Spills liquid on death
-ability.stat.firingrate = [stat]{0}/sec[lightgray] firing rate
-ability.stat.regen = [stat]{0}[lightgray] health/sec
+ability.movelightning.description = 在移動時放出閃電
+ability.armorplate = 裝甲板
+ability.armorplate.description = 減少射擊時所受到的傷害
+ability.shieldarc = 電弧護盾
+ability.shieldarc.description = 投射一個弧形的力場護盾,能吸收子彈
+ability.suppressionfield = 抑制修復力場
+ability.suppressionfield.description = 停止周遭的修復建築工作
+ability.energyfield = 能量場
+ability.energyfield.description = 對周圍敵人發射電擊
+ability.energyfield.healdescription = 對周圍敵人發射電極並治療友方
+ability.regen = 再生
+ability.regen.description = 隨著時間的推移恢復自己的生命值
+ability.liquidregen = 液體吸收
+ability.liquidregen.description = 吸收液體以治療自己
+ability.spawndeath = 死亡產生單位
+ability.spawndeath.description = 在死亡時產生單位
+ability.liquidexplode = 死亡溢液
+ability.liquidexplode.description = 在死亡時產生液體
+ability.stat.firingrate = [stat]{0}/秒[lightgray] 射擊速度
+ability.stat.regen = [stat]{0}[lightgray]生命恢復/秒
ability.stat.pulseregen = [stat]{0}[lightgray] health/pulse
-ability.stat.shield = [stat]{0}[lightgray] shield
-ability.stat.repairspeed = [stat]{0}/sec[lightgray] repair speed
-ability.stat.slurpheal = [stat]{0}[lightgray] health/liquid unit
-ability.stat.cooldown = [stat]{0} sec[lightgray] cooldown
-ability.stat.maxtargets = [stat]{0}[lightgray] max targets
-ability.stat.sametypehealmultiplier = [stat]{0}%[lightgray] same type repair amount
-ability.stat.damagereduction = [stat]{0}%[lightgray] damage reduction
-ability.stat.minspeed = [stat]{0} tiles/sec[lightgray] min speed
-ability.stat.duration = [stat]{0} sec[lightgray] duration
-ability.stat.buildtime = [stat]{0} sec[lightgray] build time
+ability.stat.shield = [stat]{0}[lightgray]護盾
+ability.stat.repairspeed = [stat]{0}/秒[lightgray]修復速度
+ability.stat.slurpheal = [stat]{0}[lightgray]生命/液體單位
+ability.stat.cooldown = [stat]{0}秒[lightgray]冷卻時間
+ability.stat.maxtargets = [stat]{0}[lightgray]最大目標數
+ability.stat.sametypehealmultiplier = [stat]{0}%[lightgray]同類型修復數量
+ability.stat.damagereduction = [stat]{0}%[lightgray]傷害減免
+ability.stat.minspeed = [stat]{0} 格/秒[lightgray]最低速度
+ability.stat.duration = [stat]{0} 秒[lightgray]持續時間
+ability.stat.buildtime = [stat]{0} 秒[lightgray]建造時間
+
bar.onlycoredeposit = 僅允許向核心放置物品
bar.drilltierreq = 需要更好的鑽頭
+bar.nobatterypower = Insufficieny Battery Power
bar.noresources = 缺少資源
bar.corereq = 需由核心升級
bar.corefloor = 需要核心地塊
@@ -1084,6 +1113,7 @@ bar.drillspeed = 鑽頭速度:{0}/秒
bar.pumpspeed = 液體泵送速度:{0}/秒
bar.efficiency = 效率:{0}%
bar.boost = 速度加成:+{0}%
+bar.powerbuffer = Battery Power: {0}/{1}
bar.powerbalance = 能量變化:{0}
bar.powerstored = 能量存量:{0}/{1}
bar.poweramount = 能量:{0}
@@ -1094,6 +1124,7 @@ bar.capacity = 容量:{0}
bar.unitcap = {0} {1}/{2}
bar.liquid = 液體
bar.heat = 熱
+bar.cooldown = Cooldown
bar.instability = 不穩定度
bar.heatamount = 熱: {0}
bar.heatpercent = 熱: {0} ({1}%)
@@ -1112,12 +1143,13 @@ bullet.splashdamage = [stat]{0}[lightgray]範圍傷害 ~[stat] {1}[lightgray]格
bullet.incendiary = [stat]燃燒
bullet.homing = [stat]追蹤
bullet.armorpierce = [stat]穿甲
-bullet.maxdamagefraction = [stat]{0}%[lightgray] damage limit
-bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles
-bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
+bullet.maxdamagefraction = [stat]{0}%[lightgray]傷害上限
+bullet.suppression = [stat]{0}秒[lightgray]抑制修復 ~ [stat]{1}[lightgray]格
+bullet.interval = [stat]{0}/秒[lightgray]分裂子彈:
bullet.frags = [stat]{0}[lightgray]x 集束子彈:
bullet.lightning = [stat]{0}[lightgray]x 電弧 ~ [stat]{1}[lightgray] 傷害
bullet.buildingdamage = [stat]{0}%[lightgray] 建築傷害
+bullet.shielddamage = [stat]{0}%[lightgray] shield damage
bullet.knockback = [stat]{0}[lightgray]擊退
bullet.pierce = [stat]{0}[lightgray]×穿刺
bullet.infinitepierce = [stat]穿刺
@@ -1125,14 +1157,15 @@ bullet.healpercent = [stat]{0}[lightgray]% 回復
bullet.healamount = [stat]{0}[lightgray] 直接回復
bullet.multiplier = [stat]{0}[lightgray]×彈藥倍數
bullet.reload = [stat]{0}[lightgray]×射擊速率
-bullet.range = [stat]{0}[lightgray] 方塊射程
-bullet.notargetsmissiles = [stat] ignores buildings
-bullet.notargetsbuildings = [stat] ignores missiles
+bullet.range = [stat]{0}[lightgray]射程(格)
+bullet.notargetsmissiles = [stat] ignores missiles
+bullet.notargetsbuildings = [stat] ignores buildings
-unit.blocks = 方塊
-unit.blockssquared = 方塊²
+
+unit.blocks = 格
+unit.blockssquared = 格²
unit.powersecond = 能量單位/秒
-unit.tilessecond = 方格/秒
+unit.tilessecond = 格/秒
unit.liquidsecond = 液體單位/秒
unit.itemssecond = 物品/秒
unit.liquidunits = 液體單位
@@ -1144,13 +1177,14 @@ unit.minutes = 分
unit.persecond = /秒
unit.perminute = /分
unit.timesspeed = ×速度
+unit.multiplier = x
unit.percent = %
unit.shieldhealth = 護盾生命值
unit.items = 物品
unit.thousands = K
unit.millions = M
unit.billions = B
-unit.shots = shots
+unit.shots = 發
unit.pershot = /發
category.purpose = 用途
category.general = 一般
@@ -1173,7 +1207,7 @@ setting.backgroundpause.name = 背景執行時暫停遊戲
setting.buildautopause.name = 自動暫停建築
setting.doubletapmine.name = 連續點擊以挖礦
setting.commandmodehold.name = 長按進入指揮模式
-setting.distinctcontrolgroups.name = Limit One Control Group Per Unit
+setting.distinctcontrolgroups.name = 每單位限制一個編隊
setting.modcrashdisable.name = 閃退後停用模組
setting.animatedwater.name = 顯示液面動畫
setting.animatedshields.name = 顯示護盾動畫
@@ -1214,25 +1248,30 @@ setting.position.name = 顯示玩家位置
setting.mouseposition.name = 顯示滑鼠座標
setting.musicvol.name = 音樂音量
setting.atmosphere.name = 顯示星球大氣層
-setting.drawlight.name = Draw Darkness/Lighting
+setting.drawlight.name = 繪製陰影/光照
setting.ambientvol.name = 環境音量
setting.mutemusic.name = 靜音
setting.sfxvol.name = 音效音量
setting.mutesound.name = 靜音
setting.crashreport.name = 傳送匿名當機回報
+setting.communityservers.name = Fetch Community Server List
setting.savecreate.name = 自動建立存檔
-setting.steampublichost.name = Public Game Visibility
+setting.steampublichost.name = 公開遊戲可見性
setting.playerlimit.name = 玩家數限制
setting.chatopacity.name = 聊天框不透明度
setting.lasersopacity.name = 雷射不透明度
+setting.unitlaseropacity.name = Unit Mining Beam Opacity
setting.bridgeopacity.name = 橋透明度
setting.playerchat.name = 在遊戲中顯示聊天視窗
setting.showweather.name = 顯示天氣動畫
setting.hidedisplays.name = 隱藏邏輯顯示
setting.macnotch.name = 使界面適應顯示槽口
setting.macnotch.description = 需要重新啟動遊戲以更改大小
-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.
+steam.friendsonly = 僅限好友
+steam.friendsonly.tooltip = 是否只有 Steam 好友可以加入您的遊戲。\n取消勾選後,遊戲為公開的,任何人都可以加入。
+setting.maxmagnificationmultiplierpercent.name = Min Camera Distance
+setting.minmagnificationmultiplierpercent.name = Max Camera Distance
+setting.minmagnificationmultiplierpercent.description = High values may cause performance issues.
public.beta = 請注意,該遊戲的Beta版本無法公開遊戲大廳。
uiscale.reset = 使用者介面縮放已變更\n按下「確定」確認這個比例\n[scarlet][accent] {0}[] 秒後退出並還原設定
uiscale.cancel = 取消並退出
@@ -1241,7 +1280,7 @@ keybind.title = 重新綁定按鍵
keybinds.mobile = [scarlet]此處的大多數快捷鍵在行動裝置上均無法運作。僅支援基本移動。
category.general.name = 一般
category.view.name = 查看
-category.command.name = Unit Command
+category.command.name = 單位指揮
category.multiplayer.name = 多人
category.blocks.name = 選取方塊
placement.blockselectkeys = \n[lightgray]按鍵:[{0},
@@ -1259,26 +1298,26 @@ keybind.mouse_move.name = 跟隨滑鼠
keybind.pan.name = 平移鏡頭
keybind.boost.name = 加速
keybind.command_mode.name = 指揮模式
-keybind.command_queue.name = Unit Command Queue
-keybind.create_control_group.name = Create Control Group
-keybind.cancel_orders.name = Cancel Orders
-keybind.unit_stance_shoot.name = Unit Stance: Shoot
-keybind.unit_stance_hold_fire.name = Unit Stance: Hold Fire
-keybind.unit_stance_pursue_target.name = Unit Stance: Pursue Target
-keybind.unit_stance_patrol.name = Unit Stance: Patrol
-keybind.unit_stance_ram.name = Unit Stance: Ram
-keybind.unit_command_move.name = Unit Command: Move
-keybind.unit_command_repair.name = Unit Command: Repair
-keybind.unit_command_rebuild.name = Unit Command: Rebuild
-keybind.unit_command_assist.name = Unit Command: Assist
-keybind.unit_command_mine.name = Unit Command: Mine
-keybind.unit_command_boost.name = Unit Command: Boost
-keybind.unit_command_load_units.name = Unit Command: Load Units
-keybind.unit_command_load_blocks.name = Unit Command: Load Blocks
+keybind.command_queue.name = 單位指揮隊列
+keybind.create_control_group.name = 創建操控隊伍
+keybind.cancel_orders.name = 取消指令
+keybind.unit_stance_shoot.name = 單位狀態:射擊
+keybind.unit_stance_hold_fire.name = 單位狀態:停火
+keybind.unit_stance_pursue_target.name = 單位狀態:追逐目標
+keybind.unit_stance_patrol.name = 單位狀態:巡邏
+keybind.unit_stance_ram.name = 單位狀態:冲鋒
+keybind.unit_command_move.name = 單位指令:移動
+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_load_units.name = 單位指令:裝載單位
+keybind.unit_command_load_blocks.name = 單位指令:裝載方塊
keybind.unit_command_unload_payload.name = Unit Command: Unload Payload
keybind.unit_command_enter_payload.name = Unit Command: Enter Payload
keybind.unit_command_loop_payload.name = Unit Command: Loop Unit Transfer
-keybind.rebuild_select.name = Rebuild Region
+keybind.rebuild_select.name = 重建區域
keybind.schematic_select.name = 選擇區域
keybind.schematic_menu.name = 藍圖目錄
keybind.schematic_flip_x.name = X軸翻轉
@@ -1304,8 +1343,8 @@ keybind.select.name = 選取
keybind.diagonal_placement.name = 對角線放置
keybind.pick.name = 選擇方塊
keybind.break_block.name = 移除方塊
-keybind.select_all_units.name = Select All Units
-keybind.select_all_unit_factories.name = Select All Unit Factories
+keybind.select_all_units.name = 選擇所有單位
+keybind.select_all_unit_factories.name = 選擇所有單位工廠
keybind.deselect.name = 取消選取
keybind.pickupCargo.name = 撿起貨物
keybind.dropCargo.name = 丟棄貨物
@@ -1313,6 +1352,7 @@ keybind.shoot.name = 射擊
keybind.zoom.name = 縮放
keybind.menu.name = 主選單
keybind.pause.name = 暫停遊戲
+keybind.skip_wave.name = Skip Wave
keybind.pause_building.name = 暫停/繼續建造
keybind.minimap.name = 小地圖
keybind.planet_map.name = 行星地圖
@@ -1341,12 +1381,12 @@ mode.pvp.description = 和其他玩家競爭、戰鬥。\n[gray]地圖中需要
mode.attack.name = 進攻
mode.attack.description = 目標是摧毀敵人的基地。\n[gray]地圖中需要有一個紅色核心。
mode.custom = 自訂規則
-rules.invaliddata = Invalid clipboard data.
-rules.hidebannedblocks = Hide Banned Blocks
+rules.invaliddata = 無效的剪貼板數據
+rules.hidebannedblocks = 隱藏禁用的建築
rules.infiniteresources = 無限資源
rules.onlydepositcore = 僅允許向核心放置物品
-rules.derelictrepair = Allow Derelict Block Repair
+rules.derelictrepair = 允許修復殘骸建築
rules.reactorexplosions = 反應爐爆炸
rules.coreincinerates = 核心銷毀物品
rules.disableworldprocessors = 停用世界處理器
@@ -1360,8 +1400,8 @@ rules.alloweditworldprocessors.info = When enabled, world logic blocks can be pl
rules.waves = 波次
rules.airUseSpawns = Air units use spawn points
rules.attack = 攻擊模式
-rules.buildai = Base Builder AI
-rules.buildaitier = Builder AI Tier
+rules.buildai = 基地建築者 AI
+rules.buildaitier = 建築者 AI 等級
rules.rtsai = RTS AI
rules.rtsai.campaign = RTS Attack AI
rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner.
@@ -1376,16 +1416,19 @@ rules.enemyCheat = 電腦無限資源
rules.blockhealthmultiplier = 建築物耐久度加成
rules.blockdamagemultiplier = 建築物傷害加成
rules.unitbuildspeedmultiplier = 單位建設速度加成
-rules.unitcostmultiplier = Unit Cost Multiplier
+rules.unitcostmultiplier = 單位生產花費倍率
rules.unithealthmultiplier = 單位血量加成
rules.unitdamagemultiplier = 單位傷害加成
-rules.unitcrashdamagemultiplier = Unit Crash Damage Multiplier
+rules.unitcrashdamagemultiplier = 單位墜毀傷害倍率
+rules.unitminespeedmultiplier = Unit Mine Speed Multiplier
+
rules.solarmultiplier = 太陽能電加成
rules.unitcapvariable = 核心限制單位上限
-rules.unitpayloadsexplode = Carried Payloads Explode With The Unit
+rules.unitpayloadsexplode = 單位攜帶之負載與單位一起爆炸
rules.unitcap = 基礎單位上限
rules.limitarea = 限制地圖區域
rules.enemycorebuildradius = 敵人核心禁止建設半徑︰[lightgray](格)
+rules.extracorebuildradius = Extra No-Build Radius:[lightgray] (tiles)
rules.wavespacing = 波次間距︰[lightgray](秒)
rules.initialwavespacing = 初始等待時間:[lightgray](秒)
rules.buildcostmultiplier = 建設成本倍數
@@ -1408,10 +1451,13 @@ rules.title.planet = 星球
rules.lighting = 光照
rules.fog = 戰爭迷霧
rules.invasions = Enemy Sector Invasions
+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.fire = 火
-rules.anyenv =
+rules.anyenv = <任意>
rules.explosions = 方塊/單位爆炸傷害
rules.ambientlight = 環境光照
rules.weather = 天氣
@@ -1526,8 +1572,8 @@ unit.incite.name = 激發
unit.emanate.name = 擴張
unit.manifold.name = 貨運無人機
unit.assembly-drone.name = 裝配無人機
-unit.latum.name = Latum
-unit.renale.name = Renale
+unit.latum.name = 囊胞蟲
+unit.renale.name = 子囊胞蟲
block.parallax.name = 視差
block.cliff.name = 峭壁
@@ -1642,8 +1688,8 @@ block.distributor.name = 大型分配器
block.sorter.name = 分類器
block.inverted-sorter.name = 反向分類器
block.message.name = 訊息板
-block.reinforced-message.name = Reinforced Message
-block.world-message.name = World Message
+block.reinforced-message.name = 強化訊息版
+block.world-message.name = 世界訊息版
block.world-switch.name = World Switch
block.illuminator.name = 照明燈
block.overflow-gate.name = 溢流器
@@ -1728,6 +1774,8 @@ block.meltdown.name = 熔毀砲
block.foreshadow.name = 狙擊砲
block.container.name = 容器
block.launch-pad.name = 小型發射台
+block.advanced-launch-pad.name = Launch Pad
+block.landing-pad.name = Landing Pad
block.segment.name = 片段
block.ground-factory.name = 地面工廠
block.air-factory.name = 航空工廠
@@ -1741,7 +1789,7 @@ block.payload-router.name = 重物分配器
block.duct.name = 類真空管
block.duct-router.name = 真空管分配器
block.duct-bridge.name = 真空管橋
-block.large-payload-mass-driver.name = Large Payload Mass Driver
+block.large-payload-mass-driver.name = 巨型重物質量驅動器
block.payload-void.name = 原料虛空
block.payload-source.name = 原料源
block.disassembler.name = 還原機
@@ -1784,7 +1832,9 @@ block.carbon-vent.name = 碳噴口
block.arkyic-vent.name = 琥珀石噴口
block.yellow-stone-vent.name = 黃岩噴口
block.red-stone-vent.name = 紅岩噴口
-block.crystalline-vent.name = Crystalline Vent
+block.crystalline-vent.name = 晶岩噴口
+block.stone-vent.name = Stone Vent
+block.basalt-vent.name = Basalt Vent
block.redmat.name = 紅地板
block.bluemat.name = 藍地板
block.core-zone.name = 核心地塊
@@ -1823,9 +1873,9 @@ block.oxidation-chamber.name = 氧化室
block.electric-heater.name = 電加熱器
block.slag-heater.name = 熔渣加熱器
block.phase-heater.name = 相織布加熱器
-block.heat-redirector.name = 熱重定向器
+block.heat-redirector.name = 熱量重新定向器
block.small-heat-redirector.name = Small Heat Redirector
-block.heat-router.name = Heat Router
+block.heat-router.name = 熱量分配器
block.slag-incinerator.name = 熔渣焚化爐
block.carbide-crucible.name = 碳化鎢坩堝
block.slag-centrifuge.name = 熔渣離心機
@@ -1906,16 +1956,16 @@ block.tank-fabricator.name = 戰車兵工廠
block.mech-fabricator.name = 機甲兵工廠
block.ship-fabricator.name = 飛船兵工廠
block.prime-refabricator.name = 高級單位重塑者
-block.unit-repair-tower.name = 維修塔
+block.unit-repair-tower.name = 單位維修塔
block.diffuse.name = 擴散
block.basic-assembler-module.name = 支援組裝廠
-block.smite.name = Smite
-block.malign.name = Malign
-block.flux-reactor.name = Flux Reactor
-block.neoplasia-reactor.name = Neoplasia Reactor
+block.smite.name = 天譴
+block.malign.name = 熱核
+block.flux-reactor.name = 通量反應爐
+block.neoplasia-reactor.name = 囊胞反應爐
-block.switch.name = 按鈕
-block.micro-processor.name = 微處理器
+block.switch.name = 開關
+block.micro-processor.name = 微型處理器
block.logic-processor.name = 邏輯處理器
block.hyper-processor.name = 超級處理器
block.logic-display.name = 顯示器
@@ -1932,36 +1982,37 @@ team.blue.name = 藍
hint.skip = 跳過
hint.desktopMove = 使用[accent][[WASD][]來移動。
-hint.zoom = 滾動 [accent]滾輪[] 來放大縮小畫面。
+hint.zoom = 滾動[accent]滾輪[]來放大縮小畫面。
hint.desktopShoot = [accent][[點擊左鍵][]射擊。
hint.depositItems = 從船身拖曳到核心以存放採完的礦物。
hint.respawn = 按[accent][[V][]以重生。
-hint.respawn.mobile = 你目前在控制單位/建築。[accent]點擊左上角的頭像[]重生。
+hint.respawn.mobile = 您目前在控制單位/建築。[accent]點擊左上角的頭像[]重生。
hint.desktopPause = 按[accent][[空白鍵][]暫停、繼續遊戲。
hint.breaking = [accent]按住右鍵[]並拖曳以破壞方塊。
hint.breaking.mobile = 點亮右下角的 \ue817 [accent]鐵鎚[]圖案並點擊畫面可直接拆除方塊。\n\n按住畫面超過一秒後拖曳以連續摧毀多個方塊。
hint.blockInfo = 點擊各種方塊的[accent][[?][]按鈕以檢視該方塊的資訊
-hint.derelict = [accent]殘骸[] 地圖上有先前基地留下的殘骸。\n\n可以[accent]銷毀[]這些建築獲得資源。
-hint.research = 使用 \ue875 [accent]研究[] 按鈕來研究新科技。
-hint.research.mobile = 使用 \ue875 [accent]研究[] 按鈕來研究新科技。
+hint.derelict = [accent]殘骸[]地圖上有先前基地留下的殘骸。\n\n可以[accent]銷毀[]這些建築獲得資源。
+hint.research = 使用\ue875[accent]研究[]按鈕來研究新科技。
+hint.research.mobile = 使用\ue875[accent]研究[]按鈕來研究新科技。
hint.unitControl = 按住[accent][[L-ctrl][]並[accent]點擊[]以控制我方的機甲和砲台。
hint.unitControl.mobile = [accent][[點擊兩下][]以控制我方的機甲和砲台。
-hint.unitSelectControl = To control units, enter [accent]command mode[] by holding [accent]L-shift.[]\nWhile in command mode, click and drag to select units. [accent]Right-click[] a location or target to command units there.
-hint.unitSelectControl.mobile = To control units, enter [accent]command mode[] by pressing the [accent]command[] button in the bottom left.\nWhile in command mode, long-press and drag to select units. Tap a location or target to command units there.
-hint.launch = 一旦蒐集到足夠的資源,你可以透過右下角的 \ue827 [accent]地圖[]來選取你要[accent]發射[]的區域。
-hint.launch.mobile = 一旦蒐集到足夠的資源,你可以透過選單中的 \ue827 [accent]地圖[]來選取你要[accent]發射[]的區域。
-hint.schematicSelect = 按住[accent][[F][]並拖曳可以選取方塊並貼上。\n\n按下[accent][[滑鼠中鍵][]可以複製單一方塊。
-hint.rebuildSelect = Hold [accent][[B][] and drag to select destroyed block plans.\nThis will rebuild them automatically.
-hint.rebuildSelect.mobile = Select the \ue874 copy button, then tap the \ue80f rebuild button and drag to select destroyed block plans.\nThis will rebuild them automatically.
+hint.unitSelectControl = 若要控制單位,請按住[accent]L-Shift[]鍵進入[accent]指揮模式[]。\n在指揮模式下,左鍵點擊並拖曳以選取單位。[accent]右鍵[]點擊地點或目標來命令單位移動或攻擊。
+hint.unitSelectControl.mobile = 若要控制單位,請按左下角的[accent]指揮[]按鈕進入 [accent]指揮模式[]。\n在指揮模式下,長按並拖曳以選取單位。點擊地點或目標來命令單位移動或攻擊。
+hint.launch = 一旦蒐集到足夠的資源,您可以透過右下角的\ue827[accent]地圖[]來選取您要[accent]發射[]的區域。
+hint.launch.mobile = 一旦蒐集到足夠的資源,您可以透過選單中的\ue827[accent]地圖[]來選取您要[accent]發射[]的區域。
+hint.schematicSelect = 按住[accent][[F][]鍵並拖曳以選取建築並複製、貼上。\n\n點擊[accent][滑鼠中鍵][]可以複製單一建築。
+hint.rebuildSelect = 按住[accent][[B][]鍵並拖曳以選取被摧毀的建築。\n這將自動重建它們。
+hint.rebuildSelect.mobile = 選擇\ue874複製按鈕,然後點擊\ue80f重建按鈕並拖曳以選取被摧毀的建築。\n這將自動重建它們。
+
hint.conveyorPathfind = 在建造輸送帶時按下[accent][[L-Ctrl][]可以自動產生路徑。
hint.conveyorPathfind.mobile = 啟用 \ue844 [accent]對角線模式[]可以在建造輸送帶時自動產生路徑。
-hint.boost = 按住[accent][[L-Shift][]可以帶著你的機甲一起飛越障礙物\n\n只有少數陸行機甲有推進器。
+hint.boost = 按住[accent][[L-Shift][]可以帶著您的機甲一起飛越障礙物\n\n只有少數陸行機甲有推進器。
hint.payloadPickup = 按下 [accent][[[] 拾起小方塊或機甲。
hint.payloadPickup.mobile = [accent]長按[]一個方塊或單位可將其拾起。
hint.payloadDrop = 按下 [accent]][] 可以放下持有的方塊或單位。
hint.payloadDrop.mobile = [accent]長按[]任何空白處可以放下持有的方塊或單位。
hint.waveFire = 以[accent]水[]裝填的[accent]波浪[]會自動撲滅附近火勢。
-hint.generator = \uf879 [accent]燃燒發電機[]消耗煤炭產生能源給相鄰的方塊。\n\n使用 \uf87f [accent]能量節點[]增加電力涵蓋範圍。
+hint.generator = \uf879 [accent]燃燒發電機[]消耗煤炭產生電力給相鄰的方塊。\n\n使用\uf87f[accent]能量節點[]增加電力涵蓋範圍。
hint.guardian = [accent]頭目[]擁有厚實的裝甲。較弱的彈藥如[accent]銅[]和[accent]鉛[]並[scarlet]沒有效果[].\n\n使用更高等的砲臺或以\uf835 [accent]石墨[]配合\uf861雙砲、\uf859齊射砲摧毀頭目。
hint.coreUpgrade = 核心可以透過在上面[accent]覆蓋一個更高等級的核心[]來升級。\n\n放置 \uf868 [accent]核心:基地[] 到 \uf869 [accent]核心:碎片[] 上. 確保沒有其他障礙物。
hint.presetLaunch = 灰色的[accent]降落地區[],例如[accent]冰凍森林[],可由任何地區發射。這類地區無須由相鄰地區進攻。\n\n[accent]數字編號地區[]則是一般的區域,可自由佔領,不影響戰役的完成。
@@ -1969,58 +2020,59 @@ hint.presetDifficulty = 此地區為[scarlet]高危險等級[]區域。\n[accent
hint.coreIncinerate = 當任一物品的核心庫存滿了後,後續進入的同種資源會被[accent]銷毀[]。
hint.factoryControl = 若要設置兵工廠的[accent]集結點[],在指揮模式中點選工廠,再右鍵點擊指定位置。\n此工廠產生的單位將自動移動到集結點。
hint.factoryControl.mobile = 若要設置兵工廠的[accent]集結點[],在指揮模式中選取工廠,再點擊指定位置。\n此工廠產生的單位將自動移動到集結點。
-gz.mine = Move near the \uf8c4 [accent]copper ore[] on the ground and click to begin mining.
-gz.mine.mobile = Move near the \uf8c4 [accent]copper ore[] on the ground and tap it to begin mining.
-gz.research = Open the \ue875 tech tree.\nResearch the \uf870 [accent]Mechanical Drill[], then select it from the menu in the bottom right.\nClick on a copper patch to place it.
-gz.research.mobile = Open the \ue875 tech tree.\nResearch the \uf870 [accent]Mechanical Drill[], then select it from the menu in the bottom right.\nTap on a copper patch to place it.\n\nPress the \ue800 [accent]checkmark[] at the bottom right to confirm.
-gz.conveyors = Research and place \uf896 [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nClick and drag to place multiple conveyors.\n[accent]Scroll[] to rotate.
-gz.conveyors.mobile = Research and place \uf896 [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nHold down your finger for a second and drag to place multiple conveyors.
-gz.drills = Expand the mining operation.\nPlace more Mechanical Drills.\nMine 100 copper.
-gz.lead = \uf837 [accent]Lead[] is another commonly used resource.\nSet up drills to mine lead.
-gz.moveup = \ue804 Move up for further objectives.
-gz.turrets = Research and place 2 \uf861 [accent]Duo[] turrets to defend the core.\nDuo turrets require \uf838 [accent]ammo[] from conveyors.
-gz.duoammo = Supply the Duo turrets with [accent]copper[], using conveyors.
-gz.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace \uf8ae [accent]copper walls[] around the turrets.
-gz.defend = Enemy incoming, prepare to defend.
-gz.aa = Flying units cannot easily be dispatched with standard turrets.\n\uf860 [accent]Scatter[] turrets provide excellent anti-air, but require \uf837 [accent]lead[] as ammo.
-gz.scatterammo = Supply the Scatter turret with [accent]lead[], using conveyors.
-gz.supplyturret = [accent]Supply Turret
-gz.zone1 = This is the enemy drop zone.
-gz.zone2 = Anything built in the radius is destroyed when a wave starts.
-gz.zone3 = A wave will begin now.\nGet ready.
-gz.finish = Build more turrets, mine more resources,\nand defend against all the waves to [accent]capture the sector[].
-onset.mine = Click to mine \uf748 [accent]beryllium[] from walls.\n\nUse [accent][[WASD] to move.
-onset.mine.mobile = Tap to mine \uf748 [accent]beryllium[] from walls.
-onset.research = Open the \ue875 tech tree.\nResearch, then place a \uf73e [accent]turbine condenser[] on the vent.\nThis will generate [accent]power[].
-onset.bore = Research and place a \uf741 [accent]plasma bore[].\nThis automatically mines resources from walls.
-onset.power = To [accent]power[] the plasma bore, research and place a \uf73d [accent]beam node[].\nConnect the turbine condenser to the plasma bore.
-onset.ducts = Research and place \uf799 [accent]ducts[] to move the mined resources from the plasma bore to the core.\nClick and drag to place multiple ducts.\n[accent]Scroll[] to rotate.
-onset.ducts.mobile = Research and place \uf799 [accent]ducts[] to move the mined resources from the plasma bore to the core.\n\nHold down your finger for a second and drag to place multiple ducts.
-onset.moremine = Expand the mining operation.\nPlace more Plasma Bores and use beam nodes and ducts to support them.\nMine 200 beryllium.
-onset.graphite = More complex blocks require \uf835 [accent]graphite[].\nSet up plasma bores to mine graphite.
-onset.research2 = Begin researching [accent]factories[].\nResearch the \uf74d [accent]cliff crusher[] and \uf779 [accent]silicon arc furnace[].
-onset.arcfurnace = The arc furnace needs \uf834 [accent]sand[] and \uf835 [accent]graphite[] to create \uf82f [accent]silicon[].\n[accent]Power[] is also required.
-onset.crusher = Use \uf74d [accent]cliff crushers[] to mine sand.
-onset.fabricator = Use [accent]units[] to explore the map, defend buildings, and attack the enemy. Research and place a \uf6a2 [accent]tank fabricator[].
-onset.makeunit = Produce a unit.\nUse the "?" button to see selected factory requirements.
-onset.turrets = Units are effective, but [accent]turrets[] provide better defensive capabilities if used effectively.\nPlace a \uf6eb [accent]Breach[] turret.\nTurrets require \uf748 [accent]ammo[].
-onset.turretammo = Supply the turret with [accent]beryllium ammo.[]
-onset.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace some \uf6ee [accent]beryllium walls[] around the turret.
-onset.enemies = Enemy incoming, prepare to defend.
-onset.defenses = [accent]Set up defenses:[lightgray] {0}
-onset.attack = The enemy is vulnerable. Counter-attack.
-onset.cores = New cores can be placed on [accent]core tiles[].\nNew cores function as forward bases and share a resource inventory with other cores.\nPlace a \uf725 core.
-onset.detect = The enemy will be able to detect you in 2 minutes.\nSet up defenses, mining, and production.
+gz.mine = 接近在地上的\uf8c4 [accent]銅礦[],然後點擊它來開始挖掘。
+gz.mine.mobile = 接近地上的\uf8c4[accent]銅礦[],然後點擊它來開始挖掘。
+gz.research = 打開\ue875科技樹。\n研究\uf870[accent]機械鑽頭[],然後在右下角的選單中將其選取。\n點擊銅礦放置鑽頭。
+gz.research.mobile = 打開\ue875科技樹。\n研究\uf870[accent]機械鑽頭[],然後在右下角的選單中將其選取。\n點擊銅礦放置鑽頭。\n\n點擊右下角的\ue800[accent]勾[]以確認。
+gz.conveyors = 研究並放置\uf896[accent]傳送帶[]\n將鑽頭挖掘的礦物移至核心。\n\n點擊並拖動以連續放置傳送帶。\n滾動[accent]滑鼠滾輪[]以轉向。
+gz.conveyors.mobile = 研究並放置\uf896[accent]傳送帶[]\n將鑽頭挖掘的礦物移至核心。\n\n長按一秒,然後拖動以連續放置傳送帶。
+gz.drills = 擴大挖掘規模。\n放置更多的機械鑽頭。\n挖掘100個銅。
+gz.lead = \uf837[accent]鉛[]是另一種常用資源。\n用鑽頭挖掘鉛礦。
+gz.moveup = \ue804擴張以推進任務。
+gz.turrets = 研究並放置2個\uf861[accent]雙砲[]保衛核心。\n雙砲需要傳送帶供給\uf838[accent]彈藥[]。
+gz.duoammo = 用傳送帶給雙砲供給[accent]銅[]。
+gz.walls = [accent]牆[]可以防止建築受到損壞。\n在砲塔周圍放置一些\uf8ae[accent]銅牆[]。
+gz.defend = 敵人來襲,準備防禦。
+gz.aa = 普通砲塔難以快速擊落空中單位。\n\uf860[accent]驅離者[]防空能力出色,但使用[accent]鉛[]彈藥。
+gz.scatterammo = 用傳送帶給驅離者供給[accent]鉛[]。
+gz.supplyturret = [accent]給砲塔供彈
+gz.zone1 = 這是敵人的出生點。
+gz.zone2 = 波次開始時,範圍內的所有建築都會被摧毀。
+gz.zone3 = 波次即將開始。\n做好準備。
+gz.finish = 建造更多砲塔,挖掘更多資源,\n擊退所有波次以[accent]佔領區域[]。
+onset.mine = 點擊牆上的\uf748[accent]鈹礦[]進行手動開採。\n\n使用[accent][[WASD]移動。
+onset.mine.mobile = 點擊牆上的\uf748[accent]鈹礦[]進行手動開採。
+onset.research = 打開\ue875科技樹。\n研究\uf73e[accent]渦輪冷凝器[],然後將其放置在噴口上。\n這將產生[accent]電力[]。
+onset.bore = 研究並放置\uf741[accent]電漿鑽頭[]。\n它可以自動從牆壁上挖掘資源。
+onset.power = 為了提供電漿鑽頭[accent]電力[],研究並放置一個\uf73d[accent]光束節點[]。\n將渦輪冷凝器連接到電漿鑽頭。
+onset.ducts = 研究並放置\uf799[accent]類真空管[]將電漿鑽頭挖掘的礦物移至核心。\n\n點擊並拖動以連續放置類真空管。\n滾動[accent]滑鼠滾輪[]以旋轉。
+onset.ducts.mobile = 研究並放置\uf799[accent]類真空管[]將電漿鑽頭挖掘的礦物移至核心。\n\n長按一秒,然後拖動以連續放置類真空管。
+onset.moremine = 擴大開採規模。\n放置更多的電漿鑽頭,並使用光束節點和類真空管來支持它們。\n開採200個鈹。
+onset.graphite = 較複雜的方塊需要\uf835[accent]石墨[]。\n使用電漿鑽頭開採石墨。
+onset.research2 = 開始研究[accent]工廠[]。\n研究\uf74d[accent]牆體挖鑿機[]和\uf779[accent]電弧冶矽爐[]。
+onset.arcfurnace = 電弧冶矽爐需要\uf834[accent]沙[]和\uf835[accent]石墨[]來冶煉\uf82f[accent]矽[]。\n同時也需要[accent]電力[]。
+onset.crusher = 使用\uf74d[accent]牆體挖鑿機[]來開採沙。
+onset.fabricator = 使用[accent]單位[]探索地圖,保衛建築物並進行攻擊。\n研究並放置一個\uf6a2[accent]戰車製造廠[]。
+onset.makeunit = 生產單位。\n點擊"?"以查看所選工廠的需求資源。
+onset.turrets = 單位對於防禦很有效,但合理使用[accent]炮塔[]可以提供更好的防禦能力。\n放置一個\uf6eb[accent]突破者[]炮塔。\n炮塔需要供給\uf748[accent]彈藥[]。
+onset.turretammo = 為炮塔供應[accent]鈹[]彈藥。
+onset.walls = [accent]牆[]可以防止建築受到傷害。\n在炮塔周圍放置一些\uf6ee[accent]鈹牆[]。
+onset.enemies = 敵人即將到來,準備防禦。
+onset.defenses = [accent]建立防禦:[lightgray] {0}
+onset.attack = 敵軍基地非常脆弱。發動反擊。
+onset.cores = 可以在[accent]核心地磚[]上建立新的核心。\n新的核心功能類似前進基地,並與其他基地共享資源倉庫。\n放置一個\uf725核心。
+onset.detect = 敵軍將在 2 分鐘內發現您。\n設置防禦、開採礦物和建造生產設施。
+onset.commandmode = 按住[accent]Shift[]進入[accent]指揮模式[]。\n[accent]左鍵點擊並拖曳[]以選擇單位。\n[accent]右鍵點擊[]以命令所選單位移動或進攻。
+onset.commandmode.mobile = 按下[accent]指揮按鈕[]進入[accent]指揮模式[]。\n長按一秒,然後[accent]拖曳[]以選擇單位。\n[accent]點擊[]以命令所選單位移動或進攻。
+
+aegis.tungsten = 鎢可以使用[accent]衝擊鑽頭[]來開採。\n此結構需要[accent]水[]和[accent]電力[]。
+
+split.pickup = 某些物品可以被核心單位撿起。\n撿起這個[accent]容器[],然後放到[accent]重物裝載機[]上。\n(預設撿起與放下的按鍵分別是 [[ 和 ] )
+split.pickup.mobile = 某些物品可以被核心單位撿起。\n撿起這個[accent]容器[],然後放到 [accent]重物裝載機[] 上。\n(要撿起或放下東西,請長按該物品。)
+split.acquire = 您必須獲取一些鎢才能建造單位。
+split.build = 單位必須被運送到牆的另一邊。\n在牆的兩側各放一個[accent]重物質量驅動器[]。\n通過按壓其中一個來設置連結,然後選擇另一個。
+split.container = 類似於容器,單位也可以使用[accent]重物質量驅動器[]進行運輸。\n將一個單位兵工廠放置在重物裝載機旁邊以裝載它們,然後將它們送到牆的另一側以進攻敵方基地。
-#Don't translate these yet!
-onset.commandmode = Hold [accent]shift[] to enter [accent]command mode[].\n[accent]Left-click and drag[] to select units.\n[accent]Right-click[] to order selected units to move or attack.
-onset.commandmode.mobile = Press the [accent]command button[] to enter [accent]command mode[].\nHold down a finger, then [accent]drag[] to select units.\n[accent]Tap[] to order selected units to move or attack.
-aegis.tungsten = Tungsten can be mined using an [accent]impact drill[].\nThis structure requires [accent]water[] and [accent]power[].
-split.pickup = Some blocks can be picked up by the core unit.\nPick up this [accent]container[] and place it onto the [accent]payload loader[].\n(Default keys are [ and ] to pick up and drop)
-split.pickup.mobile = Some blocks can be picked up by the core unit.\nPick up this [accent]container[] and place it onto the [accent]payload loader[].\n(To pick up or drop something, long-press it.)
-split.acquire = You must acquire some tungsten to build units.
-split.build = Units must be transported to the other side of the wall.\nPlace two [accent]Payload Mass Drivers[], one on each side of the wall.\nSet up the link by pressing one of them, then selecting the other.
-split.container = Similar to the container, units can also be transported using a [accent]Payload Mass Driver[].\nPlace a unit fabricator adjacent to a mass driver to load them, then send them across the wall to attack the enemy base.
item.copper.description = 最基本的結構材料。在各種類型的方塊中廣泛使用。
item.copper.details = 銅,蕈孢星上異常常見的金屬。加工前結構脆弱。
@@ -2033,7 +2085,7 @@ item.coal.description = 遠在「播種」事件前就形成的植物化石。
item.coal.details = 看似植物化石,形成時間遠早於「播種」事件。
item.titanium.description = 一種罕見的超輕金屬,被廣泛運用於運輸液體、鑽頭和飛行載具。
item.thorium.description = 一種高密度的放射性金屬,用作結構支撐和核燃料。
-item.scrap.description = 舊結構和單位的殘骸。含有微量的各種金屬。
+item.scrap.description = 舊建築和單位的殘骸。含有微量的各種金屬。
item.scrap.details = 古老建築、兵器留下的殘骸。
item.silicon.description = 一種非常有用的半導體,被用於太陽能電池板、很多複雜的電子設備和追蹤導彈彈藥。
item.plastanium.description = 一種輕量、可延展的材料,用於高級的飛行載具和破片彈藥。
@@ -2043,29 +2095,29 @@ item.spore-pod.description = 孢子莢,從大氣中汲取孢子而合成。用
item.spore-pod.details = 充滿孢子。很可能是人造生物。會釋放對其他生物有毒的氣體。極具侵略性。特定情況下極為易燃。
item.blast-compound.description = 用於炸彈和高爆彈的混合物。
item.pyratite.description = 用於至燃武器和燃燒型發電機的物質。
-item.beryllium.description = Used in many types of construction and ammunition on Erekir.
-item.tungsten.description = Used in drills, armor and ammunition. Required in the construction of more advanced structures.
-item.oxide.description = Used as a heat conductor and insulator for power.
-item.carbide.description = Used in advanced structures, heavier units, and ammunition.
+item.beryllium.description = 用於熾熱之境的建築和彈藥。
+item.tungsten.description = 用於鑽頭、裝甲和彈藥。在建造更先進的建築有其必要性。
+item.oxide.description = 作為熱導體和絕緣體。
+item.carbide.description = 用於高級的建築、重型單位和彈藥。
liquid.water.description = 最常見的液體。常用於冷卻機器和廢物處理。
liquid.slag.description = 各種不同類型的熔融金屬混合在一起的液體。可以被分解成其所組成之礦物,或作為武器向敵方單位噴灑。
liquid.oil.description = 用於進階材料製造的液體。可以轉化為煤炭作為燃料或噴灑向敵方單位後點燃作為武器。
liquid.cryofluid.description = 一種安定,無腐蝕性的液體。具有很高的比熱,廣泛的用作工廠、砲台、或反應爐的冷卻劑。
-liquid.arkycite.description = Used in chemical reactions for power generation and material synthesis.
-liquid.ozone.description = Used as an oxidizing agent in material production, and as fuel. Moderately explosive.
-liquid.hydrogen.description = Used in resource extraction, unit production and structure repair. Flammable.
-liquid.cyanogen.description = Used for ammunition, construction of advanced units, and various reactions in advanced blocks. Highly flammable.
-liquid.nitrogen.description = Used in resource extraction, gas creation and unit production. Inert.
-liquid.neoplasm.description = A dangerous biological byproduct of the Neoplasia reactor. Quickly spreads to any adjacent water-containing block it touches, damaging them in the process. Viscous.
-liquid.neoplasm.details = Neoplasm. An uncontrollable mass of rapidly-dividing synthetic cells with a sludge-like consistency. Heat-resistant. Extremely dangerous to any structures involving water.\n\nToo complex and unstable for standard analysis. Potential applications unknown. Incineration in slag pools is recommended.
+liquid.arkycite.description = 用於發電與合成材料的化學反應。
+liquid.ozone.description = 用於材料製造的氧化劑,以及作為燃料。有中度爆炸性。
+liquid.hydrogen.description = 用於資源開採、單位製造與建築修復。易燃。
+liquid.cyanogen.description = 用於子彈、製造單位與在其他高級建築上的反應。高度易燃。
+liquid.nitrogen.description = 用於資源開採、氣體生產與單位製造。相對惰性。
+liquid.neoplasm.description = 囊胞反應爐所生產出的危險生物性副產物。如果遇到含有水的建築,囊胞液會擴散到那些建築上,並對其造成傷害。有粘性。
+liquid.neoplasm.details = 囊胞液,由一種無法控制並快速分裂的合成細胞團組成,具有像淤泥般的黏稠度。耐熱。對含有水的建築及其危險。\n\n以現在的技術來說,由於其複雜性及其不穩定性,要進行標準分析十分困難。潛在的應用目前未知。建議在熔渣池中焚毀。
block.derelict = [lightgray]殘骸
block.armored-conveyor.description = 以與鈦輸送帶相同的速度移動物品,但擁有更高的防禦。不接受任何從側面輸入的資源。
block.illuminator.description = 小而美的光源。
block.message.description = 儲存一條訊息。用於盟友之間的溝通。
-block.reinforced-message.description = Stores a message for communication between allies.
-block.world-message.description = A message block for use in mapmaking. Cannot be destroyed.
+block.reinforced-message.description = 儲存一條訊息。用於盟友之間的溝通。
+block.world-message.description = 一個用於製圖的訊息版。無法被銷毀。
block.graphite-press.description = 將煤炭壓縮成石墨。
block.multi-press.description = 石墨壓縮機的升級版。利用水和電力快速高效地處理煤炭。
block.silicon-smelter.description = 使用高純度焦炭還原沙子以生產矽。
@@ -2126,7 +2178,7 @@ block.router.details = 必要之惡。不建議放置在生產建築旁,不然
block.distributor.description = 高級的分配器,可將物品均分到最多7個其他方向。
block.overflow-gate.description = 如果前面被阻擋,則向左邊和右邊輸出物品。
block.underflow-gate.description = 反向的溢流器。如果側面被阻擋,則向前方輸出物品。
-block.mass-driver.description = 終極物品運輸方塊。收集大量物品,然後將它們射向另一個質量驅動器。需要能源以運作。
+block.mass-driver.description = 終極物品運輸方塊。收集大量物品,然後將它們射向另一個質量驅動器。需要電力以運作。
block.mechanical-pump.description = 一種便宜的泵,輸出速度慢,但不使用能量。
block.rotary-pump.description = 高級的泵。抽更多液體,但需要能量。
block.impulse-pump.description = 泵送液體。
@@ -2153,7 +2205,7 @@ block.rtg-generator.description = 一種簡單、可靠的發電機,使用放
block.solar-panel.description = 透過太陽產生少量的能量。
block.solar-panel-large.description = 透過太陽產生少量的能量。效率較普通太陽能板高。
block.thorium-reactor.description = 從高度放射性釷產生大量能量。需要持續冷卻。如果供應的冷卻劑不足,會劇烈爆炸。產生的能量取決於釷裝載量,滿載時會達到基礎發電功率。
-block.impact-reactor.description = 先進的發電機,在最高效率時能產生大量能量。需要先消耗大量的能源才能啟動。
+block.impact-reactor.description = 先進的發電機,在最高效率時能產生大量能量。需要先消耗大量的電力才能啟動。
block.mechanical-drill.description = 一種便宜的鑽頭。當放置在適當的方塊上時,以緩慢的速度無限期地輸出物品。只能挖掘基本的原料。
block.pneumatic-drill.description = 一種改進的鑽頭,可以挖掘鈦。比機械鑽頭挖掘的更快。
block.laser-drill.description = 通過雷射技術可以更快地挖掘,但需要能量。此外,這種鑽頭可以挖掘放射性釷。
@@ -2172,7 +2224,9 @@ block.vault.description = 儲存大量的每一種物品。當物品需求非恆
block.container.description = 儲存少量的每一種物品。當物品需求非恆定時,使用它來創建緩衝。使用[lightgray]裝卸器[]以從容器提取物品。
block.unloader.description = 將物品從容器、倉庫或核心卸載到傳輸帶上或直接卸貨到相鄰的方塊中。透過點擊卸貨器來更改要卸貨的物品類型。
block.launch-pad.description = 無需發射核心即可直接發射物品。
-block.launch-pad.details = 用於點對點運輸的亞軌道系統。載荷艙很脆弱,進入大氣層時會損毁。
+block.advanced-launch-pad.description = Launches batches of items to selected sectors. Only accepts one item type at a time.
+block.advanced-launch-pad.details = Sub-orbital system for point-to-point transportation of resources.
+block.landing-pad.description = Receives items from launch pads in other sectors. Requires large amounts of water to protect against impacts of landings.
block.duo.description = 一種小而便宜的砲塔。
block.scatter.description = 不可或缺的中型防空砲塔。向敵方單位噴射鉛塊、廢料或是鋼化玻璃彈片。
block.scorch.description = 燃燒所有靠近它的地面敵人。在近距離非常有效。
@@ -2214,100 +2268,102 @@ block.logic-display.description = 顯示由處理器輸出的任意圖像。
block.large-logic-display.description = 顯示由處理器輸出的任意圖像。
block.interplanetary-accelerator.description = 巨大的電磁砲塔。將核心加速至脫離速度以在其他星球部署。
block.repair-turret.description = 持續修復最靠近的受損單位。能使用冷卻劑。
-block.core-bastion.description = Core of the base. Armored. Once destroyed, the sector is lost.
-block.core-citadel.description = Core of the base. Very well armored. Stores more resources than a Bastion core.
-block.core-acropolis.description = Core of the base. Exceptionally well armored. Stores more resources than a Citadel core.
-block.breach.description = Fires piercing beryllium or tungsten ammunition at enemy targets.
-block.diffuse.description = Fires a burst of bullets in a wide cone. Pushes enemy targets back.
-block.sublimate.description = Fires a continuous jet of flame at enemy targets. Pierces armor.
-block.titan.description = Fires a massive explosive artillery shell at ground targets. Requires hydrogen.
-block.afflict.description = Fires a massive charged orb of fragmentary flak. Requires heating.
-block.disperse.description = Fires bursts of flak at aerial targets.
-block.lustre.description = Fires a slow-moving single-target laser at enemy targets.
-block.scathe.description = Launches a powerful missile at ground targets over vast distances.
-block.smite.description = Fires bursts of piercing, lightning-emitting bullets.
-block.malign.description = Fires a barrage of homing laser charges at enemy targets. Requires extensive heating.
-block.silicon-arc-furnace.description = Refines silicon from sand and graphite.
-block.oxidation-chamber.description = Converts beryllium and ozone into oxide. Emits heat as a by-product.
-block.electric-heater.description = Heats facing blocks. Requires large amounts of power.
-block.slag-heater.description = Heats facing blocks. Requires slag.
-block.phase-heater.description = Heats facing blocks. Requires phase fabric.
-block.heat-redirector.description = Redirects accumulated heat to other blocks.
+block.core-bastion.description = 基地的核心。具有裝甲。一旦所有基地核心被摧毀,此區域即戰敗。
+block.core-citadel.description = 基地的核心。裝甲厚實。儲存的資源比核心:碉堡更多。
+block.core-acropolis.description = 基地的核心。裝甲極佳。儲存的資源比核心:壁壘更多。
+block.breach.description = 對敵方單位發射穿透性的鈹或鎢砲彈。
+block.diffuse.description = 在寬廣的錐形範圍內發射砲彈,擊退敵方單位。
+block.sublimate.description = 對敵方單位發射連續的火焰射流。穿透敵方護盾。
+block.titan.description = 對地面單位發射巨大的爆炸砲彈。需要氫氣。
+block.afflict.description = 發射大型的帶電破片高射炮彈。需要熱量。
+block.disperse.description = 對敵方空中單位發射高射炮彈。
+block.lustre.description = 對敵方單位發射移動緩慢的單一目標雷射。
+block.scathe.description = 對遠處的敵方地面單位發射強大的導彈。
+block.smite.description = 發射穿透性的閃電砲彈。
+block.malign.description = 對敵方單位發射一連串的追蹤雷射導彈。需要大量熱量。
+block.silicon-arc-furnace.description = 從沙和石墨中提煉矽。
+block.oxidation-chamber.description = 將鈹和臭氧轉化為氧化鈹。過程中產生熱量。
+block.electric-heater.description = 加熱面向的建築。需要大量的電力。
+block.slag-heater.description = 加熱面向的建築。需要熔渣。
+block.phase-heater.description = 加熱面向的建築。需要相織布。
+block.heat-redirector.description = 將累積的熱量重新導向到其他建築。
block.small-heat-redirector.description = Redirects accumulated heat to other blocks.
-block.heat-router.description = Spreads accumulated heat in three output directions.
-block.electrolyzer.description = Converts water into hydrogen and ozone gas.
-block.atmospheric-concentrator.description = Concentrates nitrogen from the atmosphere. Requires heat.
-block.surge-crucible.description = Forms surge alloy from slag and silicon. Requires heat.
-block.phase-synthesizer.description = Synthesizes phase fabric from thorium, sand, and ozone. Requires heat.
-block.carbide-crucible.description = Fuses graphite and tungsten into carbide. Requires heat.
-block.cyanogen-synthesizer.description = Synthesizes cyanogen from arkycite and graphite. Requires heat.
-block.slag-incinerator.description = Incinerates non-volatile items or liquids. Requires slag.
-block.vent-condenser.description = Condenses vent gases into water. Consumes power.
-block.plasma-bore.description = When placed facing an ore wall, outputs items indefinitely. Requires small amounts of power.
-block.large-plasma-bore.description = A larger plasma bore. Capable of mining tungsten and thorium. Requires hydrogen and power.
-block.cliff-crusher.description = Crushes walls, outputting sand indefinitely. Requires power. Efficiency varies based on type of wall.
+block.heat-router.description = 朝三個方向傳播累積的熱量。
+block.electrolyzer.description = 將水轉換為氫氣和臭氧。輸出的兩種氣體於相反方向輸出,由對應的顏色表示。
+block.atmospheric-concentrator.description = 從大氣中濃縮氮氣。需要熱量。
+block.surge-crucible.description = 從熔渣和矽合成波動合金。需要熱量。
+block.phase-synthesizer.description = 從釷、沙子和臭氧合成相織布。需要熱量。
+block.carbide-crucible.description = 將石墨和鎢融合成碳化鎢。需要熱量。
+block.cyanogen-synthesizer.description = 從芳油和石墨合成氰氣。需要熱量。
+block.slag-incinerator.description = 燃燒穩定的物品或液體。需要熔渣。
+block.vent-condenser.description = 將噴口的氣體凝結成水。消耗電力。
+block.plasma-bore.description = 當放置在礦牆面前時,無限的輸出物品。需要少量電力。
+block.large-plasma-bore.description = 更大的電漿鑽頭。能夠挖掘鎢和釷。需要氫氣和電力。
+block.cliff-crusher.description = 粉碎牆壁,無限的輸出沙子。需要電力。效率取決於牆壁類型。
block.large-cliff-crusher.description = Crushes walls, outputting sand indefinitely. Requires power and ozone. Efficiency varies based on type of wall. Optionally consumes tungsten to increase efficiency.
-block.impact-drill.description = When placed on ore, outputs items in bursts indefinitely. Requires power and water.
-block.eruption-drill.description = An improved impact drill. Capable of mining thorium. Requires hydrogen.
-block.reinforced-conduit.description = Moves fluids forward. Doesn't accept non-conduit inputs to the sides.
-block.reinforced-liquid-router.description = Distributes fluids equally to all sides.
-block.reinforced-liquid-tank.description = Stores a large amount of fluids.
-block.reinforced-liquid-container.description = Stores a sizeable amount of fluids.
-block.reinforced-bridge-conduit.description = Transports fluids over structures and terrain.
-block.reinforced-pump.description = Pumps and outputs liquids. Requires hydrogen.
-block.beryllium-wall.description = Protects structures from enemy projectiles.
-block.beryllium-wall-large.description = Protects structures from enemy projectiles.
-block.tungsten-wall.description = Protects structures from enemy projectiles.
-block.tungsten-wall-large.description = Protects structures from enemy projectiles.
-block.carbide-wall.description = Protects structures from enemy projectiles.
-block.carbide-wall-large.description = Protects structures from enemy projectiles.
-block.reinforced-surge-wall.description = Protects structures from enemy projectiles, periodically launching electric arcs upon projectile contact.
-block.reinforced-surge-wall-large.description = Protects structures from enemy projectiles, periodically launching electric arcs upon projectile contact.
-block.shielded-wall.description = Protects structures from enemy projectiles. Deploys a shield that absorbs most projectiles when power is provided. Conducts power.
-block.blast-door.description = A wall that opens when allied ground units are in range. Cannot be manually controlled.
-block.duct.description = Moves items forward. Only capable of storing a single item.
-block.armored-duct.description = Moves items forward. Does not accept non-duct inputs from the sides.
-block.duct-router.description = Distributes items equally across three directions. Only accepts items from the back side. Can be configured as an item sorter.
-block.overflow-duct.description = Only outputs items to the sides if the front path is blocked.
-block.duct-bridge.description = Moves items over structures and terrain.
-block.duct-unloader.description = Unloads the selected item from the block behind it. Cannot unload from cores.
-block.underflow-duct.description = Opposite of an overflow duct. Outputs to the front if the left and right paths are blocked.
-block.reinforced-liquid-junction.description = Acts as a junction between two crossing conduits.
-block.surge-conveyor.description = Moves items in batches. Can be sped up with power. Conducts power.
-block.surge-router.description = Equally distributes items in three directions from surge conveyors. Can be sped up with power. Conducts power.
-block.unit-cargo-loader.description = Constructs cargo drones. Drones automatically distribute items to Cargo Unload Points with a matching filter.
-block.unit-cargo-unload-point.description = Acts as an unloading point for cargo drones. Accepts items that match the selected filter.
-block.beam-node.description = Transmits power to other blocks orthogonally. Stores a small amount of power.
-block.beam-tower.description = Transmits power to other blocks orthogonally. Stores a large amount of power. Long-range.
-block.turbine-condenser.description = Generates power when placed on vents. Produces a small amount of water.
-block.chemical-combustion-chamber.description = Generates power from arkycite and ozone.
-block.pyrolysis-generator.description = Generates large amounts of power from arkycite and slag. Produces water as a byproduct.
-block.flux-reactor.description = Generates large amounts of power when heated. Requires cyanogen as a stabilizer. Power output and cyanogen requirements are proportional to heat input.\nExplodes if insufficient cyanogen is provided.
-block.neoplasia-reactor.description = Uses arkycite, water and phase fabric to generate large amounts of power. Produces heat and dangerous neoplasm as a byproduct.\nExplodes violently if neoplasm is not removed from the reactor via conduits.
-block.build-tower.description = Automatically rebuilds structures in range and assists other units in construction.
-block.regen-projector.description = Slowly repairs allied structures in a square perimeter. Requires hydrogen.
-block.reinforced-container.description = Stores a small amount of items. Contents can be retrieved via unloaders. Does not increase core storage capacity.
-block.reinforced-vault.description = Stores a large amount of items. Contents can be retrieved via unloaders. Does not increase core storage capacity.
-block.tank-fabricator.description = Constructs Stell units. Outputted units can be used directly, or moved into refabricators for upgrading.
-block.ship-fabricator.description = Constructs Elude units. Outputted units can be used directly, or moved into refabricators for upgrading.
-block.mech-fabricator.description = Constructs Merui units. Outputted units can be used directly, or moved into refabricators for upgrading.
-block.tank-assembler.description = Assembles large tanks out of inputted blocks and units. Output tier may be increased by adding modules.
-block.ship-assembler.description = Assembles large ships out of inputted blocks and units. Output tier may be increased by adding modules.
-block.mech-assembler.description = Assembles large mechs out of inputted blocks and units. Output tier may be increased by adding modules.
-block.tank-refabricator.description = Upgrades inputted tank units to the second tier.
-block.ship-refabricator.description = Upgrades inputted ship units to the second tier.
-block.mech-refabricator.description = Upgrades inputted mech units to the second tier.
-block.prime-refabricator.description = Upgrades inputted units to the third tier.
-block.basic-assembler-module.description = Increases assembler tier when placed next to a construction boundary. Requires power. Can be used as a payload input.
-block.small-deconstructor.description = Deconstructs inputted structures and units. Returns 100% of the build cost.
-block.reinforced-payload-conveyor.description = Moves payloads forward.
-block.reinforced-payload-router.description = Distributes payloads into adjacent blocks. Functions as a sorter when a filter is set.
-block.payload-mass-driver.description = Long-range payload transport structure. Shoots received payloads to linked payload mass drivers.
-block.large-payload-mass-driver.description = Long-range payload transport structure. Shoots received payloads to linked payload mass drivers.
-block.unit-repair-tower.description = Repairs all units in its vicinity. Requires ozone.
-block.radar.description = Gradually uncovers terrain and enemy units in a large radius. Requires power.
-block.shockwave-tower.description = Damages and destroys enemy projectiles in a radius. Requires cyanogen.
-block.canvas.description = Displays a simple image with a pre-defined palette. Editable.
+block.impact-drill.description = 當放置在礦石上時,無限的輸出物品。需要電力和水。
+block.eruption-drill.description = 改良型衝擊鑽頭。能夠挖掘釷。需要氫氣。
+block.reinforced-conduit.description = 將液體向前移動。不接受側邊的非強化管線輸入。
+block.reinforced-liquid-router.description = 將液體均勻分佈到所有側邊方向。
+block.reinforced-liquid-tank.description = 儲存大量的液體。
+block.reinforced-liquid-container.description = 儲存數量可觀的液體。
+block.reinforced-bridge-conduit.description = 使液體可以穿越建築與地形。
+block.reinforced-pump.description = 泵送並輸出液體。需要氫氣。
+block.beryllium-wall.description = 保護建築免受敵方砲彈的攻擊。
+block.beryllium-wall-large.description = 保護建築免受敵方砲彈的攻擊。
+block.tungsten-wall.description = 保護建築免受敵方砲彈的攻擊。
+block.tungsten-wall-large.description = 保護建築免受敵方砲彈的攻擊。
+block.carbide-wall.description = 保護建築免受敵方砲彈的攻擊。
+block.carbide-wall-large.description = 保護建築免受敵方砲彈的攻擊。
+block.reinforced-surge-wall.description = 保護建築免受敵方砲彈的攻擊,並定期在砲彈接觸時發射電弧。
+block.reinforced-surge-wall-large.description = 保護建築免受敵方砲彈的攻擊,並定期在砲彈接觸時發射電弧。
+block.shielded-wall.description = 保護建築免受敵方砲彈的攻擊。在提供能量時展開一個可以吸收大部分砲彈的護盾。可導電。
+block.blast-door.description = 當友軍地面單位進入範圍時,牆壁開啟。無法手動控制。
+block.duct.description = 將物品向前移動。只能存儲一個物品。
+block.armored-duct.description = 將物品向前移動。不接受側邊的非類真空管輸入。
+block.duct-router.description = 在三個方向上均勻分佈物品。只接受後方的物品。可作為物品分類器。
+block.overflow-duct.description = 只有在前方通道被阻塞時,才向側邊輸出物品。
+block.duct-bridge.description = 使物品可以穿越建築與地形。
+block.duct-unloader.description = 從其後的建築卸載所選擇的物品。無法從基地核心卸載。
+block.underflow-duct.description = 溢流器的相反作用。只有左右通道均被阻塞時,才向前輸出。
+block.reinforced-liquid-junction.description = 在兩個交叉強化管線之間起連接作用。
+block.surge-conveyor.description = 批量移動物品。可以用電力加速。可導電。
+block.surge-router.description = 從波動輸送帶均勻分佈物品到三個方向。可以用能量加速。可導電。
+block.unit-cargo-loader.description = 構造貨物無人機。無人機自動將物品分配到具有選定相同物品的貨物卸載點。
+block.unit-cargo-unload-point.description = 作為貨物無人機的卸載點。接受與過濾器相同的物品。
+block.beam-node.description = 垂直地向其他建築傳送能量。儲存一小部分能量。
+block.beam-tower.description = 垂直地向其他建築傳送能量。儲存大量能量。遠距離。
+block.beam-link.description = Transmits power over vast distances.\nOnly capable of connecting to adjacent structures or other beam links.
+block.turbine-condenser.description = 放置在噴口上時生成電力。產生少量水。
+block.chemical-combustion-chamber.description = 從芳油和臭氧產生電力。
+block.pyrolysis-generator.description = 從芳油和熔渣生成大量的電力。產生水作為副產物。
+block.flux-reactor.description = 當加熱時產生大量電力。需要氰氣作為穩定劑。電力輸出和氰氣需求與加熱輸入成正比。\n如果提供的氰氣不足,則會爆炸。
+block.neoplasia-reactor.description = 使用芳油、水和相織布生成大量的電力。產生熱和危險的囊胞液作為副產品。\n如果不通過強化管線從反應器中去除囊胞液,則會發生劇烈爆炸。
+block.build-tower.description = 自動重建範圍內的建築並協助其他單位建造。
+block.regen-projector.description = 慢慢修復周圍範圍內的友軍建築。需要臭氧。
+block.reinforced-container.description = 儲存一小部分物品。內容可以通過卸載器取出。不增加基地核心的儲存容量。
+block.reinforced-vault.description = 儲存大量的物品。內容可以通過卸載器取出。不增加基地核心的儲存容量。
+block.tank-fabricator.description = 建造戰車單位。輸出的單位可以直接使用,或移入戰車重塑者進行升級。
+block.ship-fabricator.description = 建造飛船單位。輸出的單位可以直接使用,或移入飛船重塑者進行升級。
+block.mech-fabricator.description = 建造機甲單位。輸出的單位可以直接使用,或移入機甲重塑者進行升級。
+block.tank-assembler.description = 通過輸入的方塊和單位組裝大型戰車。可以通過支援組裝廠增加輸出等級。
+block.ship-assembler.description = 通過輸入的方塊和單位組裝大型飛船。可以通過支援組裝廠增加輸出等級。
+block.mech-assembler.description = 通過輸入的方塊和單位組裝大型機甲。可以通過支援組裝廠增加輸出等級。
+block.tank-refabricator.description = 將輸入的戰車單位升級到第二級。
+block.ship-refabricator.description = 將輸入的飛船單位升級到第二級。
+block.mech-refabricator.description = 將輸入的機甲單位升級到第二級。
+block.prime-refabricator.description = 將輸入的單位升級到第三級。
+block.basic-assembler-module.description = 當放置在建造邊界旁邊時,可增加組裝廠等級。需要電力。可以用作重物輸入。
+block.small-deconstructor.description = 拆解輸入的建築和單位。返回建造成本的100%。
+block.reinforced-payload-conveyor.description = 將重物向前移動。
+block.reinforced-payload-router.description = 將重物均勻分配到相鄰的方塊。設置過濾器時,可以作為分類器使用。
+block.payload-mass-driver.description = 遠距離重物運輸建築。將接收到的重物射擊到連接的重物質量驅動器。
+block.large-payload-mass-driver.description = 遠距離重物運輸建築。將接收到的重物射擊到連接的重物質量驅動器。
+block.unit-repair-tower.description = 修復其周圍所有單位。需要臭氧。
+block.radar.description = 逐漸顯示大範圍內的地形和敵方單位。需要電力。
+block.shockwave-tower.description = 在一定範圍內破壞和摧毀敵方砲彈。需要氰氣。
+block.canvas.description = 顯示使用預設調色板的簡單圖像。可編輯。
+
unit.dagger.description = 發射普通子彈攻擊附近敵人。
unit.mace.description = 噴發烈焰攻擊所有附近敵人。
@@ -2347,28 +2403,31 @@ unit.oxynoe.description = 射出帶回復建築的火焰。具小型方陣炮。
unit.cyerce.description = 發射追蹤集束飛彈。修復友方單位。
unit.aegires.description = 電擊所有在能量場內的敵方單位、建築。修復友方單位。
unit.navanax.description = 發射電磁脈衝砲彈。能對敵方電力建築造成大量傷害,並修復友方建築。具4座雷射自動砲台攻擊附近敵人。
-unit.stell.description = Fires standard bullets at enemy targets.
-unit.locus.description = Fires alternating bullets at enemy targets.
-unit.precept.description = Fires piercing cluster bullets at enemy targets.
-unit.vanquish.description = Fires large piercing splitting bullets at enemy targets.
-unit.conquer.description = Fires large piercing cascades of bullets at enemy targets.
-unit.merui.description = Fires long-range artillery at enemy ground targets. Can step over most terrain.
-unit.cleroi.description = Fires dual shells at enemy targets. Targets enemy projectiles with point defense turrets. Can step over most terrain.
-unit.anthicus.description = Fires long-range homing missiles at enemy targets. Can step over most terrain.
-unit.tecta.description = Fires homing plasma missiles at enemy targets. Protects itself with a directional shield. Can step over most terrain.
-unit.collaris.description = Fires long-range fragmenting artillery at enemy targets. Can step over most terrain.
-unit.elude.description = Fires pairs of homing bullets at enemy targets. Can float over bodies of liquid.
-unit.avert.description = Fires twisting pairs of bullets at enemy targets.
-unit.obviate.description = Fires twisting pairs of lightning orbs at enemy targets.
-unit.quell.description = Fires long-range homing missiles at enemy targets. Suppresses enemy structure repair blocks.
-unit.disrupt.description = Fires long-range homing suppression missiles at enemy targets. Suppresses enemy structure repair blocks.
-unit.evoke.description = Builds structures to defend the Bastion core. Repairs structures with a beam.
-unit.incite.description = Builds structures to defend the Citadel core. Repairs structures with a beam.
-unit.emanate.description = Builds structures to defend the Acropolis core. Repairs structures with beams.
+
+#Erekir
+unit.stell.description = 向敵方目標發射標準子彈。
+unit.locus.description = 向敵方目標交替發射子彈。
+unit.precept.description = 向敵方目標發射穿透性集束子彈。
+unit.vanquish.description = 向敵方目標發射大型穿透分裂子彈。
+unit.conquer.description = 向敵方目標發射大型穿透連續子彈串。
+unit.merui.description = 向敵方地面目標發射遠程炮彈。可以跨越大多數地形。
+unit.cleroi.description = 向敵方目標發射雙彈。使用點防禦炮塔瞄準敵方砲彈。可以跨越大多數地形。
+unit.anthicus.description = 向敵方目標發射遠程導彈。可以跨越大多數地形。
+unit.tecta.description = 向敵方目標發射導彈。通過前方謢盾保護自己。可以跨越大多數地形。
+unit.collaris.description = 向敵方目標發射遠程破片炮彈。可以跨越大多數地形。
+unit.elude.description = 向敵方目標發射成對的導彈。可以漂浮在液體上。
+unit.avert.description = 向敵方目標發射螺旋狀子彈對。
+unit.obviate.description = 向敵方目標發射螺旋狀閃電球對。
+unit.quell.description = 向敵方目標發射遠程導彈。抑制敵方建築修復方塊。
+unit.disrupt.description = 向敵方目標發射遠程導彈。抑制敵方建築修復方塊。
+unit.evoke.description = 建造建築以保護核心:碉堡。用光束修復建築。
+unit.incite.description = 建造建築以保護核心:壁壘。用光束修復建築。
+unit.emanate.description = 建造建築以保護核心:衛城。用光束修復建築。
lst.read = [accent]讀取[]記憶體中的一項數值
lst.write = [accent]寫入[]一項數值到記憶體中
lst.print = 將文字加入輸出的暫存中,搭配[accent]Print Flush[], [accent]Flush message[]使用
+lst.printchar = Add a UTF-16 character or content icon to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used.
lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example"
lst.draw = 將圖形加入顯示的暫存中,搭配[accent]Draw Flush[]使用
lst.drawflush = 將所有暫存的[accent]Draw[]指令推到顯示器上
@@ -2456,6 +2515,7 @@ lenum.shootp = 對指定單位/建築開火,具自瞄功能
lenum.config = 建築設置,例如分類器篩选的物品種類
lenum.enabled = 確認該建築是否啟用
laccess.currentammotype = Current ammo item/liquid of a turret.
+laccess.memorycapacity = Number of cells in a memory block.
laccess.color = 照明燈顏色
laccess.controller = 單位的控制者。受處理器控制時回傳處理器。\n在隊形中回傳領導的單位。\n否則回傳單位自己。
@@ -2463,22 +2523,23 @@ laccess.dead = 單位或建築是否已死亡或不存在。
laccess.controlled = 將回傳:\n處理器控制:[accent]@ctrlProcessor[]\n玩家控制:[accent]@ctrlPlayer[]\n在隊形中:[accent]@ctrlFormation[]\n其他:[accent]0[]。
laccess.progress = 建造、生產進度。以 0 到 1 表示。以及砲台裝填。
laccess.speed = 單位最快速度(格子/秒)
+laccess.size = Size of a unit/building or the length of a string.
laccess.id = ID of a unit/block/item/liquid.\nThis is the inverse of the lookup operation.
lcategory.unknown = 未知
lcategory.unknown.description = Uncategorized instructions.
lcategory.io = 輸入和輸出
-lcategory.io.description = Modify contents of memory blocks and processor buffers.
-lcategory.block = Block Control
-lcategory.block.description = Interact with blocks.
-lcategory.operation = Operations
-lcategory.operation.description = Logical operations.
-lcategory.control = Flow Control
-lcategory.control.description = Manage execution order.
-lcategory.unit = Unit Control
-lcategory.unit.description = Give units commands.
-lcategory.world = World
-lcategory.world.description = Control how the world behaves.
+lcategory.io.description = 修改記憶體與處理器快取。
+lcategory.block = 方塊控制
+lcategory.block.description = 與方塊互動。
+lcategory.operation = 操作
+lcategory.operation.description = 邏輯操作。
+lcategory.control = 流程控制
+lcategory.control.description = 控制指令埶行的順序。
+lcategory.unit = 單位控制
+lcategory.unit.description = 給予單位指令。
+lcategory.world = 世界
+lcategory.world.description = 控制世界的行為
graphicstype.clear = 重製版面為指定顏色
graphicstype.color = 為後續所有圖畫指令設定顏色
@@ -2510,13 +2571,13 @@ lenum.xor = 位元 XOR
lenum.min = 兩數取小
lenum.max = 兩數取大
-lenum.angle = 向量與x軸夾角
+lenum.angle = 向量與X軸夾角
lenum.anglediff = Absolute distance between two angles in degrees.
lenum.len = 向量長度
-lenum.sin = 度數Sin值
-lenum.cos = 度數Cos值
-lenum.tan = 度數Tan值
+lenum.sin = 度數sin值
+lenum.cos = 度數cos值
+lenum.tan = 度數tan值
lenum.asin = Arc sin,輸出度數
lenum.acos = Arc cos,輸出度數
@@ -2608,3 +2669,29 @@ lenum.autoscale = Whether to scale marker corresponding to player's zoom level.
lenum.posi = Indexed position, used for line and quad markers with index zero being the first position.
lenum.uvi = Texture's position ranging from zero to one, used for quad markers.
lenum.colori = Indexed position, used for line and quad markers with index zero being the first color.
+lenum.wavetimer = Whether the waves come automatically on a timer. If not, waves come when the play button is pressed.
+lenum.wave = Current wave number. Can be anything in non-wave modes.
+lenum.currentwavetime = Wave countdown in ticks.
+lenum.waves = Whether waves are spawnable at all.
+lenum.wavesending = Whether the waves can be manually summoned with the play button.
+lenum.attackmode = Determines if gamemode is attack mode.
+lenum.wavespacing = Time between waves in ticks.
+lenum.enemycorebuildradius = No-build zone around enemy core radius.
+lenum.dropzoneradius = Radius around enemy wave drop zones.
+lenum.unitcap = Base unit cap. Can still be increased by blocks.
+lenum.lighting = Whether ambient lighting is enabled.
+lenum.buildspeed = Multiplier for building speed.
+lenum.unithealth = How much health units start with.
+lenum.unitbuildspeed = How fast unit factories build units.
+lenum.unitcost = Multiplier of resources that units take to build.
+lenum.unitdamage = How much damage units deal.
+lenum.blockhealth = How much health blocks start with.
+lenum.blockdamage = How much damage blocks (turrets) deal.
+lenum.rtsminweight = Minimum "advantage" needed for a squad to attack. Higher -> more cautious.
+lenum.rtsminsquad = Minimum size of attack squads.
+lenum.maparea = Playable map area. Anything outside the area will not be interactable.
+lenum.ambientlight = Ambient light color. Used when lighting is enabled.
+lenum.solarmultiplier = Multiplies power output of solar panels.
+lenum.dragmultiplier = Environment drag multiplier.
+lenum.ban = Blocks or units that cannot be placed or built.
+lenum.unban = Unban a unit or block.
diff --git a/core/assets/contributors b/core/assets/contributors
index 8bcc1913ab..82d02c2a1e 100644
--- a/core/assets/contributors
+++ b/core/assets/contributors
@@ -28,7 +28,7 @@ William So
beito
BeefEX
Lorex
-老滑稽
+老滑稽/酪桦姬
Spico The Spirit Guy
RTOmega
TunacanGamer
@@ -67,7 +67,7 @@ Ameb
player20033
Ignacy
J-VdS
-Kenny
+Kevin Vilyan - Kenny
Franciszek Zaranowicz
Andreas Heiskanen
Doyoung Gwak
@@ -146,7 +146,7 @@ BlueWolf
[Error_27]
code-explorer786
Alex25820
-KayAyeAre
+Nullotte
SMOLKEYS
1stvaliduser(SUS)
GlennFolker
@@ -170,3 +170,7 @@ Mythril
hexagon-recursion
JasonP01
BlueTheCube
+sasha0552
+1ue999
+6-BennyLi-9
+SeuEarth
diff --git a/core/assets/icons/icons.properties b/core/assets/icons/icons.properties
index 31ea8113d5..bf5c4dd164 100755
--- a/core/assets/icons/icons.properties
+++ b/core/assets/icons/icons.properties
@@ -592,4 +592,10 @@
63090=remove-ore|block-remove-ore-ui
63089=small-heat-redirector|block-small-heat-redirector-ui
63088=large-cliff-crusher|block-large-cliff-crusher-ui
-63087=tile-logic-display|block-tile-logic-display-ui
+63087=scathe-missile-phase|unit-scathe-missile-phase-ui
+63086=scathe-missile-surge|unit-scathe-missile-surge-ui
+63085=scathe-missile-surge-split|unit-scathe-missile-surge-split-ui
+63084=advanced-launch-pad|block-advanced-launch-pad-ui
+63083=landing-pad|block-landing-pad-ui
+63082=stone-vent|block-stone-vent-ui
+63081=basalt-vent|block-basalt-vent-ui
diff --git a/core/assets/logicids.dat b/core/assets/logicids.dat
index 51d71438c0..e690bd925b 100644
Binary files a/core/assets/logicids.dat and b/core/assets/logicids.dat differ
diff --git a/core/assets/maps/atolls.msav b/core/assets/maps/atolls.msav
index 42a70ab90c..0ac39f4802 100644
Binary files a/core/assets/maps/atolls.msav and b/core/assets/maps/atolls.msav differ
diff --git a/core/assets/maps/crossroads.msav b/core/assets/maps/crossroads.msav
index 535724643d..c45de2a146 100644
Binary files a/core/assets/maps/crossroads.msav and b/core/assets/maps/crossroads.msav differ
diff --git a/core/assets/maps/extractionOutpost.msav b/core/assets/maps/extractionOutpost.msav
index 6ea0ae63dd..5bf8b21cdd 100644
Binary files a/core/assets/maps/extractionOutpost.msav and b/core/assets/maps/extractionOutpost.msav differ
diff --git a/core/assets/maps/frontier.msav b/core/assets/maps/frontier.msav
index 765c4082ce..fde3f6d03a 100644
Binary files a/core/assets/maps/frontier.msav and b/core/assets/maps/frontier.msav differ
diff --git a/core/assets/maps/fungalPass.msav b/core/assets/maps/fungalPass.msav
index 6ef6328c79..a8f41b5fb4 100644
Binary files a/core/assets/maps/fungalPass.msav and b/core/assets/maps/fungalPass.msav differ
diff --git a/core/assets/maps/marsh.msav b/core/assets/maps/marsh.msav
index 13b23e2b22..8e81d20bc9 100644
Binary files a/core/assets/maps/marsh.msav and b/core/assets/maps/marsh.msav differ
diff --git a/core/assets/maps/origin.msav b/core/assets/maps/origin.msav
index c04eba0728..f0ad24faf7 100644
Binary files a/core/assets/maps/origin.msav and b/core/assets/maps/origin.msav differ
diff --git a/core/assets/maps/overgrowth.msav b/core/assets/maps/overgrowth.msav
index e13fd71bf5..4642caa623 100644
Binary files a/core/assets/maps/overgrowth.msav and b/core/assets/maps/overgrowth.msav differ
diff --git a/core/assets/maps/planetaryTerminal.msav b/core/assets/maps/planetaryTerminal.msav
index 96459e74e0..6ddbe77403 100644
Binary files a/core/assets/maps/planetaryTerminal.msav and b/core/assets/maps/planetaryTerminal.msav differ
diff --git a/core/assets/maps/ruinousShores.msav b/core/assets/maps/ruinousShores.msav
index 22c4fe7908..f6a83ae13d 100644
Binary files a/core/assets/maps/ruinousShores.msav and b/core/assets/maps/ruinousShores.msav differ
diff --git a/core/assets/maps/stainedMountains.msav b/core/assets/maps/stainedMountains.msav
index ca4ad5dc6e..70c5d10b6d 100644
Binary files a/core/assets/maps/stainedMountains.msav and b/core/assets/maps/stainedMountains.msav differ
diff --git a/core/assets/maps/windsweptIslands.msav b/core/assets/maps/windsweptIslands.msav
index 32daa4dbff..11ebdea882 100644
Binary files a/core/assets/maps/windsweptIslands.msav and b/core/assets/maps/windsweptIslands.msav differ
diff --git a/core/assets/music/coreLaunch.ogg b/core/assets/music/coreLaunch.ogg
index b4a1b55a68..4dd82b35b8 100644
Binary files a/core/assets/music/coreLaunch.ogg and b/core/assets/music/coreLaunch.ogg differ
diff --git a/core/assets/music/land.ogg b/core/assets/music/land.ogg
index ef81ccc90a..d9ea5aa88c 100644
Binary files a/core/assets/music/land.ogg and b/core/assets/music/land.ogg differ
diff --git a/core/assets/scripts/global.js b/core/assets/scripts/global.js
index d91fe9950c..b5a4c8740f 100755
--- a/core/assets/scripts/global.js
+++ b/core/assets/scripts/global.js
@@ -158,6 +158,7 @@ const UnlockEvent = Packages.mindustry.game.EventType.UnlockEvent
const StateChangeEvent = Packages.mindustry.game.EventType.StateChangeEvent
const CoreChangeEvent = Packages.mindustry.game.EventType.CoreChangeEvent
const BuildTeamChangeEvent = Packages.mindustry.game.EventType.BuildTeamChangeEvent
+const TileFloorChangeEvent = Packages.mindustry.game.EventType.TileFloorChangeEvent
const TileChangeEvent = Packages.mindustry.game.EventType.TileChangeEvent
const TilePreChangeEvent = Packages.mindustry.game.EventType.TilePreChangeEvent
const BuildDamageEvent = Packages.mindustry.game.EventType.BuildDamageEvent
@@ -190,6 +191,8 @@ const WorldLoadEvent = Packages.mindustry.game.EventType.WorldLoadEvent
const FileTreeInitEvent = Packages.mindustry.game.EventType.FileTreeInitEvent
const MusicRegisterEvent = Packages.mindustry.game.EventType.MusicRegisterEvent
const ClientLoadEvent = Packages.mindustry.game.EventType.ClientLoadEvent
+const ModContentLoadEvent = Packages.mindustry.game.EventType.ModContentLoadEvent
+const AtlasPackEvent = Packages.mindustry.game.EventType.AtlasPackEvent
const ContentInitEvent = Packages.mindustry.game.EventType.ContentInitEvent
const BlockInfoEvent = Packages.mindustry.game.EventType.BlockInfoEvent
const CoreItemDeliverEvent = Packages.mindustry.game.EventType.CoreItemDeliverEvent
diff --git a/core/assets/shaders/arkycite.frag b/core/assets/shaders/arkycite.frag
index 863b3f6d64..2cee1a7b8e 100644
--- a/core/assets/shaders/arkycite.frag
+++ b/core/assets/shaders/arkycite.frag
@@ -46,9 +46,5 @@ void main(){
color.rgb = S2;
}
- if(orig.g > 0.01){
- color = max(S1, color);
- }
-
- gl_FragColor = color;
+ gl_FragColor = vec4(max(S1, color).rgb, orig.a);
}
diff --git a/core/assets/shaders/blockbuild.frag b/core/assets/shaders/blockbuild.frag
index 78cfd6e9c8..b227d899df 100644
--- a/core/assets/shaders/blockbuild.frag
+++ b/core/assets/shaders/blockbuild.frag
@@ -7,6 +7,7 @@ uniform vec2 u_uv;
uniform vec2 u_uv2;
uniform float u_progress;
uniform float u_time;
+uniform float u_alpha;
varying vec4 v_color;
varying vec2 v_texCoords;
@@ -27,6 +28,10 @@ bool cont(vec2 T, vec2 v){
id(T + vec2(-step, -step) * v, base) || id(T + vec2(-step, step) * v, base));
}
+vec4 blend(vec4 dst, vec4 src){
+ return src * src.a + dst * (1.0 - src.a);
+}
+
void main(){
vec2 t = v_texCoords.xy;
@@ -41,11 +46,11 @@ void main(){
float dst = (abs(center.x - coords.x) + abs(center.y - coords.y))/2.0;
if((mod(u_time / 1.5 + value, 20.0) < 15.0 && cont(t, v))){
- gl_FragColor = v_color;
+ gl_FragColor = blend(color, v_color) * vec4(vec3(1.0), u_alpha);
}else if(dst > (1.0-u_progress) * (center.x)){
- gl_FragColor = color;
+ gl_FragColor = color * vec4(vec3(1.0), u_alpha);
}else if((dst + 2.0 > (1.0-u_progress) * (center.x)) && color.a > 0.1){
- gl_FragColor = v_color;
+ gl_FragColor = blend(color, v_color) * vec4(vec3(1.0), u_alpha);
}else{
gl_FragColor = vec4(0.0);
}
diff --git a/core/assets/shaders/slag.frag b/core/assets/shaders/slag.frag
index 2750d32ecd..696dcdf884 100755
--- a/core/assets/shaders/slag.frag
+++ b/core/assets/shaders/slag.frag
@@ -15,16 +15,22 @@ uniform float u_time;
varying vec2 v_texCoords;
void main(){
- vec2 c = v_texCoords.xy;
- vec2 coords = vec2(c.x * u_resolution.x + u_campos.x, c.y * u_resolution.y + u_campos.y);
+ vec2 coords = v_texCoords * u_resolution + u_campos;
float btime = u_time / 5000.0;
float noise = (texture2D(u_noise, (coords) / NSCALE + vec2(btime) * vec2(-0.9, 0.8)).r + texture2D(u_noise, (coords) / NSCALE + vec2(btime * 1.1) * vec2(0.8, -1.0)).r) / 2.0;
+
+ //TODO: pack noise texture
+ vec2 c = v_texCoords + (vec2(
+ texture2D(u_noise, (coords) / 170.0 + vec2(btime) * vec2(-0.9, 0.8)).r,
+ texture2D(u_noise, (coords) / 170.0 + vec2(btime * 1.1) * vec2(0.8, -1.0)).r
+ ) - vec2(0.5)) * 8.0 / u_resolution;
+
vec4 color = texture2D(u_texture, c);
if(noise > 0.6){
color.rgb = S2;
- }else if (noise > 0.54){
+ }else if(noise > 0.54){
color.rgb = S1;
}
diff --git a/core/src/mindustry/ClientLauncher.java b/core/src/mindustry/ClientLauncher.java
index 3e2fbca7df..8990cb0200 100644
--- a/core/src/mindustry/ClientLauncher.java
+++ b/core/src/mindustry/ClientLauncher.java
@@ -55,6 +55,7 @@ public abstract class ClientLauncher extends ApplicationCore implements Platform
Log.info("[GL] Version: @", graphics.getGLVersion());
Log.info("[GL] Max texture size: @", maxTextureSize);
Log.info("[GL] Using @ context.", gl30 != null ? "OpenGL 3" : "OpenGL 2");
+ if(gl30 == null) Log.warn("[GL] Your device or video drivers do not support OpenGL 3. This will cause performance issues.");
if(NvGpuInfo.hasMemoryInfo()){
Log.info("[GL] Total available VRAM: @mb", NvGpuInfo.getMaxMemoryKB()/1024);
}
@@ -206,6 +207,8 @@ public abstract class ClientLauncher extends ApplicationCore implements Platform
@Override
public void update(){
+ PerfCounter.update.begin();
+
int targetfps = Core.settings.getInt("fpscap", 120);
boolean changed = lastTargetFps != targetfps && lastTargetFps != -1;
boolean limitFps = targetfps > 0 && targetfps <= 240;
@@ -256,6 +259,8 @@ public abstract class ClientLauncher extends ApplicationCore implements Platform
Threads.sleep(toSleep / 1000000, (int)(toSleep % 1000000));
}
}
+
+ PerfCounter.update.end();
}
@Override
diff --git a/core/src/mindustry/Vars.java b/core/src/mindustry/Vars.java
index c17d5a2ec6..635430017f 100644
--- a/core/src/mindustry/Vars.java
+++ b/core/src/mindustry/Vars.java
@@ -28,7 +28,6 @@ import mindustry.net.*;
import mindustry.service.*;
import mindustry.ui.dialogs.*;
import mindustry.world.*;
-import mindustry.world.blocks.storage.*;
import mindustry.world.meta.*;
import java.io.*;
@@ -47,8 +46,14 @@ public class Vars implements Loadable{
public static boolean loadedLogger = false, loadedFileLogger = false;
/** Name of current Steam player. */
public static String steamPlayerName = "";
+ /** Min game version for all mods. */
+ public static final int minModGameVersion = 136;
+ /** Min game version for java mods specifically - this is higher, as Java mods have more breaking changes. */
+ public static final int minJavaModGameVersion = 147;
/** If true, the BE server list is always used. */
public static boolean forceBeServers = false;
+ /** If true, mod code and scripts do not run. For internal testing only. This WILL break mods if enabled. */
+ public static boolean skipModCode = false;
/** Default accessible content types used for player-selectable icons. */
public static final ContentType[] defaultContentIcons = {ContentType.item, ContentType.liquid, ContentType.block, ContentType.unit};
/** Default rule environment. */
@@ -69,7 +74,7 @@ public class Vars implements Loadable{
public static final String ghApi = "https://api.github.com";
/** URL for discord invite. */
public static final String discordURL = "https://discord.gg/mindustry";
- /** URL the links to the wiki's modding guide.*/
+ /** Link to the wiki's modding guide.*/
public static final String modGuideURL = "https://mindustrygame.github.io/wiki/modding/1-modding/";
/** 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"};
@@ -81,6 +86,8 @@ public class Vars implements Loadable{
public static final String reportIssueURL = "https://github.com/Anuken/Mindustry/issues/new?labels=bug&template=bug_report.md";
/** list of built-in servers.*/
public static final Seq defaultServers = Seq.with();
+ /** maximum openGL errors logged */
+ public static final int maxGlErrors = 100;
/** maximum size of any block, do not change unless you know what you're doing */
public static final int maxBlockSize = 16;
/** maximum distance between mine and core that supports automatic transferring */
@@ -109,8 +116,6 @@ public class Vars implements Loadable{
public static final float invasionGracePeriod = 20;
/** min armor fraction damage; e.g. 0.05 = at least 5% damage */
public static final float minArmorDamage = 0.1f;
- /** @deprecated see {@link CoreBlock#landDuration} instead! */
- public static final @Deprecated float coreLandDuration = 160f;
/** size of tiles in units */
public static final int tilesize = 8;
/** size of one tile payload (^2) */
@@ -265,7 +270,7 @@ public class Vars implements Loadable{
public static NetServer netServer;
public static NetClient netClient;
- public static Player player;
+ public static @Nullable Player player;
@Override
public void loadAsync(){
@@ -494,7 +499,11 @@ public class Vars implements Loadable{
//router
if(locale.toString().equals("router")){
- bundle.debug("router");
+ I18NBundle defBundle = I18NBundle.createBundle(Core.files.internal("bundles/bundle"));
+ String router = Character.toString(Iconc.blockRouter);
+ for(String s : bundle.getKeys()){
+ bundle.getProperties().put(s, Strings.stripColors(defBundle.get(s)).replaceAll("\\S", router));
+ }
}
}
}
diff --git a/core/src/mindustry/ai/BaseBuilderAI.java b/core/src/mindustry/ai/BaseBuilderAI.java
index 3df72adb70..e9126f6ca5 100644
--- a/core/src/mindustry/ai/BaseBuilderAI.java
+++ b/core/src/mindustry/ai/BaseBuilderAI.java
@@ -258,7 +258,7 @@ public class BaseBuilderAI{
//queue it
for(Stile tile : result.tiles){
- data.plans.add(new BlockPlan(cx + tile.x, cy + tile.y, tile.rotation, tile.block.id, tile.config));
+ data.plans.add(new BlockPlan(cx + tile.x, cy + tile.y, tile.rotation, tile.block, tile.config));
}
return true;
diff --git a/core/src/mindustry/ai/BaseRegistry.java b/core/src/mindustry/ai/BaseRegistry.java
index d37f7b8826..32a81d04b4 100644
--- a/core/src/mindustry/ai/BaseRegistry.java
+++ b/core/src/mindustry/ai/BaseRegistry.java
@@ -82,7 +82,7 @@ public class BaseRegistry{
}
schem.tiles.removeAll(s -> s.block.buildVisibility == BuildVisibility.sandboxOnly);
- part.tier = schem.tiles.sumf(s -> Mathf.pow(s.block.buildCost / s.block.buildCostMultiplier, 1.4f));
+ part.tier = schem.tiles.sumf(s -> Mathf.pow(s.block.buildTime / s.block.buildCostMultiplier, 1.4f));
if(part.core != null){
cores.add(part);
diff --git a/core/src/mindustry/ai/BlockIndexer.java b/core/src/mindustry/ai/BlockIndexer.java
index 7f944a3eb0..1206dc71d1 100644
--- a/core/src/mindustry/ai/BlockIndexer.java
+++ b/core/src/mindustry/ai/BlockIndexer.java
@@ -7,6 +7,8 @@ import arc.math.geom.*;
import arc.struct.*;
import arc.util.*;
import mindustry.content.*;
+import mindustry.entities.*;
+import mindustry.entities.Units.*;
import mindustry.game.EventType.*;
import mindustry.game.*;
import mindustry.game.Teams.*;
@@ -14,6 +16,7 @@ import mindustry.gen.*;
import mindustry.logic.*;
import mindustry.type.*;
import mindustry.world.*;
+import mindustry.world.blocks.environment.*;
import mindustry.world.meta.*;
import static mindustry.Vars.*;
@@ -28,11 +31,13 @@ public class BlockIndexer{
private int quadWidth, quadHeight;
/** Stores all ore quadrants on the map. Maps ID to qX to qY to a list of tiles with that ore. */
- private IntSeq[][][] ores;
+ private IntSeq[][][] ores, wallOres;
/** Stores all damaged tile entities by team. */
private Seq[] damagedTiles = new Seq[Team.all.length];
+ /** All ores present on the map - can be wall or floor. */
+ private Seq allPresentOres = new Seq<>();
/** All ores available on this map. */
- private ObjectIntMap allOres = new ObjectIntMap<>();
+ private ObjectIntMap allOres = new ObjectIntMap<>(), allWallOres = new ObjectIntMap<>();
/** Stores teams that are present here as tiles. */
private Seq activeTeams = new Seq<>(Team.class);
/** Maps teams to a map of flagged tiles by flag. */
@@ -41,6 +46,8 @@ public class BlockIndexer{
private boolean[] blocksPresent;
/** Array used for returning and reusing. */
private Seq breturnArray = new Seq<>(Building.class);
+ /** Maps block flag to a list of floor tiles that have it. */
+ private Seq[] floorMap;
public BlockIndexer(){
clearFlags();
@@ -53,15 +60,23 @@ public class BlockIndexer{
addIndex(event.tile);
});
+ Events.on(TileFloorChangeEvent.class, event -> {
+ removeFloorIndex(event.tile, event.previous);
+ addFloorIndex(event.tile, event.floor);
+ });
+
Events.on(WorldLoadEvent.class, event -> {
damagedTiles = new Seq[Team.all.length];
flagMap = new Seq[Team.all.length][BlockFlag.all.length];
+ floorMap = new Seq[BlockFlag.all.length];
activeTeams = new Seq<>(Team.class);
clearFlags();
allOres.clear();
+ allWallOres.clear();
ores = new IntSeq[content.items().size][][];
+ wallOres = new IntSeq[content.items().size][][];
quadWidth = Mathf.ceil(world.width() / (float)quadrantSize);
quadHeight = Mathf.ceil(world.height() / (float)quadrantSize);
blocksPresent = new boolean[content.blocks().size];
@@ -78,28 +93,67 @@ public class BlockIndexer{
for(Tile tile : world.tiles){
process(tile);
- var drop = tile.drop();
+ addFloorIndex(tile, tile.floor());
- if(drop != null){
- int qx = (tile.x / quadrantSize);
- int qy = (tile.y / quadrantSize);
-
- //add position of quadrant to list
- if(tile.block() == Blocks.air){
- if(ores[drop.id] == null){
- ores[drop.id] = new IntSeq[quadWidth][quadHeight];
- }
- if(ores[drop.id][qx][qy] == null){
- ores[drop.id][qx][qy] = new IntSeq(false, 16);
- }
+ Item drop;
+ int qx = tile.x / quadrantSize, qy = tile.y / quadrantSize;
+ if(tile.block() == Blocks.air){
+ if((drop = tile.drop()) != null){
+ //add position of quadrant to list
+ if(ores[drop.id] == null) ores[drop.id] = new IntSeq[quadWidth][quadHeight];
+ if(ores[drop.id][qx][qy] == null) ores[drop.id][qx][qy] = new IntSeq(false, 16);
ores[drop.id][qx][qy].add(tile.pos());
allOres.increment(drop);
}
+ }else if((drop = tile.wallDrop()) != null){
+ //add position of quadrant to list
+ if(wallOres[drop.id] == null) wallOres[drop.id] = new IntSeq[quadWidth][quadHeight];
+ if(wallOres[drop.id][qx][qy] == null) wallOres[drop.id][qx][qy] = new IntSeq(false, 16);
+ wallOres[drop.id][qx][qy].add(tile.pos());
+ allWallOres.increment(drop);
}
}
+
+ updatePresentOres();
});
}
+ public Seq getAllPresentOres(){
+ return allPresentOres;
+ }
+
+ private void updatePresentOres(){
+ allPresentOres.clear();
+ for(Item item : content.items()){
+ if(hasOre(item) || hasWallOre(item)){
+ allPresentOres.add(item);
+ }
+ }
+ }
+
+ private void removeFloorIndex(Tile tile, Floor floor){
+ if(floor.flags.size == 0) return;
+
+ for(var flag : floor.flags.array){
+ getFlaggedFloors(flag).remove(tile);
+ }
+ }
+
+ private void addFloorIndex(Tile tile, Floor floor){
+ if(floor.flags.size == 0 || !floor.shouldIndex(tile)) return;
+
+ for(var flag : floor.flags.array){
+ getFlaggedFloors(flag).add(tile);
+ }
+ }
+
+ public Seq getFlaggedFloors(BlockFlag flag){
+ if(floorMap[flag.ordinal()] == null){
+ floorMap[flag.ordinal()] = new Seq<>(false);
+ }
+ return floorMap[flag.ordinal()];
+ }
+
public void removeIndex(Tile tile){
var team = tile.team();
if(tile.build != null && tile.isCenter()){
@@ -143,30 +197,37 @@ public class BlockIndexer{
public void addIndex(Tile tile){
process(tile);
- var drop = tile.drop();
- if(drop != null && ores != null){
- int qx = tile.x / quadrantSize;
- int qy = tile.y / quadrantSize;
+ Item drop = tile.drop(), wallDrop = tile.wallDrop();
+ if(drop == null && wallDrop == null) return;
+ int qx = tile.x / quadrantSize, qy = tile.y / quadrantSize;
+ int pos = tile.pos();
- if(ores[drop.id] == null){
- ores[drop.id] = new IntSeq[quadWidth][quadHeight];
- }
- if(ores[drop.id][qx][qy] == null){
- ores[drop.id][qx][qy] = new IntSeq(false, 16);
- }
-
- int pos = tile.pos();
- var seq = ores[drop.id][qx][qy];
-
- if(tile.block() == Blocks.air){
- //add the index if it is a valid new spot to mine at
- if(!seq.contains(pos)){
- seq.add(pos);
- allOres.increment(drop);
+ if(tile.block() == Blocks.air){
+ if(drop != null){ //floor
+ if(ores[drop.id] == null) ores[drop.id] = new IntSeq[quadWidth][quadHeight];
+ if(ores[drop.id][qx][qy] == null) ores[drop.id][qx][qy] = new IntSeq(false, 16);
+ if(ores[drop.id][qx][qy].addUnique(pos)){
+ int old = allOres.increment(drop); //increment ore count only if not already counted
+ if(old == 0) updatePresentOres();
}
- }else if(seq.contains(pos)){ //otherwise, it likely became blocked, remove it
- seq.removeValue(pos);
- allOres.increment(drop, -1);
+ }
+ if(wallDrop != null && wallOres != null && wallOres[wallDrop.id] != null && wallOres[wallDrop.id][qx][qy] != null && wallOres[wallDrop.id][qx][qy].removeValue(pos)){ //wall
+ int old = allWallOres.increment(wallDrop, -1);
+ if(old == 1) updatePresentOres();
+ }
+ }else{
+ if(wallDrop != null){ //wall
+ if(wallOres[wallDrop.id] == null) wallOres[wallDrop.id] = new IntSeq[quadWidth][quadHeight];
+ if(wallOres[wallDrop.id][qx][qy] == null) wallOres[wallDrop.id][qx][qy] = new IntSeq(false, 16);
+ if(wallOres[wallDrop.id][qx][qy].addUnique(pos)){
+ int old = allWallOres.increment(wallDrop); //increment ore count only if not already counted
+ if(old == 0) updatePresentOres();
+ }
+ }
+
+ if(drop != null && ores != null && ores[drop.id] != null&& ores[drop.id][qx][qy] != null && ores[drop.id][qx][qy].removeValue(pos)){ //floor
+ int old = allOres.increment(drop, -1);
+ if(old == 1) updatePresentOres();
}
}
@@ -194,6 +255,11 @@ public class BlockIndexer{
return allOres.get(item) > 0;
}
+ /** @return whether this item is present on this map as a wall ore. */
+ public boolean hasWallOre(Item item){
+ return allWallOres.get(item) > 0;
+ }
+
/** Returns all damaged tiles by team. */
public Seq getDamaged(Team team){
if(damagedTiles[team.id] == null){
@@ -348,7 +414,7 @@ public class BlockIndexer{
breturnArray.size = 0;
}
- public Building findEnemyTile(Team team, float x, float y, float range, Boolf pred){
+ public Building findEnemyTile(Team team, float x, float y, float range, BuildingPriorityf priority, Boolf pred){
Building target = null;
float targetDist = 0;
@@ -362,10 +428,10 @@ public class BlockIndexer{
//if a block has the same priority, the closer one should be targeted
float dist = candidate.dst(x, y) - candidate.hitSize() / 2f;
if(target == null ||
- //if its closer and is at least equal priority
- (dist < targetDist && candidate.block.priority >= target.block.priority) ||
- // block has higher priority (so range doesnt matter)
- (candidate.block.priority > target.block.priority)){
+ //if it is closer and is at least equal priority
+ (dist < targetDist && priority.priority(candidate) >= priority.priority(target)) ||
+ // block has higher priority (so range doesn't matter)
+ priority.priority(candidate) > priority.priority(target)){
target = candidate;
targetDist = dist;
}
@@ -374,6 +440,10 @@ public class BlockIndexer{
return target;
}
+ public Building findEnemyTile(Team team, float x, float y, float range, Boolf pred){
+ return findEnemyTile(team, x, y, range, UnitSorts.buildingDefault, pred);
+ }
+
public Building findTile(Team team, float x, float y, float range, Boolf pred){
return findTile(team, x, y, range, pred, false);
}
@@ -432,11 +502,43 @@ public class BlockIndexer{
return null;
}
+ /** Find the closest ore wall relative to a position. */
+ public Tile findClosestWallOre(float xp, float yp, Item item){
+ //(stolen from foo's client :))))
+ if(wallOres[item.id] != null){
+ float minDst = 0f;
+ Tile closest = null;
+ for(int qx = 0; qx < quadWidth; qx++){
+ for(int qy = 0; qy < quadHeight; qy++){
+ var arr = wallOres[item.id][qx][qy];
+ if(arr != null && arr.size > 0){
+ Tile tile = world.tile(arr.first());
+ if(tile.block() != Blocks.air){
+ float dst = Mathf.dst2(xp, yp, tile.worldx(), tile.worldy());
+ if(closest == null || dst < minDst){
+ closest = tile;
+ minDst = dst;
+ }
+ }
+ }
+ }
+ }
+ return closest;
+ }
+
+ return null;
+ }
+
/** Find the closest ore block relative to a position. */
public Tile findClosestOre(Unit unit, Item item){
return findClosestOre(unit.x, unit.y, item);
}
+ /** Find the closest ore block relative to a position. */
+ public Tile findClosestWallOre(Unit unit, Item item){
+ return findClosestWallOre(unit.x, unit.y, item);
+ }
+
private void process(Tile tile){
var team = tile.team();
//only process entity changes with centered tiles
diff --git a/core/src/mindustry/ai/ControlPathfinder.java b/core/src/mindustry/ai/ControlPathfinder.java
index ba9e3e6c75..ece85f2792 100644
--- a/core/src/mindustry/ai/ControlPathfinder.java
+++ b/core/src/mindustry/ai/ControlPathfinder.java
@@ -1082,21 +1082,6 @@ public class ControlPathfinder implements Runnable{
return raycast(unit.team().id, unit.type.pathCost, x1, y1, x2, y2);
}
- @Deprecated
- public int nextTargetId(){
- return 0;
- }
-
- @Deprecated
- public boolean getPathPosition(Unit unit, int pathId, Vec2 destination, Vec2 out){
- return getPathPosition(unit, pathId, destination, out, null);
- }
-
- @Deprecated
- public boolean getPathPosition(Unit unit, int pathId, Vec2 destination, Vec2 out, @Nullable boolean[] noResultFound){
- return getPathPosition(unit, destination, destination, out, noResultFound);
- }
-
public boolean getPathPosition(Unit unit, Vec2 destination, Vec2 out, @Nullable boolean[] noResultFound){
return getPathPosition(unit, destination, destination, out, noResultFound);
}
diff --git a/core/src/mindustry/ai/Pathfinder.java b/core/src/mindustry/ai/Pathfinder.java
index c6a2ed0528..e9557655c6 100644
--- a/core/src/mindustry/ai/Pathfinder.java
+++ b/core/src/mindustry/ai/Pathfinder.java
@@ -5,6 +5,7 @@ import arc.func.*;
import arc.math.*;
import arc.math.geom.*;
import arc.struct.*;
+import arc.util.TaskQueue;
import arc.util.*;
import mindustry.annotations.Annotations.*;
import mindustry.core.*;
@@ -16,11 +17,14 @@ import mindustry.world.blocks.environment.*;
import mindustry.world.blocks.storage.*;
import mindustry.world.meta.*;
+import java.util.*;
+
import static mindustry.Vars.*;
import static mindustry.world.meta.BlockFlag.*;
public class Pathfinder implements Runnable{
private static final long maxUpdate = Time.millisToNanos(8);
+ private static final int neverRefresh = Integer.MAX_VALUE;
private static final int updateFPS = 60;
private static final int updateInterval = 1000 / updateFPS;
@@ -30,44 +34,66 @@ public class Pathfinder implements Runnable{
static final int impassable = -1;
public static final int
- fieldCore = 0;
+ fieldCore = 0,
+ maxFields = 10;
public static final Seq> fieldTypes = Seq.with(
- EnemyCoreField::new
+ EnemyCoreField::new
);
public static final int
- costGround = 0,
- costLegs = 1,
- costNaval = 2;
+ costGround = 0,
+ costLegs = 1,
+ costNaval = 2,
+ costNeoplasm = 3,
+ costNone = 4,
+ costHover = 5,
+
+ maxCosts = 8;
public static final Seq costTypes = Seq.with(
- //ground
- (team, tile) ->
- (PathTile.allDeep(tile) || ((PathTile.team(tile) == team && !PathTile.teamPassable(tile)) || PathTile.team(tile) == 0) && PathTile.solid(tile)) ? impassable : 1 +
- PathTile.health(tile) * 5 +
- (PathTile.nearSolid(tile) ? 2 : 0) +
- (PathTile.nearLiquid(tile) ? 6 : 0) +
- (PathTile.deep(tile) ? 6000 : 0) +
- (PathTile.damages(tile) ? 30 : 0),
+ //ground
+ (team, tile) ->
+ (PathTile.allDeep(tile) || ((PathTile.team(tile) == team && !PathTile.teamPassable(tile)) || PathTile.team(tile) == 0) && PathTile.solid(tile)) ? impassable : 1 +
+ PathTile.health(tile) * 5 +
+ (PathTile.nearSolid(tile) ? 2 : 0) +
+ (PathTile.nearLiquid(tile) ? 6 : 0) +
+ (PathTile.deep(tile) ? 6000 : 0) +
+ (PathTile.damages(tile) ? 30 : 0),
- //legs
- (team, tile) ->
- PathTile.legSolid(tile) ? impassable : 1 +
- (PathTile.deep(tile) ? 6000 : 0) + //leg units can now drown
- (PathTile.solid(tile) ? 5 : 0),
+ //legs
+ (team, tile) ->
+ PathTile.legSolid(tile) ? impassable : 1 +
+ (PathTile.deep(tile) ? 6000 : 0) + //leg units can now drown
+ (PathTile.solid(tile) ? 5 : 0),
- //water
- (team, tile) ->
- (!PathTile.liquid(tile) ? 6000 : 1) +
- PathTile.health(tile) * 5 +
- (PathTile.nearGround(tile) || PathTile.nearSolid(tile) ? 14 : 0) +
- (PathTile.deep(tile) ? 0 : 1) +
- (PathTile.damages(tile) ? 35 : 0)
+ //water
+ (team, tile) ->
+ (!PathTile.liquid(tile) ? 6000 : 1) +
+ PathTile.health(tile) * 5 +
+ (PathTile.nearGround(tile) || PathTile.nearSolid(tile) ? 14 : 0) +
+ (PathTile.deep(tile) ? 0 : 1) +
+ (PathTile.damages(tile) ? 35 : 0),
+
+ //neoplasm veins
+ (team, tile) ->
+ (PathTile.deep(tile) || (PathTile.team(tile) == 0 && PathTile.solid(tile))) ? impassable : 1 +
+ (PathTile.health(tile) * 3) +
+ (PathTile.nearSolid(tile) ? 2 : 0) +
+ (PathTile.nearLiquid(tile) ? 2 : 0),
+
+ //none (flat cost)
+ (team, tile) -> 1,
+
+ //hover
+ (team, tile) ->
+ (((PathTile.team(tile) == team && !PathTile.teamPassable(tile)) || PathTile.team(tile) == 0) && PathTile.solid(tile)) ? impassable : 1 +
+ PathTile.health(tile) * 5 +
+ (PathTile.nearSolid(tile) ? 2 : 0)
);
/** tile data, see PathTileStruct - kept as a separate array for threading reasons */
- int[] tiles = new int[0];
+ int[] tiles = {};
/** maps team, cost, type to flow field*/
Flowfield[][][] cache;
@@ -79,6 +105,8 @@ public class Pathfinder implements Runnable{
@Nullable Thread thread;
IntSeq tmpArray = new IntSeq();
+ boolean needsRefresh;
+
public Pathfinder(){
clearCache();
@@ -93,6 +121,7 @@ public class Pathfinder implements Runnable{
mainList = new Seq<>();
clearCache();
+
for(int i = 0; i < tiles.length; i++){
Tile tile = world.tiles.geti(i);
tiles[i] = packTile(tile);
@@ -146,10 +175,36 @@ public class Pathfinder implements Runnable{
}
}
});
+
+ Events.run(Trigger.afterGameUpdate, () -> {
+ //only refresh periodically (every 2 frames) to batch flowfield updates
+ //TODO: is it worth switching to a timestamp based system instead that updates every X milliseconds?
+ if(needsRefresh && Core.graphics.getFrameId() % 2 == 0){
+ needsRefresh = false;
+
+ //can't iterate through array so use the map, which should not lead to problems
+ for(Flowfield path : mainList){
+ //paths with a refresh rate should not be updated by tiles changing
+ if(path != null && path.needsRefresh()){
+ synchronized(path.targets){
+ //TODO: this is super slow and forces a refresh for every tile changed!
+ path.updateTargetPositions();
+ }
+ }
+ }
+
+ //mark every flow field as dirty, so it updates when it's done
+ queue.post(() -> {
+ for(Flowfield data : threadList){
+ data.dirty = true;
+ }
+ });
+ }
+ });
}
private void clearCache(){
- cache = new Flowfield[256][5][5];
+ cache = new Flowfield[256][maxCosts][maxFields];
}
/** Packs a tile into its internal representation. */
@@ -178,19 +233,19 @@ public class Pathfinder implements Runnable{
int tid = tile.getTeamID();
return PathTile.get(
- tile.build == null || !solid || tile.block() instanceof CoreBlock ? 0 : Math.min((int)(tile.build.health / 40), 80),
- tid == 0 && tile.build != null && state.rules.coreCapture ? 255 : tid, //use teamid = 255 when core capture is enabled to mark out derelict structures
- solid,
- tile.floor().isLiquid,
- tile.legSolid(),
- nearLiquid,
- nearGround,
- nearSolid,
- nearLegSolid,
- tile.floor().isDeep(),
- tile.floor().damageTaken > 0.00001f,
- allDeep,
- tile.block().teamPassable
+ tile.build == null || !solid || tile.block() instanceof CoreBlock ? 0 : Math.min((int)(tile.build.health / 40), 80),
+ tid == 0 && tile.build != null && state.rules.coreCapture ? 255 : tid, //use teamid = 255 when core capture is enabled to mark out derelict structures
+ solid,
+ tile.floor().isLiquid,
+ tile.legSolid(),
+ nearLiquid,
+ nearGround,
+ nearSolid,
+ nearLegSolid,
+ tile.floor().isDeep(),
+ tile.floor().damageTaken > 0.00001f,
+ allDeep,
+ tile.block().teamPassable
);
}
@@ -216,6 +271,7 @@ public class Pathfinder implements Runnable{
thread = null;
}
queue.clear();
+ needsRefresh = false;
}
/** Update a tile in the internal pathfinding grid.
@@ -230,23 +286,10 @@ public class Pathfinder implements Runnable{
}
});
- //can't iterate through array so use the map, which should not lead to problems
- for(Flowfield path : mainList){
- if(path != null){
- synchronized(path.targets){
- path.updateTargetPositions();
- }
- }
- }
-
- //mark every flow field as dirty, so it updates when it's done
- queue.post(() -> {
- for(Flowfield data : threadList){
- data.dirty = true;
- }
- });
-
controlPath.updateTile(tile);
+
+ //queue a refresh sometime in the future
+ needsRefresh = true;
}
/** Thread implementation. */
@@ -300,48 +343,55 @@ public class Pathfinder implements Runnable{
/** Gets next tile to travel to. Main thread only. */
public @Nullable Tile getTargetTile(Tile tile, Flowfield path){
+ return getTargetTile(tile, path, true);
+ }
+
+ /** Gets next tile to travel to. Main thread only. */
+ public @Nullable Tile getTargetTile(Tile tile, Flowfield path, boolean diagonals){
if(tile == null) return null;
//uninitialized flowfields are not applicable
- if(!path.initialized){
+ //also ignore paths with no targets, there is no destination
+ if(!path.initialized || path.targets.size == 0){
return tile;
}
//if refresh rate is positive, queue a refresh
- if(path.refreshRate > 0 && Time.timeSinceMillis(path.lastUpdateTime) > path.refreshRate){
+ if(path.refreshRate > 0 && path.refreshRate != neverRefresh && Time.timeSinceMillis(path.lastUpdateTime) > path.refreshRate && path.frontier.size == 0){
path.lastUpdateTime = Time.millis();
tmpArray.clear();
path.getPositions(tmpArray);
synchronized(path.targets){
- //make sure the position actually changed
- if(!(path.targets.size == 1 && tmpArray.size == 1 && path.targets.first() == tmpArray.first())){
- path.updateTargetPositions();
+ path.updateTargetPositions();
- //queue an update
- queue.post(() -> updateTargets(path));
- }
+ //queue an update
+ queue.post(() -> updateTargets(path));
}
}
//use complete weights if possible; these contain a complete flow field that is not being updated
int[] values = path.hasComplete ? path.completeWeights : path.weights;
- int apos = tile.array();
+ int res = path.resolution;
+ int ww = path.width;
+ int apos = tile.x/res + tile.y/res * ww;
int value = values[apos];
+ var points = diagonals ? Geometry.d8 : Geometry.d4;
+
Tile current = null;
int tl = 0;
- for(Point2 point : Geometry.d8){
- int dx = tile.x + point.x, dy = tile.y + point.y;
+ for(Point2 point : points){
+ int dx = tile.x + point.x * res, dy = tile.y + point.y * res;
Tile other = world.tile(dx, dy);
if(other == null) continue;
- int packed = world.packArray(dx, dy);
+ int packed = dx/res + dy/res * ww;
if(values[packed] < value && (current == null || values[packed] < tl) && path.passable(packed) &&
- !(point.x != 0 && point.y != 0 && (!path.passable(world.packArray(tile.x + point.x, tile.y)) || !path.passable(world.packArray(tile.x, tile.y + point.y))))){ //diagonal corner trap
+ !(point.x != 0 && point.y != 0 && (!path.passable(((tile.x + point.x)/res + tile.y/res*ww)) || !path.passable((tile.x/res + (tile.y + point.y)/res*ww))))){ //diagonal corner trap
current = other;
tl = values[packed];
}
@@ -358,13 +408,21 @@ public class Pathfinder implements Runnable{
//increment search, but do not clear the frontier
path.search++;
+ //search overflow; reset everything.
+ if(path.search >= Short.MAX_VALUE){
+ Arrays.fill(path.searches, (short)0);
+ path.search = 1;
+ }
+
synchronized(path.targets){
//add targets
for(int i = 0; i < path.targets.size; i++){
int pos = path.targets.get(i);
+ if(pos >= path.weights.length) continue;
+
path.weights[pos] = 0;
- path.searches[pos] = path.search;
+ path.searches[pos] = (short)path.search;
path.frontier.addFirst(pos);
}
}
@@ -383,7 +441,7 @@ public class Pathfinder implements Runnable{
*/
private void registerPath(Flowfield path){
path.lastUpdateTime = Time.millis();
- path.setup(tiles.length);
+ path.setup();
threadList.add(path);
@@ -391,9 +449,7 @@ public class Pathfinder implements Runnable{
Core.app.post(() -> mainList.add(path));
//fill with impassables by default
- for(int i = 0; i < tiles.length; i++){
- path.weights[i] = impassable;
- }
+ Arrays.fill(path.weights, impassable);
//add targets
for(int i = 0; i < path.targets.size; i++){
@@ -409,6 +465,7 @@ public class Pathfinder implements Runnable{
long start = Time.nanos();
int counter = 0;
+ int w = path.width, h = path.height;
while(path.frontier.size > 0){
int tile = path.frontier.removeLast();
@@ -416,7 +473,7 @@ public class Pathfinder implements Runnable{
int cost = path.weights[tile];
//pathfinding overflowed for some reason, time to bail. the next block update will handle this, hopefully
- if(path.frontier.size >= world.width() * world.height()){
+ if(path.frontier.size >= w * h){
path.frontier.clear();
return;
}
@@ -424,12 +481,12 @@ public class Pathfinder implements Runnable{
if(cost != impassable){
for(Point2 point : Geometry.d4){
- int dx = (tile % wwidth) + point.x, dy = (tile / wwidth) + point.y;
+ int dx = (tile % w) + point.x, dy = (tile / w) + point.y;
- if(dx < 0 || dy < 0 || dx >= wwidth || dy >= wheight) continue;
+ if(dx < 0 || dy < 0 || dx >= w || dy >= h) continue;
- int newPos = tile + point.x + point.y * wwidth;
- int otherCost = path.cost.getCost(path.team.id, tiles[newPos]);
+ int newPos = dx + dy * w;
+ int otherCost = path.getCost(tiles, newPos);
if((path.weights[newPos] > cost + otherCost || path.searches[newPos] < path.search) && otherCost != impassable){
path.frontier.addFirst(newPos);
@@ -516,7 +573,7 @@ public class Pathfinder implements Runnable{
* Concrete subclasses must specify a way to fetch costs and destinations.
*/
public static abstract class Flowfield{
- /** Refresh rate in milliseconds. Return any number <= 0 to disable. */
+ /** Refresh rate in milliseconds. <= 0 to disable. */
protected int refreshRate;
/** Team this path is for. Set before using. */
protected Team team = Team.derelict;
@@ -530,12 +587,16 @@ public class Pathfinder implements Runnable{
/** costs of getting to a specific tile */
public int[] weights;
/** search IDs of each position - the highest, most recent search is prioritized and overwritten */
- public int[] searches;
+ public short[] searches;
/** the last "complete" weights of this tilemap. */
public int[] completeWeights;
+ /** Scaling factor. For example, resolution = 2 means tiles are twice as large. */
+ public final int resolution;
+ public final int width, height;
+
/** search frontier, these are Pos objects */
- IntQueue frontier = new IntQueue();
+ final IntQueue frontier = new IntQueue();
/** all target positions; these positions have a cost of 0, and must be synchronized on! */
final IntSeq targets = new IntSeq();
/** current search ID */
@@ -545,14 +606,44 @@ public class Pathfinder implements Runnable{
/** whether this flow field is ready to be used */
boolean initialized;
- void setup(int length){
+ public Flowfield(){
+ this(1);
+ }
+
+ public Flowfield(int resolution){
+ this.resolution = resolution;
+ this.width = Mathf.ceil((float)wwidth / resolution);
+ this.height = Mathf.ceil((float)wheight / resolution);
+ }
+
+ void setup(){
+ int length = width * height;
+
this.weights = new int[length];
- this.searches = new int[length];
+ this.searches = new short[length];
this.completeWeights = new int[length];
this.frontier.ensureCapacity((length) / 4);
this.initialized = true;
}
+ public int getCost(int[] tiles, int pos){
+ return cost.getCost(team.id, tiles[pos]);
+ }
+
+ public boolean hasTargets(){
+ return targets.size > 0;
+ }
+
+ /** @return the next tile to travel to for this flowfield. Main thread only. */
+ public @Nullable Tile getNextTile(Tile from, boolean diagonals){
+ return pathfinder.getTargetTile(from, this, diagonals);
+ }
+
+ /** @return the next tile to travel to for this flowfield. Main thread only. */
+ public @Nullable Tile getNextTile(Tile from){
+ return pathfinder.getTargetTile(from, this);
+ }
+
public boolean hasCompleteWeights(){
return hasComplete && completeWeights != null;
}
@@ -562,6 +653,11 @@ public class Pathfinder implements Runnable{
getPositions(targets);
}
+ /** @return whether this flow field should be refreshed after the current block update */
+ public boolean needsRefresh(){
+ return refreshRate == 0;
+ }
+
protected boolean passable(int pos){
int amount = cost.getCost(team.id, pathfinder.tiles[pos]);
//edge case: naval reports costs of 6000+ for non-liquids, even though they are not technically passable
diff --git a/core/src/mindustry/ai/RtsAI.java b/core/src/mindustry/ai/RtsAI.java
index b97e58e464..a3b6a5b6b2 100644
--- a/core/src/mindustry/ai/RtsAI.java
+++ b/core/src/mindustry/ai/RtsAI.java
@@ -17,7 +17,6 @@ import mindustry.gen.*;
import mindustry.graphics.*;
import mindustry.logic.*;
import mindustry.ui.*;
-import mindustry.world.*;
import mindustry.world.blocks.defense.turrets.BaseTurret.*;
import mindustry.world.blocks.defense.turrets.*;
import mindustry.world.blocks.storage.*;
@@ -35,7 +34,7 @@ public class RtsAI{
//in order of priority??
static final BlockFlag[] flags = {BlockFlag.generator, BlockFlag.factory, BlockFlag.core, BlockFlag.battery, BlockFlag.drill};
static final ObjectFloatMap weights = new ObjectFloatMap<>();
- static final boolean debug = OS.hasProp("mindustry.debug");
+ static final boolean debug = OS.hasProp("mindustry.debug") && false;
final Interval timer = new Interval(10);
final TeamData data;
@@ -210,12 +209,12 @@ public class RtsAI{
//defendTarget = aggressor;
defendPos = new Vec2(aggressor.x, aggressor.y);
defendTarget = aggressor;
- }else if(false){ //TODO currently ignored, no use defending against nothing
+ //}else if(false){ //TODO currently ignored, no use defending against nothing
//should it even go there if there's no aggressor found?
- Tile closest = defend.findClosestEdge(units.first(), Tile::solid);
- if(closest != null){
- defendPos = new Vec2(closest.worldx(), closest.worldy());
- }
+ // Tile closest = defend.findClosestEdge(units.first(), Tile::solid);
+ // if(closest != null){
+ // defendPos = new Vec2(closest.worldx(), closest.worldy());
+ // }
}else{
float mindst = Float.MAX_VALUE;
Building build = null;
diff --git a/core/src/mindustry/ai/UnitCommand.java b/core/src/mindustry/ai/UnitCommand.java
index 85eff6be00..5708854109 100644
--- a/core/src/mindustry/ai/UnitCommand.java
+++ b/core/src/mindustry/ai/UnitCommand.java
@@ -3,7 +3,6 @@ package mindustry.ai;
import arc.*;
import arc.func.*;
import arc.scene.style.*;
-import arc.struct.*;
import arc.util.*;
import mindustry.ai.types.*;
import mindustry.ctype.*;
@@ -13,10 +12,6 @@ import mindustry.input.*;
/** Defines a pattern of behavior that an RTS-controlled unit should follow. Shows up in the command UI. */
public class UnitCommand extends MappableContent{
- /** @deprecated now a content type, use the methods in Vars.content instead */
- @Deprecated
- public static final Seq all = new Seq<>();
-
public static UnitCommand moveCommand, repairCommand, rebuildCommand, assistCommand, mineCommand, boostCommand, enterPayloadCommand, loadUnitsCommand, loadBlocksCommand, unloadPayloadCommand, loopPayloadCommand;
/** Name of UI icon (from Icon class). */
@@ -39,8 +34,6 @@ public class UnitCommand extends MappableContent{
this.icon = icon;
this.controller = controller == null ? u -> null : controller;
-
- all.add(this);
}
public UnitCommand(String name, String icon, Binding keybind, Func controller){
diff --git a/core/src/mindustry/ai/UnitStance.java b/core/src/mindustry/ai/UnitStance.java
index 8d4f59bb2e..4fb6ba5c30 100644
--- a/core/src/mindustry/ai/UnitStance.java
+++ b/core/src/mindustry/ai/UnitStance.java
@@ -2,30 +2,23 @@ package mindustry.ai;
import arc.*;
import arc.scene.style.*;
-import arc.struct.*;
import arc.util.*;
import mindustry.ctype.*;
import mindustry.gen.*;
import mindustry.input.*;
public class UnitStance extends MappableContent{
- /** @deprecated now a content type, use the methods in Vars.content instead */
- @Deprecated
- public static final Seq all = new Seq<>();
-
public static UnitStance stop, shoot, holdFire, pursueTarget, patrol, ram;
/** Name of UI icon (from Icon class). */
- public final String icon;
+ public String icon;
/** Key to press for this stance. */
- public @Nullable Binding keybind = null;
+ public @Nullable Binding keybind;
public UnitStance(String name, String icon, Binding keybind){
super(name);
this.icon = icon;
this.keybind = keybind;
-
- all.add(this);
}
public String localized(){
diff --git a/core/src/mindustry/ai/WaveSpawner.java b/core/src/mindustry/ai/WaveSpawner.java
index 7935418c5f..d3e4ccc651 100644
--- a/core/src/mindustry/ai/WaveSpawner.java
+++ b/core/src/mindustry/ai/WaveSpawner.java
@@ -82,9 +82,7 @@ public class WaveSpawner{
eachFlyerSpawn(group.spawn, (spawnX, spawnY) -> {
for(int i = 0; i < spawnedf; i++){
- Unit unit = group.createUnit(state.rules.waveTeam, state.wave - 1);
- unit.set(spawnX + Mathf.range(spread), spawnY + Mathf.range(spread));
- spawnEffect(unit);
+ spawnUnit(group, spawnX + Mathf.range(spread), spawnY + Mathf.range(spread));
}
});
}else{
@@ -95,9 +93,7 @@ public class WaveSpawner{
for(int i = 0; i < spawnedf; i++){
Tmp.v1.rnd(spread);
- Unit unit = group.createUnit(state.rules.waveTeam, state.wave - 1);
- unit.set(spawnX + Tmp.v1.x, spawnY + Tmp.v1.y);
- spawnEffect(unit);
+ spawnUnit(group, spawnX + Tmp.v1.x, spawnY + Tmp.v1.y);
}
});
}
@@ -106,6 +102,11 @@ public class WaveSpawner{
Time.run(121f, () -> spawning = false);
}
+ public void spawnUnit(SpawnGroup group, float x, float y){
+ group.createUnit(group.team == null ? state.rules.waveTeam : group.team, x, y,
+ Angles.angle(x, y, world.width()/2f * tilesize, world.height()/2f * tilesize), state.wave - 1, this::spawnEffect);
+ }
+
public void doShockwave(float x, float y){
Fx.spawnShockwave.at(x, y, state.rules.dropZoneRadius);
Damage.damage(state.rules.waveTeam, x, y, state.rules.dropZoneRadius, 99999999f, true);
@@ -217,15 +218,8 @@ public class WaveSpawner{
/** Applies the standard wave spawn effects to a unit - invincibility, unmoving. */
public void spawnEffect(Unit unit){
- spawnEffect(unit, unit.angleTo(world.width()/2f * tilesize, world.height()/2f * tilesize));
- }
-
- /** Applies the standard wave spawn effects to a unit - invincibility, unmoving. */
- public void spawnEffect(Unit unit, float rotation){
- unit.rotation = rotation;
unit.apply(StatusEffects.unmoving, 30f);
unit.apply(StatusEffects.invincible, 60f);
- unit.add();
unit.unloaded();
Events.fire(new UnitSpawnEvent(unit));
diff --git a/core/src/mindustry/ai/types/BuilderAI.java b/core/src/mindustry/ai/types/BuilderAI.java
index 4fa15db50e..5c8d904ea7 100644
--- a/core/src/mindustry/ai/types/BuilderAI.java
+++ b/core/src/mindustry/ai/types/BuilderAI.java
@@ -118,9 +118,10 @@ public class BuilderAI extends AIController{
Build.validPlace(req.block, unit.team(), req.x, req.y, req.rotation)));
if(valid){
+ float range = Math.min(unit.type.buildRange - 20f, 100f);
//move toward the plan
- moveTo(req.tile(), unit.type.buildRange - 20f, 20f);
- moving = !unit.within(req.tile(), unit.type.buildRange - 10f);
+ moveTo(req.tile(), range - 10f, 20f);
+ moving = !unit.within(req.tile(), range);
}else{
//discard invalid plan
unit.plans.removeFirst();
@@ -179,12 +180,12 @@ public class BuilderAI extends AIController{
BlockPlan block = blocks.first();
//check if it's already been placed
- if(world.tile(block.x, block.y) != null && world.tile(block.x, block.y).block().id == block.block){
+ if(world.tile(block.x, block.y) != null && world.tile(block.x, block.y).block() == block.block){
blocks.removeFirst();
- }else if(Build.validPlace(content.block(block.block), unit.team(), block.x, block.y, block.rotation) && (!alwaysFlee || !nearEnemy(block.x, block.y))){ //it's valid
+ }else if(Build.validPlace(block.block, unit.team(), block.x, block.y, block.rotation) && (!alwaysFlee || !nearEnemy(block.x, block.y))){ //it's valid
lastPlan = block;
//add build plan
- unit.addBuild(new BuildPlan(block.x, block.y, block.rotation, content.block(block.block), block.config));
+ unit.addBuild(new BuildPlan(block.x, block.y, block.rotation, block.block, block.config));
//shift build plan to tail so next unit builds something else
blocks.addLast(blocks.removeFirst());
}else{
diff --git a/core/src/mindustry/ai/types/CargoAI.java b/core/src/mindustry/ai/types/CargoAI.java
index 8fb522e900..fa3770831f 100644
--- a/core/src/mindustry/ai/types/CargoAI.java
+++ b/core/src/mindustry/ai/types/CargoAI.java
@@ -74,18 +74,20 @@ public class CargoAI extends AIController{
//deposit items when it's possible
if(max > 0){
- noDestTimer = 0f;
Call.transferItemTo(unit, unit.item(), max, unit.x, unit.y, unloadTarget);
- //try the next target later
+ //reset wait timer if we can't fill the unload point.
if(!unit.hasItem()){
- targetIndex ++;
+ noDestTimer = 0f;
}
- }else if((noDestTimer += dropSpacing) >= emptyWaitTime){
+ }
+ //keep the target for at most emptyWaitTime, then we try change if other need.
+ if((noDestTimer += dropSpacing) >= emptyWaitTime){
//oh no, it's out of space - wait for a while, and if nothing changes, try the next destination
//next targeting attempt will try the next destination point
targetIndex = findDropTarget(unit.item(), targetIndex, unloadTarget) + 1;
+ noDestTimer = 0f;
//nothing found at all, clear item
if(unloadTarget == null){
diff --git a/core/src/mindustry/ai/types/CommandAI.java b/core/src/mindustry/ai/types/CommandAI.java
index 9446e72aa3..452ee32bea 100644
--- a/core/src/mindustry/ai/types/CommandAI.java
+++ b/core/src/mindustry/ai/types/CommandAI.java
@@ -82,6 +82,15 @@ public class CommandAI extends AIController{
commandTarget(target, false);
}
+ //pursue the target for patrol, keeping the current position
+ if(stance == UnitStance.patrol && target != null && attackTarget == null){
+ //commanding a target overwrites targetPos, so add it to the queue
+ if(targetPos != null){
+ commandQueue.add(targetPos.cpy());
+ }
+ commandTarget(target, false);
+ }
+
//remove invalid targets
if(commandQueue.any()){
commandQueue.removeAll(e -> e instanceof Healthc h && !h.isValid());
@@ -123,6 +132,14 @@ public class CommandAI extends AIController{
}
}
+ @Override
+ public Teamc findMainTarget(float x, float y, float range, boolean air, boolean ground){
+ if(!unit.type.autoFindTarget && !(targetPos == null || nearAttackTarget(unit.x, unit.y, unit.range()))){
+ return null;
+ }
+ return super.findMainTarget(x, y, range, air, ground);
+ }
+
public void defaultBehavior(){
if(!net.client() && unit instanceof Payloadc pay){
@@ -164,28 +181,8 @@ public class CommandAI extends AIController{
}
}
- //acquiring naval targets isn't supported yet, so use the fallback dumb AI
- if(unit.team.isAI() && unit.team.rules().rtsAi && unit.type.naval){
- if(fallback == null) fallback = new GroundAI();
-
- if(fallback.unit() != unit) fallback.unit(unit);
- fallback.updateUnit();
- return;
- }
-
updateVisuals();
- //only autotarget if the unit supports it
- if((targetPos == null || nearAttackTarget(unit.x, unit.y, unit.range())) || unit.type.autoFindTarget){
- updateTargeting();
- }else if(attackTarget == null){
- //if the unit does not have an attack target, is currently moving, and does not have autotargeting, stop attacking stuff
- target = null;
- for(var mount : unit.mounts){
- if(mount.weapon.controllable){
- mount.target = null;
- }
- }
- }
+ updateTargeting();
if(attackTarget != null && invalid(attackTarget)){
attackTarget = null;
@@ -204,7 +201,7 @@ public class CommandAI extends AIController{
}
targetPos.set(attackTarget);
- if(unit.isGrounded() && attackTarget instanceof Building build && build.tile.solid() && unit.pathType() != Pathfinder.costLegs && stance != UnitStance.ram){
+ if(unit.isGrounded() && attackTarget instanceof Building build && build.tile.solid() && unit.type.pathCostId != ControlPathfinder.costIdLegs && stance != UnitStance.ram){
Tile best = build.findClosestEdge(unit, Tile::solid);
if(best != null){
targetPos.set(best);
@@ -473,7 +470,7 @@ public class CommandAI extends AIController{
@Override
public boolean retarget(){
//retarget faster when there is an explicit target
- return attackTarget != null ? timer.get(timerTarget, 10) : timer.get(timerTarget, 20);
+ return timer.get(timerTarget, attackTarget != null ? 10f : 20f);
}
public boolean hasCommand(){
diff --git a/core/src/mindustry/ai/types/DefenderAI.java b/core/src/mindustry/ai/types/DefenderAI.java
index 01c38e69c6..8ee3889083 100644
--- a/core/src/mindustry/ai/types/DefenderAI.java
+++ b/core/src/mindustry/ai/types/DefenderAI.java
@@ -28,7 +28,7 @@ public class DefenderAI extends AIController{
public Teamc findTarget(float x, float y, float range, boolean air, boolean ground){
//Sort by max health and closer target.
- var result = Units.closest(unit.team, x, y, Math.max(range, 400f), u -> !u.dead() && u.type != unit.type && u.targetable(unit.team) && u.type.playerControllable,
+ var result = Units.closest(unit.team, x, y, Math.max(range, 400f), u -> !u.dead() && u.type != unit.type && u.targetable(unit.team) && u.playerControllable(),
(u, tx, ty) -> -u.maxHealth + Mathf.dst2(u.x, u.y, tx, ty) / 6400f);
if(result != null) return result;
diff --git a/core/src/mindustry/ai/types/HugAI.java b/core/src/mindustry/ai/types/HugAI.java
index ff672ff5bc..09b4a22c9f 100644
--- a/core/src/mindustry/ai/types/HugAI.java
+++ b/core/src/mindustry/ai/types/HugAI.java
@@ -15,7 +15,6 @@ public class HugAI extends AIController{
@Override
public void updateMovement(){
-
Building core = unit.closestEnemyCore();
if(core != null && unit.within(core, unit.range() / 1.1f + core.block.size * tilesize / 2f)){
diff --git a/core/src/mindustry/ai/types/MinerAI.java b/core/src/mindustry/ai/types/MinerAI.java
index eb4307021b..822af9d5d7 100644
--- a/core/src/mindustry/ai/types/MinerAI.java
+++ b/core/src/mindustry/ai/types/MinerAI.java
@@ -1,6 +1,5 @@
package mindustry.ai.types;
-import mindustry.content.*;
import mindustry.entities.units.*;
import mindustry.gen.*;
import mindustry.type.*;
@@ -17,7 +16,7 @@ public class MinerAI extends AIController{
public void updateMovement(){
Building core = unit.closestCore();
- if(!(unit.canMine()) || core == null) return;
+ if(!unit.canMine() || core == null) return;
if(!unit.validMine(unit.mineTile)){
unit.mineTile(null);
@@ -40,19 +39,17 @@ public class MinerAI extends AIController{
mining = false;
}else{
if(timer.get(timerTarget3, 60) && targetItem != null){
- ore = indexer.findClosestOre(unit, targetItem);
+ ore = null;
+ if(unit.type.mineFloor) ore = indexer.findClosestOre(unit, targetItem);
+ if(ore == null && unit.type.mineWalls) ore = indexer.findClosestWallOre(unit, targetItem);
}
if(ore != null){
moveTo(ore, unit.type.mineRange / 2f, 20f);
- if(ore.block() == Blocks.air && unit.within(ore, unit.type.mineRange)){
+ if(unit.within(ore, unit.type.mineRange) && unit.validMine(ore)){
unit.mineTile = ore;
}
-
- if(ore.block() != Blocks.air){
- mining = false;
- }
}
}
}else{
diff --git a/core/src/mindustry/ai/types/MissileAI.java b/core/src/mindustry/ai/types/MissileAI.java
index 4dafbd6156..082c445048 100644
--- a/core/src/mindustry/ai/types/MissileAI.java
+++ b/core/src/mindustry/ai/types/MissileAI.java
@@ -10,6 +10,11 @@ import mindustry.gen.*;
public class MissileAI extends AIController{
public @Nullable Unit shooter;
+ @Override
+ protected void resetTimers(){
+ timer.reset(timerTarget, 5f);
+ }
+
@Override
public void updateMovement(){
unloadPayloads();
@@ -33,7 +38,7 @@ public class MissileAI extends AIController{
@Override
public Teamc target(float x, float y, float range, boolean air, boolean ground){
- return Units.closestTarget(unit.team, x, y, range, u -> u.checkTarget(air, ground), t -> ground && (!t.block.underBullets || (shooter != null && t == Vars.world.buildWorld(shooter.aimX, shooter.aimY))));
+ return Units.closestTarget(unit.team, x, y, range, u -> u.checkTarget(air, ground) && !u.isMissile(), t -> ground && (!t.block.underBullets || (shooter != null && t == Vars.world.buildWorld(shooter.aimX, shooter.aimY))));
}
@Override
diff --git a/core/src/mindustry/async/PhysicsProcess.java b/core/src/mindustry/async/PhysicsProcess.java
index a38f28eeb2..1a85312e55 100644
--- a/core/src/mindustry/async/PhysicsProcess.java
+++ b/core/src/mindustry/async/PhysicsProcess.java
@@ -11,10 +11,11 @@ import mindustry.gen.*;
public class PhysicsProcess implements AsyncProcess{
public static final int
- layers = 3,
+ layers = 4,
layerGround = 0,
layerLegs = 1,
- layerFlying = 2;
+ layerFlying = 2,
+ layerUnderwater = 3;
private PhysicsWorld physics;
private Seq refs = new Seq<>(false);
@@ -153,15 +154,15 @@ public class PhysicsProcess implements AsyncProcess{
for(int i = 0; i < bodySize; i++){
PhysicsBody body = bodyItems[i];
+ if(body.layer < 0) continue;
body.collided = false;
trees[body.layer].insert(body);
}
for(int i = 0; i < bodySize; i++){
PhysicsBody body = bodyItems[i];
-
//for clients, the only body that collides is the local one; all other physics simulations are handled by the server.
- if(!body.local) continue;
+ if(!body.local || body.layer < 0) continue;
body.hitbox(rect);
diff --git a/core/src/mindustry/content/Blocks.java b/core/src/mindustry/content/Blocks.java
index 1f7960452b..17115c73c3 100644
--- a/core/src/mindustry/content/Blocks.java
+++ b/core/src/mindustry/content/Blocks.java
@@ -49,7 +49,7 @@ public class Blocks{
redmat, bluemat,
stoneWall, dirtWall, sporeWall, iceWall, daciteWall, sporePine, snowPine, pine, shrubs, whiteTree, whiteTreeDead, sporeCluster,
redweed, purbush, yellowCoral,
- rhyoliteVent, carbonVent, arkyicVent, yellowStoneVent, redStoneVent, crystallineVent,
+ rhyoliteVent, carbonVent, arkyicVent, yellowStoneVent, redStoneVent, crystallineVent, stoneVent, basaltVent,
regolithWall, yellowStoneWall, rhyoliteWall, carbonWall, redIceWall, ferricStoneWall, beryllicStoneWall, arkyicWall, crystallineStoneWall, redStoneWall, redDiamondWall,
ferricStone, ferricCraters, carbonStone, beryllicStone, crystallineStone, crystalFloor, yellowStonePlates,
iceSnow, sandWater, darksandWater, duneWall, sandWall, moss, sporeMoss, shale, shaleWall, grass, salt,
@@ -163,7 +163,8 @@ public class Blocks{
worldProcessor, worldCell, worldMessage, worldSwitch,
//campaign
- launchPad, interplanetaryAccelerator
+ launchPad, advancedLaunchPad, landingPad,
+ interplanetaryAccelerator
;
@@ -501,6 +502,16 @@ public class Blocks{
attributes.set(Attribute.steam, 1f);
}};
+ stoneVent = new SteamVent("stone-vent"){{
+ parent = blendGroup = stone;
+ attributes.set(Attribute.steam, 1f);
+ }};
+
+ basaltVent = new SteamVent("basalt-vent"){{
+ parent = blendGroup = basalt;
+ attributes.set(Attribute.steam, 1f);
+ }};
+
redmat = new Floor("redmat");
bluemat = new Floor("bluemat");
@@ -1006,7 +1017,7 @@ public class Blocks{
outputsLiquid = true;
envEnabled = Env.any;
drawer = new DrawMulti(new DrawRegion("-bottom"), new DrawLiquidTile(Liquids.water), new DrawLiquidTile(Liquids.cryofluid){{drawLiquidLight = true;}}, new DrawDefault());
- liquidCapacity = 24f;
+ liquidCapacity = 36f;
craftTime = 120;
lightLiquid = Liquids.cryofluid;
@@ -1237,7 +1248,7 @@ public class Blocks{
researchCostMultiplier = 1.1f;
itemCapacity = 0;
- liquidCapacity = 40f;
+ liquidCapacity = 60f;
consumePower(2f);
ambientSound = Sounds.extractLoop;
ambientSoundVolume = 0.06f;
@@ -1273,7 +1284,7 @@ public class Blocks{
}};
electricHeater = new HeatProducer("electric-heater"){{
- requirements(Category.crafting, with(Items.tungsten, 30, Items.oxide, 30));
+ requirements(Category.crafting, with(Items.tungsten, 30, Items.oxide, 30, Items.beryllium, 30));
researchCostMultiplier = 4f;
@@ -1295,7 +1306,7 @@ public class Blocks{
drawer = new DrawMulti(new DrawRegion("-bottom"), new DrawLiquidTile(Liquids.slag), new DrawDefault(), new DrawHeatOutput());
size = 3;
itemCapacity = 0;
- liquidCapacity = 40f;
+ liquidCapacity = 120f;
rotateDraw = false;
regionRotated1 = 1;
ambientSound = Sounds.hum;
@@ -1328,7 +1339,7 @@ public class Blocks{
}};
smallHeatRedirector = new HeatConductor("small-heat-redirector"){{
- requirements(Category.crafting, with(Items.surgeAlloy, 10, Items.graphite, 10));
+ requirements(Category.crafting, with(Items.surgeAlloy, 8, Items.graphite, 8));
researchCostMultiplier = 10f;
@@ -2092,7 +2103,7 @@ public class Blocks{
requirements(Category.distribution, with(Items.silicon, 80, Items.surgeAlloy, 50, Items.oxide, 20));
size = 3;
- buildTime = 60f * 8f;
+ unitBuildTime = 60f * 8f;
consumePower(8f / 60f);
@@ -2119,13 +2130,14 @@ public class Blocks{
mechanicalPump = new Pump("mechanical-pump"){{
requirements(Category.liquid, with(Items.copper, 15, Items.metaglass, 10));
pumpAmount = 7f / 60f;
+ liquidCapacity = 20f;
}};
rotaryPump = new Pump("rotary-pump"){{
requirements(Category.liquid, with(Items.copper, 70, Items.metaglass, 50, Items.silicon, 20, Items.titanium, 35));
pumpAmount = 0.2f;
consumePower(0.3f);
- liquidCapacity = 30f;
+ liquidCapacity = 80f;
hasPower = true;
size = 2;
}};
@@ -2134,33 +2146,34 @@ public class Blocks{
requirements(Category.liquid, with(Items.copper, 80, Items.metaglass, 90, Items.silicon, 30, Items.titanium, 40, Items.thorium, 35));
pumpAmount = 0.22f;
consumePower(1.3f);
- liquidCapacity = 40f;
+ liquidCapacity = 200f;
hasPower = true;
size = 3;
}};
conduit = new Conduit("conduit"){{
requirements(Category.liquid, with(Items.metaglass, 1));
+ liquidCapacity = 20f;
health = 45;
}};
pulseConduit = new Conduit("pulse-conduit"){{
requirements(Category.liquid, with(Items.titanium, 2, Items.metaglass, 1));
- liquidCapacity = 16f;
+ liquidCapacity = 40f;
liquidPressure = 1.025f;
health = 90;
}};
platedConduit = new ArmoredConduit("plated-conduit"){{
requirements(Category.liquid, with(Items.thorium, 2, Items.metaglass, 1, Items.plastanium, 1));
- liquidCapacity = 16f;
+ liquidCapacity = 50f;
liquidPressure = 1.025f;
health = 220;
}};
liquidRouter = new LiquidRouter("liquid-router"){{
requirements(Category.liquid, with(Items.graphite, 4, Items.metaglass, 2));
- liquidCapacity = 20f;
+ liquidCapacity = 120f;
underBullets = true;
solid = false;
}};
@@ -2191,6 +2204,7 @@ public class Blocks{
arrowSpacing = 6f;
range = 4;
hasPower = false;
+ liquidCapacity = 100f;
}};
phaseConduit = new LiquidBridge("phase-conduit"){{
@@ -2201,6 +2215,7 @@ public class Blocks{
hasPower = true;
canOverdrive = false;
pulse = true;
+ liquidCapacity = 100f;
consumePower(0.30f);
}};
@@ -2219,19 +2234,17 @@ public class Blocks{
requirements(Category.liquid, with(Items.beryllium, 2));
botColor = Pal.darkestMetal;
leaks = true;
- liquidCapacity = 20f;
+ liquidCapacity = 50f;
liquidPressure = 1.03f;
health = 250;
researchCostMultiplier = 3;
underBullets = true;
}};
- //TODO is this necessary? junctions are not good design
- //TODO make it leak
reinforcedLiquidJunction = new LiquidJunction("reinforced-liquid-junction"){{
requirements(Category.liquid, with(Items.graphite, 4, Items.beryllium, 8));
buildCostMultiplier = 3f;
- health = 260;
+ health = 250;
((Conduit)reinforcedConduit).junctionReplacement = this;
researchCostMultiplier = 1;
solid = false;
@@ -2242,19 +2255,22 @@ public class Blocks{
requirements(Category.liquid, with(Items.graphite, 8, Items.beryllium, 20));
range = 4;
hasPower = false;
+ liquidCapacity = 120f;
researchCostMultiplier = 1;
underBullets = true;
+ health = 250;
((Conduit)reinforcedConduit).rotBridgeReplacement = this;
}};
reinforcedLiquidRouter = new LiquidRouter("reinforced-liquid-router"){{
requirements(Category.liquid, with(Items.graphite, 8, Items.beryllium, 4));
- liquidCapacity = 30f;
+ liquidCapacity = 150f;
liquidPadding = 3f/4f;
researchCostMultiplier = 3;
underBullets = true;
solid = false;
+ health = 250;
}};
reinforcedLiquidContainer = new LiquidRouter("reinforced-liquid-container"){{
@@ -2264,6 +2280,7 @@ public class Blocks{
liquidPadding = 6f/4f;
researchCostMultiplier = 4;
solid = true;
+ health = 400;
}};
reinforcedLiquidTank = new LiquidRouter("reinforced-liquid-tank"){{
@@ -2272,15 +2289,17 @@ public class Blocks{
solid = true;
liquidCapacity = 2700f;
liquidPadding = 2f;
+ health = 900;
}};
//endregion
//region power
powerNode = new PowerNode("power-node"){{
- requirements(Category.power, with(Items.copper, 1, Items.lead, 3));
+ requirements(Category.power, with(Items.copper, 2, Items.lead, 6));
maxNodes = 10;
laserRange = 6;
+ buildCostMultiplier = 2.5f;
}};
powerNodeLarge = new PowerNode("power-node-large"){{
@@ -2396,17 +2415,18 @@ public class Blocks{
envEnabled = Env.any;
generateEffect = Fx.generatespark;
+ itemDurationMultipliers.put(Items.phaseFabric, 210f / 14f);
drawer = new DrawMulti(new DrawDefault(), new DrawWarmupRegion());
consume(new ConsumeItemRadioactive());
}};
solarPanel = new SolarGenerator("solar-panel"){{
- requirements(Category.power, with(Items.lead, 10, Items.silicon, 15));
- powerProduction = 0.1f;
+ requirements(Category.power, with(Items.lead, 10, Items.silicon, 8));
+ powerProduction = 0.12f;
}};
largeSolarPanel = new SolarGenerator("solar-panel-large"){{
- requirements(Category.power, with(Items.lead, 80, Items.silicon, 110, Items.phaseFabric, 15));
+ requirements(Category.power, with(Items.lead, 60, Items.silicon, 70, Items.phaseFabric, 15));
size = 3;
powerProduction = 1.6f;
}};
@@ -2433,7 +2453,7 @@ public class Blocks{
itemDuration = 140f;
ambientSound = Sounds.pulse;
ambientSoundVolume = 0.07f;
- liquidCapacity = 60f;
+ liquidCapacity = 80f;
consumePower(25f);
consumeItem(Items.blastCompound);
@@ -2449,6 +2469,7 @@ public class Blocks{
range = 10;
fogRadius = 1;
researchCost = with(Items.beryllium, 5);
+ buildCostMultiplier = 2.5f;
consumePowerBuffered(1000f);
}};
@@ -2465,11 +2486,12 @@ public class Blocks{
}};
beamLink = new LongPowerNode("beam-link"){{
- requirements(Category.power, BuildVisibility.editorOnly, with());
+ requirements(Category.power, with(Items.beryllium, 250, Items.silicon, 250, Items.oxide, 150, Items.carbide, 75, Items.surgeAlloy, 75, Items.phaseFabric, 75));
size = 3;
maxNodes = 1;
- laserRange = 1000f;
+ laserRange = 500f;
autolink = false;
+ sameBlockConnection = true;
laserColor2 = Color.valueOf("ffd9c2");
laserScale = 0.8f;
scaledHealth = 130;
@@ -2715,7 +2737,7 @@ public class Blocks{
result = Liquids.water;
pumpAmount = 0.11f;
size = 2;
- liquidCapacity = 30f;
+ liquidCapacity = 40f;
rotateSpeed = 1.4f;
attribute = Attribute.water;
envRequired |= Env.groundWater;
@@ -2731,6 +2753,7 @@ public class Blocks{
hasLiquids = true;
hasPower = true;
hasItems = true;
+ liquidCapacity = 80f;
craftEffect = Fx.none;
envRequired |= Env.spores;
@@ -2757,7 +2780,7 @@ public class Blocks{
updateEffectChance = 0.05f;
pumpAmount = 0.25f;
size = 3;
- liquidCapacity = 30f;
+ liquidCapacity = 40f;
attribute = Attribute.oil;
baseEfficiency = 0f;
itemUseTime = 60f;
@@ -2804,7 +2827,7 @@ public class Blocks{
largeCliffCrusher = new WallCrafter("large-cliff-crusher"){{
requirements(Category.production, with(Items.silicon, 80, Items.surgeAlloy, 15, Items.beryllium, 100, Items.tungsten, 50));
- consumePower(30 / 60f);
+ consumePower(1f);
drillTime = 48f;
size = 3;
@@ -2812,13 +2835,13 @@ public class Blocks{
output = Items.sand;
fogRadius = 3;
ambientSound = Sounds.drill;
- ambientSoundVolume = 0.05f;
+ ambientSoundVolume = 0.08f;
- consumeLiquid(Liquids.ozone, 1f / 60f);
+ consumeLiquid(Liquids.hydrogen, 1f / 60f);
- itemConsumer = consumeItem(Items.tungsten).boost();
+ itemConsumer = consumeItem(Items.graphite).boost();
itemCapacity = 20;
- boostItemUseTime = 60f * 10f;
+ boostItemUseTime = 60f / 0.75f;
//alternatively, boost using nitrogen:
//consumeLiquid(Liquids.nitrogen, 3f / 60f).boost();
@@ -2869,17 +2892,19 @@ public class Blocks{
blockedItem = Items.thorium;
researchCostMultiplier = 0.5f;
- drillMultipliers.put(Items.beryllium, 2.5f);
+ drillMultipliers.put(Items.beryllium, 2f);
+ liquidBoostIntensity = 1.75f;
fogRadius = 4;
consumePower(160f / 60f);
- consumeLiquid(Liquids.water, 0.2f);
+ consumeLiquid(Liquids.water, 10f/60f);
+ consumeLiquid(Liquids.ozone, 3f / 60f).boost();
}};
eruptionDrill = new BurstDrill("eruption-drill"){{
- requirements(Category.production, with(Items.silicon, 200, Items.oxide, 20, Items.tungsten, 200, Items.thorium, 120));
- drillTime = 60f * 6f;
+ requirements(Category.production, with(Items.silicon, 300, Items.oxide, 20, Items.tungsten, 250, Items.thorium, 150));
+ drillTime = 281.25f;
size = 5;
hasPower = true;
tier = 7;
@@ -2891,18 +2916,20 @@ public class Blocks{
Fx.mineImpactWave.wrap(Liquids.hydrogen.color, 45f)
);
shake = 4f;
- itemCapacity = 50;
+ itemCapacity = 60;
arrowOffset = 2f;
arrowSpacing = 5f;
arrows = 2;
glowColor.a = 0.6f;
fogRadius = 5;
- drillMultipliers.put(Items.beryllium, 2.5f);
+ drillMultipliers.put(Items.beryllium, 2f);
+ liquidBoostIntensity = 2f;
//TODO different requirements
consumePower(6f);
- consumeLiquids(LiquidStack.with(Liquids.hydrogen, 4f / 60f));
+ consumeLiquid(Liquids.hydrogen, 4f / 60f);
+ consumeLiquid(Liquids.cyanogen, 0.75f / 60f).boost();
}};
//endregion
@@ -3054,21 +3081,36 @@ public class Blocks{
height = 9f;
lifetime = 60f;
ammoMultiplier = 2;
+
+ hitEffect = despawnEffect = Fx.hitBulletColor;
+ hitColor = backColor = trailColor = Pal.copperAmmoBack;
+ frontColor = Pal.copperAmmoFront;
}},
Items.graphite, new BasicBulletType(3.5f, 18){{
width = 9f;
height = 12f;
- reloadMultiplier = 0.6f;
ammoMultiplier = 4;
lifetime = 60f;
+ rangeChange = 16f;
+
+ hitEffect = despawnEffect = Fx.hitBulletColor;
+ hitColor = backColor = trailColor = Pal.graphiteAmmoBack;
+ frontColor = Pal.graphiteAmmoFront;
}},
Items.silicon, new BasicBulletType(3f, 12){{
width = 7f;
height = 9f;
- homingPower = 0.1f;
+ homingPower = 0.2f;
reloadMultiplier = 1.5f;
ammoMultiplier = 5;
lifetime = 60f;
+
+ trailLength = 5;
+ trailWidth = 1.5f;
+
+ hitEffect = despawnEffect = Fx.hitBulletColor;
+ hitColor = backColor = trailColor = Pal.siliconAmmoBack;
+ frontColor = Pal.siliconAmmoFront;
}}
);
@@ -3090,7 +3132,7 @@ public class Blocks{
recoil = 0.5f;
shootY = 3f;
reload = 20f;
- range = 110;
+ range = 160;
shootCone = 15f;
ammoUseEffect = Fx.casing1;
health = 250;
@@ -3099,7 +3141,7 @@ public class Blocks{
coolant = consumeCoolant(0.1f);
researchCostMultiplier = 0.05f;
- limitRange();
+ limitRange(5f);
}};
scatter = new ItemTurret("scatter"){{
@@ -3115,6 +3157,10 @@ public class Blocks{
hitEffect = Fx.flakExplosion;
splashDamage = 22f * 1.5f;
splashDamageRadius = 24f;
+
+ frontColor = Pal.scrapAmmoFront;
+ backColor = hitColor = Pal.scrapAmmoBack;
+ despawnEffect = Fx.hitBulletColor;
}},
Items.lead, new FlakBulletType(4.2f, 3){{
lifetime = 60f;
@@ -3127,6 +3173,10 @@ public class Blocks{
splashDamageRadius = 15f;
}},
Items.metaglass, new FlakBulletType(4f, 3){{
+ backColor = trailColor = Pal.glassAmmoBack;
+ hitColor = frontColor = Pal.glassAmmoFront;
+ despawnEffect = Fx.hitBulletColor;
+
lifetime = 60f;
ammoMultiplier = 5f;
shootEffect = Fx.shootSmall;
@@ -3142,8 +3192,8 @@ public class Blocks{
height = 12f;
shrinkY = 1f;
lifetime = 20f;
- backColor = Pal.gray;
- frontColor = Color.white;
+ backColor = trailColor = Pal.glassAmmoBack;
+ hitColor = frontColor = Pal.glassAmmoFront;
despawnEffect = Fx.none;
collidesGround = false;
}};
@@ -3233,6 +3283,10 @@ public class Blocks{
collidesTiles = false;
splashDamageRadius = 25f * 0.75f;
splashDamage = 33f;
+
+ hitColor = backColor = trailColor = Pal.graphiteAmmoBack;
+ frontColor = Pal.graphiteAmmoFront;
+ despawnEffect = Fx.hitBulletColor;
}},
Items.silicon, new ArtilleryBulletType(3f, 20){{
knockback = 0.8f;
@@ -3245,6 +3299,13 @@ public class Blocks{
ammoMultiplier = 3f;
homingPower = 0.08f;
homingRange = 50f;
+
+ trailLength = 7;
+ trailWidth = 3f;
+
+ hitColor = backColor = trailColor = Pal.siliconAmmoBack;
+ frontColor = Pal.siliconAmmoFront;
+ despawnEffect = Fx.hitBulletColor;
}},
Items.pyratite, new ArtilleryBulletType(3f, 25){{
hitEffect = Fx.blastExplosion;
@@ -3256,11 +3317,12 @@ public class Blocks{
splashDamage = 45f;
status = StatusEffects.burning;
statusDuration = 60f * 12f;
- frontColor = Pal.lightishOrange;
+ frontColor = trailColor = hitColor = Pal.lightishOrange;
backColor = Pal.lightOrange;
makeFire = true;
trailEffect = Fx.incendTrail;
ammoMultiplier = 4f;
+ despawnEffect = Fx.hitBulletColor;
}}
);
targetAir = false;
@@ -3386,18 +3448,18 @@ public class Blocks{
}};
parallax = new TractorBeamTurret("parallax"){{
- requirements(Category.turret, with(Items.silicon, 120, Items.titanium, 90, Items.graphite, 30));
+ requirements(Category.turret, with(Items.silicon, 160, Items.titanium, 110, Items.graphite, 50));
hasPower = true;
size = 2;
- force = 12f;
- scaledForce = 6f;
- range = 240f;
- damage = 0.3f;
+ force = 16f;
+ scaledForce = 9f;
+ range = 300f;
+ damage = 0.5f;
scaledHealth = 160;
- rotateSpeed = 10;
+ rotateSpeed = 12;
- consumePower(3f);
+ consumePower(3.3f);
}};
swarmer = new ItemTurret("swarmer"){{
@@ -3415,6 +3477,9 @@ public class Blocks{
status = StatusEffects.blasted;
statusDuration = 60f;
+
+ hitColor = backColor = trailColor = Pal.blastAmmoBack;
+ frontColor = Pal.blastAmmoFront;
}},
Items.pyratite, new MissileBulletType(3.7f, 12){{
frontColor = Pal.lightishOrange;
@@ -3442,6 +3507,9 @@ public class Blocks{
lightningDamage = 10;
lightning = 2;
lightningLength = 10;
+
+ hitColor = backColor = trailColor = Pal.surgeAmmoBack;
+ frontColor = Pal.surgeAmmoFront;
}}
);
@@ -3477,21 +3545,30 @@ public class Blocks{
height = 9f;
lifetime = 60f;
ammoMultiplier = 2;
+
+ hitEffect = despawnEffect = Fx.hitBulletColor;
+ hitColor = backColor = trailColor = Pal.copperAmmoBack;
+ frontColor = Pal.copperAmmoFront;
}},
Items.graphite, new BasicBulletType(3.5f, 20){{
width = 9f;
height = 12f;
- reloadMultiplier = 0.6f;
ammoMultiplier = 4;
lifetime = 60f;
+
+ rangeChange = 4f * 8f;
+
+ hitEffect = despawnEffect = Fx.hitBulletColor;
+ hitColor = backColor = trailColor = Pal.graphiteAmmoBack;
+ frontColor = Pal.graphiteAmmoFront;
}},
Items.pyratite, new BasicBulletType(3.2f, 18){{
width = 10f;
height = 12f;
- frontColor = Pal.lightishOrange;
+ frontColor = hitColor = Pal.lightishOrange;
backColor = Pal.lightOrange;
status = StatusEffects.burning;
- hitEffect = new MultiEffect(Fx.hitBulletSmall, Fx.fireHit);
+ hitEffect = new MultiEffect(Fx.hitBulletColor, Fx.fireHit);
ammoMultiplier = 5;
@@ -3502,20 +3579,30 @@ public class Blocks{
lifetime = 60f;
}},
Items.silicon, new BasicBulletType(3f, 15, "bullet"){{
- width = 7f;
- height = 9f;
- homingPower = 0.1f;
+ width = 8f;
+ height = 10f;
+ homingPower = 0.2f;
reloadMultiplier = 1.5f;
ammoMultiplier = 5;
lifetime = 60f;
+
+ trailLength = 5;
+ trailWidth = 1.5f;
+ hitEffect = despawnEffect = Fx.hitBulletColor;
+ hitColor = backColor = trailColor = Pal.siliconAmmoBack;
+ frontColor = Pal.siliconAmmoFront;
}},
Items.thorium, new BasicBulletType(4f, 29, "bullet"){{
- width = 10f;
+ width = 8f;
height = 13f;
shootEffect = Fx.shootBig;
smokeEffect = Fx.shootBigSmoke;
ammoMultiplier = 4;
lifetime = 60f;
+
+ hitEffect = despawnEffect = Fx.hitBulletColor;
+ backColor = hitColor = trailColor = Pal.thoriumAmmoBack;
+ frontColor = Pal.thoriumAmmoFront;
}}
);
@@ -3677,6 +3764,10 @@ public class Blocks{
collidesTiles = false;
splashDamageRadius = 25f * 0.75f;
splashDamage = 33f;
+
+ backColor = hitColor = trailColor = Pal.graphiteAmmoBack;
+ frontColor = Pal.graphiteAmmoFront;
+ despawnEffect = Fx.hitBulletColor;
}},
Items.silicon, new ArtilleryBulletType(3f, 20){{
knockback = 0.8f;
@@ -3689,6 +3780,13 @@ public class Blocks{
ammoMultiplier = 3f;
homingPower = 0.08f;
homingRange = 50f;
+
+ trailLength = 9;
+ trailWidth = 3.1f;
+
+ despawnEffect = Fx.hitBulletColor;
+ backColor = hitColor = trailColor = Pal.siliconAmmoBack;
+ frontColor = Pal.siliconAmmoFront;
}},
Items.pyratite, new ArtilleryBulletType(3f, 24){{
hitEffect = Fx.blastExplosion;
@@ -3701,10 +3799,11 @@ public class Blocks{
status = StatusEffects.burning;
statusDuration = 60f * 12f;
frontColor = Pal.lightishOrange;
- backColor = Pal.lightOrange;
+ backColor = hitColor = Pal.lightOrange;
makeFire = true;
trailEffect = Fx.incendTrail;
ammoMultiplier = 4f;
+ despawnEffect = Fx.hitBulletColor;
}},
Items.blastCompound, new ArtilleryBulletType(2f, 20, "shell"){{
hitEffect = Fx.blastExplosion;
@@ -3715,10 +3814,12 @@ public class Blocks{
ammoMultiplier = 4f;
splashDamageRadius = 45f * 0.75f;
splashDamage = 55f;
- backColor = Pal.missileYellowBack;
- frontColor = Pal.missileYellow;
status = StatusEffects.blasted;
+
+ despawnEffect = Fx.hitBulletColor;
+ backColor = hitColor = trailColor = Pal.blastAmmoBack;
+ frontColor = Pal.blastAmmoFront;
}},
Items.plastanium, new ArtilleryBulletType(3.4f, 20, "shell"){{
hitEffect = Fx.plasticExplosion;
@@ -3753,6 +3854,7 @@ public class Blocks{
ammoUseEffect = Fx.casing3Double;
ammoPerShot = 2;
velocityRnd = 0.2f;
+ scaleLifetimeOffset = 1f / 9f;
recoil = 6f;
shake = 2f;
range = 290f;
@@ -3771,7 +3873,7 @@ public class Blocks{
shootEffect = Fx.shootSmall;
reloadMultiplier = 0.8f;
width = 6f;
- height = 8f;
+ height = 11f;
hitEffect = Fx.flakExplosion;
splashDamage = 45f;
splashDamageRadius = 25f;
@@ -3787,6 +3889,10 @@ public class Blocks{
fragBullets = 4;
explodeRange = 20f;
collidesGround = true;
+
+ backColor = hitColor = trailColor = Pal.glassAmmoBack;
+ frontColor = Pal.glassAmmoFront;
+ despawnEffect = Fx.hitBulletColor;
}},
Items.blastCompound, new FlakBulletType(4f, 8){{
shootEffect = Fx.shootBig;
@@ -3797,6 +3903,10 @@ public class Blocks{
status = StatusEffects.blasted;
statusDuration = 60f;
+
+ backColor = hitColor = trailColor = Pal.blastAmmoBack;
+ frontColor = Pal.blastAmmoFront;
+ despawnEffect = Fx.hitBulletColor;
}},
Items.plastanium, new FlakBulletType(4f, 8){{
ammoMultiplier = 4f;
@@ -3818,6 +3928,7 @@ public class Blocks{
shootEffect = Fx.shootBig;
collidesGround = true;
explodeRange = 20f;
+ despawnEffect = Fx.hitBulletColor;
}},
Items.surgeAlloy, new FlakBulletType(4.5f, 13){{
ammoMultiplier = 5f;
@@ -3828,6 +3939,10 @@ public class Blocks{
shootEffect = Fx.shootBig;
collidesGround = true;
explodeRange = 20f;
+
+ backColor = hitColor = trailColor = Pal.surgeAmmoBack;
+ frontColor = Pal.surgeAmmoFront;
+ despawnEffect = Fx.hitBulletColor;
}}
);
shootY = 10f;
@@ -3923,6 +4038,10 @@ public class Blocks{
ammoMultiplier = 4;
reloadMultiplier = 1.7f;
knockback = 0.3f;
+
+ hitEffect = despawnEffect = Fx.hitBulletColor;
+ hitColor = backColor = trailColor = Pal.graphiteAmmoBack;
+ frontColor = Pal.graphiteAmmoFront;
}},
Items.thorium, new BasicBulletType(8f, 80){{
hitSize = 5;
@@ -3932,6 +4051,9 @@ public class Blocks{
pierceCap = 2;
pierceBuilding = true;
knockback = 0.7f;
+
+ backColor = hitColor = trailColor = Pal.thoriumAmmoBack;
+ frontColor = Pal.thoriumAmmoFront;
}},
Items.pyratite, new BasicBulletType(7f, 70){{
hitSize = 5;
@@ -4006,7 +4128,7 @@ public class Blocks{
}};
breach = new ItemTurret("breach"){{
- requirements(Category.turret, with(Items.beryllium, 150, Items.silicon, 150, Items.graphite, 250));
+ requirements(Category.turret, with(Items.beryllium, 150, Items.silicon, 150, Items.graphite, 125));
Effect sfe = new MultiEffect(Fx.shootBigColor, Fx.colorSparkBig);
@@ -4047,14 +4169,14 @@ public class Blocks{
rangeChange = 40f;
buildingDamageMultiplier = 0.3f;
}},
- Items.carbide, new BasicBulletType(12f, 450f/0.75f){{
+ Items.carbide, new BasicBulletType(12f, 325f/0.75f){{
width = 15f;
height = 21f;
hitSize = 7f;
shootEffect = sfe;
smokeEffect = Fx.shootBigSmoke;
ammoMultiplier = 2;
- reloadMultiplier = 0.5f;
+ reloadMultiplier = 0.2f;
hitColor = backColor = trailColor = Color.valueOf("ab8ec5");
frontColor = Color.white;
trailWidth = 2.2f;
@@ -4062,15 +4184,37 @@ public class Blocks{
trailEffect = Fx.disperseTrail;
trailInterval = 2f;
hitEffect = despawnEffect = Fx.hitBulletColor;
- rangeChange = 20f*8f;
+ rangeChange = 7f*8f;
buildingDamageMultiplier = 0.3f;
- targetBlocks = false;
- targetMissiles = false;
trailRotation = true;
+
+ fragBullets = 3;
+ fragRandomSpread = 0f;
+ fragSpread = 25f;
+ fragVelocityMin = 1f;
+
+ fragBullet = new BasicBulletType(8.1f, 227f){{
+ lifetime = 8f;
+ width = 11f;
+ height = 14f;
+ hitSize = 7f;
+ shootEffect = sfe;
+ ammoMultiplier = 1;
+ reloadMultiplier = 1f;
+ pierceCap = 2;
+ pierce = true;
+ pierceBuilding = true;
+ hitColor = backColor = trailColor = Color.valueOf("ab8ec5");
+ frontColor = Color.white;
+ trailWidth = 1.8f;
+ trailLength = 11;
+ hitEffect = despawnEffect = Fx.hitBulletColor;
+ buildingDamageMultiplier = 0.2f;
+ }};
}}
);
- coolantMultiplier = 6f;
+ coolantMultiplier = 15f;
shootSound = Sounds.shootAlt;
targetUnderBlocks = false;
@@ -4088,6 +4232,7 @@ public class Blocks{
scaledHealth = 180;
rotateSpeed = 1.5f;
researchCostMultiplier = 0.05f;
+ buildTime = 60f * 9f;
coolant = consume(new ConsumeLiquid(Liquids.water, 15f / 60f));
limitRange(12f);
@@ -4112,7 +4257,7 @@ public class Blocks{
hitEffect = despawnEffect = Fx.hitSquaresColor;
buildingDamageMultiplier = 0.2f;
}},
- Items.oxide, new BasicBulletType(8f, 90){{
+ Items.oxide, new BasicBulletType(8f, 120){{
knockback = 3f;
width = 25f;
hitSize = 7f;
@@ -4127,8 +4272,8 @@ public class Blocks{
hitEffect = despawnEffect = Fx.hitSquaresColor;
buildingDamageMultiplier = 0.2f;
}},
- Items.silicon, new BasicBulletType(8f, 33){{
- knockback = 2f;
+ Items.silicon, new BasicBulletType(8f, 35){{
+ knockback = 3f;
width = 25f;
hitSize = 7f;
height = 20f;
@@ -4136,8 +4281,8 @@ public class Blocks{
shootEffect = Fx.shootBigColor;
smokeEffect = Fx.shootSmokeSquareSparse;
ammoMultiplier = 1;
- hitColor = backColor = trailColor = Color.valueOf("858a9b");
- frontColor = Color.valueOf("dae1ee");
+ hitColor = backColor = trailColor = Pal.graphiteAmmoBack;
+ frontColor = Pal.graphiteAmmoFront;
trailWidth = 6f;
trailLength = 6;
hitEffect = despawnEffect = Fx.hitSquaresColor;
@@ -4147,7 +4292,7 @@ public class Blocks{
shoot = new ShootSpread(15, 4f);
- coolantMultiplier = 6f;
+ coolantMultiplier = 15f;
inaccuracy = 0.2f;
velocityRnd = 0.17f;
@@ -4240,6 +4385,7 @@ public class Blocks{
knockback = 1f;
pierceCap = 2;
buildingDamageMultiplier = 0.3f;
+ timescaleDamage = true;
colors = new Color[]{Color.valueOf("eb7abe").a(0.55f), Color.valueOf("e189f5").a(0.7f), Color.valueOf("907ef7").a(0.8f), Color.valueOf("91a4ff"), Color.white};
}},
@@ -4250,6 +4396,7 @@ public class Blocks{
knockback = 2f;
pierceCap = 3;
buildingDamageMultiplier = 0.3f;
+ timescaleDamage = true;
colors = new Color[]{Color.valueOf("465ab8").a(0.55f), Color.valueOf("66a6d2").a(0.7f), Color.valueOf("89e8b6").a(0.8f), Color.valueOf("cafcbe"), Color.white};
flareColor = Color.valueOf("89e8b6");
@@ -4269,7 +4416,6 @@ public class Blocks{
requirements(Category.turret, with(Items.tungsten, 250, Items.silicon, 300, Items.thorium, 400));
ammo(
- //TODO another ammo type
Items.thorium, new ArtilleryBulletType(2.5f, 350, "shell"){{
hitEffect = new MultiEffect(Fx.titanExplosion, Fx.titanSmoke);
despawnEffect = Fx.none;
@@ -4335,10 +4481,10 @@ public class Blocks{
trailInterp = v -> Math.max(Mathf.slope(v), 0.8f);
shrinkX = 0.2f;
shrinkY = 0.1f;
- buildingDamageMultiplier = 0.3f;
+ buildingDamageMultiplier = 0.2f;
}},
Items.oxide, new ArtilleryBulletType(2.5f, 300, "shell"){{
- hitEffect = new MultiEffect(Fx.titanExplosionLarge, Fx.titanSmokeLarge);
+ hitEffect = new MultiEffect(Fx.titanExplosionLarge, Fx.titanSmokeLarge, Fx.smokeAoeCloud);
despawnEffect = Fx.none;
knockback = 2f;
lifetime = 190f;
@@ -4371,6 +4517,23 @@ public class Blocks{
shrinkX = 0.2f;
shrinkY = 0.1f;
buildingDamageMultiplier = 0.25f;
+
+ fragBullets = 1;
+ fragBullet = new EmptyBulletType(){{
+ lifetime = 60f * 2.5f;
+ bulletInterval = 20f;
+ intervalBullet = new EmptyBulletType(){{
+ splashDamage = 30f;
+ collidesGround = true;
+ collidesAir = false;
+ collides = false;
+ hitEffect = Fx.none;
+ pierce = true;
+ instantDisappear = true;
+ splashDamageRadius = 90f;
+ buildingDamageMultiplier = 0.2f;
+ }};
+ }};
}}
);
@@ -4390,7 +4553,7 @@ public class Blocks{
warmupMaintainTime = 120f;
coolant = consume(new ConsumeLiquid(Liquids.water, 30f / 60f));
- coolantMultiplier = 1.5f;
+ coolantMultiplier = 3.75f;
drawer = new DrawTurret("reinforced-"){{
parts.addAll(
@@ -4426,7 +4589,8 @@ public class Blocks{
disperse = new ItemTurret("disperse"){{
requirements(Category.turret, with(Items.thorium, 50, Items.oxide, 150, Items.silicon, 200, Items.beryllium, 350));
- ammo(Items.tungsten, new BasicBulletType(){{
+ ammo(
+ Items.tungsten, new BasicBulletType(){{
damage = 65;
speed = 8.5f;
width = height = 16;
@@ -4449,7 +4613,107 @@ public class Blocks{
trailEffect = Fx.disperseTrail;
hitEffect = despawnEffect = Fx.hitBulletColor;
- }});
+ }},
+ Items.thorium, new BasicBulletType(){{
+ damage = 90;
+ reloadMultiplier = 0.85f;
+ speed = 9.5f;
+ width = height = 16;
+ pierceCap = 2;
+ shrinkY = 0.3f;
+ backSprite = "large-bomb-back";
+ sprite = "mine-bullet";
+ velocityRnd = 0.5f;
+ collidesGround = false;
+ collidesTiles = false;
+ shootEffect = Fx.shootBig2;
+ smokeEffect = Fx.shootSmokeDisperse;
+ frontColor = Color.white;
+ backColor = trailColor = hitColor = Color.valueOf("e89dbd");
+ trailChance = 0.44f;
+ ammoMultiplier = 2f;
+
+ lifetime = 34f;
+ rotationOffset = 90f;
+ trailRotation = true;
+ trailEffect = Fx.disperseTrail;
+
+ hitEffect = despawnEffect = Fx.hitBulletColor;
+ }},
+ Items.silicon, new BasicBulletType(){{
+ damage = 35;
+ homingPower = 0.045f;
+
+ reloadMultiplier = 0.9f;
+ speed = 9f;
+ width = height = 16;
+ shrinkY = 0.3f;
+ backSprite = "large-bomb-back";
+ sprite = "mine-bullet";
+ velocityRnd = 0.11f;
+ collidesGround = false;
+ collidesTiles = false;
+ shootEffect = Fx.shootBig2;
+ smokeEffect = Fx.shootSmokeDisperse;
+ frontColor = Pal.graphiteAmmoFront;
+ backColor = trailColor = hitColor = Pal.graphiteAmmoBack;
+ ammoMultiplier = 3f;
+
+ lifetime = 34f;
+ rotationOffset = 90f;
+ trailLength = 7;
+ //for chasing targets
+ extraRangeMargin = 32f;
+
+ hitEffect = despawnEffect = Fx.hitBulletColor;
+ }},
+
+ Items.surgeAlloy, new BasicBulletType(){{
+ reloadMultiplier = 0.75f;
+ damage = 65;
+ rangeChange = 8f * 3f;
+ lightning = 3;
+ lightningLength = 4;
+ lightningDamage = 18f;
+ lightningLengthRand = 3;
+ speed = 6f;
+ width = height = 16;
+ shrinkY = 0.3f;
+ backSprite = "large-bomb-back";
+ sprite = "mine-bullet";
+ velocityRnd = 0.11f;
+ collidesGround = false;
+ collidesTiles = false;
+ shootEffect = Fx.shootBig2;
+ smokeEffect = Fx.shootSmokeDisperse;
+ frontColor = Color.white;
+ backColor = trailColor = hitColor = Pal.surge;
+ trailChance = 0.44f;
+ ammoMultiplier = 3f;
+
+ lifetime = 34f;
+ rotationOffset = 90f;
+ trailRotation = true;
+ trailEffect = Fx.disperseTrail;
+
+ hitEffect = despawnEffect = Fx.hitBulletColor;
+
+ bulletInterval = 4f;
+
+ intervalBullet = new BulletType(){{
+ collidesGround = false;
+ collidesTiles = false;
+ lightningLengthRand = 4;
+ lightningLength = 2;
+ lightningCone = 30f;
+ lightningDamage = 20f;
+ lightning = 1;
+ hittable = collides = false;
+ instantDisappear = true;
+ hitEffect = despawnEffect = Fx.none;
+ }};
+ }}
+ );
reload = 9f;
shootY = 15f;
@@ -4501,13 +4765,13 @@ public class Blocks{
size = 4;
coolant = consume(new ConsumeLiquid(Liquids.water, 20f / 60f));
- coolantMultiplier = 2.5f;
+ coolantMultiplier = 6.25f;
- limitRange(5f);
+ limitRange(16f);
}};
afflict = new PowerTurret("afflict"){{
- requirements(Category.turret, with(Items.surgeAlloy, 100, Items.silicon, 200, Items.graphite, 250, Items.oxide, 40));
+ requirements(Category.turret, with(Items.surgeAlloy, 125, Items.silicon, 200, Items.graphite, 250, Items.oxide, 40));
shootType = new BasicBulletType(){{
shootEffect = new MultiEffect(Fx.shootTitan, new WaveEffect(){{
@@ -4696,10 +4960,13 @@ public class Blocks{
scathe = new ItemTurret("scathe"){{
requirements(Category.turret, with(Items.silicon, 450, Items.graphite, 400, Items.tungsten, 500, Items.oxide, 100, Items.carbide, 200));
+ predictTarget = false;
+
ammo(
- Items.carbide, new BasicBulletType(0f, 1){{
+ Items.carbide, new BulletType(0f, 0f){{
shootEffect = Fx.shootBig;
- smokeEffect = Fx.shootSmokeMissile;
+ smokeEffect = Fx.shootSmokeMissileColor;
+ hitColor = Pal.redLight;
ammoMultiplier = 1f;
spawnUnit = new MissileUnitType("scathe-missile"){{
@@ -4780,6 +5047,240 @@ public class Blocks{
interval = 7f;
}});
}};
+ }},
+
+ Items.phaseFabric, new BulletType(0f, 0f){{
+ shootEffect = Fx.shootBig;
+ smokeEffect = Fx.shootSmokeMissileColor;
+ hitColor = Color.valueOf("ffd37f");
+ ammoMultiplier = 5f;
+ reloadMultiplier = 0.8f;
+
+ spawnUnit = new MissileUnitType("scathe-missile-phase"){{
+ speed = 4f;
+ maxRange = 6f;
+ lifetime = 60f * 6.1f;
+ outlineColor = Pal.darkOutline;
+ engineColor = trailColor = Color.valueOf("ffd37f");
+ engineLayer = Layer.effect;
+ engineSize = 3.1f;
+ engineOffset = 10f;
+ rotateSpeed = 0.2f;
+ trailLength = 18;
+ missileAccelTime = 50f;
+ lowAltitude = true;
+ loopSound = Sounds.missileTrail;
+ loopSoundVolume = 0.6f;
+ deathSound = Sounds.largeExplosion;
+ targetAir = false;
+ targetUnderBlocks = false;
+
+ parts.add(new ShapePart(){{
+ progress = PartProgress.constant(1f);
+ color = Pal.accent;
+ sides = 6;
+ radius = 3f;
+ rotateSpeed = 3f;
+ hollow = true;
+ layer = Layer.effect;
+ y = 1.8f;
+ }});
+
+ fogRadius = 6f;
+
+ health = 500;
+
+ weapons.add(new Weapon(){{
+ shootCone = 360f;
+ mirror = false;
+ reload = 1f;
+ deathExplosionEffect = Fx.massiveExplosion;
+ shootOnDeath = true;
+ shake = 10f;
+ bullet = new ExplosionBulletType(400f, 120f){{
+ //stats must be mirrored to the bullet that the unit uses
+ reloadMultiplier = 0.8f;
+ ammoMultiplier = 5f;
+
+ hitColor = engineColor;
+ shootEffect = new MultiEffect(Fx.massiveExplosion, Fx.scatheExplosion, Fx.scatheLight, new WaveEffect(){{
+ lifetime = 10f;
+ strokeFrom = 4f;
+ sizeTo = 130f;
+ }});
+
+ collidesAir = false;
+ buildingDamageMultiplier = 0.1f;
+
+ fragLifeMin = 0.1f;
+ fragBullets = 7;
+ fragBullet = new ArtilleryBulletType(3.4f, 32){{
+ buildingDamageMultiplier = 0.2f;
+ drag = 0.02f;
+ hitEffect = Fx.massiveExplosion;
+ despawnEffect = Fx.scatheSlash;
+ knockback = 0.8f;
+ lifetime = 23f;
+ width = height = 18f;
+ collidesTiles = false;
+ splashDamageRadius = 56f;
+ splashDamage = 164f;
+ backColor = trailColor = hitColor = engineColor;
+ frontColor = Color.white;
+ smokeEffect = Fx.shootBigSmoke2;
+ despawnShake = 7f;
+ lightRadius = 30f;
+ lightColor = engineColor;
+ lightOpacity = 0.5f;
+
+ trailLength = 20;
+ trailWidth = 3.5f;
+ trailEffect = Fx.none;
+ }};
+ }};
+ }});
+
+ abilities.add(new MoveEffectAbility(){{
+ effect = Fx.missileTrailSmoke;
+ rotation = 180f;
+ y = -9f;
+ color = Color.grays(0.6f).lerp(Pal.redLight, 0.5f).a(0.4f);
+ interval = 7f;
+ }});
+
+ abilities.add(new ForceFieldAbility(90f, 0f, 2000f, 999999999f));
+
+ }};
+ }},
+
+ Items.surgeAlloy, new BulletType(0f, 0f){{
+ shootEffect = Fx.shootBig;
+ smokeEffect = Fx.shootSmokeMissileColor;
+ hitColor = Color.valueOf("f7e97e");
+
+ ammoMultiplier = 1f;
+ rangeChange = -8f*9f;
+ reloadMultiplier = 0.9f;
+
+ spawnUnit = new MissileUnitType("scathe-missile-surge"){{
+ speed = 4.4f;
+ maxRange = 6f;
+ lifetime = 60f * 1.4f;
+ outlineColor = Pal.darkOutline;
+ engineColor = trailColor = Color.valueOf("f7e97e");
+ engineLayer = Layer.effect;
+ engineSize = 3.1f;
+ engineOffset = 10f;
+ rotateSpeed = 0.25f;
+ trailLength = 18;
+ missileAccelTime = 30f;
+ lowAltitude = true;
+ loopSound = Sounds.missileTrail;
+ loopSoundVolume = 0.6f;
+ deathSound = Sounds.largeExplosion;
+ targetAir = false;
+ targetUnderBlocks = false;
+
+ fogRadius = 6f;
+
+ health = 400;
+
+ weapons.add(new Weapon(){{
+ shootCone = 360f;
+ rotate = true;
+ rotationLimit = rotateSpeed = 0f;
+ reload = 1f;
+ deathExplosionEffect = Fx.massiveExplosion;
+ shootOnDeath = true;
+ shake = 10f;
+ bullet = new ExplosionBulletType(300f, 40f){{
+ //mirror stats
+ ammoMultiplier = 1f;
+ rangeChange = -8f*9f;
+ reloadMultiplier = 0.9f;
+
+ hitColor = engineColor;
+ shootEffect = new MultiEffect(Fx.massiveExplosion, Fx.scatheExplosionSmall);
+
+ collidesAir = false;
+ buildingDamageMultiplier = 0.1f;
+
+ fragLifeMin = 0.1f;
+ fragBullets = 5;
+ fragRandomSpread = 0f;
+ fragSpread = 30f;
+ fragBullet = new BulletType(){{
+ shootEffect = Fx.shootBig;
+ smokeEffect = Fx.shootSmokeMissileColor;
+ hitColor = engineColor;
+ ammoMultiplier = 1f;
+
+ spawnUnit = new MissileUnitType("scathe-missile-surge-split"){{
+ speed = 4.8f;
+ maxRange = 6f;
+ lifetime = 60f * 3.5f;
+ outlineColor = Pal.darkOutline;
+ engineColor = trailColor = Color.valueOf("f7e97e");
+ engineLayer = Layer.effect;
+ engineSize = 2.2f;
+ engineOffset = 8f;
+ rotateSpeed = 1.4f;
+ trailLength = 12;
+ lowAltitude = true;
+ loopSound = Sounds.missileTrail;
+ loopSoundVolume = 0.6f;
+ deathSound = Sounds.largeExplosion;
+ targetAir = false;
+ targetUnderBlocks = false;
+
+ fogRadius = 6f;
+
+ health = 100;
+
+ weapons.add(new Weapon(){{
+ shootCone = 360f;
+ mirror = false;
+ reload = 1f;
+ deathExplosionEffect = Fx.massiveExplosion;
+ shootOnDeath = true;
+ shake = 10f;
+ bullet = new ExplosionBulletType(360f, 35f){{
+ lightning = 6;
+ lightningDamage = 35f;
+ lightningLength = 8;
+
+ hitColor = engineColor;
+ shootEffect = new MultiEffect(Fx.massiveExplosion, Fx.scatheExplosionSmall, Fx.scatheLightSmall, new WaveEffect(){{
+ lifetime = 10f;
+ strokeFrom = 4f;
+ sizeTo = 100f;
+ }});
+
+ collidesAir = false;
+ buildingDamageMultiplier = 0.1f;
+ }};
+ }});
+
+ abilities.add(new MoveEffectAbility(){{
+ effect = Fx.missileTrailSmokeSmall;
+ rotation = 180f;
+ y = -9f;
+ color = Color.grays(0.6f).lerp(Color.valueOf("f7e97e"), 0.5f).a(0.4f);
+ interval = 5f;
+ }});
+ }};
+ }};
+ }};
+ }});
+
+ abilities.add(new MoveEffectAbility(){{
+ effect = Fx.missileTrailSmoke;
+ rotation = 180f;
+ y = -9f;
+ color = Color.grays(0.6f).lerp(Color.valueOf("f7e97e"), 0.5f).a(0.4f);
+ interval = 7f;
+ }});
+ }};
}}
);
@@ -4829,7 +5330,7 @@ public class Blocks{
recoil = 0.5f;
fogRadiusMultiplier = 0.4f;
- coolantMultiplier = 6f;
+ coolantMultiplier = 15f;
shootSound = Sounds.missileLaunch;
minWarmup = 0.94f;
@@ -4841,7 +5342,7 @@ public class Blocks{
shake = 6f;
ammoPerShot = 15;
- maxAmmo = 30;
+ maxAmmo = 45;
shootY = -1;
outlineColor = Pal.darkOutline;
size = 4;
@@ -4860,7 +5361,6 @@ public class Blocks{
requirements(Category.turret, with(Items.oxide, 200, Items.surgeAlloy, 400, Items.silicon, 800, Items.carbide, 500, Items.phaseFabric, 300));
ammo(
- //this is really lazy
Items.surgeAlloy, new BasicBulletType(7f, 250){{
sprite = "large-orb";
width = 17f;
@@ -4933,7 +5433,7 @@ public class Blocks{
shootSound = Sounds.shootSmite;
minWarmup = 0.99f;
- coolantMultiplier = 6f;
+ coolantMultiplier = 15f;
var haloProgress = PartProgress.warmup.delay(0.5f);
float haloY = -15f, haloRotSpeed = 1f;
@@ -5129,7 +5629,7 @@ public class Blocks{
}};
malign = new PowerTurret("malign"){{
- requirements(Category.turret, with(Items.carbide, 400, Items.beryllium, 2000, Items.silicon, 800, Items.graphite, 800, Items.phaseFabric, 300));
+ requirements(Category.turret, with(Items.carbide, 200, Items.beryllium, 1000, Items.silicon, 500, Items.graphite, 500, Items.phaseFabric, 200));
var haloProgress = PartProgress.warmup;
Color haloColor = Color.valueOf("d370d3"), heatCol = Color.purple;
@@ -5437,26 +5937,26 @@ public class Blocks{
}};
velocityRnd = 0.15f;
- heatRequirement = 90f;
+ heatRequirement = 72f;
maxHeatEfficiency = 2f;
warmupMaintainTime = 120f;
- consumePower(10f);
-
- shoot = new ShootSummon(0f, 0f, circleRad, 48f);
+ consumePower(40f);
+ unitSort = UnitSorts.strongest;
+ shoot = new ShootSummon(0f, 0f, circleRad, 20f);
minWarmup = 0.96f;
- shootWarmupSpeed = 0.03f;
+ shootWarmupSpeed = 0.08f;
shootY = circleY - 5f;
outlineColor = Pal.darkOutline;
envEnabled |= Env.space;
- reload = 9f;
- range = 370;
+ reload = 7f;
+ range = 380;
trackingRange = range * 1.4f;
shootCone = 100f;
scaledHealth = 370;
- rotateSpeed = 2f;
+ rotateSpeed = 2.6f;
recoil = 0.5f;
recoilTime = 30f;
shake = 3f;
@@ -5474,6 +5974,7 @@ public class Blocks{
);
size = 3;
consumePower(1.2f);
+ researchCostMultiplier = 0.5f;
}};
airFactory = new UnitFactory("air-factory"){{
@@ -5484,6 +5985,7 @@ public class Blocks{
);
size = 3;
consumePower(1.2f);
+ researchCostMultiplier = 0.5f;
}};
navalFactory = new UnitFactory("naval-factory"){{
@@ -5982,17 +6484,42 @@ public class Blocks{
//region campaign
launchPad = new LaunchPad("launch-pad"){{
- requirements(Category.effect, BuildVisibility.campaignOnly, with(Items.copper, 350, Items.silicon, 140, Items.lead, 200, Items.titanium, 150));
+ requirements(Category.effect, BuildVisibility.legacyLaunchPadOnly, with(Items.copper, 350, Items.silicon, 140, Items.lead, 200, Items.titanium, 150));
size = 3;
itemCapacity = 100;
launchTime = 60f * 20;
hasPower = true;
+ acceptMultipleItems = true;
consumePower(4f);
}};
+ advancedLaunchPad = new LaunchPad("advanced-launch-pad"){{
+ requirements(Category.effect, BuildVisibility.notLegacyLaunchPadOnly, with(Items.copper, 350, Items.silicon, 250, Items.lead, 300, Items.titanium, 200));
+ size = 4;
+ itemCapacity = 100;
+ launchTime = 60f * 30;
+ liquidCapacity = 40f;
+ hasPower = true;
+ drawLiquid = Liquids.oil;
+ consumeLiquid(Liquids.oil, 9f/60f);
+ consumePower(8f);
+ }};
+
+ landingPad = new LandingPad("landing-pad"){{
+ requirements(Category.effect, BuildVisibility.notLegacyLaunchPadOnly, with(Items.copper, 200, Items.graphite, 100, Items.titanium, 100));
+ size = 4;
+
+ itemCapacity = 100;
+
+ coolingEffect = new RadialEffect(Fx.steamCoolSmoke, 4, 90f, 9.5f, 180f);
+ liquidCapacity = 3000f;
+ consumeLiquidAmount = 1500f;
+ }};
+
interplanetaryAccelerator = new Accelerator("interplanetary-accelerator"){{
- requirements(Category.effect, BuildVisibility.hidden, with(Items.copper, 16000, Items.silicon, 11000, Items.thorium, 13000, Items.titanium, 12000, Items.surgeAlloy, 6000, Items.phaseFabric, 5000));
+ requirements(Category.effect, BuildVisibility.campaignOnly, with(Items.copper, 16000, Items.silicon, 11000, Items.thorium, 13000, Items.titanium, 12000, Items.surgeAlloy, 6000, Items.phaseFabric, 5000));
researchCostMultiplier = 0.1f;
+ powerBufferRequirement = 1_000_000f;
size = 7;
hasPower = true;
consumePower(10f);
diff --git a/core/src/mindustry/content/Bullets.java b/core/src/mindustry/content/Bullets.java
index ea10110ae8..4536a3b826 100644
--- a/core/src/mindustry/content/Bullets.java
+++ b/core/src/mindustry/content/Bullets.java
@@ -10,7 +10,7 @@ import mindustry.entities.bullet.*;
public class Bullets{
public static BulletType
- placeholder, spaceLiquid, damageLightning, damageLightningGround, fireball;
+ placeholder, spaceLiquid, damageLightning, damageLightningGround, damageLightningAir, fireball;
public static void load(){
@@ -37,6 +37,10 @@ public class Bullets{
damageLightningGround = damageLightning.copy();
damageLightningGround.collidesAir = false;
+ damageLightningAir = damageLightning.copy();
+ damageLightningAir.collidesGround = false;
+ damageLightningAir.collidesTiles = false;
+
fireball = new FireBulletType(1f, 4){{
hittable = false;
}};
diff --git a/core/src/mindustry/content/ErekirTechTree.java b/core/src/mindustry/content/ErekirTechTree.java
index 680c0194dd..162131bbab 100644
--- a/core/src/mindustry/content/ErekirTechTree.java
+++ b/core/src/mindustry/content/ErekirTechTree.java
@@ -160,7 +160,9 @@ public class ErekirTechTree{
});
node(beamTower, Seq.with(new OnSector(peaks)), () -> {
+ node(beamLink, Seq.with(new OnSector(crossroads)), () -> {
+ });
});
diff --git a/core/src/mindustry/content/Fx.java b/core/src/mindustry/content/Fx.java
index 9fdbe7ac4d..f1428d0319 100644
--- a/core/src/mindustry/content/Fx.java
+++ b/core/src/mindustry/content/Fx.java
@@ -499,6 +499,14 @@ public class Fx{
}
}),
+ smokeAoeCloud = new Effect(60f * 3f, 250f, e -> {
+ color(e.color, 0.65f);
+
+ randLenVectors(e.id, 80, 90f, (x, y) -> {
+ Fill.circle(e.x + x, e.y + y, 6f * Mathf.clamp(e.fin() / 0.1f) * Mathf.clamp(e.fout() / 0.1f));
+ });
+ }),
+
missileTrailSmoke = new Effect(180f, 300f, b -> {
float intensity = 2f;
@@ -519,6 +527,26 @@ public class Fx{
}
}).layer(Layer.bullet - 1f),
+ missileTrailSmokeSmall = new Effect(120f, 200f, b -> {
+ float intensity = 1.3f;
+
+ color(b.color, 0.7f);
+ for(int i = 0; i < 3; i++){
+ rand.setSeed(b.id*2 + i);
+ float lenScl = rand.random(0.5f, 1f);
+ int fi = i;
+ b.scaled(b.lifetime * lenScl, e -> {
+ randLenVectors(e.id + fi - 1, e.fin(Interp.pow10Out), (int)(2.9f * intensity), 13f * intensity, (x, y, in, out) -> {
+ float fout = e.fout(Interp.pow5Out) * rand.random(0.5f, 1f);
+ float rad = fout * ((2f + intensity) * 2.35f);
+
+ Fill.circle(e.x + x, e.y + y, rad);
+ Drawf.light(e.x + x, e.y + y, rad * 2.5f, b.color, 0.5f);
+ });
+ });
+ }
+ }).layer(Layer.bullet - 1f),
+
neoplasmSplat = new Effect(400f, 300f, b -> {
float intensity = 3f;
@@ -557,6 +585,24 @@ public class Fx{
}
}),
+ scatheExplosionSmall = new Effect(40f, 160f, e -> {
+ color(e.color);
+ stroke(e.fout() * 4f);
+ float circleRad = 6f + e.finpow() * 40f;
+ Lines.circle(e.x, e.y, circleRad);
+
+ rand.setSeed(e.id);
+ for(int i = 0; i < 16; i++){
+ float angle = rand.random(360f);
+ float lenRand = rand.random(0.5f, 1f);
+ Tmp.v1.trns(angle, circleRad);
+
+ for(int s : Mathf.signs){
+ Drawf.tri(e.x + Tmp.v1.x, e.y + Tmp.v1.y, e.foutpow() * 30f, e.fout() * 25f * lenRand + 6f, angle + 90f + s * 90f);
+ }
+ }
+ }),
+
scatheLight = new Effect(60f, 160f, e -> {
float circleRad = 6f + e.finpow() * 60f;
@@ -564,6 +610,13 @@ public class Fx{
Fill.circle(e.x, e.y, circleRad);
}).layer(Layer.bullet + 2f),
+ scatheLightSmall = new Effect(60f, 160f, e -> {
+ float circleRad = 6f + e.finpow() * 40f;
+
+ color(e.color, e.foutpow());
+ Fill.circle(e.x, e.y, circleRad);
+ }).layer(Layer.bullet + 2f),
+
scatheSlash = new Effect(40f, 160f, e -> {
Draw.color(e.color);
for(int s : Mathf.signs){
@@ -1121,7 +1174,7 @@ public class Fx{
artilleryTrail = new Effect(50, e -> {
color(e.color);
Fill.circle(e.x, e.y, e.rotation * e.fout());
- }),
+ }).layer(Layer.bullet - 0.01f),
incendTrail = new Effect(50, e -> {
color(Pal.lightOrange);
@@ -1421,6 +1474,12 @@ public class Fx{
Lines.circle(e.x, e.y, e.fin() * (e.rotation + 50f));
}),
+ podLandShockwave = new Effect(12f, 80f, e -> {
+ color(Pal.accent);
+ stroke(e.fout() * 2f + 0.2f);
+ Lines.circle(e.x, e.y, e.fin() * 26f);
+ }),
+
explosion = new Effect(30, e -> {
e.scaled(7, i -> {
stroke(3f * i.fout());
@@ -1571,6 +1630,15 @@ public class Fx{
});
}),
+ steamCoolSmoke = new Effect(35f, e -> {
+ color(Pal.water, Color.lightGray, e.fin(Interp.pow2Out));
+ alpha(e.fout(Interp.pow3Out));
+
+ randLenVectors(e.id, 4, e.finpow() * 7f, e.rotation, 30f, (x, y) -> {
+ Fill.circle(e.x + x, e.y + y, Math.max(e.fout(), Math.min(1f, e.fin() * 8f)) * 2.8f);
+ });
+ }),
+
smokePuff = new Effect(30, e -> {
color(e.color);
@@ -1737,6 +1805,18 @@ public class Fx{
}
}),
+ shootSmokeMissileColor = new Effect(130f, 300f, e -> {
+ color(e.color);
+ alpha(0.5f);
+ rand.setSeed(e.id);
+ for(int i = 0; i < 35; i++){
+ v.trns(e.rotation + 180f + rand.range(21f), rand.random(e.finpow() * 90f)).add(rand.range(3f), rand.range(3f));
+ e.scaled(e.lifetime * rand.random(0.2f, 1f), b -> {
+ Fill.circle(e.x + v.x, e.y + v.y, b.fout() * 9f + 0.3f);
+ });
+ }
+ }),
+
regenParticle = new Effect(100f, e -> {
color(Pal.regen);
@@ -2399,6 +2479,12 @@ public class Fx{
});
}),
+ launchAccelerator = new Effect(22, e -> {
+ color(Pal.accent);
+ stroke(e.fout() * 2f);
+ Lines.circle(e.x, e.y, 4f + e.finpow() * 160f);
+ }),
+
launch = new Effect(28, e -> {
color(Pal.command);
stroke(e.fout() * 2f);
@@ -2503,6 +2589,13 @@ public class Fx{
Fill.circle(e.x + Tmp.v1.x, e.y + Tmp.v1.y, 8f * rand.random(0.6f, 1f) * e.fout(0.2f));
}).layer(Layer.groundUnit + 1f),
+ podLandDust = new Effect(70f, e -> {
+ color(e.color, e.fout(0.1f));
+ rand.setSeed(e.id);
+ Tmp.v1.trns(e.rotation, e.finpow() * 35f * rand.random(0.2f, 1f));
+ Fill.circle(e.x + Tmp.v1.x, e.y + Tmp.v1.y, 5f * rand.random(0.6f, 1f) * e.fout(0.2f));
+ }).layer(Layer.groundUnit + 1f),
+
unitShieldBreak = new Effect(35, e -> {
if(!(e.data instanceof Unit unit)) return;
diff --git a/core/src/mindustry/content/Planets.java b/core/src/mindustry/content/Planets.java
index 338e25cadc..4770dc038b 100644
--- a/core/src/mindustry/content/Planets.java
+++ b/core/src/mindustry/content/Planets.java
@@ -87,12 +87,13 @@ public class Planets{
};
campaignRuleDefaults.fog = true;
campaignRuleDefaults.showSpawns = true;
+ campaignRuleDefaults.rtsAI = true;
unlockedOnLand.add(Blocks.coreBastion);
}};
//TODO names
- gier = makeAsteroid("gier", erekir, Blocks.ferricStoneWall, Blocks.carbonWall, 0.4f, 7, 1f, gen -> {
+ gier = makeAsteroid("gier", erekir, Blocks.ferricStoneWall, Blocks.carbonWall, -5, 0.4f, 7, 1f, gen -> {
gen.min = 25;
gen.max = 35;
gen.carbonChance = 0.6f;
@@ -100,7 +101,7 @@ public class Planets{
gen.berylChance = 0.1f;
});
- notva = makeAsteroid("notva", sun, Blocks.ferricStoneWall, Blocks.beryllicStoneWall, 0.55f, 9, 1.3f, gen -> {
+ notva = makeAsteroid("notva", sun, Blocks.ferricStoneWall, Blocks.beryllicStoneWall, -4, 0.55f, 9, 1.3f, gen -> {
gen.berylChance = 0.8f;
gen.iceChance = 0f;
gen.carbonChance = 0.01f;
@@ -134,6 +135,7 @@ public class Planets{
launchCapacityMultiplier = 0.5f;
sectorSeed = 2;
allowWaves = true;
+ allowLegacyLaunchPads = true;
allowWaveSimulation = true;
allowSectorInvasion = true;
allowLaunchSchematics = true;
@@ -147,16 +149,18 @@ public class Planets{
r.showSpawns = false;
r.coreDestroyClear = true;
};
+ showRtsAIRule = true;
iconColor = Color.valueOf("7d4dff");
atmosphereColor = Color.valueOf("3c1b8f");
atmosphereRadIn = 0.02f;
atmosphereRadOut = 0.3f;
startSector = 15;
alwaysUnlocked = true;
+ allowSelfSectorLaunch = true;
landCloudColor = Pal.spore.cpy().a(0.5f);
}};
- verilus = makeAsteroid("verlius", sun, Blocks.stoneWall, Blocks.iceWall, 0.5f, 12, 2f, gen -> {
+ verilus = makeAsteroid("verlius", sun, Blocks.stoneWall, Blocks.iceWall, -1, 0.5f, 12, 2f, gen -> {
gen.berylChance = 0f;
gen.iceChance = 0.6f;
gen.carbonChance = 0.1f;
@@ -164,7 +168,7 @@ public class Planets{
});
}
- private static Planet makeAsteroid(String name, Planet parent, Block base, Block tint, float tintThresh, int pieces, float scale, Cons cgen){
+ private static Planet makeAsteroid(String name, Planet parent, Block base, Block tint, int seed, float tintThresh, int pieces, float scale, Cons cgen){
return new Planet(name, parent, 0.12f){{
hasAtmosphere = false;
updateLighting = false;
@@ -187,13 +191,13 @@ public class Planets{
Rand rand = new Rand(id + 2);
meshes.add(new NoiseMesh(
- this, 0, 2, radius, 2, 0.55f, 0.45f, 14f,
+ this, seed, 2, radius, 2, 0.55f, 0.45f, 14f,
color, tinted, 3, 0.6f, 0.38f, tintThresh
));
for(int j = 0; j < pieces; j++){
meshes.add(new MatMesh(
- new NoiseMesh(this, j + 1, 1, 0.022f + rand.random(0.039f) * scale, 2, 0.6f, 0.38f, 20f,
+ new NoiseMesh(this, seed + j + 1, 1, 0.022f + rand.random(0.039f) * scale, 2, 0.6f, 0.38f, 20f,
color, tinted, 3, 0.6f, 0.38f, tintThresh),
new Mat3D().setToTranslation(Tmp.v31.setToRandomDirection(rand).setLength(rand.random(0.44f, 1.4f) * scale)))
);
diff --git a/core/src/mindustry/content/SectorPresets.java b/core/src/mindustry/content/SectorPresets.java
index af9a2bc53e..baaa86ad33 100644
--- a/core/src/mindustry/content/SectorPresets.java
+++ b/core/src/mindustry/content/SectorPresets.java
@@ -106,7 +106,7 @@ public class SectorPresets{
difficulty = 8;
}};
- frontier = new SectorPreset("frontier", serpulo, 203){{
+ frontier = new SectorPreset("frontier", serpulo, 50){{
difficulty = 4;
}};
diff --git a/core/src/mindustry/content/SerpuloTechTree.java b/core/src/mindustry/content/SerpuloTechTree.java
index 6da887240c..b33d68d4f2 100644
--- a/core/src/mindustry/content/SerpuloTechTree.java
+++ b/core/src/mindustry/content/SerpuloTechTree.java
@@ -19,11 +19,12 @@ public class SerpuloTechTree{
node(junction, () -> {
node(router, () -> {
- node(launchPad, Seq.with(new SectorComplete(extractionOutpost)), () -> {
- //no longer necessary to beat the campaign
- //node(interplanetaryAccelerator, Seq.with(new SectorComplete(planetaryTerminal)), () -> {
+ node(advancedLaunchPad, Seq.with(new SectorComplete(extractionOutpost)), () -> {
+ node(landingPad, () -> {
+ node(interplanetaryAccelerator, Seq.with(new SectorComplete(planetaryTerminal)), () -> {
- //});
+ });
+ });
});
node(distributor);
@@ -146,7 +147,7 @@ public class SerpuloTechTree{
});
});
- node(kiln, Seq.with(new SectorComplete(craters)), () -> {
+ node(kiln, Seq.with(new OnSector(craters)), () -> {
node(pulverizer, () -> {
node(incinerator, () -> {
node(melter, () -> {
@@ -435,8 +436,8 @@ public class SerpuloTechTree{
});
});
- node(additiveReconstructor, Seq.with(new SectorComplete(biomassFacility)), () -> {
- node(multiplicativeReconstructor, Seq.with(new SectorComplete(overgrowth)), () -> {
+ node(additiveReconstructor, Seq.with(new SectorComplete(craters)), () -> {
+ node(multiplicativeReconstructor, Seq.with(new SectorComplete(frontier)), () -> {
node(exponentialReconstructor, () -> {
node(tetrativeReconstructor, () -> {
@@ -457,14 +458,58 @@ public class SerpuloTechTree{
new Research(mender),
new Research(combustionGenerator)
), () -> {
- node(frontier, Seq.with(
+ node(fungalPass, Seq.with(
+ new SectorComplete(craters),
new Research(groundFactory),
- new Research(airFactory),
- new Research(thermalGenerator),
- new Research(dagger),
- new Research(mono)
+ new Research(dagger)
), () -> {
+ node(frontier, Seq.with(
+ new SectorComplete(biomassFacility),
+ new SectorComplete(fungalPass),
+ new Research(groundFactory),
+ new Research(airFactory),
+ new Research(additiveReconstructor),
+ new Research(mace),
+ new Research(mono)
+ ), () -> {
+ node(overgrowth, Seq.with(
+ new SectorComplete(frontier),
+ new SectorComplete(windsweptIslands),
+ new Research(multiplicativeReconstructor),
+ new Research(fortress),
+ new Research(ripple),
+ new Research(salvo),
+ new Research(cultivator),
+ new Research(sporePress)
+ ), () -> {
+ node(mycelialBastion, Seq.with(
+ new Research(atrax),
+ new Research(spiroct),
+ new Research(arkyid),
+ new Research(multiplicativeReconstructor),
+ new Research(exponentialReconstructor)
+ ), () -> {
+ });
+
+ node(atolls, Seq.with(
+ new SectorComplete(windsweptIslands),
+ new Research(multiplicativeReconstructor),
+ new Research(mega)
+ ), () -> {
+
+ });
+ });
+ });
+
+ node(taintedWoods, Seq.with(
+ new SectorComplete(biomassFacility),
+ new SectorComplete(fungalPass),
+ new Research(Items.sporePod),
+ new Research(wave)
+ ), () -> {
+
+ });
});
node(ruinousShores, Seq.with(
@@ -482,6 +527,8 @@ public class SerpuloTechTree{
), () -> {
node(seaPort, Seq.with(
new SectorComplete(biomassFacility),
+ new SectorComplete(frontier),
+ new SectorComplete(fungalPass),
new Research(navalFactory),
new Research(risso),
new Research(retusa),
@@ -523,7 +570,7 @@ public class SerpuloTechTree{
new Research(sei),
new Research(omura),
new Research(spectre),
- new Research(launchPad),
+ new Research(advancedLaunchPad),
new Research(massDriver),
new Research(impactReactor),
new Research(additiveReconstructor),
@@ -564,6 +611,7 @@ public class SerpuloTechTree{
), () -> {
node(extractionOutpost, Seq.with(
new SectorComplete(windsweptIslands),
+ new SectorComplete(fungalPass),
new SectorComplete(facility32m),
new Research(groundFactory),
new Research(nova),
@@ -591,6 +639,8 @@ public class SerpuloTechTree{
node(saltFlats, Seq.with(
new SectorComplete(windsweptIslands),
+ new SectorComplete(fungalPass),
+ new SectorComplete(frontier),
new Research(groundFactory),
new Research(additiveReconstructor),
new Research(airFactory),
@@ -636,33 +686,6 @@ public class SerpuloTechTree{
});
});
});
-
- node(overgrowth, Seq.with(
- new SectorComplete(craters),
- new SectorComplete(fungalPass),
- new Research(cultivator),
- new Research(sporePress),
- new Research(additiveReconstructor),
- new Research(UnitTypes.mace),
- new Research(UnitTypes.flare)
- ), () -> {
- node(mycelialBastion, Seq.with(
- new Research(atrax),
- new Research(spiroct),
- new Research(multiplicativeReconstructor),
- new Research(exponentialReconstructor)
- ), () -> {
-
- });
-
- node(atolls, Seq.with(
- new SectorComplete(windsweptIslands),
- new Research(multiplicativeReconstructor),
- new Research(mega)
- ), () -> {
-
- });
- });
});
node(biomassFacility, Seq.with(
@@ -672,34 +695,23 @@ public class SerpuloTechTree{
new Research(scatter),
new Research(graphitePress)
), () -> {
- node(taintedWoods, Seq.with(
- new SectorComplete(biomassFacility),
- new Research(Items.sporePod),
- new Research(wave)
- ), () -> {
-
- });
node(stainedMountains, Seq.with(
new SectorComplete(biomassFacility),
new Research(pneumaticDrill),
new Research(siliconSmelter)
), () -> {
- node(fungalPass, Seq.with(
- new SectorComplete(stainedMountains),
- new Research(groundFactory),
- new Research(door)
+
+ //TODO bad order
+ node(infestedCanyons, Seq.with(
+ new SectorComplete(fungalPass),
+ new SectorComplete(frontier),
+ new Research(navalFactory),
+ new Research(risso),
+ new Research(minke),
+ new Research(additiveReconstructor)
), () -> {
- node(infestedCanyons, Seq.with(
- new SectorComplete(fungalPass),
- new Research(navalFactory),
- new Research(risso),
- new Research(minke),
- new Research(additiveReconstructor)
- ), () -> {
-
- });
-
+ //TODO difficulty jump!
node(nuclearComplex, Seq.with(
new SectorComplete(fungalPass),
new Research(thermalGenerator),
@@ -710,6 +722,8 @@ public class SerpuloTechTree{
});
});
+
+
});
});
});
diff --git a/core/src/mindustry/content/TechTree.java b/core/src/mindustry/content/TechTree.java
index c4e05638b0..eade391c03 100644
--- a/core/src/mindustry/content/TechTree.java
+++ b/core/src/mindustry/content/TechTree.java
@@ -99,6 +99,7 @@ public class TechTree{
public TechNode(@Nullable TechNode parent, UnlockableContent content, ItemStack[] requirements){
if(parent != null){
parent.children.add(this);
+ planet = parent.planet;
researchCostMultipliers = parent.researchCostMultipliers;
}else if(researchCostMultipliers == null){
researchCostMultipliers = new ObjectFloatMap<>();
diff --git a/core/src/mindustry/content/UnitTypes.java b/core/src/mindustry/content/UnitTypes.java
index 61e0e64c84..c95f75068e 100644
--- a/core/src/mindustry/content/UnitTypes.java
+++ b/core/src/mindustry/content/UnitTypes.java
@@ -98,6 +98,7 @@ public class UnitTypes{
//region ground attack
dagger = new UnitType("dagger"){{
+ researchCostMultiplier = 0.5f;
speed = 0.5f;
hitSize = 8f;
health = 150;
@@ -606,11 +607,12 @@ public class UnitTypes{
//region ground legs
crawler = new UnitType("crawler"){{
+ researchCostMultiplier = 0.5f;
aiController = SuicideAI::new;
speed = 1f;
hitSize = 8f;
- health = 200;
+ health = 150;
mechSideSway = 0.25f;
range = 40f;
ammoType = new ItemAmmoType(Items.coal);
@@ -629,12 +631,12 @@ public class UnitTypes{
collides = false;
hitSound = Sounds.explosion;
- rangeOverride = 30f;
+ rangeOverride = 25f;
hitEffect = Fx.pulverize;
speed = 0f;
- splashDamageRadius = 55f;
+ splashDamageRadius = 44f;
instantDisappear = true;
- splashDamage = 90f;
+ splashDamage = 80f;
killShooter = true;
hittable = false;
collidesAir = true;
@@ -977,6 +979,7 @@ public class UnitTypes{
//region air attack
flare = new UnitType("flare"){{
+ researchCostMultiplier = 0.5f;
speed = 2.7f;
accel = 0.08f;
drag = 0.04f;
@@ -1017,6 +1020,7 @@ public class UnitTypes{
engineOffset = 7.8f;
range = 140f;
faceTarget = false;
+ autoDropBombs = true;
armor = 3f;
itemCapacity = 0;
targetFlags = new BlockFlag[]{BlockFlag.factory, null};
@@ -1390,6 +1394,7 @@ public class UnitTypes{
drag = 0.017f;
lowAltitude = false;
flying = true;
+ autoDropBombs = true;
circleTarget = true;
engineOffset = 13f;
engineSize = 7f;
@@ -1908,6 +1913,7 @@ public class UnitTypes{
mixColorTo = Color.white;
hitSound = Sounds.plasmaboom;
+ underwater = true;
ejectEffect = Fx.none;
hitSize = 22f;
@@ -3280,6 +3286,7 @@ public class UnitTypes{
}});
weapons.add(new Weapon(){{
+ shootSound = Sounds.none;
shootCone = 360f;
mirror = false;
reload = 1f;
@@ -3301,7 +3308,7 @@ public class UnitTypes{
tecta = new ErekirUnitType("tecta"){{
drag = 0.1f;
speed = 0.6f;
- hitSize = 23f;
+ hitSize = 30f;
health = 7300;
armor = 5f;
@@ -3576,6 +3583,7 @@ public class UnitTypes{
elude = new ErekirUnitType("elude"){{
hovering = true;
+ canDrown = false;
shadowElevation = 0.1f;
drag = 0.07f;
@@ -3862,6 +3870,7 @@ public class UnitTypes{
loopSoundVolume = 0.1f;
weapons.add(new Weapon(){{
+ shootSound = Sounds.none;
shootCone = 360f;
mirror = false;
reload = 1f;
diff --git a/core/src/mindustry/core/Control.java b/core/src/mindustry/core/Control.java
index db1ccc68c3..ac274c820c 100644
--- a/core/src/mindustry/core/Control.java
+++ b/core/src/mindustry/core/Control.java
@@ -199,9 +199,9 @@ public class Control implements ApplicationListener, Loadable{
float coreDelay = 0f;
if(!settings.getBool("skipcoreanimation") && !state.rules.pvp){
- coreDelay = core.landDuration();
+ coreDelay = core.launchDuration();
//delay player respawn so animation can play.
- player.deathTimer = Player.deathDelay - core.landDuration();
+ player.deathTimer = Player.deathDelay - core.launchDuration();
//TODO this sounds pretty bad due to conflict
if(settings.getInt("musicvol") > 0){
//TODO what to do if another core with different music is already playing?
@@ -215,6 +215,10 @@ public class Control implements ApplicationListener, Loadable{
}
if(state.isCampaign()){
+ if(state.rules.sector.info.importRateCache != null){
+ state.rules.sector.info.refreshImportRates(state.rules.sector.planet);
+ }
+
//don't run when hosting, that doesn't really work.
if(state.rules.sector.planet.prebuildBase){
toBePlaced.clear();
@@ -396,7 +400,6 @@ public class Control implements ApplicationListener, Loadable{
control.saves.resetSave();
}
- //for planet launches, mostly
if(sector.preset != null){
sector.preset.quietUnlock();
}
@@ -458,7 +461,7 @@ public class Control implements ApplicationListener, Loadable{
for(var plan : state.rules.waveTeam.data().plans){
Tile tile = world.tile(plan.x, plan.y);
if(tile != null){
- tile.setBlock(content.block(plan.block), state.rules.waveTeam, plan.rotation);
+ tile.setBlock(plan.block, state.rules.waveTeam, plan.rotation);
if(plan.config != null && tile.build != null){
tile.build.configureAny(plan.config);
}
diff --git a/core/src/mindustry/core/Logic.java b/core/src/mindustry/core/Logic.java
index 09c9e67e55..025de0c738 100644
--- a/core/src/mindustry/core/Logic.java
+++ b/core/src/mindustry/core/Logic.java
@@ -210,8 +210,7 @@ public class Logic implements ApplicationListener{
var bounds = tile.block().bounds(tile.x, tile.y, Tmp.r1);
while(it.hasNext()){
BlockPlan b = it.next();
- Block block = content.block(b.block);
- if(bounds.overlaps(block.bounds(b.x, b.y, Tmp.r2))){
+ if(bounds.overlaps(b.block.bounds(b.x, b.y, Tmp.r2))){
b.removed = true;
it.remove();
}
@@ -293,7 +292,7 @@ public class Logic implements ApplicationListener{
//if there's a "win" wave and no enemies are present, win automatically
if(state.rules.waves && (state.enemies == 0 && state.rules.winWave > 0 && state.wave >= state.rules.winWave && !spawner.isSpawning()) ||
- (state.rules.attackMode && state.rules.waveTeam.cores().isEmpty())){
+ (state.rules.attackMode && !state.rules.waveTeam.isAlive())){
if(state.rules.sector.preset != null && state.rules.sector.preset.attackAfterWaves && !state.rules.attackMode){
//activate attack mode to destroy cores after waves are done.
@@ -310,11 +309,11 @@ public class Logic implements ApplicationListener{
Events.fire(new GameOverEvent(state.rules.waveTeam));
}else if(state.rules.attackMode){
//count # of teams alive
- int countAlive = state.teams.getActive().count(t -> t.hasCore() && t.team != Team.derelict);
+ int countAlive = state.teams.getActive().count(t -> t.isAlive() && t.team != Team.derelict);
if((countAlive <= 1 || (!state.rules.pvp && state.rules.defaultTeam.core() == null)) && !state.gameOver){
//find team that won
- TeamData left = state.teams.getActive().find(t -> t.hasCore() && t.team != Team.derelict);
+ TeamData left = state.teams.getActive().find(t -> t.isAlive() && t.team != Team.derelict);
Events.fire(new GameOverEvent(left == null ? Team.derelict : left.team));
state.gameOver = true;
}
@@ -406,12 +405,17 @@ public class Logic implements ApplicationListener{
@Override
public void dispose(){
//save the settings before quitting
- netServer.admins.forceSave();
+ if(netServer != null){
+ netServer.admins.forceSave();
+ }
Core.settings.manualSave();
}
@Override
public void update(){
+ PerfCounter.frame.end();
+ PerfCounter.frame.begin();
+
Events.fire(Trigger.update);
universe.updateGlobal();
@@ -428,6 +432,8 @@ public class Logic implements ApplicationListener{
}
if(!state.isPaused()){
+ Events.fire(Trigger.beforeGameUpdate);
+
float delta = Core.graphics.getDeltaTime();
state.tick += Float.isNaN(delta) || Float.isInfinite(delta) ? 0f : delta * 60f;
state.updateId ++;
@@ -486,7 +492,11 @@ public class Logic implements ApplicationListener{
state.envAttrs.add(state.rules.attributes);
Groups.weather.each(w -> state.envAttrs.add(w.weather.attrs, w.opacity));
+ PerfCounter.entityUpdate.begin();
Groups.update();
+ PerfCounter.entityUpdate.end();
+
+ Events.fire(Trigger.afterGameUpdate);
}
if(runStateCheck){
diff --git a/core/src/mindustry/core/NetClient.java b/core/src/mindustry/core/NetClient.java
index e44926875e..ac8803d3f4 100644
--- a/core/src/mindustry/core/NetClient.java
+++ b/core/src/mindustry/core/NetClient.java
@@ -34,6 +34,7 @@ import java.util.zip.*;
import static mindustry.Vars.*;
public class NetClient implements ApplicationListener{
+ private static final long entitySnapshotTimeout = 1000 * 20;
private static final float dataTimeout = 60 * 30;
/** ticks between syncs, e.g. 5 means 60/5 = 12 syncs/sec*/
private static final float playerSyncTime = 4;
@@ -50,6 +51,8 @@ public class NetClient implements ApplicationListener{
private boolean quietReset = false;
/** Counter for data timeout. */
private float timeoutTime = 0f;
+ /** Timestamp for last UDP state snapshot received. */
+ private long lastSnapshotTimestamp;
/** Last sent client snapshot ID. */
private int lastSent;
@@ -273,7 +276,7 @@ public class NetClient implements ApplicationListener{
Events.fire(new PlayerChatEvent(player, message));
//log commands before they are handled
- if(message.startsWith(netServer.clientCommands.getPrefix())){
+ if(message.startsWith(netServer.clientCommands.getPrefix()) && Config.logCommands.bool()){
//log with brackets
Log.info("<&fi@: @&fr>", "&lk" + player.plainName(), "&lw" + message);
}
@@ -319,7 +322,7 @@ public class NetClient implements ApplicationListener{
ui.join.connect(ip, port);
}
- @Remote(targets = Loc.client)
+ @Remote(targets = Loc.client, priority = PacketPriority.high)
public static void ping(Player player, long time){
Call.pingResponse(player.con, time);
}
@@ -478,6 +481,7 @@ public class NetClient implements ApplicationListener{
@Remote(variants = Variant.one, priority = PacketPriority.low, unreliable = true)
public static void entitySnapshot(short amount, byte[] data){
try{
+ netClient.lastSnapshotTimestamp = Time.millis();
netClient.byteStream.setBytes(data);
DataInputStream input = netClient.dataStream;
@@ -575,7 +579,18 @@ public class NetClient implements ApplicationListener{
if(!net.client()) return;
if(state.isGame()){
- if(!connecting) sync();
+ if(!connecting){
+ sync();
+
+ //timeout if UDP snapshot packets are not received for a while
+ if(lastSnapshotTimestamp > 0 && Time.timeSinceMillis(lastSnapshotTimestamp) > entitySnapshotTimeout){
+ Log.err("Timed out after not received UDP snapshots.");
+ quiet = true;
+ ui.showErrorMessage("@disconnect.snapshottimeout");
+ net.disconnect();
+ lastSnapshotTimestamp = 0;
+ }
+ }
}else if(!connecting){
net.disconnect();
}else{ //...must be connecting
@@ -612,6 +627,7 @@ public class NetClient implements ApplicationListener{
Core.app.post(Call::connectConfirm);
Time.runTask(40f, platform::updateRPC);
Core.app.post(ui.loadfrag::hide);
+ lastSnapshotTimestamp = Time.millis();
}
private void reset(){
@@ -622,6 +638,7 @@ public class NetClient implements ApplicationListener{
quietReset = false;
quiet = false;
lastSent = 0;
+ lastSnapshotTimestamp = 0;
Groups.clear();
ui.chatfrag.clearMessages();
diff --git a/core/src/mindustry/core/NetServer.java b/core/src/mindustry/core/NetServer.java
index 6b1fe2da72..0d122ec249 100644
--- a/core/src/mindustry/core/NetServer.java
+++ b/core/src/mindustry/core/NetServer.java
@@ -632,7 +632,7 @@ public class NetServer implements ApplicationListener{
return Float.isInfinite(f) || Float.isNaN(f);
}
- @Remote(targets = Loc.client, unreliable = true)
+ @Remote(targets = Loc.client, unreliable = true, priority = PacketPriority.high)
public static void clientSnapshot(
Player player,
int snapshotID,
@@ -815,7 +815,7 @@ public class NetServer implements ApplicationListener{
}
case trace -> {
PlayerInfo stats = netServer.admins.getInfo(other.uuid());
- TraceInfo info = new TraceInfo(other.con.address, other.uuid(), other.con.modclient, other.con.mobile, stats.timesJoined, stats.timesKicked, stats.ips.toArray(String.class), stats.names.toArray(String.class));
+ TraceInfo info = new TraceInfo(other.con.address, other.uuid(), other.locale, other.con.modclient, other.con.mobile, stats.timesJoined, stats.timesKicked, stats.ips.toArray(String.class), stats.names.toArray(String.class));
if(player.con != null){
Call.traceInfo(player.con, other, info);
}else{
@@ -830,7 +830,7 @@ public class NetServer implements ApplicationListener{
}
}
- @Remote(targets = Loc.client)
+ @Remote(targets = Loc.client, priority = PacketPriority.high)
public static void connectConfirm(Player player){
if(player.con.kicked) return;
@@ -990,6 +990,7 @@ public class NetServer implements ApplicationListener{
//write all entities now
dataStream.writeInt(entity.id()); //write id
dataStream.writeByte(entity.classId() & 0xFF); //write type ID
+ entity.beforeWrite();
entity.writeSync(Writes.get(dataStream)); //write entity
sent++;
@@ -1082,7 +1083,7 @@ public class NetServer implements ApplicationListener{
try{
writeEntitySnapshot(player);
}catch(IOException e){
- e.printStackTrace();
+ Log.err(e);
}
});
diff --git a/core/src/mindustry/core/PerfCounter.java b/core/src/mindustry/core/PerfCounter.java
new file mode 100644
index 0000000000..02de189ab6
--- /dev/null
+++ b/core/src/mindustry/core/PerfCounter.java
@@ -0,0 +1,53 @@
+package mindustry.core;
+
+import arc.math.*;
+import arc.util.*;
+
+/** Simple per-frame time counter. */
+public enum PerfCounter{
+ frame,
+ update,
+ entityUpdate,
+ render;
+
+ public static final PerfCounter[] all = values();
+
+ static final int meanWindow = 30;
+ static final int refreshTimeMillis = 500;
+
+ private long valueRefreshTime;
+ private float refreshValue;
+
+ private long beginTime;
+ private boolean began = false;
+ private WindowedMean mean = new WindowedMean(meanWindow);
+
+ public void begin(){
+ began = true;
+ beginTime = Time.nanos();
+ }
+
+ public void end(){
+ if(!began) return;
+ began = false;
+ mean.add(Time.timeSinceNanos(beginTime));
+ }
+
+ /** Value with a periodic refresh interval applied, to prevent jittery UI. */
+ public float valueMs(){
+ if(Time.timeSinceMillis(valueRefreshTime) > refreshTimeMillis){
+ refreshValue = rawValueMs();
+ valueRefreshTime = Time.millis();
+ }
+ return refreshValue;
+ }
+
+ /** Raw value without a refresh interval. This will be unstable. */
+ public float rawValueMs(){
+ return mean.rawMean() / Time.nanosPerMilli;
+ }
+
+ public long rawValueNs(){
+ return (long)mean.rawMean();
+ }
+}
diff --git a/core/src/mindustry/core/Renderer.java b/core/src/mindustry/core/Renderer.java
index c544e8bba2..22a2db65ab 100644
--- a/core/src/mindustry/core/Renderer.java
+++ b/core/src/mindustry/core/Renderer.java
@@ -20,15 +20,14 @@ import mindustry.graphics.*;
import mindustry.graphics.g3d.*;
import mindustry.maps.*;
import mindustry.type.*;
-import mindustry.world.blocks.storage.*;
-import mindustry.world.blocks.storage.CoreBlock.*;
+import mindustry.world.blocks.*;
import static arc.Core.*;
import static mindustry.Vars.*;
public class Renderer implements ApplicationListener{
/** These are global variables, for headless access. Cached. */
- public static float laserOpacity = 0.5f, bridgeOpacity = 0.75f;
+ public static float laserOpacity = 0.5f, unitLaserOpacity = 1f, bridgeOpacity = 0.75f;
public final BlockRenderer blocks = new BlockRenderer();
public final FogRenderer fog = new FogRenderer();
@@ -43,16 +42,18 @@ public class Renderer implements ApplicationListener{
public FrameBuffer effectBuffer = new FrameBuffer();
public boolean animateShields, drawWeather = true, drawStatus, enableEffects, drawDisplays = true, drawLight = true, pixelate = false;
public float weatherAlpha;
- /** minZoom = zooming out, maxZoom = zooming in */
+ /** minZoom = zooming out, maxZoom = zooming in, used by cutscenes */
public float minZoom = 1.5f, maxZoom = 6f;
+
+ /** minZoom = zooming out, maxZoom = zooming in, used by actual gameplay zoom and regulated by settings **/
+ public float minZoomInGame = 0.5f, maxZoomInGame = 6f;
public Seq envRenderers = new Seq<>();
public ObjectMap customBackgrounds = new ObjectMap<>();
public TextureRegion[] bubbles = new TextureRegion[16], splashes = new TextureRegion[12];
public TextureRegion[][] fluidFrames;
//currently landing core, null if there are no cores or it has finished landing.
- private @Nullable CoreBuild landCore;
- private @Nullable CoreBlock launchCoreType;
+ private @Nullable LaunchAnimator launchAnimator;
private Color clearColor = new Color(0f, 0f, 0f, 1f);
private float
//target camera scale that is lerp-ed to
@@ -61,8 +62,6 @@ public class Renderer implements ApplicationListener{
camerascale = targetscale,
//starts at coreLandDuration, ends at 0. if positive, core is landing.
landTime,
- //timer for core landing particles
- landPTimer,
//intensity for screen shake
shakeIntensity,
//reduction rate of screen shake
@@ -72,6 +71,7 @@ public class Renderer implements ApplicationListener{
//for landTime > 0: if true, core is currently *launching*, otherwise landing.
private boolean launching;
private Vec2 camShakeOffset = new Vec2();
+ private int glErrors;
public Renderer(){
camera = new Camera();
@@ -151,6 +151,7 @@ public class Renderer implements ApplicationListener{
@Override
public void update(){
+ PerfCounter.render.begin();
Color.white.set(1f, 1f, 1f, 1f);
float baseTarget = targetscale;
@@ -162,31 +163,34 @@ public class Renderer implements ApplicationListener{
float dest = Mathf.clamp(Mathf.round(baseTarget, 0.5f), minScale(), maxScale());
camerascale = Mathf.lerpDelta(camerascale, dest, 0.1f);
if(Mathf.equal(camerascale, dest, 0.001f)) camerascale = dest;
+ unitLaserOpacity = settings.getInt("unitlaseropacity") / 100f;
laserOpacity = settings.getInt("lasersopacity") / 100f;
bridgeOpacity = settings.getInt("bridgeopacity") / 100f;
animateShields = settings.getBool("animatedshields");
drawStatus = settings.getBool("blockstatus");
enableEffects = settings.getBool("effects");
drawDisplays = !settings.getBool("hidedisplays");
+ maxZoomInGame = settings.getFloat("maxzoomingamemultiplier", 1) * maxZoom;
+ minZoomInGame = minZoom / settings.getFloat("minzoomingamemultiplier", 1);
drawLight = settings.getBool("drawlight", true);
pixelate = settings.getBool("pixelate");
//don't bother drawing landing animation if core is null
- if(landCore == null) landTime = 0f;
+ if(launchAnimator == null) landTime = 0f;
if(landTime > 0){
- if(!state.isPaused()) landCore.updateLaunching();
+ if(!state.isPaused()) launchAnimator.updateLaunch();
weatherAlpha = 0f;
- camerascale = landCore.zoomLaunching();
+ camerascale = launchAnimator.zoomLaunch();
if(!state.isPaused()) landTime -= Time.delta;
}else{
weatherAlpha = Mathf.lerpDelta(weatherAlpha, 1f, 0.08f);
}
- if(landCore != null && landTime <= 0f){
- landCore.endLaunch();
- landCore = null;
+ if(launchAnimator != null && landTime <= 0f){
+ launchAnimator.endLaunch();
+ launchAnimator = null;
}
camera.width = graphics.getWidth() / camerascale;
@@ -218,6 +222,26 @@ public class Renderer implements ApplicationListener{
camera.position.sub(camShakeOffset);
}
+
+ //glGetError can be expensive, so only check it periodically
+ if(glErrors < maxGlErrors && graphics.getFrameId() % 10 == 0){
+ int error = Gl.getError();
+ if(error != Gl.noError){
+ String message = switch(error){
+ case Gl.invalidValue -> "invalid value";
+ case Gl.invalidOperation -> "invalid operation";
+ case Gl.invalidFramebufferOperation -> "invalid framebuffer operation";
+ case Gl.invalidEnum -> "invalid enum";
+ case Gl.outOfMemory -> "out of memory";
+ default -> "unknown error " + (error);
+ };
+
+ Log.err("[GL] Error: @", message);
+ glErrors ++;
+ }
+ }
+
+ PerfCounter.render.end();
}
public void updateAllDarkness(){
@@ -311,7 +335,6 @@ public class Renderer implements ApplicationListener{
Draw.draw(Layer.block - 0.09f, () -> {
blocks.floor.beginDraw();
blocks.floor.drawLayer(CacheLayer.walls);
- blocks.floor.endDraw();
});
Draw.drawRange(Layer.blockBuilding, () -> Draw.shader(Shaders.blockbuild, true), Draw::shader);
@@ -378,9 +401,14 @@ public class Renderer implements ApplicationListener{
Draw.draw(Layer.overlayUI, overlays::drawTop);
if(state.rules.fog) Draw.draw(Layer.fogOfWar, fog::drawFog);
Draw.draw(Layer.space, () -> {
- if(landCore == null || landTime <= 0f) return;
- landCore.drawLanding(launching && launchCoreType != null ? launchCoreType : (CoreBlock)landCore.block);
+ if(launchAnimator == null || landTime <= 0f) return;
+ launchAnimator.drawLaunch();
});
+ if(launchAnimator != null){
+ Draw.z(Layer.space);
+ launchAnimator.drawLaunchGlobalZ();
+ Draw.reset();
+ }
Events.fire(Trigger.drawOver);
blocks.drawBlocks();
@@ -484,11 +512,13 @@ public class Renderer implements ApplicationListener{
}
public float minScale(){
- return Scl.scl(minZoom);
+ if(control.input.logicCutscene) return Scl.scl(minZoom);
+ return Scl.scl(minZoomInGame);
}
public float maxScale(){
- return Mathf.round(Scl.scl(maxZoom));
+ if(control.input.logicCutscene) return Mathf.round(Scl.scl(maxZoom));
+ return Mathf.round(Scl.scl(maxZoomInGame));
}
public float getScale(){
@@ -504,66 +534,41 @@ public class Renderer implements ApplicationListener{
return launching;
}
- public CoreBlock getLaunchCoreType(){
- return launchCoreType;
- }
-
public float getLandTime(){
return landTime;
}
public float getLandTimeIn(){
- if(landCore == null) return 0f;
- float fin = landTime / landCore.landDuration();
+ if(launchAnimator == null) return 0f;
+ float fin = landTime / launchAnimator.launchDuration();
if(!launching) fin = 1f - fin;
return fin;
}
- public float getLandPTimer(){
- return landPTimer;
- }
-
- public void setLandPTimer(float landPTimer){
- this.landPTimer = landPTimer;
- }
-
- @Deprecated
- public void showLanding(){
- var core = player.bestCore();
- if(core != null) showLanding(core);
- }
-
- public void showLanding(CoreBuild landCore){
- this.landCore = landCore;
+ public void showLanding(LaunchAnimator landCore){
+ this.launchAnimator = landCore;
launching = false;
- landTime = landCore.landDuration();
+ landTime = landCore.launchDuration();
- landCore.beginLaunch(null);
- camerascale = landCore.zoomLaunching();
+ landCore.beginLaunch(false);
+ camerascale = landCore.zoomLaunch();
}
- @Deprecated
- public void showLaunch(CoreBlock coreType){
- var core = player.team().core();
- if(core != null) showLaunch(core, coreType);
- }
-
- public void showLaunch(CoreBuild landCore, CoreBlock coreType){
+ public void showLaunch(LaunchAnimator landCore){
control.input.config.hideConfig();
control.input.planConfig.hide();
control.input.inv.hide();
- this.landCore = landCore;
+ this.launchAnimator = landCore;
launching = true;
- landTime = landCore.landDuration();
- launchCoreType = coreType;
+ landTime = landCore.launchDuration();
Music music = landCore.launchMusic();
music.stop();
music.play();
music.setVolume(settings.getInt("musicvol") / 100f);
- landCore.beginLaunch(coreType);
+ landCore.beginLaunch(true);
}
public void takeMapScreenshot(){
diff --git a/core/src/mindustry/core/UI.java b/core/src/mindustry/core/UI.java
index 1eb38240d1..c2e777ac5e 100644
--- a/core/src/mindustry/core/UI.java
+++ b/core/src/mindustry/core/UI.java
@@ -33,6 +33,8 @@ import static arc.scene.actions.Actions.*;
import static mindustry.Vars.*;
public class UI implements ApplicationListener, Loadable{
+
+ private static final StringBuilder buffer = new StringBuilder();
public static String billions, millions, thousands;
public static PixmapPacker packer;
@@ -682,6 +684,40 @@ public class UI implements ApplicationListener, Loadable{
followUpMenus.remove(menuId).hide();
}
+ /**
+ * Finds all :name: in a string and replaces them with the icon, if such exists.
+ * Based on TextFormatter::simpleFormat
+ */
+ public static String formatIcons(String s){
+ if(!s.contains(":")) return s;
+
+ buffer.setLength(0);
+ boolean changed = false;
+
+ boolean checkIcon = false;
+ String[] tokens = s.split(":");
+ for(String token : tokens){
+ if(checkIcon){
+ if(Iconc.codes.containsKey(token)){
+ buffer.append((char)Iconc.codes.get(token));
+ changed = true;
+ checkIcon = false;
+ }else if(Fonts.hasUnicodeStr(token)){
+ buffer.append(Fonts.getUnicodeStr(token));
+ changed = true;
+ checkIcon = false;
+ }else{
+ buffer.append(":").append(token);
+ }
+ }else{
+ buffer.append(token);
+ checkIcon = true;
+ }
+ }
+
+ return changed ? buffer.toString() : s;
+ }
+
/** Formats time with hours:minutes:seconds. */
public static String formatTime(float ticks){
int seconds = (int)(ticks / 60);
diff --git a/core/src/mindustry/core/World.java b/core/src/mindustry/core/World.java
index a9e858a0c7..8852976c90 100644
--- a/core/src/mindustry/core/World.java
+++ b/core/src/mindustry/core/World.java
@@ -44,6 +44,11 @@ public class World{
Events.on(WorldLoadEvent.class, e -> {
tileChanges = -1;
+
+ //make each building check if it can update in the given map area
+ for(var build : Groups.build){
+ build.checkAllowUpdate();
+ }
});
}
@@ -123,7 +128,7 @@ public class World{
Tile tile = tiles.get(x, y);
if(tile == null) return null;
if(tile.build != null){
- return tile.build.tile();
+ return tile.build.tile;
}
return tile;
}
@@ -458,11 +463,16 @@ public class World{
return 0;
}
- public void checkMapArea(){
- for(var build : Groups.build){
- //reset map-area-based disabled blocks.
- if(!build.enabled && build.block.autoResetEnabled){
- build.enabled = true;
+ public void checkMapArea(int x, int y, int w, int h){
+ for(var team : state.teams.present){
+ for(var build : team.buildings){
+ //reset map-area-based disabled blocks that were not in the previous map area
+ if(!build.enabled && build.block.autoResetEnabled && !Rect.contains(x, y, w, h, build.tile.x, build.tile.y)){
+ build.enabled = true;
+ }
+
+ //if the map area contracts, disable the block
+ build.checkAllowUpdate();
}
}
}
diff --git a/core/src/mindustry/ctype/UnlockableContent.java b/core/src/mindustry/ctype/UnlockableContent.java
index c4ed0bf708..f8fdc28679 100644
--- a/core/src/mindustry/ctype/UnlockableContent.java
+++ b/core/src/mindustry/ctype/UnlockableContent.java
@@ -32,8 +32,10 @@ public abstract class UnlockableContent extends MappableContent{
public boolean alwaysUnlocked = false;
/** Whether to show the description in the research dialog preview. */
public boolean inlineDescription = true;
- /** Whether details of blocks are hidden in custom games if they haven't been unlocked in campaign mode. */
+ /** Whether details are hidden in custom games if this hasn't been unlocked in campaign mode. */
public boolean hideDetails = true;
+ /** Whether this is hidden from the Core Database. */
+ public boolean hideDatabase = false;
/** If false, all icon generation is disabled for this content; createIcons is not called. */
public boolean generateIcons = true;
/** How big the content appears in certain selection menus */
diff --git a/core/src/mindustry/editor/BannedContentDialog.java b/core/src/mindustry/editor/BannedContentDialog.java
new file mode 100644
index 0000000000..f78b4a2e98
--- /dev/null
+++ b/core/src/mindustry/editor/BannedContentDialog.java
@@ -0,0 +1,210 @@
+package mindustry.editor;
+
+import arc.*;
+import arc.func.*;
+import arc.graphics.*;
+import arc.graphics.g2d.*;
+import arc.scene.style.*;
+import arc.scene.ui.*;
+import arc.scene.ui.layout.*;
+import arc.struct.*;
+import arc.util.*;
+import mindustry.ctype.*;
+import mindustry.gen.*;
+import mindustry.graphics.*;
+import mindustry.type.*;
+import mindustry.ui.*;
+import mindustry.ui.dialogs.*;
+import mindustry.world.*;
+
+import static mindustry.Vars.*;
+
+public class BannedContentDialog extends BaseDialog{
+ private final ContentType type;
+ private Table selectedTable;
+ private Table deselectedTable;
+ private ObjectSet contentSet;
+ private final Boolf pred;
+ private String contentSearch;
+ private Category selectedCategory;
+ private Seq filteredContent;
+
+ public BannedContentDialog(String title, ContentType type, Boolf pred){
+ super(title);
+ this.type = type;
+ this.pred = pred;
+ contentSearch = "";
+
+ selectedTable = new Table();
+ deselectedTable = new Table();
+
+ addCloseButton();
+
+ shown(this::build);
+ resized(this::build);
+ }
+
+ public void show(ObjectSet contentSet){
+ this.contentSet = contentSet;
+ show();
+ }
+
+ public void build(){
+ cont.clear();
+
+ var cell = cont.table(t -> {
+ t.table(s -> {
+ s.label(() -> "@search").padRight(10);
+ var field = s.field(contentSearch, value -> {
+ contentSearch = value.trim().replaceAll(" +", " ").toLowerCase();
+ rebuildTables();
+ }).get();
+ s.button(Icon.cancel, Styles.emptyi, () -> {
+ contentSearch = "";
+ field.setText("");
+ rebuildTables();
+ }).padLeft(10f).size(35f);
+ });
+ if(type == ContentType.block){
+ t.row();
+ t.table(c -> {
+ c.marginTop(8f);
+ c.defaults().marginRight(4f);
+ for(Category category : Category.values()){
+ c.button(ui.getIcon(category.name()), Styles.squareTogglei, () -> {
+ if(selectedCategory == category){
+ selectedCategory = null;
+ }else{
+ selectedCategory = category;
+ }
+ rebuildTables();
+ }).size(45f).update(i -> i.setChecked(selectedCategory == category)).padLeft(4f);
+ }
+ c.add("").padRight(4f);
+ }).center();
+ }
+ });
+ cont.row();
+ if(!Core.graphics.isPortrait()) cell.colspan(2);
+
+ filteredContent = content.getBy(type).select(pred);
+ if(!contentSearch.isEmpty()) filteredContent.removeAll(content -> !content.localizedName.toLowerCase().contains(contentSearch.toLowerCase()));
+
+ cont.table(table -> {
+ if(type == ContentType.block){
+ table.add("@bannedblocks").color(Color.valueOf("f25555")).padBottom(-1).top().row();
+ }else{
+ table.add("@bannedunits").color(Color.valueOf("f25555")).padBottom(-1).top().row();
+ }
+
+ table.image().color(Color.valueOf("f25555")).height(3f).padBottom(5f).fillX().expandX().top().row();
+ table.pane(table2 -> selectedTable = table2).fill().expand().row();
+ table.button("@addall", Icon.add, () -> {
+ contentSet.addAll(filteredContent);
+ rebuildTables();
+ }).disabled(button -> contentSet.toSeq().containsAll(filteredContent)).padTop(10f).bottom().fillX();
+ }).fill().expandY().uniform();
+
+ if(Core.graphics.isPortrait()) cont.row();
+
+ var cell2 = cont.table(table -> {
+ if(type == ContentType.block){
+ table.add("@unbannedblocks").color(Pal.accent).padBottom(-1).top().row();
+ }else{
+ table.add("@unbannedunits").color(Pal.accent).padBottom(-1).top().row();
+ }
+
+ table.image().color(Pal.accent).height(3f).padBottom(5f).fillX().top().row();
+ table.pane(table2 -> deselectedTable = table2).fill().expand().row();
+ table.button("@addall", Icon.add, () -> {
+ contentSet.removeAll(filteredContent);
+ rebuildTables();
+ }).disabled(button -> {
+ Seq array = content.getBy(type);
+ array = array.copy();
+ array.removeAll(contentSet.toSeq());
+ return array.containsAll(filteredContent);
+ }).padTop(10f).bottom().fillX();
+ }).fill().expandY().uniform();
+ if(Core.graphics.isPortrait()){
+ cell2.padTop(10f);
+ }else{
+ cell2.padLeft(10f);
+ }
+
+ rebuildTables();
+ }
+
+ private void rebuildTables(){
+ filteredContent.clear();
+ filteredContent = content.getBy(type);
+ filteredContent = filteredContent.select(pred);
+
+ if(!contentSearch.isEmpty()) filteredContent.removeAll(content -> !content.localizedName.toLowerCase().contains(contentSearch.toLowerCase()));
+ if(type == ContentType.block){
+ filteredContent.removeAll(content -> selectedCategory != null && ((Block)content).category != selectedCategory);
+ }
+
+ rebuildTable(selectedTable, true);
+ rebuildTable(deselectedTable, false);
+ }
+
+ private void rebuildTable(Table table, boolean isSelected){
+ table.clear();
+
+ int cols;
+ if(Core.graphics.isPortrait()){
+ cols = Math.max(4, (int)((Core.graphics.getWidth() / Scl.scl() - 100f) / 50f));
+ }else{
+ cols = Math.max(4, (int)((Core.graphics.getWidth() / Scl.scl() - 300f) / 50f / 2));
+ }
+
+ if((isSelected && contentSet.isEmpty()) || (!isSelected && contentSet.size == content.getBy(type).count(pred))){
+ table.add("@empty").width(50f * cols).padBottom(5f).get().setAlignment(Align.center);
+ }else{
+ Seq array;
+ if(!isSelected){
+ array = content.getBy(type);
+ array = array.copy();
+ array.removeAll(contentSet.toSeq());
+ }else{
+ array = contentSet.toSeq();
+ }
+ array.sort();
+ array.removeAll(content -> !filteredContent.contains(content));
+
+ if(array.isEmpty()){
+ table.add("@empty").width(50f * cols).padBottom(5f).get().setAlignment(Align.center);
+ return;
+ }
+ int i = 0;
+ boolean requiresPad = true;
+
+ for(T content : array){
+ TextureRegion region = content.uiIcon;
+
+ ImageButton button = new ImageButton(Tex.whiteui, Styles.clearNonei);
+ button.getStyle().imageUp = new TextureRegionDrawable(region);
+ button.resizeImage(8 * 4f);
+ if(isSelected) button.clicked(() -> {
+ contentSet.remove(content);
+ rebuildTables();
+ });
+ else button.clicked(() -> {
+ contentSet.add(content);
+ rebuildTables();
+ });
+ table.add(button).size(50f).tooltip(content.localizedName);
+
+ if(++i % cols == 0){
+ table.row();
+ requiresPad = false;
+ }
+ }
+
+ if(requiresPad){
+ table.add("").padRight(50f * (cols - i));
+ }
+ }
+ }
+}
diff --git a/core/src/mindustry/editor/EditorTile.java b/core/src/mindustry/editor/EditorTile.java
index 68272ce8d1..b4ff3f1296 100644
--- a/core/src/mindustry/editor/EditorTile.java
+++ b/core/src/mindustry/editor/EditorTile.java
@@ -35,7 +35,9 @@ public class EditorTile extends Tile{
if(floor == type && overlayID() == 0) return;
if(overlayID() != 0) op(OpType.overlay, overlayID());
if(floor != type) op(OpType.floor, floor.id);
- super.setFloor(type);
+
+ this.floor = type;
+ this.overlay = (Floor)Blocks.air;
}
@Override
@@ -141,14 +143,14 @@ public class EditorTile extends Tile{
if(block == null) block = Blocks.air;
if(floor == null) floor = (Floor)Blocks.air;
-
+
Block block = block();
if(block.hasBuilding()){
build = entityprov.get().init(this, team, false, rotation);
if(block.hasItems) build.items = new ItemModule();
- if(block.hasLiquids) build.liquids(new LiquidModule());
- if(block.hasPower) build.power(new PowerModule());
+ if(block.hasLiquids) build.liquids = new LiquidModule();
+ if(block.hasPower) build.power = new PowerModule();
}
}
diff --git a/core/src/mindustry/editor/MapEditorDialog.java b/core/src/mindustry/editor/MapEditorDialog.java
index ad35a4a45f..93b679be7c 100644
--- a/core/src/mindustry/editor/MapEditorDialog.java
+++ b/core/src/mindustry/editor/MapEditorDialog.java
@@ -757,7 +757,7 @@ public class MapEditorDialog extends Dialog implements Disposable{
if(!Core.atlas.isFound(region) || !block.inEditor
|| block.buildVisibility == BuildVisibility.debugOnly
- || (!searchText.isEmpty() && !block.localizedName.toLowerCase().contains(searchText.toLowerCase()))
+ || (!searchText.isEmpty() && !block.localizedName.toLowerCase().contains(searchText.trim().replaceAll(" +", " ").toLowerCase()))
) continue;
ImageButton button = new ImageButton(Tex.whiteui, Styles.clearNoneTogglei);
diff --git a/core/src/mindustry/editor/MapObjectivesDialog.java b/core/src/mindustry/editor/MapObjectivesDialog.java
index c8f021f214..ab781c7419 100644
--- a/core/src/mindustry/editor/MapObjectivesDialog.java
+++ b/core/src/mindustry/editor/MapObjectivesDialog.java
@@ -136,6 +136,7 @@ public class MapObjectivesDialog extends BaseDialog{
name(cont, name, remover, indexer);
cont.table(t -> t.left().button(
b -> b.image(Tex.whiteui).size(iconSmall).update(i -> i.setColor(get.get().color)),
+ Styles.squarei,
() -> showTeamSelect(set)
).fill().pad(4f)).growX().fillY();
});
@@ -529,6 +530,8 @@ public class MapObjectivesDialog extends BaseDialog{
public void rebuildObjectives(Seq objectives){
canvas.clearObjectives();
+ objectives.each(MapObjective::validate);
+
if(
objectives.any() && (
// If the objectives were previously programmatically made...
@@ -592,9 +595,23 @@ public class MapObjectivesDialog extends BaseDialog{
}
public static void showTeamSelect(Cons cons){
+ showTeamSelect(false, cons);
+ }
+
+ public static void showTeamSelect(boolean allowNull, Cons cons){
BaseDialog dialog = new BaseDialog("");
+
+ dialog.cont.defaults().size(40f).pad(4f);
+
+ if(allowNull){
+ dialog.cont.button(Icon.cancel, Styles.emptyi, () -> {
+ cons.get(null);
+ dialog.hide();
+ }).tooltip("@none");
+ }
+
for(var team : Team.baseTeams){
- dialog.cont.image(Tex.whiteui).size(iconMed).color(team.color).pad(4)
+ dialog.cont.image(Tex.whiteui).color(team.color)
.with(i -> i.addListener(new HandCursorListener()))
.tooltip(team.localized()).get().clicked(() -> {
cons.get(team);
diff --git a/core/src/mindustry/editor/MapProcessorsDialog.java b/core/src/mindustry/editor/MapProcessorsDialog.java
index dd0f73d3f7..8867c2df13 100644
--- a/core/src/mindustry/editor/MapProcessorsDialog.java
+++ b/core/src/mindustry/editor/MapProcessorsDialog.java
@@ -19,7 +19,7 @@ import mindustry.world.blocks.logic.LogicBlock.*;
import static mindustry.Vars.*;
public class MapProcessorsDialog extends BaseDialog{
- private IconSelectDialog iconSelect = new IconSelectDialog();
+ private IconSelectDialog iconSelect = new IconSelectDialog(true);
private TextField search;
private Seq processors = new Seq<>();
private Table list;
diff --git a/core/src/mindustry/editor/WaveInfoDialog.java b/core/src/mindustry/editor/WaveInfoDialog.java
index e36bada5ae..55e675caa0 100644
--- a/core/src/mindustry/editor/WaveInfoDialog.java
+++ b/core/src/mindustry/editor/WaveInfoDialog.java
@@ -47,7 +47,6 @@ public class WaveInfoDialog extends BaseDialog{
});
hidden(() -> state.rules.spawns = groups);
- onResize(this::setup);
addCloseButton();
buttons.button("@waves.edit", Icon.edit, () -> {
@@ -289,6 +288,13 @@ public class WaveInfoDialog extends BaseDialog{
buildGroups();
}).padTop(4).update(b -> b.setChecked(group.effect == StatusEffects.boss)).padBottom(8f).row();
+ t.table(a -> {
+ a.add("@waves.team").padRight(8);
+
+ a.button(b -> b.image(Tex.whiteui).size(iconSmall).update(i -> i.setColor(group.team == null ? Color.clear : group.team.color)), Styles.squarei,
+ () -> MapObjectivesDialog.showTeamSelect(true, team -> group.team = team)).size(38f);
+ }).padTop(0).row();
+
t.table(a -> {
a.add("@waves.spawn").padRight(8);
diff --git a/core/src/mindustry/entities/Damage.java b/core/src/mindustry/entities/Damage.java
index 7f13c16546..2648e37b86 100644
--- a/core/src/mindustry/entities/Damage.java
+++ b/core/src/mindustry/entities/Damage.java
@@ -70,23 +70,27 @@ public class Damage{
}
}
- /** Creates a dynamic explosion based on specified parameters. */
public static void dynamicExplosion(float x, float y, float flammability, float explosiveness, float power, float radius, boolean damage){
dynamicExplosion(x, y, flammability, explosiveness, power, radius, damage, true, null, Fx.dynamicExplosion);
}
- /** Creates a dynamic explosion based on specified parameters. */
public static void dynamicExplosion(float x, float y, float flammability, float explosiveness, float power, float radius, boolean damage, Effect explosionFx){
dynamicExplosion(x, y, flammability, explosiveness, power, radius, damage, true, null, explosionFx);
}
- /** Creates a dynamic explosion based on specified parameters. */
+ public static void dynamicExplosion(float x, float y, float flammability, float explosiveness, float power, float radius, boolean damage, Effect explosionFx, float baseShake){
+ dynamicExplosion(x, y, flammability, explosiveness, power, radius, damage, true, null, explosionFx, baseShake);
+ }
+
public static void dynamicExplosion(float x, float y, float flammability, float explosiveness, float power, float radius, boolean damage, boolean fire, @Nullable Team ignoreTeam){
dynamicExplosion(x, y, flammability, explosiveness, power, radius, damage, fire, ignoreTeam, Fx.dynamicExplosion);
}
- /** Creates a dynamic explosion based on specified parameters. */
public static void dynamicExplosion(float x, float y, float flammability, float explosiveness, float power, float radius, boolean damage, boolean fire, @Nullable Team ignoreTeam, Effect explosionFx){
+ dynamicExplosion(x, y, flammability, explosiveness, power, radius, damage, fire, ignoreTeam, explosionFx, 3f);
+ }
+
+ public static void dynamicExplosion(float x, float y, float flammability, float explosiveness, float power, float radius, boolean damage, boolean fire, @Nullable Team ignoreTeam, Effect explosionFx, float baseShake){
if(damage){
for(int i = 0; i < Mathf.clamp(power / 700, 0, 8); i++){
int length = 5 + Mathf.clamp((int)(Mathf.pow(power, 0.98f) / 500), 1, 18);
@@ -123,7 +127,7 @@ public class Damage{
Fx.bigShockwave.at(x, y);
}
- float shake = Math.min(explosiveness / 4f + 3f, 9f);
+ float shake = Math.min(explosiveness / 4f + baseShake, 9f);
Effect.shake(shake, shake, x, y);
explosionFx.at(x, y, radius / 8f);
}
@@ -514,7 +518,7 @@ public class Damage{
}
//TODO better velocity displacement
float dst = vec.set(unit.x - x, unit.y - y).len();
- unit.vel.add(vec.setLength((1f - dst / radius) * 2f / unit.mass()));
+ unit.vel.add(vec.setLength((radius > 0f ? 1f - dst / radius : 1f) * 2f / unit.mass()));
if(complete && damage >= 9999999f && unit.isPlayer()){
Events.fire(Trigger.exclusionDeath);
@@ -532,7 +536,7 @@ public class Damage{
if(!complete){
tileDamage(team, World.toTile(x), World.toTile(y), radius / tilesize, damage * (source == null ? 1f : source.type.buildingDamageMultiplier), source);
}else{
- completeDamage(team, x, y, radius, damage);
+ completeDamage(team, x, y, radius, damage * (source == null ? 1f : source.type.buildingDamageMultiplier));
}
}
}
@@ -549,7 +553,12 @@ public class Damage{
//this needs to be compensated
if(in != null && in.team != team && in.block.size > 1 && in.health > damage){
//deal the damage of an entire side, to be equivalent with maximum 'standard' damage
- in.damage(team, damage * Math.min((in.block.size), baseRadius * 0.4f));
+ float d = damage * Math.min((in.block.size), baseRadius * 0.4f);
+ if(source != null){
+ in.damage(source, team, d);
+ }else{
+ in.damage(team, d);
+ }
//no need to continue with the explosion
return;
}
@@ -631,7 +640,7 @@ public class Damage{
private static float calculateDamage(float dist, float radius, float damage){
float falloff = 0.4f;
- float scaled = Mathf.lerp(1f - dist / radius, 1f, falloff);
+ float scaled = radius <= 0.00001f ? 1f : Mathf.lerp(1f - dist / radius, 1f, falloff);
return damage * scaled;
}
diff --git a/core/src/mindustry/entities/EntityCollisions.java b/core/src/mindustry/entities/EntityCollisions.java
index 273449bb6a..c92d32cb93 100644
--- a/core/src/mindustry/entities/EntityCollisions.java
+++ b/core/src/mindustry/entities/EntityCollisions.java
@@ -166,7 +166,7 @@ public class EntityCollisions{
}
}
- private boolean collide(float x1, float y1, float w1, float h1, float vx1, float vy1,
+ public static boolean collide(float x1, float y1, float w1, float h1, float vx1, float vy1,
float x2, float y2, float w2, float h2, float vx2, float vy2, Vec2 out){
float px = vx1, py = vy1;
diff --git a/core/src/mindustry/entities/Lightning.java b/core/src/mindustry/entities/Lightning.java
index 76bbcb82b5..0bd26d7ceb 100644
--- a/core/src/mindustry/entities/Lightning.java
+++ b/core/src/mindustry/entities/Lightning.java
@@ -17,7 +17,7 @@ import static mindustry.Vars.*;
public class Lightning{
private static final Rand random = new Rand();
private static final Rect rect = new Rect();
- private static final Seq entities = new Seq<>();
+ private static final Seq entities = new Seq<>();
private static final IntSet hit = new IntSet();
private static final int maxChain = 8;
private static final float hitRange = 30f;
@@ -74,7 +74,7 @@ public class Lightning{
});
}
- Unitc furthest = Geometry.findFurthest(x, y, entities);
+ Unit furthest = Geometry.findFurthest(x, y, entities);
if(furthest != null){
hit.add(furthest.id());
diff --git a/core/src/mindustry/entities/Puddles.java b/core/src/mindustry/entities/Puddles.java
index 7c3a555154..cb0bcbe45f 100644
--- a/core/src/mindustry/entities/Puddles.java
+++ b/core/src/mindustry/entities/Puddles.java
@@ -97,6 +97,12 @@ public class Puddles{
}
}
+ public static boolean hasLiquid(Tile tile, Liquid liquid){
+ if(tile == null) return false;
+ var p = get(tile);
+ return p != null && p.liquid == liquid && p.amount >= 0.5f;
+ }
+
public static void remove(Tile tile){
if(tile == null) return;
@@ -126,7 +132,7 @@ public class Puddles{
if(Mathf.chance(0.8f * amount)){
Fx.steam.at(x, y);
}
- return -0.4f * amount;
+ return -0.7f * amount;
}
return dest.react(liquid, amount, tile, x, y);
}
diff --git a/core/src/mindustry/entities/TargetPriority.java b/core/src/mindustry/entities/TargetPriority.java
index f8d361bfac..b1c166ba96 100644
--- a/core/src/mindustry/entities/TargetPriority.java
+++ b/core/src/mindustry/entities/TargetPriority.java
@@ -4,7 +4,9 @@ package mindustry.entities;
public class TargetPriority{
public static final float
//nobody cares about walls
- wall = -2f,
+ wall = -3f,
+ //anything that has underBullets gets this priority (it's probably still more important than a wall)
+ under = -2f,
//transport infrastructure isn't as important as factories
transport = -1f,
//most blocks
diff --git a/core/src/mindustry/entities/UnitSorts.java b/core/src/mindustry/entities/UnitSorts.java
index 25afb0def6..8cbf497061 100644
--- a/core/src/mindustry/entities/UnitSorts.java
+++ b/core/src/mindustry/entities/UnitSorts.java
@@ -1,6 +1,7 @@
package mindustry.entities;
import arc.math.*;
+import mindustry.content.*;
import mindustry.entities.Units.*;
import mindustry.gen.*;
@@ -11,4 +12,9 @@ public class UnitSorts{
farthest = (u, x, y) -> -u.dst2(x, y),
strongest = (u, x, y) -> -u.maxHealth + Mathf.dst2(u.x, u.y, x, y) / 6400f,
weakest = (u, x, y) -> u.maxHealth + Mathf.dst2(u.x, u.y, x, y) / 6400f;
+
+ public static BuildingPriorityf
+
+ buildingDefault = b -> b.block.priority,
+ buildingWater = b -> b.block.priority + (b.liquids != null && b.liquids.get(Liquids.water) > 5f ? 10f : 0f);
}
\ No newline at end of file
diff --git a/core/src/mindustry/entities/Units.java b/core/src/mindustry/entities/Units.java
index d334651092..5bc18116fd 100644
--- a/core/src/mindustry/entities/Units.java
+++ b/core/src/mindustry/entities/Units.java
@@ -95,7 +95,7 @@ public class Units{
public static int getCap(Team team){
//wave team has no cap
- if((team == state.rules.waveTeam && !state.rules.pvp) || (state.isCampaign() && team == state.rules.waveTeam) || state.rules.disableUnitCap){
+ if((team == state.rules.waveTeam && !state.rules.pvp) || (state.isCampaign() && team == state.rules.waveTeam) || state.rules.disableUnitCap || team.ignoreUnitCap){
return Integer.MAX_VALUE;
}
return Math.max(0, state.rules.unitCapVariable ? state.rules.unitCap + team.data().unitCap : state.rules.unitCap);
@@ -197,18 +197,8 @@ public class Units{
/** Returns the nearest enemy tile in a range. */
public static Building findEnemyTile(Team team, float x, float y, float range, Boolf pred){
- return findEnemyTile(team, x, y, range, false, pred);
- }
-
- /** Returns the nearest enemy tile in a range. */
- public static Building findEnemyTile(Team team, float x, float y, float range, boolean checkUnder, Boolf pred){
if(team == Team.derelict) return null;
- if(checkUnder){
- Building target = indexer.findEnemyTile(team, x, y, range, build -> !build.block.underBullets && pred.get(build));
- if(target != null) return target;
- }
-
return indexer.findEnemyTile(team, x, y, range, pred);
}
@@ -258,7 +248,7 @@ public class Units{
if(unit != null){
return unit;
}else{
- return findEnemyTile(team, x, y, range, true, tilePred);
+ return findEnemyTile(team, x, y, range, tilePred);
}
}
@@ -270,7 +260,7 @@ public class Units{
if(unit != null){
return unit;
}else{
- return findEnemyTile(team, x, y, range, true, tilePred);
+ return findEnemyTile(team, x, y, range, tilePred);
}
}
@@ -409,7 +399,7 @@ public class Units{
/** @return whether any units exist in this rectangle */
public static boolean any(float x, float y, float width, float height, Boolf filter){
- return count(x, y, width, height, filter) > 0;
+ return Groups.unit.intersect(x, y, width, height, filter);
}
/** Iterates over all units in a rectangle. */
@@ -494,4 +484,8 @@ public class Units{
public interface Sortf{
float cost(Unit unit, float x, float y);
}
+
+ public interface BuildingPriorityf{
+ float priority(Building build);
+ }
}
diff --git a/core/src/mindustry/entities/abilities/Ability.java b/core/src/mindustry/entities/abilities/Ability.java
index 42a31d6312..4dc6b17363 100644
--- a/core/src/mindustry/entities/abilities/Ability.java
+++ b/core/src/mindustry/entities/abilities/Ability.java
@@ -4,6 +4,7 @@ import arc.*;
import arc.scene.ui.layout.*;
import mindustry.gen.*;
import mindustry.type.*;
+import mindustry.ui.*;
public abstract class Ability implements Cloneable{
protected static final float descriptionWidth = 350f;
@@ -13,10 +14,26 @@ public abstract class Ability implements Cloneable{
public float data;
public void update(Unit unit){}
+
public void draw(Unit unit){}
+
public void death(Unit unit){}
+
+ public void created(Unit unit){}
+
public void init(UnitType type){}
+
public void displayBars(Unit unit, Table bars){}
+
+ public void display(Table t){
+ t.table(Styles.grayPanel, a -> {
+ a.add("[accent]" + localized()).padBottom(4).center().top().expandX();
+ a.row();
+ a.left().top().defaults().left();
+ addStats(a);
+ }).pad(5).margin(10).growX().top().uniformX();
+ }
+
public void addStats(Table t){
if(Core.bundle.has(getBundle() + ".description")){
t.add(Core.bundle.get(getBundle() + ".description")).wrap().width(descriptionWidth);
diff --git a/core/src/mindustry/entities/abilities/ForceFieldAbility.java b/core/src/mindustry/entities/abilities/ForceFieldAbility.java
index 504bf20681..2ef8e8e804 100644
--- a/core/src/mindustry/entities/abilities/ForceFieldAbility.java
+++ b/core/src/mindustry/entities/abilities/ForceFieldAbility.java
@@ -41,8 +41,7 @@ public class ForceFieldAbility extends Ability{
if(trait.team != paramUnit.team && trait.type.absorbable && Intersector.isInRegularPolygon(paramField.sides, paramUnit.x, paramUnit.y, realRad, paramField.rotation, trait.x(), trait.y()) && paramUnit.shield > 0){
trait.absorb();
Fx.absorb.at(trait);
-
- paramUnit.shield -= trait.damage();
+ paramUnit.shield -= trait.type().shieldDamage(trait);
paramField.alpha = 1f;
}
};
@@ -105,6 +104,15 @@ public class ForceFieldAbility extends Ability{
}
}
+ @Override
+ public void death(Unit unit){
+
+ //self-destructing units can have a shield on death
+ if(unit.shield > 0f && !wasBroken){
+ Fx.shieldBreak.at(unit.x, unit.y, radius, unit.type.shieldColor(unit), this);
+ }
+ }
+
@Override
public void draw(Unit unit){
checkRadius(unit);
@@ -131,6 +139,11 @@ public class ForceFieldAbility extends Ability{
bars.add(new Bar("stat.shieldhealth", Pal.accent, () -> unit.shield / max)).row();
}
+ @Override
+ public void created(Unit unit){
+ unit.shield = max;
+ }
+
public void checkRadius(Unit unit){
//timer2 is used to store radius scale as an effect
realRad = radiusScale * radius;
diff --git a/core/src/mindustry/entities/abilities/LiquidRegenAbility.java b/core/src/mindustry/entities/abilities/LiquidRegenAbility.java
index 6f864035ce..227a72e8e5 100644
--- a/core/src/mindustry/entities/abilities/LiquidRegenAbility.java
+++ b/core/src/mindustry/entities/abilities/LiquidRegenAbility.java
@@ -13,8 +13,8 @@ import static mindustry.Vars.*;
public class LiquidRegenAbility extends Ability{
public Liquid liquid;
- public float slurpSpeed = 9f;
- public float regenPerSlurp = 2.9f;
+ public float slurpSpeed = 5f;
+ public float regenPerSlurp = 6f;
public float slurpEffectChance = 0.4f;
public Effect slurpEffect = Fx.heal;
@@ -31,7 +31,7 @@ public class LiquidRegenAbility extends Ability{
//TODO timer?
//TODO effects?
- if(unit.damaged()){
+ if(unit.damaged() && !unit.isFlying()){
boolean healed = false;
int tx = unit.tileX(), ty = unit.tileY();
int rad = Math.max((int)(unit.hitSize / tilesize * 0.6f), 1);
diff --git a/core/src/mindustry/entities/abilities/MoveEffectAbility.java b/core/src/mindustry/entities/abilities/MoveEffectAbility.java
index 48e2ba709c..8e0254f13a 100644
--- a/core/src/mindustry/entities/abilities/MoveEffectAbility.java
+++ b/core/src/mindustry/entities/abilities/MoveEffectAbility.java
@@ -1,6 +1,7 @@
package mindustry.entities.abilities;
import arc.graphics.*;
+import arc.math.*;
import arc.util.*;
import mindustry.*;
import mindustry.content.*;
@@ -9,8 +10,9 @@ import mindustry.gen.*;
public class MoveEffectAbility extends Ability{
public float minVelocity = 0.08f;
- public float interval = 3f;
- public float x, y, rotation;
+ public float interval = 3f, chance = 0f;
+ public int amount = 1;
+ public float x, y, rotation, rangeX, rangeY, rangeLengthMin, rangeLengthMax;
public boolean rotateEffect = false;
public float effectParam = 3f;
public boolean teamColor = false;
@@ -38,10 +40,17 @@ public class MoveEffectAbility extends Ability{
if(Vars.headless) return;
counter += Time.delta;
- if(unit.vel.len2() >= minVelocity * minVelocity && (counter >= interval) && !unit.inFogTo(Vars.player.team())){
- Tmp.v1.trns(unit.rotation - 90f, x, y);
+ if(unit.vel.len2() >= minVelocity * minVelocity && (counter >= interval || (chance > 0 && Mathf.chanceDelta(chance))) && !unit.inFogTo(Vars.player.team())){
+ if(rangeLengthMax > 0){
+ Tmp.v1.trns(unit.rotation - 90f, x, y).add(Tmp.v2.rnd(Mathf.random(rangeLengthMin, rangeLengthMax)));
+ }else{
+ Tmp.v1.trns(unit.rotation - 90f, x + Mathf.range(rangeX), y + Mathf.range(rangeY));
+ }
+
counter %= interval;
- effect.at(Tmp.v1.x + unit.x, Tmp.v1.y + unit.y, (rotateEffect ? unit.rotation : effectParam) + rotation, teamColor ? unit.team.color : color, parentizeEffects ? unit : null);
+ for(int i = 0; i < amount; i++){
+ effect.at(Tmp.v1.x + unit.x, Tmp.v1.y + unit.y, (rotateEffect ? unit.rotation : effectParam) + rotation, teamColor ? unit.team.color : color, parentizeEffects ? unit : null);
+ }
}
}
}
diff --git a/core/src/mindustry/entities/abilities/ShieldArcAbility.java b/core/src/mindustry/entities/abilities/ShieldArcAbility.java
index 0af8f3377c..a4d60c3eec 100644
--- a/core/src/mindustry/entities/abilities/ShieldArcAbility.java
+++ b/core/src/mindustry/entities/abilities/ShieldArcAbility.java
@@ -11,7 +11,6 @@ import mindustry.*;
import mindustry.content.*;
import mindustry.gen.*;
import mindustry.graphics.*;
-import mindustry.type.*;
import mindustry.ui.*;
public class ShieldArcAbility extends Ability{
@@ -102,7 +101,7 @@ public class ShieldArcAbility extends Ability{
}
@Override
- public void init(UnitType type){
+ public void created(Unit unit){
data = max;
}
diff --git a/core/src/mindustry/entities/abilities/UnitSpawnAbility.java b/core/src/mindustry/entities/abilities/UnitSpawnAbility.java
index f7ab3667f4..28307cec9c 100644
--- a/core/src/mindustry/entities/abilities/UnitSpawnAbility.java
+++ b/core/src/mindustry/entities/abilities/UnitSpawnAbility.java
@@ -46,7 +46,7 @@ public class UnitSpawnAbility extends Ability{
timer += Time.delta * state.rules.unitBuildSpeed(unit.team);
if(timer >= spawnTime && Units.canCreate(unit.team, this.unit)){
- float x = unit.x + Angles.trnsx(unit.rotation, spawnY, spawnX), y = unit.y + Angles.trnsy(unit.rotation, spawnY, spawnX);
+ float x = unit.x + Angles.trnsx(unit.rotation, spawnY, -spawnX), y = unit.y + Angles.trnsy(unit.rotation, spawnY, -spawnX);
spawnEffect.at(x, y, 0f, parentizeEffects ? unit : null);
Unit u = this.unit.create(unit.team);
u.set(x, y);
@@ -64,7 +64,7 @@ public class UnitSpawnAbility extends Ability{
public void draw(Unit unit){
if(Units.canCreate(unit.team, this.unit)){
Draw.draw(Draw.z(), () -> {
- float x = unit.x + Angles.trnsx(unit.rotation, spawnY, spawnX), y = unit.y + Angles.trnsy(unit.rotation, spawnY, spawnX);
+ float x = unit.x + Angles.trnsx(unit.rotation, spawnY, -spawnX), y = unit.y + Angles.trnsy(unit.rotation, spawnY, -spawnX);
Drawf.construct(x, y, this.unit.fullIcon, unit.rotation - 90, timer / spawnTime, 1f, timer);
});
}
diff --git a/core/src/mindustry/entities/bullet/BulletType.java b/core/src/mindustry/entities/bullet/BulletType.java
index 71329a947f..112d2f3005 100644
--- a/core/src/mindustry/entities/bullet/BulletType.java
+++ b/core/src/mindustry/entities/bullet/BulletType.java
@@ -30,16 +30,24 @@ public class BulletType extends Content implements Cloneable{
/** Lifetime in ticks. */
public float lifetime = 40f;
+ /** Min/max multipliers for lifetime applied to this bullet when spawned. */
+ public float lifeScaleRandMin = 1f, lifeScaleRandMax = 1f;
/** Speed in units/tick. */
public float speed = 1f;
+ /** Min/max multipliers for velocity applied to this bullet when spawned. */
+ public float velocityScaleRandMin = 1f, velocityScaleRandMax = 1f;
/** Direct damage dealt on hit. */
public float damage = 1f;
/** Hitbox size. */
public float hitSize = 4;
/** Clipping hitbox. */
public float drawSize = 40f;
+ /** Angle offset applied to bullet when spawned each time. */
+ public float angleOffset = 0f, randomAngleOffset = 0f;
/** Drag as fraction of velocity. */
public float drag = 0f;
+ /** Acceleration per frame. */
+ public float accel = 0f;
/** Whether to pierce units. */
public boolean pierce;
/** Whether to pierce buildings. */
@@ -84,6 +92,8 @@ public class BulletType extends Content implements Cloneable{
public float reloadMultiplier = 1f;
/** Multiplier of how much base damage is done to tiles. */
public float buildingDamageMultiplier = 1f;
+ /** Multiplier of how much base damage is done to force shields. */
+ public float shieldDamageMultiplier = 1f;
/** Recoil from shooter entities. */
public float recoil;
/** Whether to kill the shooter when this is shot. For suicide bombers. */
@@ -141,14 +151,22 @@ public class BulletType extends Content implements Cloneable{
public float rangeOverride = -1f;
/** When used in a turret with multiple ammo types, this can be set to a non-zero value to influence range. */
public float rangeChange = 0f;
+ /** When used in turrets with limitRange() applied, this adds extra range to the bullets that extends past targeting range. Only particularly relevant in vanilla. */
+ public float extraRangeMargin = 0f;
/** Range initialized in init(). */
public float range = 0f;
+ /** When used in a turret with multiple ammoo types, this can be set to a non-zero value to influence minRange */
+ public float minRangeChange = 0f;
/** % of block health healed **/
public float healPercent = 0f;
/** flat amount of block health healed */
public float healAmount = 0f;
+ /** Fraction of bullet damage that heals that shooter. */
+ public float lifesteal = 0f;
/** Whether to make fire on impact */
public boolean makeFire = false;
+ /** Whether this bullet will always hit blocks under it. */
+ public boolean hitUnder = false;
/** Whether to create hit effects on despawn. Forced to true if this bullet has any special effects like splash damage. */
public boolean despawnHit = false;
/** If true, this bullet will create bullets when it hits anything, not just when it despawns. */
@@ -157,6 +175,10 @@ public class BulletType extends Content implements Cloneable{
public boolean fragOnAbsorb = true;
/** If true, unit armor is ignored in damage calculations. */
public boolean pierceArmor = false;
+ /** If true, the bullet will "stick" to enemies and get deactivated on collision. */
+ public boolean sticky = false;
+ /** Extra time added to bullet when it sticks to something. */
+ public float stickyExtraLifetime = 0f;
/** Whether status and despawnHit should automatically be set. */
public boolean setDefaults = true;
/** Amount of shaking produced when this bullet hits something or despawns. */
@@ -189,7 +211,7 @@ public class BulletType extends Content implements Cloneable{
public float bulletInterval = 20f;
/** Number of bullet spawned per interval. */
public int intervalBullets = 1;
- /** Random spread of interval bullets. */
+ /** Random angle added to interval bullets. */
public float intervalRandomSpread = 360f;
/** Angle spread between individual interval bullets. */
public float intervalSpread = 0f;
@@ -198,6 +220,9 @@ public class BulletType extends Content implements Cloneable{
/** Use a negative value to disable interval bullet delay. */
public float intervalDelay = -1f;
+ /** If true, this bullet is rendered underwater. Highly experimental! */
+ public boolean underwater = false;
+
/** Color used for hit/despawn effects. */
public Color hitColor = Color.white;
/** Color used for block heal effects. */
@@ -206,6 +231,8 @@ public class BulletType extends Content implements Cloneable{
public Effect healEffect = Fx.healBlockFull;
/** Bullets spawned when this bullet is created. Rarely necessary, used for visuals. */
public Seq spawnBullets = new Seq<>();
+ /** Random angle spread of spawn bullets. */
+ public float spawnBulletRandomSpread = 0f;
/** Unit spawned _instead of_ this bullet. Useful for missiles. */
public @Nullable UnitType spawnUnit;
/** Unit spawned when this bullet hits something or despawns due to it hitting the end of its lifetime. */
@@ -227,8 +254,12 @@ public class BulletType extends Content implements Cloneable{
public float trailChance = -0.0001f;
/** Uniform interval in which trail effect is spawned. */
public float trailInterval = 0f;
+ /** Min velocity required for trail effect to spawn. */
+ public float trailMinVelocity = 0f;
/** Trail effect that is spawned. */
public Effect trailEffect = Fx.missileTrail;
+ /** Random offset of trail effect. */
+ public float trailSpread = 0f;
/** Rotation/size parameter that is passed to trail. Usually, this controls size. */
public float trailParam = 2f;
/** Whether the parameter passed to the trail is the bullet rotation, instead of a flat value. */
@@ -241,6 +272,14 @@ public class BulletType extends Content implements Cloneable{
public float trailWidth = 2f;
/** If trailSinMag > 0, these values are applied as a sine curve to trail width. */
public float trailSinMag = 0f, trailSinScl = 3f;
+ /** If true, the bullet will attempt to circle around its shooting entity. */
+ public boolean circleShooter = false;
+ /** Radius that the bullet attempts to circle at. */
+ public float circleShooterRadius = 13f;
+ /** Smooth extra radius value for circling. */
+ public float circleShooterRadiusSmooth = 10f;
+ /** Multiplier of speed that is used to adjust velocity when circling. */
+ public float circleShooterRotateSpeed = 0.3f;
/** Use a negative value to disable splash damage. */
public float splashDamageRadius = -1f;
@@ -293,6 +332,8 @@ public class BulletType extends Content implements Cloneable{
public float weaveMag = 0f;
/** If true, the bullet weave will randomly switch directions on spawn. */
public boolean weaveRandom = true;
+ /** Rotation speed of the bullet velocity as it travels. */
+ public float rotateSpeed = 0f;
/** Number of individual puddles created. */
public int puddles;
@@ -392,6 +433,11 @@ public class BulletType extends Content implements Cloneable{
build.heal(healPercent / 100f * build.maxHealth + healAmount);
}else if(build.team != b.team && direct){
hit(b);
+
+ if(lifesteal > 0f && b.owner instanceof Healthc o){
+ float result = Math.max(Math.min(build.health, damage), 0);
+ o.heal(result * lifesteal);
+ }
}
handlePierce(b, initialHealth, x, y);
@@ -411,6 +457,10 @@ public class BulletType extends Content implements Cloneable{
}else{
health += shield;
}
+ if(lifesteal > 0f && b.owner instanceof Healthc o){
+ float result = Math.max(Math.min(h.health(), damage), 0);
+ o.heal(result * lifesteal);
+ }
if(pierceArmor){
h.damagePierce(damage);
}else{
@@ -525,7 +575,7 @@ public class BulletType extends Content implements Cloneable{
if(fragBullet != null && (fragOnAbsorb || !b.absorbed) && !(b.frags >= pierceFragCap && pierceFragCap > 0)){
for(int i = 0; i < fragBullets; i++){
float len = Mathf.random(fragOffsetMin, fragOffsetMax);
- float a = b.rotation() + Mathf.range(fragRandomSpread / 2) + fragAngle + ((i - fragBullets/2) * fragSpread);
+ float a = b.rotation() + Mathf.range(fragRandomSpread / 2) + fragAngle + fragSpread * i - (fragBullets - 1) * fragSpread / 2f;
fragBullet.create(b, x + Angles.trnsx(a, len), y + Angles.trnsy(a, len), a, Mathf.random(fragVelocityMin, fragVelocityMax), Mathf.random(fragLifeMin, fragLifeMax));
}
b.frags++;
@@ -567,6 +617,14 @@ public class BulletType extends Content implements Cloneable{
}
}
+ public float buildingDamage(Bullet b){
+ return b.damage() * buildingDamageMultiplier;
+ }
+
+ public float shieldDamage(Bullet b){
+ return b.damage() * shieldDamageMultiplier;
+ }
+
public void draw(Bullet b){
drawTrail(b);
drawParts(b);
@@ -610,7 +668,7 @@ public class BulletType extends Content implements Cloneable{
if(spawnBullets.size > 0){
for(var bullet : spawnBullets){
- bullet.create(b, b.x, b.y, b.rotation());
+ bullet.create(b, b.x, b.y, b.rotation() + Mathf.range(spawnBulletRandomSpread));
}
}
}
@@ -664,18 +722,40 @@ public class BulletType extends Content implements Cloneable{
if(weaveMag != 0){
b.vel.rotateRadExact((float)Math.sin((b.time + Math.PI * weaveScale/2f) / weaveScale) * weaveMag * (weaveRandom ? (Mathf.randomSeed(b.id, 0, 1) == 1 ? -1 : 1) : 1f) * Time.delta * Mathf.degRad);
}
+
+ if(rotateSpeed != 0){
+ b.vel.rotate(rotateSpeed * Time.delta);
+ }
+
+ if(circleShooter && b.owner instanceof Healthc h && h.isValid()){
+ Tmp.v1.set(h).sub(b);
+ Tmp.v1.rotate(90f * Mathf.lerp(0f, 1f, 1f - Mathf.clamp((Tmp.v1.len() - circleShooterRadius) / circleShooterRadiusSmooth)));
+ b.vel.add(Tmp.v1.limit(speed * circleShooterRotateSpeed * Time.delta)).limit(speed);
+ }
}
public void updateTrailEffects(Bullet b){
- if(trailChance > 0){
+ boolean canSpawn = trailMinVelocity <= 0f || b.vel.len2() >= trailMinVelocity * trailMinVelocity;
+
+ if(trailChance > 0 && canSpawn){
if(Mathf.chanceDelta(trailChance)){
- trailEffect.at(b.x, b.y, trailRotation ? b.rotation() : trailParam, trailColor);
+ if(trailSpread > 0){
+ Tmp.v1.rnd(Mathf.random(trailSpread));
+ }else{
+ Tmp.v1.setZero();
+ }
+ trailEffect.at(b.x + Tmp.v1.x, b.y + Tmp.v1.y, trailRotation ? b.rotation() : trailParam, trailColor);
}
}
- if(trailInterval > 0f){
+ if(trailInterval > 0f && canSpawn){
if(b.timer(0, trailInterval)){
- trailEffect.at(b.x, b.y, trailRotation ? b.rotation() : trailParam, trailColor);
+ if(trailSpread > 0){
+ Tmp.v1.rnd(Mathf.random(trailSpread));
+ }else{
+ Tmp.v1.setZero();
+ }
+ trailEffect.at(b.x + Tmp.v1.x, b.y + Tmp.v1.y, trailRotation ? b.rotation() : trailParam, trailColor);
}
}
}
@@ -714,7 +794,10 @@ public class BulletType extends Content implements Cloneable{
}
if(lightningType == null){
- lightningType = !collidesAir ? Bullets.damageLightningGround : Bullets.damageLightning;
+ lightningType =
+ !collidesAir ? Bullets.damageLightningGround :
+ !collidesGround ? Bullets.damageLightningAir :
+ Bullets.damageLightning;
}
if(lightRadius <= -1){
@@ -752,15 +835,15 @@ public class BulletType extends Content implements Cloneable{
}
public @Nullable Bullet create(Bullet parent, float x, float y, float angle){
- return create(parent.owner, parent.team, x, y, angle);
+ return create(parent.owner, parent.shooter, parent.team, x, y, angle, -1, 1f, 1f, null, null, -1f, -1f);
}
public @Nullable Bullet create(Bullet parent, float x, float y, float angle, float velocityScl, float lifeScale){
- return create(parent.owner, parent.team, x, y, angle, velocityScl, lifeScale);
+ return create(parent.owner, parent.shooter, parent.team, x, y, angle, -1, velocityScl, lifeScale, null, null, -1f, -1f);
}
public @Nullable Bullet create(Bullet parent, float x, float y, float angle, float velocityScl){
- return create(parent.owner(), parent.team, x, y, angle, velocityScl);
+ return create(parent.owner, parent.shooter, parent.team, x, y, angle, -1, velocityScl, 1f, null, null, -1f, -1f);
}
public @Nullable Bullet create(@Nullable Entityc owner, Team team, float x, float y, float angle, float damage, float velocityScl, float lifetimeScl, Object data){
@@ -783,6 +866,8 @@ public class BulletType extends Content implements Cloneable{
@Nullable Entityc owner, @Nullable Entityc shooter, Team team, float x, float y, float angle, float damage, float velocityScl,
float lifetimeScl, Object data, @Nullable Mover mover, float aimX, float aimY, @Nullable Teamc target
){
+ angle += angleOffset + Mathf.range(randomAngleOffset);
+
if(!Mathf.chance(createChance)) return null;
if(ignoreSpawnAngle) angle = 0;
if(spawnUnit != null){
@@ -818,6 +903,7 @@ public class BulletType extends Content implements Cloneable{
Bullet bullet = Bullet.create();
bullet.type = this;
bullet.owner = owner;
+ bullet.shooter = (shooter == null ? owner : shooter);
bullet.team = team;
bullet.time = 0f;
bullet.originX = x;
@@ -828,13 +914,13 @@ public class BulletType extends Content implements Cloneable{
bullet.aimX = aimX;
bullet.aimY = aimY;
- bullet.initVel(angle, speed * velocityScl);
+ bullet.initVel(angle, speed * velocityScl * (velocityScaleRandMin != 1f || velocityScaleRandMax != 1f ? Mathf.random(velocityScaleRandMin, velocityScaleRandMax) : 1f));
if(backMove){
bullet.set(x - bullet.vel.x * Time.delta, y - bullet.vel.y * Time.delta);
}else{
bullet.set(x, y);
}
- bullet.lifetime = lifetime * lifetimeScl;
+ bullet.lifetime = lifetime * lifetimeScl * (lifeScaleRandMin != 1f || lifeScaleRandMax != 1f ? Mathf.random(lifeScaleRandMin, lifeScaleRandMax) : 1f);
bullet.data = data;
bullet.drag = drag;
bullet.hitSize = hitSize;
diff --git a/core/src/mindustry/entities/bullet/EmptyBulletType.java b/core/src/mindustry/entities/bullet/EmptyBulletType.java
new file mode 100644
index 0000000000..13dfd83ccc
--- /dev/null
+++ b/core/src/mindustry/entities/bullet/EmptyBulletType.java
@@ -0,0 +1,10 @@
+package mindustry.entities.bullet;
+
+public class EmptyBulletType extends BulletType{
+
+ public EmptyBulletType(){
+ hittable = collidesGround = collidesAir = collidesTiles = false;
+ speed = 0f;
+ keepVelocity = false;
+ }
+}
diff --git a/core/src/mindustry/entities/bullet/InterceptorBulletType.java b/core/src/mindustry/entities/bullet/InterceptorBulletType.java
new file mode 100644
index 0000000000..0c0ab47fd8
--- /dev/null
+++ b/core/src/mindustry/entities/bullet/InterceptorBulletType.java
@@ -0,0 +1,53 @@
+package mindustry.entities.bullet;
+
+import arc.util.*;
+import mindustry.entities.*;
+import mindustry.gen.*;
+
+/** This class can only be used with PointDefenseBulletWeapon. Attempting to spawn it in outside of that weapon will lead to standard behavior. */
+public class InterceptorBulletType extends BasicBulletType{
+
+ public InterceptorBulletType(float speed, float damage){
+ super(speed, damage);
+ }
+
+ public InterceptorBulletType(){
+ }
+
+ public InterceptorBulletType(float speed, float damage, String bulletSprite){
+ super(speed, damage, bulletSprite);
+ }
+
+ @Override
+ public void update(Bullet b){
+ super.update(b);
+
+ if(b.data instanceof Bullet other){
+ if(other.isAdded()){
+
+ //check for an overlap between the two bullet trajectories; it is the responsibility of the creator to make sure the bullet is a valid target
+ if(EntityCollisions.collide(
+ b.x, b.y,
+ b.hitSize, b.hitSize,
+ b.deltaX, b.deltaY,
+ other.x, other.y,
+ other.hitSize, other.hitSize,
+ other.deltaX, other.deltaY, Tmp.v1)){
+
+ b.set(Tmp.v1);
+
+ hit(b, b.x, b.y);
+ b.remove();
+
+ if(other.damage > damage){
+ other.damage -= b.damage;
+ }else{
+ other.remove();
+ }
+ }
+ }else{
+ b.data = null;
+ }
+ }
+ }
+}
diff --git a/core/src/mindustry/entities/bullet/LightningBulletType.java b/core/src/mindustry/entities/bullet/LightningBulletType.java
index add245a16e..226d188f91 100644
--- a/core/src/mindustry/entities/bullet/LightningBulletType.java
+++ b/core/src/mindustry/entities/bullet/LightningBulletType.java
@@ -1,6 +1,5 @@
package mindustry.entities.bullet;
-import arc.graphics.*;
import arc.math.*;
import mindustry.content.*;
import mindustry.entities.*;
@@ -8,8 +7,6 @@ import mindustry.gen.*;
import mindustry.graphics.*;
public class LightningBulletType extends BulletType{
- public Color lightningColor = Pal.lancerLaser;
- public int lightningLength = 25, lightningLengthRand = 0;
public LightningBulletType(){
damage = 1f;
@@ -21,6 +18,9 @@ public class LightningBulletType extends BulletType{
hittable = false;
//for stats
status = StatusEffects.shocked;
+ lightningLength = 25;
+ lightningLengthRand = 0;
+ lightningColor = Pal.lancerLaser;
}
@Override
@@ -33,10 +33,6 @@ public class LightningBulletType extends BulletType{
return super.estimateDPS() * Math.max(lightningLength / 10f, 1);
}
- @Override
- public void draw(Bullet b){
- }
-
@Override
public void init(Bullet b){
super.init(b);
diff --git a/core/src/mindustry/entities/bullet/MultiBulletType.java b/core/src/mindustry/entities/bullet/MultiBulletType.java
new file mode 100644
index 0000000000..5b6d3edf8e
--- /dev/null
+++ b/core/src/mindustry/entities/bullet/MultiBulletType.java
@@ -0,0 +1,61 @@
+package mindustry.entities.bullet;
+
+import arc.util.*;
+import mindustry.entities.*;
+import mindustry.game.*;
+import mindustry.gen.*;
+
+/** A fake bullet type that spawns multiple sub-bullets when "fired". */
+public class MultiBulletType extends BulletType{
+ public BulletType[] bullets = {};
+ /** Amount of times the bullet array is repeated. */
+ public int repeat = 1;
+
+ public MultiBulletType(BulletType... bullets){
+ this.bullets = bullets;
+ }
+
+ public MultiBulletType(int repeat, BulletType... bullets){
+ this.repeat = repeat;
+ this.bullets = bullets;
+ }
+
+ public MultiBulletType(){
+ }
+
+ @Override
+ public float estimateDPS(){
+ float sum = 0f;
+ for(var b : bullets){
+ sum += b.estimateDPS();
+ }
+ return sum;
+ }
+
+ @Override
+ protected float calculateRange(){
+ float max = 0f;
+ for(var b : bullets){
+ max = Math.max(max, b.calculateRange());
+ }
+ return max;
+ }
+
+ @Override
+ public @Nullable Bullet create(
+ @Nullable Entityc owner, @Nullable Entityc shooter, Team team, float x, float y, float angle, float damage, float velocityScl,
+ float lifetimeScl, Object data, @Nullable Mover mover, float aimX, float aimY, @Nullable Teamc target
+ ){
+ angle += angleOffset;
+
+ Bullet last = null;
+
+ for(int i = 0; i < repeat; i++){
+ for(var bullet : bullets){
+ last = bullet.create(owner, shooter, team, x, y, angle, damage, velocityScl, lifetimeScl, data, mover, aimX, aimY, target);
+ }
+ }
+
+ return last;
+ }
+}
diff --git a/core/src/mindustry/entities/bullet/SapBulletType.java b/core/src/mindustry/entities/bullet/SapBulletType.java
index 70892cb59a..6bffa4588c 100644
--- a/core/src/mindustry/entities/bullet/SapBulletType.java
+++ b/core/src/mindustry/entities/bullet/SapBulletType.java
@@ -3,6 +3,7 @@ package mindustry.entities.bullet;
import arc.*;
import arc.graphics.*;
import arc.graphics.g2d.*;
+import arc.math.*;
import arc.math.geom.*;
import arc.util.*;
import mindustry.content.*;
@@ -11,10 +12,22 @@ import mindustry.gen.*;
import mindustry.graphics.*;
public class SapBulletType extends BulletType{
- public float length = 100f;
+ public float length = 100f, lengthRand = 0f;
public float sapStrength = 0.5f;
public Color color = Color.white.cpy();
public float width = 0.4f;
+ public String sprite = "laser";
+
+ public TextureRegion laserRegion;
+ public TextureRegion laserEndRegion;
+
+ @Override
+ public void load(){
+ super.load();
+
+ laserRegion = Core.atlas.find(sprite);
+ laserEndRegion = Core.atlas.find(sprite + "-end");
+ }
public SapBulletType(){
speed = 0f;
@@ -37,7 +50,7 @@ public class SapBulletType extends BulletType{
Tmp.v1.set(data).lerp(b, b.fin());
Draw.color(color);
- Drawf.laser(Core.atlas.find("laser"), Core.atlas.find("laser-end"),
+ Drawf.laser(laserRegion, laserEndRegion,
b.x, b.y, Tmp.v1.x, Tmp.v1.y, width * b.fout());
Draw.reset();
@@ -60,7 +73,9 @@ public class SapBulletType extends BulletType{
public void init(Bullet b){
super.init(b);
- Healthc target = Damage.linecast(b, b.x, b.y, b.rotation(), length);
+ float len = Mathf.random(length, length + lengthRand);
+
+ Healthc target = Damage.linecast(b, b.x, b.y, b.rotation(), len);
b.data = target;
if(target != null){
@@ -80,7 +95,7 @@ public class SapBulletType extends BulletType{
hit(b, tile.x, tile.y);
}
}else{
- b.data = new Vec2().trns(b.rotation(), length).add(b.x, b.y);
+ b.data = new Vec2().trns(b.rotation(), len).add(b.x, b.y);
}
}
}
diff --git a/core/src/mindustry/entities/comp/BlockUnitComp.java b/core/src/mindustry/entities/comp/BlockUnitComp.java
index 5ab3327f76..7c11c71a30 100644
--- a/core/src/mindustry/entities/comp/BlockUnitComp.java
+++ b/core/src/mindustry/entities/comp/BlockUnitComp.java
@@ -63,6 +63,11 @@ abstract class BlockUnitComp implements Unitc{
return tile != null && tile.isValid();
}
+ @Replace
+ public boolean isAdded(){
+ return tile != null && tile.isValid();
+ }
+
@Replace
public void team(Team team){
if(tile != null && this.team != team){
diff --git a/core/src/mindustry/entities/comp/BoundedComp.java b/core/src/mindustry/entities/comp/BoundedComp.java
deleted file mode 100644
index 8fc1927bc0..0000000000
--- a/core/src/mindustry/entities/comp/BoundedComp.java
+++ /dev/null
@@ -1,58 +0,0 @@
-package mindustry.entities.comp;
-
-import arc.math.*;
-import arc.util.*;
-import mindustry.annotations.Annotations.*;
-import mindustry.game.*;
-import mindustry.gen.*;
-import mindustry.type.*;
-
-import static mindustry.Vars.*;
-
-@Component
-abstract class BoundedComp implements Velc, Posc, Healthc, Flyingc{
- static final float warpDst = 30f;
-
- @Import UnitType type;
- @Import float x, y;
- @Import Team team;
-
- @Override
- public void update(){
- if(!type.bounded) return;
-
- float bot = 0f, left = 0f, top = world.unitHeight(), right = world.unitWidth();
-
- //TODO hidden map rules only apply to player teams? should they?
- if(state.rules.limitMapArea && !team.isAI()){
- bot = state.rules.limitY * tilesize;
- left = state.rules.limitX * tilesize;
- top = state.rules.limitHeight * tilesize + bot;
- right = state.rules.limitWidth * tilesize + left;
- }
-
- if(!net.client() || isLocal()){
-
- float dx = 0f, dy = 0f;
-
- //repel unit out of bounds
- if(x < left) dx += (-(x - left)/warpDst);
- if(y < bot) dy += (-(y - bot)/warpDst);
- if(x > right) dx -= (x - right)/warpDst;
- if(y > top) dy -= (y - top)/warpDst;
-
- velAddNet(dx * Time.delta, dy * Time.delta);
- }
-
- //clamp position if not flying
- if(isGrounded()){
- x = Mathf.clamp(x, left, right - tilesize);
- y = Mathf.clamp(y, bot, top - tilesize);
- }
-
- //kill when out of bounds
- if(x < -finalWorldBounds + left || y < -finalWorldBounds + bot || x >= right + finalWorldBounds || y >= top + finalWorldBounds){
- kill();
- }
- }
-}
diff --git a/core/src/mindustry/entities/comp/BuilderComp.java b/core/src/mindustry/entities/comp/BuilderComp.java
index 575d5ffc0b..866717c452 100644
--- a/core/src/mindustry/entities/comp/BuilderComp.java
+++ b/core/src/mindustry/entities/comp/BuilderComp.java
@@ -136,7 +136,7 @@ abstract class BuilderComp implements Posc, Statusc, Teamc, Rotc{
}
if(!(tile.build instanceof ConstructBuild cb)){
- if(!current.initialized && !current.breaking && Build.validPlaceIgnoreUnits(current.block, team, current.x, current.y, current.rotation, true)){
+ if(!current.initialized && !current.breaking && Build.validPlaceIgnoreUnits(current.block, team, current.x, current.y, current.rotation, true, true)){
if(Build.checkNoUnitOverlap(current.block, current.x, current.y)){
boolean hasAll = infinite || current.isRotation(team) ||
//derelict repair
@@ -188,7 +188,7 @@ abstract class BuilderComp implements Posc, Statusc, Teamc, Rotc{
//otherwise, update it.
if(current.breaking){
entity.deconstruct(self(), core, bs);
- }else{
+ }else if(entity.current != null && entity.current.unlockedNowHost()){ //only allow building unlocked blocks
entity.construct(self(), core, bs, current.config);
}
diff --git a/core/src/mindustry/entities/comp/BuildingComp.java b/core/src/mindustry/entities/comp/BuildingComp.java
index 98c14d3497..fd6b3adfb0 100644
--- a/core/src/mindustry/entities/comp/BuildingComp.java
+++ b/core/src/mindustry/entities/comp/BuildingComp.java
@@ -16,7 +16,6 @@ import arc.util.*;
import arc.util.io.*;
import mindustry.*;
import mindustry.annotations.Annotations.*;
-import mindustry.audio.*;
import mindustry.content.*;
import mindustry.core.*;
import mindustry.ctype.*;
@@ -47,7 +46,7 @@ import java.util.*;
import static mindustry.Vars.*;
@EntityDef(value = {Buildingc.class}, isFinal = false, genio = false, serialize = false)
-@Component(base = true)
+@Component(base = true, genInterface = false)
abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, QuadTreeObject, Displayable, Sized, Senseable, Controllable, Settable{
//region vars and initialization
static final float timeToSleep = 60f * 1, recentDamageTime = 60f * 5f;
@@ -56,14 +55,14 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
static final BuildTeamChangeEvent teamChangeEvent = new BuildTeamChangeEvent();
static final BuildDamageEvent bulletDamageEvent = new BuildDamageEvent();
static int sleepingEntities = 0;
-
+
@Import float x, y, health, maxHealth;
@Import Team team;
@Import boolean dead;
transient Tile tile;
transient Block block;
- transient Seq proximity = new Seq<>(6);
+ transient Seq proximity = new Seq<>(true, 6, Building.class);
transient int cdump;
transient int rotation;
transient float payloadRotation;
@@ -99,8 +98,6 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
private transient float timeScale = 1f, timeScaleDuration;
private transient float dumpAccum;
- private transient @Nullable SoundLoop sound;
-
private transient boolean sleeping;
private transient float sleepTime;
private transient boolean initialized;
@@ -126,6 +123,7 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
add();
}
+ checkAllowUpdate();
created();
return self();
@@ -136,10 +134,6 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
this.block = block;
this.team = team;
- if(block.loopSound != Sounds.none){
- sound = new SoundLoop(block.loopSound, block.loopSoundVolume);
- }
-
health = block.health;
maxHealth(block.health);
timer(new Interval(block.timers));
@@ -338,17 +332,18 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
}
}
- data.plans.addFirst(new BlockPlan(tile.x, tile.y, (short)rotation, toAdd.id, overrideConfig == null ? config() : overrideConfig));
+ data.plans.addFirst(new BlockPlan(tile.x, tile.y, (short)rotation, toAdd, overrideConfig == null ? config() : overrideConfig));
}
public @Nullable Tile findClosestEdge(Position to, Boolf solid){
+ if(to == null) return null;
Tile best = null;
float mindst = 0f;
for(var point : Edges.getEdges(block.size)){
Tile other = Vars.world.tile(tile.x + point.x, tile.y + point.y);
if(other != null && !solid.get(other) && (best == null || to.dst2(other) < mindst)){
best = other;
- mindst = other.dst2(other);
+ mindst = other.dst2(to);
}
}
return best;
@@ -473,6 +468,15 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
return lastDamageTime + recentDamageTime >= Time.time;
}
+ public void eachEdge(Cons cons){
+ for(var edge : block.getEdges()){
+ Tile other = world.tile(tile.x + edge.x, tile.y + edge.y);
+ if(other != null){
+ cons.get(other);
+ }
+ }
+ }
+
public Building nearby(int dx, int dy){
return world.build(tile.x + dx, tile.y + dy);
}
@@ -585,8 +589,8 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
/** @return whether this block is allowed to update based on team/environment */
public boolean allowUpdate(){
return team != Team.derelict && block.supportsEnv(state.rules.env) &&
- //check if outside map limit
- (!state.rules.limitMapArea || !state.rules.disableOutsideArea || Rect.contains(state.rules.limitX, state.rules.limitY, state.rules.limitWidth, state.rules.limitHeight, tile.x, tile.y));
+ //check if outside map limit (privileged blocks are exempt)
+ (block.privileged || !state.rules.limitMapArea || !state.rules.disableOutsideArea || Rect.contains(state.rules.limitX, state.rules.limitY, state.rules.limitWidth, state.rules.limitHeight, tile.x, tile.y));
}
public BlockStatus status(){
@@ -809,6 +813,10 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
return false;
}
+ public boolean canBeReplaced(Block other){
+ return other.canReplace(block);
+ }
+
public void handleItem(Building source, Item item){
items.add(item, 1);
}
@@ -1029,10 +1037,9 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
int itemSize = allItems.size;
Object[] itemArray = allItems.items;
- for(int i = 0; i < proximity.size; i++){
- Building other = proximity.get((i + dump) % proximity.size);
-
- if(todump == null){
+ if(todump == null){
+ for(int i = 0; i < proximity.size; i++){
+ Building other = proximity.get((i + dump) % proximity.size);
for(int ii = 0; ii < itemSize; ii++){
if(!items.has(ii)) continue;
@@ -1045,23 +1052,32 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
return true;
}
}
- }else{
+
+ incrementDump(proximity.size);
+ }
+ }else{
+ for(int i = 0; i < proximity.size; i++){
+ Building other = proximity.get((i + dump) % proximity.size);
+
if(other.acceptItem(self(), todump) && canDump(other, todump)){
other.handleItem(self(), todump);
items.remove(todump, 1);
incrementDump(proximity.size);
return true;
}
- }
- incrementDump(proximity.size);
+ incrementDump(proximity.size);
+ }
}
return false;
}
public void incrementDump(int prox){
- cdump = ((cdump + 1) % prox);
+ //this is possible if transferring an item changed a block
+ if(prox != 0){
+ cdump = ((cdump + 1) % prox);
+ }
}
/** Used for dumping items. */
@@ -1087,6 +1103,7 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
}
/** Called after this building is created in the world. May be called multiple times, or when adjacent buildings change. */
+ //TODO ??? this is just onProximityUpdate ?
public void onProximityAdded(){
if(power != null){
updatePowerGraph();
@@ -1118,7 +1135,7 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
}
power.links.clear();
}
-
+
public boolean conductsTo(Building other){
return !block.insulated;
}
@@ -1151,16 +1168,6 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
return getProgressIncrease(1f) / edelta();
}
- /** @return whether this block should play its active sound.*/
- public boolean shouldActiveSound(){
- return false;
- }
-
- /** @return volume cale of active sound. */
- public float activeSoundVolume(){
- return 1f;
- }
-
/** @return whether this block should play its idle sound.*/
public boolean shouldAmbientSound(){
return shouldConsume();
@@ -1196,6 +1203,16 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
block.drawOverlay(x, y, rotation);
}
+ public void drawItemSelection(@Nullable UnlockableContent selection){
+ if(selection != null){
+ float dx = x - block.size * tilesize/2f, dy = y + block.size * tilesize/2f, s = iconSmall / 4f;
+ Draw.mixcol(Color.darkGray, 1f);
+ Draw.rect(selection.fullIcon, dx, dy - 1, s, s);
+ Draw.reset();
+ Draw.rect(selection.fullIcon, dx, dy, s, s);
+ }
+ }
+
public void drawDisabled(){
Draw.color(Color.scarlet);
Draw.alpha(0.8f);
@@ -1303,14 +1320,23 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
public void onRemoved(){
}
- /** Called every frame a unit is on this */
+ /** Called every frame a unit is on this. Hovering/flying/steppy units do not apply. */
public void unitOn(Unit unit){
}
+ /** Called every frame a unit is on this. Applies to any unit. */
+ public void unitOnAny(Unit unit){
+ }
+
/** Called when a unit that spawned at this tile is removed. */
public void unitRemoved(Unit unit){
}
+ /** Called when a puddle is on this building. Only called at an interval (40 ticks). */
+ public void puddleOn(Puddle puddle){
+
+ }
+
/** Called when arbitrary configuration is applied to a tile. */
public void configured(@Nullable Unit builder, @Nullable Object value){
//null is of type void.class; anonymous classes use their superclass.
@@ -1320,7 +1346,7 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
if(value instanceof Block) type = Block.class;
if(value instanceof Liquid) type = Liquid.class;
if(value instanceof UnitType) type = UnitType.class;
-
+
if(builder != null && builder.isPlayer()){
updateLastAccess(builder.getPlayer());
}
@@ -1360,6 +1386,19 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
return block.itemCapacity;
}
+ public void splashLiquid(Liquid liquid, float amount){
+ float splash = Mathf.clamp(amount / 4f, 0f, 10f);
+
+ for(int i = 0; i < Mathf.clamp(amount / 5, 0, 30); i++){
+ Time.run(i / 2f, () -> {
+ Tile other = world.tileWorld(x + Mathf.range(block.size * tilesize / 2), y + Mathf.range(block.size * tilesize / 2));
+ if(other != null){
+ Puddles.deposit(other, liquid, splash);
+ }
+ });
+ }
+ }
+
/** Called when a block begins (not finishes!) deconstruction. The building is still present at this point. */
public void onDeconstructed(@Nullable Unit builder){
//deposit non-incinerable liquid on ground
@@ -1371,9 +1410,6 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
/** Called when the block is destroyed. The tile is still intact at this stage. */
public void onDestroyed(){
- if(sound != null){
- sound.stop();
- }
float explosiveness = block.baseExplosiveness;
float flammability = 0f;
@@ -1399,22 +1435,11 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
if(block.hasLiquids && state.rules.damageExplosions){
- liquids.each((liquid, amount) -> {
- float splash = Mathf.clamp(amount / 4f, 0f, 10f);
-
- for(int i = 0; i < Mathf.clamp(amount / 5, 0, 30); i++){
- Time.run(i / 2f, () -> {
- Tile other = world.tileWorld(x + Mathf.range(block.size * tilesize / 2), y + Mathf.range(block.size * tilesize / 2));
- if(other != null){
- Puddles.deposit(other, liquid, splash);
- }
- });
- }
- });
+ liquids.each(this::splashLiquid);
}
//cap explosiveness so fluid tanks/vaults don't instakill units
- Damage.dynamicExplosion(x, y, flammability, explosiveness * 3.5f, power, tilesize * block.size / 2f, state.rules.damageExplosions, block.destroyEffect);
+ Damage.dynamicExplosion(x, y, flammability, explosiveness * 3.5f, power, tilesize * block.size / 2f, state.rules.damageExplosions, block.destroyEffect, block.baseShake);
if(block.createRubble && !floor().solid && !floor().isLiquid){
Effect.rubble(x, y, block.size);
@@ -1640,13 +1665,12 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
public boolean collision(Bullet other){
boolean wasDead = health <= 0;
- float damage = other.damage() * other.type().buildingDamageMultiplier;
+ float damage = other.type.buildingDamage(other);
if(!other.type.pierceArmor){
damage = Damage.applyArmor(damage, block.armor);
}
- damage(other.team, damage);
- Events.fire(bulletDamageEvent.set(self(), other));
+ damage(other, other.team, damage);
if(health <= 0 && !wasDead){
Events.fire(new BuildingBulletDestroyEvent(self(), other));
@@ -1669,22 +1693,46 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
/** Changes this building's team in a safe manner. */
public void changeTeam(Team next){
if(this.team == next) return;
+ if(block.forceTeam != null) team = block.forceTeam;
Team last = this.team;
+
+ if(last == next) return;
+
boolean was = isValid();
if(was) indexer.removeIndex(tile);
this.team = next;
+ if(power != null){
+ for(int i = 0; i < power.links.size; i++){
+ var other = world.build(power.links.items[i]);
+
+ if(other != null && other.team != team && other.power != null){
+ power.links.removeIndex(i);
+ other.power.links.removeValue(pos());
+
+ new PowerGraph().reflow(other);
+
+ i --;
+ }
+ }
+ new PowerGraph().reflow(self());
+
+ updatePowerGraph();
+ }
+
if(was){
indexer.addIndex(tile);
Events.fire(teamChangeEvent.set(last, self()));
}
+
+ checkAllowUpdate();
}
public boolean canPickup(){
- return true;
+ return block.canPickup;
}
/** Called right before this building is picked up. */
@@ -1727,7 +1775,7 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
public void updateProximity(){
tmpTiles.clear();
proximity.clear();
-
+
Point2[] nearby = Edges.getEdges(block.size);
for(Point2 point : nearby){
Building other = world.build(tile.x + point.x, tile.y + point.y);
@@ -1752,6 +1800,8 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
}
}
+ public void onNearbyBuildAdded(Building other){}
+
public void consume(){
for(Consume cons : block.consumers){
cons.trigger(self());
@@ -1961,7 +2011,7 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
case powerNetCapacity -> power == null ? 0 : power.graph.getLastCapacity();
case enabled -> enabled ? 1 : 0;
case controlled -> this instanceof ControlBlock c && c.isControlled() ? GlobalVars.ctrlPlayer : 0;
- case payloadCount -> getPayload() != null ? 1 : 0;
+ case payloadCount -> (getPayloads() != null ? getPayloads().total() : 0) + (getPayload() != null ? 1 : 0);
case size -> block.size;
case cameraX, cameraY, cameraWidth, cameraHeight -> this instanceof ControlBlock c ? c.unit().sense(sensor) : 0;
default -> Float.NaN; //gets converted to null in logic
@@ -1983,6 +2033,10 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
public double sense(Content content){
if(content instanceof Item i && items != null) return items.get(i);
if(content instanceof Liquid l && liquids != null) return liquids.get(l);
+ if(getPayloads() != null){
+ if(content instanceof UnitType u) return getPayloads().get(u);
+ if(content instanceof Block b) return getPayloads().get(b);
+ }
return Float.NaN; //invalid sense
}
@@ -2078,18 +2132,11 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
return true;
}
- @Override
- public void remove(){
- if(sound != null){
- sound.stop();
- }
- }
-
@Override
public void killed(){
dead = true;
Events.fire(new BlockDestroyEvent(tile));
- block.destroySound.at(tile);
+ block.destroySound.at(tile, Mathf.random(block.destroyPitchMin, block.destroyPitchMax));
onDestroyed();
if(tile != emptyTile){
tile.remove();
@@ -2098,48 +2145,44 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
afterDestroyed();
}
+ public void checkAllowUpdate(){
+ if(!allowUpdate()){
+ enabled = false;
+ }
+ }
+
@Final
@Replace
@Override
public void update(){
- //TODO should just avoid updating buildings instead
- if(state.isEditor()) return;
//TODO refactor to timestamp-based system?
if((timeScaleDuration -= Time.delta) <= 0f || !block.canOverdrive){
timeScale = 1f;
}
- if(!allowUpdate()){
- enabled = false;
- }
-
- if(!headless && !wasVisible && state.rules.fog && !inFogTo(player.team())){
- visibleFlags |= (1L << player.team().id);
- wasVisible = true;
- renderer.blocks.updateShadow(self());
- renderer.minimap.update(tile);
- }
-
- //TODO separate system for sound? AudioSource, etc
- if(!headless){
- if(sound != null){
- sound.update(x, y, shouldActiveSound(), activeSoundVolume());
- }
-
- if(block.ambientSound != Sounds.none && shouldAmbientSound()){
- control.sound.loop(block.ambientSound, self(), block.ambientSoundVolume * ambientVolume());
- }
+ //TODO separate multithreaded system for sound? AudioSource, etc
+ if(!headless && block.ambientSound != Sounds.none && shouldAmbientSound()){
+ control.sound.loop(block.ambientSound, self(), block.ambientSoundVolume * ambientVolume());
}
updateConsumption();
- //TODO just handle per-block instead
if(enabled || !block.noUpdateDisabled){
updateTile();
}
}
+ /** When a block is newly revealed outside of camera view range, it is updated on the minimap. */
+ public void updateFogVisibility(){
+ if(!wasVisible && !inFogTo(player.team())){
+ visibleFlags |= (1L << player.team().id);
+ wasVisible = true;
+ renderer.blocks.updateShadow(self());
+ renderer.minimap.update(tile);
+ }
+ }
+
@Override
public void hitbox(Rect out){
out.setCentered(x, y, block.size * tilesize, block.size * tilesize);
diff --git a/core/src/mindustry/entities/comp/BulletComp.java b/core/src/mindustry/entities/comp/BulletComp.java
index d9c3aef000..74c1eca3db 100644
--- a/core/src/mindustry/entities/comp/BulletComp.java
+++ b/core/src/mindustry/entities/comp/BulletComp.java
@@ -39,6 +39,8 @@ abstract class BulletComp implements Timedc, Damagec, Hitboxc, Teamc, Posc, Draw
//setting this variable to true prevents lifetime from decreasing for a frame.
transient boolean keepAlive;
+ /** Unlike the owner, the shooter is the original entity that created this bullet. For a second-stage missile, the shooter would be the turret, but the owner would be the last missile stage.*/
+ transient Entityc shooter;
transient @Nullable Tile aimTile;
transient float aimX, aimY;
transient float originX, originY;
@@ -47,6 +49,9 @@ abstract class BulletComp implements Timedc, Damagec, Hitboxc, Teamc, Posc, Draw
transient @Nullable Trail trail;
transient int frags;
+ transient Posc stickyTarget;
+ transient float stickyX, stickyY, stickyRotation, stickyRotationOffset;
+
@Override
public void getCollisions(Cons consumer){
Seq data = state.teams.present;
@@ -105,24 +110,43 @@ abstract class BulletComp implements Timedc, Damagec, Hitboxc, Teamc, Posc, Draw
@Override
public boolean collides(Hitboxc other){
return type.collides && (other instanceof Teamc t && t.team() != team)
- && !(other instanceof Flyingc f && !f.checkTarget(type.collidesAir, type.collidesGround))
- && !(type.pierce && hasCollided(other.id())); //prevent multiple collisions
+ && !(other instanceof Unit f && !f.checkTarget(type.collidesAir, type.collidesGround))
+ && !(type.pierce && hasCollided(other.id())) && stickyTarget == null; //prevent multiple collisions
}
@MethodPriority(100)
@Override
public void collision(Hitboxc other, float x, float y){
- type.hit(self(), x, y);
-
- //must be last.
- if(!type.pierce){
- hit = true;
- remove();
+ if(type.sticky){
+ if(stickyTarget == null){
+ //tunnel into the target a bit for better visuals
+ this.x = x + vel.x;
+ this.y = y + vel.y;
+ stickTo(other);
+ }
}else{
- collided.add(other.id());
- }
+ type.hit(self(), x, y);
- type.hitEntity(self(), other, other instanceof Healthc h ? h.health() : 0f);
+ //must be last.
+ if(!type.pierce){
+ hit = true;
+ remove();
+ }else{
+ collided.add(other.id());
+ }
+
+ type.hitEntity(self(), other, other instanceof Healthc h ? h.health() : 0f);
+ }
+ }
+
+ public void stickTo(Posc other){
+ lifetime += type.stickyExtraLifetime;
+ //sticky bullets don't actually hit anything.
+ stickyX = this.x - other.x();
+ stickyY = this.y - other.y();
+ stickyTarget = other;
+ stickyRotationOffset = rotation;
+ stickyRotation = (other instanceof Rotc rot ? rot.rotation() : 0f);
}
@Override
@@ -131,9 +155,21 @@ abstract class BulletComp implements Timedc, Damagec, Hitboxc, Teamc, Posc, Draw
mover.move(self());
}
+ if(type.accel != 0){
+ vel.setLength(vel.len() + type.accel * Time.delta);
+ }
+
type.update(self());
- if(type.collidesTiles && type.collides && type.collidesGround){
+ if(stickyTarget != null){
+ //only stick to things that still exist in the world
+ if(stickyTarget instanceof Healthc h && h.isValid()){
+ float rotate = (stickyTarget instanceof Rotc rot ? rot.rotation() - stickyRotation : 0f);
+ set(Tmp.v1.set(stickyX, stickyY).rotate(rotate).add(stickyTarget));
+ this.rotation = rotate + stickyRotationOffset;
+ vel.setAngle(this.rotation);
+ }
+ }else if(type.collidesTiles && type.collides && type.collidesGround){
tileRaycast(World.toTile(lastX), World.toTile(lastY), tileX(), tileY());
}
@@ -164,6 +200,8 @@ abstract class BulletComp implements Timedc, Damagec, Hitboxc, Teamc, Posc, Draw
(!build.block.underBullets ||
//direct hit on correct tile
(aimTile != null && aimTile.build == build) ||
+ //bullet type allows hitting under bullets
+ type.hitUnder ||
//same team has no 'under build' mechanics
(build.team == team) ||
//a piercing bullet overshot the aim tile, it's fine to hit things now
@@ -200,31 +238,46 @@ abstract class BulletComp implements Timedc, Damagec, Hitboxc, Teamc, Posc, Draw
&& build.collide(self()) && type.testCollision(self(), build)
&& !build.dead() && (type.collidesTeam || build.team != team) && !(type.pierceBuilding && hasCollided(build.id))){
- boolean remove = false;
- float health = build.health;
+ if(type.sticky){
+ if(build.team != team){
+ //stick to edge of block
+ Vec2 hit = Geometry.raycastRect(lastX, lastY, x, y, Tmp.r1.setCentered(x * tilesize, y * tilesize, tilesize, tilesize));
+ if(hit != null){
+ this.x = hit.x;
+ this.y = hit.y;
+ }
- if(build.team != team){
- remove = build.collision(self());
- }
+ stickTo(build);
- if(remove || type.collidesTeam){
- if(Mathf.dst2(lastX, lastY, x * tilesize, y * tilesize) < Mathf.dst2(lastX, lastY, this.x, this.y)){
- this.x = x * tilesize;
- this.y = y * tilesize;
+ return;
+ }
+ }else{
+ boolean remove = false;
+ float health = build.health;
+
+ if(build.team != team){
+ remove = build.collision(self());
}
- if(!type.pierceBuilding){
- hit = true;
- remove();
- }else{
- collided.add(build.id);
+ if(remove || type.collidesTeam){
+ if(Mathf.dst2(lastX, lastY, x * tilesize, y * tilesize) < Mathf.dst2(lastX, lastY, this.x, this.y)){
+ this.x = x * tilesize;
+ this.y = y * tilesize;
+ }
+
+ if(!type.pierceBuilding){
+ hit = true;
+ remove();
+ }else{
+ collided.add(build.id);
+ }
}
+
+ type.hitTile(self(), build, x * tilesize, y * tilesize, health, true);
+
+ //stop raycasting when building is hit
+ if(type.pierceBuilding) return;
}
-
- type.hitTile(self(), build, x * tilesize, y * tilesize, health, true);
-
- //stop raycasting when building is hit
- if(type.pierceBuilding) return;
}
if(x == x2 && y == y2) break;
@@ -246,9 +299,13 @@ abstract class BulletComp implements Timedc, Damagec, Hitboxc, Teamc, Posc, Draw
public void draw(){
Draw.z(type.layer);
- type.draw(self());
+ if(type.underwater){
+ Drawf.underwater(() -> type.draw(self()));
+ }else{
+ type.draw(self());
+ }
type.drawLight(self());
-
+
Draw.reset();
}
diff --git a/core/src/mindustry/entities/comp/CrawlComp.java b/core/src/mindustry/entities/comp/CrawlComp.java
index d638d45c0b..918023197c 100644
--- a/core/src/mindustry/entities/comp/CrawlComp.java
+++ b/core/src/mindustry/entities/comp/CrawlComp.java
@@ -1,10 +1,8 @@
package mindustry.entities.comp;
import arc.math.*;
-import arc.math.geom.*;
import arc.util.*;
import mindustry.*;
-import mindustry.ai.*;
import mindustry.annotations.Annotations.*;
import mindustry.content.*;
import mindustry.entities.*;
@@ -22,7 +20,6 @@ abstract class CrawlComp implements Posc, Rotc, Hitboxc, Unitc{
@Import float x, y, speedMultiplier, rotation, hitSize;
@Import UnitType type;
@Import Team team;
- @Import Vec2 vel;
transient Floor lastDeepFloor;
transient float lastCrawlSlowdown = 1f;
@@ -31,13 +28,7 @@ abstract class CrawlComp implements Posc, Rotc, Hitboxc, Unitc{
@Replace
@Override
public SolidPred solidity(){
- return EntityCollisions::legsSolid;
- }
-
- @Override
- @Replace
- public int pathType(){
- return Pathfinder.costLegs;
+ return ignoreSolids() ? null : EntityCollisions::legsSolid;
}
@Override
@@ -110,6 +101,6 @@ abstract class CrawlComp implements Posc, Rotc, Hitboxc, Unitc{
}
segmentRot = Angles.clampRange(segmentRot, rotation, type.segmentMaxRot);
- crawlTime += vel.len() * Time.delta;
+ crawlTime += deltaLen();
}
}
diff --git a/core/src/mindustry/entities/comp/ElevationMoveComp.java b/core/src/mindustry/entities/comp/ElevationMoveComp.java
index f87bc1de0f..413e3fd367 100644
--- a/core/src/mindustry/entities/comp/ElevationMoveComp.java
+++ b/core/src/mindustry/entities/comp/ElevationMoveComp.java
@@ -6,13 +6,13 @@ import mindustry.entities.EntityCollisions.*;
import mindustry.gen.*;
@Component
-abstract class ElevationMoveComp implements Velc, Posc, Flyingc, Hitboxc{
+abstract class ElevationMoveComp implements Velc, Posc, Hitboxc, Unitc{
@Import float x, y;
@Replace
@Override
public SolidPred solidity(){
- return isFlying() ? null : EntityCollisions::solid;
+ return isFlying() || ignoreSolids() ? null : EntityCollisions::solid;
}
}
diff --git a/core/src/mindustry/entities/comp/EntityComp.java b/core/src/mindustry/entities/comp/EntityComp.java
index 37b7bb7a2b..2db21e1ed3 100644
--- a/core/src/mindustry/entities/comp/EntityComp.java
+++ b/core/src/mindustry/entities/comp/EntityComp.java
@@ -59,12 +59,16 @@ abstract class EntityComp{
}
+ void beforeWrite(){
+
+ }
+
void afterRead(){
}
- /** Called after *all* entities are read. */
- void afterAllRead(){
+ //called after all entities have been read (useful for ID resolution)
+ void afterReadAll(){
}
}
diff --git a/core/src/mindustry/entities/comp/FlyingComp.java b/core/src/mindustry/entities/comp/FlyingComp.java
deleted file mode 100644
index c2d6dacea4..0000000000
--- a/core/src/mindustry/entities/comp/FlyingComp.java
+++ /dev/null
@@ -1,123 +0,0 @@
-package mindustry.entities.comp;
-
-import arc.*;
-import arc.math.*;
-import arc.math.geom.*;
-import arc.util.*;
-import mindustry.annotations.Annotations.*;
-import mindustry.content.*;
-import mindustry.game.EventType.*;
-import mindustry.gen.*;
-import mindustry.type.*;
-import mindustry.world.blocks.environment.*;
-
-import static mindustry.Vars.*;
-
-@Component
-abstract class FlyingComp implements Posc, Velc, Healthc, Hitboxc{
- private static final Vec2 tmp1 = new Vec2(), tmp2 = new Vec2();
-
- @Import float x, y, speedMultiplier, hitSize;
- @Import Vec2 vel;
- @Import UnitType type;
-
- @SyncLocal float elevation;
- private transient boolean wasFlying;
- transient boolean hovering;
- transient float drownTime;
- transient float splashTimer;
- transient @Nullable Floor lastDrownFloor;
-
- boolean checkTarget(boolean targetAir, boolean targetGround){
- return (isGrounded() && targetGround) || (isFlying() && targetAir);
- }
-
- boolean isGrounded(){
- return elevation < 0.001f;
- }
-
- boolean isFlying(){
- return elevation >= 0.09f;
- }
-
- boolean canDrown(){
- return isGrounded() && !hovering;
- }
-
- @Nullable Floor drownFloor(){
- return canDrown() ? floorOn() : null;
- }
-
- boolean emitWalkSound(){
- return true;
- }
-
- void landed(){
-
- }
-
- void wobble(){
- x += Mathf.sin(Time.time + (id() % 10) * 12, 25f, 0.05f) * Time.delta * elevation;
- y += Mathf.cos(Time.time + (id() % 10) * 12, 25f, 0.05f) * Time.delta * elevation;
- }
-
- void moveAt(Vec2 vector, float acceleration){
- Vec2 t = tmp1.set(vector); //target vector
- tmp2.set(t).sub(vel).limit(acceleration * vector.len() * Time.delta); //delta vector
- vel.add(tmp2);
- }
-
- float floorSpeedMultiplier(){
- Floor on = isFlying() || hovering ? Blocks.air.asFloor() : floorOn();
- return on.speedMultiplier * speedMultiplier;
- }
-
- @Override
- public void update(){
- Floor floor = floorOn();
-
- if(isFlying() != wasFlying){
- if(wasFlying){
- if(tileOn() != null){
- Fx.unitLand.at(x, y, floorOn().isLiquid ? 1f : 0.5f, tileOn().floor().mapColor);
- }
- }
-
- wasFlying = isFlying();
- }
-
- if(!hovering && isGrounded()){
- if((splashTimer += Mathf.dst(deltaX(), deltaY())) >= (7f + hitSize()/8f)){
- floor.walkEffect.at(x, y, hitSize() / 8f, floor.mapColor);
- splashTimer = 0f;
-
- if(emitWalkSound()){
- floor.walkSound.at(x, y, Mathf.random(floor.walkSoundPitchMin, floor.walkSoundPitchMax), floor.walkSoundVolume);
- }
- }
- }
-
- updateDrowning();
- }
-
- public void updateDrowning(){
- Floor floor = drownFloor();
-
- if(floor != null && floor.isLiquid && floor.drownTime > 0){
- lastDrownFloor = floor;
- drownTime += Time.delta / floor.drownTime / type.drownTimeMultiplier;
- if(Mathf.chanceDelta(0.05f)){
- floor.drownUpdateEffect.at(x, y, hitSize, floor.mapColor);
- }
-
- if(drownTime >= 0.999f && !net.client()){
- kill();
- Events.fire(new UnitDrownEvent(self()));
- }
- }else{
- drownTime -= Time.delta / 50f;
- }
-
- drownTime = Mathf.clamp(drownTime);
- }
-}
diff --git a/core/src/mindustry/entities/comp/HealthComp.java b/core/src/mindustry/entities/comp/HealthComp.java
index c06e6909e3..f315b3fb75 100644
--- a/core/src/mindustry/entities/comp/HealthComp.java
+++ b/core/src/mindustry/entities/comp/HealthComp.java
@@ -59,6 +59,8 @@ abstract class HealthComp implements Entityc, Posc{
}
void damage(float amount){
+ if(Float.isNaN(health)) health = 0f;
+
health -= amount;
hitTime = 1f;
if(health <= 0 && !dead){
@@ -86,6 +88,7 @@ abstract class HealthComp implements Entityc, Posc{
void clampHealth(){
health = Math.min(health, maxHealth);
+ if(Float.isNaN(health)) health = 0f;
}
/** Heals by a flat amount. */
diff --git a/core/src/mindustry/entities/comp/LegsComp.java b/core/src/mindustry/entities/comp/LegsComp.java
index 32ddc9b09f..dbb5c76059 100644
--- a/core/src/mindustry/entities/comp/LegsComp.java
+++ b/core/src/mindustry/entities/comp/LegsComp.java
@@ -4,7 +4,6 @@ import arc.math.*;
import arc.math.geom.*;
import arc.util.*;
import mindustry.*;
-import mindustry.ai.*;
import mindustry.annotations.Annotations.*;
import mindustry.content.*;
import mindustry.entities.*;
@@ -13,12 +12,13 @@ import mindustry.game.*;
import mindustry.gen.*;
import mindustry.graphics.*;
import mindustry.type.*;
+import mindustry.world.blocks.*;
import mindustry.world.blocks.environment.*;
import static mindustry.Vars.*;
@Component
-abstract class LegsComp implements Posc, Rotc, Hitboxc, Flyingc, Unitc{
+abstract class LegsComp implements Posc, Rotc, Hitboxc, Unitc{
private static final Vec2 straightVec = new Vec2();
@Import float x, y, rotation, speedMultiplier;
@@ -36,13 +36,7 @@ abstract class LegsComp implements Posc, Rotc, Hitboxc, Flyingc, Unitc{
@Replace
@Override
public SolidPred solidity(){
- return type.allowLegStep ? EntityCollisions::legsSolid : EntityCollisions::solid;
- }
-
- @Override
- @Replace
- public int pathType(){
- return type.allowLegStep ? Pathfinder.costLegs : Pathfinder.costGround;
+ return ignoreSolids() ? null : type.allowLegStep ? EntityCollisions::legsSolid : EntityCollisions::solid;
}
@Override
@@ -110,6 +104,7 @@ abstract class LegsComp implements Posc, Rotc, Hitboxc, Flyingc, Unitc{
legs[i] = l;
}
+ totalLength = Mathf.random(100f);
}
@Override
@@ -194,6 +189,11 @@ abstract class LegsComp implements Posc, Rotc, Hitboxc, Flyingc, Unitc{
if(type.legSplashDamage > 0 && !disarmed){
Damage.damage(team, l.base.x, l.base.y, type.legSplashRange, type.legSplashDamage * state.rules.unitDamage(team), false, true);
+
+ var tile = Vars.world.tileWorld(l.base.x, l.base.y);
+ if(tile != null && tile.block().unitMoveBreakable){
+ ConstructBlock.deconstructFinish(tile, tile.block(), self());
+ }
}
}
diff --git a/core/src/mindustry/entities/comp/MechComp.java b/core/src/mindustry/entities/comp/MechComp.java
index 9d599b9bdd..5e4f518653 100644
--- a/core/src/mindustry/entities/comp/MechComp.java
+++ b/core/src/mindustry/entities/comp/MechComp.java
@@ -12,7 +12,7 @@ import mindustry.world.blocks.environment.*;
import static mindustry.Vars.*;
@Component
-abstract class MechComp implements Posc, Flyingc, Hitboxc, Unitc, Mechc, ElevationMovec{
+abstract class MechComp implements Posc, Hitboxc, Unitc, Mechc, ElevationMovec{
@Import float x, y, hitSize;
@Import UnitType type;
@@ -68,7 +68,7 @@ abstract class MechComp implements Posc, Flyingc, Hitboxc, Unitc, Mechc, Elevati
}
}
}
- return canDrown() ? floorOn() : null;
+ return floorOn();
}
public float walkExtend(boolean scaled){
diff --git a/core/src/mindustry/entities/comp/MinerComp.java b/core/src/mindustry/entities/comp/MinerComp.java
index a58a0503c3..4e9c28bc3d 100644
--- a/core/src/mindustry/entities/comp/MinerComp.java
+++ b/core/src/mindustry/entities/comp/MinerComp.java
@@ -65,7 +65,7 @@ abstract class MinerComp implements Itemsc, Posc, Teamc, Rotc, Drawc{
}
public boolean canMine(){
- return type.mineSpeed > 0 && type.mineTier >= 0;
+ return type.mineSpeed * state.rules.unitMineSpeed(team()) > 0 && type.mineTier >= 0;
}
@Override
@@ -89,7 +89,7 @@ abstract class MinerComp implements Itemsc, Posc, Teamc, Rotc, Drawc{
mineTile = null;
mineTimer = 0f;
}else if(mining() && item != null){
- mineTimer += Time.delta * type.mineSpeed;
+ mineTimer += Time.delta * type.mineSpeed * state.rules.unitMineSpeed(team());
if(Mathf.chance(0.06 * Time.delta)){
Fx.pulverizeSmall.at(mineTile.worldx() + Mathf.range(tilesize / 2f), mineTile.worldy() + Mathf.range(tilesize / 2f), 0f, item.color);
diff --git a/core/src/mindustry/entities/comp/PayloadComp.java b/core/src/mindustry/entities/comp/PayloadComp.java
index 223716d9bd..b6812991dd 100644
--- a/core/src/mindustry/entities/comp/PayloadComp.java
+++ b/core/src/mindustry/entities/comp/PayloadComp.java
@@ -61,6 +61,13 @@ abstract class PayloadComp implements Posc, Rotc, Hitboxc, Unitc{
}
@Override
+ public void remove(){
+ for(Payload pay : payloads){
+ pay.remove();
+ }
+ payloads.clear();
+ }
+
public void destroy(){
if(Vars.state.rules.unitPayloadsExplode) payloads.each(Payload::destroyed);
}
diff --git a/core/src/mindustry/entities/comp/PhysicsComp.java b/core/src/mindustry/entities/comp/PhysicsComp.java
index 1924de8eb9..e0648d6874 100644
--- a/core/src/mindustry/entities/comp/PhysicsComp.java
+++ b/core/src/mindustry/entities/comp/PhysicsComp.java
@@ -10,7 +10,7 @@ import mindustry.gen.*;
* Will bounce off of other objects that are at similar elevations.
* Has mass.*/
@Component
-abstract class PhysicsComp implements Velc, Hitboxc, Flyingc{
+abstract class PhysicsComp implements Velc, Hitboxc{
@Import float hitSize, x, y;
@Import Vec2 vel;
diff --git a/core/src/mindustry/entities/comp/PlayerComp.java b/core/src/mindustry/entities/comp/PlayerComp.java
index 834d4c239a..5c340b8afe 100644
--- a/core/src/mindustry/entities/comp/PlayerComp.java
+++ b/core/src/mindustry/entities/comp/PlayerComp.java
@@ -65,10 +65,13 @@ abstract class PlayerComp implements UnitController, Entityc, Syncc, Timerc, Dra
return team.core();
}
- /** @return largest/closest core, with largest cores getting priority */
+ /** @return largest/closest core, with the largest cores getting priority */
@Nullable
public CoreBuild bestCore(){
- return team.cores().min(Structs.comps(Structs.comparingInt(c -> -c.block.size), Structs.comparingFloat(c -> c.dst(x, y))));
+ var cores = team.cores();
+ //if someone screws up the map and adds an invalid core, prioritize the core that's supported
+ //if there's only one core, there are no other options
+ return cores.min(b -> cores.size == 1 || ((CoreBlock)b.block).unitType.supportsEnv(state.rules.env), Structs.comps(Structs.comparingInt(c -> -c.block.size), Structs.comparingFloat(c -> c.dst2(x, y))));
}
public TextureRegion icon(){
diff --git a/core/src/mindustry/entities/comp/PuddleComp.java b/core/src/mindustry/entities/comp/PuddleComp.java
index a46bf01c32..4fbc555193 100644
--- a/core/src/mindustry/entities/comp/PuddleComp.java
+++ b/core/src/mindustry/entities/comp/PuddleComp.java
@@ -23,7 +23,7 @@ abstract class PuddleComp implements Posc, Puddlec, Drawc, Syncc{
private static Puddle paramPuddle;
private static Cons unitCons = unit -> {
- if(unit.isGrounded() && !unit.hovering){
+ if(unit.isGrounded() && !unit.type.hovering){
unit.hitbox(rect2);
if(rect.overlaps(rect2)){
unit.apply(paramPuddle.liquid.effect, 60 * 2);
@@ -104,6 +104,10 @@ abstract class PuddleComp implements Posc, Puddlec, Drawc, Syncc{
}
updateTime = 40f;
+
+ if(tile.build != null){
+ tile.build.puddleOn(self());
+ }
}
if(!headless && liquid.particleEffect != Fx.none){
diff --git a/core/src/mindustry/entities/comp/SegmentComp.java b/core/src/mindustry/entities/comp/SegmentComp.java
new file mode 100644
index 0000000000..5090db452d
--- /dev/null
+++ b/core/src/mindustry/entities/comp/SegmentComp.java
@@ -0,0 +1,158 @@
+package mindustry.entities.comp;
+
+import arc.math.*;
+import arc.math.geom.*;
+import arc.util.*;
+import mindustry.ai.types.*;
+import mindustry.annotations.Annotations.*;
+import mindustry.async.*;
+import mindustry.gen.*;
+import mindustry.type.*;
+
+@Component
+abstract class SegmentComp implements Posc, Rotc, Hitboxc, Unitc, Segmentc{
+ @Import float x, y, rotation;
+ @Import UnitType type;
+ @Import Vec2 vel;
+
+ transient @Nullable Segmentc parentSegment, childSegment, headSegment;
+ transient int segmentIndex;
+
+ int parentId;
+
+ public boolean isHead(){
+ return parentSegment == null;
+ }
+
+ public void addChild(Unit other){
+ if(other == self()) return;
+
+ if(childSegment != null){
+ childSegment.parentSegment(null);
+ }
+
+ if(other instanceof Segmentc seg){
+ if(seg.parentSegment() != null){
+ seg.parentSegment().childSegment(null);
+ }
+
+ childSegment = seg;
+ seg.parentSegment(this);
+ }
+ }
+
+ @Override
+ @Replace
+ public boolean ignoreSolids(){
+ return isFlying() || parentSegment != null;
+ }
+
+ //TODO make it phase through things.
+
+ @Override
+ public void update(){
+ if(childSegment != null && !childSegment.isValid()){
+ childSegment = null;
+ }
+
+ if(parentSegment != null && !parentSegment.isValid()){
+ parentSegment = null;
+ }
+
+ if(parentSegment == null){
+ segmentIndex = 0;
+
+ if(childSegment != null){
+ headSegment = this;
+ childSegment.updateSegment(this, this, 1);
+ }
+ }
+
+ }
+
+ @Replace
+ @Override
+ public boolean playerControllable(){
+ return type.playerControllable && isHead();
+ }
+
+ @Override
+ @Replace
+ public boolean shouldUpdateController(){
+ return isHead();
+ }
+
+ @Override
+ @Replace
+ public boolean moving(){
+ if(isHead()){
+ return !vel.isZero(0.01f);
+ }else{
+ return deltaLen() / Time.delta >= 0.01f;
+ }
+ }
+
+ @Override
+ @Replace
+ public int collisionLayer(){
+ if(parentSegment != null) return -1;
+ return type.allowLegStep && type.legPhysicsLayer ? PhysicsProcess.layerLegs : isGrounded() ? PhysicsProcess.layerGround : PhysicsProcess.layerFlying;
+ }
+
+ @Replace
+ @Override
+ public boolean isCommandable(){
+ return parentSegment == null && controller() instanceof CommandAI;
+ }
+
+ @Override
+ public void afterSync(){
+ checkParent();
+ }
+
+ @Override
+ public void afterReadAll(){
+ checkParent();
+ }
+
+ @Override
+ public void beforeWrite(){
+ parentId = parentSegment == null ? -1 : parentSegment.id();
+ }
+
+ public void checkParent(){
+ if(parentId != -1){
+ var parent = Groups.unit.getByID(parentId);
+ if(parent instanceof Segmentc seg){
+ parentSegment = seg;
+ seg.childSegment(this);
+ return;
+ }
+ parentId = -1;
+ }
+ //TODO should this unassign the parent's child too?
+ parentSegment = null;
+ }
+
+ public void updateSegment(Segmentc head, Segmentc parent, int index){
+ rotation = Angles.clampRange(rotation, parent.rotation(), type.segmentRotationRange);
+ segmentIndex = index;
+ headSegment = head;
+
+ float headDelta = head.deltaLen();
+
+ //TODO should depend on the head's speed.
+ if(headDelta > 0.001f){
+ rotation = Mathf.slerpDelta(rotation, parent.rotation(), type.baseRotateSpeed * Mathf.clamp(headDelta / type().speed / Time.delta));
+ }
+
+ Vec2 moveVec = Tmp.v1.trns(rotation + 180f, type.segmentSpacing).add(parent).sub(x, y);
+ float prefSpeed = type.speed * Time.delta * 9999f;
+ move(moveVec.limit(prefSpeed)); //TODO other segments are left behind
+
+ if(childSegment != null){
+ childSegment.updateSegment(head, this, index + 1);
+ }
+ }
+
+}
diff --git a/core/src/mindustry/entities/comp/ShieldComp.java b/core/src/mindustry/entities/comp/ShieldComp.java
index c290fa6251..f2f6e4c808 100644
--- a/core/src/mindustry/entities/comp/ShieldComp.java
+++ b/core/src/mindustry/entities/comp/ShieldComp.java
@@ -45,6 +45,8 @@ abstract class ShieldComp implements Healthc, Posc{
protected void rawDamage(float amount){
boolean hadShields = shield > 0.0001f;
+ if(Float.isNaN(health)) health = 0f;
+
if(hadShields){
shieldAlpha = 1f;
}
diff --git a/core/src/mindustry/entities/comp/StatusComp.java b/core/src/mindustry/entities/comp/StatusComp.java
index 4d3dd11dd0..a361ce68a8 100644
--- a/core/src/mindustry/entities/comp/StatusComp.java
+++ b/core/src/mindustry/entities/comp/StatusComp.java
@@ -15,7 +15,7 @@ import mindustry.world.blocks.environment.*;
import static mindustry.Vars.*;
@Component
-abstract class StatusComp implements Posc, Flyingc{
+abstract class StatusComp implements Posc{
private Seq statuses = new Seq<>(4);
private transient Bits applied = new Bits(content.getBy(ContentType.status).size);
@@ -28,12 +28,12 @@ abstract class StatusComp implements Posc, Flyingc{
@Import float maxHealth;
/** Apply a status effect for 1 tick (for permanent effects) **/
- void apply(StatusEffect effect){
+ public void apply(StatusEffect effect){
apply(effect, 1);
}
/** Adds a status effect to this unit. */
- void apply(StatusEffect effect, float duration){
+ public void apply(StatusEffect effect, float duration){
if(effect == StatusEffects.none || effect == null || isImmune(effect)) return; //don't apply empty or immune effects
//unlock status effects regardless of whether they were applied to friendly units
@@ -62,23 +62,24 @@ abstract class StatusComp implements Posc, Flyingc{
//otherwise, no opposites found, add direct effect
StatusEntry entry = Pools.obtain(StatusEntry.class, StatusEntry::new);
entry.set(effect, duration);
+ applied.set(effect.id);
statuses.add(entry);
effect.applied(self(), duration, false);
}
}
- float getDuration(StatusEffect effect){
+ public float getDuration(StatusEffect effect){
var entry = statuses.find(e -> e.effect == effect);
return entry == null ? 0 : entry.time;
}
- void clearStatuses(){
+ public void clearStatuses(){
statuses.each(e -> e.effect.onRemoved(self()));
statuses.clear();
}
/** Removes a status effect. */
- void unapply(StatusEffect effect){
+ public void unapply(StatusEffect effect){
statuses.remove(e -> {
if(e.effect == effect){
e.effect.onRemoved(self());
@@ -89,13 +90,15 @@ abstract class StatusComp implements Posc, Flyingc{
});
}
- boolean isBoss(){
+ public boolean isBoss(){
return hasEffect(StatusEffects.boss);
}
- abstract boolean isImmune(StatusEffect effect);
+ public boolean isImmune(StatusEffect effect){
+ return type.immunities.contains(effect);
+ }
- Color statusColor(){
+ public Color statusColor(){
if(statuses.size == 0){
return Tmp.c1.set(Color.white);
}
@@ -125,6 +128,7 @@ abstract class StatusComp implements Posc, Flyingc{
StatusEntry entry = Pools.obtain(StatusEntry.class, StatusEntry::new);
entry.set(StatusEffects.dynamic, Float.POSITIVE_INFINITY);
statuses.add(entry);
+ applied.set(StatusEffects.dynamic.id);
entry.effect.applied(self(), entry.time, false);
return entry;
}
@@ -168,6 +172,8 @@ abstract class StatusComp implements Posc, Flyingc{
applyDynamicStatus().armorOverride = armor;
}
+ public abstract boolean isGrounded();
+
@Override
public void update(){
Floor floor = floorOn();
@@ -237,7 +243,7 @@ abstract class StatusComp implements Posc, Flyingc{
}
}
- boolean hasEffect(StatusEffect effect){
+ public boolean hasEffect(StatusEffect effect){
return applied.get(effect.id);
}
}
diff --git a/core/src/mindustry/entities/comp/TankComp.java b/core/src/mindustry/entities/comp/TankComp.java
index afd4076ff5..67245b25ab 100644
--- a/core/src/mindustry/entities/comp/TankComp.java
+++ b/core/src/mindustry/entities/comp/TankComp.java
@@ -11,14 +11,15 @@ import mindustry.game.*;
import mindustry.gen.*;
import mindustry.type.*;
import mindustry.world.*;
+import mindustry.world.blocks.*;
import mindustry.world.blocks.environment.*;
import static mindustry.Vars.*;
@Component
-abstract class TankComp implements Posc, Flyingc, Hitboxc, Unitc, ElevationMovec{
+abstract class TankComp implements Posc, Hitboxc, Unitc, ElevationMovec{
@Import float x, y, hitSize, rotation, speedMultiplier;
- @Import boolean hovering, disarmed;
+ @Import boolean disarmed;
@Import UnitType type;
@Import Team team;
@@ -26,6 +27,7 @@ abstract class TankComp implements Posc, Flyingc, Hitboxc, Unitc, ElevationMovec
transient float treadTime;
transient boolean walked;
+ transient Floor lastDeepFloor;
@Override
public void update(){
@@ -50,6 +52,9 @@ abstract class TankComp implements Posc, Flyingc, Hitboxc, Unitc, ElevationMovec
}
}
+ lastDeepFloor = null;
+ boolean anyNonDeep = false;
+
//calculate overlapping tiles so it slows down when going "over" walls
int r = Math.max((int)(hitSize * 0.6f / tilesize), 0);
@@ -57,20 +62,33 @@ abstract class TankComp implements Posc, Flyingc, Hitboxc, Unitc, ElevationMovec
for(int dx = -r; dx <= r; dx++){
for(int dy = -r; dy <= r; dy++){
Tile t = Vars.world.tileWorld(x + dx*tilesize, y + dy*tilesize);
- if(t == null || t.solid()){
+ if(t == null || t.solid()){
solids ++;
}
- //TODO should this apply to the player team(s)? currently PvE due to balancing
- if(type.crushDamage > 0 && !disarmed && (walked || deltaLen() >= 0.01f) && t != null && t.build != null && t.build.team != team
+ if(t != null && t.floor().isDeep()){
+ lastDeepFloor = t.floor();
+ }else{
+ anyNonDeep = true;
+ }
+
+ if(type.crushDamage > 0 && !disarmed && (walked || deltaLen() >= 0.01f) && t != null
//damage radius is 1 tile smaller to prevent it from just touching walls as it passes
&& Math.max(Math.abs(dx), Math.abs(dy)) <= r - 1){
- t.build.damage(team, type.crushDamage * Time.delta * t.block().crushDamageMultiplier * state.rules.unitDamage(team));
+ if(t.build != null && t.build.team != team){
+ t.build.damage(team, type.crushDamage * Time.delta * t.block().crushDamageMultiplier * state.rules.unitDamage(team));
+ }else if(t.block().unitMoveBreakable){
+ ConstructBlock.deconstructFinish(t, t.block(), self());
+ }
}
}
}
+ if(anyNonDeep){
+ lastDeepFloor = null;
+ }
+
lastSlowdown = Mathf.lerp(1f, type.crawlSlowdown, Mathf.clamp((float)solids / total / type.crawlSlowdownFrac));
//trigger animation only when walking manually
@@ -84,7 +102,7 @@ abstract class TankComp implements Posc, Flyingc, Hitboxc, Unitc, ElevationMovec
@Override
@Replace
public float floorSpeedMultiplier(){
- Floor on = isFlying() || hovering ? Blocks.air.asFloor() : floorOn();
+ Floor on = isFlying() || type.hovering ? Blocks.air.asFloor() : floorOn();
//TODO take into account extra blocks
return on.speedMultiplier * speedMultiplier * lastSlowdown;
}
@@ -92,17 +110,7 @@ abstract class TankComp implements Posc, Flyingc, Hitboxc, Unitc, ElevationMovec
@Replace
@Override
public @Nullable Floor drownFloor(){
- //tanks can only drown when all the nearby floors are deep
- //TODO implement properly
- if(hitSize >= 12 && canDrown()){
- for(Point2 p : Geometry.d8){
- Floor f = world.floorWorld(x + p.x * tilesize, y + p.y * tilesize);
- if(!f.isDeep()){
- return null;
- }
- }
- }
- return canDrown() ? floorOn() : null;
+ return canDrown() ? lastDeepFloor : null;
}
@Override
diff --git a/core/src/mindustry/entities/comp/UnderwaterMoveComp.java b/core/src/mindustry/entities/comp/UnderwaterMoveComp.java
new file mode 100644
index 0000000000..1159043120
--- /dev/null
+++ b/core/src/mindustry/entities/comp/UnderwaterMoveComp.java
@@ -0,0 +1,39 @@
+package mindustry.entities.comp;
+
+import mindustry.annotations.Annotations.*;
+import mindustry.async.*;
+import mindustry.game.*;
+import mindustry.gen.*;
+import mindustry.graphics.*;
+import mindustry.type.*;
+
+@Component
+abstract class UnderwaterMoveComp implements WaterMovec{
+ @Import UnitType type;
+
+ @MethodPriority(10f)
+ @Replace
+ public void draw(){
+ //TODO draw status effects?
+
+ Drawf.underwater(() -> {
+ type.draw(self());
+ });
+ }
+
+ @Override
+ public int collisionLayer(){
+ return PhysicsProcess.layerUnderwater;
+ }
+
+ @Override
+ public boolean hittable(){
+ return false && type.hittable(self());
+ }
+
+ @Override
+ public boolean targetable(Team targeter){
+ return false && type.targetable(self(), targeter);
+ }
+}
+
diff --git a/core/src/mindustry/entities/comp/UnitComp.java b/core/src/mindustry/entities/comp/UnitComp.java
index 548e34965e..e9e15b85fd 100644
--- a/core/src/mindustry/entities/comp/UnitComp.java
+++ b/core/src/mindustry/entities/comp/UnitComp.java
@@ -7,7 +7,6 @@ import arc.math.*;
import arc.math.geom.*;
import arc.scene.ui.layout.*;
import arc.util.*;
-import mindustry.ai.*;
import mindustry.ai.types.*;
import mindustry.annotations.Annotations.*;
import mindustry.async.*;
@@ -34,10 +33,12 @@ import static mindustry.Vars.*;
import static mindustry.logic.GlobalVars.*;
@Component(base = true)
-abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, Itemsc, Rotc, Unitc, Weaponsc, Drawc, Boundedc, Syncc, Shieldc, Displayable, Ranged, Minerc, Builderc, Senseable, Settable{
+abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, Itemsc, Rotc, Unitc, Weaponsc, Drawc, Syncc, Shieldc, Displayable, Ranged, Minerc, Builderc, Senseable, Settable{
+ private static final Vec2 tmp1 = new Vec2(), tmp2 = new Vec2();
+ static final float warpDst = 30f;
- @Import boolean hovering, dead, disarmed;
- @Import float x, y, rotation, elevation, maxHealth, drag, armor, hitSize, health, shield, ammo, dragMultiplier, armorOverride, speedMultiplier;
+ @Import boolean dead, disarmed;
+ @Import float x, y, rotation, maxHealth, drag, armor, hitSize, health, shield, ammo, dragMultiplier, armorOverride, speedMultiplier;
@Import Team team;
@Import int id;
@Import @Nullable Tile mineTile;
@@ -62,6 +63,48 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I
private transient boolean wasPlayer;
private transient boolean wasHealed;
+ @SyncLocal float elevation;
+ private transient boolean wasFlying;
+ transient float drownTime;
+ transient float splashTimer;
+ transient @Nullable Floor lastDrownFloor;
+
+ public boolean checkTarget(boolean targetAir, boolean targetGround){
+ return (isGrounded() && targetGround) || (isFlying() && targetAir);
+ }
+
+ public boolean isGrounded(){
+ return elevation < 0.001f;
+ }
+
+ public boolean isFlying(){
+ return elevation >= 0.09f;
+ }
+
+ public boolean canDrown(){
+ return isGrounded() && type.canDrown;
+ }
+
+ public @Nullable Floor drownFloor(){
+ return floorOn();
+ }
+
+ public void wobble(){
+ x += Mathf.sin(Time.time + (id % 10) * 12, 25f, 0.05f) * Time.delta * elevation;
+ y += Mathf.cos(Time.time + (id % 10) * 12, 25f, 0.05f) * Time.delta * elevation;
+ }
+
+ public void moveAt(Vec2 vector, float acceleration){
+ Vec2 t = tmp1.set(vector); //target vector
+ tmp2.set(t).sub(vel).limit(acceleration * vector.len() * Time.delta); //delta vector
+ vel.add(tmp2);
+ }
+
+ public float floorSpeedMultiplier(){
+ Floor on = isFlying() || type.hovering ? Blocks.air.asFloor() : floorOn();
+ return on.speedMultiplier * speedMultiplier;
+ }
+
/** Called when this unit was unloaded from a factory or spawn point. */
public void unloaded(){
@@ -241,6 +284,8 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I
controller instanceof CommandAI command && command.hasCommand() ? ctrlCommand :
0;
case payloadCount -> ((Object)this) instanceof Payloadc pay ? pay.payloads().size : 0;
+ case totalPayload -> ((Object)this) instanceof Payloadc pay ? pay.payloadUsed() / (tilesize * tilesize) : 0;
+ case payloadCapacity -> type.payloadCapacity / tilePayload;
case size -> hitSize / tilesize;
case color -> Color.toDoubleBits(team.color.r, team.color.g, team.color.b, 1f);
default -> Float.NaN;
@@ -265,6 +310,16 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I
@Override
public double sense(Content content){
if(content == stack().item) return stack().amount;
+ if(content instanceof UnitType u){
+ return ((Object)this) instanceof Payloadc pay ?
+ (pay.payloads().isEmpty() ? 0 :
+ pay.payloads().count(p -> p instanceof UnitPayload up && up.unit.type == u)) : 0;
+ }
+ if(content instanceof Block b){
+ return ((Object)this) instanceof Payloadc pay ?
+ (pay.payloads().isEmpty() ? 0 :
+ pay.payloads().count(p -> p instanceof BuildPayload bp && bp.build.block == b)) : 0;
+ }
return Float.NaN;
}
@@ -299,7 +354,7 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I
}
}
case flag -> flag = value;
- case speed -> statusSpeed(Math.max((float)value, 0f));
+ case speed -> statusSpeed(Mathf.clamp((float)value, 0f, 1000f));
case armor -> statusArmor(Math.max((float)value, 0f));
}
}
@@ -340,12 +395,6 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I
}
}
- @Override
- @Replace
- public boolean canDrown(){
- return isGrounded() && !hovering && type.canDrown;
- }
-
@Override
@Replace
public boolean canShoot(){
@@ -408,11 +457,6 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I
return type.allowLegStep && type.legPhysicsLayer ? PhysicsProcess.layerLegs : isGrounded() ? PhysicsProcess.layerGround : PhysicsProcess.layerFlying;
}
- /** @return pathfinder path type for calculating costs. This is used for wave AI only. (TODO: remove) */
- public int pathType(){
- return Pathfinder.costGround;
- }
-
public void lookAt(float angle){
rotation = Angles.moveToward(rotation, angle, type.rotateSpeed * Time.delta * speedMultiplier());
}
@@ -433,8 +477,8 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I
return controller instanceof CommandAI;
}
- public boolean canTarget(Unit other){
- return other != null && other.checkTarget(type.targetAir, type.targetGround);
+ public boolean canTarget(Teamc other){
+ return other != null && (other instanceof Unit u ? u.checkTarget(type.targetAir, type.targetGround) : (other instanceof Building b && type.targetGround));
}
public CommandAI command(){
@@ -445,6 +489,10 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I
}
}
+ public boolean isMissile(){
+ return this instanceof TimedKillc;
+ }
+
public int count(){
return team.data().countType(type);
}
@@ -459,9 +507,7 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I
this.drag = type.drag;
this.armor = type.armor;
this.hitSize = type.hitSize;
- this.hovering = type.hovering;
- if(controller == null) controller(type.createController(self()));
if(mounts().length != type.weapons.size) setupWeapons(type);
if(abilities.length != type.abilities.size){
abilities = new Ability[type.abilities.size];
@@ -469,6 +515,11 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I
abilities[i] = type.abilities.get(i).copy();
}
}
+ if(controller == null) controller(type.createController(self()));
+ }
+
+ public boolean playerControllable(){
+ return type.playerControllable;
}
public boolean targetable(Team targeter){
@@ -488,7 +539,8 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I
@Override
public void afterRead(){
- afterSync();
+ setType(this.type);
+ controller.unit(self());
//reset controller state
if(!(controller instanceof AIController ai && ai.keepState())){
controller(type.createController(self()));
@@ -496,7 +548,7 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I
}
@Override
- public void afterAllRead(){
+ public void afterReadAll(){
controller.afterRead(self());
}
@@ -539,11 +591,98 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I
}
}
+ public void updateDrowning(){
+ Floor floor = drownFloor();
+
+ if(floor != null && floor.isLiquid && floor.drownTime > 0 && canDrown()){
+ lastDrownFloor = floor;
+ drownTime += Time.delta / floor.drownTime / type.drownTimeMultiplier;
+ if(Mathf.chanceDelta(0.05f)){
+ floor.drownUpdateEffect.at(x, y, hitSize, floor.mapColor);
+ }
+
+ if(drownTime >= 0.999f && !net.client()){
+ kill();
+ Events.fire(new UnitDrownEvent(self()));
+ }
+ }else{
+ drownTime -= Time.delta / 50f;
+ }
+
+ drownTime = Mathf.clamp(drownTime);
+ }
+
@Override
public void update(){
type.update(self());
+ //update bounds
+
+ if(type.bounded){
+ float bot = 0f, left = 0f, top = world.unitHeight(), right = world.unitWidth();
+
+ //TODO hidden map rules only apply to player teams? should they?
+ if(state.rules.limitMapArea && !team.isAI()){
+ bot = state.rules.limitY * tilesize;
+ left = state.rules.limitX * tilesize;
+ top = state.rules.limitHeight * tilesize + bot;
+ right = state.rules.limitWidth * tilesize + left;
+ }
+
+ if(!net.client() || isLocal()){
+
+ float dx = 0f, dy = 0f;
+
+ //repel unit out of bounds
+ if(x < left) dx += (-(x - left)/warpDst);
+ if(y < bot) dy += (-(y - bot)/warpDst);
+ if(x > right) dx -= (x - right)/warpDst;
+ if(y > top) dy -= (y - top)/warpDst;
+
+ velAddNet(dx * Time.delta, dy * Time.delta);
+ }
+
+ //clamp position if not flying
+ if(isGrounded()){
+ x = Mathf.clamp(x, left, right - tilesize);
+ y = Mathf.clamp(y, bot, top - tilesize);
+ }
+
+ //kill when out of bounds
+ if(x < -finalWorldBounds + left || y < -finalWorldBounds + bot || x >= right + finalWorldBounds || y >= top + finalWorldBounds){
+ kill();
+ }
+ }
+
+ //update drown/flying state
+
+ Floor floor = floorOn();
+ Tile tile = tileOn();
+
+ if(isFlying() != wasFlying){
+ if(wasFlying){
+ if(tile != null){
+ Fx.unitLand.at(x, y, floor.isLiquid ? 1f : 0.5f, tile.floor().mapColor);
+ }
+ }
+
+ wasFlying = isFlying();
+ }
+
+ if(!type.hovering && isGrounded() && type.emitWalkEffect){
+ if((splashTimer += Mathf.dst(deltaX(), deltaY())) >= (7f + hitSize()/8f)){
+ floor.walkEffect.at(x, y, hitSize() / 8f, floor.mapColor);
+ splashTimer = 0f;
+
+ if(type.emitWalkSound){
+ floor.walkSound.at(x, y, Mathf.random(floor.walkSoundPitchMin, floor.walkSoundPitchMax), floor.walkSoundVolume);
+ }
+ }
+ }
+
+ updateDrowning();
+
if(wasHealed && healTime <= -1f){
healTime = 1f;
}
@@ -631,8 +770,9 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I
}
}
- Tile tile = tileOn();
- Floor floor = floorOn();
+ if(tile != null && tile.build != null){
+ tile.build.unitOnAny(self());
+ }
if(tile != null && isGrounded() && !type.hovering){
//unit block update
@@ -657,7 +797,7 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I
}
//AI only updates on the server
- if(!net.client() && !dead){
+ if(!net.client() && !dead && shouldUpdateController()){
controller.updateUnit();
}
@@ -672,6 +812,10 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I
}
}
+ public boolean shouldUpdateController(){
+ return true;
+ }
+
/** @return a preview UI icon for this unit. */
public TextureRegion icon(){
return type.uiIcon;
@@ -691,7 +835,7 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I
type.deathExplosionEffect.at(x, y, bounds() / 2f / 8f);
}
- float shake = hitSize / 3f;
+ float shake = type.deathShake < 0 ? hitSize / 3f : type.deathShake;
if(type.createScorch){
Effect.scorch(x, y, (int)(hitSize / 5));
@@ -754,11 +898,6 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I
type.display(self(), table);
}
- @Override
- public boolean isImmune(StatusEffect effect){
- return type.immunities.contains(effect);
- }
-
@Override
public void draw(){
type.draw(self());
diff --git a/core/src/mindustry/entities/comp/VelComp.java b/core/src/mindustry/entities/comp/VelComp.java
index 8be3a30151..0a68f1c56a 100644
--- a/core/src/mindustry/entities/comp/VelComp.java
+++ b/core/src/mindustry/entities/comp/VelComp.java
@@ -39,6 +39,10 @@ abstract class VelComp implements Posc{
return null;
}
+ boolean ignoreSolids(){
+ return false;
+ }
+
/** @return whether this entity can move through a location*/
boolean canPass(int tileX, int tileY){
SolidPred s = solidity();
diff --git a/core/src/mindustry/entities/comp/WaterCrawlComp.java b/core/src/mindustry/entities/comp/WaterCrawlComp.java
new file mode 100644
index 0000000000..e49cc013ff
--- /dev/null
+++ b/core/src/mindustry/entities/comp/WaterCrawlComp.java
@@ -0,0 +1,38 @@
+package mindustry.entities.comp;
+
+import mindustry.annotations.Annotations.*;
+import mindustry.content.*;
+import mindustry.entities.*;
+import mindustry.entities.EntityCollisions.*;
+import mindustry.gen.*;
+import mindustry.type.*;
+import mindustry.world.*;
+import mindustry.world.blocks.environment.*;
+
+@Component
+abstract class WaterCrawlComp implements Posc, Velc, Hitboxc, Unitc, Crawlc{
+ @Import float x, y, rotation, speedMultiplier;
+ @Import UnitType type;
+
+ @Replace
+ public SolidPred solidity(){
+ return isFlying() || ignoreSolids() ? null : EntityCollisions::waterSolid;
+ }
+
+ @Replace
+ public boolean onSolid(){
+ return EntityCollisions.waterSolid(tileX(), tileY());
+ }
+
+ @Replace
+ public float floorSpeedMultiplier(){
+ Floor on = isFlying() ? Blocks.air.asFloor() : floorOn();
+ return (on.shallow ? 1f : 1.3f) * speedMultiplier;
+ }
+
+ public boolean onLiquid(){
+ Tile tile = tileOn();
+ return tile != null && tile.floor().isLiquid;
+ }
+}
+
diff --git a/core/src/mindustry/entities/comp/WaterMoveComp.java b/core/src/mindustry/entities/comp/WaterMoveComp.java
index 9509b891f6..e442ec9b3f 100644
--- a/core/src/mindustry/entities/comp/WaterMoveComp.java
+++ b/core/src/mindustry/entities/comp/WaterMoveComp.java
@@ -4,7 +4,6 @@ import arc.graphics.*;
import arc.graphics.g2d.*;
import arc.math.*;
import arc.util.*;
-import mindustry.ai.*;
import mindustry.annotations.Annotations.*;
import mindustry.content.*;
import mindustry.entities.*;
@@ -18,7 +17,7 @@ import mindustry.world.blocks.environment.*;
import static mindustry.Vars.*;
@Component
-abstract class WaterMoveComp implements Posc, Velc, Hitboxc, Flyingc, Unitc{
+abstract class WaterMoveComp implements Posc, Velc, Hitboxc, Unitc{
@Import float x, y, rotation, speedMultiplier;
@Import UnitType type;
@@ -38,19 +37,6 @@ abstract class WaterMoveComp implements Posc, Velc, Hitboxc, Flyingc, Unitc{
}
}
- @Override
- @Replace
- public int pathType(){
- return Pathfinder.costNaval;
- }
-
- //don't want obnoxious splashing
- @Override
- @Replace
- public boolean emitWalkSound(){
- return false;
- }
-
@Override
public void add(){
tleft.clear();
@@ -59,6 +45,7 @@ abstract class WaterMoveComp implements Posc, Velc, Hitboxc, Flyingc, Unitc{
@Override
public void draw(){
+ //TODO: move to UnitType
float z = Draw.z();
Draw.z(Layer.debris);
@@ -76,7 +63,7 @@ abstract class WaterMoveComp implements Posc, Velc, Hitboxc, Flyingc, Unitc{
@Replace
@Override
public SolidPred solidity(){
- return isFlying() ? null : EntityCollisions::waterSolid;
+ return isFlying() || ignoreSolids() ? null : EntityCollisions::waterSolid;
}
@Replace
diff --git a/core/src/mindustry/entities/effect/ParticleEffect.java b/core/src/mindustry/entities/effect/ParticleEffect.java
index 65e376babc..66c61b3329 100644
--- a/core/src/mindustry/entities/effect/ParticleEffect.java
+++ b/core/src/mindustry/entities/effect/ParticleEffect.java
@@ -34,6 +34,8 @@ public class ParticleEffect extends Effect{
public float spin = 0f;
/** Controls the initial and final sprite sizes. */
public float sizeFrom = 2f, sizeTo = 0f;
+ /** Controls the amount of ticks the effect waits before changing size. */
+ public float sizeChangeStart = 0f;
/** Whether the rotation adds with the parent */
public boolean useRotation = true;
/** Rotation offset. */
@@ -51,6 +53,7 @@ public class ParticleEffect extends Effect{
@Override
public void init(){
clip = Math.max(clip, length + Math.max(sizeFrom, sizeTo));
+ sizeChangeStart = Mathf.clamp(sizeChangeStart, 0f, lifetime);
if(sizeInterp == null) sizeInterp = interp;
}
@@ -62,7 +65,7 @@ public class ParticleEffect extends Effect{
int flip = casingFlip ? -Mathf.sign(e.rotation) : 1;
float rawfin = e.fin();
float fin = e.fin(interp);
- float rad = sizeInterp.apply(sizeFrom, sizeTo, rawfin) * 2;
+ float rad = sizeInterp.apply(sizeFrom, sizeTo, Mathf.curve(rawfin, sizeChangeStart / lifetime, 1f)) * 2;
float ox = e.x + Angles.trnsx(realRotation, offsetX * flip, offsetY), oy = e.y + Angles.trnsy(realRotation, offsetX * flip, offsetY);
Draw.color(colorFrom, colorTo, fin);
diff --git a/core/src/mindustry/entities/effect/RadialEffect.java b/core/src/mindustry/entities/effect/RadialEffect.java
index 1ac37f172f..e6495c4b0f 100644
--- a/core/src/mindustry/entities/effect/RadialEffect.java
+++ b/core/src/mindustry/entities/effect/RadialEffect.java
@@ -8,7 +8,7 @@ import mindustry.entities.*;
/** Renders one particle effect repeatedly at specified angle intervals. */
public class RadialEffect extends Effect{
public Effect effect = Fx.none;
- public float rotationSpacing = 90f, rotationOffset = 0f;
+ public float rotationSpacing = 90f, rotationOffset = 0f, effectRotationOffset = 0f;
public float lengthOffset = 0f;
public int amount = 4;
@@ -16,14 +16,19 @@ public class RadialEffect extends Effect{
clip = 100f;
}
- public RadialEffect(Effect effect, int amount, float spacing, float lengthOffset){
+ public RadialEffect(Effect effect, int amount, float spacing, float lengthOffset, float effectRotationOffset){
this();
this.amount = amount;
this.effect = effect;
+ this.effectRotationOffset = effectRotationOffset;
this.rotationSpacing = spacing;
this.lengthOffset = lengthOffset;
}
+ public RadialEffect(Effect effect, int amount, float spacing, float lengthOffset){
+ this(effect, amount, spacing, lengthOffset, 0f);
+ }
+
@Override
public void create(float x, float y, float rotation, Color color, Object data){
if(!shouldCreate()) return;
@@ -31,7 +36,7 @@ public class RadialEffect extends Effect{
rotation += rotationOffset;
for(int i = 0; i < amount; i++){
- effect.create(x + Angles.trnsx(rotation, lengthOffset), y + Angles.trnsy(rotation, lengthOffset), rotation, color, data);
+ effect.create(x + Angles.trnsx(rotation, lengthOffset), y + Angles.trnsy(rotation, lengthOffset), rotation + effectRotationOffset, color, data);
rotation += rotationSpacing;
}
}
diff --git a/core/src/mindustry/entities/part/DrawPart.java b/core/src/mindustry/entities/part/DrawPart.java
index 6e14ccb247..d1ee4453d9 100644
--- a/core/src/mindustry/entities/part/DrawPart.java
+++ b/core/src/mindustry/entities/part/DrawPart.java
@@ -18,7 +18,7 @@ public abstract class DrawPart{
public int recoilIndex = -1;
public abstract void draw(PartParams params);
- public abstract void load(String name);
+ public void load(String name){}
public void getOutlines(Seq out){}
/** Parameters for drawing a part in draw(). */
@@ -88,7 +88,7 @@ public abstract class DrawPart{
life = p -> p.life,
/** Current unscaled value of Time.time. */
time = p -> Time.time;
-
+
float get(PartParams p);
static PartProgress constant(float value){
@@ -98,11 +98,11 @@ public abstract class DrawPart{
default float getClamp(PartParams p){
return getClamp(p, true);
}
-
+
default float getClamp(PartParams p, boolean clamp){
return clamp ? Mathf.clamp(get(p)) : get(p);
}
-
+
default PartProgress inv(){
return p -> 1f - get(p);
}
@@ -173,11 +173,11 @@ public abstract class DrawPart{
default PartProgress absin(float scl, float mag){
return p -> get(p) + Mathf.absin(scl, mag);
}
-
+
default PartProgress mod(float amount){
return p -> Mathf.mod(get(p), amount);
}
-
+
default PartProgress loop(float time){
return p -> Mathf.mod(get(p)/time, 1);
}
diff --git a/core/src/mindustry/entities/part/EffectSpawnerPart.java b/core/src/mindustry/entities/part/EffectSpawnerPart.java
new file mode 100644
index 0000000000..3931781108
--- /dev/null
+++ b/core/src/mindustry/entities/part/EffectSpawnerPart.java
@@ -0,0 +1,57 @@
+package mindustry.entities.part;
+
+import arc.graphics.*;
+import arc.graphics.g2d.*;
+import arc.math.*;
+import mindustry.*;
+import mindustry.content.*;
+import mindustry.entities.*;
+import mindustry.graphics.*;
+
+import static arc.math.Mathf.random;
+import static arc.util.Tmp.*;
+
+/**Spawns effects in a rectangle centered on x and y.*/
+public class EffectSpawnerPart extends DrawPart{
+ public float x, y, width, height, rotation;
+ public boolean mirror = false;
+
+ public float effectChance = 0.1f, effectRot, effectRandRot;
+ public Effect effect = Fx.sparkShoot;
+ public Color effectColor = Color.white;
+
+ public boolean useProgress = true;
+ public PartProgress progress = PartProgress.warmup;
+
+ /**Shows the spawn rectangles in red.*/
+ public boolean debugDraw = false;
+
+ @Override
+ public void draw(PartParams params){
+ if(debugDraw){
+ for(int i = 0; i < (mirror ? 2 : 1); i++){
+ float sign = (i == 0 ? 1f : -1f), rot = params.rotation + (rotation * sign);
+ v1.set(x * sign, y).rotate(params.rotation - 90).add(params.x, params.y);
+
+ float z = Draw.z();
+ Draw.z(Layer.buildBeam);
+ Draw.color(Color.red);
+ Draw.rect("error", v1.x, v1.y, width, height, rot - 90f);
+ Draw.color();
+ Draw.z(z);
+ }
+ }
+
+ if(Vars.state.isPaused()) return;
+
+ for(int i = 0; i < (mirror ? 2 : 1); i++){
+ if(!Vars.state.isPaused() && Mathf.chanceDelta(effectChance * (useProgress ? progress.getClamp(params) : 1f))){
+ float sign = (i == 0 ? 1f : -1f), rot = params.rotation + (rotation * sign);
+ v1.set(x * sign, y).rotate(params.rotation - 90).add(params.x, params.y);
+ v1.add(v2.set(random(-height * 0.5f, height * 0.5f), random(-width * 0.5f, width * 0.5f)).rotate(rot));
+
+ effect.at(v1.x, v1.y, rot + (effectRot * sign) + random(-effectRandRot, effectRandRot), effectColor);
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/core/src/mindustry/entities/part/RegionPart.java b/core/src/mindustry/entities/part/RegionPart.java
index 527ccae184..9474e819b7 100644
--- a/core/src/mindustry/entities/part/RegionPart.java
+++ b/core/src/mindustry/entities/part/RegionPart.java
@@ -23,6 +23,8 @@ public class RegionPart extends DrawPart{
public boolean mirror = false;
/** If true, an outline is drawn under the part. */
public boolean outline = true;
+ /** If true, this part has an outline created 'in-place'. Currently vanilla only, do not use this! */
+ public boolean replaceOutline = false;
/** If true, the base + outline regions are drawn. Set to false for heat-only regions. */
public boolean drawRegion = true;
/** If true, the heat region produces light. */
@@ -38,7 +40,8 @@ public class RegionPart extends DrawPart{
public Blending blending = Blending.normal;
public float layer = -1, layerOffset = 0f, heatLayerOffset = 1f, turretHeatLayer = Layer.turretHeat;
public float outlineLayerOffset = -0.001f;
- public float x, y, xScl = 1f, yScl = 1f, rotation;
+ //note that origin DOES NOT AFFECT child parts
+ public float x, y, xScl = 1f, yScl = 1f, rotation, originX, originY;
public float moveX, moveY, growX, growY, moveRot;
public float heatLightOpacity = 0.3f;
public @Nullable Color color, colorTo, mixColor, mixColorTo;
@@ -99,16 +102,21 @@ public class RegionPart extends DrawPart{
float sign = (i == 0 ? 1 : -1) * params.sideMultiplier;
Tmp.v1.set((x + mx) * sign, y + my).rotateRadExact((params.rotation - 90) * Mathf.degRad);
+ Draw.xscl *= sign;
+
+ if(originX != 0f || originY != 0f){
+ //correct for offset caused by origin shift
+ Tmp.v1.sub(Tmp.v2.set(-originX * Draw.xscl, -originY * Draw.yscl).rotate(params.rotation - 90f).add(originX * Draw.xscl, originY * Draw.yscl));
+ }
+
float
rx = params.x + Tmp.v1.x,
ry = params.y + Tmp.v1.y,
rot = mr * sign + params.rotation - 90;
- Draw.xscl *= sign;
-
if(outline && drawRegion){
Draw.z(prevZ + outlineLayerOffset);
- Draw.rect(outlines[Math.min(i, regions.length - 1)], rx, ry, rot);
+ rect(outlines[Math.min(i, regions.length - 1)], rx, ry, rot);
Draw.z(prevZ);
}
@@ -126,7 +134,7 @@ public class RegionPart extends DrawPart{
}
Draw.blend(blending);
- Draw.rect(region, rx, ry, rot);
+ rect(region, rx, ry, rot);
Draw.blend();
if(color != null) Draw.color();
}
@@ -134,7 +142,7 @@ public class RegionPart extends DrawPart{
if(heat.found()){
float hprog = heatProgress.getClamp(params, clampProgress);
heatColor.write(Tmp.c1).a(hprog * heatColor.a);
- Drawf.additive(heat, Tmp.c1, rx, ry, rot, turretShading ? turretHeatLayer : Draw.z() + heatLayerOffset);
+ Drawf.additive(heat, Tmp.c1, 1f, rx, ry, rot, turretShading ? turretHeatLayer : Draw.z() + heatLayerOffset, originX, originY);
if(heatLight) Drawf.light(rx, ry, light.found() ? light : heat, rot, Tmp.c1, heatLightOpacity * hprog);
}
@@ -167,6 +175,11 @@ public class RegionPart extends DrawPart{
Draw.scl(preXscl, preYscl);
}
+ void rect(TextureRegion region, float x, float y, float rotation){
+ float w = region.width * region.scl() * Draw.xscl, h = region.height * region.scl() * Draw.yscl;
+ Draw.rect(region, x, y, w, h, w / 2f + originX * Draw.xscl, h / 2f + originY * Draw.yscl, rotation);
+ }
+
@Override
public void load(String name){
String realName = this.name == null ? name + suffix : this.name;
diff --git a/core/src/mindustry/entities/pattern/ShootAlternate.java b/core/src/mindustry/entities/pattern/ShootAlternate.java
index 7fd3795fad..a568b5bf87 100644
--- a/core/src/mindustry/entities/pattern/ShootAlternate.java
+++ b/core/src/mindustry/entities/pattern/ShootAlternate.java
@@ -1,5 +1,6 @@
package mindustry.entities.pattern;
+import arc.math.*;
import arc.util.*;
public class ShootAlternate extends ShootPattern{
@@ -9,6 +10,8 @@ public class ShootAlternate extends ShootPattern{
public float spread = 5f;
/** offset of barrel to start on */
public int barrelOffset = 0;
+ /** If true, the shoot order is flipped. */
+ public boolean mirror = false;
public ShootAlternate(float spread){
this.spread = spread;
@@ -17,11 +20,16 @@ public class ShootAlternate extends ShootPattern{
public ShootAlternate(){
}
+ @Override
+ public void flip(){
+ mirror = !mirror;
+ }
+
@Override
public void shoot(int totalShots, BulletHandler handler, @Nullable Runnable barrelIncrementer){
for(int i = 0; i < shots; i++){
float index = ((totalShots + i + barrelOffset) % barrels) - (barrels-1)/2f;
- handler.shoot(index * spread, 0, 0f, firstShotDelay + shotDelay * i);
+ handler.shoot(index * spread * -Mathf.sign(mirror), 0, 0f, firstShotDelay + shotDelay * i);
if(barrelIncrementer != null) barrelIncrementer.run();
}
}
diff --git a/core/src/mindustry/entities/pattern/ShootHelix.java b/core/src/mindustry/entities/pattern/ShootHelix.java
index 0b61c594c1..cf1dd1ad31 100644
--- a/core/src/mindustry/entities/pattern/ShootHelix.java
+++ b/core/src/mindustry/entities/pattern/ShootHelix.java
@@ -6,6 +6,20 @@ import arc.util.*;
public class ShootHelix extends ShootPattern{
public float scl = 2f, mag = 1.5f, offset = Mathf.PI * 1.25f;
+ public ShootHelix(float scl, float mag){
+ this.scl = scl;
+ this.mag = mag;
+ }
+
+ public ShootHelix(float scl, float mag, float offset){
+ this.scl = scl;
+ this.mag = mag;
+ this.offset = offset;
+ }
+
+ public ShootHelix(){
+ }
+
@Override
public void shoot(int totalShots, BulletHandler handler, @Nullable Runnable barrelIncrementer){
for(int i = 0; i < shots; i++){
diff --git a/core/src/mindustry/entities/pattern/ShootSpread.java b/core/src/mindustry/entities/pattern/ShootSpread.java
index 0508fc8a91..471513be98 100644
--- a/core/src/mindustry/entities/pattern/ShootSpread.java
+++ b/core/src/mindustry/entities/pattern/ShootSpread.java
@@ -14,6 +14,10 @@ public class ShootSpread extends ShootPattern{
public ShootSpread(){
}
+ public static ShootSpread circle(int points){
+ return new ShootSpread(points, 360f / points);
+ }
+
@Override
public void shoot(int totalShots, BulletHandler handler, @Nullable Runnable barrelIncrementer){
for(int i = 0; i < shots; i++){
diff --git a/core/src/mindustry/entities/units/AIController.java b/core/src/mindustry/entities/units/AIController.java
index b86b986b13..50d130c1e8 100644
--- a/core/src/mindustry/entities/units/AIController.java
+++ b/core/src/mindustry/entities/units/AIController.java
@@ -21,15 +21,20 @@ public class AIController implements UnitController{
protected Unit unit;
protected Interval timer = new Interval(4);
- protected AIController fallback;
+ protected @Nullable AIController fallback;
protected float noTargetTime;
/** main target that is being faced */
- protected Teamc target;
+ protected @Nullable Teamc target;
+ protected @Nullable Teamc bomberTarget;
{
- timer.reset(0, Mathf.random(40f));
- timer.reset(1, Mathf.random(60f));
+ resetTimers();
+ }
+
+ protected void resetTimers(){
+ timer.reset(timerTarget, Mathf.random(40f));
+ timer.reset(timerTarget2, Mathf.random(60f));
}
@Override
@@ -120,17 +125,31 @@ public class AIController implements UnitController{
}
public void pathfind(int pathTarget){
- int costType = unit.pathType();
+ pathfind(pathTarget, true);
+ }
+
+ public void pathfind(int pathTarget, boolean stopAtTargetTile){
+ int costType = unit.type.flowfieldPathType;
Tile tile = unit.tileOn();
if(tile == null) return;
- Tile targetTile = pathfinder.getTargetTile(tile, pathfinder.getField(unit.team, costType, pathTarget));
+ Tile targetTile = pathfinder.getField(unit.team, costType, pathTarget).getNextTile(tile);
- if(tile == targetTile || !unit.canPass(targetTile.x, targetTile.y)) return;
+ if((tile == targetTile && stopAtTargetTile) || !unit.canPass(targetTile.x, targetTile.y)) return;
+ //TODO: this may be buggy, figure out if it's the cause of the issue
+ //unit.movePref(alterPathfind(vec.set(targetTile.worldx(), targetTile.worldy()).sub(tile.worldx(), tile.worldy()).setLength(prefSpeed())));
unit.movePref(vec.trns(unit.angleTo(targetTile.worldx(), targetTile.worldy()), prefSpeed()));
}
+ public Vec2 alterPathfind(Vec2 vec){
+ return vec;
+ }
+
+ public void targetInvalidated(){
+ //TODO: try this for normal units, reset the target timer
+ }
+
public void updateWeapons(){
float rotation = unit.rotation - 90;
boolean ret = retarget();
@@ -142,6 +161,9 @@ public class AIController implements UnitController{
noTargetTime += Time.delta;
if(invalid(target)){
+ if(target != null && !target.isAdded()){
+ targetInvalidated();
+ }
target = null;
}else{
noTargetTime = 0f;
@@ -181,6 +203,13 @@ public class AIController implements UnitController{
if(mount.target != null){
shoot = mount.target.within(mountX, mountY, wrange + (mount.target instanceof Sized s ? s.hitSize()/2f : 0f)) && shouldShoot();
+ if(unit.type.autoDropBombs && !shoot){
+ if(bomberTarget == null || !bomberTarget.isAdded() || !bomberTarget.within(unit, unit.hitSize/2f + ((Sized)bomberTarget).hitSize()/2f)){
+ bomberTarget = Units.closestTarget(unit.team, unit.x, unit.y, unit.hitSize, u -> !u.isFlying(), t -> true);
+ }
+ shoot = bomberTarget != null;
+ }
+
Vec2 to = Predict.intercept(unit, mount.target, weapon.bullet.speed);
mount.aimX = to.x;
mount.aimY = to.y;
diff --git a/core/src/mindustry/entities/units/UnitController.java b/core/src/mindustry/entities/units/UnitController.java
index 240728b2cc..b8e282207c 100644
--- a/core/src/mindustry/entities/units/UnitController.java
+++ b/core/src/mindustry/entities/units/UnitController.java
@@ -31,8 +31,4 @@ public interface UnitController{
default void afterRead(Unit unit){
}
-
- default boolean isBeingControlled(Unit player){
- return false;
- }
}
diff --git a/core/src/mindustry/game/CampaignRules.java b/core/src/mindustry/game/CampaignRules.java
index 7ed813cab7..4395e08828 100644
--- a/core/src/mindustry/game/CampaignRules.java
+++ b/core/src/mindustry/game/CampaignRules.java
@@ -1,5 +1,7 @@
package mindustry.game;
+import mindustry.*;
+import mindustry.gen.*;
import mindustry.type.*;
public class CampaignRules{
@@ -8,12 +10,27 @@ public class CampaignRules{
public boolean showSpawns;
public boolean sectorInvasion;
public boolean randomWaveAI;
+ public boolean legacyLaunchPads;
+ public boolean rtsAI;
public void apply(Planet planet, Rules rules){
rules.staticFog = rules.fog = fog;
rules.showSpawns = showSpawns;
rules.randomWaveAI = randomWaveAI;
rules.objectiveTimerMultiplier = difficulty.waveTimeMultiplier;
+ if(planet.showRtsAIRule && rules.attackMode){
+ boolean swapped = rules.teams.get(rules.waveTeam).rtsAi != rtsAI;
+ rules.teams.get(rules.waveTeam).rtsAi = rtsAI;
+ rules.teams.get(rules.waveTeam).rtsMinWeight = 1.2f * difficulty.enemyHealthMultiplier;
+
+ if(swapped && Vars.state.isGame()){
+ Groups.unit.each(u -> {
+ if(u.team == rules.waveTeam && !u.isPlayer()){
+ u.resetController();
+ }
+ });
+ }
+ }
rules.teams.get(rules.waveTeam).blockHealthMultiplier = difficulty.enemyHealthMultiplier;
rules.teams.get(rules.waveTeam).unitHealthMultiplier = difficulty.enemyHealthMultiplier;
rules.teams.get(rules.waveTeam).unitCostMultiplier = 1f / difficulty.enemySpawnMultiplier;
diff --git a/core/src/mindustry/game/Difficulty.java b/core/src/mindustry/game/Difficulty.java
index fe657294ed..e6f34ef002 100644
--- a/core/src/mindustry/game/Difficulty.java
+++ b/core/src/mindustry/game/Difficulty.java
@@ -21,7 +21,24 @@ public enum Difficulty{
this.enemyHealthMultiplier = enemyHealthMultiplier;
}
+ public String info(){
+ String res =
+ (enemyHealthMultiplier == 1f ? "" : Core.bundle.format("difficulty.enemyHealthMultiplier", percentStat(enemyHealthMultiplier)) + "\n") +
+ (enemySpawnMultiplier == 1f ? "" : Core.bundle.format("difficulty.enemySpawnMultiplier", percentStat(enemySpawnMultiplier)) + "\n") +
+ (waveTimeMultiplier == 1f ? "" : Core.bundle.format("difficulty.waveTimeMultiplier", percentStatNeg(waveTimeMultiplier)) + "\n");
+
+ return res.isEmpty() ? Core.bundle.get("difficulty.nomodifiers") : res;
+ }
+
public String localized(){
return Core.bundle.get("difficulty." + name());
}
+
+ static String percentStat(float val){
+ return ((int)(val * 100 - 100) > 0 ? "[negstat]+" : "[stat]") + (int)(val * 100 - 100) + "%[]";
+ }
+
+ static String percentStatNeg(float val){
+ return ((int)(val * 100 - 100) > 0 ? "[stat]+" : "[negstat]") + (int)(val * 100 - 100) + "%[]";
+ }
}
diff --git a/core/src/mindustry/game/EventType.java b/core/src/mindustry/game/EventType.java
index 39333fdf96..84e6ae3afa 100644
--- a/core/src/mindustry/game/EventType.java
+++ b/core/src/mindustry/game/EventType.java
@@ -9,6 +9,7 @@ import mindustry.net.*;
import mindustry.net.Packets.*;
import mindustry.type.*;
import mindustry.world.*;
+import mindustry.world.blocks.environment.*;
import mindustry.world.blocks.storage.CoreBlock.*;
public class EventType{
@@ -38,6 +39,8 @@ public class EventType{
teamCoreDamage,
socketConfigChanged,
update,
+ beforeGameUpdate,
+ afterGameUpdate,
unitCommandChange,
unitCommandPosition,
unitCommandAttack,
@@ -80,6 +83,10 @@ public class EventType{
public static class BlockInfoEvent{}
/** Called *after* all content has been initialized. */
public static class ContentInitEvent{}
+ /** Called *after* all content has been added to the atlas, but before its pixmaps are disposed. */
+ public static class AtlasPackEvent{}
+ /** Called *after* all mod content has been loaded, but before it has been initialized. */
+ public static class ModContentLoadEvent{}
/** Called when the client game is first loaded. */
public static class ClientLoadEvent{}
/** Called after SoundControl registers its music. */
@@ -391,6 +398,22 @@ public class EventType{
}
}
+ /**
+ * Called when a tile changes its floor. Do not cache or use with a timer.
+ * Do not modify any tiles inside listener code.
+ * */
+ public static class TileFloorChangeEvent{
+ public Tile tile;
+ public Floor previous, floor;
+
+ public TileFloorChangeEvent set(Tile tile, Floor previous, Floor floor){
+ this.tile = tile;
+ this.previous = previous;
+ this.floor = floor;
+ return this;
+ }
+ }
+
/**
* Called after a building's team changes.
* Event object is reused, do not nest!
diff --git a/core/src/mindustry/game/FogControl.java b/core/src/mindustry/game/FogControl.java
index 0753b44ee8..8d67a35d7f 100644
--- a/core/src/mindustry/game/FogControl.java
+++ b/core/src/mindustry/game/FogControl.java
@@ -36,6 +36,7 @@ public final class FogControl implements CustomChunk{
private boolean justLoaded = false;
private boolean loadedStatic = false;
+ private int lastEntityUpdateIndex = 0;
public FogControl(){
Events.on(ResetEvent.class, e -> {
@@ -131,6 +132,7 @@ public final class FogControl implements CustomChunk{
}
void stop(){
+ lastEntityUpdateIndex = 0;
fog = null;
//I don't care whether the fog thread crashes here, it's about to die anyway
staticEvents.clear();
@@ -214,6 +216,31 @@ public final class FogControl implements CustomChunk{
//clear to prepare for queuing fog radius from units and buildings
dynamicEventQueue.clear();
+ //update fog visibility manually
+ if(state.rules.fog && !headless && Groups.build.size() > 0){
+
+ int size = Groups.build.size();
+ int chunkSize = 5; //fraction of entity list to iterate each frame
+ int chunks = Math.min(chunkSize, size);
+
+ int iterated = Math.max(1, size / chunks);
+ int steps = 0;
+ int i = lastEntityUpdateIndex % size;
+
+ while(steps < iterated){
+ Groups.build.index(i).updateFogVisibility();
+
+ steps ++;
+ i ++;
+
+ if(i >= size){
+ i = 0;
+ }
+ }
+
+ lastEntityUpdateIndex = i;
+ }
+
for(var team : state.teams.present){
//AI teams do not have fog
if(!team.team.isOnlyAI()){
diff --git a/core/src/mindustry/game/MapObjectives.java b/core/src/mindustry/game/MapObjectives.java
index 3a6f77e5ae..7e7d5af4af 100644
--- a/core/src/mindustry/game/MapObjectives.java
+++ b/core/src/mindustry/game/MapObjectives.java
@@ -11,6 +11,7 @@ import arc.struct.*;
import arc.util.*;
import mindustry.*;
import mindustry.content.*;
+import mindustry.core.*;
import mindustry.ctype.*;
import mindustry.game.MapObjectives.*;
import mindustry.gen.*;
@@ -276,6 +277,11 @@ public class MapObjectives implements Iterable, Eachable, Eachable, Eachable, Eachable, Eachable, Eachable, Eachable, Eachable, Eachable, Eachable blocks = new IntMap<>();
- byte length = stream.readByte();
+ int length = stream.readUnsignedByte();
for(int i = 0; i < length; i++){
String name = stream.readUTF();
Block block = Vars.content.getByName(ContentType.block, SaveFileReader.fallback.get(name, name));
diff --git a/core/src/mindustry/game/SectorInfo.java b/core/src/mindustry/game/SectorInfo.java
index 00ff253867..0d8e8e1f06 100644
--- a/core/src/mindustry/game/SectorInfo.java
+++ b/core/src/mindustry/game/SectorInfo.java
@@ -30,6 +30,9 @@ public class SectorInfo{
public ObjectMap rawProduction = new ObjectMap<>();
/** Export statistics. */
public ObjectMap export = new ObjectMap<>();
+ //TODO: there is an obvious exploit with launch pad redirection here; pads can be redirected after leaving a sector, which doesn't update calculations.
+ /** Import statistics, based on what launch pads are actually receiving. */
+ public ObjectMap imports = new ObjectMap<>();
/** Items stored in all cores. */
public ItemSeq items = new ItemSeq();
/** The best available core type. */
@@ -80,14 +83,18 @@ public class SectorInfo{
public int waveVersion = -1;
/** Whether this sector was indicated to the player or not. */
public boolean shown = false;
- /** Temporary seq for last imported items. Do not use. */
- public transient ItemSeq lastImported = new ItemSeq();
/** Special variables for simulation. */
public float sumHealth, sumRps, sumDps, bossHealth, bossDps, curEnemyHealth, curEnemyDps;
/** Wave where first boss shows up. */
public int bossWave = -1;
+ public ObjectFloatMap importCooldownTimers = new ObjectFloatMap<>();
+ public @Nullable transient float[] importRateCache;
+
+ /** Temporary seq for last imported items. Do not use. */
+ public transient ItemSeq lastImported = new ItemSeq();
+
/** Counter refresh state. */
private transient Interval time = new Interval();
/** Core item storage input/output deltas. */
@@ -107,12 +114,6 @@ public class SectorInfo{
productionDeltas[item.id] += amount;
}
- /** @return the real location items go when launched on this sector */
- public Sector getRealDestination(){
- //on multiplayer the destination is, by default, the first captured sector (basically random)
- return !net.client() || destination != null ? destination : state.rules.sector.planet.sectors.find(Sector::hasBase);
- }
-
/** Updates export statistics. */
public void handleItemExport(ItemStack stack){
handleItemExport(stack.item, stack.amount);
@@ -123,10 +124,43 @@ public class SectorInfo{
export.get(item, ExportStat::new).counter += amount;
}
+ /** Updates import statistics. */
+ public void handleItemImport(Item item, int amount){
+ imports.get(item, ExportStat::new).counter += amount;
+ }
+
public float getExport(Item item){
return export.get(item, ExportStat::new).mean;
}
+ public boolean hasExport(Item item){
+ var exp = export.get(item);
+ return exp != null && exp.mean > 0f;
+ }
+
+ public void refreshImportRates(Planet planet){
+ if(importRateCache == null || importRateCache.length != content.items().size){
+ importRateCache = new float[content.items().size];
+ }else{
+ Arrays.fill(importRateCache, 0f);
+ }
+ eachImport(planet, sector -> sector.info.export.each((item, stat) -> {
+ importRateCache[item.id] += stat.mean;
+ }));
+ }
+
+ public float[] getImportRates(Planet planet){
+ if(importRateCache == null){
+ refreshImportRates(planet);
+ }
+ return importRateCache;
+ }
+
+ /** @return the import rate of an item as item/second. This is the *raw* max import rate, not what landing pads are actually using. */
+ public float getImportRate(Planet planet, Item item){
+ return getImportRates(planet)[item.id];
+ }
+
/** Write contents of meta into main storage. */
public void write(){
//enable attack mode when there's a core.
@@ -221,19 +255,8 @@ public class SectorInfo{
//refresh throughput
if(time.get(refreshPeriod)){
- //refresh export
- export.each((item, stat) -> {
- //initialize stat after loading
- if(!stat.loaded){
- stat.means.fill(stat.mean);
- stat.loaded = true;
- }
-
- //add counter, subtract how many items were taken from the core during this time
- stat.means.add(Math.max(stat.counter, 0));
- stat.counter = 0;
- stat.mean = stat.means.rawMean();
- });
+ updateStats(export);
+ updateStats(imports);
if(coreDeltas == null) coreDeltas = new int[content.items().size];
if(productionDeltas == null) productionDeltas = new int[content.items().size];
@@ -250,6 +273,11 @@ public class SectorInfo{
//export can, at most, be the raw items being produced from factories + the items being taken from the core
export.get(item).mean = Math.min(export.get(item).mean, rawProduction.get(item).mean + Math.max(-production.get(item).mean, 0));
}
+
+ if(imports.containsKey(item)){
+ //import can't exceed max import rate
+ imports.get(item).mean = Math.min(imports.get(item).mean, getImportRate(state.getPlanet(), item));
+ }
}
Arrays.fill(coreDeltas, 0);
@@ -257,6 +285,20 @@ public class SectorInfo{
}
}
+ void updateStats(ObjectMap map){
+ map.each((item, stat) -> {
+ //initialize stat after loading
+ if(!stat.loaded){
+ stat.means.fill(stat.mean);
+ stat.loaded = true;
+ }
+
+ stat.means.add(Math.max(stat.counter, 0));
+ stat.counter = 0;
+ stat.mean = stat.means.rawMean();
+ });
+ }
+
void updateDelta(Item item, ObjectMap map, int[] deltas){
ExportStat stat = map.get(item, ExportStat::new);
if(!stat.loaded){
@@ -293,7 +335,7 @@ public class SectorInfo{
/** Iterates through every sector this one imports from. */
public void eachImport(Planet planet, Cons cons){
for(Sector sector : planet.sectors){
- Sector dest = sector.info.getRealDestination();
+ Sector dest = sector.info.destination;
if(sector.hasBase() && sector.info != this && dest != null && dest.info == this && sector.info.anyExports()){
cons.get(sector);
}
diff --git a/core/src/mindustry/game/SpawnGroup.java b/core/src/mindustry/game/SpawnGroup.java
index aa2657fc9c..d43f018188 100644
--- a/core/src/mindustry/game/SpawnGroup.java
+++ b/core/src/mindustry/game/SpawnGroup.java
@@ -1,11 +1,11 @@
package mindustry.game;
+import arc.func.*;
import arc.struct.*;
import arc.util.*;
import arc.util.serialization.*;
import arc.util.serialization.Json.*;
import mindustry.content.*;
-import mindustry.ctype.*;
import mindustry.gen.*;
import mindustry.io.versions.*;
import mindustry.type.*;
@@ -48,6 +48,8 @@ public class SpawnGroup implements JsonSerializable, Cloneable{
public @Nullable StatusEffect effect;
/** Items this unit spawns with. Null to disable. */
public @Nullable ItemStack items;
+ /** Team that units spawned use. Null for default wave team. */
+ public @Nullable Team team;
public SpawnGroup(UnitType type){
this.type = type;
@@ -75,12 +77,9 @@ public class SpawnGroup implements JsonSerializable, Cloneable{
return Math.max(shields + shieldScaling*(wave - begin), 0);
}
- /**
- * Creates a unit, and assigns correct values based on this group's data.
- * This method does not add() the unit.
- */
- public Unit createUnit(Team team, int wave){
- Unit unit = type.create(team);
+ /** Creates a unit, and assigns correct values based on this group's data. */
+ public Unit createUnit(Team team, float x, float y, float rotation, int wave, Cons cons){
+ Unit unit = type.spawn(team, x, y, rotation, cons);
if(effect != null){
unit.apply(effect, 999999f);
@@ -104,6 +103,11 @@ public class SpawnGroup implements JsonSerializable, Cloneable{
return unit;
}
+ /** Creates a unit, and assigns correct values based on this group's data. */
+ public Unit createUnit(Team team, int wave){
+ return createUnit(team, 0f, 0f, 0f, wave, u -> {});
+ }
+
@Override
public void write(Json json){
if(type == null) type = UnitTypes.dagger;
@@ -120,7 +124,7 @@ public class SpawnGroup implements JsonSerializable, Cloneable{
if(spawn != -1) json.writeValue("spawn", spawn);
if(payloads != null && payloads.any()) json.writeValue("payloads", payloads.map(u -> u.name).toArray(String.class));
if(items != null && items.amount > 0) json.writeValue("items", items);
-
+ if(team != null) json.writeValue("team", team.id);
}
@Override
@@ -140,6 +144,7 @@ public class SpawnGroup implements JsonSerializable, Cloneable{
spawn = data.getInt("spawn", -1);
if(data.has("payloads")) payloads = Seq.with(json.readValue(String[].class, data.get("payloads"))).map(content::unit).removeAll(t -> t == null);
if(data.has("items")) items = json.readValue(ItemStack.class, data.get("items"));
+ if(data.has("team")) team = Team.get(data.getInt("team"));
//old boss effect ID
diff --git a/core/src/mindustry/game/Team.java b/core/src/mindustry/game/Team.java
index affcbe525c..962d24bbdf 100644
--- a/core/src/mindustry/game/Team.java
+++ b/core/src/mindustry/game/Team.java
@@ -8,16 +8,18 @@ import arc.util.*;
import mindustry.game.Rules.*;
import mindustry.game.Teams.*;
import mindustry.graphics.*;
+import mindustry.logic.*;
import mindustry.world.blocks.storage.CoreBlock.*;
import mindustry.world.modules.*;
import static mindustry.Vars.*;
-public class Team implements Comparable{
+public class Team implements Comparable, Senseable{
public final int id;
- public final Color color;
- public final Color[] palette;
+ public final Color color = new Color();
+ public final Color[] palette = {new Color(), new Color(), new Color()};
public final int[] palettei = new int[3];
+ public boolean ignoreUnitCap = false;
public String emoji = "";
public boolean hasPalette;
public String name;
@@ -49,6 +51,8 @@ public class Team implements Comparable{
new Team(i, "team#" + i, Color.HSVtoRGB(360f * Mathf.random(), 100f * Mathf.random(0.4f, 1f), 100f * Mathf.random(0.6f, 1f), 1f));
}
Mathf.rand.setSeed(new Rand().nextLong());
+
+ neoplastic.ignoreUnitCap = true;
}
public static Team get(int id){
@@ -57,33 +61,21 @@ public class Team implements Comparable{
protected Team(int id, String name, Color color){
this.name = name;
- this.color = color;
+ this.color.set(color);
this.id = id;
if(id < 6) baseTeams[id] = this;
all[id] = this;
- palette = new Color[3];
- palette[0] = color;
- palette[1] = color.cpy().mul(0.75f);
- palette[2] = color.cpy().mul(0.5f);
-
- for(int i = 0; i < 3; i++){
- palettei[i] = palette[i].rgba();
- }
+ setPalette(color);
}
/** Specifies a 3-color team palette. */
protected Team(int id, String name, Color color, Color pal1, Color pal2, Color pal3){
this(id, name, color);
- palette[0] = pal1;
- palette[1] = pal2;
- palette[2] = pal3;
- for(int i = 0; i < 3; i++){
- palettei[i] = palette[i].rgba();
- }
- hasPalette = true;
+ setPalette(pal1, pal2, pal3);
+ this.color.set(color);
}
/** @return the core items for this team, or an empty item module.
@@ -106,10 +98,16 @@ public class Team implements Comparable{
return data().core();
}
+ /** @return whether this team has any buildings on this map; in waves mode, this is always true for the enemy team. */
public boolean active(){
return state.teams.isActive(this);
}
+ /** @return whether this team has any active cores. Not the same as active()! */
+ public boolean isAlive(){
+ return data().isAlive();
+ }
+
/** @return whether this team is supposed to be AI-controlled. */
public boolean isAI(){
return (state.rules.waves || state.rules.attackMode) && this != state.rules.defaultTeam && !state.rules.pvp;
@@ -125,12 +123,6 @@ public class Team implements Comparable{
return isAI() && !rules().rtsAi;
}
- /** @deprecated There is absolutely no reason to use this. */
- @Deprecated
- public boolean isEnemy(Team other){
- return this != other;
- }
-
public Seq cores(){
return state.teams.cores(this);
}
@@ -138,11 +130,27 @@ public class Team implements Comparable{
public String localized(){
return Core.bundle.get("team." + name + ".name", name);
}
-
+
public String coloredName(){
return emoji + "[#" + color + "]" + localized() + "[]";
}
+ public void setPalette(Color color){
+ setPalette(color, color.cpy().mul(0.75f), color.cpy().mul(0.5f));
+ hasPalette = false;
+ }
+
+ public void setPalette(Color pal1, Color pal2, Color pal3){
+ color.set(pal1);
+ palette[0].set(pal1);
+ palette[1].set(pal2);
+ palette[2].set(pal3);
+ for(int i = 0; i < 3; i++){
+ palettei[i] = palette[i].rgba();
+ }
+ hasPalette = true;
+ }
+
@Override
public int compareTo(Team team){
return Integer.compare(id, team.id);
@@ -152,4 +160,11 @@ public class Team implements Comparable{
public String toString(){
return name;
}
+
+ @Override
+ public double sense(LAccess sensor){
+ if(sensor == LAccess.id) return id;
+ if(sensor == LAccess.color) return color.toDoubleBits();
+ return Double.NaN;
+ }
}
diff --git a/core/src/mindustry/game/Teams.java b/core/src/mindustry/game/Teams.java
index 036cbc2d43..e4c5a9e190 100644
--- a/core/src/mindustry/game/Teams.java
+++ b/core/src/mindustry/game/Teams.java
@@ -56,6 +56,19 @@ public class Teams{
return Geometry.findClosest(x, y, get(team).cores);
}
+ public boolean anyEnemyCoresWithinBuildRadius(Team team, float x, float y){
+ for(TeamData data : active){
+ if(team != data.team){
+ for(CoreBuild tile : data.cores){
+ if(tile.within(x, y, state.rules.buildRadius(tile.team) + tilesize)){
+ return true;
+ }
+ }
+ }
+ }
+ return false;
+ }
+
public boolean anyEnemyCoresWithin(Team team, float x, float y, float radius){
for(TeamData data : active){
if(team != data.team){
@@ -113,6 +126,15 @@ public class Teams{
return active;
}
+ public void updateActive(Team team){
+ TeamData data = get(team);
+ //register in active list if needed
+ if(data.active() && !active.contains(data)){
+ active.add(data);
+ updateEnemies();
+ }
+ }
+
public void registerCore(CoreBuild core){
TeamData data = get(core.team);
//add core if not present
@@ -394,13 +416,18 @@ public class Teams{
}
public boolean active(){
- return (team == state.rules.waveTeam && state.rules.waves) || cores.size > 0;
+ return (team == state.rules.waveTeam && state.rules.waves) || cores.size > 0 || buildings.size > 0 || (team == Team.neoplastic && units.size > 0);
}
public boolean hasCore(){
return cores.size > 0;
}
+ /** @return whether this team has any cores (standard team), or any hearts (neoplasm). */
+ public boolean isAlive(){
+ return hasCore();
+ }
+
public boolean noCores(){
return cores.isEmpty();
}
@@ -435,11 +462,12 @@ public class Teams{
/** Represents a block made by this team that was destroyed somewhere on the map.
* This does not include deconstructed blocks.*/
public static class BlockPlan{
- public final short x, y, rotation, block;
+ public final short x, y, rotation;
+ public final Block block;
public final Object config;
public boolean removed;
- public BlockPlan(int x, int y, short rotation, short block, Object config){
+ public BlockPlan(int x, int y, short rotation, Block block, Object config){
this.x = (short)x;
this.y = (short)y;
this.rotation = rotation;
diff --git a/core/src/mindustry/game/Universe.java b/core/src/mindustry/game/Universe.java
index a22d073f9d..33fcc893c1 100644
--- a/core/src/mindustry/game/Universe.java
+++ b/core/src/mindustry/game/Universe.java
@@ -6,6 +6,7 @@ import arc.struct.*;
import arc.util.*;
import mindustry.content.*;
import mindustry.game.EventType.*;
+import mindustry.game.Schematic.*;
import mindustry.game.SectorInfo.*;
import mindustry.gen.*;
import mindustry.maps.*;
@@ -115,6 +116,11 @@ public class Universe{
Core.settings.putJson("launch-resources-seq", lastLaunchResources);
}
+ /** Updates selected loadout for future deployment. Creates an empty schematic with a single core block. */
+ public void updateLoadout(CoreBlock block){
+ updateLoadout(block, new Schematic(Seq.with(new Stile(block, 0, 0, null, (byte)0)), new StringMap(), block.size, block.size));
+ }
+
/** Updates selected loadout for future deployment. */
public void updateLoadout(CoreBlock block, Schematic schem){
Core.settings.put("lastloadout-" + block.name, schem.file == null ? "" : schem.file.nameWithoutExtension());
@@ -157,26 +163,33 @@ public class Universe{
continue;
}
- //first pass: clear import stats
- for(Sector sector : planet.sectors){
- if(sector.hasBase() && !sector.isBeingPlayed()){
- sector.info.lastImported.clear();
- }
+ //don't simulate the planet if there is an in-progress mission on that planet
+ if(!planet.allowWaveSimulation && planet.sectors.contains(s -> s.hasBase() && !s.isBeingPlayed() && s.isAttacked())){
+ continue;
}
- //second pass: update export & import statistics
- for(Sector sector : planet.sectors){
- if(sector.hasBase() && !sector.isBeingPlayed()){
+ if(planet.campaignRules.legacyLaunchPads){
+ //first pass: clear import stats
+ for(Sector sector : planet.sectors){
+ if(sector.hasBase() && !sector.isBeingPlayed()){
+ sector.info.lastImported.clear();
+ }
+ }
- //export to another sector
- if(sector.info.destination != null){
- Sector to = sector.info.destination;
- if(to.hasBase() && to.planet == planet){
- ItemSeq items = new ItemSeq();
- //calculated exported items to this sector
- sector.info.export.each((item, stat) -> items.add(item, (int)(stat.mean * newSecondsPassed * sector.getProductionScale())));
- to.addItems(items);
- to.info.lastImported.add(items);
+ //second pass: update export & import statistics
+ for(Sector sector : planet.sectors){
+ if(sector.hasBase() && !sector.isBeingPlayed()){
+
+ //export to another sector
+ if(sector.info.destination != null){
+ Sector to = sector.info.destination;
+ if(to.hasBase() && to.planet == planet){
+ ItemSeq items = new ItemSeq();
+ //calculated exported items to this sector
+ sector.info.export.each((item, stat) -> items.add(item, (int)(stat.mean * newSecondsPassed * sector.getProductionScale())));
+ to.addItems(items);
+ to.info.lastImported.add(items);
+ }
}
}
}
@@ -185,6 +198,9 @@ public class Universe{
//third pass: everything else
for(Sector sector : planet.sectors){
if(sector.hasBase()){
+ if(sector.info.importRateCache != null){
+ sector.info.refreshImportRates(planet);
+ }
//if it is being attacked, capture time is 0; otherwise, increment the timer
if(sector.isAttacked()){
@@ -196,6 +212,8 @@ public class Universe{
//increment seconds passed for this sector by the time that just passed with this turn
if(!sector.isBeingPlayed()){
+ //TODO: if a planet has sectors under attack and simulation is OFF, just don't simulate it
+
//increment time if attacked
if(sector.isAttacked()){
sector.info.secondsPassed += turnDuration/60f;
@@ -238,12 +256,15 @@ public class Universe{
//add production, making sure that it's capped
sector.info.production.each((item, stat) -> sector.info.items.add(item, Math.min((int)(stat.mean * newSecondsPassed * scl), sector.info.storageCapacity - sector.info.items.get(item))));
- sector.info.export.each((item, stat) -> {
- if(sector.info.items.get(item) <= 0 && sector.info.production.get(item, ExportStat::new).mean < 0 && stat.mean > 0){
- //cap export by import when production is negative.
- stat.mean = Math.min(sector.info.lastImported.get(item) / (float)newSecondsPassed, stat.mean);
- }
- });
+ if(planet.campaignRules.legacyLaunchPads){
+ sector.info.export.each((item, stat) -> {
+ if(sector.info.items.get(item) <= 0 && sector.info.production.get(item, ExportStat::new).mean < 0 && stat.mean > 0){
+ //cap export by import when production is negative.
+ //TODO remove
+ stat.mean = Math.min(sector.info.lastImported.get(item) / (float)newSecondsPassed, stat.mean);
+ }
+ });
+ }
//prevent negative values with unloaders
sector.info.items.checkNegative();
diff --git a/core/src/mindustry/graphics/BlockRenderer.java b/core/src/mindustry/graphics/BlockRenderer.java
index aec39b6661..4949a90bc3 100644
--- a/core/src/mindustry/graphics/BlockRenderer.java
+++ b/core/src/mindustry/graphics/BlockRenderer.java
@@ -49,6 +49,7 @@ public class BlockRenderer{
private IntSet procLinks = new IntSet(), procLights = new IntSet();
private BlockQuadtree blockTree = new BlockQuadtree(new Rect(0, 0, 1, 1));
+ private BlockLightQuadtree blockLightTree = new BlockLightQuadtree(new Rect(0, 0, 1, 1));
private FloorQuadtree floorTree = new FloorQuadtree(new Rect(0, 0, 1, 1));
public BlockRenderer(){
@@ -64,7 +65,9 @@ public class BlockRenderer{
Events.on(WorldLoadEvent.class, event -> {
blockTree = new BlockQuadtree(new Rect(0, 0, world.unitWidth(), world.unitHeight()));
+ blockLightTree = new BlockLightQuadtree(new Rect(0, 0, world.unitWidth(), world.unitHeight()));
floorTree = new FloorQuadtree(new Rect(0, 0, world.unitWidth(), world.unitHeight()));
+
shadowEvents.clear();
updateFloors.clear();
lastCamY = lastCamX = -99; //invalidate camera position so blocks get updated
@@ -93,7 +96,7 @@ public class BlockRenderer{
tile.build.wasVisible = true;
}
- if(tile.block().hasShadow && (tile.build == null || tile.build.wasVisible)){
+ if(tile.block().displayShadow(tile) && (tile.build == null || tile.build.wasVisible)){
Fill.rect(tile.x + 0.5f, tile.y + 0.5f, 1, 1);
}
}
@@ -116,7 +119,10 @@ public class BlockRenderer{
Events.on(TilePreChangeEvent.class, event -> {
if(blockTree == null || floorTree == null) return;
- if(indexBlock(event.tile)) blockTree.remove(event.tile);
+ if(indexBlock(event.tile)){
+ blockTree.remove(event.tile);
+ blockLightTree.remove(event.tile);
+ }
if(indexFloor(event.tile)) floorTree.remove(event.tile);
});
@@ -209,7 +215,10 @@ public class BlockRenderer{
}
void recordIndex(Tile tile){
- if(indexBlock(tile)) blockTree.insert(tile);
+ if(indexBlock(tile)){
+ blockTree.insert(tile);
+ blockLightTree.insert(tile);
+ }
if(indexFloor(tile)) floorTree.insert(tile);
}
@@ -274,7 +283,7 @@ public class BlockRenderer{
if(brokenFade > 0.001f){
for(BlockPlan block : player.team().data().plans){
- Block b = content.block(block.block);
+ Block b = block.block;
if(!camera.bounds(Tmp.r1).grow(tilesize * 2f).overlaps(Tmp.r2.setSize(b.size * tilesize).setCenter(block.x * tilesize + b.offset, block.y * tilesize + b.offset))) continue;
Draw.alpha(0.33f * brokenFade);
@@ -295,7 +304,7 @@ public class BlockRenderer{
for(Tile tile : shadowEvents){
if(tile == null) continue;
//draw white/shadow color depending on blend
- Draw.color((!tile.block().hasShadow || (state.rules.fog && tile.build != null && !tile.build.wasVisible)) ? Color.white : blendShadowColor);
+ Draw.color((!tile.block().displayShadow(tile) || (state.rules.fog && tile.build != null && !tile.build.wasVisible)) ? Color.white : blendShadowColor);
Fill.rect(tile.x + 0.5f, tile.y + 0.5f, 1, 1);
}
@@ -354,16 +363,17 @@ public class BlockRenderer{
//draw floor lights
floorTree.intersect(bounds, lightview::add);
+ blockLightTree.intersect(bounds, tile -> {
+ if(tile.block().emitLight && (tile.build == null || procLights.add(tile.build.pos()))){
+ lightview.add(tile);
+ }
+ });
+
blockTree.intersect(bounds, tile -> {
if(tile.build == null || procLinks.add(tile.build.id)){
tileview.add(tile);
}
- //lights are drawn even in the expanded range
- if(((tile.build != null && procLights.add(tile.build.pos())) || tile.block().emitLight)){
- lightview.add(tile);
- }
-
if(tile.build != null && tile.build.power != null && tile.build.power.links.size > 0){
for(Building other : tile.build.getPowerConnections(outArray2)){
if(other.block instanceof PowerNode && procLinks.add(other.id)){ //TODO need a generic way to render connections!
@@ -519,6 +529,24 @@ public class BlockRenderer{
}
}
+ static class BlockLightQuadtree extends QuadTree{
+
+ public BlockLightQuadtree(Rect bounds){
+ super(bounds);
+ }
+
+ @Override
+ public void hitbox(Tile tile){
+ var block = tile.block();
+ tmp.setCentered(tile.worldx() + block.offset, tile.worldy() + block.offset, block.lightClipSize, block.lightClipSize);
+ }
+
+ @Override
+ protected QuadTree newChild(Rect rect){
+ return new BlockLightQuadtree(rect);
+ }
+ }
+
static class FloorQuadtree extends QuadTree{
public FloorQuadtree(Rect bounds){
@@ -528,7 +556,7 @@ public class BlockRenderer{
@Override
public void hitbox(Tile tile){
var floor = tile.floor();
- tmp.setCentered(tile.worldx(), tile.worldy(), floor.clipSize, floor.clipSize);
+ tmp.setCentered(tile.worldx(), tile.worldy(), floor.lightClipSize, floor.lightClipSize);
}
@Override
diff --git a/core/src/mindustry/graphics/CacheLayer.java b/core/src/mindustry/graphics/CacheLayer.java
index 9ffd468ac2..31de034b7f 100644
--- a/core/src/mindustry/graphics/CacheLayer.java
+++ b/core/src/mindustry/graphics/CacheLayer.java
@@ -17,6 +17,7 @@ public class CacheLayer{
public static CacheLayer[] all = {};
public int id;
+ public boolean liquid;
/** Registers cache layers that will render before the 'normal' layer. */
public static void add(CacheLayer... layers){
@@ -66,7 +67,7 @@ public class CacheLayer{
slag = new ShaderLayer(Shaders.slag),
arkycite = new ShaderLayer(Shaders.arkycite),
cryofluid = new ShaderLayer(Shaders.cryofluid),
- space = new ShaderLayer(Shaders.space),
+ space = new ShaderLayer(Shaders.space, false),
normal = new CacheLayer(),
walls = new CacheLayer()
);
@@ -86,7 +87,11 @@ public class CacheLayer{
public @Nullable Shader shader;
public ShaderLayer(Shader shader){
- //shader will be null on headless backend, but that's ok
+ this(shader, true);
+ }
+
+ public ShaderLayer(@Nullable Shader shader, boolean liquid){
+ this.liquid = liquid;
this.shader = shader;
}
@@ -94,7 +99,6 @@ public class CacheLayer{
public void begin(){
if(!Core.settings.getBool("animatedwater")) return;
- renderer.blocks.floor.endc();
renderer.effectBuffer.begin();
Core.graphics.clear(Color.clear);
renderer.blocks.floor.beginc();
@@ -104,11 +108,8 @@ public class CacheLayer{
public void end(){
if(!Core.settings.getBool("animatedwater")) return;
- renderer.blocks.floor.endc();
renderer.effectBuffer.end();
-
renderer.effectBuffer.blit(shader);
-
renderer.blocks.floor.beginc();
}
}
diff --git a/core/src/mindustry/graphics/Drawf.java b/core/src/mindustry/graphics/Drawf.java
index 497736e6c9..caf5a067c6 100644
--- a/core/src/mindustry/graphics/Drawf.java
+++ b/core/src/mindustry/graphics/Drawf.java
@@ -26,6 +26,10 @@ public class Drawf{
}
}
+ public static void underwater(Runnable run){
+ renderer.blocks.floor.drawUnderwater(run);
+ }
+
//TODO offset unused
public static void flame(float x, float y, int divisions, float rotation, float length, float width, float pan){
float len1 = length * pan, len2 = length * (1f - pan);
@@ -130,6 +134,17 @@ public class Drawf{
additive(region, color, 1f, x, y, rotation, layer);
}
+ public static void additive(TextureRegion region, Color color, float alpha, float x, float y, float width, float height, float layer){
+ float pz = Draw.z();
+ Draw.z(layer);
+ Draw.color(color, alpha * color.a);
+ Draw.blend(Blending.additive);
+ Draw.rect(region, x, y, width, height, 0f);
+ Draw.blend();
+ Draw.color();
+ Draw.z(pz);
+ }
+
public static void additive(TextureRegion region, Color color, float alpha, float x, float y, float rotation, float layer){
float pz = Draw.z();
Draw.z(layer);
@@ -141,6 +156,17 @@ public class Drawf{
Draw.z(pz);
}
+ public static void additive(TextureRegion region, Color color, float alpha, float x, float y, float rotation, float layer, float originX, float originY){
+ float pz = Draw.z(), w = region.width * region.scl() * Draw.xscl, h = region.height * region.scl() * Draw.yscl;
+ Draw.z(layer);
+ Draw.color(color, alpha * color.a);
+ Draw.blend(Blending.additive);
+ Draw.rect(region, x, y, w, h, w / 2f + originX * region.scl() * Draw.xscl, h / 2f + originY * region.scl() * Draw.yscl, rotation);
+ Draw.blend();
+ Draw.color();
+ Draw.z(pz);
+ }
+
public static void limitLine(Position start, Position dest, float len1, float len2, Color color){
if(start.within(dest, len1 + len2)){
return;
@@ -267,7 +293,7 @@ public class Drawf{
}
public static void selected(Building tile, Color color){
- selected(tile.tile(), color);
+ selected(tile.tile, color);
}
public static void selected(Tile tile, Color color){
diff --git a/core/src/mindustry/graphics/FloorRenderer.java b/core/src/mindustry/graphics/FloorRenderer.java
index 872c71953c..754d6d7d27 100644
--- a/core/src/mindustry/graphics/FloorRenderer.java
+++ b/core/src/mindustry/graphics/FloorRenderer.java
@@ -42,21 +42,29 @@ public class FloorRenderer{
private static final boolean dynamic = false;
private float[] vertices = new float[maxSprites * vertexSize * 4];
- private short[] indices = new short[maxSprites * 6];
private int vidx;
private FloorRenderBatch batch = new FloorRenderBatch();
private Shader shader;
private Texture texture;
private TextureRegion error;
- private Mesh[][][] cache;
+ private IndexData indexData;
+ private ChunkMesh[][][] cache;
private IntSet drawnLayerSet = new IntSet();
private IntSet recacheSet = new IntSet();
private IntSeq drawnLayers = new IntSeq();
private ObjectSet used = new ObjectSet<>();
+ private Seq underwaterDraw = new Seq<>(Runnable.class);
+ //alpha value of pixels cannot exceed the alpha of the surface they're being drawn on
+ private Blending underwaterBlend = new Blending(
+ Gl.srcAlpha, Gl.oneMinusSrcAlpha,
+ Gl.dstAlpha, Gl.oneMinusSrcAlpha
+ );
+
public FloorRenderer(){
short j = 0;
+ short[] indices = new short[maxSprites * 6];
for(int i = 0; i < indices.length; i += 6, j += 4){
indices[i] = j;
indices[i + 1] = (short)(j + 1);
@@ -66,6 +74,14 @@ public class FloorRenderer{
indices[i + 5] = j;
}
+ indexData = new IndexBufferObject(true, indices.length){
+ @Override
+ public void dispose(){
+ //there is never a need to dispose this index buffer
+ }
+ };
+ indexData.set(indices, 0, indices.length);
+
shader = new Shader(
"""
attribute vec4 a_position;
@@ -121,6 +137,8 @@ public class FloorRenderer{
drawnLayers.clear();
drawnLayerSet.clear();
+ Rect bounds = camera.bounds(Tmp.r3);
+
//preliminary layer check
for(int x = minx; x <= maxx; x++){
for(int y = miny; y <= maxy; y++){
@@ -131,11 +149,11 @@ public class FloorRenderer{
cacheChunk(x, y);
}
- Mesh[] chunk = cache[x][y];
+ ChunkMesh[] chunk = cache[x][y];
//loop through all layers, and add layer index if it exists
for(int i = 0; i < layers; i++){
- if(chunk[i] != null && i != CacheLayer.walls.id){
+ if(chunk[i] != null && i != CacheLayer.walls.id && chunk[i].bounds.overlaps(bounds)){
drawnLayerSet.add(i);
}
}
@@ -149,16 +167,13 @@ public class FloorRenderer{
drawnLayers.sort();
- Draw.flush();
beginDraw();
for(int i = 0; i < drawnLayers.size; i++){
- CacheLayer layer = CacheLayer.all[drawnLayers.get(i)];
-
- drawLayer(layer);
+ drawLayer(CacheLayer.all[drawnLayers.get(i)]);
}
- endDraw();
+ underwaterDraw.clear();
}
public void beginc(){
@@ -167,29 +182,6 @@ public class FloorRenderer{
//only ever use the base environment texture
texture.bind(0);
-
- //enable all mesh attributes; TODO remove once the attribute cache bug is fixed
- if(Core.gl30 == null){
- for(VertexAttribute attribute : attributes){
- int loc = shader.getAttributeLocation(attribute.alias);
- if(loc != -1) Gl.enableVertexAttribArray(loc);
- }
- }
-
- }
-
- public void endc(){
- //disable all mesh attributes; TODO remove once the attribute cache bug is fixed
- if(Core.gl30 == null){
- for(VertexAttribute attribute : attributes){
- int loc = shader.getAttributeLocation(attribute.alias);
- if(loc != -1) Gl.disableVertexAttribArray(loc);
- }
- }
-
- //unbind last buffer
- Gl.bindBuffer(Gl.arrayBuffer, 0);
- Gl.bindBuffer(Gl.elementArrayBuffer, 0);
}
public void checkChanges(){
@@ -205,6 +197,10 @@ public class FloorRenderer{
}
}
+ public void drawUnderwater(Runnable run){
+ underwaterDraw.add(run);
+ }
+
public void beginDraw(){
if(cache == null){
return;
@@ -217,14 +213,6 @@ public class FloorRenderer{
Gl.enable(Gl.blend);
}
- public void endDraw(){
- if(cache == null){
- return;
- }
-
- endc();
- }
-
public void drawLayer(CacheLayer layer){
if(cache == null){
return;
@@ -240,6 +228,8 @@ public class FloorRenderer{
layer.begin();
+ Rect bounds = camera.bounds(Tmp.r3);
+
for(int x = minx; x <= maxx; x++){
for(int y = miny; y <= maxy; y++){
@@ -249,33 +239,29 @@ public class FloorRenderer{
var mesh = cache[x][y][layer.id];
- //this *must* be a vertexbufferobject on gles2, so cast it and render it directly
- if(mesh != null && mesh.vertices instanceof VertexBufferObject vbo && mesh.indices instanceof IndexBufferObject ibo){
-
- //bindi the buffer and update its contents, but do not unnecessarily enable all the attributes again
- vbo.bind();
- //set up vertex attribute pointers for this specific VBO
- int offset = 0;
- for(VertexAttribute attribute : attributes){
- int location = shader.getAttributeLocation(attribute.alias);
- int aoffset = offset;
- offset += attribute.size;
- if(location < 0) continue;
-
- Gl.vertexAttribPointer(location, attribute.components, attribute.type, attribute.normalized, vertexSize * 4, aoffset);
- }
-
- ibo.bind();
-
- mesh.vertices.render(mesh.indices, Gl.triangles, 0, mesh.getNumIndices());
- }else if(mesh != null){
- //TODO this should be the default branch!
- mesh.bind(shader);
- mesh.render(shader, Gl.triangles);
+ if(mesh != null && mesh.bounds.overlaps(bounds)){
+ mesh.render(shader, Gl.triangles, 0, mesh.getMaxVertices() * 6 / 4);
}
}
}
+ //every underwater object needs to be drawn once per cache layer, which sucks.
+ if(layer.liquid && underwaterDraw.size > 0){
+
+ Draw.blend(underwaterBlend);
+
+ var items = underwaterDraw.items;
+ int len = underwaterDraw.size;
+ for(int i = 0; i < len; i++){
+ items[i].run();
+ }
+
+ Draw.flush();
+ Draw.blend(Blending.normal);
+ Blending.normal.apply();
+ beginDraw();
+ }
+
layer.end();
}
@@ -298,7 +284,7 @@ public class FloorRenderer{
}
if(cache[cx][cy].length == 0){
- cache[cx][cy] = new Mesh[CacheLayer.all.length];
+ cache[cx][cy] = new ChunkMesh[CacheLayer.all.length];
}
var meshes = cache[cx][cy];
@@ -315,7 +301,7 @@ public class FloorRenderer{
}
}
- private Mesh cacheChunkLayer(int cx, int cy, CacheLayer layer){
+ private ChunkMesh cacheChunkLayer(int cx, int cy, CacheLayer layer){
vidx = 0;
Batch current = Core.batch;
@@ -345,13 +331,13 @@ public class FloorRenderer{
Core.batch = current;
int floats = vidx;
- //every 4 vertices need 6 indices
- int vertCount = floats / vertexSize, indCount = vertCount * 6/4;
+ ChunkMesh mesh = new ChunkMesh(true, floats / vertexSize, 0, attributes,
+ cx * tilesize * chunksize - tilesize/2f, cy * tilesize * chunksize - tilesize/2f,
+ (cx+1) * tilesize * chunksize + tilesize/2f, (cy+1) * tilesize * chunksize + tilesize/2f);
- Mesh mesh = new Mesh(true, vertCount, indCount, attributes);
mesh.setVertices(vertices, 0, vidx);
- mesh.setAutoBind(false);
- mesh.setIndices(indices, 0, indCount);
+ //all vertices are shared
+ mesh.indices = indexData;
return mesh;
}
@@ -372,7 +358,7 @@ public class FloorRenderer{
recacheSet.clear();
int chunksx = Mathf.ceil((float)(world.width()) / chunksize), chunksy = Mathf.ceil((float)(world.height()) / chunksize);
- cache = new Mesh[chunksx][chunksy][dynamic ? 0 : CacheLayer.all.length];
+ cache = new ChunkMesh[chunksx][chunksy][dynamic ? 0 : CacheLayer.all.length];
texture = Core.atlas.find("grass1").texture;
error = Core.atlas.find("env-error");
@@ -391,7 +377,28 @@ public class FloorRenderer{
}
}
+ static class ChunkMesh extends Mesh{
+ Rect bounds = new Rect();
+
+ ChunkMesh(boolean isStatic, int maxVertices, int maxIndices, VertexAttribute[] attributes, float minX, float minY, float maxX, float maxY){
+ super(isStatic, maxVertices, maxIndices, attributes);
+
+ bounds.set(minX, minY, maxX - minX, maxY - minY);
+ }
+ }
+
class FloorRenderBatch extends Batch{
+ //TODO: alternate clipping approach, can be more accurate
+ /*
+ float minX, minY, maxX, maxY;
+
+ void reset(){
+ minX = Float.POSITIVE_INFINITY;
+ minY = Float.POSITIVE_INFINITY;
+ maxX = 0f;
+ maxY = 0f;
+ }
+ */
@Override
protected void draw(TextureRegion region, float x, float y, float originX, float originY, float width, float height, float rotation){
diff --git a/core/src/mindustry/graphics/LightRenderer.java b/core/src/mindustry/graphics/LightRenderer.java
index 7c30b94796..c20e841ab3 100644
--- a/core/src/mindustry/graphics/LightRenderer.java
+++ b/core/src/mindustry/graphics/LightRenderer.java
@@ -32,6 +32,8 @@ public class LightRenderer{
public void add(float x, float y, float radius, Color color, float opacity){
if(!enabled() || radius <= 0f) return;
+ //TODO: clipping.
+
float res = Color.toFloatBits(color.r, color.g, color.b, opacity);
if(circles.size <= circleIndex) circles.add(new CircleLight());
diff --git a/core/src/mindustry/graphics/MenuRenderer.java b/core/src/mindustry/graphics/MenuRenderer.java
index 949d03f914..ad32be8314 100644
--- a/core/src/mindustry/graphics/MenuRenderer.java
+++ b/core/src/mindustry/graphics/MenuRenderer.java
@@ -11,6 +11,7 @@ import arc.struct.*;
import arc.util.*;
import arc.util.noise.*;
import mindustry.content.*;
+import mindustry.game.*;
import mindustry.type.*;
import mindustry.world.*;
@@ -239,35 +240,17 @@ public class MenuRenderer implements Disposable{
}
private void drawFlyers(){
- Draw.color(0f, 0f, 0f, 0.4f);
-
- TextureRegion icon = flyerType.fullIcon;
+ flyerType.sample.elevation = 1f;
+ flyerType.sample.team = Team.sharded;
+ flyerType.sample.rotation = flyerRot;
+ flyerType.sample.heal();
flyers((x, y) -> {
- Draw.rect(icon, x - 12f, y - 13f, flyerRot - 90);
+ flyerType.sample.set(x, y);
+ flyerType.drawShadow(flyerType.sample);
+ flyerType.draw(flyerType.sample);
});
- float size = Math.max(icon.width, icon.height) * icon.scl() * 1.6f;
-
- flyers((x, y) -> {
- Draw.rect("circle-shadow", x, y, size, size);
- });
- Draw.color();
-
- flyers((x, y) -> {
- float engineOffset = flyerType.engineOffset, engineSize = flyerType.engineSize, rotation = flyerRot;
-
- Draw.color(Pal.engine);
- Fill.circle(x + Angles.trnsx(rotation + 180, engineOffset), y + Angles.trnsy(rotation + 180, engineOffset),
- engineSize + Mathf.absin(Time.time, 2f, engineSize / 4f));
-
- Draw.color(Color.white);
- Fill.circle(x + Angles.trnsx(rotation + 180, engineOffset - 1f), y + Angles.trnsy(rotation + 180, engineOffset - 1f),
- (engineSize + Mathf.absin(Time.time, 2f, engineSize / 4f)) / 2f);
- Draw.color();
-
- Draw.rect(icon, x, y, flyerRot - 90);
- });
}
private void flyers(Floatc2 cons){
diff --git a/core/src/mindustry/graphics/MinimapRenderer.java b/core/src/mindustry/graphics/MinimapRenderer.java
index e5f42b2c9a..449fc74406 100644
--- a/core/src/mindustry/graphics/MinimapRenderer.java
+++ b/core/src/mindustry/graphics/MinimapRenderer.java
@@ -30,8 +30,6 @@ public class MinimapRenderer{
private Rect rect = new Rect();
private float zoom = 4;
- private float lastX, lastY, lastW, lastH, lastScl;
- private boolean worldSpace;
private IntSet updates = new IntSet();
private float updateCounter = 0f;
@@ -123,13 +121,7 @@ public class MinimapRenderer{
region = new TextureRegion(texture);
}
- public void drawEntities(float x, float y, float w, float h, float scaling, boolean fullView){
- lastX = x;
- lastY = y;
- lastW = w;
- lastH = h;
- lastScl = scaling;
- worldSpace = fullView;
+ public void drawEntities(float x, float y, float w, float h, boolean fullView){
if(!fullView){
updateUnitArray();
@@ -150,12 +142,12 @@ public class MinimapRenderer{
float scaleFactor;
var trans = Tmp.m1.idt();
- trans.translate(lastX, lastY);
- if(!worldSpace){
- trans.scl(Tmp.v1.set(scaleFactor = lastW / rect.width, lastH / rect.height));
+ trans.translate(x, y);
+ if(!fullView){
+ trans.scl(Tmp.v1.set(scaleFactor = w / rect.width, h / rect.height));
trans.translate(-rect.x, -rect.y);
}else{
- trans.scl(Tmp.v1.set(scaleFactor = lastW / world.unitWidth(), lastH / world.unitHeight()));
+ trans.scl(Tmp.v1.set(scaleFactor = w / world.unitWidth(), h / world.unitHeight()));
}
trans.translate(tilesize / 2f, tilesize / 2f);
Draw.trans(trans);
@@ -176,7 +168,7 @@ public class MinimapRenderer{
if(fullView && net.active()){
for(Player player : Groups.player){
if(!player.dead()){
- drawLabel(player.x, player.y, player.name, player.color);
+ drawLabel(player.x, player.y, player.name, player.color, scaleFactor);
}
}
}
@@ -381,22 +373,22 @@ public class MinimapRenderer{
return color.rgba();
}
- public void drawLabel(float x, float y, String text, Color color){
+ public void drawLabel(float x, float y, String text, Color color, float scaleFactor){
Font font = Fonts.outline;
GlyphLayout l = Pools.obtain(GlyphLayout.class, GlyphLayout::new);
boolean ints = font.usesIntegerPositions();
- font.getData().setScale(1 / 1.5f / Scl.scl(1f));
+ font.getData().setScale(1 / 1.25f / Scl.scl(1f) * scaleFactor * 1f);
font.setUseIntegerPositions(false);
- l.setText(font, text, color, 90f, Align.left, true);
+ l.setText(font, text, color, 90f * scaleFactor, Align.left, false);
float yOffset = 20f;
- float margin = 3f;
+ float margin = 3f * scaleFactor;
Draw.color(0f, 0f, 0f, 0.2f);
Fill.rect(x, y + yOffset - l.height/2f, l.width + margin, l.height + margin);
Draw.color();
font.setColor(color);
- font.draw(text, x - l.width/2f, y + yOffset, 90f, Align.left, true);
+ font.draw(text, x - l.width/2f, y + yOffset, 90f * scaleFactor, Align.left, false);
font.setUseIntegerPositions(ints);
font.getData().setScale(1f);
diff --git a/core/src/mindustry/graphics/OverlayRenderer.java b/core/src/mindustry/graphics/OverlayRenderer.java
index 3aa4be1bf8..f2630eee53 100644
--- a/core/src/mindustry/graphics/OverlayRenderer.java
+++ b/core/src/mindustry/graphics/OverlayRenderer.java
@@ -131,7 +131,7 @@ public class OverlayRenderer{
Building build = (select instanceof BlockUnitc b ? b.tile() : select instanceof Building b ? b : null);
TextureRegion region = build != null ? build.block.fullIcon : Core.atlas.white();
- if(!(select instanceof Unitc)){
+ if(select instanceof BlockUnitc){
Draw.rect(region, select.getX(), select.getY());
}
@@ -178,11 +178,12 @@ public class OverlayRenderer{
}else{
state.teams.eachEnemyCore(player.team(), core -> {
//it must be clear that there is a core here.
- if(/*core.wasVisible && */Core.camera.bounds(Tmp.r1).overlaps(Tmp.r2.setCentered(core.x, core.y, state.rules.enemyCoreBuildRadius * 2f))){
+ float br = state.rules.buildRadius(core.team);
+ if(/*core.wasVisible && */Core.camera.bounds(Tmp.r1).overlaps(Tmp.r2.setCentered(core.x, core.y, br * 2f))){
Draw.color(Color.darkGray);
- Lines.circle(core.x, core.y - 2, state.rules.enemyCoreBuildRadius);
+ Lines.circle(core.x, core.y - 2,br);
Draw.color(Pal.accent, core.team.color, 0.5f + Mathf.absin(Time.time, 10f, 0.5f));
- Lines.circle(core.x, core.y, state.rules.enemyCoreBuildRadius);
+ Lines.circle(core.x, core.y, br);
}
});
}
diff --git a/core/src/mindustry/graphics/Pal.java b/core/src/mindustry/graphics/Pal.java
index 9b56be524b..911aa19b34 100644
--- a/core/src/mindustry/graphics/Pal.java
+++ b/core/src/mindustry/graphics/Pal.java
@@ -5,6 +5,7 @@ import arc.graphics.*;
public class Pal{
public static Color
+ water = Color.valueOf("596ab8"),
darkOutline = Color.valueOf("2d2f39"),
thoriumPink = Color.valueOf("f9a3c7"),
coalBlack = Color.valueOf("272727"),
@@ -107,7 +108,7 @@ public class Pal{
redderDust = Color.valueOf("ff7b69"),
plasticSmoke = Color.valueOf("f1e479"),
-
+
adminChat = Color.valueOf("ff4000"),
neoplasmOutline = Color.valueOf("2e191d"),
@@ -115,6 +116,8 @@ public class Pal{
neoplasm1 = Color.valueOf("f98f4a"),
neoplasmMid = Color.valueOf("e05438"),
neoplasm2 = Color.valueOf("9e172c"),
+ neoplasmAcid = Color.valueOf("8ead44"),
+ neoplasmAcidGlow = Color.valueOf("68e43e"),
logicBlocks = Color.valueOf("d4816b"),
logicControl = Color.valueOf("6bb2b2"),
@@ -135,5 +138,30 @@ public class Pal{
techBlue = Color.valueOf("8ca9e8"),
vent = Color.valueOf("6b4e4e"),
- vent2 = Color.valueOf("3b2a2a");
+ vent2 = Color.valueOf("3b2a2a"),
+
+ copperAmmoFront = Color.valueOf("eac1a8"),
+ copperAmmoBack = Color.valueOf("d39169"),
+
+ graphiteAmmoBack = Color.valueOf("7d89d8"),
+ graphiteAmmoFront = Color.valueOf("dae1ee"),
+
+ siliconAmmoBack = Color.valueOf("707594"),
+ siliconAmmoFront = Color.valueOf("999ba0"),
+
+ glassAmmoBack = Color.valueOf("b9c9df"),
+ glassAmmoFront = Color.valueOf("ffffff"),
+
+ scrapAmmoFront = Color.valueOf("f5e0cc"),
+ scrapAmmoBack = Color.valueOf("d8887e"),
+
+ surgeAmmoFront = Color.white.cpy(),
+ surgeAmmoBack = surge.cpy(),
+
+ blastAmmoBack = Color.valueOf("e9665b"),
+ blastAmmoFront = Color.valueOf("eeab89"),
+
+ thoriumAmmoBack = Color.valueOf("f595be"),
+ thoriumAmmoFront = Color.white.cpy()
+ ;
}
diff --git a/core/src/mindustry/graphics/Shaders.java b/core/src/mindustry/graphics/Shaders.java
index 109b5388ba..39cd5b4192 100644
--- a/core/src/mindustry/graphics/Shaders.java
+++ b/core/src/mindustry/graphics/Shaders.java
@@ -232,6 +232,8 @@ public class Shaders{
public static class BlockBuildShader extends LoadShader{
public float progress;
+ //Alpha changes the opacity of *everything*, while the provided batch color only changes the outline
+ public float alpha = 1f;
public TextureRegion region = new TextureRegion();
public float time;
@@ -243,6 +245,7 @@ public class Shaders{
public void apply(){
setUniformf("u_progress", progress);
setUniformf("u_time", time);
+ setUniformf("u_alpha", alpha);
if(region.texture == null){
setUniformf("u_uv", 0f, 0f);
diff --git a/core/src/mindustry/graphics/g3d/HexSkyMesh.java b/core/src/mindustry/graphics/g3d/HexSkyMesh.java
index a3cec1f170..434e22818f 100644
--- a/core/src/mindustry/graphics/g3d/HexSkyMesh.java
+++ b/core/src/mindustry/graphics/g3d/HexSkyMesh.java
@@ -27,7 +27,7 @@ public class HexSkyMesh extends PlanetMesh{
@Override
public boolean skip(Vec3 position){
- return Simplex.noise3d(planet.id + seed, octaves, persistence, scl, position.x, position.y * 3f, position.z) >= thresh;
+ return Simplex.noise3d(7 + seed, octaves, persistence, scl, position.x, position.y * 3f, position.z) >= thresh;
}
}, divisions, false, planet.radius, radius), Shaders.clouds);
diff --git a/core/src/mindustry/graphics/g3d/NoiseMesh.java b/core/src/mindustry/graphics/g3d/NoiseMesh.java
index f6b8b7328e..88709c4021 100644
--- a/core/src/mindustry/graphics/g3d/NoiseMesh.java
+++ b/core/src/mindustry/graphics/g3d/NoiseMesh.java
@@ -14,7 +14,7 @@ public class NoiseMesh extends HexMesh{
this.mesh = MeshBuilder.buildHex(new HexMesher(){
@Override
public float getHeight(Vec3 position){
- return Simplex.noise3d(planet.id + seed, octaves, persistence, scale, 5f + position.x, 5f + position.y, 5f + position.z) * mag;
+ return Simplex.noise3d(7 + seed, octaves, persistence, scale, 5f + position.x, 5f + position.y, 5f + position.z) * mag;
}
@Override
@@ -31,12 +31,12 @@ public class NoiseMesh extends HexMesh{
this.mesh = MeshBuilder.buildHex(new HexMesher(){
@Override
public float getHeight(Vec3 position){
- return Simplex.noise3d(planet.id + seed, octaves, persistence, scale, 5f + position.x, 5f + position.y, 5f + position.z) * mag;
+ return Simplex.noise3d(7 + seed, octaves, persistence, scale, 5f + position.x, 5f + position.y, 5f + position.z) * mag;
}
@Override
public Color getColor(Vec3 position){
- return Simplex.noise3d(planet.id + seed + 1, coct, cper, cscl, 5f + position.x, 5f + position.y, 5f + position.z) > cthresh ? color2 : color1;
+ return Simplex.noise3d(8 + seed, coct, cper, cscl, 5f + position.x, 5f + position.y, 5f + position.z) > cthresh ? color2 : color1;
}
}, divisions, false, radius, 0.2f);
}
diff --git a/core/src/mindustry/graphics/g3d/PlanetParams.java b/core/src/mindustry/graphics/g3d/PlanetParams.java
index 6c7d2e6dc3..b13d54751b 100644
--- a/core/src/mindustry/graphics/g3d/PlanetParams.java
+++ b/core/src/mindustry/graphics/g3d/PlanetParams.java
@@ -18,8 +18,6 @@ public class PlanetParams{
public Vec3 camUp = new Vec3(0f, 1f, 0f);
/** the unit length direction vector of the camera **/
public Vec3 camDir = new Vec3(0, 0, -1);
- /** The sun/main planet of the solar system from which everything is rendered. Deprecated use planet.solarSystem instead */
- public @Deprecated Planet solarSystem = Planets.sun;
/** Planet being looked at. */
public Planet planet = Planets.serpulo;
diff --git a/core/src/mindustry/input/Binding.java b/core/src/mindustry/input/Binding.java
index d5c52930d3..35318003d6 100644
--- a/core/src/mindustry/input/Binding.java
+++ b/core/src/mindustry/input/Binding.java
@@ -85,6 +85,7 @@ public enum Binding implements KeyBind{
menu(Vars.android ? KeyCode.back : KeyCode.escape),
fullscreen(KeyCode.f11),
pause(KeyCode.space),
+ skip_wave(KeyCode.unset),
minimap(KeyCode.m),
research(KeyCode.j),
planet_map(KeyCode.n),
diff --git a/core/src/mindustry/input/DesktopInput.java b/core/src/mindustry/input/DesktopInput.java
index 78ac0604a7..c0212b8081 100644
--- a/core/src/mindustry/input/DesktopInput.java
+++ b/core/src/mindustry/input/DesktopInput.java
@@ -288,7 +288,7 @@ public class DesktopInput extends InputHandler{
}
//validate commanding units
- selectedUnits.removeAll(u -> !u.isCommandable() || !u.isValid());
+ selectedUnits.removeAll(u -> !u.isCommandable() || !u.isValid() || u.team != player.team());
if(commandMode && !scene.hasField() && !scene.hasDialog()){
if(input.keyTap(Binding.select_all_units)){
@@ -474,7 +474,7 @@ public class DesktopInput extends InputHandler{
cursorType = cursor.build.getCursor();
}
- if(canRepairDerelict(cursor)){
+ if(canRepairDerelict(cursor) && !player.dead() && player.unit().canBuild()){
cursorType = ui.repairCursor;
}
diff --git a/core/src/mindustry/input/InputHandler.java b/core/src/mindustry/input/InputHandler.java
index 55961ae966..7174f82d27 100644
--- a/core/src/mindustry/input/InputHandler.java
+++ b/core/src/mindustry/input/InputHandler.java
@@ -312,6 +312,9 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
//only assign a group when this is not a queued command
if(ai.commandQueue.size == 0 && unitIds.length > 1){
int layer = unit.collisionLayer();
+
+ if(layer == -1) layer = 0;
+
if(groups[layer] == null){
groups[layer] = new UnitGroup();
}
@@ -418,7 +421,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
if(player == null || build == null || !build.interactable(player.team()) || !player.within(build, itemTransferRange) || player.dead() || amount <= 0) return;
if(net.server() && (!Units.canInteract(player, build) ||
- !netServer.admins.allowAction(player, ActionType.withdrawItem, build.tile(), action -> {
+ !netServer.admins.allowAction(player, ActionType.withdrawItem, build.tile, action -> {
action.item = item;
action.itemAmount = amount;
}))){
@@ -460,7 +463,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
@Remote(targets = Loc.both, called = Loc.server)
public static void requestUnitPayload(Player player, Unit target){
- if(player == null || !(player.unit() instanceof Payloadc pay)) return;
+ if(player == null || !(player.unit() instanceof Payloadc pay) || target == null) return;
Unit unit = player.unit();
@@ -606,7 +609,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
if(build == null) return;
if(net.server() && (!Units.canInteract(player, build) ||
- !netServer.admins.allowAction(player, ActionType.rotate, build.tile(), action -> action.rotation = Mathf.mod(build.rotation + Mathf.sign(direction), 4)))){
+ !netServer.admins.allowAction(player, ActionType.rotate, build.tile, action -> action.rotation = Mathf.mod(build.rotation + Mathf.sign(direction), 4)))){
throw new ValidateException(player, "Player cannot rotate a block.");
}
@@ -635,7 +638,11 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
player.con.send(packet, true);
}
- throw new ValidateException(player, "Player cannot configure a tile.");
+ if(!player.isLocal()){
+ throw new ValidateException(player, "Player cannot configure a tile.");
+ }else{
+ return;
+ }
}
build.configured(player == null || player.dead() ? null : player.unit(), value);
Events.fire(new ConfigEvent(build, player, value));
@@ -693,7 +700,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
if(unit == null){ //just clear the unit (is this used?)
player.clearUnit();
//make sure it's AI controlled, so players can't overwrite each other
- }else if(unit.isAI() && unit.team == player.team() && !unit.dead && unit.type.playerControllable){
+ }else if(unit.isAI() && unit.team == player.team() && !unit.dead && unit.playerControllable()){
if(net.client() && player.isLocal()){
player.justSwitchFrom = player.unit();
player.justSwitchTo = unit;
@@ -878,7 +885,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
}
if(controlledType != null && player.dead() && controlledType.playerControllable){
- Unit unit = Units.closest(player.team(), player.x, player.y, u -> !u.isPlayer() && u.type == controlledType && !u.dead);
+ Unit unit = Units.closest(player.team(), player.x, player.y, u -> !u.isPlayer() && u.type == controlledType && u.playerControllable() && !u.dead);
if(unit != null){
//only trying controlling once a second to prevent packet spam
@@ -1096,10 +1103,16 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
//draw command overlay UI
for(Unit unit : selectedUnits){
- if(unit.isFlying() != flying) continue;
+
CommandAI ai = unit.command();
Position lastPos = ai.attackTarget != null ? ai.attackTarget : ai.targetPos;
+ if(flying && ai.attackTarget != null && ai.currentCommand().drawTarget){
+ Drawf.target(ai.attackTarget.getX(), ai.attackTarget.getY(), 6f, Pal.remove);
+ }
+
+ if(unit.isFlying() != flying) continue;
+
//draw target line
if(ai.targetPos != null && ai.currentCommand().drawTarget){
Position lineDest = ai.attackTarget != null ? ai.attackTarget : ai.targetPos;
@@ -1135,9 +1148,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
//Lines.poly(unit.x, unit.y, sides, rad + 1.5f);
Draw.reset();
- if(ai.attackTarget != null && ai.currentCommand().drawTarget){
- Drawf.target(ai.attackTarget.getX(), ai.attackTarget.getY(), 6f, Pal.remove);
- }
+
if(lastPos == null){
lastPos = unit;
@@ -1397,8 +1408,10 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
return r2.overlaps(r1);
};
- for(var plan : player.unit().plans()){
- if(test.get(plan)) return plan;
+ if(!player.dead()){
+ for(var plan : player.unit().plans()){
+ if(test.get(plan)) return plan;
+ }
}
return selectPlans.find(test);
@@ -1426,9 +1439,11 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
Draw.color(Pal.remove);
Lines.stroke(1f);
- for(var plan : player.unit().plans()){
- if(!plan.breaking && plan.bounds(Tmp.r2).overlaps(Tmp.r1)){
- drawBreaking(plan);
+ if(!player.dead()){
+ for(var plan : player.unit().plans()){
+ if(!plan.breaking && plan.bounds(Tmp.r2).overlaps(Tmp.r1)){
+ drawBreaking(plan);
+ }
}
}
@@ -1441,9 +1456,9 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
}
for(BlockPlan plan : player.team().data().plans){
- Block block = content.block(plan.block);
+ Block block = plan.block;
if(block.bounds(plan.x, plan.y, Tmp.r2).overlaps(Tmp.r1)){
- drawSelected(plan.x, plan.y, content.block(plan.block), Pal.remove);
+ drawSelected(plan.x, plan.y, plan.block, Pal.remove);
}
}
@@ -1463,9 +1478,9 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
Tmp.r1.set(result.x, result.y, result.x2 - result.x, result.y2 - result.y);
for(BlockPlan plan : player.team().data().plans){
- Block block = content.block(plan.block);
+ Block block = plan.block;
if(block.bounds(plan.x, plan.y, Tmp.r2).overlaps(Tmp.r1)){
- drawSelected(plan.x, plan.y, content.block(plan.block), Pal.sapBullet);
+ drawSelected(plan.x, plan.y, plan.block, Pal.sapBullet);
}
}
@@ -1604,23 +1619,25 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
//remove build plans
Tmp.r1.set(result.x * tilesize, result.y * tilesize, (result.x2 - result.x) * tilesize, (result.y2 - result.y) * tilesize);
- Iterator it = player.unit().plans().iterator();
- while(it.hasNext()){
- var plan = it.next();
- if(!plan.breaking && plan.bounds(Tmp.r2).overlaps(Tmp.r1)){
- it.remove();
- }
- }
-
- //don't remove plans on desktop, where flushing is false
- if(flush){
- it = selectPlans.iterator();
+ if(!player.dead()){
+ Iterator it = player.unit().plans().iterator();
while(it.hasNext()){
var plan = it.next();
if(!plan.breaking && plan.bounds(Tmp.r2).overlaps(Tmp.r1)){
it.remove();
}
}
+
+ //don't remove plans on desktop, where flushing is false
+ if(flush){
+ it = selectPlans.iterator();
+ while(it.hasNext()){
+ var plan = it.next();
+ if(!plan.breaking && plan.bounds(Tmp.r2).overlaps(Tmp.r1)){
+ it.remove();
+ }
+ }
+ }
}
removed.clear();
@@ -1629,7 +1646,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
Iterator broken = player.team().data().plans.iterator();
while(broken.hasNext()){
BlockPlan plan = broken.next();
- Block block = content.block(plan.block);
+ Block block = plan.block;
if(block.bounds(plan.x, plan.y, Tmp.r2).overlaps(Tmp.r1)){
removed.add(Point2.pack(plan.x, plan.y));
plan.removed = true;
@@ -1741,7 +1758,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
}
boolean canTapPlayer(float x, float y){
- return player.within(x, y, playerSelectRange) && player.unit().stack.amount > 0;
+ return player.within(x, y, playerSelectRange) && !player.dead() && player.unit().stack.amount > 0;
}
/** Tries to begin mining a tile, returns true if successful. */
@@ -1771,7 +1788,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
}
boolean tryRepairDerelict(Tile selected){
- if(selected != null && !state.rules.editor && player.team() != Team.derelict && selected.build != null && selected.build.block.unlockedNow() && selected.build.team == Team.derelict &&
+ if(!player.dead() && selected != null && !state.rules.editor && player.team() != Team.derelict && selected.build != null && selected.build.block.unlockedNow() && selected.build.team == Team.derelict &&
Build.validPlace(selected.block(), player.team(), selected.build.tileX(), selected.build.tileY(), selected.build.rotation)){
player.unit().addBuild(new BuildPlan(selected.build.tileX(), selected.build.tileY(), selected.build.rotation, selected.block(), selected.build.config()));
@@ -1781,12 +1798,13 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
}
boolean canRepairDerelict(Tile tile){
- return tile != null && tile.build != null && !state.rules.editor && player.team() != Team.derelict && tile.build.team == Team.derelict && tile.build.block.unlockedNowHost() &&
+ return tile != null && tile.build != null && !player.dead() && !state.rules.editor && player.team() != Team.derelict && tile.build.team == Team.derelict && tile.build.block.unlockedNowHost() &&
Build.validPlace(tile.block(), player.team(), tile.build.tileX(), tile.build.tileY(), tile.build.rotation);
}
boolean canMine(Tile tile){
return !Core.scene.hasMouse()
+ && !player.dead()
&& player.unit().validMine(tile)
&& player.unit().acceptsItem(player.unit().getMineResult(tile))
&& !((!Core.settings.getBool("doubletapmine") && tile.floor().playerUnmineable) && tile.overlay().itemDrop == null);
@@ -1849,7 +1867,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
}
public @Nullable Unit selectedUnit(){
- Unit unit = Units.closest(player.team(), Core.input.mouseWorld().x, Core.input.mouseWorld().y, 40f, u -> u.isAI() && u.type.playerControllable);
+ Unit unit = Units.closest(player.team(), Core.input.mouseWorld().x, Core.input.mouseWorld().y, 40f, u -> u.isAI() && u.playerControllable());
if(unit != null){
unit.hitbox(Tmp.r1);
Tmp.r1.grow(6f);
@@ -1972,6 +1990,8 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
}
public void tryDropItems(@Nullable Building build, float x, float y){
+ if(player.dead()) return;
+
if(!droppingItem || player.unit().stack.amount <= 0 || canTapPlayer(x, y) || state.isPaused() ){
droppingItem = false;
return;
@@ -2000,9 +2020,9 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
Iterator broken = player.team().data().plans.iterator();
while(broken.hasNext()){
BlockPlan plan = broken.next();
- Block block = content.block(plan.block);
+ Block block = plan.block;
if(block.bounds(plan.x, plan.y, Tmp.r2).overlaps(Tmp.r1)){
- player.unit().addBuild(new BuildPlan(plan.x, plan.y, plan.rotation, content.block(plan.block), plan.config));
+ player.unit().addBuild(new BuildPlan(plan.x, plan.y, plan.rotation, plan.block, plan.config));
}
}
@@ -2049,7 +2069,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
}
}
- return ignoreUnits ? Build.validPlaceIgnoreUnits(type, player.team(), x, y, rotation, true) : Build.validPlace(type, player.team(), x, y, rotation);
+ return ignoreUnits ? Build.validPlaceIgnoreUnits(type, player.team(), x, y, rotation, true, true) : Build.validPlace(type, player.team(), x, y, rotation);
}
public boolean validBreak(int x, int y){
diff --git a/core/src/mindustry/input/MobileInput.java b/core/src/mindustry/input/MobileInput.java
index 20490ccd5c..bd16b6f9d6 100644
--- a/core/src/mindustry/input/MobileInput.java
+++ b/core/src/mindustry/input/MobileInput.java
@@ -227,7 +227,7 @@ public class MobileInput extends InputHandler implements GestureListener{
table.button(Icon.ok, Styles.clearNoneTogglei, () -> {
if(schematicMode){
rebuildMode = !rebuildMode;
- }else{
+ }else if(!player.dead()){
for(BuildPlan plan : selectPlans){
Tile tile = plan.tile();
@@ -261,6 +261,7 @@ public class MobileInput extends InputHandler implements GestureListener{
}).visible(() -> !selectPlans.isEmpty() || schematicMode || rebuildMode).update(i -> {
i.getStyle().imageUp = schematicMode || rebuildMode ? Icon.wrench : Icon.ok;
i.setChecked(rebuildMode);
+ i.setDisabled(() -> player.dead());
}).name("confirmplace");
}
@@ -279,18 +280,18 @@ public class MobileInput extends InputHandler implements GestureListener{
group.fill(t -> {
t.visible(this::showCancel);
t.bottom().left();
- t.button("@cancel", Icon.cancel, () -> {
+ t.button("@cancel", Icon.cancel, Styles.clearTogglet, () -> {
if(!player.dead()){
player.unit().clearBuilding();
}
selectPlans.clear();
mode = none;
block = null;
- }).width(155f).height(50f).margin(12f);
+ }).width(155f).checked(b -> false).height(50f).margin(12f);
});
group.fill(t -> {
- t.visible(() -> !showCancel() && block == null && !hasSchematic() && !state.rules.editor);
+ t.visible(() -> !hasSchematic() && !(state.isEditor() && Core.settings.getBool("editor-blocks-shown")));
t.bottom().left();
t.button("@command.queue", Icon.rightOpen, Styles.clearTogglet, () -> {
@@ -299,7 +300,14 @@ public class MobileInput extends InputHandler implements GestureListener{
t.button("@command", Icon.units, Styles.clearTogglet, () -> {
commandMode = !commandMode;
- }).width(155f).height(48f).margin(12f).checked(b -> commandMode);
+ if(commandMode){
+ block = null;
+ rebuildMode = false;
+ mode = none;
+ }
+ }).width(155f).height(48f).margin(12f).checked(b -> commandMode).row();
+
+ t.spacerY(() -> showCancel() ? 50f : 0f).row();
//for better looking insets
t.rect((x, y, w, h) -> {
@@ -516,7 +524,7 @@ public class MobileInput extends InputHandler implements GestureListener{
if(cursor == null || Core.scene.hasMouse(screenX, screenY)) return false;
//only begin selecting if the tapped block is a plan
- selecting = hasPlan(cursor);
+ selecting = hasPlan(cursor) && !commandMode;
//call tap events
if(pointer == 0 && !selecting){
@@ -575,7 +583,7 @@ public class MobileInput extends InputHandler implements GestureListener{
}else if(mode == rebuildSelect){
rebuildArea(lineStartX, lineStartY, lastLineX, lastLineY);
mode = none;
- }else{
+ }else if(!player.dead()){
Tile tile = tileAt(screenX, screenY);
tryDropItems(tile == null ? null : tile.build, Core.input.mouseWorld(screenX, screenY).x, Core.input.mouseWorld(screenX, screenY).y);
@@ -678,7 +686,7 @@ public class MobileInput extends InputHandler implements GestureListener{
}
//remove if plan present
- if(hasPlan(cursor)){
+ if(hasPlan(cursor) && !commandMode){
removePlan(getPlan(cursor));
}else if(mode == placing && isPlacing() && validPlace(cursor.x, cursor.y, block, rotation) && !checkOverlapPlacement(cursor.x, cursor.y, block)){
//add to selection queue if it's a valid place position
@@ -699,7 +707,7 @@ public class MobileInput extends InputHandler implements GestureListener{
payloadTarget = null;
//control a unit/block detected on first tap of double-tap
- if(unitTapped != null && state.rules.possessionAllowed && unitTapped.isAI() && unitTapped.team == player.team() && !unitTapped.dead && unitTapped.type.playerControllable){
+ if(unitTapped != null && state.rules.possessionAllowed && unitTapped.isAI() && unitTapped.team == player.team() && !unitTapped.dead && unitTapped.playerControllable()){
Call.unitControl(player, unitTapped);
recentRespawnTimer = 1f;
}else if(buildingTapped != null && state.rules.possessionAllowed){
@@ -757,12 +765,12 @@ public class MobileInput extends InputHandler implements GestureListener{
payloadTarget = null;
}
- if(locked || block != null || scene.hasField() || hasSchematic() || selectPlans.size > 0){
+ if(locked || block != null || scene.hasField() || hasSchematic()){
commandMode = false;
}
//validate commanding units
- selectedUnits.removeAll(u -> !u.isCommandable() || !u.isValid());
+ selectedUnits.removeAll(u -> !u.isCommandable() || !u.isValid() || u.team != player.team());
if(!commandMode){
commandBuildings.clear();
diff --git a/core/src/mindustry/input/Placement.java b/core/src/mindustry/input/Placement.java
index 5274692aaa..f50f33d9db 100644
--- a/core/src/mindustry/input/Placement.java
+++ b/core/src/mindustry/input/Placement.java
@@ -129,10 +129,10 @@ public class Placement{
}
public static void calculateBridges(Seq plans, ItemBridge bridge){
- calculateBridges(plans, bridge, t -> false);
+ calculateBridges(plans, bridge, false, t -> false);
}
- public static void calculateBridges(Seq plans, ItemBridge bridge, Boolf avoid){
+ public static void calculateBridges(Seq plans, ItemBridge bridge, boolean hasJunction, Boolf avoid){
if(isSidePlace(plans) || plans.size == 0) return;
//check for orthogonal placement + unlocked state
@@ -170,7 +170,7 @@ public class Placement{
continue outer;
}else if(placeable.get(other)){
- if(wereSame){
+ if(wereSame && hasJunction){
//the gap is fake, it's just conveyors that can be replaced with junctions
i ++;
continue outer;
diff --git a/core/src/mindustry/io/JsonIO.java b/core/src/mindustry/io/JsonIO.java
index 34957d1443..9906aa2655 100644
--- a/core/src/mindustry/io/JsonIO.java
+++ b/core/src/mindustry/io/JsonIO.java
@@ -308,6 +308,7 @@ public class JsonIO{
}
exec.all.add(obj);
+ obj.validate();
}
// Second iteration to map the parents.
diff --git a/core/src/mindustry/io/SaveVersion.java b/core/src/mindustry/io/SaveVersion.java
index 71b7f72d72..2b5915156f 100644
--- a/core/src/mindustry/io/SaveVersion.java
+++ b/core/src/mindustry/io/SaveVersion.java
@@ -368,7 +368,7 @@ public abstract class SaveVersion extends SaveFileReader{
stream.writeShort(block.x);
stream.writeShort(block.y);
stream.writeShort(block.rotation);
- stream.writeShort(block.block);
+ stream.writeShort(block.block.id);
TypeIO.writeObject(Writes.get(stream), block.config);
}
}
@@ -382,6 +382,7 @@ public abstract class SaveVersion extends SaveFileReader{
writeChunk(stream, true, out -> {
out.writeByte(entity.classId());
out.writeInt(entity.id());
+ entity.beforeWrite();
entity.write(Writes.get(out));
});
}
@@ -426,7 +427,7 @@ public abstract class SaveVersion extends SaveFileReader{
var obj = TypeIO.readObject(reads);
//cannot have two in the same position
if(set.add(Point2.pack(x, y))){
- data.plans.addLast(new BlockPlan(x, y, rot, content.block(bid).id, obj));
+ data.plans.addLast(new BlockPlan(x, y, rot, content.block(bid), obj));
}
}
}
@@ -436,8 +437,6 @@ public abstract class SaveVersion extends SaveFileReader{
//entityMapping is null in older save versions, so use the default
var mapping = this.entityMapping == null ? EntityMapping.idMap : this.entityMapping;
- Seq entities = new Seq<>();
-
int amount = stream.readInt();
for(int j = 0; j < amount; j++){
readChunk(stream, true, in -> {
@@ -450,7 +449,6 @@ public abstract class SaveVersion extends SaveFileReader{
int id = in.readInt();
Entityc entity = (Entityc)mapping[typeid].get();
- entities.add(entity);
EntityGroup.checkNextId(id);
entity.id(id);
entity.read(Reads.get(in));
@@ -458,9 +456,7 @@ public abstract class SaveVersion extends SaveFileReader{
});
}
- for(var e : entities){
- e.afterAllRead();
- }
+ Groups.all.each(Entityc::afterReadAll);
}
public void readEntityMapping(DataInput stream) throws IOException{
diff --git a/core/src/mindustry/io/TypeIO.java b/core/src/mindustry/io/TypeIO.java
index 5be1d54403..70f28cae9d 100644
--- a/core/src/mindustry/io/TypeIO.java
+++ b/core/src/mindustry/io/TypeIO.java
@@ -955,6 +955,7 @@ public class TypeIO{
public static void writeTraceInfo(Writes write, TraceInfo trace){
writeString(write, trace.ip);
writeString(write, trace.uuid);
+ writeString(write, trace.locale);
write.b(trace.modded ? (byte)1 : 0);
write.b(trace.mobile ? (byte)1 : 0);
write.i(trace.timesJoined);
@@ -965,7 +966,7 @@ public class TypeIO{
}
public static TraceInfo readTraceInfo(Reads read){
- return new TraceInfo(readString(read), readString(read), read.b() == 1, read.b() == 1, read.i(), read.i(), readStrings(read), readStrings(read));
+ return new TraceInfo(readString(read), readString(read), readString(read), read.b() == 1, read.b() == 1, read.i(), read.i(), readStrings(read), readStrings(read));
}
public static void writeStrings(Writes write, String[] strings, int maxLen){
diff --git a/core/src/mindustry/io/versions/Save3.java b/core/src/mindustry/io/versions/Save3.java
index 51cd8bf4aa..6eff300d88 100644
--- a/core/src/mindustry/io/versions/Save3.java
+++ b/core/src/mindustry/io/versions/Save3.java
@@ -21,7 +21,7 @@ public class Save3 extends LegacySaveVersion{
TeamData data = team.data();
int blocks = stream.readInt();
for(int j = 0; j < blocks; j++){
- data.plans.addLast(new BlockPlan(stream.readShort(), stream.readShort(), stream.readShort(), content.block(stream.readShort()).id, stream.readInt()));
+ data.plans.addLast(new BlockPlan(stream.readShort(), stream.readShort(), stream.readShort(), content.block(stream.readShort()), stream.readInt()));
}
}
diff --git a/core/src/mindustry/logic/GlobalVars.java b/core/src/mindustry/logic/GlobalVars.java
index 4832be2ce8..8ad79b5c0f 100644
--- a/core/src/mindustry/logic/GlobalVars.java
+++ b/core/src/mindustry/logic/GlobalVars.java
@@ -22,7 +22,8 @@ import static mindustry.Vars.*;
/** Stores global logic variables for logic processors. */
public class GlobalVars{
public static final int ctrlProcessor = 1, ctrlPlayer = 2, ctrlCommand = 3;
- public static final ContentType[] lookableContent = {ContentType.block, ContentType.unit, ContentType.item, ContentType.liquid};
+ public static final ContentType[] lookableContent = {ContentType.block, ContentType.unit, ContentType.item, ContentType.liquid, ContentType.team};
+ public static final ContentType[] writableLookableContent = {ContentType.block, ContentType.unit, ContentType.item, ContentType.liquid};
/** Global random state. */
public static final Rand rand = new Rand();
@@ -34,9 +35,9 @@ public class GlobalVars{
private ObjectSet privilegedNames = new ObjectSet<>();
private UnlockableContent[][] logicIdToContent;
private int[][] contentIdToLogicId;
-
+
public static final Seq soundNames = new Seq<>();
-
+
public void init(){
putEntryOnly("sectionProcessor");
@@ -73,7 +74,7 @@ public class GlobalVars{
varMapW = putEntry("@mapw", 0);
varMapH = putEntry("@maph", 0);
- varWait = putEntry("@wait", null);
+ varWait = put("@wait", null, true, true);
putEntryOnly("sectionNetwork");
@@ -91,7 +92,7 @@ public class GlobalVars{
put("@ctrlProcessor", ctrlProcessor);
put("@ctrlPlayer", ctrlPlayer);
put("@ctrlCommand", ctrlCommand);
-
+
//sounds
if(Core.assets != null){
for(Sound sound : Core.assets.getAll(Sound.class, new Seq<>(Sound.class))){
@@ -155,7 +156,7 @@ public class GlobalVars{
if(ids.exists()){
//read logic ID mapping data (generated in ImagePacker)
try(DataInputStream in = new DataInputStream(ids.readByteStream())){
- for(ContentType ctype : lookableContent){
+ for(ContentType ctype : writableLookableContent){
short amount = in.readShort();
logicIdToContent[ctype.ordinal()] = new UnlockableContent[amount];
contentIdToLogicId[ctype.ordinal()] = new int[Vars.content.getBy(ctype).size];
@@ -203,7 +204,7 @@ public class GlobalVars{
varClient.numval = net.client() ? 1 : 0;
//client
- if(!net.server() && player != null){
+ if(player != null){
varClientLocale.objval = player.locale();
varClientUnit.objval = player.unit();
varClientName.objval = player.name();
@@ -220,8 +221,13 @@ public class GlobalVars{
return varEntries;
}
- /** @return a piece of content based on its logic ID. This is not equivalent to content ID. */
- public @Nullable Content lookupContent(ContentType type, int id){
+ /** @return a piece of content based on its logic ID. This is not equivalent to content ID. In the case of teams, the return value may not be Content. */
+ public @Nullable Object lookupContent(ContentType type, int id){
+ //teams are a special case; they are not technically content, but can be looked up
+ if(type == ContentType.team){
+ return id >= 0 && id < 256 ? Team.all[id] : null;
+ }
+
var arr = logicIdToContent[type.ordinal()];
return arr != null && id >= 0 && id < arr.length ? arr[id] : null;
}
diff --git a/core/src/mindustry/logic/LAccess.java b/core/src/mindustry/logic/LAccess.java
index a4d242e27c..146ed91de1 100644
--- a/core/src/mindustry/logic/LAccess.java
+++ b/core/src/mindustry/logic/LAccess.java
@@ -18,6 +18,7 @@ public enum LAccess{
ammo,
ammoCapacity,
currentAmmoType,
+ memoryCapacity,
health,
maxHealth,
heat,
@@ -55,6 +56,8 @@ public enum LAccess{
name,
payloadCount,
payloadType,
+ totalPayload,
+ payloadCapacity,
id,
//values with parameters are considered controllable
diff --git a/core/src/mindustry/logic/LAssembler.java b/core/src/mindustry/logic/LAssembler.java
index 847e409100..4995bb7e89 100644
--- a/core/src/mindustry/logic/LAssembler.java
+++ b/core/src/mindustry/logic/LAssembler.java
@@ -11,7 +11,8 @@ import mindustry.logic.LExecutor.*;
public class LAssembler{
public static ObjectMap> customParsers = new ObjectMap<>();
- private static final int invalidNum = Integer.MIN_VALUE;
+ private static final int invalidNumNegative = Integer.MIN_VALUE;
+ private static final int invalidNumPositive = Integer.MAX_VALUE;
private boolean privileged;
/** Maps names to variable. */
@@ -34,7 +35,7 @@ public class LAssembler{
Seq st = read(data, privileged);
asm.privileged = privileged;
-
+
asm.instructions = st.map(l -> l.build(asm)).retainAll(l -> l != null).toArray(LInstruction.class);
return asm;
}
@@ -72,9 +73,11 @@ public class LAssembler{
//remove spaces for non-strings
symbol = symbol.replace(' ', '_');
- double value = parseDouble(symbol);
+ //use a positive invalid number if number might be negative, else use a negative invalid number
+ int usedInvalidNum = symbol.length() > 0 && symbol.charAt(0) == '-' ? invalidNumPositive : invalidNumNegative;
+ double value = parseDouble(symbol, usedInvalidNum);
- if(value == invalidNum){
+ if(value == usedInvalidNum){
return putVar(symbol);
}else{
//this creates a hidden const variable with the specified value
@@ -82,10 +85,14 @@ public class LAssembler{
}
}
- double parseDouble(String symbol){
+ double parseDouble(String symbol, int invalidNum){
//parse hex/binary syntax
if(symbol.startsWith("0b")) return Strings.parseLong(symbol, 2, 2, symbol.length(), invalidNum);
+ if(symbol.startsWith("+0b")) return Strings.parseLong(symbol, 2, 3, symbol.length(), invalidNum);
+ if(symbol.startsWith("-0b")) return -Strings.parseLong(symbol, 2, 3, symbol.length(), invalidNum);//FIXME: breaks with Long.MIN_VALUE
if(symbol.startsWith("0x")) return Strings.parseLong(symbol, 16, 2, symbol.length(), invalidNum);
+ if(symbol.startsWith("+0x")) return Strings.parseLong(symbol, 16, 3, symbol.length(), invalidNum);
+ if(symbol.startsWith("-0x")) return -Strings.parseLong(symbol, 16, 3, symbol.length(), invalidNum);//FIXME: breaks with Long.MIN_VALUE
if(symbol.startsWith("%") && (symbol.length() == 7 || symbol.length() == 9)) return parseColor(symbol);
return Strings.parseDouble(symbol, invalidNum);
diff --git a/core/src/mindustry/logic/LCanvas.java b/core/src/mindustry/logic/LCanvas.java
index b78908ef6f..2bfd96ac4b 100644
--- a/core/src/mindustry/logic/LCanvas.java
+++ b/core/src/mindustry/logic/LCanvas.java
@@ -20,18 +20,21 @@ import mindustry.logic.LStatements.*;
import mindustry.ui.*;
public class LCanvas extends Table{
- public static final int maxJumpsDrawn = 100;
+ private static final Seq tmpOccupiers1 = new Seq<>();
+ private static final Seq tmpOccupiers2 = new Seq<>();
+ private static final Bits tmpBits1 = new Bits();
+ private static final Bits tmpBits2 = new Bits();
+ private static final int invalidJump = Integer.MAX_VALUE; // terrible hack
//ew static variables
static LCanvas canvas;
+ private static final boolean dynamicJumpHeights = true;
public DragLayout statements;
public ScrollPane pane;
- public Group jumps;
StatementElem dragging;
StatementElem hovered;
float targetWidth;
- int jumpCount = 0;
boolean privileged;
Seq tooltips = new Seq<>();
@@ -106,14 +109,15 @@ public class LCanvas extends Table{
clear();
statements = new DragLayout();
- jumps = new WidgetGroup();
pane = pane(t -> {
t.center();
t.add(statements).pad(2f).center().width(targetWidth);
- t.addChild(jumps);
+ t.addChild(statements.jumps);
- jumps.cullable = false;
+ statements.jumps.touchable = Touchable.disabled;
+ statements.jumps.update(() -> statements.jumps.setCullingArea(t.getCullingArea()));
+ statements.jumps.cullable = false;
}).grow().get();
pane.setFlickScroll(false);
pane.setScrollYForce(s);
@@ -123,12 +127,6 @@ public class LCanvas extends Table{
}
}
- @Override
- public void draw(){
- jumpCount = 0;
- super.draw();
- }
-
public void add(LStatement statement){
statements.addChild(new StatementElem(statement));
}
@@ -141,7 +139,7 @@ public class LCanvas extends Table{
}
public void load(String asm){
- jumps.clear();
+ statements.jumps.clear();
Seq statements = LAssembler.read(asm, privileged);
statements.truncate(LExecutor.maxInstructions);
@@ -154,13 +152,12 @@ public class LCanvas extends Table{
st.setupUI();
}
- this.statements.layout();
+ this.statements.updateJumpHeights = true;
}
public void clearStatements(){
- jumps.clear();
+ statements.jumps.clear();
statements.clearChildren();
- statements.layout();
}
StatementElem checkHovered(){
@@ -195,6 +192,11 @@ public class LCanvas extends Table{
Seq seq = new Seq<>();
int insertPosition = 0;
boolean invalidated;
+ public Group jumps = new WidgetGroup();
+ private Seq processedJumps = new Seq<>();
+ private IntMap reprBefore = new IntMap<>();
+ private IntMap reprAfter = new IntMap<>();
+ public boolean updateJumpHeights = true;
{
setTransform(true);
@@ -206,10 +208,12 @@ public class LCanvas extends Table{
float cy = 0;
seq.clear();
- float totalHeight = getChildren().sumf(e -> e.getHeight() + space);
-
- height = prefHeight = totalHeight;
- width = prefWidth = Scl.scl(targetWidth);
+ float totalHeight = getChildren().sumf(e -> e.getPrefHeight() + space);
+ if(height != totalHeight || width != Scl.scl(targetWidth)){
+ height = prefHeight = totalHeight;
+ width = prefWidth = Scl.scl(targetWidth);
+ invalidateHierarchy();
+ }
//layout everything normally
for(int i = 0; i < getChildren().size; i++){
@@ -219,7 +223,7 @@ public class LCanvas extends Table{
if(dragging == e) continue;
e.setSize(width, e.getPrefHeight());
- e.setPosition(0, height - cy, Align.topLeft);
+ e.setPosition(0, totalHeight - cy, Align.topLeft);
((StatementElem)e).updateAddress(i);
cy += e.getPrefHeight() + space;
@@ -250,13 +254,97 @@ public class LCanvas extends Table{
}
}
- if(parent != null) parent.invalidateHierarchy();
+ if(dynamicJumpHeights){
+ if(updateJumpHeights) setJumpHeights();
+ updateJumpHeights = false;
+ }
if(parent != null && parent instanceof Table){
setCullingArea(parent.getCullingArea());
}
}
+ private void setJumpHeights(){
+ SnapshotSeq jumpsChildren = jumps.getChildren();
+ processedJumps.clear();
+ reprBefore.clear();
+ reprAfter.clear();
+ jumpsChildren.each(e -> {
+ if(!(e instanceof JumpCurve e2)) return;
+ e2.prepareHeight();
+ if(e2.jumpUIBegin == invalidJump) return;
+ if(e2.flipped){
+ JumpCurve prev = reprAfter.get(e2.jumpUIBegin);
+ if(prev != null && prev.jumpUIEnd >= e2.jumpUIEnd) return;
+ reprAfter.put(e2.jumpUIBegin, e2);
+ }else{
+ JumpCurve prev = reprBefore.get(e2.jumpUIEnd);
+ if(prev != null && prev.jumpUIBegin <= e2.jumpUIBegin) return;
+ reprBefore.put(e2.jumpUIEnd, e2);
+ }
+ });
+ processedJumps.add(reprBefore.values().toArray());
+ processedJumps.add(reprAfter.values().toArray());
+ processedJumps.sort((a, b) -> a.jumpUIBegin - b.jumpUIBegin);
+
+ Seq occupiers = tmpOccupiers1;
+ Bits occupied = tmpBits1;
+ occupiers.clear();
+ occupied.clear();
+ for(int i = 0; i < processedJumps.size; i++){
+ JumpCurve cur = processedJumps.get(i);
+ occupiers.retainAll(e -> {
+ if(e.jumpUIEnd > cur.jumpUIBegin) return true;
+ occupied.clear(e.predHeight);
+ return false;
+ });
+ int h = getJumpHeight(i, occupiers, occupied);
+ occupiers.add(cur);
+ occupied.set(h);
+ }
+
+ occupiers.clear();
+
+ jumpsChildren.each(e -> {
+ if(!(e instanceof JumpCurve e2)) return;
+ if(e2.jumpUIBegin == invalidJump) return;
+ e2.predHeight = e2.flipped ? reprAfter.get(e2.jumpUIBegin).predHeight : reprBefore.get(e2.jumpUIEnd).predHeight;
+ e2.markedDone = true;
+ });
+ }
+
+ private int getJumpHeight(int index, Seq occupiers, Bits occupied){
+ JumpCurve jmp = processedJumps.get(index);
+ if(jmp.markedDone) return jmp.predHeight;
+
+ Seq tmpOccupiers = tmpOccupiers2;
+ Bits tmpOccupied = tmpBits2;
+ tmpOccupiers.set(occupiers);
+ tmpOccupied.set(occupied);
+
+ int max = -1;
+ for(int i = index + 1; i < processedJumps.size; i++){
+ JumpCurve cur = processedJumps.get(i);
+ if(cur.jumpUIEnd > jmp.jumpUIEnd) continue;
+ tmpOccupiers.retainAll(e -> {
+ if(e.jumpUIEnd > cur.jumpUIBegin) return true;
+ tmpOccupied.clear(e.predHeight);
+ return false;
+ });
+ int h = getJumpHeight(i, tmpOccupiers, tmpOccupied);
+ tmpOccupiers.add(cur);
+ tmpOccupied.set(h);
+ max = Math.max(max, h);
+ }
+
+ jmp.predHeight = occupied.nextClearBit(max + 1);
+ jmp.markedDone = true;
+
+ tmpOccupiers.clear();
+
+ return jmp.predHeight;
+ }
+
@Override
public float getPrefWidth(){
return prefWidth;
@@ -312,9 +400,10 @@ public class LCanvas extends Table{
}
dragging = null;
+ invalidateHierarchy();
}
- layout();
+ updateJumpHeights = true;
}
}
@@ -350,7 +439,7 @@ public class LCanvas extends Table{
t.button(Icon.cancel, Styles.logici, () -> {
remove();
dragging = null;
- statements.layout();
+ statements.updateJumpHeights = true;
}).size(24f);
t.addListener(new InputListener(){
@@ -369,7 +458,8 @@ public class LCanvas extends Table{
lasty = v.y;
dragging = StatementElem.this;
toFront();
- statements.layout();
+ statements.updateJumpHeights = true;
+ statements.invalidate();
return true;
}
@@ -381,7 +471,7 @@ public class LCanvas extends Table{
lastx = v.x;
lasty = v.y;
- statements.layout();
+ statements.invalidate();
}
@Override
@@ -423,9 +513,9 @@ public class LCanvas extends Table{
StatementElem s = new StatementElem(copy);
statements.addChildAfter(StatementElem.this, s);
- statements.layout();
copy.elem = s;
copy.setupUI();
+ statements.updateJumpHeights = true;
}
}
@@ -444,19 +534,20 @@ public class LCanvas extends Table{
public static class JumpButton extends ImageButton{
Color hoverColor = Pal.place;
- Color defaultColor = Color.white;
Prov to;
boolean selecting;
float mx, my;
ClickListener listener;
public JumpCurve curve;
+ public StatementElem elem;
- public JumpButton(Prov getter, Cons setter){
+ public JumpButton(Prov getter, Cons setter, StatementElem elem){
super(Tex.logicNode, new ImageButtonStyle(){{
imageUpColor = Color.white;
}});
+ this.elem = elem;
to = getter;
addListener(listener = new ClickListener());
@@ -467,6 +558,7 @@ public class LCanvas extends Table{
setter.get(null);
mx = x;
my = y;
+ canvas.statements.updateJumpHeights = true;
return true;
}
@@ -487,6 +579,7 @@ public class LCanvas extends Table{
setter.get(null);
}
selecting = false;
+ canvas.statements.updateJumpHeights = true;
}
});
@@ -495,7 +588,7 @@ public class LCanvas extends Table{
setter.get(null);
}
- setColor(listener.isOver() ? hoverColor : defaultColor);
+ setColor(listener.isOver() ? hoverColor : Color.white);
getStyle().imageUpColor = this.color;
});
@@ -509,22 +602,58 @@ public class LCanvas extends Table{
if(stage == null){
curve.remove();
}else{
- canvas.jumps.addChild(curve);
+ canvas.statements.jumps.addChild(curve);
}
}
}
public static class JumpCurve extends Element{
public JumpButton button;
+ private boolean invertedHeight;
+
+ // for jump prediction; see DragLayout
+ public int predHeight = 0;
+ public boolean markedDone = false;
+ public int jumpUIBegin = 0, jumpUIEnd = 0;
+ public boolean flipped = false;
+
+ private float uiHeight = 60f;
public JumpCurve(JumpButton button){
this.button = button;
}
+ @Override
+ public void setSize(float width, float height){
+ if(height < 0){
+ y += height;
+ height = -height;
+ invertedHeight = true;
+ }
+ super.setSize(width, height);
+ }
+
@Override
public void act(float delta){
super.act(delta);
+ //MDTX(WayZer, 2024/8/6) Support Cull
+ invertedHeight = false;
+ Group desc = canvas.statements.jumps.parent;
+ Vec2 t = Tmp.v1.set(button.getWidth() / 2f, button.getHeight() / 2f);
+ button.localToAscendantCoordinates(desc, t);
+ setPosition(t.x, t.y);
+ Element hover = button.to.get() == null && button.selecting ? canvas.hovered : button.to.get();
+ if(hover != null){
+ t.set(hover.getWidth(), hover.getHeight() / 2f);
+ hover.localToAscendantCoordinates(desc, t);
+ setSize(t.x - x, t.y - y);
+ }else if(button.selecting){
+ setSize(button.mx, button.my);
+ }else{
+ setSize(0, 0);
+ }
+
if(button.listener.isOver()){
toFront();
}
@@ -532,71 +661,66 @@ public class LCanvas extends Table{
@Override
public void draw(){
- canvas.jumpCount ++;
-
- if(canvas.jumpCount > maxJumpsDrawn && !button.selecting && !button.listener.isOver()){
- return;
- }
-
- Element hover = button.to.get() == null && button.selecting ? canvas.hovered : button.to.get();
- boolean draw = false;
- Vec2 t = Tmp.v1, r = Tmp.v2;
+ if(height == 0) return;
+ Vec2 t = Tmp.v1.set(width, !invertedHeight ? height : 0), r = Tmp.v2.set(0, !invertedHeight ? 0 : height);
Group desc = canvas.pane;
+ localToAscendantCoordinates(desc, r);
+ localToAscendantCoordinates(desc, t);
- button.localToAscendantCoordinates(desc, r.set(0, 0));
+ drawCurve(r.x, r.y, t.x, t.y);
- if(hover != null){
- hover.localToAscendantCoordinates(desc, t.set(hover.getWidth(), hover.getHeight()/2f));
-
- draw = true;
- }else if(button.selecting){
- t.set(r).add(button.mx, button.my);
- draw = true;
- }
-
- float offset = canvas.pane.getVisualScrollY() - canvas.pane.getMaxY();
-
- t.y += offset;
- r.y += offset;
-
- if(draw){
- drawCurve(r.x + button.getWidth()/2f, r.y + button.getHeight()/2f, t.x, t.y);
-
- float s = button.getWidth();
- Draw.color(button.color);
- Tex.logicNode.draw(t.x + s*0.75f, t.y - s/2f, -s, s);
- Draw.reset();
- }
+ float s = button.getWidth();
+ Draw.color(button.color, parentAlpha);
+ Tex.logicNode.draw(t.x + s * 0.75f, t.y - s / 2f, -s, s);
+ Draw.reset();
}
public void drawCurve(float x, float y, float x2, float y2){
- Lines.stroke(4f, button.color);
+ Lines.stroke(Scl.scl(4f), button.color);
Draw.alpha(parentAlpha);
- float dist = 100f;
-
- //square jumps
- if(false){
- float len = Scl.scl(Mathf.randomSeed(hashCode(), 10, 50));
-
- float maxX = Math.max(x, x2) + len;
+ // exponential smoothing
+ uiHeight = Mathf.lerp(
+ Scl.scl(Core.graphics.isPortrait() ? 20f : 40f) + Scl.scl(Core.graphics.isPortrait() ? 8f : 10f) * (float) predHeight,
+ uiHeight,
+ dynamicJumpHeights ? Mathf.pow(0.9f, Time.delta) : 0
+ );
+ //trapezoidal jumps
+ float dy = (y2 == y ? 0f : y2 > y ? 1f : -1f) * uiHeight * 0.5f;
+ //there's absolutely a better way to detect invalid trapezoids, but this probably isn't *that* slow and I don't care to fix it right now
+ if(Intersector.intersectSegments(x, y, x + uiHeight, y + dy, x2, y2, x + uiHeight, y2 - dy, Tmp.v3)){
Lines.beginLine();
Lines.linePoint(x, y);
- Lines.linePoint(maxX, y);
- Lines.linePoint(maxX, y2);
+ Lines.linePoint(Tmp.v3.x, Tmp.v3.y);
+ Lines.linePoint(x2, y2);
+ Lines.endLine();
+ }else{
+ Lines.beginLine();
+ Lines.linePoint(x, y);
+ Lines.linePoint(x + uiHeight, y + dy);
+ Lines.linePoint(x + uiHeight, y2 - dy);
Lines.linePoint(x2, y2);
Lines.endLine();
- return;
}
+ }
- Lines.curve(
- x, y,
- x + dist, y,
- x2 + dist, y2,
- x2, y2,
- Math.max(18, (int)(Mathf.dst(x, y, x2, y2) / 6)));
+ public void prepareHeight(){
+ if(this.button.to.get() == null){
+ this.markedDone = true;
+ this.predHeight = 0;
+ this.flipped = false;
+ this.jumpUIBegin = this.jumpUIEnd = invalidJump;
+ }else{
+ this.markedDone = false;
+ int i = this.button.elem.index;
+ int j = this.button.to.get().index;
+ this.flipped = i >= j;
+ this.jumpUIBegin = Math.min(i,j);
+ this.jumpUIEnd = Math.max(i,j);
+ // height will be recalculated later
+ }
}
}
}
diff --git a/core/src/mindustry/logic/LExecutor.java b/core/src/mindustry/logic/LExecutor.java
index 393fb6edfe..4178bd0055 100644
--- a/core/src/mindustry/logic/LExecutor.java
+++ b/core/src/mindustry/logic/LExecutor.java
@@ -61,6 +61,8 @@ public class LExecutor{
//yes, this is a minor memory leak, but it's probably not significant enough to matter
protected static IntFloatMap unitTimeouts = new IntFloatMap();
+ //lookup variable by name, lazy init.
+ protected @Nullable ObjectIntMap nameMap;
static{
Events.on(ResetEvent.class, e -> unitTimeouts.clear());
@@ -92,6 +94,7 @@ public class LExecutor{
/** Loads with a specified assembler. Resets all variables. */
public void load(LAssembler builder){
+ nameMap = null;
vars = builder.vars.values().toSeq().retainAll(var -> !var.constant).toArray(LVar.class);
for(int i = 0; i < vars.length; i++){
vars[i].id = i;
@@ -106,6 +109,17 @@ public class LExecutor{
//region utility
+
+ public @Nullable LVar optionalVar(String name){
+ if(nameMap == null){
+ nameMap = new ObjectIntMap<>();
+ for(int i = 0; i < vars.length; i++){
+ nameMap.put(vars[i].name, i);
+ }
+ }
+ return optionalVar(nameMap.get(name, -1));
+ }
+
/** @return a Var from this processor. May be null if out of bounds. */
public @Nullable LVar optionalVar(int index){
return index < 0 || index >= vars.length ? null : vars[index];
@@ -557,6 +571,15 @@ public class LExecutor{
if(from instanceof MemoryBuild mem && (exec.privileged || (from.team == exec.team && !mem.block.privileged))){
output.setnum(address < 0 || address >= mem.memory.length ? 0 : mem.memory[address]);
+ }else if(from instanceof LogicBuild logic && (exec.privileged || (from.team == exec.team && !from.block.privileged)) && position.isobj && position.objval instanceof String name){
+ LVar fromVar = logic.executor.optionalVar(name);
+ if(fromVar != null && !output.constant){
+ output.objval = fromVar.objval;
+ output.numval = fromVar.numval;
+ output.isobj = fromVar.isobj;
+ }
+ }else if(target.isobj && target.objval instanceof CharSequence str){
+ output.setnum(address < 0 || address >= str.length() ? Double.NaN : (int)str.charAt(address));
}
}
}
@@ -580,6 +603,13 @@ public class LExecutor{
if(from instanceof MemoryBuild mem && (exec.privileged || (from.team == exec.team && !mem.block.privileged)) && address >= 0 && address < mem.memory.length){
mem.memory[address] = value.num();
+ }else if(from instanceof LogicBuild logic && (exec.privileged || (from.team == exec.team && !from.block.privileged)) && position.isobj && position.objval instanceof String name){
+ LVar toVar = logic.executor.optionalVar(name);
+ if(toVar != null && !toVar.constant){
+ toVar.objval = value.objval;
+ toVar.numval = value.numval;
+ toVar.isobj = value.isobj;
+ }
}
}
}
@@ -622,6 +652,10 @@ public class LExecutor{
}
}
}else{
+ if(target instanceof CharSequence seq && sense == LAccess.size){
+ to.setnum(seq.length());
+ return;
+ }
to.setobj(null);
}
}
@@ -984,6 +1018,29 @@ public class LExecutor{
}
}
+ public static class PrintCharI implements LInstruction{
+ public LVar value;
+
+ public PrintCharI(LVar value){
+ this.value = value;
+ }
+
+ PrintCharI(){}
+
+ @Override
+ public void run(LExecutor exec){
+
+ if(exec.textBuffer.length() >= maxTextBuffer) return;
+ if(value.isobj){
+ if(!(value.objval instanceof UnlockableContent cont)) return;
+ exec.textBuffer.append((char)cont.emojiChar());
+ return;
+ }
+
+ exec.textBuffer.append((char)Math.floor(value.numval));
+ }
+ }
+
public static class FormatI implements LInstruction{
public LVar value;
@@ -1376,10 +1433,10 @@ public class LExecutor{
Team t = team.team();
- if(type.obj() instanceof UnitType type && !type.internal && !type.hidden && t != null && Units.canCreate(t, type)){
+ if(t != null && type.obj() instanceof UnitType type && !type.internal && Units.canCreate(t, type)){
//random offset to prevent stacking
var unit = type.spawn(t, World.unconv(x.numf()) + Mathf.range(0.01f), World.unconv(y.numf()) + Mathf.range(0.01f));
- spawner.spawnEffect(unit, rotation.numf());
+ spawner.spawnEffect(unit);
result.setobj(unit);
}
}
@@ -1485,6 +1542,7 @@ public class LExecutor{
case dropZoneRadius -> state.rules.dropZoneRadius = value.numf() * 8f;
case unitCap -> state.rules.unitCap = Math.max(value.numi(), 0);
case lighting -> state.rules.lighting = value.bool();
+ case canGameOver -> state.rules.canGameOver = value.bool();
case mapArea -> {
int x = p1.numi(), y = p2.numi(), w = p3.numi(), h = p4.numi();
if(!checkMapArea(x, y, w, h, false)){
@@ -1511,7 +1569,7 @@ public class LExecutor{
state.rules.bannedUnits.remove(u);
}
}
- case unitHealth, unitBuildSpeed, unitCost, unitDamage, blockHealth, blockDamage, buildSpeed, rtsMinSquad, rtsMinWeight -> {
+ case unitHealth, unitBuildSpeed, unitMineSpeed, unitCost, unitDamage, blockHealth, blockDamage, buildSpeed, rtsMinSquad, rtsMinWeight -> {
Team team = p1.team();
if(team != null){
float num = value.numf();
@@ -1519,6 +1577,7 @@ public class LExecutor{
case buildSpeed -> team.rules().buildSpeedMultiplier = Mathf.clamp(num, 0.001f, 50f);
case unitHealth -> team.rules().unitHealthMultiplier = Math.max(num, 0.001f);
case unitBuildSpeed -> team.rules().unitBuildSpeedMultiplier = Mathf.clamp(num, 0f, 50f);
+ case unitMineSpeed -> team.rules().unitMineSpeedMultiplier = Math.max(num, 0f);
case unitCost -> team.rules().unitCostMultiplier = Math.max(num, 0f);
case unitDamage -> team.rules().unitDamageMultiplier = Math.max(num, 0f);
case blockHealth -> team.rules().blockHealthMultiplier = Math.max(num, 0.001f);
@@ -1546,11 +1605,12 @@ public class LExecutor{
}else if(full){
//disable the rule, covers the whole map
if(set){
+ int prevX = state.rules.limitX, prevY = state.rules.limitY, prevW = state.rules.limitWidth, prevH = state.rules.limitHeight;
state.rules.limitMapArea = false;
if(!headless){
renderer.updateAllDarkness();
}
- world.checkMapArea();
+ world.checkMapArea(prevX, prevY, prevW, prevH);
return false;
}
}
@@ -1559,12 +1619,20 @@ public class LExecutor{
}
if(set){
+ int prevX = state.rules.limitX, prevY = state.rules.limitY, prevW = state.rules.limitWidth, prevH = state.rules.limitHeight;
+ if(!state.rules.limitMapArea){
+ //it was never on in the first place, so the old bounds don't apply
+ prevW = 0;
+ prevH = 0;
+ prevX = -1;
+ prevY = -1;
+ }
state.rules.limitMapArea = true;
state.rules.limitX = x;
state.rules.limitY = y;
state.rules.limitWidth = w;
state.rules.limitHeight = h;
- world.checkMapArea();
+ world.checkMapArea(prevX, prevY, prevW, prevH);
if(!headless){
renderer.updateAllDarkness();
@@ -1876,9 +1944,7 @@ public class LExecutor{
for(int i = 0; i < spawned; i++){
Tmp.v1.rnd(spread);
- Unit unit = group.createUnit(state.rules.waveTeam, state.wave - 1);
- unit.set(spawnX + Tmp.v1.x, spawnY + Tmp.v1.y);
- Vars.spawner.spawnEffect(unit);
+ spawner.spawnUnit(group, spawnX + Tmp.v1.x, spawnY + Tmp.v1.y);
}
}
}
diff --git a/core/src/mindustry/logic/LParser.java b/core/src/mindustry/logic/LParser.java
index 6f65e9981f..25b7bc9ea1 100644
--- a/core/src/mindustry/logic/LParser.java
+++ b/core/src/mindustry/logic/LParser.java
@@ -152,7 +152,13 @@ public class LParser{
}else{
//attempt parsing using custom parser if a match is found; this is for mods
if(LAssembler.customParsers.containsKey(tokens[0])){
- statements.add(LAssembler.customParsers.get(tokens[0]).get(tokens));
+ var parsed = LAssembler.customParsers.get(tokens[0]).get(tokens);
+
+ if(!privileged && parsed != null && parsed.privileged()){
+ statements.add(new InvalidStatement());
+ }else{
+ statements.add(parsed);
+ }
}else{
//unparseable statement
statements.add(new InvalidStatement());
diff --git a/core/src/mindustry/logic/LStatements.java b/core/src/mindustry/logic/LStatements.java
index 11477feb1f..4a61bb70c0 100644
--- a/core/src/mindustry/logic/LStatements.java
+++ b/core/src/mindustry/logic/LStatements.java
@@ -19,6 +19,7 @@ import mindustry.logic.LExecutor.*;
import mindustry.logic.LogicFx.*;
import mindustry.type.*;
import mindustry.ui.*;
+import mindustry.world.*;
import mindustry.world.meta.*;
import static mindustry.Vars.*;
@@ -312,6 +313,46 @@ public class LStatements{
}
}
+ @RegisterStatement("printchar")
+ public static class PrintCharStatement extends LStatement{
+ public String value = "65";
+
+ @Override
+ public void build(Table table){
+ table.add(" char ");
+ TextField field = field(table, value, str -> value = str).get();
+ table.button(b -> {
+ b.image(Icon.pencilSmall);
+ b.clicked(() -> showSelectTable(b, (t, hide) -> {
+ t.row();
+ t.table(i -> {
+ i.left();
+ int c = 0;
+ for(char j = 32; j < 127; j++){
+ final int chr = j;
+ i.button(String.valueOf(j), Styles.flatt, () -> {
+ value = Integer.toString(chr);
+ field.setText(value);
+ hide.run();
+ }).size(32f);
+ if(++c % 8 == 0) i.row();
+ }
+ });
+ }));
+ }, Styles.logict, () -> {}).size(40f).padLeft(-2).color(table.color);
+ }
+
+ @Override
+ public LInstruction build(LAssembler builder){
+ return new PrintCharI(builder.var(value));
+ }
+
+ @Override
+ public LCategory category(){
+ return LCategory.io;
+ }
+ }
+
@RegisterStatement("format")
public static class FormatStatement extends LStatement{
public String value = "\"frog\"";
@@ -574,6 +615,29 @@ public class LStatements{
if(++c % 6 == 0) i.row();
}
}),
+ new Table(i -> {
+ i.left();
+ int c = 0;
+ for(UnitType item : Vars.content.units()){
+ if(!item.unlockedNow() || item.hidden) continue;
+ i.button(new TextureRegionDrawable(item.uiIcon), Styles.flati, iconSmall, () -> {
+ stype("@" + item.name);
+ hide.run();
+ }).size(40f);
+
+ if(++c % 6 == 0) i.row();
+ }
+
+ for(Block item : Vars.content.blocks()){
+ if(!item.unlockedNow() || item.isHidden()) continue;
+ i.button(new TextureRegionDrawable(item.uiIcon), Styles.flati, iconSmall, () -> {
+ stype("@" + item.name);
+ hide.run();
+ }).size(40f);
+
+ if(++c % 6 == 0) i.row();
+ }
+ }),
//sensors
new Table(i -> {
for(LAccess sensor : LAccess.senseable){
@@ -585,7 +649,7 @@ public class LStatements{
})
};
- Drawable[] icons = {Icon.box, Icon.liquid, Icon.tree};
+ Drawable[] icons = {Icon.box, Icon.liquid, Icon.units, Icon.tree};
Stack stack = new Stack(tables[selected]);
ButtonGroup