Compare commits
262 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8f417ef2d7 | ||
|
|
8b4014876e | ||
|
|
75d8d4f407 | ||
|
|
5aef551bd2 | ||
|
|
efcd84735d | ||
|
|
edef90da58 | ||
|
|
534cfcfdaf | ||
|
|
fa42dc9e17 | ||
|
|
9779478fe7 | ||
|
|
3a4e939dee | ||
|
|
006e27b61f | ||
|
|
544678009a | ||
|
|
aa81805f19 | ||
|
|
51fa2bf30c | ||
|
|
d035a3925b | ||
|
|
304f5b62b3 | ||
|
|
e853ed6419 | ||
|
|
8f53d44278 | ||
|
|
075b7d7dc6 | ||
|
|
cda8a9b3e9 | ||
|
|
6e2f097803 | ||
|
|
4f46486a14 | ||
|
|
f44cad4c08 | ||
|
|
9adb3af430 | ||
|
|
fc94d68e10 | ||
|
|
47844e0204 | ||
|
|
082d157c86 | ||
|
|
1f9ed90cc0 | ||
|
|
cda6a6973d | ||
|
|
a13f7f633e | ||
|
|
d786c8668e | ||
|
|
187cb79265 | ||
|
|
692c4733e8 | ||
|
|
ab604ec1c0 | ||
|
|
801251e1a6 | ||
|
|
e8cfd63bc4 | ||
|
|
e778f1ab5d | ||
|
|
5f1d048eea | ||
|
|
3e03c3e49b | ||
|
|
54ba4b31a1 | ||
|
|
b5e2812d0b | ||
|
|
95c444a004 | ||
|
|
b1b03a7503 | ||
|
|
440c035367 | ||
|
|
e6f60505e6 | ||
|
|
afe3b0d111 | ||
|
|
05dcd7622b | ||
|
|
ae595b4564 | ||
|
|
9c54fcee2e | ||
|
|
4d34f16fcd | ||
|
|
2079cfaece | ||
|
|
df54fb0534 | ||
|
|
51e490e667 | ||
|
|
04fcf06ad5 | ||
|
|
9af8b64046 | ||
|
|
dc1c132e03 | ||
|
|
865beac7fb | ||
|
|
13334451bf | ||
|
|
d68ef73407 | ||
|
|
8d6ea6b197 | ||
|
|
2c29a06eb5 | ||
|
|
b75a03aed8 | ||
|
|
583e286ada | ||
|
|
42b8ece85a | ||
|
|
82ee71013e | ||
|
|
38fad6e15f | ||
|
|
ab947c4fe7 | ||
|
|
4ec8e24bd8 | ||
|
|
e02458122b | ||
|
|
d837879bd8 | ||
|
|
181ad1016c | ||
|
|
466183ffd0 | ||
|
|
60f2c67bde | ||
|
|
28240f730f | ||
|
|
ed93fa45d3 | ||
|
|
a12583eb4d | ||
|
|
de483990ef | ||
|
|
76ff55d7f1 | ||
|
|
784a280bef | ||
|
|
14869041b8 | ||
|
|
17fd3d0bc1 | ||
|
|
968d94904a | ||
|
|
c8e5994b2f | ||
|
|
d48f02ff4a | ||
|
|
73035b9211 | ||
|
|
513ccfe581 | ||
|
|
782307374f | ||
|
|
c0d1ff0f08 | ||
|
|
7cac70010e | ||
|
|
36fdf4afbc | ||
|
|
790a802236 | ||
|
|
b45e7cd8f3 | ||
|
|
ecaa0a4eaa | ||
|
|
a9f5aa9220 | ||
|
|
150343b5f9 | ||
|
|
ae35b2ff7e | ||
|
|
1663497e6c | ||
|
|
fca8d6741c | ||
|
|
97e9cdc1fd | ||
|
|
cd6516786b | ||
|
|
e9089aae68 | ||
|
|
c899cb6a93 | ||
|
|
acc9a5aa9e | ||
|
|
d7cdfbb02d | ||
|
|
afed4c4239 | ||
|
|
3eb655402f | ||
|
|
fc7887399f | ||
|
|
0c1c41efc0 | ||
|
|
43937037db | ||
|
|
0c418d1a09 | ||
|
|
2ad14cc884 | ||
|
|
77e6030c59 | ||
|
|
79624ff7cd | ||
|
|
f2b5553f54 | ||
|
|
bced413810 | ||
|
|
a14ae1bdf8 | ||
|
|
1e3b498671 | ||
|
|
19bc6f6e48 | ||
|
|
3dae157a5e | ||
|
|
55a7089a3d | ||
|
|
44286cee59 | ||
|
|
89c35db811 | ||
|
|
68ab48a1d3 | ||
|
|
e4a8d2cb33 | ||
|
|
e92d26b9e8 | ||
|
|
d77f1b4fc0 | ||
|
|
e1fefd1664 | ||
|
|
9e15434904 | ||
|
|
d539bc0b43 | ||
|
|
4940c277f6 | ||
|
|
fc317939e2 | ||
|
|
53e655698b | ||
|
|
63e4bca098 | ||
|
|
a7d1f98f7e | ||
|
|
d91dd2548d | ||
|
|
a644b64c1c | ||
|
|
2918a0ea86 | ||
|
|
a3abadd8c2 | ||
|
|
9a7e0fb45e | ||
|
|
a78faa57f3 | ||
|
|
024f64678c | ||
|
|
a31e182905 | ||
|
|
a4f54a890a | ||
|
|
7fa9902ee7 | ||
|
|
d84f2e1993 | ||
|
|
41f79b995d | ||
|
|
c122aa85bf | ||
|
|
76124c1b19 | ||
|
|
5582a8bf1b | ||
|
|
8cffab46e0 | ||
|
|
624f004800 | ||
|
|
6eab4ebd1c | ||
|
|
c32c500ad2 | ||
|
|
c0d0edfc89 | ||
|
|
8d7f96bf00 | ||
|
|
909da9de3c | ||
|
|
899f4fe994 | ||
|
|
73ca6eeb74 | ||
|
|
8770bb2422 | ||
|
|
308320b4e7 | ||
|
|
928a831bc4 | ||
|
|
a2181fec48 | ||
|
|
db5298e40c | ||
|
|
0b7c8bdcd8 | ||
|
|
f814fa861c | ||
|
|
7370e398cc | ||
|
|
ca572163d4 | ||
|
|
78afbb3e95 | ||
|
|
23b9556105 | ||
|
|
ad080036c2 | ||
|
|
1e12faaf65 | ||
|
|
6c7428a1fb | ||
|
|
0ab06392c1 | ||
|
|
2a8a00afab | ||
|
|
526b1add26 | ||
|
|
514aa26054 | ||
|
|
baf6bdf6a5 | ||
|
|
5e9c64391e | ||
|
|
889fd64656 | ||
|
|
59b5d809db | ||
|
|
6c3372e71c | ||
|
|
1cdea49383 | ||
|
|
a6307039b0 | ||
|
|
aaacf244d2 | ||
|
|
2a0af620be | ||
|
|
b801093597 | ||
|
|
81dae580a4 | ||
|
|
1d54e939cb | ||
|
|
a40c49a915 | ||
|
|
03f58a1b02 | ||
|
|
103e408cb7 | ||
|
|
b2b0082c7d | ||
|
|
1d4da170ef | ||
|
|
3b75527e4c | ||
|
|
83d4825bf2 | ||
|
|
3d47389a39 | ||
|
|
2c03516998 | ||
|
|
062b319ab3 | ||
|
|
8ad4349d18 | ||
|
|
1d85495f7a | ||
|
|
41d388aa7f | ||
|
|
2ec3eee138 | ||
|
|
e88921c77e | ||
|
|
705728f16a | ||
|
|
6b94cbd089 | ||
|
|
7b8a9ff15e | ||
|
|
a7c24d4bfd | ||
|
|
79ace277ed | ||
|
|
bc035f9490 | ||
|
|
73a5af2e5e | ||
|
|
ee7bdbf44e | ||
|
|
b611726c3e | ||
|
|
819686e812 | ||
|
|
94e40a32b9 | ||
|
|
3b2669fa21 | ||
|
|
801ff1701e | ||
|
|
b4deb6caca | ||
|
|
364a2b43c2 | ||
|
|
279d898d68 | ||
|
|
ba7645e531 | ||
|
|
a930b34c3e | ||
|
|
232a3dfe87 | ||
|
|
ddbca62f92 | ||
|
|
646b022d38 | ||
|
|
19ef414e5c | ||
|
|
f46eb24615 | ||
|
|
4e6faf3bac | ||
|
|
48f5007306 | ||
|
|
56acbcecfd | ||
|
|
7d0952d858 | ||
|
|
ef40a2e78e | ||
|
|
280f0d6e21 | ||
|
|
b4abd3b23d | ||
|
|
f2a984f3e7 | ||
|
|
1ffa3f21f0 | ||
|
|
7e323f1ebf | ||
|
|
bff79d7c27 | ||
|
|
117f002545 | ||
|
|
953c1889b5 | ||
|
|
cc024a0bac | ||
|
|
42bfab6e40 | ||
|
|
c8ef7ebafb | ||
|
|
5512c1817d | ||
|
|
5203d17910 | ||
|
|
da3c11a201 | ||
|
|
e7b6013d8d | ||
|
|
ed2825b0d9 | ||
|
|
50410be90a | ||
|
|
0bd07866d8 | ||
|
|
2dd234d960 | ||
|
|
43d1f363e5 | ||
|
|
dec9e8d4aa | ||
|
|
877999dd1e | ||
|
|
f364892fce | ||
|
|
699f2ca5a2 | ||
|
|
df0bb9583b | ||
|
|
89f04ed3e9 | ||
|
|
9b95b97568 | ||
|
|
69b7d15beb | ||
|
|
956840b50b | ||
|
|
b79e0373f4 | ||
|
|
ba77f8e2aa |
8
.gitignore
vendored
@@ -19,7 +19,6 @@ logs/
|
|||||||
/annotations/out/
|
/annotations/out/
|
||||||
/net/build/
|
/net/build/
|
||||||
/tools/build/
|
/tools/build/
|
||||||
/core/build/
|
|
||||||
/tests/build/
|
/tests/build/
|
||||||
/server/build/
|
/server/build/
|
||||||
changelog
|
changelog
|
||||||
@@ -143,13 +142,6 @@ nb-configuration.xml
|
|||||||
/local.properties
|
/local.properties
|
||||||
.gradle/
|
.gradle/
|
||||||
gradle-app.setting
|
gradle-app.setting
|
||||||
/build/
|
|
||||||
/android/build/
|
|
||||||
/core/build/
|
|
||||||
/desktop/build/
|
|
||||||
/html/build/
|
|
||||||
/ios/build/
|
|
||||||
/ios-moe/build/
|
|
||||||
|
|
||||||
## OS Specific
|
## OS Specific
|
||||||
.DS_Store
|
.DS_Store
|
||||||
|
|||||||
17
README.md
@@ -61,18 +61,5 @@ Post feature requests and feedback [here](https://github.com/Anuken/Mindustry-Su
|
|||||||
|
|
||||||
## Downloads
|
## Downloads
|
||||||
|
|
||||||
[<img src="https://static.itch.io/images/badge.svg"
|
| [](https://anuke.itch.io/mindustry) | [](https://play.google.com/store/apps/details?id=io.anuke.mindustry) | [](https://f-droid.org/packages/io.anuke.mindustry) | [](https://flathub.org/apps/details/com.github.Anuken.Mindustry) |
|
||||||
alt="Get it on Itch.io"
|
|--- |--- |--- |--- |
|
||||||
height="60">](https://anuke.itch.io/mindustry)
|
|
||||||
|
|
||||||
[<img src="https://play.google.com/intl/en_us/badges/images/generic/en-play-badge.png"
|
|
||||||
alt="Get it on Google Play"
|
|
||||||
height="80">](https://play.google.com/store/apps/details?id=io.anuke.mindustry)
|
|
||||||
|
|
||||||
[<img src="https://fdroid.gitlab.io/artwork/badge/get-it-on.png"
|
|
||||||
alt="Get it on F-Droid"
|
|
||||||
height="80">](https://f-droid.org/packages/io.anuke.mindustry/)
|
|
||||||
|
|
||||||
[<img src="https://flathub.org/assets/badges/flathub-badge-en.svg"
|
|
||||||
alt="Download On Flathub"
|
|
||||||
height="60">](https://flathub.org/apps/details/com.github.Anuken.Mindustry)
|
|
||||||
|
|||||||
@@ -27,7 +27,6 @@ import java.util.*;
|
|||||||
|
|
||||||
import static mindustry.Vars.*;
|
import static mindustry.Vars.*;
|
||||||
|
|
||||||
|
|
||||||
public class AndroidLauncher extends AndroidApplication{
|
public class AndroidLauncher extends AndroidApplication{
|
||||||
public static final int PERMISSION_REQUEST_CODE = 1;
|
public static final int PERMISSION_REQUEST_CODE = 1;
|
||||||
boolean doubleScaleTablets = true;
|
boolean doubleScaleTablets = true;
|
||||||
|
|||||||
@@ -115,12 +115,12 @@ public abstract class BaseProcessor extends AbstractProcessor{
|
|||||||
return ClassName.get(c).box();
|
return ClassName.get(c).box();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static TypeVariableName getTVN(TypeParameterElement element) {
|
public static TypeVariableName getTVN(TypeParameterElement element){
|
||||||
String name = element.getSimpleName().toString();
|
String name = element.getSimpleName().toString();
|
||||||
List<? extends TypeMirror> boundsMirrors = element.getBounds();
|
List<? extends TypeMirror> boundsMirrors = element.getBounds();
|
||||||
|
|
||||||
List<TypeName> boundsTypeNames = new ArrayList<>();
|
List<TypeName> boundsTypeNames = new ArrayList<>();
|
||||||
for (TypeMirror typeMirror : boundsMirrors) {
|
for(TypeMirror typeMirror : boundsMirrors){
|
||||||
boundsTypeNames.add(TypeName.get(typeMirror));
|
boundsTypeNames.add(TypeName.get(typeMirror));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -137,11 +137,11 @@ public abstract class BaseProcessor extends AbstractProcessor{
|
|||||||
if(imports != null){
|
if(imports != null){
|
||||||
String rawSource = file.toString();
|
String rawSource = file.toString();
|
||||||
Seq<String> result = new Seq<>();
|
Seq<String> result = new Seq<>();
|
||||||
for (String s : rawSource.split("\n", -1)) {
|
for(String s : rawSource.split("\n", -1)){
|
||||||
result.add(s);
|
result.add(s);
|
||||||
if (s.startsWith("package ")) {
|
if (s.startsWith("package ")){
|
||||||
result.add("");
|
result.add("");
|
||||||
for (String i : imports) {
|
for (String i : imports){
|
||||||
result.add(i);
|
result.add(i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ public class AssetsProcess extends BaseProcessor{
|
|||||||
texIcons.each((key, val) -> {
|
texIcons.each((key, val) -> {
|
||||||
String[] split = val.split("\\|");
|
String[] split = val.split("\\|");
|
||||||
String name = Strings.kebabToCamel(split[1]).replace("Medium", "").replace("Icon", "");
|
String name = Strings.kebabToCamel(split[1]).replace("Medium", "").replace("Icon", "");
|
||||||
if(SourceVersion.isKeyword(name) || name.equals("char")) name = name + "i";
|
if(SourceVersion.isKeyword(name) || name.equals("char")) name += "i";
|
||||||
|
|
||||||
ichtype.addField(FieldSpec.builder(char.class, name, Modifier.PUBLIC, Modifier.STATIC, Modifier.FINAL).initializer("(char)" + key).build());
|
ichtype.addField(FieldSpec.builder(char.class, name, Modifier.PUBLIC, Modifier.STATIC, Modifier.FINAL).initializer("(char)" + key).build());
|
||||||
});
|
});
|
||||||
@@ -78,7 +78,7 @@ public class AssetsProcess extends BaseProcessor{
|
|||||||
if(SourceVersion.isKeyword(varname)) varname += "s";
|
if(SourceVersion.isKeyword(varname)) varname += "s";
|
||||||
|
|
||||||
type.addField(ClassName.bestGuess(dtype), varname, Modifier.STATIC, Modifier.PUBLIC);
|
type.addField(ClassName.bestGuess(dtype), varname, Modifier.STATIC, Modifier.PUBLIC);
|
||||||
load.addStatement(varname + " = ("+dtype+")arc.Core.atlas.drawable($S)", sfilen);
|
load.addStatement(varname + " = (" + dtype + ")arc.Core.atlas.drawable($S)", sfilen);
|
||||||
});
|
});
|
||||||
|
|
||||||
for(Element elem : elements){
|
for(Element elem : elements){
|
||||||
@@ -115,23 +115,21 @@ public class AssetsProcess extends BaseProcessor{
|
|||||||
names.add(name);
|
names.add(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(SourceVersion.isKeyword(name)){
|
if(SourceVersion.isKeyword(name)) name += "s";
|
||||||
name = name + "s";
|
|
||||||
}
|
|
||||||
|
|
||||||
String filepath = path.substring(path.lastIndexOf("/") + 1) + "/" + fname;
|
String filepath = path.substring(path.lastIndexOf("/") + 1) + "/" + fname;
|
||||||
|
|
||||||
String filename = "arc.Core.app.getType() != arc.Application.ApplicationType.iOS ? \"" + filepath + "\" : \"" + filepath.replace(".ogg", ".mp3")+"\"";
|
String filename = "arc.Core.app.getType() != arc.Application.ApplicationType.iOS ? \"" + filepath + "\" : \"" + filepath.replace(".ogg", ".mp3") + "\"";
|
||||||
|
|
||||||
loadBegin.addStatement("arc.Core.assets.load("+filename +", "+rtype+".class).loaded = a -> " + name + " = ("+rtype+")a", filepath, filepath.replace(".ogg", ".mp3"));
|
loadBegin.addStatement("arc.Core.assets.load(" + filename + ", " + rtype + ".class).loaded = a -> " + name + " = (" + rtype + ")a", filepath, filepath.replace(".ogg", ".mp3"));
|
||||||
|
|
||||||
dispose.addStatement("arc.Core.assets.unload(" + filename + ")");
|
dispose.addStatement("arc.Core.assets.unload(" + filename + ")");
|
||||||
dispose.addStatement(name + " = null");
|
dispose.addStatement(name + " = null");
|
||||||
type.addField(FieldSpec.builder(ClassName.bestGuess(rtype), name, Modifier.STATIC, Modifier.PUBLIC).initializer("new arc.mock.Mock" + rtype.substring(rtype.lastIndexOf(".") + 1)+ "()").build());
|
type.addField(FieldSpec.builder(ClassName.bestGuess(rtype), name, Modifier.STATIC, Modifier.PUBLIC).initializer("new arc.mock.Mock" + rtype.substring(rtype.lastIndexOf(".") + 1) + "()").build());
|
||||||
});
|
});
|
||||||
|
|
||||||
if(classname.equals("Sounds")){
|
if(classname.equals("Sounds")){
|
||||||
type.addField(FieldSpec.builder(ClassName.bestGuess(rtype), "none", Modifier.STATIC, Modifier.PUBLIC).initializer("new arc.mock.Mock" + rtype.substring(rtype.lastIndexOf(".") + 1)+ "()").build());
|
type.addField(FieldSpec.builder(ClassName.bestGuess(rtype), "none", Modifier.STATIC, Modifier.PUBLIC).initializer("new arc.mock.Mock" + rtype.substring(rtype.lastIndexOf(".") + 1) + "()").build());
|
||||||
}
|
}
|
||||||
|
|
||||||
type.addMethod(loadBegin.build());
|
type.addMethod(loadBegin.build());
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ buildscript{
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies{
|
dependencies{
|
||||||
classpath 'com.mobidevelop.robovm:robovm-gradle-plugin:2.3.8'
|
classpath 'com.mobidevelop.robovm:robovm-gradle-plugin:2.3.11'
|
||||||
classpath "com.github.anuken:packr:-SNAPSHOT"
|
classpath "com.github.anuken:packr:-SNAPSHOT"
|
||||||
classpath "com.github.Anuken.Arc:packer:$arcHash"
|
classpath "com.github.Anuken.Arc:packer:$arcHash"
|
||||||
classpath "com.github.Anuken.Arc:arc-core:$arcHash"
|
classpath "com.github.Anuken.Arc:arc-core:$arcHash"
|
||||||
@@ -36,7 +36,7 @@ allprojects{
|
|||||||
if(!project.hasProperty("versionType")) versionType = 'official'
|
if(!project.hasProperty("versionType")) versionType = 'official'
|
||||||
appName = 'Mindustry'
|
appName = 'Mindustry'
|
||||||
steamworksVersion = '891ed912791e01fe9ee6237a6497e5212b85c256'
|
steamworksVersion = '891ed912791e01fe9ee6237a6497e5212b85c256'
|
||||||
rhinoVersion = '8437435dab9993769d72739608580d40c5343285'
|
rhinoVersion = '2c3ad8c29560f695ad147a8e8cf5ed9f0ae834b3'
|
||||||
|
|
||||||
loadVersionProps = {
|
loadVersionProps = {
|
||||||
return new Properties().with{p -> p.load(file('../core/assets/version.properties').newReader()); return p }
|
return new Properties().with{p -> p.load(file('../core/assets/version.properties').newReader()); return p }
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 744 B After Width: | Height: | Size: 743 B |
|
Before Width: | Height: | Size: 265 B After Width: | Height: | Size: 322 B |
|
Before Width: | Height: | Size: 226 B After Width: | Height: | Size: 319 B |
|
Before Width: | Height: | Size: 315 B After Width: | Height: | Size: 521 B |
|
Before Width: | Height: | Size: 242 B After Width: | Height: | Size: 354 B |
|
Before Width: | Height: | Size: 287 B After Width: | Height: | Size: 420 B |
|
Before Width: | Height: | Size: 337 B After Width: | Height: | Size: 507 B |
|
Before Width: | Height: | Size: 334 B After Width: | Height: | Size: 469 B |
|
Before Width: | Height: | Size: 337 B After Width: | Height: | Size: 481 B |
|
Before Width: | Height: | Size: 247 B After Width: | Height: | Size: 308 B |
|
Before Width: | Height: | Size: 269 B After Width: | Height: | Size: 360 B |
|
Before Width: | Height: | Size: 327 B After Width: | Height: | Size: 386 B |
|
Before Width: | Height: | Size: 294 B After Width: | Height: | Size: 347 B |
|
Before Width: | Height: | Size: 315 B After Width: | Height: | Size: 380 B |
|
Before Width: | Height: | Size: 340 B After Width: | Height: | Size: 539 B |
|
Before Width: | Height: | Size: 336 B After Width: | Height: | Size: 489 B |
|
Before Width: | Height: | Size: 312 B After Width: | Height: | Size: 458 B |
|
Before Width: | Height: | Size: 344 B After Width: | Height: | Size: 527 B |
|
Before Width: | Height: | Size: 346 B After Width: | Height: | Size: 508 B |
|
Before Width: | Height: | Size: 328 B After Width: | Height: | Size: 484 B |
|
Before Width: | Height: | Size: 346 B After Width: | Height: | Size: 519 B |
BIN
core/assets-raw/sprites/shapes/circle-small.png
Normal file
|
After Width: | Height: | Size: 4.5 KiB |
@@ -463,7 +463,7 @@ load = Load
|
|||||||
save = Save
|
save = Save
|
||||||
fps = FPS: {0}
|
fps = FPS: {0}
|
||||||
ping = Ping: {0}ms
|
ping = Ping: {0}ms
|
||||||
language.restart = Please restart your game for the language settings to take effect.
|
language.restart = Restart your game for the language settings to take effect.
|
||||||
settings = Settings
|
settings = Settings
|
||||||
tutorial = Tutorial
|
tutorial = Tutorial
|
||||||
tutorial.retake = Re-Take Tutorial
|
tutorial.retake = Re-Take Tutorial
|
||||||
@@ -483,6 +483,7 @@ launch.text = Launch
|
|||||||
research.multiplayer = Only the host can research items.
|
research.multiplayer = Only the host can research items.
|
||||||
uncover = Uncover
|
uncover = Uncover
|
||||||
configure = Configure Loadout
|
configure = Configure Loadout
|
||||||
|
|
||||||
#TODO
|
#TODO
|
||||||
loadout = Loadout
|
loadout = Loadout
|
||||||
resources = Resources
|
resources = Resources
|
||||||
@@ -581,7 +582,6 @@ settings.clearcampaignsaves.confirm = Are you sure you want to clear all of your
|
|||||||
paused = [accent]< Paused >
|
paused = [accent]< Paused >
|
||||||
clear = Clear
|
clear = Clear
|
||||||
banned = [scarlet]Banned
|
banned = [scarlet]Banned
|
||||||
unplaceable.sectorcaptured = [scarlet]Requires captured sector
|
|
||||||
yes = Yes
|
yes = Yes
|
||||||
no = No
|
no = No
|
||||||
info.title = Info
|
info.title = Info
|
||||||
@@ -591,6 +591,7 @@ unit.nobuild = [scarlet]Unit can't build
|
|||||||
lastaccessed = [lightgray]Last Accessed: {0}
|
lastaccessed = [lightgray]Last Accessed: {0}
|
||||||
block.unknown = [lightgray]???
|
block.unknown = [lightgray]???
|
||||||
|
|
||||||
|
stat.description = Purpose
|
||||||
stat.input = Input
|
stat.input = Input
|
||||||
stat.output = Output
|
stat.output = Output
|
||||||
stat.booster = Booster
|
stat.booster = Booster
|
||||||
@@ -640,7 +641,7 @@ stat.lightningchance = Lightning Chance
|
|||||||
stat.lightningdamage = Lightning Damage
|
stat.lightningdamage = Lightning Damage
|
||||||
stat.flammability = Flammability
|
stat.flammability = Flammability
|
||||||
stat.radioactivity = Radioactivity
|
stat.radioactivity = Radioactivity
|
||||||
stat.heatcapacity = HeatCapacity
|
stat.heatcapacity = Heat Capacity
|
||||||
stat.viscosity = Viscosity
|
stat.viscosity = Viscosity
|
||||||
stat.temperature = Temperature
|
stat.temperature = Temperature
|
||||||
stat.speed = Speed
|
stat.speed = Speed
|
||||||
@@ -650,6 +651,8 @@ stat.minetier = Mine Tier
|
|||||||
stat.payloadcapacity = Payload Capacity
|
stat.payloadcapacity = Payload Capacity
|
||||||
stat.commandlimit = Command Limit
|
stat.commandlimit = Command Limit
|
||||||
stat.abilities = Abilities
|
stat.abilities = Abilities
|
||||||
|
stat.canboost = Can Boost
|
||||||
|
stat.flying = Flying
|
||||||
|
|
||||||
ability.forcefield = Force Field
|
ability.forcefield = Force Field
|
||||||
ability.repairfield = Repair Field
|
ability.repairfield = Repair Field
|
||||||
@@ -714,6 +717,7 @@ unit.items = items
|
|||||||
unit.thousands = k
|
unit.thousands = k
|
||||||
unit.millions = mil
|
unit.millions = mil
|
||||||
unit.billions = b
|
unit.billions = b
|
||||||
|
category.purpose = Purpose
|
||||||
category.general = General
|
category.general = General
|
||||||
category.power = Power
|
category.power = Power
|
||||||
category.liquids = Liquids
|
category.liquids = Liquids
|
||||||
@@ -727,6 +731,7 @@ setting.blockreplace.name = Automatic Block Suggestions
|
|||||||
setting.linear.name = Linear Filtering
|
setting.linear.name = Linear Filtering
|
||||||
setting.hints.name = Hints
|
setting.hints.name = Hints
|
||||||
setting.flow.name = Display Resource Flow Rate
|
setting.flow.name = Display Resource Flow Rate
|
||||||
|
setting.backgroundpause.name = Pause In Background
|
||||||
setting.buildautopause.name = Auto-Pause Building
|
setting.buildautopause.name = Auto-Pause Building
|
||||||
setting.animatedwater.name = Animated Surfaces
|
setting.animatedwater.name = Animated Surfaces
|
||||||
setting.animatedshields.name = Animated Shields
|
setting.animatedshields.name = Animated Shields
|
||||||
@@ -1064,7 +1069,6 @@ block.conveyor.name = Conveyor
|
|||||||
block.titanium-conveyor.name = Titanium Conveyor
|
block.titanium-conveyor.name = Titanium Conveyor
|
||||||
block.plastanium-conveyor.name = Plastanium Conveyor
|
block.plastanium-conveyor.name = Plastanium Conveyor
|
||||||
block.armored-conveyor.name = Armored Conveyor
|
block.armored-conveyor.name = Armored Conveyor
|
||||||
block.armored-conveyor.description = Moves items at the same speed as titanium conveyors, but possesses more armor. Does not accept inputs from the sides from anything but other conveyor belts.
|
|
||||||
block.junction.name = Junction
|
block.junction.name = Junction
|
||||||
block.router.name = Router
|
block.router.name = Router
|
||||||
block.distributor.name = Distributor
|
block.distributor.name = Distributor
|
||||||
@@ -1072,7 +1076,6 @@ block.sorter.name = Sorter
|
|||||||
block.inverted-sorter.name = Inverted Sorter
|
block.inverted-sorter.name = Inverted Sorter
|
||||||
block.message.name = Message
|
block.message.name = Message
|
||||||
block.illuminator.name = Illuminator
|
block.illuminator.name = Illuminator
|
||||||
block.illuminator.description = A small, compact, configurable light source. Requires power to function.
|
|
||||||
block.overflow-gate.name = Overflow Gate
|
block.overflow-gate.name = Overflow Gate
|
||||||
block.underflow-gate.name = Underflow Gate
|
block.underflow-gate.name = Underflow Gate
|
||||||
block.silicon-smelter.name = Silicon Smelter
|
block.silicon-smelter.name = Silicon Smelter
|
||||||
@@ -1208,136 +1211,205 @@ tutorial.waves = The[lightgray] enemy[] approaches.\n\nDefend the core for 2 wav
|
|||||||
tutorial.waves.mobile = The[lightgray] enemy[] approaches.\n\nDefend the core for 2 waves. Your ship will automatically fire at enemies.\nBuild more turrets and drills. Mine more copper.
|
tutorial.waves.mobile = The[lightgray] enemy[] approaches.\n\nDefend the core for 2 waves. Your ship will automatically fire at enemies.\nBuild more turrets and drills. Mine more copper.
|
||||||
tutorial.launch = Once you reach a specific wave, you are able to[accent] launch the core[], leaving your defenses behind and[accent] obtaining all the resources in your core.[]\nThese obtained resources can then be used to research new technology.\n\n[accent]Press the launch button.
|
tutorial.launch = Once you reach a specific wave, you are able to[accent] launch the core[], leaving your defenses behind and[accent] obtaining all the resources in your core.[]\nThese obtained resources can then be used to research new technology.\n\n[accent]Press the launch button.
|
||||||
|
|
||||||
item.copper.description = The most basic structural material. Used extensively in all types of blocks.
|
item.copper.description = Used in all types of construction and ammunition.
|
||||||
item.lead.description = A basic starter material. Used extensively in electronics and liquid transportation blocks.
|
item.copper.details = Copper. Abnormally abundant metal on Serpulo. Structurally weak unless reinforced.
|
||||||
item.metaglass.description = A super-tough glass compound. Extensively used for liquid distribution and storage.
|
item.lead.description = Used in liquid transportation and electrical structures.
|
||||||
item.graphite.description = Mineralized carbon, used for ammunition and electrical components.
|
item.lead.details = Dense. Inert. Extensively used in batteries.\nNote: Likely toxic to biological life forms. Not that there are many left here.
|
||||||
item.sand.description = A common material that is used extensively in smelting, both in alloying and as a flux.
|
item.metaglass.description = Used in liquid distribution/storage structures.
|
||||||
item.coal.description = Fossilized plant matter, formed long before the seeding event. Used extensively for fuel and resource production.
|
item.graphite.description = Used in electrical components and turret ammunition.
|
||||||
item.titanium.description = A rare super-light metal used extensively in liquid transportation, drills and aircraft.
|
item.sand.description = Used for production of other refined materials.
|
||||||
item.thorium.description = A dense, radioactive metal used as structural support and nuclear fuel.
|
item.coal.description = Used for fuel and refined material production.
|
||||||
item.scrap.description = Leftover remnants of old structures and units. Contains trace amounts of many different metals.
|
item.coal.details = Appears to be fossilized plant matter, formed long before the seeding event.
|
||||||
item.silicon.description = An extremely useful semiconductor. Applications in solar panels, complex electronics and homing turret ammunition.
|
item.titanium.description = Used in liquid transportation structures, drills and aircraft.
|
||||||
item.plastanium.description = A light, ductile material used in advanced aircraft and fragmentation ammunition.
|
item.thorium.description = Used in durable structures and as nuclear fuel.
|
||||||
item.phase-fabric.description = A near-weightless substance used in advanced electronics and self-repairing technology.
|
item.scrap.description = Melted down and refined into other materials.
|
||||||
item.surge-alloy.description = An advanced alloy with unique electrical properties.
|
item.scrap.details = Leftover remnants of old structures and units.
|
||||||
item.spore-pod.description = A pod of synthetic spores, synthesized from atmospheric concentrations for industrial purposes. Used for conversion into oil, explosives and fuel.
|
item.silicon.description = Used in solar panels, complex electronics and homing turret ammunition.
|
||||||
item.blast-compound.description = An unstable compound used in bombs and explosives. Synthesized from spore pods and other volatile substances. Use as fuel is not advised.
|
item.plastanium.description = Used in advanced units, insulation and fragmentation ammunition.
|
||||||
item.pyratite.description = An extremely flammable substance used in incendiary weapons.
|
item.phase-fabric.description = Used in advanced electronics and self-repairing structures.
|
||||||
liquid.water.description = The most useful liquid. Commonly used for cooling machines and waste processing.
|
item.surge-alloy.description = Used in advanced weaponry and reactive defense structures.
|
||||||
liquid.slag.description = Various different types of molten metal mixed together. Can be separated into its constituent minerals, or sprayed at enemy units as a weapon.
|
item.spore-pod.description = Used for conversion into oil, explosives and fuel.
|
||||||
liquid.oil.description = A liquid used in advanced material production. Can be converted into coal as fuel, or sprayed and set on fire as a weapon.
|
item.spore-pod.details = Spores. Likely a synthetic life form. Emit gases toxic to other biological life. Extremely invasive. Highly flammable in certain conditions.
|
||||||
liquid.cryofluid.description = An inert, non-corrosive liquid created from water and titanium. Has extremely high heat capacity. Extensively used as coolant.
|
item.blast-compound.description = Used in bombs and explosive ammunition.
|
||||||
|
item.pyratite.description = Used in incendiary weapons and combustion-fueled generators.
|
||||||
|
liquid.water.description = Used for cooling machines and waste processing.
|
||||||
|
liquid.slag.description = Refined in separators into constituent metals, or sprayed at enemies as a weapon.
|
||||||
|
liquid.oil.description = Used in advanced material production and as incendiary ammunition.
|
||||||
|
liquid.cryofluid.description = Used as coolant in reactors, turrets and factories.
|
||||||
|
|
||||||
block.message.description = Stores a message. Used for communication between allies.
|
block.armored-conveyor.description = Moves items forward. Does not accept inputs from the sides.
|
||||||
block.graphite-press.description = Compresses chunks of coal into pure sheets of graphite.
|
block.illuminator.description = Emits light.
|
||||||
block.multi-press.description = An upgraded version of the graphite press. Employs water and power to process coal quickly and efficiently.
|
block.message.description = Stores a message for communication between allies.
|
||||||
block.silicon-smelter.description = Reduces sand with pure coal. Produces silicon.
|
block.graphite-press.description = Compresses coal into graphite.
|
||||||
block.kiln.description = Smelts sand and lead into the compound known as metaglass. Requires small amounts of power to run.
|
block.multi-press.description = Compresses coal into graphite. Requires water as coolant.
|
||||||
|
block.silicon-smelter.description = Refines silicon from sand and coal.
|
||||||
|
block.kiln.description = Smelts sand and lead into metaglass.
|
||||||
block.plastanium-compressor.description = Produces plastanium from oil and titanium.
|
block.plastanium-compressor.description = Produces plastanium from oil and titanium.
|
||||||
block.phase-weaver.description = Synthesizes phase fabric from radioactive thorium and sand. Requires massive amounts of power to function.
|
block.phase-weaver.description = Synthesizes phase fabric from thorium and sand.
|
||||||
block.alloy-smelter.description = Combines titanium, lead, silicon and copper to produce surge alloy.
|
block.alloy-smelter.description = Fuses titanium, lead, silicon and copper into surge alloy.
|
||||||
block.cryofluid-mixer.description = Mixes water and fine titanium powder into cryofluid. Essential for thorium reactor usage.
|
block.cryofluid-mixer.description = Mixes water and fine titanium powder to produce cryofluid.
|
||||||
block.blast-mixer.description = Crushes and mixes clusters of spores with pyratite to produce blast compound.
|
block.blast-mixer.description = Produces blast compound from pyratite and spore pods.
|
||||||
block.pyratite-mixer.description = Mixes coal, lead and sand into highly flammable pyratite.
|
block.pyratite-mixer.description = Mixes coal, lead and sand into pyratite.
|
||||||
block.melter.description = Melts down scrap into slag for further processing or usage in wave turrets.
|
block.melter.description = Melts down scrap into slag.
|
||||||
block.separator.description = Separates slag into its mineral components. Outputs the cooled result.
|
block.separator.description = Separates slag into its mineral components.
|
||||||
block.spore-press.description = Compresses spore pods under extreme pressure to synthesize oil.
|
block.spore-press.description = Compresses spore pods into oil.
|
||||||
block.pulverizer.description = Crushes scrap into fine sand.
|
block.pulverizer.description = Crushes scrap into fine sand.
|
||||||
block.coal-centrifuge.description = Solidifes oil into chunks of coal.
|
block.coal-centrifuge.description = Transforms oil into coal.
|
||||||
block.incinerator.description = Vaporizes any excess item or liquid it receives.
|
block.incinerator.description = Vaporizes any item or liquid it receives.
|
||||||
block.power-void.description = Voids all power inputted into it. Sandbox only.
|
block.power-void.description = Voids all power inputted.
|
||||||
block.power-source.description = Infinitely outputs power. Sandbox only.
|
block.power-source.description = Infinitely outputs power. Sandbox only.
|
||||||
block.item-source.description = Infinitely outputs items. Sandbox only.
|
block.item-source.description = Infinitely outputs items. Sandbox only.
|
||||||
block.item-void.description = Destroys any items. Sandbox only.
|
block.item-void.description = Destroys any items. Sandbox only.
|
||||||
block.liquid-source.description = Infinitely outputs liquids. Sandbox only.
|
block.liquid-source.description = Infinitely outputs liquids. Sandbox only.
|
||||||
block.liquid-void.description = Removes any liquids. Sandbox only.
|
block.liquid-void.description = Removes any liquids. Sandbox only.
|
||||||
block.copper-wall.description = A cheap defensive block.\nUseful for protecting the core and turrets in the first few waves.
|
block.copper-wall.description = Protects structures from enemy projectiles.
|
||||||
block.copper-wall-large.description = A cheap defensive block.\nUseful for protecting the core and turrets in the first few waves.\nSpans multiple tiles.
|
block.copper-wall-large.description = Protects structures from enemy projectiles.
|
||||||
block.titanium-wall.description = A moderately strong defensive block.\nProvides moderate protection from enemies.
|
block.titanium-wall.description = Protects structures from enemy projectiles.
|
||||||
block.titanium-wall-large.description = A moderately strong defensive block.\nProvides moderate protection from enemies.\nSpans multiple tiles.
|
block.titanium-wall-large.description = Protects structures from enemy projectiles.
|
||||||
block.plastanium-wall.description = A special type of wall that absorbs electric arcs and blocks automatic power node connections.
|
block.plastanium-wall.description = Protects structures from enemy projectiles. Absorbs lasers and electric arcs. Blocks automatic power 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-large.description = Protects structures from enemy projectiles. Absorbs lasers and electric arcs. Blocks automatic power connections.
|
||||||
block.thorium-wall.description = A strong defensive block.\nDecent protection from enemies.
|
block.thorium-wall.description = Protects structures from enemy projectiles.
|
||||||
block.thorium-wall-large.description = A strong defensive block.\nDecent protection from enemies.\nSpans multiple tiles.
|
block.thorium-wall-large.description = Protects structures from enemy projectiles.
|
||||||
block.phase-wall.description = A wall coated with special phase-based reflective compound. Deflects most bullets upon impact.
|
block.phase-wall.description = Protects structures from enemy projectiles, reflecting most bullets upon impact.
|
||||||
block.phase-wall-large.description = A wall coated with special phase-based reflective compound. Deflects most bullets upon impact.\nSpans multiple tiles.
|
block.phase-wall-large.description = Protects structures from enemy projectiles, reflecting most bullets upon impact.
|
||||||
block.surge-wall.description = An extremely durable defensive block.\nBuilds up charge on bullet contact, releasing it randomly.
|
block.surge-wall.description = Protects structures from enemy projectiles, periodically releasing electric arcs upon contact.
|
||||||
block.surge-wall-large.description = An extremely durable defensive block.\nBuilds up charge on bullet contact, releasing it randomly.\nSpans multiple tiles.
|
block.surge-wall-large.description = Protects structures from enemy projectiles, periodically releasing electric arcs upon contact.
|
||||||
block.door.description = A small door. Can be opened or closed by tapping.
|
block.door.description = A wall that can be opened and closed.
|
||||||
block.door-large.description = A large door. Can be opened and closed by tapping.\nSpans multiple tiles.
|
block.door-large.description = A wall that can be opened and closed.
|
||||||
block.mender.description = Periodically repairs blocks in its vicinity. Keeps defenses repaired in-between waves.\nOptionally uses silicon to boost range and efficiency.
|
block.mender.description = Periodically repairs blocks in its vicinity.\nOptionally uses silicon to boost range and efficiency.
|
||||||
block.mend-projector.description = An upgraded version of the Mender. Repairs blocks in its vicinity.\nOptionally uses phase fabric 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.
|
||||||
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 can be used to increase shield size.
|
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 = Damages enemies stepping on the mine. Nearly invisible to the enemy.
|
block.shock-mine.description = Releases electric arcs upon enemy unit contact.
|
||||||
block.conveyor.description = Basic item transport block. Moves items forward and automatically deposits them into blocks. Rotatable.
|
block.conveyor.description = Transports items forward.
|
||||||
block.titanium-conveyor.description = Advanced item transport block. Moves items faster than standard conveyors.
|
block.titanium-conveyor.description = Transports items forward. Faster than a standard conveyor.
|
||||||
block.plastanium-conveyor.description = Moves items in batches.\nAccepts items at the back, and unloads them in three directions at the front.\nRequires multiple loading and unloading points for peak throughput.
|
block.plastanium-conveyor.description = Transports items forward in batches. Accepts items at the back, and unloads them in three directions at the front. Requires multiple loading and unloading points for peak throughput.
|
||||||
block.junction.description = Acts as a bridge for two crossing conveyor belts. Useful in situations with two different conveyors carrying different materials to different locations.
|
block.junction.description = Acts as a bridge for two crossing conveyor belts.
|
||||||
block.bridge-conveyor.description = Advanced item transport block. Allows transporting items over up to 3 tiles of any terrain or building.
|
block.bridge-conveyor.description = Transports items over terrain or buildings.
|
||||||
block.phase-conveyor.description = Advanced item transport block. Uses power to teleport items to a connected phase conveyor over several tiles.
|
block.phase-conveyor.description = Instantly transports items over terrain or buildings. Longer range than the item bridge, but requires power.
|
||||||
block.sorter.description = Sorts items. If an item matches the selection, it is allowed to pass. Otherwise, the item is outputted to the left and right.
|
block.sorter.description = If an input item matches the selection, it passes forward. Otherwise, the item is outputted to the left and right.
|
||||||
block.inverted-sorter.description = Processes items like a standard sorter, but outputs selected items to the sides instead.
|
block.inverted-sorter.description = Similar to a standard sorter, but outputs selected items to the sides instead.
|
||||||
block.router.description = Accepts items, then outputs them to up to 3 other directions equally. Useful for splitting the materials from one source to multiple targets.\n\n[scarlet]Never use next to production inputs, as they will get clogged by output.[]
|
block.router.description = Distributes input items to 3 output directions equally.
|
||||||
block.distributor.description = An advanced router. Splits items to up to 7 other directions equally.
|
block.router.details = A necessary evil. Using next to production inputs is not advised, as they will get clogged by output.
|
||||||
block.overflow-gate.description = Only outputs to the left and right if the front path is blocked.
|
block.distributor.description = Distributes input items to 7 output directions equally.
|
||||||
block.underflow-gate.description = The opposite of an overflow gate. Outputs to the front if the left and right paths are blocked.
|
block.overflow-gate.description = Only outputs items to the left and right if the front path is blocked.
|
||||||
block.mass-driver.description = The ultimate item transport block. Collects several items and then shoots them to another mass driver over a long range. Requires power to operate.
|
block.underflow-gate.description = Opposite of an overflow gate. Outputs to the front if the left and right paths are blocked.
|
||||||
block.mechanical-pump.description = A cheap pump with slow output, but no power consumption.
|
block.mass-driver.description = Long-range item transport structure. Collects batches of items and shoots them to other mass drivers.
|
||||||
block.rotary-pump.description = An advanced pump. Pumps more liquid, but requires power.
|
block.mechanical-pump.description = Pumps and outputs liquids. Does not require power.
|
||||||
block.thermal-pump.description = The ultimate pump.
|
block.rotary-pump.description = Pumps and outputs liquids. Requires power.
|
||||||
block.conduit.description = Basic liquid transport block. Moves liquids forward. Used in conjunction with pumps and other conduits.
|
block.thermal-pump.description = Pumps and outputs liquids.
|
||||||
block.pulse-conduit.description = An advanced liquid transport block. Transports liquids faster and stores more than standard conduits.
|
block.conduit.description = Moves liquids forward. Used in conjunction with pumps and other conduits.
|
||||||
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.\nDoes not leak.
|
block.pulse-conduit.description = Moves liquids forward. Transports faster and stores more than standard conduits.
|
||||||
block.liquid-router.description = Accepts liquids from one direction and outputs them to up to 3 other directions equally. Can also store a certain amount of liquid. Useful for splitting the liquids from one source to multiple targets.
|
block.plated-conduit.description = Moves liquids forward. Does not accept input from the sides. Does not leak.
|
||||||
block.liquid-tank.description = Stores a large amount of liquids. Use for creating buffers in situations with non-constant demand of materials or as a safeguard for cooling vital blocks.
|
block.liquid-router.description = Accepts liquids from one direction and outputs them to up to 3 other directions equally. Can also store a certain amount of liquid.
|
||||||
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.liquid-tank.description = Stores a large amount of liquid. Outputs to all sides, similarly to a liquid router.
|
||||||
block.bridge-conduit.description = Advanced liquid transport block. Allows transporting liquids over up to 3 tiles of any terrain or building.
|
block.liquid-junction.description = Acts as a bridge for two crossing conduits.
|
||||||
block.phase-conduit.description = Advanced liquid transport block. Uses power to teleport liquids to a connected phase conduit over several tiles.
|
block.bridge-conduit.description = Transports liquids over terrain or buildings.
|
||||||
|
block.phase-conduit.description = Transports liquids over terrain or buildings. Longer range than the bridge conduit, but requires power.
|
||||||
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.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.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.surge-tower.description = A 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.diode.description = Moves battery power in 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.description = Stores power in times of surplus energy. Outputs power in times of deficit.
|
||||||
block.battery-large.description = Stores much more power than a regular battery.
|
block.battery-large.description = Stores power in times of surplus energy. Outputs power in times of deficit. Higher capacity than a regular battery.
|
||||||
block.combustion-generator.description = Generates power by burning flammable materials, such as coal.
|
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.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.steam-generator.description = Generates power by burning flammable materials and converting water to steam.
|
||||||
block.differential-generator.description = Generates large amounts of energy. Utilizes the temperature difference between cryofluid and burning pyratite.
|
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.rtg-generator.description = 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.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.solar-panel-large.description = Provides a small amount of power from the sun. More efficient than 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.thorium-reactor.description = Generates significant amounts of power from thorium. Requires constant cooling. Will explode violently if insufficient amounts of coolant are supplied.
|
||||||
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 = Creates 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.mechanical-drill.description = When placed on ore, 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.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.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.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.water-extractor.description = Extracts groundwater. Used in locations with no surface water available.
|
||||||
block.cultivator.description = Cultivates tiny concentrations of spores in the atmosphere into industry-ready pods.
|
block.cultivator.description = Cultivates tiny concentrations of atmospheric spores into spore 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.
|
block.oil-extractor.description = Uses large amounts of power, sand and water to drill for oil.
|
||||||
block.core-shard.description = The first iteration of the core capsule. Once destroyed, all contact to the region is lost. Do not let this happen.
|
block.core-shard.description = Core of the base. Once destroyed, the sector is lost.
|
||||||
block.core-foundation.description = The second version of the core. Better armored. Stores more resources.
|
block.core-shard.details = The first iteration. Compact. Self-replicating. Equipped with single-use launch thrusters. Not designed for interplanetary travel.
|
||||||
block.core-nucleus.description = The third and final iteration of the core capsule. Extremely well armored. Stores massive amounts of resources.
|
block.core-foundation.description = Core of the base. Well armored. Stores more resources than a Shard.
|
||||||
block.vault.description = Stores a large amount of items of each type. An unloader block can be used to retrieve items from the vault.
|
block.core-foundation.details = The second iteration.
|
||||||
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.core-nucleus.description = Core of the base. Extremely well armored. Stores massive amounts of resources.
|
||||||
block.unloader.description = Unloads items from any nearby non-transportation block. The type of item to be unloaded can be changed by tapping.
|
block.core-nucleus.details = The third and final iteration.
|
||||||
block.launch-pad.description = Launches batches of items without any need for a core launch.
|
block.vault.description = Stores a large amount of items of each type. Contents can be retrieved with an unloader.
|
||||||
block.launch-pad-large.description = An improved version of the launch pad. Stores more items. Launches more frequently.
|
block.container.description = Stores a small amount of items of each type. Contents can be retrieved with an unloader.
|
||||||
block.duo.description = A small, cheap turret. Useful against ground units.
|
block.unloader.description = Unloads the selected item from nearby blocks.
|
||||||
block.scatter.description = An essential anti-air turret. Sprays clumps of lead, scrap or metaglass flak at enemy units.
|
block.launch-pad.description = Launches batches of items to selected sectors.
|
||||||
|
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.
|
block.scorch.description = Burns any ground enemies close to it. Highly effective at close range.
|
||||||
block.hail.description = A small, long-range artillery turret.
|
block.hail.description = Fires small shells at ground enemies over long distances.
|
||||||
block.wave.description = A medium-sized turret. Shoots streams of liquid at enemies. Automatically extinguishes fires when supplied with water.
|
block.wave.description = Fires streams of liquid at enemies. Automatically extinguishes fires when supplied with water.
|
||||||
block.lancer.description = A medium-sized anti-ground laser turret. Charges and fires powerful beams of energy.
|
block.lancer.description = Charges and fires powerful beams of energy at ground targets.
|
||||||
block.arc.description = A small close-range electric turret. Fires arcs of electricity at enemies.
|
block.arc.description = Fires arcs of electricity at ground targets.
|
||||||
block.swarmer.description = A medium-sized missile turret. Attacks both air and ground enemies. Fires homing missiles.
|
block.swarmer.description = Fires homing missiles at enemies.
|
||||||
block.salvo.description = A larger, more advanced version of the Duo turret. Fires quick salvos of bullets at the enemy.
|
block.salvo.description = Fires quick salvos of bullets at enemies.
|
||||||
block.fuse.description = A large, close-range shrapnel turret. Fires three piercing blasts at nearby enemies.
|
block.fuse.description = Fires three close-range piercing blasts at nearby enemies.
|
||||||
block.ripple.description = An extremely powerful artillery turret. Shoots clusters of shells at enemies over long distances.
|
block.ripple.description = Shoots clusters of shells at ground enemies over long distances.
|
||||||
block.cyclone.description = A large anti-air and anti-ground turret. Fires explosive clumps of flak at nearby units.
|
block.cyclone.description = Fires explosive clumps of flak at nearby enemies.
|
||||||
block.spectre.description = A massive dual-barreled cannon. Shoots large armor-piercing bullets at air and ground targets.
|
block.spectre.description = Fires large armor-piercing bullets at air and ground targets.
|
||||||
block.meltdown.description = A massive laser cannon. Charges and fires a persistent laser beam at nearby enemies. Requires coolant to operate.
|
block.meltdown.description = Charges and fires a persistent laser beam at nearby enemies. Requires coolant to operate.
|
||||||
block.repair-point.description = Continuously heals the closest damaged unit in its vicinity.
|
block.foreshadow.description = Fires a large single-target bolt over long distances.
|
||||||
|
block.repair-point.description = Continuously repairs the closest damaged unit in its vicinity.
|
||||||
block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
|
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.command-center.description = Controls unit behavior with several different commands.
|
||||||
|
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.
|
||||||
|
|
||||||
|
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 repair 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 damaged 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 incendiary 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.
|
||||||
@@ -350,6 +350,7 @@ waves.invalid = Neplatné vlny ve schránce.
|
|||||||
waves.copied = Vlny byly zkopírovány.
|
waves.copied = Vlny byly zkopírovány.
|
||||||
waves.none = Žádní nepřátelé nebyli definováni.\nVlny s prázdným rozložením budou automaticky upraveny na výchozí rozložení.
|
waves.none = Žádní nepřátelé nebyli definováni.\nVlny s prázdným rozložením budou automaticky upraveny na výchozí rozložení.
|
||||||
|
|
||||||
|
#toto je záměrně malými písmeny
|
||||||
wavemode.counts = počty
|
wavemode.counts = počty
|
||||||
wavemode.totals = součty
|
wavemode.totals = součty
|
||||||
wavemode.health = zdraví
|
wavemode.health = zdraví
|
||||||
@@ -419,9 +420,9 @@ toolmode.drawteams.description = Kreslí týmy místo bloků.
|
|||||||
filters.empty = [lightgray]Nejsou zadány žádné filtry, přidej filtr tlačítkem níže.[]
|
filters.empty = [lightgray]Nejsou zadány žádné filtry, přidej filtr tlačítkem níže.[]
|
||||||
filter.distort = Zkreslení
|
filter.distort = Zkreslení
|
||||||
filter.noise = Zašumění
|
filter.noise = Zašumění
|
||||||
filter.enemyspawn = Enemy Spawn Select
|
filter.enemyspawn = Výběr nepřítelské líhně
|
||||||
filter.spawnpath = Path To Spawn
|
filter.spawnpath = Cesta k líhni
|
||||||
filter.corespawn = Core Select
|
filter.corespawn = Váběr ládra
|
||||||
filter.median = Medián
|
filter.median = Medián
|
||||||
filter.oremedian = Medián rud
|
filter.oremedian = Medián rud
|
||||||
filter.blend = Prolnutí
|
filter.blend = Prolnutí
|
||||||
@@ -445,7 +446,7 @@ filter.option.amount = Amount
|
|||||||
filter.option.block = Blok
|
filter.option.block = Blok
|
||||||
filter.option.floor = Povrch
|
filter.option.floor = Povrch
|
||||||
filter.option.flooronto = Cílový povrch
|
filter.option.flooronto = Cílový povrch
|
||||||
filter.option.target = Target
|
filter.option.target = Cíl
|
||||||
filter.option.wall = Stěna
|
filter.option.wall = Stěna
|
||||||
filter.option.ore = Ruda
|
filter.option.ore = Ruda
|
||||||
filter.option.floor2 = Druhotný povrch
|
filter.option.floor2 = Druhotný povrch
|
||||||
@@ -482,6 +483,7 @@ launch.text = Vyslat
|
|||||||
research.multiplayer = Jen hostitel hry může vynalézat nové technologie.
|
research.multiplayer = Jen hostitel hry může vynalézat nové technologie.
|
||||||
uncover = Odkrýt mapu
|
uncover = Odkrýt mapu
|
||||||
configure = Přizpůsobit vybavení
|
configure = Přizpůsobit vybavení
|
||||||
|
#TODO
|
||||||
loadout = Načtení
|
loadout = Načtení
|
||||||
resources = Zdroje
|
resources = Zdroje
|
||||||
bannedblocks = Zakázané bloky
|
bannedblocks = Zakázané bloky
|
||||||
@@ -512,7 +514,7 @@ weather.rain.name = Déšť
|
|||||||
weather.snow.name = Sníh
|
weather.snow.name = Sníh
|
||||||
weather.sandstorm.name = Písečná ouře
|
weather.sandstorm.name = Písečná ouře
|
||||||
weather.sporestorm.name = Spórová bouře
|
weather.sporestorm.name = Spórová bouře
|
||||||
weather.fog.name = Fog
|
weather.fog.name = Mlha
|
||||||
|
|
||||||
sectors.unexplored = [lightgray]Neprozkoumáno
|
sectors.unexplored = [lightgray]Neprozkoumáno
|
||||||
sectors.resources = Zdroje:
|
sectors.resources = Zdroje:
|
||||||
@@ -523,11 +525,13 @@ sectors.launch = Vyslat
|
|||||||
sectors.select = Vybrat
|
sectors.select = Vybrat
|
||||||
sectors.nonelaunch = [lightgray]bez (slunce)[]
|
sectors.nonelaunch = [lightgray]bez (slunce)[]
|
||||||
sectors.rename = Přejmenovat sektor
|
sectors.rename = Přejmenovat sektor
|
||||||
sector.missingresources = [scarlet]Insufficient Core Resources
|
sector.missingresources = [scarlet]Nedostatečné zdroje v jádře[]
|
||||||
|
|
||||||
planet.serpulo.name = Serpulo
|
planet.serpulo.name = Serpulo
|
||||||
|
#TODO better name
|
||||||
planet.sun.name = Sol
|
planet.sun.name = Sol
|
||||||
|
|
||||||
|
#NOTE TO TRANSLATORS: don't bother editing these, they'll be removed and/or rewritten anyway
|
||||||
sector.groundZero.name = Základní tábor
|
sector.groundZero.name = Základní tábor
|
||||||
sector.craters.name = Krátery
|
sector.craters.name = Krátery
|
||||||
sector.frozenForest.name = Zamrzlý les
|
sector.frozenForest.name = Zamrzlý les
|
||||||
@@ -540,6 +544,10 @@ sector.tarFields.name = Dehtová pole
|
|||||||
sector.saltFlats.name = Solné nížiny
|
sector.saltFlats.name = Solné nížiny
|
||||||
sector.fungalPass.name = Plísňový průsmyk
|
sector.fungalPass.name = Plísňový průsmyk
|
||||||
|
|
||||||
|
#unused
|
||||||
|
#sector.impact0078.name = Impact 0078
|
||||||
|
#sector.crags.name = Crags
|
||||||
|
|
||||||
sector.groundZero.description = Optimální místo, kde znovu začít. Nízký výskyt nepřátel. Několik málo surovin.\nPosbírej co nejvíce olova a mědi.\nBěž dál.
|
sector.groundZero.description = Optimální místo, kde znovu začít. Nízký výskyt nepřátel. Několik málo surovin.\nPosbírej co nejvíce olova a mědi.\nBěž dál.
|
||||||
sector.frozenForest.description = Dokonce až sem, blízko hor, se dokázaly spóry rozrůst. Mráz je však nemůže zadržet navěky.\n\nPusť se do práce za pomocí energie. Stav spalovací generátory. Nauč se, jak používat opravovací věže.
|
sector.frozenForest.description = Dokonce až sem, blízko hor, se dokázaly spóry rozrůst. Mráz je však nemůže zadržet navěky.\n\nPusť se do práce za pomocí energie. Stav spalovací generátory. Nauč se, jak používat opravovací věže.
|
||||||
sector.saltFlats.description = Na okraji pouště leží Solné nížiny. V této lokaci se nachází jen několik málo surovin.\n\nNepřítel zde vybudoval zásobovací komplex. Znič jádro v jeho základně. Nenechej kámen na kameni.
|
sector.saltFlats.description = Na okraji pouště leží Solné nížiny. V této lokaci se nachází jen několik málo surovin.\n\nNepřítel zde vybudoval zásobovací komplex. Znič jádro v jeho základně. Nenechej kámen na kameni.
|
||||||
@@ -566,14 +574,13 @@ settings.clear.confirm = Jsi si jistý, že chceš vymazat Tvá data ve hře?\nT
|
|||||||
settings.clearall.confirm = [scarlet]Varování![]\nToto vyresetuje všechna Tvá data ve hře, včetně uložení hry, map, odemknutého postupu v kampani a nastavení ovládání.\nJakmile stiskneš "OK", všechna data se vymažou a hra se automaticky ukončí.
|
settings.clearall.confirm = [scarlet]Varování![]\nToto vyresetuje všechna Tvá data ve hře, včetně uložení hry, map, odemknutého postupu v kampani a nastavení ovládání.\nJakmile stiskneš "OK", všechna data se vymažou a hra se automaticky ukončí.
|
||||||
settings.clearsaves.confirm = Opravdu chceš vymazat veškeré Tvé uložené hry?
|
settings.clearsaves.confirm = Opravdu chceš vymazat veškeré Tvé uložené hry?
|
||||||
settings.clearsaves = Vymazat uložené hry
|
settings.clearsaves = Vymazat uložené hry
|
||||||
settings.clearresearch = Clear Research
|
settings.clearresearch = Vymazat výzkum
|
||||||
settings.clearresearch.confirm = Are you sure you want to clear all of your campaign research?
|
settings.clearresearch.confirm = Jsi si jist, že opravdu chceš vymazat veškerý dosažený výzkum v této kampani?
|
||||||
settings.clearcampaignsaves = Clear Campaign Saves
|
settings.clearcampaignsaves = Vymazat uložené hry kampaně
|
||||||
settings.clearcampaignsaves.confirm = Are you sure you want to clear all of your campaign saves?
|
settings.clearcampaignsaves.confirm = Jsi si jist, že opravdu chceš vymazat všechny uložené hry v této kampani?
|
||||||
paused = [accent]< Pozastaveno >[]
|
paused = [accent]< Pozastaveno >[]
|
||||||
clear = Vyčistit
|
clear = Vyčistit
|
||||||
banned = [scarlet]Zakázán[]
|
banned = [scarlet]Zakázán[]
|
||||||
unplaceable.sectorcaptured = [scarlet]Vyžaduje polapený sektor[]
|
|
||||||
yes = Ano
|
yes = Ano
|
||||||
no = Ne
|
no = Ne
|
||||||
info.title = Informace
|
info.title = Informace
|
||||||
@@ -626,28 +633,30 @@ stat.reload = Střel za 1s
|
|||||||
stat.ammo = Střelivo
|
stat.ammo = Střelivo
|
||||||
stat.shieldhealth = Zdraví štítu
|
stat.shieldhealth = Zdraví štítu
|
||||||
stat.cooldowntime = Čas na zchladnutí
|
stat.cooldowntime = Čas na zchladnutí
|
||||||
stat.explosiveness = Explosiveness
|
stat.explosiveness = Výbušnost
|
||||||
stat.basedeflectchance = Base Deflect Chance
|
stat.basedeflectchance = Základní pravděpobnost odražení
|
||||||
stat.lightningchance = Lightning Chance
|
stat.lightningchance = Pravděpodobnost blesku
|
||||||
stat.lightningdamage = Lightning Damage
|
stat.lightningdamage = Poškození bleskem
|
||||||
stat.flammability = Flammability
|
stat.flammability = Hořlavost
|
||||||
stat.radioactivity = Radioactivity
|
stat.radioactivity = Radioaktivita
|
||||||
stat.heatcapacity = HeatCapacity
|
stat.heatcapacity = Tepelná kapacita
|
||||||
stat.viscosity = Viscosity
|
stat.viscosity = Vazkost
|
||||||
stat.temperature = Temperature
|
stat.temperature = Teplota
|
||||||
stat.speed = Speed
|
stat.speed = Rychlost
|
||||||
stat.buildspeed = Build Speed
|
stat.buildspeed = Rychlost stavění
|
||||||
stat.minespeed = Mine Speed
|
stat.minespeed = Rychlost těžení
|
||||||
stat.minetier = Mine Tier
|
stat.minetier = Těžící úroveň
|
||||||
stat.payloadcapacity = Payload Capacity
|
stat.payloadcapacity = Kapacita pro náklad
|
||||||
stat.commandlimit = Command Limit
|
stat.commandlimit = Limit ovládání
|
||||||
stat.abilities = Abilities
|
stat.abilities = Schopnosti
|
||||||
|
stat.canboost = Umí posilovat
|
||||||
|
stat.flying = Létající
|
||||||
|
|
||||||
ability.forcefield = Force Field
|
ability.forcefield = Silové pole
|
||||||
ability.repairfield = Repair Field
|
ability.repairfield = Opravit pole
|
||||||
ability.statusfield = Status Field
|
ability.statusfield = Stav pole
|
||||||
ability.unitspawn = {0} Factory
|
ability.unitspawn = {0} továrna
|
||||||
ability.shieldregenfield = Shield Regen Field
|
ability.shieldregenfield = Silově opravné pole
|
||||||
|
|
||||||
bar.drilltierreq = Je vyžadován lepší vrt
|
bar.drilltierreq = Je vyžadován lepší vrt
|
||||||
bar.noresources = Chybějí zdroje
|
bar.noresources = Chybějí zdroje
|
||||||
@@ -688,7 +697,7 @@ bullet.multiplier = [stat]{0}[lightgray]x více střel[]
|
|||||||
bullet.reload = [stat]{0}[lightgray]x rychlost střelby[]
|
bullet.reload = [stat]{0}[lightgray]x rychlost střelby[]
|
||||||
|
|
||||||
unit.blocks = bloky
|
unit.blocks = bloky
|
||||||
unit.blockssquared = blocks²
|
unit.blockssquared = bloky²
|
||||||
unit.powersecond = energie/sekunda
|
unit.powersecond = energie/sekunda
|
||||||
unit.liquidsecond = kapalin/sekundu
|
unit.liquidsecond = kapalin/sekundu
|
||||||
unit.itemssecond = předmětů/sekundu
|
unit.itemssecond = předmětů/sekundu
|
||||||
@@ -711,7 +720,7 @@ category.power = Energie
|
|||||||
category.liquids = Kapaliny
|
category.liquids = Kapaliny
|
||||||
category.items = Předměty
|
category.items = Předměty
|
||||||
category.crafting = Vstup/Výstup
|
category.crafting = Vstup/Výstup
|
||||||
category.function = Function
|
category.function = Funkce
|
||||||
category.optional = Volitelné vylepšení
|
category.optional = Volitelné vylepšení
|
||||||
setting.landscape.name = Uzamknout krajinu
|
setting.landscape.name = Uzamknout krajinu
|
||||||
setting.shadows.name = Stíny
|
setting.shadows.name = Stíny
|
||||||
@@ -719,8 +728,9 @@ setting.blockreplace.name = Automatický návrh bloků
|
|||||||
setting.linear.name = Lineární filtrování
|
setting.linear.name = Lineární filtrování
|
||||||
setting.hints.name = Rady a tipy
|
setting.hints.name = Rady a tipy
|
||||||
setting.flow.name = Zobrazit rychlost toku zdroje [scarlet](experimentální)[]
|
setting.flow.name = Zobrazit rychlost toku zdroje [scarlet](experimentální)[]
|
||||||
|
setting.backgroundpause.name = Pozastavit na pozadí
|
||||||
setting.buildautopause.name = Automaticky pozastavit stavění
|
setting.buildautopause.name = Automaticky pozastavit stavění
|
||||||
setting.animatedwater.name = Animované tekutiny
|
setting.animatedwater.name = Animované povrchy
|
||||||
setting.animatedshields.name = Animované štíty
|
setting.animatedshields.name = Animované štíty
|
||||||
setting.antialias.name = Použít antialias [lightgray](vyžaduje restart)[]
|
setting.antialias.name = Použít antialias [lightgray](vyžaduje restart)[]
|
||||||
setting.playerindicators.name = Indikátor pro hráče
|
setting.playerindicators.name = Indikátor pro hráče
|
||||||
|
|||||||
@@ -20,8 +20,8 @@ gameover = Der Kern wurde zerstört.
|
|||||||
gameover.pvp = Das[accent] {0}[] Team ist siegreich!
|
gameover.pvp = Das[accent] {0}[] Team ist siegreich!
|
||||||
highscore = [accent]Neuer Highscore!
|
highscore = [accent]Neuer Highscore!
|
||||||
copied = Kopiert.
|
copied = Kopiert.
|
||||||
indev.popup = [accent]v6[] is currently in [accent]alpha[].\n[lightgray]This means:[]\n[scarlet]- The campaign is completely unfinished[]\n- Content is missing\n - Most [scarlet]Unit AI[] does not work properly\n- Many units are unfinished\n- Everything you see is subject to change or removal.\n\nReport bugs or crashes on [accent]Github[].
|
indev.popup = [accent]v6[] ist gerade in der [accent]Beta-Phase[].\n[lightgray]Das bedeutet:[]\n[scarlet]- Die Kampagne ist unfertig[]\n- Musik/SFX sind unfertig\n- Alles kann jederzeit verändert oder entfernt werden\n\nMelde Bugs und Abstürze auf [accent]Github[].
|
||||||
indev.notready = This part of the game isn't ready yet
|
indev.notready = Dieser Teil vom Spiel ist noch unfertig.
|
||||||
|
|
||||||
load.sound = Audio
|
load.sound = Audio
|
||||||
load.map = Karten
|
load.map = Karten
|
||||||
@@ -55,7 +55,7 @@ schematic.saved = Entwurf gespeichert.
|
|||||||
schematic.delete.confirm = Dieser Entwurf wird vollständig vernichtet.
|
schematic.delete.confirm = Dieser Entwurf wird vollständig vernichtet.
|
||||||
schematic.rename = Entwurf umbenennen
|
schematic.rename = Entwurf umbenennen
|
||||||
schematic.info = {0}x{1}, {2} Blöcke
|
schematic.info = {0}x{1}, {2} Blöcke
|
||||||
schematic.disabled = [scarlet]Schematics disabled[]\nYou are not allowed to use schematics on this [accent]map[] or [accent]server.
|
schematic.disabled = [scarlet]Entwürfe deaktiviert[]\nAuf dieser [accent]Karte[] oder [accent]Server[] dürfen keine Entwürfe verwendet werden.
|
||||||
|
|
||||||
stat.wave = Wellen besiegt:[accent] {0}
|
stat.wave = Wellen besiegt:[accent] {0}
|
||||||
stat.enemiesDestroyed = Gegner zerstört:[accent] {0}
|
stat.enemiesDestroyed = Gegner zerstört:[accent] {0}
|
||||||
@@ -63,15 +63,15 @@ stat.built = Gebäude gebaut:[accent] {0}
|
|||||||
stat.destroyed = Gebäude zerstört:[accent] {0}
|
stat.destroyed = Gebäude zerstört:[accent] {0}
|
||||||
stat.deconstructed = Gebäude abgebaut:[accent] {0}
|
stat.deconstructed = Gebäude abgebaut:[accent] {0}
|
||||||
stat.delivered = Übertragene Ressourcen:
|
stat.delivered = Übertragene Ressourcen:
|
||||||
stat.playtime = Time Played:[accent] {0}
|
stat.playtime = Spielzeit:[accent] {0}
|
||||||
stat.rank = Finaler Rang:[accent] {0}
|
stat.rank = Finaler Rang:[accent] {0}
|
||||||
|
|
||||||
globalitems = [accent]Global Items
|
globalitems = [accent]Globale Items
|
||||||
map.delete = Bist du sicher, dass du die Karte "[accent]{0}[]" löschen möchtest?
|
map.delete = Bist du sicher, dass du die Karte "[accent]{0}[]" löschen möchtest?
|
||||||
level.highscore = Highscore: [accent]{0}
|
level.highscore = Highscore: [accent]{0}
|
||||||
level.select = Level-Auswahl
|
level.select = Level-Auswahl
|
||||||
level.mode = Spielmodus:
|
level.mode = Spielmodus:
|
||||||
coreattack = < Die Basis wird angegriffen! >
|
coreattack = < Der Kern wird angegriffen! >
|
||||||
nearpoint = [[ [scarlet]SOFORT DEN SPAWNPUNKT VERLASSEN[] ]\nVernichtung droht
|
nearpoint = [[ [scarlet]SOFORT DEN SPAWNPUNKT VERLASSEN[] ]\nVernichtung droht
|
||||||
database = Kern-Datenbank
|
database = Kern-Datenbank
|
||||||
savegame = Spiel speichern
|
savegame = Spiel speichern
|
||||||
@@ -107,28 +107,28 @@ mods.guide = Modding-Anleitung
|
|||||||
mods.report = Problem melden
|
mods.report = Problem melden
|
||||||
mods.openfolder = Mod-Verzeichnis öffnen
|
mods.openfolder = Mod-Verzeichnis öffnen
|
||||||
mods.reload = Neu laden
|
mods.reload = Neu laden
|
||||||
mods.reloadexit = The game will now exit, to reload mods.
|
mods.reloadexit = Das Spiel wird jetzt beendet, um die Mod-Änderungen anzuwenden.
|
||||||
mod.display = [gray]Mod:[orange] {0}
|
mod.display = [gray]Mod:[orange] {0}
|
||||||
mod.enabled = [lightgray]Aktiviert
|
mod.enabled = [lightgray]Aktiviert
|
||||||
mod.disabled = [scarlet]Deaktiviert
|
mod.disabled = [scarlet]Deaktiviert
|
||||||
mod.disable = Deaktivieren
|
mod.disable = Deaktivieren
|
||||||
mod.content = Content:
|
mod.content = Inhalt:
|
||||||
mod.delete.error = Unfähig Mod zu löschen. Datei könnte in Benutzung sein.
|
mod.delete.error = Unfähig Mod zu löschen. Datei könnte in Benutzung sein.
|
||||||
mod.requiresversion = [scarlet]Benötigt mindestens Version:[accent] {0}
|
mod.requiresversion = [scarlet]Benötigt mindestens Version:[accent] {0}
|
||||||
mod.outdated = [scarlet]Not compatible with V6 (no minGameVersion: 105)
|
mod.outdated = [scarlet]Nicht mit V6 kompatibel (no minGameVersion: 105)
|
||||||
mod.missingdependencies = [scarlet]Fehlende Abhängigkeiten: {0}
|
mod.missingdependencies = [scarlet]Fehlende Abhängigkeiten: {0}
|
||||||
mod.erroredcontent = [scarlet]Inhalt-Fehler
|
mod.erroredcontent = [scarlet]Inhalt-Fehler
|
||||||
mod.errors = Beim Laden von Inhalt sind Fehler aufgetreten.
|
mod.errors = Beim Laden von Inhalt sind Fehler aufgetreten.
|
||||||
mod.noerrorplay = [scarlet]Du hast Mods mit Fehlern.[] Deaktiviere die Mods oder fixe die Fehler, bevor du spielst.
|
mod.noerrorplay = [scarlet]Du hast Mods mit Fehlern.[] Deaktiviere die Mods oder behebe die Fehler, bevor du spielst.
|
||||||
mod.nowdisabled = [scarlet]Mod '{0}' fehlen Abhängigkeiten:[accent] {1}\n[lightgray]Diese Mods müssen erst installiert werden.\nDieser Mod wird automatisch deaktiviert.
|
mod.nowdisabled = [scarlet]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.enable = Aktivieren
|
||||||
mod.requiresrestart = Das Spiel wird jetzt beendet, um die Mod-Änderungen anzuwenden.
|
mod.requiresrestart = Das Spiel wird jetzt beendet, um die Mod-Änderungen anzuwenden.
|
||||||
mod.reloadrequired = [scarlet]Neuladen benötigt
|
mod.reloadrequired = [scarlet]Neuladen benötigt
|
||||||
mod.import = Mod importieren
|
mod.import = Mod importieren
|
||||||
mod.import.file = Import File
|
mod.import.file = Datei importieren
|
||||||
mod.import.github = GitHub-Mod importieren
|
mod.import.github = GitHub-Mod importieren
|
||||||
mod.jarwarn = [scarlet]JAR mods are inherently unsafe.[]\nMake sure you're importing this mod from a trustworthy source!
|
mod.jarwarn = [scarlet]JAR Mods sind nicht sicher.[]\nInstalliere nur Mods von vertrauenswürdigen Quellen!
|
||||||
mod.item.remove = This item is part of the[accent] '{0}'[] mod. To remove it, uninstall that mod.
|
mod.item.remove = Dies ist Teil vom [accent] '{0}'[] Mod. Deaktivieren sie diesen Mod, um dies zu entfernen.
|
||||||
mod.remove.confirm = Dieser Mod wird gelöscht.
|
mod.remove.confirm = Dieser Mod wird gelöscht.
|
||||||
mod.author = [lightgray]Autor:[] {0}
|
mod.author = [lightgray]Autor:[] {0}
|
||||||
mod.missing = Dieser Spielstand enthält Mods, welche nicht mehr vorhanden oder aktualisiert wurden. Spielstandfehler könnten passieren. Bist du dir sicher, das du ihn laden möchtest?\n[lightgray]Mods:\n{0}
|
mod.missing = Dieser Spielstand enthält Mods, welche nicht mehr vorhanden oder aktualisiert wurden. Spielstandfehler könnten passieren. Bist du dir sicher, das du ihn laden möchtest?\n[lightgray]Mods:\n{0}
|
||||||
@@ -139,8 +139,8 @@ mod.scripts.disable = Ihr Gerät unterstüzt keine Mods mit Scripts. Du musst di
|
|||||||
about.button = Info
|
about.button = Info
|
||||||
name = Name:
|
name = Name:
|
||||||
noname = Wähle zunächst einen[accent] Spielernamen[].
|
noname = Wähle zunächst einen[accent] Spielernamen[].
|
||||||
planetmap = Planet Map
|
planetmap = Planetenkarte
|
||||||
launchcore = Launch Core
|
launchcore = Kern starten
|
||||||
filename = Dateiname:
|
filename = Dateiname:
|
||||||
unlocked = Neuer Inhalt freigeschaltet!
|
unlocked = Neuer Inhalt freigeschaltet!
|
||||||
completed = [accent]Abgeschlossen
|
completed = [accent]Abgeschlossen
|
||||||
@@ -148,11 +148,11 @@ techtree = Forschung
|
|||||||
research.list = [lightgray]Forschung:
|
research.list = [lightgray]Forschung:
|
||||||
research = Erforschen
|
research = Erforschen
|
||||||
researched = [lightgray]{0} erforscht.
|
researched = [lightgray]{0} erforscht.
|
||||||
research.progress = {0}% complete
|
research.progress = Fortschritt: {0}%
|
||||||
players = {0} Spieler online
|
players = {0} Spieler online
|
||||||
players.single = {0} Spieler online
|
players.single = {0} Spieler online
|
||||||
players.search = search
|
players.search = Suche
|
||||||
players.notfound = [gray]no players found
|
players.notfound = [gray]Keine Spieler gefunden
|
||||||
server.closing = [accent]Schließe den Server ...
|
server.closing = [accent]Schließe den Server ...
|
||||||
server.kicked.kick = Du wurdest vom Server geworfen!
|
server.kicked.kick = Du wurdest vom Server geworfen!
|
||||||
server.kicked.whitelist = Du befindest dich nicht auf der Whitelist des Servers.
|
server.kicked.whitelist = Du befindest dich nicht auf der Whitelist des Servers.
|
||||||
@@ -185,9 +185,9 @@ server.refreshing = Server wird aktualisiert
|
|||||||
hosts.none = [lightgray]Keine LAN-Spiele gefunden!
|
hosts.none = [lightgray]Keine LAN-Spiele gefunden!
|
||||||
host.invalid = [scarlet]Kann keine Verbindung zum Host herstellen.
|
host.invalid = [scarlet]Kann keine Verbindung zum Host herstellen.
|
||||||
|
|
||||||
servers.local = Local Servers
|
servers.local = Lokale Server
|
||||||
servers.remote = Remote Servers
|
servers.remote = Andere Server
|
||||||
servers.global = Community Servers
|
servers.global = Community-Server
|
||||||
|
|
||||||
trace = Spieler verfolgen
|
trace = Spieler verfolgen
|
||||||
trace.playername = Spielername: [accent]{0}
|
trace.playername = Spielername: [accent]{0}
|
||||||
@@ -212,7 +212,7 @@ confirmkick = Bist du sicher, dass du diesen Spieler rauswerfen willst?
|
|||||||
confirmvotekick = Bist du sicher, dass du darüber abstimmen willst, diesen Spieler rauszuwerfen?
|
confirmvotekick = Bist du sicher, dass du darüber abstimmen willst, diesen Spieler rauszuwerfen?
|
||||||
confirmunban = Bist du sicher, dass du die Verbannung des Spielers rückgängig machen 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?
|
confirmadmin = Bist du sicher, dass du diesen Spieler zu einem Administrator machen möchtest?
|
||||||
confirmunadmin = Bis du sicher, dass dieser Spieler kein Administrator mehr sein soll?
|
confirmunadmin = Bist du sicher, dass dieser Spieler kein Administrator mehr sein soll?
|
||||||
joingame.title = Spiel beitreten
|
joingame.title = Spiel beitreten
|
||||||
joingame.ip = IP:
|
joingame.ip = IP:
|
||||||
disconnect = Verbindung unterbrochen.
|
disconnect = Verbindung unterbrochen.
|
||||||
@@ -269,7 +269,7 @@ copylink = Link kopieren
|
|||||||
back = Zurück
|
back = Zurück
|
||||||
data.export = Daten exportieren
|
data.export = Daten exportieren
|
||||||
data.import = Daten importieren
|
data.import = Daten importieren
|
||||||
data.openfolder = Open Data Folder
|
data.openfolder = Datenordner öffnen
|
||||||
data.exported = Daten exportiert.
|
data.exported = Daten exportiert.
|
||||||
data.invalid = Dies sind keine gültigen Spieldaten.
|
data.invalid = Dies sind keine gültigen Spieldaten.
|
||||||
data.import.confirm = Der Import von externen Daten wird [scarlet] alle[] deine gegenwärtigen Spieldaten löschen.\n[accent]Das kann nicht rückgängig gemacht werden![]Sobald der Import abeschlossen ist, wird dein Spiel sofort beendet.
|
data.import.confirm = Der Import von externen Daten wird [scarlet] alle[] deine gegenwärtigen Spieldaten löschen.\n[accent]Das kann nicht rückgängig gemacht werden![]Sobald der Import abeschlossen ist, wird dein Spiel sofort beendet.
|
||||||
@@ -278,21 +278,21 @@ quit.confirm.tutorial = Weißt du, was du tust?\nDu kannst das Tutorial unter[ac
|
|||||||
loading = [accent]Wird geladen...
|
loading = [accent]Wird geladen...
|
||||||
reloading = [accent]Lade Mods neu...
|
reloading = [accent]Lade Mods neu...
|
||||||
saving = [accent]Speichere...
|
saving = [accent]Speichere...
|
||||||
respawn = [accent][[{0}][] to respawn in core
|
respawn = [accent][[{0}][] um im Kern zu spawnen
|
||||||
cancelbuilding = [accent][[{0}][] um den Plan zu leeren
|
cancelbuilding = [accent][[{0}][] um den Plan zu leeren
|
||||||
selectschematic = [accent][[{0}][] zum Auswählen+Kopieren
|
selectschematic = [accent][[{0}][] zum Auswählen+Kopieren
|
||||||
pausebuilding = [accent][[{0}][] um das Bauen zu pausieren
|
pausebuilding = [accent][[{0}][] um das Bauen zu pausieren
|
||||||
resumebuilding = [scarlet][[{0}][] um das Bauen fortzusetzen
|
resumebuilding = [scarlet][[{0}][] um das Bauen fortzusetzen
|
||||||
wave = [accent]Welle {0}
|
wave = [accent]Welle {0}
|
||||||
wave.cap = [accent]Wave {0}/{1}
|
wave.cap = [accent]Welle {0}/{1}
|
||||||
wave.waiting = Welle in {0}
|
wave.waiting = Welle in {0}
|
||||||
wave.waveInProgress = [lightgray]Welle im Gange
|
wave.waveInProgress = [lightgray]Welle im Gange
|
||||||
waiting = Warten...
|
waiting = Warten...
|
||||||
waiting.players = Warte auf Spieler...
|
waiting.players = Warte auf Spieler...
|
||||||
wave.enemies = [lightgray]{0} Gegner verbleiben
|
wave.enemies = [lightgray]{0} Gegner verbleiben
|
||||||
wave.enemy = [lightgray]{0} Gegner verbleiben
|
wave.enemy = [lightgray]{0} Gegner verbleiben
|
||||||
wave.guardianwarn = Guardian approaching in [accent]{0}[] waves.
|
wave.guardianwarn = Boss erscheint in [accent]{0}[] Wellen.
|
||||||
wave.guardianwarn.one = Guardian approaching in [accent]{0}[] wave.
|
wave.guardianwarn.one = Boss erscheint in [accent]{0}[] Welle.
|
||||||
loadimage = Bild laden
|
loadimage = Bild laden
|
||||||
saveimage = Bild speichern
|
saveimage = Bild speichern
|
||||||
unknown = Unbekannt
|
unknown = Unbekannt
|
||||||
@@ -309,7 +309,7 @@ workshop.error = Fehler beim Laden von Workshop-Details: {0}
|
|||||||
map.publish.confirm = Willst du diese Karte wirklich veröffentlichen?\n\n[lightgray]Vergewissere dich, dass du der Workshop-EULA zugestimmt hast, sonst tauchen deine Karten nicht auf!
|
map.publish.confirm = Willst du diese Karte wirklich veröffentlichen?\n\n[lightgray]Vergewissere dich, dass du der Workshop-EULA zugestimmt hast, sonst tauchen deine Karten nicht auf!
|
||||||
workshop.menu = Wähle aus, was du mit diesem Objekt tun willst.
|
workshop.menu = Wähle aus, was du mit diesem Objekt tun willst.
|
||||||
workshop.info = Objekt-Info
|
workshop.info = Objekt-Info
|
||||||
changelog = Changelog (optional):
|
changelog = Änderungen (optional):
|
||||||
eula = Steam EULA
|
eula = Steam EULA
|
||||||
missing = Dieses Objekt wurde gelöscht oder verschoben.\n[lightgray]Die Workshop-Auflistung ist nun automatisch getrennt worden.
|
missing = Dieses Objekt wurde gelöscht oder verschoben.\n[lightgray]Die Workshop-Auflistung ist nun automatisch getrennt worden.
|
||||||
publishing = [accent]Veröffentlichen...
|
publishing = [accent]Veröffentlichen...
|
||||||
@@ -331,17 +331,17 @@ editor.generation = Generator:
|
|||||||
editor.ingame = Im Spiel Bearbeiten
|
editor.ingame = Im Spiel Bearbeiten
|
||||||
editor.publish.workshop = Im Workshop veröffentlichen
|
editor.publish.workshop = Im Workshop veröffentlichen
|
||||||
editor.newmap = Neue Karte
|
editor.newmap = Neue Karte
|
||||||
editor.center = Center
|
editor.center = Zur Mitte
|
||||||
workshop = Workshop
|
workshop = Workshop
|
||||||
waves.title = Wellen
|
waves.title = Wellen
|
||||||
waves.remove = Entfernen
|
waves.remove = Entfernen
|
||||||
waves.never = <nie>
|
waves.never = <nie>
|
||||||
waves.every = alle
|
waves.every = alle
|
||||||
waves.waves = Welle(n)
|
waves.waves = Welle(n)
|
||||||
waves.perspawn = per Spawn
|
waves.perspawn = pro Spawn
|
||||||
waves.shields = shields/wave
|
waves.shields = Schilder pro Welle
|
||||||
waves.to = bis
|
waves.to = bis
|
||||||
waves.guardian = Guardian
|
waves.guardian = Boss
|
||||||
waves.preview = Vorschau
|
waves.preview = Vorschau
|
||||||
waves.edit = Bearbeiten...
|
waves.edit = Bearbeiten...
|
||||||
waves.copy = Aus der Zwischenablage kopieren
|
waves.copy = Aus der Zwischenablage kopieren
|
||||||
@@ -350,9 +350,9 @@ waves.invalid = Ungültige Wellen in der Zwischenablage.
|
|||||||
waves.copied = Wellen kopiert.
|
waves.copied = Wellen kopiert.
|
||||||
waves.none = Keine Gegner definiert.\nInfo: Leere Wellenentwürfe werden automatisch mit dem Standard-Entwurf ersetzt.
|
waves.none = Keine Gegner definiert.\nInfo: Leere Wellenentwürfe werden automatisch mit dem Standard-Entwurf ersetzt.
|
||||||
|
|
||||||
wavemode.counts = counts
|
wavemode.counts = Menge
|
||||||
wavemode.totals = totals
|
wavemode.totals = Gesamtmenge
|
||||||
wavemode.health = health
|
wavemode.health = Lebenspunkte
|
||||||
|
|
||||||
editor.default = [lightgray]<Standard>
|
editor.default = [lightgray]<Standard>
|
||||||
details = Details
|
details = Details
|
||||||
@@ -419,9 +419,9 @@ toolmode.drawteams.description = Zeichnet Teams statt Blöcke.
|
|||||||
filters.empty = [lightgray]Keine Filter! Füge einen mit dem unteren Knopf hinzu.
|
filters.empty = [lightgray]Keine Filter! Füge einen mit dem unteren Knopf hinzu.
|
||||||
filter.distort = Verzerren
|
filter.distort = Verzerren
|
||||||
filter.noise = Rauschen
|
filter.noise = Rauschen
|
||||||
filter.enemyspawn = Enemy Spawn Select
|
filter.enemyspawn = Gegnerischer Spawn Auswahl
|
||||||
filter.spawnpath = Path To Spawn
|
filter.spawnpath = Weg zum Spawn
|
||||||
filter.corespawn = Core Select
|
filter.corespawn = Kernauswahl
|
||||||
filter.median = Median
|
filter.median = Median
|
||||||
filter.oremedian = Erzmedian
|
filter.oremedian = Erzmedian
|
||||||
filter.blend = Mischen
|
filter.blend = Mischen
|
||||||
@@ -432,7 +432,7 @@ filter.mirror = Spiegel
|
|||||||
filter.clear = Löschen
|
filter.clear = Löschen
|
||||||
filter.option.ignore = Ignorieren
|
filter.option.ignore = Ignorieren
|
||||||
filter.scatter = Streuen
|
filter.scatter = Streuen
|
||||||
filter.terrain = Terrain
|
filter.terrain = Landschaft
|
||||||
filter.option.scale = Skalierung
|
filter.option.scale = Skalierung
|
||||||
filter.option.chance = Wahrscheinlichkeit
|
filter.option.chance = Wahrscheinlichkeit
|
||||||
filter.option.mag = Größe
|
filter.option.mag = Größe
|
||||||
@@ -441,11 +441,11 @@ filter.option.circle-scale = Kreisskalierung
|
|||||||
filter.option.octaves = Oktaven
|
filter.option.octaves = Oktaven
|
||||||
filter.option.falloff = Rückgang
|
filter.option.falloff = Rückgang
|
||||||
filter.option.angle = Winkel
|
filter.option.angle = Winkel
|
||||||
filter.option.amount = Amount
|
filter.option.amount = Menge
|
||||||
filter.option.block = Block
|
filter.option.block = Block
|
||||||
filter.option.floor = Boden
|
filter.option.floor = Boden
|
||||||
filter.option.flooronto = Ziel Boden
|
filter.option.flooronto = Ziel Boden
|
||||||
filter.option.target = Target
|
filter.option.target = Ziel
|
||||||
filter.option.wall = Wand
|
filter.option.wall = Wand
|
||||||
filter.option.ore = Erz
|
filter.option.ore = Erz
|
||||||
filter.option.floor2 = Sekundärer Boden
|
filter.option.floor2 = Sekundärer Boden
|
||||||
@@ -475,18 +475,18 @@ locked = Gesperrt
|
|||||||
complete = [lightgray]Abschließen:
|
complete = [lightgray]Abschließen:
|
||||||
requirement.wave = Erreiche Welle {0} in {1}
|
requirement.wave = Erreiche Welle {0} in {1}
|
||||||
requirement.core = Zerstöre den feindlichen Kern in {0}
|
requirement.core = Zerstöre den feindlichen Kern in {0}
|
||||||
requirement.research = Research {0}
|
requirement.research = Erforsche {0}
|
||||||
requirement.capture = Capture {0}
|
requirement.capture = Erobere {0}
|
||||||
bestwave = [lightgray]Beste Welle: {0}
|
bestwave = [lightgray]Beste Welle: {0}
|
||||||
launch.text = Launch
|
launch.text = Start
|
||||||
research.multiplayer = Only the host can research items.
|
research.multiplayer = Nur der Host kann forschen.
|
||||||
uncover = Freischalten
|
uncover = Freischalten
|
||||||
configure = Startitems festlegen
|
configure = Startitems festlegen
|
||||||
loadout = Loadout
|
loadout = Startitems
|
||||||
resources = Resources
|
resources = Ressourcen
|
||||||
bannedblocks = Gesperrte Blöcke
|
bannedblocks = Gesperrte Blöcke
|
||||||
addall = Alle hinzufügen
|
addall = Alle hinzufügen
|
||||||
launch.destination = Destination: {0}
|
launch.destination = Ziel: {0}
|
||||||
configure.invalid = Anzahl muss eine Zahl zwischen 0 und {0} sein.
|
configure.invalid = Anzahl muss eine Zahl zwischen 0 und {0} sein.
|
||||||
zone.unlocked = [lightgray]{0} freigeschaltet.
|
zone.unlocked = [lightgray]{0} freigeschaltet.
|
||||||
zone.requirement.complete = Welle {0} erreicht:\n{1} Anforderungen der Zone erfüllt.
|
zone.requirement.complete = Welle {0} erreicht:\n{1} Anforderungen der Zone erfüllt.
|
||||||
@@ -495,7 +495,7 @@ zone.objective = [lightgray]Ziel: [accent]{0}
|
|||||||
zone.objective.survival = Überlebe
|
zone.objective.survival = Überlebe
|
||||||
zone.objective.attack = Zerstöre den feindlichen Kern
|
zone.objective.attack = Zerstöre den feindlichen Kern
|
||||||
add = Hinzufügen...
|
add = Hinzufügen...
|
||||||
boss.health = Boss-Lebenskraft
|
boss.health = Boss-Lebenspunkte
|
||||||
|
|
||||||
connectfail = [crimson] Verbindung zum Server konnte nicht hergestellt werden: [accent]{0}
|
connectfail = [crimson] Verbindung zum Server konnte nicht hergestellt werden: [accent]{0}
|
||||||
error.unreachable = Server nicht erreichbar.
|
error.unreachable = Server nicht erreichbar.
|
||||||
@@ -508,25 +508,25 @@ error.io = Netzwerk-I/O-Fehler.
|
|||||||
error.any = Unbekannter Netzwerkfehler.
|
error.any = Unbekannter Netzwerkfehler.
|
||||||
error.bloom = Bloom konnte nicht initialisiert werden.\nEs kann sein, dass dein Gerät es nicht unterstützt.
|
error.bloom = Bloom konnte nicht initialisiert werden.\nEs kann sein, dass dein Gerät es nicht unterstützt.
|
||||||
|
|
||||||
weather.rain.name = Rain
|
weather.rain.name = Regen
|
||||||
weather.snow.name = Snow
|
weather.snow.name = Schnee
|
||||||
weather.sandstorm.name = Sandstorm
|
weather.sandstorm.name = Sandsturm
|
||||||
weather.sporestorm.name = Sporestorm
|
weather.sporestorm.name = Sporensturm
|
||||||
weather.fog.name = Fog
|
weather.fog.name = Nebel
|
||||||
|
|
||||||
sectors.unexplored = [lightgray]Unexplored
|
sectors.unexplored = [lightgray]Unentdeckt
|
||||||
sectors.resources = Resources:
|
sectors.resources = Ressourcen:
|
||||||
sectors.production = Production:
|
sectors.production = Produktion:
|
||||||
sectors.stored = Stored:
|
sectors.stored = Gelagert:
|
||||||
sectors.resume = Resume
|
sectors.resume = Weiterspielen
|
||||||
sectors.launch = Launch
|
sectors.launch = Start
|
||||||
sectors.select = Select
|
sectors.select = Select
|
||||||
sectors.nonelaunch = [lightgray]none (sun)
|
sectors.nonelaunch = [lightgray]none (sun)
|
||||||
sectors.rename = Rename Sector
|
sectors.rename = Sektor umbenennen
|
||||||
sector.missingresources = [scarlet]Insufficient Core Resources
|
sector.missingresources = [scarlet]Fehlende Kernressourcen
|
||||||
|
|
||||||
planet.serpulo.name = Serpulo
|
planet.serpulo.name = Serpulo
|
||||||
planet.sun.name = Sun
|
planet.sun.name = Sonne
|
||||||
|
|
||||||
sector.groundZero.name = Ground Zero
|
sector.groundZero.name = Ground Zero
|
||||||
sector.craters.name = The Craters
|
sector.craters.name = The Craters
|
||||||
@@ -556,7 +556,7 @@ settings.language = Sprache
|
|||||||
settings.data = Spieldaten
|
settings.data = Spieldaten
|
||||||
settings.reset = Auf Standard zurücksetzen
|
settings.reset = Auf Standard zurücksetzen
|
||||||
settings.rebind = Zuweisen
|
settings.rebind = Zuweisen
|
||||||
settings.resetKey = Reset
|
settings.resetKey = Zurücksetzen
|
||||||
settings.controls = Steuerung
|
settings.controls = Steuerung
|
||||||
settings.game = Spiel
|
settings.game = Spiel
|
||||||
settings.sound = Audio
|
settings.sound = Audio
|
||||||
@@ -564,30 +564,30 @@ settings.graphics = Grafik
|
|||||||
settings.cleardata = Spieldaten zurücksetzen...
|
settings.cleardata = Spieldaten zurücksetzen...
|
||||||
settings.clear.confirm = Bist du sicher, dass du die Spieldaten zurücksetzen willst?\n Diese Aktion kann nicht rückgängig gemacht werden!
|
settings.clear.confirm = Bist du sicher, dass du die Spieldaten zurücksetzen willst?\n Diese Aktion kann nicht rückgängig gemacht werden!
|
||||||
settings.clearall.confirm = [scarlet]WARNUNG![]\nDas wird jegliche Spieldaten zurücksetzen, inklusive Speicherstände, Karten, Freischaltungen und Tastenbelegungen.\n Sobald du 'OK' drückst, wird alles zurückgesetzt und das Spiel schließt sich automatisch.
|
settings.clearall.confirm = [scarlet]WARNUNG![]\nDas wird jegliche Spieldaten zurücksetzen, inklusive Speicherstände, Karten, Freischaltungen und Tastenbelegungen.\n Sobald du 'OK' drückst, wird alles zurückgesetzt und das Spiel schließt sich automatisch.
|
||||||
settings.clearsaves.confirm = Are you sure you want to clear all your saves?
|
settings.clearsaves.confirm = Möchtest du wirklich alle Speicherstände löschen?
|
||||||
settings.clearsaves = Clear Saves
|
settings.clearsaves = Speicherstände löschen
|
||||||
settings.clearresearch = Clear Research
|
settings.clearresearch = Erforschungen löschen
|
||||||
settings.clearresearch.confirm = Are you sure you want to clear all of your campaign research?
|
settings.clearresearch.confirm = Möchtest du wirklich alle Erforschungen löschen?
|
||||||
settings.clearcampaignsaves = Clear Campaign Saves
|
settings.clearcampaignsaves = Kampagne-Speicherstände löschen
|
||||||
settings.clearcampaignsaves.confirm = Are you sure you want to clear all of your campaign saves?
|
settings.clearcampaignsaves.confirm = Möchtest du wirklich alle Kampagne-Speicherstände löschen?
|
||||||
paused = [accent]< Pausiert >
|
paused = [accent]< Pausiert >
|
||||||
clear = Leeren
|
clear = Leeren
|
||||||
banned = [scarlet]Verbannt
|
banned = [scarlet]Verbannt
|
||||||
unplaceable.sectorcaptured = [scarlet]Requires captured sector
|
unplaceable.sectorcaptured = [scarlet]Erfordert erforderter Sektor
|
||||||
yes = Ja
|
yes = Ja
|
||||||
no = Nein
|
no = Nein
|
||||||
info.title = Info
|
info.title = Info
|
||||||
error.title = [crimson]Ein Fehler ist aufgetreten
|
error.title = [crimson]Ein Fehler ist aufgetreten
|
||||||
error.crashtitle = Ein Fehler ist aufgetreten!
|
error.crashtitle = Ein Fehler ist aufgetreten!
|
||||||
unit.nobuild = [scarlet]Einheit kann nicht bauen!
|
unit.nobuild = [scarlet]Einheit kann nicht bauen!
|
||||||
lastaccessed = [lightgray]Last Accessed: {0}
|
lastaccessed = [lightgray]Zuletzt konfiguriert: {0}
|
||||||
block.unknown = [lightgray]???
|
block.unknown = [lightgray]???
|
||||||
|
|
||||||
stat.input = Eingang
|
stat.input = Eingang
|
||||||
stat.output = Ausgang
|
stat.output = Ausgang
|
||||||
stat.booster = Verstärkung
|
stat.booster = Verstärkung
|
||||||
stat.tiles = Required Tiles
|
stat.tiles = Erforderte Untergründe
|
||||||
stat.affinities = Affinities
|
stat.affinities = Affinitäten
|
||||||
stat.powercapacity = Kapazität
|
stat.powercapacity = Kapazität
|
||||||
stat.powershot = Stromverbrauch/Schuss
|
stat.powershot = Stromverbrauch/Schuss
|
||||||
stat.damage = Schaden
|
stat.damage = Schaden
|
||||||
@@ -597,16 +597,16 @@ stat.itemsmoved = Bewegungsgeschwindigkeit
|
|||||||
stat.launchtime = Zeit zwischen Starts
|
stat.launchtime = Zeit zwischen Starts
|
||||||
stat.shootrange = Reichweite
|
stat.shootrange = Reichweite
|
||||||
stat.size = Größe
|
stat.size = Größe
|
||||||
stat.displaysize = Display Size
|
stat.displaysize = Bildschirmgröße
|
||||||
stat.liquidcapacity = Flüssigkeitskapazität
|
stat.liquidcapacity = Flüssigkeitskapazität
|
||||||
stat.powerrange = Stromreichweite
|
stat.powerrange = Stromreichweite
|
||||||
stat.linkrange = Link Range
|
stat.linkrange = Verbindungsradius
|
||||||
stat.instructions = Instructions
|
stat.instructions = Befehle
|
||||||
stat.powerconnections = Maximale Stromverbindungen
|
stat.powerconnections = Maximale Stromverbindungen
|
||||||
stat.poweruse = Stromverbrauch
|
stat.poweruse = Stromverbrauch
|
||||||
stat.powerdamage = Stromverbrauch/Schadenspunkt
|
stat.powerdamage = Stromverbrauch/Schadenspunkt
|
||||||
stat.itemcapacity = Materialkapazität
|
stat.itemcapacity = Materialkapazität
|
||||||
stat.memorycapacity = Memory Capacity
|
stat.memorycapacity = Speicherkapazität
|
||||||
stat.basepowergeneration = Basis-Stromerzeugung
|
stat.basepowergeneration = Basis-Stromerzeugung
|
||||||
stat.productiontime = Produktionszeit
|
stat.productiontime = Produktionszeit
|
||||||
stat.repairtime = Zeit zur vollständigen Reparatur
|
stat.repairtime = Zeit zur vollständigen Reparatur
|
||||||
@@ -618,52 +618,52 @@ stat.boosteffect = Verstärkungseffekt
|
|||||||
stat.maxunits = Max. aktive Einheiten
|
stat.maxunits = Max. aktive Einheiten
|
||||||
stat.health = Lebenspunkte
|
stat.health = Lebenspunkte
|
||||||
stat.buildtime = Baudauer
|
stat.buildtime = Baudauer
|
||||||
stat.maxconsecutive = Max Consecutive
|
stat.maxconsecutive = Max. Konsekutive
|
||||||
stat.buildcost = Baukosten
|
stat.buildcost = Baukosten
|
||||||
stat.inaccuracy = Ungenauigkeit
|
stat.inaccuracy = Ungenauigkeit
|
||||||
stat.shots = Schüsse
|
stat.shots = Schüsse
|
||||||
stat.reload = Schüsse/Sekunde
|
stat.reload = Schüsse/Sekunde
|
||||||
stat.ammo = Munition
|
stat.ammo = Munition
|
||||||
stat.shieldhealth = Shield Health
|
stat.shieldhealth = Schildlebenspunkte
|
||||||
stat.cooldowntime = Cooldown Time
|
stat.cooldowntime = Cooldown-Zeit
|
||||||
stat.explosiveness = Explosiveness
|
stat.explosiveness = Sprengkraft
|
||||||
stat.basedeflectchance = Base Deflect Chance
|
stat.basedeflectchance = Grundreflektionschance
|
||||||
stat.lightningchance = Lightning Chance
|
stat.lightningchance = Blitzwahrscheinlichkeit
|
||||||
stat.lightningdamage = Lightning Damage
|
stat.lightningdamage = Blitzschaden
|
||||||
stat.flammability = Flammability
|
stat.flammability = Brennbarkeit
|
||||||
stat.radioactivity = Radioactivity
|
stat.radioactivity = Radioaktivität
|
||||||
stat.heatcapacity = HeatCapacity
|
stat.heatcapacity = Hitzekapazität
|
||||||
stat.viscosity = Viscosity
|
stat.viscosity = Viskosität
|
||||||
stat.temperature = Temperature
|
stat.temperature = Temperatur
|
||||||
stat.speed = Speed
|
stat.speed = Geschwindigkeit
|
||||||
stat.buildspeed = Build Speed
|
stat.buildspeed = Baugeschwindigkeit
|
||||||
stat.minespeed = Mine Speed
|
stat.minespeed = Abbaugeschwindigkeit
|
||||||
stat.minetier = Mine Tier
|
stat.minetier = Abbau-Kraft
|
||||||
stat.payloadcapacity = Payload Capacity
|
stat.payloadcapacity = Payload Capacity
|
||||||
stat.commandlimit = Command Limit
|
stat.commandlimit = Kommandier-Limit
|
||||||
stat.abilities = Abilities
|
stat.abilities = Fähigkeiten
|
||||||
|
|
||||||
ability.forcefield = Force Field
|
ability.forcefield = Kraftfeld
|
||||||
ability.repairfield = Repair Field
|
ability.repairfield = Heilungsfeld
|
||||||
ability.statusfield = Status Field
|
ability.statusfield = Statusfeld
|
||||||
ability.unitspawn = {0} Factory
|
ability.unitspawn = {0} Fabrik
|
||||||
ability.shieldregenfield = Shield Regen Field
|
ability.shieldregenfield = Schild-regenerations-Feld
|
||||||
|
|
||||||
bar.drilltierreq = Besserer Bohrer Benötigt
|
bar.drilltierreq = Besserer Bohrer Benötigt
|
||||||
bar.noresources = Missing Resources
|
bar.noresources = Fehlende Ressourcen
|
||||||
bar.corereq = Core Base Required
|
bar.corereq = Kern-Basis erforderlich
|
||||||
bar.drillspeed = Bohrgeschwindigkeit: {0}/s
|
bar.drillspeed = Bohrgeschwindigkeit: {0}/s
|
||||||
bar.pumpspeed = Pump Speed: {0}/s
|
bar.pumpspeed = Pumpengeschwindigkeit: {0}/s
|
||||||
bar.efficiency = Effizienz: {0}%
|
bar.efficiency = Effizienz: {0}%
|
||||||
bar.powerbalance = Strom: {0}/s
|
bar.powerbalance = Strom: {0}/s
|
||||||
bar.powerstored = Gespeichert: {0}/{1}
|
bar.powerstored = Gespeichert: {0}/{1}
|
||||||
bar.poweramount = Strom: {0}
|
bar.poweramount = Strom: {0}
|
||||||
bar.poweroutput = Stromgenerierung: {0}
|
bar.poweroutput = Stromgenerierung: {0}
|
||||||
bar.powerlines = Connections: {0}/{1}
|
bar.powerlines = Verbindungen: {0}/{1}
|
||||||
bar.items = Items: {0}
|
bar.items = Items: {0}
|
||||||
bar.capacity = Kapazität: {0}
|
bar.capacity = Kapazität: {0}
|
||||||
bar.unitcap = {0} {1}/{2}
|
bar.unitcap = {0} {1}/{2}
|
||||||
bar.limitreached = [scarlet] {0} / {1}[white] {2}\n[lightgray][[unit disabled]
|
bar.limitreached = [scarlet] {0} / {1}[white] {2}\n[lightgray][[Einheit deaktiviert]
|
||||||
bar.liquid = Flüssigkeit
|
bar.liquid = Flüssigkeit
|
||||||
bar.heat = Hitze
|
bar.heat = Hitze
|
||||||
bar.power = Strom
|
bar.power = Strom
|
||||||
@@ -671,7 +671,7 @@ bar.progress = Baufortschritt
|
|||||||
bar.input = Input
|
bar.input = Input
|
||||||
bar.output = Output
|
bar.output = Output
|
||||||
|
|
||||||
units.processorcontrol = [lightgray]Processor Controlled
|
units.processorcontrol = [lightgray]Prozessorgesteuert
|
||||||
|
|
||||||
bullet.damage = [stat]{0}[lightgray] Schaden
|
bullet.damage = [stat]{0}[lightgray] Schaden
|
||||||
bullet.splashdamage = [stat]{0}[lightgray] Flächenschaden ~[stat] {1}[lightgray] Kacheln
|
bullet.splashdamage = [stat]{0}[lightgray] Flächenschaden ~[stat] {1}[lightgray] Kacheln
|
||||||
@@ -680,15 +680,15 @@ bullet.homing = [stat]zielsuchend
|
|||||||
bullet.shock = [stat]schockend
|
bullet.shock = [stat]schockend
|
||||||
bullet.frag = [stat]explosiv
|
bullet.frag = [stat]explosiv
|
||||||
bullet.knockback = [stat]{0}[lightgray] zurückstoßend
|
bullet.knockback = [stat]{0}[lightgray] zurückstoßend
|
||||||
bullet.pierce = [stat]{0}[lightgray]x pierce
|
bullet.pierce = [stat]{0}[lightgray]x Durchstechkraft
|
||||||
bullet.infinitepierce = [stat]pierce
|
bullet.infinitepierce = [stat]Durchstechkraft
|
||||||
bullet.freezing = [stat]frierend
|
bullet.freezing = [stat]frierend
|
||||||
bullet.tarred = [stat]teerend
|
bullet.tarred = [stat]teerend
|
||||||
bullet.multiplier = [stat]{0}[lightgray]x Munition Multiplikator
|
bullet.multiplier = [stat]{0}[lightgray]x Munition Multiplikator
|
||||||
bullet.reload = [stat]{0}[lightgray]x Feuerrate
|
bullet.reload = [stat]{0}[lightgray]x Feuerrate
|
||||||
|
|
||||||
unit.blocks = Blöcke
|
unit.blocks = Blöcke
|
||||||
unit.blockssquared = blocks²
|
unit.blockssquared = Blöcke²
|
||||||
unit.powersecond = Stromeinheiten/Sekunde
|
unit.powersecond = Stromeinheiten/Sekunde
|
||||||
unit.liquidsecond = Flüssigkeitseinheiten/Sekunde
|
unit.liquidsecond = Flüssigkeitseinheiten/Sekunde
|
||||||
unit.itemssecond = Materialeinheiten/Sekunde
|
unit.itemssecond = Materialeinheiten/Sekunde
|
||||||
@@ -701,29 +701,29 @@ unit.persecond = /sek
|
|||||||
unit.perminute = /min
|
unit.perminute = /min
|
||||||
unit.timesspeed = x Geschwindigkeit
|
unit.timesspeed = x Geschwindigkeit
|
||||||
unit.percent = %
|
unit.percent = %
|
||||||
unit.shieldhealth = shield health
|
unit.shieldhealth = Schildlebenspunkte
|
||||||
unit.items = Materialeinheiten
|
unit.items = Materialeinheiten
|
||||||
unit.thousands = k
|
unit.thousands = k
|
||||||
unit.millions = mil
|
unit.millions = Mio
|
||||||
unit.billions = b
|
unit.billions = Mrd
|
||||||
category.general = Allgemeines
|
category.general = Allgemeines
|
||||||
category.power = Strom
|
category.power = Strom
|
||||||
category.liquids = Flüssigkeiten
|
category.liquids = Flüssigkeiten
|
||||||
category.items = Materialien
|
category.items = Materialien
|
||||||
category.crafting = Erzeugung
|
category.crafting = Erzeugung
|
||||||
category.function = Function
|
category.function = Funktion
|
||||||
category.optional = Optionale Zusätze
|
category.optional = Optionale Zusätze
|
||||||
setting.landscape.name = Landschaft sperren
|
setting.landscape.name = Landschaft sperren
|
||||||
setting.shadows.name = Schatten
|
setting.shadows.name = Schatten
|
||||||
setting.blockreplace.name = Automatische Blockvorschläge
|
setting.blockreplace.name = Automatische Blockvorschläge
|
||||||
setting.linear.name = Lineare Filterung
|
setting.linear.name = Lineare Filterung
|
||||||
setting.hints.name = Tipps
|
setting.hints.name = Tipps
|
||||||
setting.flow.name = Display Resource Flow Rate[scarlet] (experimental)
|
setting.flow.name = Ressourcen-Fluss anzeigen [scarlet] (experimentell)
|
||||||
setting.buildautopause.name = Bauen automatisch pausieren
|
setting.buildautopause.name = Bauen automatisch pausieren
|
||||||
setting.animatedwater.name = Animiertes Wasser
|
setting.animatedwater.name = Animiertes Wasser
|
||||||
setting.animatedshields.name = Animierte Schilde
|
setting.animatedshields.name = Animierte Schilde
|
||||||
setting.antialias.name = Antialias[lightgray] (Neustart erforderlich)[]
|
setting.antialias.name = Antialias[lightgray] (Neustart erforderlich)[]
|
||||||
setting.playerindicators.name = Player Indicators
|
setting.playerindicators.name = Spieler-Indikatoren
|
||||||
setting.indicators.name = Verbündeten-Indikatoren
|
setting.indicators.name = Verbündeten-Indikatoren
|
||||||
setting.autotarget.name = Auto-Zielauswahl
|
setting.autotarget.name = Auto-Zielauswahl
|
||||||
setting.keyboard.name = Maus+Tastatur Steuerung
|
setting.keyboard.name = Maus+Tastatur Steuerung
|
||||||
@@ -742,7 +742,7 @@ setting.difficulty.name = Schwierigkeit:
|
|||||||
setting.screenshake.name = Wackeleffekt
|
setting.screenshake.name = Wackeleffekt
|
||||||
setting.effects.name = Effekte anzeigen
|
setting.effects.name = Effekte anzeigen
|
||||||
setting.destroyedblocks.name = Zerstörte Blöcke anzeigen
|
setting.destroyedblocks.name = Zerstörte Blöcke anzeigen
|
||||||
setting.blockstatus.name = Display Block Status
|
setting.blockstatus.name = Block-Status anzeigen
|
||||||
setting.conveyorpathfinding.name = Automatische Wegfindung beim Bau von Förderbändern
|
setting.conveyorpathfinding.name = Automatische Wegfindung beim Bau von Förderbändern
|
||||||
setting.sensitivity.name = Controller-Empfindlichkeit
|
setting.sensitivity.name = Controller-Empfindlichkeit
|
||||||
setting.saveinterval.name = Autosave-Häufigkeit
|
setting.saveinterval.name = Autosave-Häufigkeit
|
||||||
@@ -751,15 +751,15 @@ setting.blockselecttimeout.name = Block-Auswahl Timeout
|
|||||||
setting.milliseconds = {0} Millisekunden
|
setting.milliseconds = {0} Millisekunden
|
||||||
setting.fullscreen.name = Vollbild
|
setting.fullscreen.name = Vollbild
|
||||||
setting.borderlesswindow.name = Randloses Fenster [lightgray](Neustart vielleicht erforderlich)
|
setting.borderlesswindow.name = Randloses Fenster [lightgray](Neustart vielleicht erforderlich)
|
||||||
setting.fps.name = FPS zeigen
|
setting.fps.name = FPS anzeigen
|
||||||
setting.smoothcamera.name = Smooth Camera
|
setting.smoothcamera.name = Sanfte Kamerabewegungen
|
||||||
setting.vsync.name = VSync
|
setting.vsync.name = VSync
|
||||||
setting.pixelate.name = Verpixeln [lightgray](Könnte die Leistung beeinträchtigen)
|
setting.pixelate.name = Verpixeln [lightgray](Könnte die Leistung beeinträchtigen)
|
||||||
setting.minimap.name = Zeige die Minimap
|
setting.minimap.name = Zeige die Minimap
|
||||||
setting.coreitems.name = Display Core Items (WIP)
|
setting.coreitems.name = Kern-Items anzeigen (WIP)
|
||||||
setting.position.name = Spieler-Position anzeigen
|
setting.position.name = Spieler-Position anzeigen
|
||||||
setting.musicvol.name = Musiklautstärke
|
setting.musicvol.name = Musiklautstärke
|
||||||
setting.atmosphere.name = Show Planet Atmosphere
|
setting.atmosphere.name = Planetatmosphäre zeigen
|
||||||
setting.ambientvol.name = Ambient-Lautstärke
|
setting.ambientvol.name = Ambient-Lautstärke
|
||||||
setting.mutemusic.name = Musik stummschalten
|
setting.mutemusic.name = Musik stummschalten
|
||||||
setting.sfxvol.name = Audioeffekt-Lautstärke
|
setting.sfxvol.name = Audioeffekt-Lautstärke
|
||||||
@@ -767,10 +767,10 @@ setting.mutesound.name = Audioeffekte stummschalten
|
|||||||
setting.crashreport.name = Anonyme Absturzberichte senden
|
setting.crashreport.name = Anonyme Absturzberichte senden
|
||||||
setting.savecreate.name = Automatisch speichern
|
setting.savecreate.name = Automatisch speichern
|
||||||
setting.publichost.name = Öffentliche Sichtbarkeit des Spiels
|
setting.publichost.name = Öffentliche Sichtbarkeit des Spiels
|
||||||
setting.playerlimit.name = Player Limit
|
setting.playerlimit.name = Spielerbegrenzung
|
||||||
setting.chatopacity.name = Chat-Deckkraft
|
setting.chatopacity.name = Chat-Deckkraft
|
||||||
setting.lasersopacity.name = Power-Laser-Deckkraft
|
setting.lasersopacity.name = Power-Laser-Deckkraft
|
||||||
setting.bridgeopacity.name = Bridge Opacity
|
setting.bridgeopacity.name = Brücken-Deckkraft
|
||||||
setting.playerchat.name = Chat im Spiel anzeigen
|
setting.playerchat.name = Chat im Spiel anzeigen
|
||||||
public.confirm = Willst du dein Spiel öffentlich zugänglich machen?\n[accent]Jeder kann deinem Spiel beitreten.\n[lightgray]Dies kann später in den Einstellung->Spielt->Öffentliches Spiel geändert werden.
|
public.confirm = Willst du dein Spiel öffentlich zugänglich machen?\n[accent]Jeder kann deinem Spiel beitreten.\n[lightgray]Dies kann später in den Einstellung->Spielt->Öffentliches Spiel geändert werden.
|
||||||
public.beta = Bemerke: Beta-Versionen des Spiels können keine öffentlichen Spiele machen.
|
public.beta = Bemerke: Beta-Versionen des Spiels können keine öffentlichen Spiele machen.
|
||||||
@@ -782,24 +782,24 @@ keybinds.mobile = [scarlet]Die meisten Tastenzuweisungen hier funktionieren auf
|
|||||||
category.general.name = Allgemein
|
category.general.name = Allgemein
|
||||||
category.view.name = Ansicht
|
category.view.name = Ansicht
|
||||||
category.multiplayer.name = Mehrspieler
|
category.multiplayer.name = Mehrspieler
|
||||||
category.blocks.name = Block Select
|
category.blocks.name = Blockauswahl
|
||||||
command.attack = Angreifen
|
command.attack = Angreifen
|
||||||
command.rally = Patrouillieren
|
command.rally = Patrouillieren
|
||||||
command.retreat = Rückzug
|
command.retreat = Rückzug
|
||||||
command.idle = Idle
|
command.idle = Idle
|
||||||
placement.blockselectkeys = \n[lightgray]Taste: [{0},
|
placement.blockselectkeys = \n[lightgray]Taste: [{0},
|
||||||
keybind.respawn.name = Respawn
|
keybind.respawn.name = Respawn
|
||||||
keybind.control.name = Control Unit
|
keybind.control.name = Einheit steuern
|
||||||
keybind.clear_building.name = Bauplan löschen
|
keybind.clear_building.name = Bauplan löschen
|
||||||
keybind.press = Drücke eine Taste...
|
keybind.press = Drücke eine Taste...
|
||||||
keybind.press.axis = Drücke eine Taste oder bewege eine Achse...
|
keybind.press.axis = Drücke eine Taste oder bewege eine Achse...
|
||||||
keybind.screenshot.name = Karten-Screenshot
|
keybind.screenshot.name = Karten-Screenshot
|
||||||
keybind.toggle_power_lines.name = Power Lasers umschalten
|
keybind.toggle_power_lines.name = Power Lasers umschalten
|
||||||
keybind.toggle_block_status.name = Toggle Block Statuses
|
keybind.toggle_block_status.name = Blockstatus umschalten
|
||||||
keybind.move_x.name = X-Achse
|
keybind.move_x.name = X-Achse
|
||||||
keybind.move_y.name = Y-Achse
|
keybind.move_y.name = Y-Achse
|
||||||
keybind.mouse_move.name = Der Maus folgen
|
keybind.mouse_move.name = Der Maus folgen
|
||||||
keybind.pan.name = Pan View
|
keybind.pan.name = Kamera alleine bewegen
|
||||||
keybind.boost.name = Boost
|
keybind.boost.name = Boost
|
||||||
keybind.schematic_select.name = Bereich auswählen
|
keybind.schematic_select.name = Bereich auswählen
|
||||||
keybind.schematic_menu.name = Entwurfsmenü
|
keybind.schematic_menu.name = Entwurfsmenü
|
||||||
@@ -827,9 +827,9 @@ keybind.diagonal_placement.name = Diagonal platzieren
|
|||||||
keybind.pick.name = Block auswählen
|
keybind.pick.name = Block auswählen
|
||||||
keybind.break_block.name = Block zerstören
|
keybind.break_block.name = Block zerstören
|
||||||
keybind.deselect.name = Auswahl aufheben
|
keybind.deselect.name = Auswahl aufheben
|
||||||
keybind.pickupCargo.name = Pickup Cargo
|
keybind.pickupCargo.name = Block aufheben
|
||||||
keybind.dropCargo.name = Drop Cargo
|
keybind.dropCargo.name = Block fallen lassen
|
||||||
keybind.command.name = Command
|
keybind.command.name = Eineiten kommandieren
|
||||||
keybind.shoot.name = Schießen
|
keybind.shoot.name = Schießen
|
||||||
keybind.zoom.name = Zoomen
|
keybind.zoom.name = Zoomen
|
||||||
keybind.menu.name = Menü
|
keybind.menu.name = Menü
|
||||||
@@ -840,7 +840,7 @@ keybind.chat.name = Chat
|
|||||||
keybind.player_list.name = Spielerliste
|
keybind.player_list.name = Spielerliste
|
||||||
keybind.console.name = Konsole
|
keybind.console.name = Konsole
|
||||||
keybind.rotate.name = Drehen
|
keybind.rotate.name = Drehen
|
||||||
keybind.rotateplaced.name = Rotate Existing (Hold)
|
keybind.rotateplaced.name = Gebauten Block drehen (gedrückt halten)
|
||||||
keybind.toggle_menus.name = Menüs umschalten
|
keybind.toggle_menus.name = Menüs umschalten
|
||||||
keybind.chat_history_prev.name = Chat Historie zurück
|
keybind.chat_history_prev.name = Chat Historie zurück
|
||||||
keybind.chat_history_next.name = Chat Historie vor
|
keybind.chat_history_next.name = Chat Historie vor
|
||||||
@@ -861,14 +861,14 @@ mode.custom = Angepasste Regeln
|
|||||||
|
|
||||||
rules.infiniteresources = Unbegrenzte Ressourcen
|
rules.infiniteresources = Unbegrenzte Ressourcen
|
||||||
rules.reactorexplosions = Reaktor-Explosionen
|
rules.reactorexplosions = Reaktor-Explosionen
|
||||||
rules.schematic = Schematics Allowed
|
rules.schematic = Entwürfe erlaubt
|
||||||
rules.wavetimer = Wellen-Timer
|
rules.wavetimer = Wellen-Timer
|
||||||
rules.waves = Wellen
|
rules.waves = Wellen
|
||||||
rules.attack = Angriff-Modus
|
rules.attack = Angriff-Modus
|
||||||
rules.buildai = AI Building
|
rules.buildai = KI kann bauen
|
||||||
rules.enemyCheat = Unbegrenzte Ressourcen für die KI (Rotes Team)
|
rules.enemyCheat = Unbegrenzte Ressourcen für die KI (Rotes Team)
|
||||||
rules.blockhealthmultiplier = Block Health Multiplier
|
rules.blockhealthmultiplier = Block-Lebenspunkte-Multiplikator
|
||||||
rules.blockdamagemultiplier = Block Damage Multiplier
|
rules.blockdamagemultiplier = Block-Schaden-Multiplikator
|
||||||
rules.unitbuildspeedmultiplier = Baugeschwindigkeit-Einheit Multiplikator
|
rules.unitbuildspeedmultiplier = Baugeschwindigkeit-Einheit Multiplikator
|
||||||
rules.unithealthmultiplier = Lebenspunkte-Einheit Multiplikator
|
rules.unithealthmultiplier = Lebenspunkte-Einheit Multiplikator
|
||||||
rules.unitdamagemultiplier = Schaden-Einheit Multiplikator
|
rules.unitdamagemultiplier = Schaden-Einheit Multiplikator
|
||||||
@@ -876,30 +876,29 @@ rules.enemycorebuildradius = Bauverbot Radius druch feindlichen Kern:[lightgray]
|
|||||||
rules.wavespacing = Wellen-Abstand:[lightgray] (Sek)
|
rules.wavespacing = Wellen-Abstand:[lightgray] (Sek)
|
||||||
rules.buildcostmultiplier = Bau-Kosten Multiplikator
|
rules.buildcostmultiplier = Bau-Kosten Multiplikator
|
||||||
rules.buildspeedmultiplier = Bau-Schnelligkeit Multiplikator
|
rules.buildspeedmultiplier = Bau-Schnelligkeit Multiplikator
|
||||||
rules.deconstructrefundmultiplier = Deconstruct Refund Multiplier
|
rules.deconstructrefundmultiplier = Abbau Ressourcen-Rückerstattung
|
||||||
rules.waitForWaveToEnd = Warten bis Welle endet
|
rules.waitForWaveToEnd = Warten bis Welle endet
|
||||||
rules.dropzoneradius = Drop-Zonen-Radius:[lightgray] (Kacheln)
|
rules.dropzoneradius = Drop-Zonen-Radius:[lightgray] (Kacheln)
|
||||||
rules.unitammo = Units Require Ammo
|
rules.unitammo = Einheiten benötigen Munition
|
||||||
rules.title.waves = Wellen
|
rules.title.waves = Wellen
|
||||||
rules.title.resourcesbuilding = Ressourcen & Gebäude
|
rules.title.resourcesbuilding = Ressourcen & Gebäude
|
||||||
rules.title.enemy = Gegner
|
rules.title.enemy = Gegner
|
||||||
rules.title.unit = Einheiten
|
rules.title.unit = Einheiten
|
||||||
rules.title.experimental = Experimentell
|
rules.title.experimental = Experimentell
|
||||||
rules.title.environment = Environment
|
rules.title.environment = Umgebung
|
||||||
rules.lighting = Lighting
|
rules.lighting = Blitze
|
||||||
rules.enemyLights = Enemy Lights
|
rules.enemyLights = Gegnerisches Licht
|
||||||
rules.fire = Fire
|
rules.fire = Feuer
|
||||||
rules.explosions = Block/Unit Explosion Damage
|
rules.explosions = Explosionsschaden
|
||||||
rules.ambientlight = Ambient Light
|
rules.ambientlight = Umgebungslicht
|
||||||
rules.weather = Weather
|
rules.weather = Wetter
|
||||||
rules.weather.frequency = Frequency:
|
rules.weather.frequency = Häufigkeit:
|
||||||
rules.weather.duration = Duration:
|
rules.weather.duration = Dauer:
|
||||||
|
|
||||||
content.item.name = Materialien
|
content.item.name = Materialien
|
||||||
content.liquid.name = Flüssigkeiten
|
content.liquid.name = Flüssigkeiten
|
||||||
content.unit.name = Einheiten
|
content.unit.name = Einheiten
|
||||||
content.block.name = Blöcke
|
content.block.name = Blöcke
|
||||||
|
|
||||||
item.copper.name = Kupfer
|
item.copper.name = Kupfer
|
||||||
item.lead.name = Blei
|
item.lead.name = Blei
|
||||||
item.coal.name = Kohle
|
item.coal.name = Kohle
|
||||||
@@ -929,11 +928,11 @@ unit.pulsar.name = Pulsar
|
|||||||
unit.quasar.name = Quasar
|
unit.quasar.name = Quasar
|
||||||
unit.crawler.name = Crawler
|
unit.crawler.name = Crawler
|
||||||
unit.atrax.name = Atrax
|
unit.atrax.name = Atrax
|
||||||
unit.spiroct.name = Spiroct
|
unit.spiroct.name = Spirokt
|
||||||
unit.arkyid.name = Arkyid
|
unit.arkyid.name = Arkyid
|
||||||
unit.toxopid.name = Toxopid
|
unit.toxopid.name = Toxopid
|
||||||
unit.flare.name = Flare
|
unit.flare.name = Flare
|
||||||
unit.horizon.name = Horizon
|
unit.horizon.name = Horizont
|
||||||
unit.zenith.name = Zenith
|
unit.zenith.name = Zenith
|
||||||
unit.antumbra.name = Antumbra
|
unit.antumbra.name = Antumbra
|
||||||
unit.eclipse.name = Eclipse
|
unit.eclipse.name = Eclipse
|
||||||
@@ -941,7 +940,7 @@ unit.mono.name = Mono
|
|||||||
unit.poly.name = Poly
|
unit.poly.name = Poly
|
||||||
unit.mega.name = Mega
|
unit.mega.name = Mega
|
||||||
unit.quad.name = Quad
|
unit.quad.name = Quad
|
||||||
unit.oct.name = Oct
|
unit.oct.name = Okt
|
||||||
unit.risso.name = Risso
|
unit.risso.name = Risso
|
||||||
unit.minke.name = Minke
|
unit.minke.name = Minke
|
||||||
unit.bryde.name = Bryde
|
unit.bryde.name = Bryde
|
||||||
@@ -953,31 +952,31 @@ unit.gamma.name = Gamma
|
|||||||
unit.scepter.name = Scepter
|
unit.scepter.name = Scepter
|
||||||
unit.reign.name = Reign
|
unit.reign.name = Reign
|
||||||
unit.vela.name = Vela
|
unit.vela.name = Vela
|
||||||
unit.corvus.name = Corvus
|
unit.corvus.name = Korvus
|
||||||
|
|
||||||
block.resupply-point.name = Resupply Point
|
block.resupply-point.name = Nachlade-Punkt
|
||||||
block.parallax.name = Parallax
|
block.parallax.name = Parallax
|
||||||
block.cliff.name = Cliff
|
block.cliff.name = Klippe
|
||||||
block.sand-boulder.name = Sandbrocken
|
block.sand-boulder.name = Sandbrocken
|
||||||
block.grass.name = Gras
|
block.grass.name = Gras
|
||||||
block.slag.name = Slag
|
block.slag.name = Schlacke
|
||||||
block.space.name = Space
|
block.space.name = Weltall
|
||||||
block.salt.name = Salz
|
block.salt.name = Salz
|
||||||
block.salt-wall.name = Salt Wall
|
block.salt-wall.name = Salzwand
|
||||||
block.pebbles.name = Geröll
|
block.pebbles.name = Geröll
|
||||||
block.tendrils.name = Ranken
|
block.tendrils.name = Ranken
|
||||||
block.sand-wall.name = Sand Wall
|
block.sand-wall.name = Sandwand
|
||||||
block.spore-pine.name = Sporenkiefer
|
block.spore-pine.name = Sporenkiefer
|
||||||
block.spore-wall.name = Spore Wall
|
block.spore-wall.name = Sporenwand
|
||||||
block.boulder.name = Boulder
|
block.boulder.name = Felsbrocken
|
||||||
block.snow-boulder.name = Snow Boulder
|
block.snow-boulder.name = Schneebrocken
|
||||||
block.snow-pine.name = Schnee-Kiefer
|
block.snow-pine.name = Schnee-Kiefer
|
||||||
block.shale.name = Schiefer
|
block.shale.name = Schiefer
|
||||||
block.shale-boulder.name = Schiefergeröll
|
block.shale-boulder.name = Schiefergeröll
|
||||||
block.moss.name = Moos
|
block.moss.name = Moos
|
||||||
block.shrubs.name = Gestrüpp
|
block.shrubs.name = Gestrüpp
|
||||||
block.spore-moss.name = Moossporen
|
block.spore-moss.name = Moossporen
|
||||||
block.shale-wall.name = Shale Wall
|
block.shale-wall.name = Schieferwand
|
||||||
block.scrap-wall.name = Schrottmauer
|
block.scrap-wall.name = Schrottmauer
|
||||||
block.scrap-wall-large.name = Große Schrottmauer
|
block.scrap-wall-large.name = Große Schrottmauer
|
||||||
block.scrap-wall-huge.name = Riesige Schrottmauer
|
block.scrap-wall-huge.name = Riesige Schrottmauer
|
||||||
@@ -993,8 +992,8 @@ block.core-foundation.name = Kern: Fundament
|
|||||||
block.core-nucleus.name = Kern: Nukleus
|
block.core-nucleus.name = Kern: Nukleus
|
||||||
block.deepwater.name = Tiefes Wasser
|
block.deepwater.name = Tiefes Wasser
|
||||||
block.water.name = Wasser
|
block.water.name = Wasser
|
||||||
block.tainted-water.name = Unreines Wasser
|
block.tainted-water.name = Dreckiges Wasser
|
||||||
block.darksand-tainted-water.name = Unreines Wasser (Dunkler Sand)
|
block.darksand-tainted-water.name = Dreckiges Wasser (Dunkler Sand)
|
||||||
block.tar.name = Teer
|
block.tar.name = Teer
|
||||||
block.stone.name = Stein
|
block.stone.name = Stein
|
||||||
block.sand.name = Sand
|
block.sand.name = Sand
|
||||||
@@ -1005,18 +1004,18 @@ block.craters.name = Krater
|
|||||||
block.sand-water.name = Sandiges Wasser
|
block.sand-water.name = Sandiges Wasser
|
||||||
block.darksand-water.name = Dunkles sandiges Wasser
|
block.darksand-water.name = Dunkles sandiges Wasser
|
||||||
block.char.name = Holzkohle
|
block.char.name = Holzkohle
|
||||||
block.dacite.name = Dacite
|
block.dacite.name = Dazit
|
||||||
block.dacite-wall.name = Dacite Wall
|
block.dacite-wall.name = Dazitwand
|
||||||
block.dacite-boulder.name = Dacite Boulder
|
block.dacite-boulder.name = Dazitgeröll
|
||||||
block.ice-snow.name = Eisschnee
|
block.ice-snow.name = Eisschnee
|
||||||
block.stone-wall.name = Stone Wall
|
block.stone-wall.name = Steinwand
|
||||||
block.ice-wall.name = Ice Wall
|
block.ice-wall.name = Eiswand
|
||||||
block.snow-wall.name = Snow Wall
|
block.snow-wall.name = Schneewand
|
||||||
block.dune-wall.name = Dune Wall
|
block.dune-wall.name = Dünenwand
|
||||||
block.pine.name = Kiefer
|
block.pine.name = Kiefer
|
||||||
block.dirt.name = Dirt
|
block.dirt.name = Erde
|
||||||
block.dirt-wall.name = Dirt Wall
|
block.dirt-wall.name = Erdwand
|
||||||
block.mud.name = Mud
|
block.mud.name = Schlamm
|
||||||
block.white-tree-dead.name = Weißer Baum (tot)
|
block.white-tree-dead.name = Weißer Baum (tot)
|
||||||
block.white-tree.name = Weißer Baum
|
block.white-tree.name = Weißer Baum
|
||||||
block.spore-cluster.name = Sporen-Cluster
|
block.spore-cluster.name = Sporen-Cluster
|
||||||
@@ -1054,7 +1053,7 @@ block.hail.name = Hail
|
|||||||
block.lancer.name = Lancer
|
block.lancer.name = Lancer
|
||||||
block.conveyor.name = Förderband
|
block.conveyor.name = Förderband
|
||||||
block.titanium-conveyor.name = Titan-Förderband
|
block.titanium-conveyor.name = Titan-Förderband
|
||||||
block.plastanium-conveyor.name = Plastanium Förderband
|
block.plastanium-conveyor.name = Plastanium-Förderband
|
||||||
block.armored-conveyor.name = Gepanzertes Förderband
|
block.armored-conveyor.name = Gepanzertes Förderband
|
||||||
block.armored-conveyor.description = Bewegt Gegenstände genauso schnell wie das Titan-Förderband, ist aber besser gepanzert. Akzeptiert nur Verbindungen mit anderen Förderbändern.
|
block.armored-conveyor.description = Bewegt Gegenstände genauso schnell wie das Titan-Förderband, ist aber besser gepanzert. Akzeptiert nur Verbindungen mit anderen Förderbändern.
|
||||||
block.junction.name = Kreuzung
|
block.junction.name = Kreuzung
|
||||||
@@ -1143,38 +1142,38 @@ block.rtg-generator.name = RTG-Generator
|
|||||||
block.spectre.name = Phantom
|
block.spectre.name = Phantom
|
||||||
block.meltdown.name = Meltdown
|
block.meltdown.name = Meltdown
|
||||||
block.foreshadow.name = Foreshadow
|
block.foreshadow.name = Foreshadow
|
||||||
block.container.name = Container
|
block.container.name = Behälter
|
||||||
block.launch-pad.name = Launchpad
|
block.launch-pad.name = Launchpad
|
||||||
block.launch-pad-large.name = Großes Launchpad
|
block.launch-pad-large.name = Großes Launchpad
|
||||||
block.segment.name = Segment
|
block.segment.name = Segment
|
||||||
block.command-center.name = Command Center
|
block.command-center.name = Kommandozentrale
|
||||||
block.ground-factory.name = Ground Factory
|
block.ground-factory.name = Bodenfabrik
|
||||||
block.air-factory.name = Air Factory
|
block.air-factory.name = Luftfabrik
|
||||||
block.naval-factory.name = Naval Factory
|
block.naval-factory.name = Wasserfabrik
|
||||||
block.additive-reconstructor.name = Additive Reconstructor
|
block.additive-reconstructor.name = Hinzufügender Rekonstrukteur
|
||||||
block.multiplicative-reconstructor.name = Multiplicative Reconstructor
|
block.multiplicative-reconstructor.name = Multiplikativer Rekonstrukteur
|
||||||
block.exponential-reconstructor.name = Exponential Reconstructor
|
block.exponential-reconstructor.name = Exponentieller Rekonstrukteur
|
||||||
block.tetrative-reconstructor.name = Tetrative Reconstructor
|
block.tetrative-reconstructor.name = Tetrativer Rekonstrukteur
|
||||||
block.payload-conveyor.name = Mass Conveyor
|
block.payload-conveyor.name = Einheitenförderband
|
||||||
block.payload-router.name = Payload Router
|
block.payload-router.name = Einheitverteiler
|
||||||
block.disassembler.name = Disassembler
|
block.disassembler.name = Großer Trenner
|
||||||
block.silicon-crucible.name = Silicon Crucible
|
block.silicon-crucible.name = Silizium Schmelztiegel
|
||||||
block.overdrive-dome.name = Overdrive Dome
|
block.overdrive-dome.name = Beschleunigungs-Maschine
|
||||||
|
|
||||||
block.switch.name = Switch
|
block.switch.name = Schalter
|
||||||
block.micro-processor.name = Micro Processor
|
block.micro-processor.name = Mikroprozessor
|
||||||
block.logic-processor.name = Logic Processor
|
block.logic-processor.name = Logikprozessor
|
||||||
block.hyper-processor.name = Hyper Processor
|
block.hyper-processor.name = Hyperprocessor
|
||||||
block.logic-display.name = Logic Display
|
block.logic-display.name = Logik-Bildschirm
|
||||||
block.large-logic-display.name = Large Logic Display
|
block.large-logic-display.name = Großer Logik-Bildschirm
|
||||||
block.memory-cell.name = Memory Cell
|
block.memory-cell.name = Speicherzelle
|
||||||
block.memory-bank.name = Memory Bank
|
block.memory-bank.name = Große Speicherzelle
|
||||||
|
|
||||||
team.blue.name = Blau
|
team.blue.name = Blau
|
||||||
team.crux.name = Rot
|
team.crux.name = Rot
|
||||||
team.sharded.name = Orange
|
team.sharded.name = Orange
|
||||||
team.orange.name = Orange
|
team.orange.name = Orange
|
||||||
team.derelict.name = Derelict
|
team.derelict.name = Derelikt
|
||||||
team.green.name = Grün
|
team.green.name = Grün
|
||||||
team.purple.name = Lila
|
team.purple.name = Lila
|
||||||
|
|
||||||
@@ -1332,4 +1331,4 @@ block.cyclone.description = Ein großer Schnellfeuer-Geschützturm.
|
|||||||
block.spectre.description = Ein großer Geschützturm, der zwei starke Schüsse gleichzeitig abfeuert.
|
block.spectre.description = Ein großer Geschützturm, der zwei starke Schüsse gleichzeitig abfeuert.
|
||||||
block.meltdown.description = Ein großer Geschützturm, der starke Strahlen mit großer Reichweite abfeuert.
|
block.meltdown.description = Ein großer Geschützturm, der starke Strahlen mit großer Reichweite abfeuert.
|
||||||
block.repair-point.description = Heilt durchgehend die nächste befreundete, beschädigte Einheit in der Umgebung.
|
block.repair-point.description = Heilt durchgehend die nächste befreundete, beschädigte Einheit in der Umgebung.
|
||||||
block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
|
block.segment.description = Beschädigt und zerstört gegnerische Projektile. Laser werden nicht anvisiert.
|
||||||
|
|||||||
@@ -8,8 +8,8 @@ link.github.description = Código fuente del juego
|
|||||||
link.changelog.description = Lista de actualizaciones
|
link.changelog.description = Lista de actualizaciones
|
||||||
link.dev-builds.description = Versiones en desarrollo inestables
|
link.dev-builds.description = Versiones en desarrollo inestables
|
||||||
link.trello.description = Tablero de Trello oficial para las características planificadas
|
link.trello.description = Tablero de Trello oficial para las características planificadas
|
||||||
link.itch.io.description = itch.io es la página donde podes descargar las versiones para PC y web
|
link.itch.io.description = itch.io es la página donde podes descargar las versiones para PC y Servidor
|
||||||
link.google-play.description = Página de Mindustry en Google Play Store
|
link.google-play.description = Ficha en la Google Play Store
|
||||||
link.f-droid.description = Página de F-Droid del juego
|
link.f-droid.description = Página de F-Droid del juego
|
||||||
link.wiki.description = Wiki oficial de Mindustry
|
link.wiki.description = Wiki oficial de Mindustry
|
||||||
link.suggestions.description = Sugerir nuevas funciones
|
link.suggestions.description = Sugerir nuevas funciones
|
||||||
@@ -20,8 +20,10 @@ gameover = Tu núcleo ha sido destruido.
|
|||||||
gameover.pvp = ¡El equipo[accent] {0}[] ha ganado!
|
gameover.pvp = ¡El equipo[accent] {0}[] ha ganado!
|
||||||
highscore = [accent]¡Nuevo récord de puntuación!
|
highscore = [accent]¡Nuevo récord de puntuación!
|
||||||
copied = Copiado.
|
copied = Copiado.
|
||||||
indev.popup = La [accent]v6[] esta actualmente en la [accent]alpha[].\n[lightgray]Esto significa:[]\n[scarlet]- La campaña no esta completada[]\n- Falta contenido\n - La mayoría de la [scarlet]Inteligencia Artificial[] no funciona correctamente\n- Muchas unidades no están terminadas\n- Todo lo que ves puede ser modificado o eliminado en la versión final.\n\nReporta bugs o crasheos en [accent]Github[].
|
|
||||||
indev.notready = Esta parte del juego no esta lista aún.
|
indev.popup = [accent]v6[] esta actualmente en [accent]alpha[].\n[lightgray]Esto significa que:[]\n[scarlet]- El modo de campaña no esta totalmente acabado[]\n-Falta contenido dentro del juego\n - Mucha de la [scarlet]AI de enemigos[] no funciona totalmente\n- Algunas unidades todavia no estan acabadas\n- Todo lo que ves es probable que sea cambiado o removido.\n\nReporta bugs o crasheos en [accent]Github[].
|
||||||
|
indev.notready = Esta parte del juego no esta lista todavia.
|
||||||
|
|
||||||
|
|
||||||
load.sound = Sonidos
|
load.sound = Sonidos
|
||||||
load.map = Mapas
|
load.map = Mapas
|
||||||
@@ -125,9 +127,11 @@ mod.enable = Activar
|
|||||||
mod.requiresrestart = El juego se cerrará para aplicar los mods.
|
mod.requiresrestart = El juego se cerrará para aplicar los mods.
|
||||||
mod.reloadrequired = [scarlet]Se requiere actualizar
|
mod.reloadrequired = [scarlet]Se requiere actualizar
|
||||||
mod.import = Importar mod
|
mod.import = Importar mod
|
||||||
|
|
||||||
mod.import.file = Importar archivo
|
mod.import.file = Importar archivo
|
||||||
mod.import.github = Importar Mod de Github
|
mod.import.github = Importar Mod de Github
|
||||||
mod.jarwarn = [scarlet]Los mods JAR pueden ser inseguros.[]\nAsegúrate de que los descargaste de una fuente segura!
|
mod.jarwarn = [scarlet]Los mods JAR pueden ser inseguros.[]\nAsegúrate de que los descargaste de una fuente segura!
|
||||||
|
|
||||||
mod.item.remove = Este objeto es parte del[accent] '{0}'[] mod. Para eliminarlo, desinstala ese mod.
|
mod.item.remove = Este objeto es parte del[accent] '{0}'[] mod. Para eliminarlo, desinstala ese mod.
|
||||||
mod.remove.confirm = Este mod va a ser eliminado.\n¿Quieres continuar?
|
mod.remove.confirm = Este mod va a ser eliminado.\n¿Quieres continuar?
|
||||||
mod.author = [lightgray]Autor:[] {0}
|
mod.author = [lightgray]Autor:[] {0}
|
||||||
@@ -148,7 +152,7 @@ techtree = Árbol de Tecnologías
|
|||||||
research.list = [lightgray]investigación:
|
research.list = [lightgray]investigación:
|
||||||
research = Investigación
|
research = Investigación
|
||||||
researched = [lightgray]{0} investigado.
|
researched = [lightgray]{0} investigado.
|
||||||
research.progress = {0}% complete
|
research.progress = {0}% completado
|
||||||
players = {0} jugadores online
|
players = {0} jugadores online
|
||||||
players.single = {0} jugador online
|
players.single = {0} jugador online
|
||||||
players.search = buscar
|
players.search = buscar
|
||||||
@@ -278,7 +282,9 @@ quit.confirm.tutorial = ¿Estás seguro de que sabes qué estas haciendo?\nSe pu
|
|||||||
loading = [accent]Cargando...
|
loading = [accent]Cargando...
|
||||||
reloading = [accent]Recargando mods...
|
reloading = [accent]Recargando mods...
|
||||||
saving = [accent]Guardando...
|
saving = [accent]Guardando...
|
||||||
respawn = [accent][[{0}][] para reaparecer en el núcleo
|
|
||||||
|
respawn = [accent][[{0}][] para respawnear en el nucleo
|
||||||
|
|
||||||
cancelbuilding = [accent][[{0}][] para limpiar el plan
|
cancelbuilding = [accent][[{0}][] para limpiar el plan
|
||||||
selectschematic = [accent][[{0}][] para seleccionar+copiar
|
selectschematic = [accent][[{0}][] para seleccionar+copiar
|
||||||
pausebuilding = [accent][[{0}][] para pausar la construcción
|
pausebuilding = [accent][[{0}][] para pausar la construcción
|
||||||
@@ -350,10 +356,12 @@ waves.invalid = Oleadas inválidaas en el portapapeles.
|
|||||||
waves.copied = Oleadas copiadas.
|
waves.copied = Oleadas copiadas.
|
||||||
waves.none = No hay enemigos definidos.\nNótese que las listas de oleadas vacías se sustituirán por la lista por defecto.
|
waves.none = No hay enemigos definidos.\nNótese que las listas de oleadas vacías se sustituirán por la lista por defecto.
|
||||||
|
|
||||||
|
|
||||||
wavemode.counts = Cuentas
|
wavemode.counts = Cuentas
|
||||||
wavemode.totals = Totales
|
wavemode.totals = Totales
|
||||||
wavemode.health = Salud
|
wavemode.health = Salud
|
||||||
|
|
||||||
|
|
||||||
editor.default = [lightgray]<Por defecto>
|
editor.default = [lightgray]<Por defecto>
|
||||||
details = Detalles...
|
details = Detalles...
|
||||||
edit = Editar...
|
edit = Editar...
|
||||||
@@ -512,7 +520,8 @@ weather.rain.name = Lluvia
|
|||||||
weather.snow.name = Nieve
|
weather.snow.name = Nieve
|
||||||
weather.sandstorm.name = Tormenta de arena
|
weather.sandstorm.name = Tormenta de arena
|
||||||
weather.sporestorm.name = Tormenta de esporas
|
weather.sporestorm.name = Tormenta de esporas
|
||||||
weather.fog.name = Fog
|
|
||||||
|
weather.fog.name = Niebla
|
||||||
|
|
||||||
sectors.unexplored = [lightgray]No explorado
|
sectors.unexplored = [lightgray]No explorado
|
||||||
sectors.resources = Recursos:
|
sectors.resources = Recursos:
|
||||||
@@ -523,12 +532,12 @@ sectors.launch = Lanzar
|
|||||||
sectors.select = Elegir
|
sectors.select = Elegir
|
||||||
sectors.nonelaunch = [lightgray]ninguno (sun)
|
sectors.nonelaunch = [lightgray]ninguno (sun)
|
||||||
sectors.rename = Rename Sector
|
sectors.rename = Rename Sector
|
||||||
sector.missingresources = [scarlet]Insufficient Core Resources
|
sector.missingresources = [scarlet]Insuficientes recursos
|
||||||
|
|
||||||
planet.serpulo.name = Serpulo
|
planet.serpulo.name = Serpulo
|
||||||
planet.sun.name = Sun
|
planet.sun.name = Sol
|
||||||
|
|
||||||
sector.groundZero.name = Terreno Zero
|
sector.groundZero.name = Zona de impacto
|
||||||
sector.craters.name = Los Cráteres
|
sector.craters.name = Los Cráteres
|
||||||
sector.frozenForest.name = Bosque Congelado
|
sector.frozenForest.name = Bosque Congelado
|
||||||
sector.ruinousShores.name = Costas Ruinosas
|
sector.ruinousShores.name = Costas Ruinosas
|
||||||
@@ -540,17 +549,18 @@ sector.tarFields.name = Campos de alquitrán
|
|||||||
sector.saltFlats.name = Llanuras de sal
|
sector.saltFlats.name = Llanuras de sal
|
||||||
sector.fungalPass.name = Paso de hongos
|
sector.fungalPass.name = Paso de hongos
|
||||||
|
|
||||||
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.groundZero.description = La ubicación óptima para empezar una vez más. Baja amenaza enemiga. Pocos recursos.\nReúna la mayor cantidad de plomo y cobre posible.\nSiga adelante.
|
||||||
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.frozenForest.description = Incluso aquí, más cerca de las montañas, las esporas se han extendido. Las gélidas temperaturas no pueden contenerlos para siempre.\n\nComienza la aventura hacia el poder. Construye generadores de combustión. Aprenda a usar reparadores.
|
||||||
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.saltFlats.description = En las afueras del desierto se encuentran las Salinas. Se pueden encontrar pocos recursos en esta ubicación.\n\nEl enemigo ha erigido un complejo de almacenamiento de recursos aquí. Erradicar su núcleo. No dejes nada en pie.
|
||||||
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.craters.description = El agua se ha acumulado en este cráter, reliquia de las viejas guerras. Recupere el área. Recoge arena. Fundir metavidrio. Bombee agua para enfriar torretas y taladros.
|
||||||
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.ruinousShores.description = Más allá de los páramos, está la costa. Una vez, esta ubicación albergó una serie de defensa costera. No queda mucho. Solo las estructuras de defensa más básicas han quedado ilesas, todo lo demás reducido a chatarra.\nContinúe la expansión hacia afuera. Redescubra la tecnología.
|
||||||
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.stainedMountains.description = Más tierra adentro se encuentran las montañas, pero no contaminadas por esporas.\nExtraiga el abundante titanio de esta zona. Aprenda como usarlo.\n\nLa presencia enemiga es mayor aquí. No les des tiempo para enviar sus unidades más fuertes.
|
||||||
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.overgrowth.description = Esta área está cubierta de maleza, más cerca de la fuente de las esporas.\nEl enemigo ha establecido un puesto de avanzada aquí. Construye unidades Titán. Destruyelo. Recupera lo que se perdió.
|
||||||
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.tarFields.description = Las afueras de una zona de producción de petróleo, entre la montaña y el desierto. Una de las pocas áreas con reservas de alquitrán utilizables.\nAunque está abandonada, esta zona tiene algunas fuerzas enemigas peligrosas cerca. No los subestimes.\n\n[lightgray]Investigue la tecnología de procesamiento de aceite si es posible.
|
||||||
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.desolateRift.description = Una zona extremadamente peligrosa. Recursos abundantes, pero poco espacio. Alto riesgo de destrucción. Vete lo antes posible. No se deje engañar por el gran intervalo entre los ataques enemigos.
|
||||||
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.nuclearComplex.description = Antigua instalación de producción y procesamiento de torio, reducida a ruinas.\n[lightgray] Investiga el torio y sus múltiples usos.\n\nEl enemigo está presente aquí en gran número, constantemente en busca de atacantes.
|
||||||
|
sector.fungalPass.description = Un área de transición entre montañas altas y tierras bajas plagadas de esporas. Aquí se encuentra una pequeña base de reconocimiento enemiga.\nDestroy it.\nUsa unidades Dagger y Crawler. Saca los dos núcleos de funcionamiento!
|
||||||
|
|
||||||
settings.language = Idioma
|
settings.language = Idioma
|
||||||
settings.data = Datos del Juego
|
settings.data = Datos del Juego
|
||||||
@@ -564,12 +574,14 @@ settings.graphics = Gráficos
|
|||||||
settings.cleardata = Limpiar Datos del Juego...
|
settings.cleardata = Limpiar Datos del Juego...
|
||||||
settings.clear.confirm = ¿Estas seguro de querer limpiar estos datos?\n¡Esta acción no puede deshacerse!
|
settings.clear.confirm = ¿Estas seguro de querer limpiar estos datos?\n¡Esta acción no puede deshacerse!
|
||||||
settings.clearall.confirm = [scarlet]ADVERTENCIA![]\nEsto va a eliminar todos tus datos, incluyendo guardados, mapas, desbloqueos y atajos de teclado.\nUna vez presiones 'ok', el juego va a borrrar todos tus datos y saldrá del juego automáticamente.
|
settings.clearall.confirm = [scarlet]ADVERTENCIA![]\nEsto va a eliminar todos tus datos, incluyendo guardados, mapas, desbloqueos y atajos de teclado.\nUna vez presiones 'ok', el juego va a borrrar todos tus datos y saldrá del juego automáticamente.
|
||||||
|
|
||||||
settings.clearsaves.confirm = Estas seguro de que quieres borrar tus partidas guardadas?
|
settings.clearsaves.confirm = Estas seguro de que quieres borrar tus partidas guardadas?
|
||||||
settings.clearsaves = Limpiar partidas guardadas
|
settings.clearsaves = Limpiar partidas guardadas
|
||||||
settings.clearresearch = Clear Research
|
settings.clearresearch = Borrar descubrimientos
|
||||||
settings.clearresearch.confirm = Are you sure you want to clear all of your campaign research?
|
settings.clearresearch.confirm = Estas seguro?
|
||||||
settings.clearcampaignsaves = Clear Campaign Saves
|
settings.clearcampaignsaves = Borrar Guardados de campaña
|
||||||
settings.clearcampaignsaves.confirm = Are you sure you want to clear all of your campaign saves?
|
settings.clearcampaignsaves.confirm = Estas seguro de que quieres borrar tus partidas guardadas en el modo campaña?
|
||||||
|
|
||||||
paused = [accent] < Pausado >
|
paused = [accent] < Pausado >
|
||||||
clear = Limpiar
|
clear = Limpiar
|
||||||
banned = [scarlet]Baneado
|
banned = [scarlet]Baneado
|
||||||
@@ -579,8 +591,9 @@ no = No
|
|||||||
info.title = [accent]Información
|
info.title = [accent]Información
|
||||||
error.title = [crimson]Un error ha ocurrido.
|
error.title = [crimson]Un error ha ocurrido.
|
||||||
error.crashtitle = Un error ha ocurrido.
|
error.crashtitle = Un error ha ocurrido.
|
||||||
|
|
||||||
unit.nobuild = [scarlet]La unidad no puede construir
|
unit.nobuild = [scarlet]La unidad no puede construir
|
||||||
lastaccessed = [lightgray]Last Accessed: {0}
|
lastaccessed = [lightgray]Anteriormente usado: {0}
|
||||||
block.unknown = [lightgray]???
|
block.unknown = [lightgray]???
|
||||||
|
|
||||||
stat.input = Entrada
|
stat.input = Entrada
|
||||||
@@ -627,31 +640,32 @@ stat.ammo = Munición
|
|||||||
stat.shieldhealth = Salud del escudo
|
stat.shieldhealth = Salud del escudo
|
||||||
stat.cooldowntime = Tiempo de enfriamiento
|
stat.cooldowntime = Tiempo de enfriamiento
|
||||||
stat.explosiveness = Explosiveness
|
stat.explosiveness = Explosiveness
|
||||||
stat.basedeflectchance = Base Deflect Chance
|
stat.basedeflectchance = Probabilidad de desvío base
|
||||||
stat.lightningchance = Lightning Chance
|
stat.lightningchance = Probabilidad de rayo
|
||||||
stat.lightningdamage = Lightning Damage
|
stat.lightningdamage = Daño por rayo
|
||||||
stat.flammability = Flammability
|
stat.flammability = Inflamabilidad
|
||||||
stat.radioactivity = Radioactivity
|
stat.radioactivity = Radiactividad
|
||||||
stat.heatcapacity = HeatCapacity
|
stat.heatcapacity = HeatCapacity
|
||||||
stat.viscosity = Viscosity
|
stat.viscosity = Viscosidad
|
||||||
stat.temperature = Temperature
|
stat.temperature = Temperatura
|
||||||
stat.speed = Speed
|
stat.speed = Velocidad
|
||||||
stat.buildspeed = Build Speed
|
stat.buildspeed = Velocidad de construcción
|
||||||
stat.minespeed = Mine Speed
|
stat.minespeed = Velocidad de la mina
|
||||||
stat.minetier = Mine Tier
|
stat.minetier = Nivel de mina
|
||||||
stat.payloadcapacity = Payload Capacity
|
stat.payloadcapacity = Capacidad de carga útil
|
||||||
stat.commandlimit = Command Limit
|
stat.commandlimit = Límite de comando
|
||||||
stat.abilities = Abilities
|
stat.abilities = Habilidades
|
||||||
|
|
||||||
ability.forcefield = Force Field
|
skill.forcefield = Campo de fuerza
|
||||||
ability.repairfield = Repair Field
|
skill.repairfield = Campo de reparación
|
||||||
ability.statusfield = Status Field
|
skill.statusfield = Campo de estado
|
||||||
ability.unitspawn = {0} Factory
|
skill.unitspawn = {0} Fábrica
|
||||||
ability.shieldregenfield = Shield Regen Field
|
skill.shieldregenfield = Campo de regeneración del escudo
|
||||||
|
|
||||||
bar.drilltierreq = Se requiere un mejor taladro.
|
bar.drilltierreq = Se requiere un mejor taladro.
|
||||||
bar.noresources = Recursos faltantes
|
bar.noresources = Recursos faltantes
|
||||||
bar.corereq = Se requiere de un núcleo base
|
bar.corereq = Se requiere de un núcleo base
|
||||||
|
|
||||||
bar.drillspeed = Velocidad del Taladro: {0}/s
|
bar.drillspeed = Velocidad del Taladro: {0}/s
|
||||||
bar.pumpspeed = Velocidad de bombeado: {0}/s
|
bar.pumpspeed = Velocidad de bombeado: {0}/s
|
||||||
bar.efficiency = Eficiencia: {0}%
|
bar.efficiency = Eficiencia: {0}%
|
||||||
@@ -701,7 +715,9 @@ unit.persecond = /seg
|
|||||||
unit.perminute = /min
|
unit.perminute = /min
|
||||||
unit.timesspeed = x velocidad
|
unit.timesspeed = x velocidad
|
||||||
unit.percent = %
|
unit.percent = %
|
||||||
unit.shieldhealth = salud del escudo
|
|
||||||
|
unit.shieldhealth = Vida del escudo
|
||||||
|
|
||||||
unit.items = objetos
|
unit.items = objetos
|
||||||
unit.thousands = k
|
unit.thousands = k
|
||||||
unit.millions = M
|
unit.millions = M
|
||||||
@@ -718,8 +734,10 @@ setting.shadows.name = Sombras
|
|||||||
setting.blockreplace.name = Sugerir bloques al construir
|
setting.blockreplace.name = Sugerir bloques al construir
|
||||||
setting.linear.name = Filtrado Lineal
|
setting.linear.name = Filtrado Lineal
|
||||||
setting.hints.name = Pistas
|
setting.hints.name = Pistas
|
||||||
setting.flow.name = Mostrar flujo de recursos[scarlet] (experimental)
|
|
||||||
|
setting.flow.name = Mostrar tasa de flujo de recursos[scarlet] (experimental)
|
||||||
setting.buildautopause.name = Auto-pausar construcción
|
setting.buildautopause.name = Auto-pausar construcción
|
||||||
|
|
||||||
setting.animatedwater.name = Agua Animada
|
setting.animatedwater.name = Agua Animada
|
||||||
setting.animatedshields.name = Escudos Animados
|
setting.animatedshields.name = Escudos Animados
|
||||||
setting.antialias.name = Antialias[lightgray] (necesita un reinicio)[]
|
setting.antialias.name = Antialias[lightgray] (necesita un reinicio)[]
|
||||||
@@ -753,13 +771,15 @@ setting.fullscreen.name = Pantalla Completa
|
|||||||
setting.borderlesswindow.name = Ventana sin Bordes[lightgray] (podría requerir un reinicio)
|
setting.borderlesswindow.name = Ventana sin Bordes[lightgray] (podría requerir un reinicio)
|
||||||
setting.fps.name = Mostrar FPS
|
setting.fps.name = Mostrar FPS
|
||||||
setting.smoothcamera.name = Cámara suave
|
setting.smoothcamera.name = Cámara suave
|
||||||
|
|
||||||
|
|
||||||
setting.vsync.name = Vsync (Limita los fps a los Hz de tu pantalla)
|
setting.vsync.name = Vsync (Limita los fps a los Hz de tu pantalla)
|
||||||
setting.pixelate.name = Pixelar [lightgray](podría reducir el rendimiento)
|
setting.pixelate.name = Pixelar [lightgray](podría reducir el rendimiento)
|
||||||
setting.minimap.name = Mostrar Minimapa
|
setting.minimap.name = Mostrar Minimapa
|
||||||
setting.coreitems.name = Display Core Items (WIP)
|
setting.coreitems.name = Mostrar elementos en el nucleo (WIP)
|
||||||
setting.position.name = Mostrar posición del jugador.
|
setting.position.name = Mostrar posición del jugador.
|
||||||
setting.musicvol.name = Volumen de la Música
|
setting.musicvol.name = Volumen de la Música
|
||||||
setting.atmosphere.name = Show Planet Atmosphere
|
setting.atmosphere.name = Mostrar atmosfera del planeta
|
||||||
setting.ambientvol.name = Volumen del Ambiente
|
setting.ambientvol.name = Volumen del Ambiente
|
||||||
setting.mutemusic.name = Silenciar Musica
|
setting.mutemusic.name = Silenciar Musica
|
||||||
setting.sfxvol.name = Volumen de los efectos de sonido
|
setting.sfxvol.name = Volumen de los efectos de sonido
|
||||||
@@ -799,8 +819,10 @@ keybind.toggle_block_status.name = Cambiar estado de los bloques
|
|||||||
keybind.move_x.name = Mover x
|
keybind.move_x.name = Mover x
|
||||||
keybind.move_y.name = Mover y
|
keybind.move_y.name = Mover y
|
||||||
keybind.mouse_move.name = Seguír al ratón
|
keybind.mouse_move.name = Seguír al ratón
|
||||||
keybind.pan.name = Vista Pan
|
|
||||||
keybind.boost.name = Potenciar
|
keybind.pan.name = Vista panorámica
|
||||||
|
keybind.boost.name = Impulsar
|
||||||
|
|
||||||
keybind.schematic_select.name = Seleccionar región
|
keybind.schematic_select.name = Seleccionar región
|
||||||
keybind.schematic_menu.name = Menu de esquemas
|
keybind.schematic_menu.name = Menu de esquemas
|
||||||
keybind.schematic_flip_x.name = Girar esquemático desde X
|
keybind.schematic_flip_x.name = Girar esquemático desde X
|
||||||
@@ -850,7 +872,7 @@ keybind.zoom_minimap.name = Zoom del minimapa
|
|||||||
mode.help.title = Descripción de modos
|
mode.help.title = Descripción de modos
|
||||||
mode.survival.name = Supervivencia
|
mode.survival.name = Supervivencia
|
||||||
mode.survival.description = El modo normal. Recursos limitados y oleadas automáticas.
|
mode.survival.description = El modo normal. Recursos limitados y oleadas automáticas.
|
||||||
mode.sandbox.name = Caja de arena
|
mode.sandbox.name = Arenero
|
||||||
mode.sandbox.description = Recursos ilimitados y sin temporizador para las oleadas.
|
mode.sandbox.description = Recursos ilimitados y sin temporizador para las oleadas.
|
||||||
mode.editor.name = Editor
|
mode.editor.name = Editor
|
||||||
mode.pvp.name = JcJ
|
mode.pvp.name = JcJ
|
||||||
@@ -865,10 +887,10 @@ rules.schematic = Schematics Allowed
|
|||||||
rules.wavetimer = Temportzador de Oleadas
|
rules.wavetimer = Temportzador de Oleadas
|
||||||
rules.waves = Oleadas
|
rules.waves = Oleadas
|
||||||
rules.attack = Modo de Ataque
|
rules.attack = Modo de Ataque
|
||||||
rules.buildai = AI Building
|
rules.buildai = Construccion de la IA
|
||||||
rules.enemyCheat = Recursos infinitos de la IA
|
rules.enemyCheat = Recursos infinitos de la IA
|
||||||
rules.blockhealthmultiplier = Multiplicador de salud de bloque
|
rules.blockhealthmultiplier = Multiplicador de salud de bloque
|
||||||
rules.blockdamagemultiplier = Block Damage Multiplier
|
rules.blockdamagemultiplier = Multiplicador de daño de bloque
|
||||||
rules.unitbuildspeedmultiplier = Multiplicador de velocidad de creación de unidades
|
rules.unitbuildspeedmultiplier = Multiplicador de velocidad de creación de unidades
|
||||||
rules.unithealthmultiplier = Multiplicador de la vida de las unidades
|
rules.unithealthmultiplier = Multiplicador de la vida de las unidades
|
||||||
rules.unitdamagemultiplier = Multiplicador del daño de unidades
|
rules.unitdamagemultiplier = Multiplicador del daño de unidades
|
||||||
@@ -885,15 +907,17 @@ rules.title.resourcesbuilding = Recursos y Construcción
|
|||||||
rules.title.enemy = Enemigos
|
rules.title.enemy = Enemigos
|
||||||
rules.title.unit = Unidades
|
rules.title.unit = Unidades
|
||||||
rules.title.experimental = Experimental
|
rules.title.experimental = Experimental
|
||||||
|
|
||||||
rules.title.environment = Entorno
|
rules.title.environment = Entorno
|
||||||
rules.lighting = Iluminación
|
rules.lighting = Iluminación
|
||||||
rules.enemyLights = Enemy Lights
|
rules.enemyLights = Luces enemigas
|
||||||
rules.fire = Fire
|
rules.fire = Fuego
|
||||||
rules.explosions = Daño de explosiones de Bloques/Unidades
|
rules.explosions = Daño de explosiones de Bloques/Unidades
|
||||||
rules.ambientlight = Iluminación ambiental
|
rules.ambientlight = Iluminación ambiental
|
||||||
rules.weather = Clima
|
rules.weather = Clima
|
||||||
rules.weather.frequency = Frecuencia:
|
rules.weather.frequency = Frequencia:
|
||||||
rules.weather.duration = Duración:
|
rules.weather.duration = Duracion:
|
||||||
|
|
||||||
|
|
||||||
content.item.name = Objetos
|
content.item.name = Objetos
|
||||||
content.liquid.name = Líquidos
|
content.liquid.name = Líquidos
|
||||||
@@ -921,6 +945,7 @@ liquid.slag.name = Fundido
|
|||||||
liquid.oil.name = Petróleo
|
liquid.oil.name = Petróleo
|
||||||
liquid.cryofluid.name = Criogénico
|
liquid.cryofluid.name = Criogénico
|
||||||
|
|
||||||
|
|
||||||
unit.dagger.name = Daga
|
unit.dagger.name = Daga
|
||||||
unit.mace.name = Mazo
|
unit.mace.name = Mazo
|
||||||
unit.fortress.name = Fortaleza
|
unit.fortress.name = Fortaleza
|
||||||
@@ -931,10 +956,10 @@ unit.crawler.name = Oruga
|
|||||||
unit.atrax.name = Atrax
|
unit.atrax.name = Atrax
|
||||||
unit.spiroct.name = Spiroct
|
unit.spiroct.name = Spiroct
|
||||||
unit.arkyid.name = Arkyid
|
unit.arkyid.name = Arkyid
|
||||||
unit.toxopid.name = Toxopid
|
unit.toxopid.name = Toxopodo
|
||||||
unit.flare.name = Llama
|
unit.flare.name = Bengala
|
||||||
unit.horizon.name = Horizonte
|
unit.horizon.name = Horizonte
|
||||||
unit.zenith.name = Zenith
|
unit.zenith.name = Cenit
|
||||||
unit.antumbra.name = Antumbra
|
unit.antumbra.name = Antumbra
|
||||||
unit.eclipse.name = Eclipse
|
unit.eclipse.name = Eclipse
|
||||||
unit.mono.name = Mono
|
unit.mono.name = Mono
|
||||||
@@ -956,28 +981,34 @@ unit.vela.name = Vela
|
|||||||
unit.corvus.name = Corvo
|
unit.corvus.name = Corvo
|
||||||
|
|
||||||
block.resupply-point.name = Punto de reabastecimiento
|
block.resupply-point.name = Punto de reabastecimiento
|
||||||
block.parallax.name = Parallax
|
|
||||||
|
block.parallax.name = Paralaje
|
||||||
block.cliff.name = Acantilado
|
block.cliff.name = Acantilado
|
||||||
|
|
||||||
block.sand-boulder.name = Piedra de Arena
|
block.sand-boulder.name = Piedra de Arena
|
||||||
block.grass.name = Hierba
|
block.grass.name = Hierba
|
||||||
block.slag.name = Escoria
|
block.slag.name = Escoria
|
||||||
block.space.name = Space
|
block.space.name = Space
|
||||||
block.salt.name = Sal
|
block.salt.name = Sal
|
||||||
block.salt-wall.name = Pared de sal
|
|
||||||
|
block.salt-wall.name = Muro de sal
|
||||||
block.pebbles.name = Guijarros
|
block.pebbles.name = Guijarros
|
||||||
block.tendrils.name = Zarcillos
|
block.tendrils.name = Zarcillos
|
||||||
block.sand-wall.name = Pared de arena
|
block.sand-wall.name = Muro de arena
|
||||||
block.spore-pine.name = Pino de esporas
|
block.spore-pine.name = Pino de esporas
|
||||||
block.spore-wall.name = Pared de esporas
|
block.spore-wall.name = Muro de esporas
|
||||||
block.boulder.name = Boulder
|
block.boulder.name = Roca
|
||||||
block.snow-boulder.name = Piedra nevosa
|
block.snow-boulder.name = Roca de nieve
|
||||||
|
|
||||||
block.snow-pine.name = Pino de nieve
|
block.snow-pine.name = Pino de nieve
|
||||||
block.shale.name = Pizarra
|
block.shale.name = Pizarra
|
||||||
block.shale-boulder.name = Piedra de Pizarra
|
block.shale-boulder.name = Piedra de Pizarra
|
||||||
block.moss.name = Musgo
|
block.moss.name = Musgo
|
||||||
block.shrubs.name = Arbustos
|
block.shrubs.name = Arbustos
|
||||||
block.spore-moss.name = Musgo de esporas
|
block.spore-moss.name = Musgo de esporas
|
||||||
block.shale-wall.name = Pared de shale
|
|
||||||
|
block.shale-wall.name = Muro de pizarra
|
||||||
|
|
||||||
block.scrap-wall.name = Muro de Chatarra
|
block.scrap-wall.name = Muro de Chatarra
|
||||||
block.scrap-wall-large.name = Muro de Chatarra grande
|
block.scrap-wall-large.name = Muro de Chatarra grande
|
||||||
block.scrap-wall-huge.name = Muro de Chatarra muy grande
|
block.scrap-wall-huge.name = Muro de Chatarra muy grande
|
||||||
@@ -1148,33 +1179,39 @@ block.launch-pad.name = Pad de Lanzamiento
|
|||||||
block.launch-pad-large.name = Pad de Lanzamiento Grande
|
block.launch-pad-large.name = Pad de Lanzamiento Grande
|
||||||
block.segment.name = Segmento
|
block.segment.name = Segmento
|
||||||
block.command-center.name = Centro de comando
|
block.command-center.name = Centro de comando
|
||||||
|
|
||||||
block.ground-factory.name = Fábrica terrestre
|
block.ground-factory.name = Fábrica terrestre
|
||||||
block.air-factory.name = Fábrica aérea
|
block.air-factory.name = Fábrica aérea
|
||||||
|
|
||||||
block.naval-factory.name = Fábrica naval
|
block.naval-factory.name = Fábrica naval
|
||||||
block.additive-reconstructor.name = Reconstructor aditivo
|
block.additive-reconstructor.name = Reconstructor aditivo
|
||||||
block.multiplicative-reconstructor.name = Reconstructor multiplicativo
|
block.multiplicative-reconstructor.name = Reconstructor multiplicativo
|
||||||
block.exponential-reconstructor.name = Reconstructor exponencial
|
block.exponential-reconstructor.name = Reconstructor exponencial
|
||||||
block.tetrative-reconstructor.name = Reconstructor tetrativo
|
block.tetrative-reconstructor.name = Reconstructor tetrativo
|
||||||
block.payload-conveyor.name = Cinta de transporte masivo
|
|
||||||
block.payload-router.name = Enrutador Payload
|
|
||||||
block.disassembler.name = Desmontador
|
|
||||||
block.silicon-crucible.name = Crisol de Silicio
|
|
||||||
block.overdrive-dome.name = Domo de sobremarcha
|
|
||||||
|
|
||||||
block.switch.name = Cambio
|
block.payload-conveyor.name = Transportador masivo
|
||||||
block.micro-processor.name = Micro Procesador
|
block.payload-router.name = Enrutador de carga útil
|
||||||
block.logic-processor.name = Procesador Lógico
|
block.disassembler.name = Desensamblador
|
||||||
block.hyper-processor.name = Hiper Procesador
|
block.silicon-crucible.name = Crisol de silicio
|
||||||
block.logic-display.name = Pantalla Lógica
|
block.overdrive-dome.name = Cupula de sobremarcha
|
||||||
block.large-logic-display.name = Pantalla Lógica grande
|
|
||||||
block.memory-cell.name = Célula de memoria
|
block.switch.name = Interruptor
|
||||||
block.memory-bank.name = Memory Bank
|
block.micro-processor.name = Micro Processador
|
||||||
|
block.logic-processor.name = Procesador lógico
|
||||||
|
block.hyper-processor.name = Hiperprocesador
|
||||||
|
block.logic-display.name = Pantalla lógica
|
||||||
|
block.large-logic-display.name = Gran pantalla lógica
|
||||||
|
block.memory-cell.name = Celda de memoria
|
||||||
|
block.memory-bank.name = Banco de memoria
|
||||||
|
|
||||||
|
|
||||||
team.blue.name = Azul
|
team.blue.name = Azul
|
||||||
team.crux.name = rojo
|
team.crux.name = rojo
|
||||||
team.sharded.name = naranja
|
team.sharded.name = naranja
|
||||||
team.orange.name = Naranja
|
team.orange.name = Naranja
|
||||||
team.derelict.name = Abandonado
|
|
||||||
|
team.derelict.name = derelicto
|
||||||
|
|
||||||
team.green.name = Verde
|
team.green.name = Verde
|
||||||
team.purple.name = Púrpura
|
team.purple.name = Púrpura
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ gameover.pvp = [accent] {0}[] joukkue voittaa!
|
|||||||
highscore = [accent]Uusi ennätys!
|
highscore = [accent]Uusi ennätys!
|
||||||
copied = Kopioitu.
|
copied = Kopioitu.
|
||||||
indev.popup = [accent]v6[] is currently in [accent]alpha[].\n[lightgray]This means:[]\n[scarlet]- The campaign is completely unfinished[]\n- Content is missing\n - Most [scarlet]Unit AI[] does not work properly\n- Many units are unfinished\n- Everything you see is subject to change or removal.\n\nReport bugs or crashes on [accent]Github[].
|
indev.popup = [accent]v6[] is currently in [accent]alpha[].\n[lightgray]This means:[]\n[scarlet]- The campaign is completely unfinished[]\n- Content is missing\n - Most [scarlet]Unit AI[] does not work properly\n- Many units are unfinished\n- Everything you see is subject to change or removal.\n\nReport bugs or crashes on [accent]Github[].
|
||||||
indev.notready = This part of the game isn't ready yet
|
indev.notready = Tämä osa peliä ei ole vielä valmis
|
||||||
|
|
||||||
load.sound = Ääniä
|
load.sound = Ääniä
|
||||||
load.map = Karttoja
|
load.map = Karttoja
|
||||||
@@ -42,7 +42,7 @@ schematic = Kaavio
|
|||||||
schematic.add = Tallenna kaavio...
|
schematic.add = Tallenna kaavio...
|
||||||
schematics = Kaaviot
|
schematics = Kaaviot
|
||||||
schematic.replace = Kaavio tällä nimellä on jo olemassa. Haluatko korvata sen?
|
schematic.replace = Kaavio tällä nimellä on jo olemassa. Haluatko korvata sen?
|
||||||
schematic.exists = A schematic by that name already exists.
|
schematic.exists = Kaavio tällä nimellä on jo olemassa.
|
||||||
schematic.import = Tuo kaavio...
|
schematic.import = Tuo kaavio...
|
||||||
schematic.exportfile = Vie tiedosto
|
schematic.exportfile = Vie tiedosto
|
||||||
schematic.importfile = Tuo tiedosto
|
schematic.importfile = Tuo tiedosto
|
||||||
@@ -55,7 +55,7 @@ schematic.saved = Kaavio tallennettu.
|
|||||||
schematic.delete.confirm = Tämä kaavio poistetaan.
|
schematic.delete.confirm = Tämä kaavio poistetaan.
|
||||||
schematic.rename = Nimeä kaavio uudelleen
|
schematic.rename = Nimeä kaavio uudelleen
|
||||||
schematic.info = {0}x{1}, {2} palikkaa
|
schematic.info = {0}x{1}, {2} palikkaa
|
||||||
schematic.disabled = [scarlet]Schematics disabled[]\nYou are not allowed to use schematics on this [accent]map[] or [accent]server.
|
schematic.disabled = [scarlet]Kaaviot poistettu käytöstä[]\nEt pysty käyttämään kaavioita tällä [accent]kartalla[] tai [accent]palvelimella.
|
||||||
|
|
||||||
stat.wave = Tasoja voitettu:[accent] {0}
|
stat.wave = Tasoja voitettu:[accent] {0}
|
||||||
stat.enemiesDestroyed = Vihollisia tuhottu:[accent] {0}
|
stat.enemiesDestroyed = Vihollisia tuhottu:[accent] {0}
|
||||||
@@ -63,7 +63,7 @@ stat.built = Rakennuksia rakennettu:[accent] {0}
|
|||||||
stat.destroyed = Rakennuksia tuhottu:[accent] {0}
|
stat.destroyed = Rakennuksia tuhottu:[accent] {0}
|
||||||
stat.deconstructed = Rakennuksia purettu:[accent] {0}
|
stat.deconstructed = Rakennuksia purettu:[accent] {0}
|
||||||
stat.delivered = Resursseja laukaistu:
|
stat.delivered = Resursseja laukaistu:
|
||||||
stat.playtime = Time Played:[accent] {0}
|
stat.playtime = Pelattu aika:[accent] {0}
|
||||||
stat.rank = Lopullinen arvosana: [accent]{0}
|
stat.rank = Lopullinen arvosana: [accent]{0}
|
||||||
|
|
||||||
globalitems = [accent]Global Items
|
globalitems = [accent]Global Items
|
||||||
@@ -236,8 +236,8 @@ save.delete.confirm = Oletko varma että haluat poistaa tämän tallennuksen?
|
|||||||
save.delete = Poista
|
save.delete = Poista
|
||||||
save.export = Vie tallennus
|
save.export = Vie tallennus
|
||||||
save.import.invalid = [accent]This save is invalid!
|
save.import.invalid = [accent]This save is invalid!
|
||||||
save.import.fail = [crimson]Failed to import save: [accent]{0}
|
save.import.fail = [crimson]Tallennuksen tuominen epäonnistui: [accent]{0}
|
||||||
save.export.fail = [crimson]Failed to export save: [accent]{0}
|
save.export.fail = [crimson]Tallennuksen vieminen epäonnistui: [accent]{0}
|
||||||
save.import = Tuo tallennus
|
save.import = Tuo tallennus
|
||||||
save.newslot = Tallennuksen nimi:
|
save.newslot = Tallennuksen nimi:
|
||||||
save.rename = Nimeä uudelleen
|
save.rename = Nimeä uudelleen
|
||||||
|
|||||||
@@ -284,15 +284,15 @@ selectschematic = [accent][[{0}][] pour sélectionner et copier
|
|||||||
pausebuilding = [accent][[{0}][] pour mettre la construction en pause
|
pausebuilding = [accent][[{0}][] pour mettre la construction en pause
|
||||||
resumebuilding = [scarlet][[{0}][] pour reprendre la construction
|
resumebuilding = [scarlet][[{0}][] pour reprendre la construction
|
||||||
wave = [accent]Vague {0}
|
wave = [accent]Vague {0}
|
||||||
wave.cap = [accent]Wave {0}/{1}
|
wave.cap = [accent]Vague {0}/{1}
|
||||||
wave.waiting = [lightgray]Vague dans {0}
|
wave.waiting = [lightgray]Vague dans {0}
|
||||||
wave.waveInProgress = [lightgray]Vague en cours
|
wave.waveInProgress = [lightgray]Vague en cours
|
||||||
waiting = [lightgray]En attente...
|
waiting = [lightgray]En attente...
|
||||||
waiting.players = En attente de joueurs...
|
waiting.players = En attente de joueurs...
|
||||||
wave.enemies = [lightgray]{0} Ennemis restants
|
wave.enemies = [lightgray]{0} Ennemis restants
|
||||||
wave.enemy = [lightgray]{0} Ennemi restant
|
wave.enemy = [lightgray]{0} Ennemi restant
|
||||||
wave.guardianwarn = Guardian approaching in [accent]{0}[] waves.
|
wave.guardianwarn = Gardien à l'approche dans [accent]{0}[] vagues.
|
||||||
wave.guardianwarn.one = Guardian approaching in [accent]{0}[] wave.
|
wave.guardianwarn.one = Gardien à l'approche dans [accent]{0}[] vague.
|
||||||
loadimage = Charger l'image
|
loadimage = Charger l'image
|
||||||
saveimage = Sauvegarder l'image
|
saveimage = Sauvegarder l'image
|
||||||
unknown = Inconnu
|
unknown = Inconnu
|
||||||
@@ -331,7 +331,7 @@ editor.generation = Génération:
|
|||||||
editor.ingame = Éditer dans le jeu
|
editor.ingame = Éditer dans le jeu
|
||||||
editor.publish.workshop = Publier sur le Workshop
|
editor.publish.workshop = Publier sur le Workshop
|
||||||
editor.newmap = Nouvelle carte
|
editor.newmap = Nouvelle carte
|
||||||
editor.center = Center
|
editor.center = Centrer
|
||||||
workshop = Steam Workshop
|
workshop = Steam Workshop
|
||||||
waves.title = Vagues
|
waves.title = Vagues
|
||||||
waves.remove = Supprimer
|
waves.remove = Supprimer
|
||||||
@@ -445,7 +445,7 @@ filter.option.amount = Quantité
|
|||||||
filter.option.block = Bloc
|
filter.option.block = Bloc
|
||||||
filter.option.floor = Sol
|
filter.option.floor = Sol
|
||||||
filter.option.flooronto = Sol en question
|
filter.option.flooronto = Sol en question
|
||||||
filter.option.target = Target
|
filter.option.target = Cible
|
||||||
filter.option.wall = Mur
|
filter.option.wall = Mur
|
||||||
filter.option.ore = Minerai
|
filter.option.ore = Minerai
|
||||||
filter.option.floor2 = Sol secondaire
|
filter.option.floor2 = Sol secondaire
|
||||||
|
|||||||
@@ -1066,7 +1066,7 @@ block.message.name = Message
|
|||||||
block.illuminator.name = Illuminator
|
block.illuminator.name = Illuminator
|
||||||
block.illuminator.description = A small, compact, configurable light source. Requires power to function.
|
block.illuminator.description = A small, compact, configurable light source. Requires power to function.
|
||||||
block.overflow-gate.name = Barrière de Débordement
|
block.overflow-gate.name = Barrière de Débordement
|
||||||
block.underflow-gate.name = Underflow Gate
|
block.underflow-gate.name = Barrière de Refoulement
|
||||||
block.silicon-smelter.name = Fonderie de silicium
|
block.silicon-smelter.name = Fonderie de silicium
|
||||||
block.phase-weaver.name = Tisseur à phase
|
block.phase-weaver.name = Tisseur à phase
|
||||||
block.pulverizer.name = Pulvérisateur
|
block.pulverizer.name = Pulvérisateur
|
||||||
@@ -1274,7 +1274,7 @@ block.inverted-sorter.description = Processes items like a standard sorter, but
|
|||||||
block.router.description = Accepte les éléments d'une direction et les envoie dans 3 autres directions de manière égale. Utile pour séparer les matériaux d'une source en plusieurs cibles.
|
block.router.description = Accepte les éléments d'une direction et les envoie dans 3 autres directions de manière égale. Utile pour séparer les matériaux d'une source en plusieurs cibles.
|
||||||
block.distributor.description = Un routeur avancé qui divise les articles en 7 autres directions de manière égale. [scarlet]Seule et unique ![]
|
block.distributor.description = Un routeur avancé qui divise les articles en 7 autres directions de manière égale. [scarlet]Seule et unique ![]
|
||||||
block.overflow-gate.description = C'est la combinaison entre un routeur et un diviseur qui peut seulement distribuer à gauche et à droite si le chemin de devant est bloqué.
|
block.overflow-gate.description = C'est la combinaison entre un routeur et un diviseur qui peut seulement distribuer à gauche et à droite si le chemin de devant est bloqué.
|
||||||
block.underflow-gate.description = The opposite of an overflow gate. Outputs to the front if the left and right paths are blocked.
|
block.underflow-gate.description = Le contraire d'une barrière de débordement.\nEnvoie les ressources vers l'avant si les chemins de gauche et de droite sont bloqués.
|
||||||
block.mass-driver.description = Bloc de transport d'articles ultime.\nRecueille plusieurs objets et les envoie ensuite à un autre pilote de masse sur une longue distance.
|
block.mass-driver.description = Bloc de transport d'articles ultime.\nRecueille plusieurs objets et les envoie ensuite à un autre pilote de masse sur une longue distance.
|
||||||
block.mechanical-pump.description = Une pompe bon marché avec un débit lent, mais aucune consommation d'énergie.
|
block.mechanical-pump.description = Une pompe bon marché avec un débit lent, mais aucune consommation d'énergie.
|
||||||
block.rotary-pump.description = Une pompe avancée qui double la vitesse en utilisant l’énergie.
|
block.rotary-pump.description = Une pompe avancée qui double la vitesse en utilisant l’énergie.
|
||||||
|
|||||||
@@ -473,7 +473,7 @@ abandon = Verlaat
|
|||||||
abandon.text = Je verliest deze kaart met alles erop en eraan aan de vijand.
|
abandon.text = Je verliest deze kaart met alles erop en eraan aan de vijand.
|
||||||
locked = Op slot
|
locked = Op slot
|
||||||
complete = [lightgray]Voltooid:
|
complete = [lightgray]Voltooid:
|
||||||
requirement.wave = Berijk ronde {0} in {1}
|
requirement.wave = Bereik ronde {0} in {1}
|
||||||
requirement.core = Vernietig vijandige core in {0}
|
requirement.core = Vernietig vijandige core in {0}
|
||||||
requirement.research = Research {0}
|
requirement.research = Research {0}
|
||||||
requirement.capture = Capture {0}
|
requirement.capture = Capture {0}
|
||||||
@@ -489,7 +489,7 @@ addall = Voeg Alles Toe
|
|||||||
launch.destination = Destination: {0}
|
launch.destination = Destination: {0}
|
||||||
configure.invalid = Hoeveelheid moet een getal zijn tussen 0 en {0}.
|
configure.invalid = Hoeveelheid moet een getal zijn tussen 0 en {0}.
|
||||||
zone.unlocked = [lightgray]{0} vrijgespeeld.
|
zone.unlocked = [lightgray]{0} vrijgespeeld.
|
||||||
zone.requirement.complete = Ronde {0} berijkt:\n{1} zone vrijgespeeld.
|
zone.requirement.complete = Ronde {0} bereikt:\n{1} zone vrijgespeeld.
|
||||||
zone.resources = Vindbare grondstoffen:
|
zone.resources = Vindbare grondstoffen:
|
||||||
zone.objective = [lightgray]Doel: [accent]{0}
|
zone.objective = [lightgray]Doel: [accent]{0}
|
||||||
zone.objective.survival = Overleef
|
zone.objective.survival = Overleef
|
||||||
@@ -1064,7 +1064,7 @@ block.sorter.name = Sorteerder
|
|||||||
block.inverted-sorter.name = Omgekeerder Sorteerder
|
block.inverted-sorter.name = Omgekeerder Sorteerder
|
||||||
block.message.name = Bericht
|
block.message.name = Bericht
|
||||||
block.illuminator.name = Lamp
|
block.illuminator.name = Lamp
|
||||||
block.illuminator.description = Een kleine aanpasbare lamp, heef stroom nodig.
|
block.illuminator.description = Een kleine aanpasbare lamp, heeft stroom nodig.
|
||||||
block.overflow-gate.name = Overflow Gate
|
block.overflow-gate.name = Overflow Gate
|
||||||
block.underflow-gate.name = Underflow Gate
|
block.underflow-gate.name = Underflow Gate
|
||||||
block.silicon-smelter.name = Siliciumsmelter
|
block.silicon-smelter.name = Siliciumsmelter
|
||||||
@@ -1201,9 +1201,9 @@ tutorial.waves.mobile = De[lightgray] vijand[] naderd.\n\nVerdedig je core voor
|
|||||||
tutorial.launch = Tijdens sommige waves, kan je je core[accent] lanceren[], hiermee verlaat je de basis permanent[accent] maar je neemt wel alles dat in de core zit met je mee.[]\nMet deze grondstoffen kan je nieuwe technologieën onderzoeken.\n\n[accent]Druk op de lanceerknop.
|
tutorial.launch = Tijdens sommige waves, kan je je core[accent] lanceren[], hiermee verlaat je de basis permanent[accent] maar je neemt wel alles dat in de core zit met je mee.[]\nMet deze grondstoffen kan je nieuwe technologieën onderzoeken.\n\n[accent]Druk op de lanceerknop.
|
||||||
|
|
||||||
item.copper.description = Een nuttig materiaal voor gebouwen. Wordt erg vaak in blokken gebruikt.
|
item.copper.description = Een nuttig materiaal voor gebouwen. Wordt erg vaak in blokken gebruikt.
|
||||||
item.lead.description = Een basismateriaal. Wordt vaak gebruikt in elektronica en vloeistoftransport.
|
item.lead.description = Een basismateriaal. Wordt veel gebruikt in elektronica en vloeistoftransport.
|
||||||
item.metaglass.description = A super-tough glass compound. Extensively used for liquid distribution and storage.
|
item.metaglass.description = Een supersterke glas-samenstelling. Veel gebruikt voor vloeistof transport en opslag.
|
||||||
item.graphite.description = Mineralized carbon, used for ammunition and electrical insulation.
|
item.graphite.description = Gemineraliseerde koolstof, gebruikt voor ammunitie en elektrische isolatie.
|
||||||
item.sand.description = A common material that is used extensively in smelting, both in alloying and as a flux.
|
item.sand.description = A common material that is used extensively in smelting, both in alloying and as a flux.
|
||||||
item.coal.description = A common and readily available fuel.
|
item.coal.description = A common and readily available fuel.
|
||||||
item.titanium.description = A rare super-light metal used extensively in liquid transportation, drills and aircraft.
|
item.titanium.description = A rare super-light metal used extensively in liquid transportation, drills and aircraft.
|
||||||
|
|||||||
@@ -20,8 +20,8 @@ gameover = O núcleo foi destruído.
|
|||||||
gameover.pvp = O time[accent] {0}[] ganhou!
|
gameover.pvp = O time[accent] {0}[] ganhou!
|
||||||
highscore = [accent]Novo recorde!
|
highscore = [accent]Novo recorde!
|
||||||
copied = Copiado
|
copied = Copiado
|
||||||
indev.popup = [accent]v6[] is currently in [accent]alpha[].\n[lightgray]This means:[]\n[scarlet]- The campaign is completely unfinished[]\n- Content is missing\n - Most [scarlet]Unit AI[] does not work properly\n- Many units are unfinished\n- Everything you see is subject to change or removal.\n\nReport bugs or crashes on [accent]Github[].
|
indev.popup = [accent]v6[] está atualmente em [accent]alpha[].\n[lightgray]Isso significa:[]\n[scarlet]- A campanha está inacabada[]\n- Está faltando conteúdo\n - A maioria das [scarlet]IAs das unidades[] não funciona adequadamente\n- A maioria das unidades estão inacabadas\n- Tudo o que você ver está sujeito a mudanças ou remoção.\n\nReporte bugs ou crashes em [accent]Github[].
|
||||||
indev.notready = This part of the game isn't ready yet
|
indev.notready = Essa parte do jogo ainda não esta pronta
|
||||||
|
|
||||||
load.sound = Sons
|
load.sound = Sons
|
||||||
load.map = Mapas
|
load.map = Mapas
|
||||||
@@ -55,7 +55,7 @@ schematic.saved = Esquema salvo.
|
|||||||
schematic.delete.confirm = Esse esquema será apagado. Tem certeza?
|
schematic.delete.confirm = Esse esquema será apagado. Tem certeza?
|
||||||
schematic.rename = Renomear esquema
|
schematic.rename = Renomear esquema
|
||||||
schematic.info = {0}x{1}, {2} blocos
|
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.disabled = [scarlet]Esquemas desativados[]\nVocê precisa de permissão para usar esquemas nesse [accent]mapa[] ou [accent]servidor.
|
||||||
|
|
||||||
stat.wave = Hordas derrotadas:[accent] {0}
|
stat.wave = Hordas derrotadas:[accent] {0}
|
||||||
stat.enemiesDestroyed = Inimigos destruídos:[accent] {0}
|
stat.enemiesDestroyed = Inimigos destruídos:[accent] {0}
|
||||||
@@ -66,7 +66,7 @@ stat.delivered = Recursos lançados:
|
|||||||
stat.playtime = Tempo jogado:[accent] {0}
|
stat.playtime = Tempo jogado:[accent] {0}
|
||||||
stat.rank = Classificação final: [accent]{0}
|
stat.rank = Classificação final: [accent]{0}
|
||||||
|
|
||||||
globalitems = [accent]Global Items
|
globalitems = [accent]Itens Globais
|
||||||
map.delete = Certeza que quer deletar o mapa "[accent]{0}[]"?
|
map.delete = Certeza que quer deletar o mapa "[accent]{0}[]"?
|
||||||
level.highscore = Melhor\npontuação: [accent] {0}
|
level.highscore = Melhor\npontuação: [accent] {0}
|
||||||
level.select = Seleção de fase
|
level.select = Seleção de fase
|
||||||
@@ -106,16 +106,16 @@ mods.none = [lightgray]Nenhum mod encontrado!
|
|||||||
mods.guide = Guia de mods
|
mods.guide = Guia de mods
|
||||||
mods.report = Reportar um Bug
|
mods.report = Reportar um Bug
|
||||||
mods.openfolder = Abrir pasta de mods
|
mods.openfolder = Abrir pasta de mods
|
||||||
mods.reload = Reload
|
mods.reload = Recarregar
|
||||||
mods.reloadexit = The game will now exit, to reload mods.
|
mods.reloadexit = O jogo vai fechar, para poder recarregar os mods.
|
||||||
mod.display = [gray]Mod:[orange] {0}
|
mod.display = [gray]Mod:[orange] {0}
|
||||||
mod.enabled = [lightgray]Ativado
|
mod.enabled = [lightgray]Ativado
|
||||||
mod.disabled = [scarlet]Desativado
|
mod.disabled = [scarlet]Desativado
|
||||||
mod.disable = Desati-\nvar
|
mod.disable = Desati-\nvar
|
||||||
mod.content = Content:
|
mod.content = Conteúdo:
|
||||||
mod.delete.error = Incapaz de deletar o mod. O arquivo talvez esteja em uso.
|
mod.delete.error = Incapaz de deletar o mod. O arquivo talvez esteja em uso.
|
||||||
mod.requiresversion = [scarlet]Requer no mínimo versão [accent]{0} [scarlet]do jogo.
|
mod.requiresversion = [scarlet]Requer no mínimo versão [accent]{0} [scarlet]do jogo.
|
||||||
mod.outdated = [scarlet]Not compatible with V6 (no minGameVersion: 105)
|
mod.outdated = [scarlet]Não compatível com a V6 (sem minGameVersion: 105)
|
||||||
mod.missingdependencies = [scarlet]Dependências ausentes: {0}
|
mod.missingdependencies = [scarlet]Dependências ausentes: {0}
|
||||||
mod.erroredcontent = [scarlet]Erros no conteúdo
|
mod.erroredcontent = [scarlet]Erros no conteúdo
|
||||||
mod.errors = Ocorreram erros ao carregar o conteúdo.
|
mod.errors = Ocorreram erros ao carregar o conteúdo.
|
||||||
@@ -125,22 +125,22 @@ mod.enable = Ativar
|
|||||||
mod.requiresrestart = O jogo irá fechar para aplicar as mudanças do mod.
|
mod.requiresrestart = O jogo irá fechar para aplicar as mudanças do mod.
|
||||||
mod.reloadrequired = [scarlet]Recarregamento necessário
|
mod.reloadrequired = [scarlet]Recarregamento necessário
|
||||||
mod.import = Importar mod
|
mod.import = Importar mod
|
||||||
mod.import.file = Import File
|
mod.import.file = Importar Arquivo
|
||||||
mod.import.github = Importar mod do GitHub
|
mod.import.github = Importar mod do GitHub
|
||||||
mod.jarwarn = [scarlet]JAR mods are inherently unsafe.[]\nMake sure you're importing this mod from a trustworthy source!
|
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.item.remove = Este item é parte do mod[accent] '{0}'[]. Para removê-lo, desinstale esse mod.
|
||||||
mod.remove.confirm = Este mod será deletado.
|
mod.remove.confirm = Este mod será deletado.
|
||||||
mod.author = [lightgray]Autor:[] {0}
|
mod.author = [lightgray]Autor:[] {0}
|
||||||
mod.missing = Esse jogo salvo foi criado antes de você atualizar ou desinstalar um mod. Pode ocorrer uma corrupção no salvamento. Você tem certeza que quer carregar?\n[lightgray]Mods:\n{0}
|
mod.missing = Esse jogo salvo foi criado antes de você atualizar ou desinstalar um mod. Pode ocorrer uma corrupção no salvamento. Você tem certeza que quer carregar?\n[lightgray]Mods:\n{0}
|
||||||
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.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 a compactação antiga, então reinicie seu jogo ou recarregue os mods.
|
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 a compactação antiga, então reinicie seu jogo ou recarregue os mods.
|
||||||
mod.scripts.disable = Your device does not support mods with scripts. You must disable these mods to play the game.
|
mod.scripts.disable = Seu dispositivo não suporta mods com scripts. Você precisa desabilitar esses mods para conseguir jogar.
|
||||||
|
|
||||||
about.button = Sobre
|
about.button = Sobre
|
||||||
name = Nome:
|
name = Nome:
|
||||||
noname = Escolha[accent] um nome[] primeiro.
|
noname = Escolha[accent] um nome[] primeiro.
|
||||||
planetmap = Planet Map
|
planetmap = Mapa do Planeta
|
||||||
launchcore = Launch Core
|
launchcore = Lançar núcleo
|
||||||
filename = Nome do arquivo:
|
filename = Nome do arquivo:
|
||||||
unlocked = Novo bloco desbloqueado!
|
unlocked = Novo bloco desbloqueado!
|
||||||
completed = [accent]Completado
|
completed = [accent]Completado
|
||||||
@@ -148,7 +148,7 @@ techtree = Árvore Tecnológica
|
|||||||
research.list = [lightgray]Pesquise:
|
research.list = [lightgray]Pesquise:
|
||||||
research = Pesquisar
|
research = Pesquisar
|
||||||
researched = [lightgray]{0} Pesquisado.
|
researched = [lightgray]{0} Pesquisado.
|
||||||
research.progress = {0}% complete
|
research.progress = {0}% completo
|
||||||
players = {0} Jogadores ativos
|
players = {0} Jogadores ativos
|
||||||
players.single = {0} Jogador ativo
|
players.single = {0} Jogador ativo
|
||||||
players.search = Procurar
|
players.search = Procurar
|
||||||
@@ -278,21 +278,21 @@ quit.confirm.tutorial = Você tem certeza que você sabe o que você esta fazend
|
|||||||
loading = [accent]Carregando...
|
loading = [accent]Carregando...
|
||||||
reloading = [accent]Recarregando mods...
|
reloading = [accent]Recarregando mods...
|
||||||
saving = [accent]Salvando...
|
saving = [accent]Salvando...
|
||||||
respawn = [accent][[{0}][] to respawn in core
|
respawn = [accent][[{0}][] para nascer no núcleo
|
||||||
cancelbuilding = [accent][[{0}][] para cancelar a construção
|
cancelbuilding = [accent][[{0}][] para cancelar a construção
|
||||||
selectschematic = [accent][[{0}][] para selecionar + copiar
|
selectschematic = [accent][[{0}][] para selecionar + copiar
|
||||||
pausebuilding = [accent][[{0}][] para parar a construção
|
pausebuilding = [accent][[{0}][] para parar a construção
|
||||||
resumebuilding = [scarlet][[{0}][] para continuar a construção
|
resumebuilding = [scarlet][[{0}][] para continuar a construção
|
||||||
wave = [accent]Horda {0}
|
wave = [accent]Horda {0}
|
||||||
wave.cap = [accent]Wave {0}/{1}
|
wave.cap = [accent]Horda {0}/{1}
|
||||||
wave.waiting = Proxima horda em {0}
|
wave.waiting = Proxima horda em {0}
|
||||||
wave.waveInProgress = [lightgray]Horda em progresso
|
wave.waveInProgress = [lightgray]Horda em progresso
|
||||||
waiting = Aguardando...
|
waiting = Aguardando...
|
||||||
waiting.players = Esperando por jogadores...
|
waiting.players = Esperando por jogadores...
|
||||||
wave.enemies = [lightgray]{0} inimigos restantes
|
wave.enemies = [lightgray]{0} inimigos restantes
|
||||||
wave.enemy = [lightgray]{0} inimigo restante
|
wave.enemy = [lightgray]{0} inimigo restante
|
||||||
wave.guardianwarn = Guardian approaching in [accent]{0}[] waves.
|
wave.guardianwarn = Guardião se aproximando em [accent]{0}[] Hordas.
|
||||||
wave.guardianwarn.one = Guardian approaching in [accent]{0}[] wave.
|
wave.guardianwarn.one = Guardião se aproximando em [accent]{0}[] Horda.
|
||||||
loadimage = Carregar\nimagem
|
loadimage = Carregar\nimagem
|
||||||
saveimage = Salvar\nimagem
|
saveimage = Salvar\nimagem
|
||||||
unknown = Desconhecido
|
unknown = Desconhecido
|
||||||
@@ -339,7 +339,7 @@ waves.never = <nunca>
|
|||||||
waves.every = a cada
|
waves.every = a cada
|
||||||
waves.waves = Horda(s)
|
waves.waves = Horda(s)
|
||||||
waves.perspawn = por spawn
|
waves.perspawn = por spawn
|
||||||
waves.shields = shields/wave
|
waves.shields = Escudo/Horda
|
||||||
waves.to = para
|
waves.to = para
|
||||||
waves.guardian = Guardian
|
waves.guardian = Guardian
|
||||||
waves.preview = Pré-visualizar
|
waves.preview = Pré-visualizar
|
||||||
@@ -350,9 +350,9 @@ waves.invalid = Hordas inválidas na área de transferência.
|
|||||||
waves.copied = Hordas copiadas.
|
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.none = Sem hordas definidas.\nNote que layouts vazios de hordas serão automaticamente substituídos pelo layout padrão.
|
||||||
|
|
||||||
wavemode.counts = counts
|
wavemode.counts = quantidade
|
||||||
wavemode.totals = totals
|
wavemode.totals = total
|
||||||
wavemode.health = health
|
wavemode.health = vida
|
||||||
|
|
||||||
editor.default = [lightgray]<padrão>
|
editor.default = [lightgray]<padrão>
|
||||||
details = Detalhes...
|
details = Detalhes...
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ gameover = Jocul s-a încheiat
|
|||||||
gameover.pvp = Echipa [accent] {0}[] este câștigătoare!
|
gameover.pvp = Echipa [accent] {0}[] este câștigătoare!
|
||||||
highscore = [accent]Scor maxim nou!
|
highscore = [accent]Scor maxim nou!
|
||||||
copied = Copiat.
|
copied = Copiat.
|
||||||
indev.popup = [accent]v6[] este momentan în [accent]beta[].\n[lightgray]Asta înseamnă că:[]\n[scarlet]- Campania este complet neterminată[]\n- Efectele sonore și muzica sunt neterminate/lipsesc\n- Majoritatea [scarlet]AI-ului unităților[] nu funcționează bine\n- Multe unități sunt neterminate\n- Modul campanie nu este terminat \n- Tot ce vedeți se poate schimba sau poate fi eliminat.\n\nPentru a raporta buguri și crashuri intrați pe [accent]Github[].
|
indev.popup = [accent]v6[] este momentan în [accent]beta[].\n[lightgray]Asta înseamnă că:[]\n[scarlet]- Campania este complet neterminată[]\n- Efectele sonore și muzica sunt neterminate/lipsesc\n- Tot ce vedeți se poate schimba sau poate fi eliminat.\n\nPentru a raporta buguri și crashuri intrați pe [accent]Github[].
|
||||||
indev.notready = Această secțiune a jocului nu este gata încă.
|
indev.notready = Această secțiune a jocului nu este gata încă.
|
||||||
|
|
||||||
load.sound = Sunete
|
load.sound = Sunete
|
||||||
@@ -100,7 +100,7 @@ committingchanges = Se Încarcă Schimbările
|
|||||||
done = Gata
|
done = Gata
|
||||||
feature.unsupported = Dispozitivul tău nu suportă această funcție.
|
feature.unsupported = Dispozitivul tău nu suportă această funcție.
|
||||||
|
|
||||||
mods.alphainfo = Modurile sunt încă în alpha și[scarlet] pot avea multe buguri[].\nRaportați orice probleme apărute pe Githubul Mindustry.
|
mods.alphainfo = Modurile sunt încă în alpha și[scarlet] pot avea multe buguri[].\nRaportează orice probleme apărute pe Githubul Mindustry.
|
||||||
mods = Moduri
|
mods = Moduri
|
||||||
mods.none = [lightgray]Nu s-au găsit moduri!
|
mods.none = [lightgray]Nu s-au găsit moduri!
|
||||||
mods.guide = Ghid de Modding
|
mods.guide = Ghid de Modding
|
||||||
@@ -127,11 +127,11 @@ mod.reloadrequired = [scarlet]E Nevoie de o Repornire
|
|||||||
mod.import = Importă Mod
|
mod.import = Importă Mod
|
||||||
mod.import.file = Importă Fișier
|
mod.import.file = Importă Fișier
|
||||||
mod.import.github = Importă din GitHub
|
mod.import.github = Importă din GitHub
|
||||||
mod.jarwarn = [scarlet]Modurile în format JAR nu sunt sigure.[]\nAi grijă să importezi acest mod dintr-o sursă de încredere!
|
mod.jarwarn = [scarlet]Modurile în format JAR nu sunt sigure.[]\nAi grijă să imporți acest mod dintr-o sursă de încredere!
|
||||||
mod.item.remove = Acest obiect este parte din modul [accent] '{0}'[]. Ca să îl poți elimina, dezinstalează acel mod.
|
mod.item.remove = Acest obiect face parte din modul [accent] '{0}'[]. Ca să îl poți elimina, dezinstalează acel mod.
|
||||||
mod.remove.confirm = Acest mod va fi șters.
|
mod.remove.confirm = Acest mod va fi șters.
|
||||||
mod.author = [lightgray]Autor:[] {0}
|
mod.author = [lightgray]Autor:[] {0}
|
||||||
mod.missing = Această salvare conține moduri cărora le-ai făcut update recent sau nu mai sunt instalate. Fișierul poate fi corupt. Sigur vrei să îl încarci?\n[lightgray]Moduri:\n{0}
|
mod.missing = Această salvare conține moduri cărora le-ai făcut update recent sau care nu mai sunt instalate. Fișierul poate fi corupt. Sigur vrei să îl încarci?\n[lightgray]Moduri:\n{0}
|
||||||
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.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.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.scripts.disable = Dispozitivul tău nu suportă moduri cu scripturi. Trebuie să dezactivezi aceste moduri ca să joci jocul.
|
||||||
@@ -172,7 +172,7 @@ server.kicked.gameover = Joc încheiat!
|
|||||||
server.kicked.serverRestarting = Acest server se repornește.
|
server.kicked.serverRestarting = Acest server se repornește.
|
||||||
server.versions = Versiunea ta:[accent] {0}[]versiunea serverului:[accent] {1}[]
|
server.versions = Versiunea ta:[accent] {0}[]versiunea serverului:[accent] {1}[]
|
||||||
host.info = Butonul [accent]găzduiește[] va găzdui un server pe portul [scarlet]6567[]. \nOrice persoană de pe același port [lightgray]wifi sau rețea locală[] ar trebui să-ți vadă serverul în lista lor de servere.\n\nDacă vrei ca lumea să se poată conecta de oriunde cu IP-ul, este nevoie de [accent]port forwarding[].\n\n[lightgray]Notă: Dacă cineva are probleme în a se conecta la jocul tău LAN, verifică dacă ai lăsat Mindustry să acceseze rețeaua locală în setările de firewall. De menționat este faptul că uneori rețelele publice nu permit descoperirea serverului.
|
host.info = Butonul [accent]găzduiește[] va găzdui un server pe portul [scarlet]6567[]. \nOrice persoană de pe același port [lightgray]wifi sau rețea locală[] ar trebui să-ți vadă serverul în lista lor de servere.\n\nDacă vrei ca lumea să se poată conecta de oriunde cu IP-ul, este nevoie de [accent]port forwarding[].\n\n[lightgray]Notă: Dacă cineva are probleme în a se conecta la jocul tău LAN, verifică dacă ai lăsat Mindustry să acceseze rețeaua locală în setările de firewall. De menționat este faptul că uneori rețelele publice nu permit descoperirea serverului.
|
||||||
join.info = Aici poți scrie un [accent]IP de server[] pt a te conecta, a descoperi [accent]rețeaua locală[] sau serverele [accent]globale[] pt a te conecta la ele.\nAtât multiplayerul LAN cât și cel WAN este suportat.\n\n[lightgray]Dacă vrei să te conectezi la cineva cu IP-ul, trebuie să ceri gazdei IP-ul său, care poate fi găsit căutând pe Google "my ip' de pe dispozitivul lor.
|
join.info = Aici poți scrie un [accent]IP de server[] pt a te conecta sau pt a descoperi [accent]rețeaua locală[] sau serverele [accent]globale[] la care să te conectezi.\nAtât multiplayerul LAN cât și cel WAN sunt suportate.\n\n[lightgray]Dacă vrei să te conectezi la cineva cu IP-ul, trebuie să ceri gazdei IP-ul său, care poate fi găsit căutând pe Google "my ip" de pe dispozitivul său.
|
||||||
hostserver = Găzduiește Joc Multiplayer
|
hostserver = Găzduiește Joc Multiplayer
|
||||||
invitefriends = Invită Prieteni
|
invitefriends = Invită Prieteni
|
||||||
hostserver.mobile = Găzduiește Joc
|
hostserver.mobile = Găzduiește Joc
|
||||||
@@ -350,6 +350,7 @@ waves.invalid = Valuri invalide în clipboard.
|
|||||||
waves.copied = Valuri copiate.
|
waves.copied = Valuri copiate.
|
||||||
waves.none = Niciun inamic definit.\nDe reținut că o listă de valuri goală va fi înlocuită automat cu lista de valuri prestabilită.
|
waves.none = Niciun inamic definit.\nDe reținut că o listă de valuri goală va fi înlocuită automat cu lista de valuri prestabilită.
|
||||||
|
|
||||||
|
#intenționat cu literă mică
|
||||||
wavemode.counts = numere
|
wavemode.counts = numere
|
||||||
wavemode.totals = totaluri
|
wavemode.totals = totaluri
|
||||||
wavemode.health = viață
|
wavemode.health = viață
|
||||||
@@ -462,7 +463,7 @@ load = Încarcă
|
|||||||
save = Salvează
|
save = Salvează
|
||||||
fps = FPS: {0}
|
fps = FPS: {0}
|
||||||
ping = Ping: {0}ms
|
ping = Ping: {0}ms
|
||||||
language.restart = Vă rugăm să reporniți jocul pentru că setările de limbă să aibă efect.
|
language.restart = Repornește jocul pentru ca setările de limbă să aibă efect.
|
||||||
settings = Setări
|
settings = Setări
|
||||||
tutorial = Tutorial
|
tutorial = Tutorial
|
||||||
tutorial.retake = Reia Tutorial
|
tutorial.retake = Reia Tutorial
|
||||||
@@ -482,6 +483,8 @@ launch.text = Lansează
|
|||||||
research.multiplayer = Doar gazda poate cerceta noi tehnologii.
|
research.multiplayer = Doar gazda poate cerceta noi tehnologii.
|
||||||
uncover = Descoperă
|
uncover = Descoperă
|
||||||
configure = Configurează Încărcarea
|
configure = Configurează Încărcarea
|
||||||
|
|
||||||
|
#Spațiu Necesar
|
||||||
loadout = Încărcare
|
loadout = Încărcare
|
||||||
resources = Resurse
|
resources = Resurse
|
||||||
bannedblocks = Blocuri Interzise
|
bannedblocks = Blocuri Interzise
|
||||||
@@ -526,8 +529,10 @@ sectors.rename = Redenumește Sectorul
|
|||||||
sector.missingresources = [scarlet]Resurse din Nucleu Insuficiente
|
sector.missingresources = [scarlet]Resurse din Nucleu Insuficiente
|
||||||
|
|
||||||
planet.serpulo.name = Serpulo
|
planet.serpulo.name = Serpulo
|
||||||
|
#Spațiu Necesar
|
||||||
planet.sun.name = Soare
|
planet.sun.name = Soare
|
||||||
|
|
||||||
|
#Spațiu Necesar
|
||||||
sector.groundZero.name = Ground Zero
|
sector.groundZero.name = Ground Zero
|
||||||
sector.craters.name = The Craters
|
sector.craters.name = The Craters
|
||||||
sector.frozenForest.name = Frozen Forest
|
sector.frozenForest.name = Frozen Forest
|
||||||
@@ -540,6 +545,10 @@ sector.tarFields.name = Tar Fields
|
|||||||
sector.saltFlats.name = Salt Flats
|
sector.saltFlats.name = Salt Flats
|
||||||
sector.fungalPass.name = Fungal Pass
|
sector.fungalPass.name = Fungal Pass
|
||||||
|
|
||||||
|
#Spațiu
|
||||||
|
#Absolut
|
||||||
|
#Necesar
|
||||||
|
|
||||||
sector.groundZero.description = Locația optimă pt a începe încă odată. Risc de inamici scăzut. Puține resurse.\nAdună cât de mult plumb și cupru se poate.\nMergi mai departe.
|
sector.groundZero.description = Locația optimă pt a începe încă odată. Risc de inamici scăzut. Puține resurse.\nAdună cât de mult plumb și cupru se poate.\nMergi mai departe.
|
||||||
sector.frozenForest.description = Chiar și aici, aproape de munți, sporii s-au împrăștiat. Temperaturile reci nu-i pot reține la infinit.\n\nÎncepe călătoria către electricitate. Construiește generatoare de combustie. Învață să folosești reparatoare.
|
sector.frozenForest.description = Chiar și aici, aproape de munți, sporii s-au împrăștiat. Temperaturile reci nu-i pot reține la infinit.\n\nÎncepe călătoria către electricitate. Construiește generatoare de combustie. Învață să folosești reparatoare.
|
||||||
sector.saltFlats.description = La periferia deșertului stau Salt Flats. Puține resurse pot fi găsite în această locație.\n\nInamicul a ridicat un complex-depozit aici. Distruge-le nucleul. Nu lăsa nimic în urmă.
|
sector.saltFlats.description = La periferia deșertului stau Salt Flats. Puține resurse pot fi găsite în această locație.\n\nInamicul a ridicat un complex-depozit aici. Distruge-le nucleul. Nu lăsa nimic în urmă.
|
||||||
@@ -573,7 +582,6 @@ settings.clearcampaignsaves.confirm = Sigur vrei să ștergi toate salvările di
|
|||||||
paused = [accent]< Pauză >
|
paused = [accent]< Pauză >
|
||||||
clear = Curăță
|
clear = Curăță
|
||||||
banned = [scarlet]Interzis
|
banned = [scarlet]Interzis
|
||||||
unplaceable.sectorcaptured = [scarlet]Ai nevoie de un sector capturat
|
|
||||||
yes = Da
|
yes = Da
|
||||||
no = Nu
|
no = Nu
|
||||||
info.title = Info
|
info.title = Info
|
||||||
@@ -585,7 +593,7 @@ block.unknown = [lightgray]???
|
|||||||
|
|
||||||
stat.input = Necesită
|
stat.input = Necesită
|
||||||
stat.output = Produce
|
stat.output = Produce
|
||||||
stat.booster = Booster
|
stat.booster = Îmbunătățiri
|
||||||
stat.tiles = Teren Necesar
|
stat.tiles = Teren Necesar
|
||||||
stat.affinities = Efecte Teren
|
stat.affinities = Efecte Teren
|
||||||
stat.powercapacity = Capacitate electrică
|
stat.powercapacity = Capacitate electrică
|
||||||
@@ -614,7 +622,7 @@ stat.speedincrease = Creștere Viteză
|
|||||||
stat.range = Rază
|
stat.range = Rază
|
||||||
stat.drilltier = Minabile
|
stat.drilltier = Minabile
|
||||||
stat.drillspeed = Viteză Burghiu (Bază)
|
stat.drillspeed = Viteză Burghiu (Bază)
|
||||||
stat.boosteffect = Efect de Boost
|
stat.boosteffect = Efect de Îmbunătățire
|
||||||
stat.maxunits = Maxim Unități Active
|
stat.maxunits = Maxim Unități Active
|
||||||
stat.health = Viață
|
stat.health = Viață
|
||||||
stat.buildtime = Timp Construcție
|
stat.buildtime = Timp Construcție
|
||||||
@@ -642,6 +650,8 @@ stat.minetier = Putere Minare
|
|||||||
stat.payloadcapacity = Capacitate Încărcătură
|
stat.payloadcapacity = Capacitate Încărcătură
|
||||||
stat.commandlimit = Nr Unități Comandate
|
stat.commandlimit = Nr Unități Comandate
|
||||||
stat.abilities = Abilități
|
stat.abilities = Abilități
|
||||||
|
stat.canboost = Poate Îmbunătăți
|
||||||
|
stat.flying = Zboară
|
||||||
|
|
||||||
ability.forcefield = Câmp de Forță
|
ability.forcefield = Câmp de Forță
|
||||||
ability.repairfield = Câmp de Reparare
|
ability.repairfield = Câmp de Reparare
|
||||||
@@ -681,7 +691,7 @@ bullet.shock = [stat]șoc
|
|||||||
bullet.frag = [stat]fragil
|
bullet.frag = [stat]fragil
|
||||||
bullet.knockback = [stat]{0} [lightgray]împingere
|
bullet.knockback = [stat]{0} [lightgray]împingere
|
||||||
bullet.pierce = [stat]{0}[lightgray]x penetrare
|
bullet.pierce = [stat]{0}[lightgray]x penetrare
|
||||||
bullet.infinitepierce = penetrare [stat]
|
bullet.infinitepierce = [stat]penetrare
|
||||||
bullet.freezing = [stat]înghețat
|
bullet.freezing = [stat]înghețat
|
||||||
bullet.tarred = [stat]lipicios
|
bullet.tarred = [stat]lipicios
|
||||||
bullet.multiplier = [stat]{0}[lightgray]x multiplicator muniție
|
bullet.multiplier = [stat]{0}[lightgray]x multiplicator muniție
|
||||||
@@ -720,6 +730,7 @@ setting.linear.name = Filtrare Liniară
|
|||||||
setting.hints.name = Indicii
|
setting.hints.name = Indicii
|
||||||
setting.flow.name = Afișează Rata de Curgere a lichidelor
|
setting.flow.name = Afișează Rata de Curgere a lichidelor
|
||||||
setting.buildautopause.name = Autopauză de la Construit
|
setting.buildautopause.name = Autopauză de la Construit
|
||||||
|
setting.backgroundpause.name = Pune Pauză în Fundal
|
||||||
setting.animatedwater.name = Suprafețe Animate
|
setting.animatedwater.name = Suprafețe Animate
|
||||||
setting.animatedshields.name = Scuturi Animate
|
setting.animatedshields.name = Scuturi Animate
|
||||||
setting.antialias.name = Antialiasing[lightgray] (necesită repornire)[]
|
setting.antialias.name = Antialiasing[lightgray] (necesită repornire)[]
|
||||||
@@ -1006,8 +1017,8 @@ block.sand-water.name = Apă cu Nisip
|
|||||||
block.darksand-water.name = Apă cu Nisip Negru
|
block.darksand-water.name = Apă cu Nisip Negru
|
||||||
block.char.name = Turbă
|
block.char.name = Turbă
|
||||||
block.dacite.name = Dacit
|
block.dacite.name = Dacit
|
||||||
block.dacite-wall.name = Perete de Dacit
|
|
||||||
block.dacite-boulder.name = Bolovan de Dacit
|
block.dacite-boulder.name = Bolovan de Dacit
|
||||||
|
block.dacite-wall.name = Perete de Dacit
|
||||||
block.ice-snow.name = Gheață Înzăpezită
|
block.ice-snow.name = Gheață Înzăpezită
|
||||||
block.stone-wall.name = Perete de Piatră
|
block.stone-wall.name = Perete de Piatră
|
||||||
block.ice-wall.name = Perete de Gheață
|
block.ice-wall.name = Perete de Gheață
|
||||||
|
|||||||
@@ -390,7 +390,7 @@ editor.importimage.description = Импортировать изображени
|
|||||||
editor.export = Экспорт…
|
editor.export = Экспорт…
|
||||||
editor.exportfile = Экспортировать файл
|
editor.exportfile = Экспортировать файл
|
||||||
editor.exportfile.description = Экспорт файла карты
|
editor.exportfile.description = Экспорт файла карты
|
||||||
editor.exportimage = Экспортировать изображение ландшафта
|
editor.exportimage = Экспортировать ландшафт
|
||||||
editor.exportimage.description = Экспортировать файл изображения, содержащего только базовую местность
|
editor.exportimage.description = Экспортировать файл изображения, содержащего только базовую местность
|
||||||
editor.loadimage = Импортировать\nизображение
|
editor.loadimage = Импортировать\nизображение
|
||||||
editor.saveimage = Экспортировать\nизображение
|
editor.saveimage = Экспортировать\nизображение
|
||||||
@@ -581,13 +581,12 @@ settings.clearcampaignsaves.confirm = Вы уверены, что хотите
|
|||||||
paused = [accent]< Пауза >
|
paused = [accent]< Пауза >
|
||||||
clear = Очистить
|
clear = Очистить
|
||||||
banned = [scarlet]Запрещено
|
banned = [scarlet]Запрещено
|
||||||
unplaceable.sectorcaptured = [scarlet]Требуется захватить сектор
|
|
||||||
yes = Да
|
yes = Да
|
||||||
no = Нет
|
no = Нет
|
||||||
info.title = Информация
|
info.title = Информация
|
||||||
error.title = [scarlet]Произошла ошибка
|
error.title = [scarlet]Произошла ошибка
|
||||||
error.crashtitle = Произошла ошибка
|
error.crashtitle = Произошла ошибка
|
||||||
unit.nobuild = [scarlet]Боевая единица не может строить
|
unit.nobuild = [scarlet]Единица не может строить
|
||||||
lastaccessed = [lightgray]Последняя конфигурация от {0}
|
lastaccessed = [lightgray]Последняя конфигурация от {0}
|
||||||
block.unknown = [lightgray]???
|
block.unknown = [lightgray]???
|
||||||
|
|
||||||
@@ -653,8 +652,7 @@ stat.abilities = Способности
|
|||||||
|
|
||||||
ability.forcefield = Силовое поле
|
ability.forcefield = Силовое поле
|
||||||
ability.repairfield = Ремонтирующее поле
|
ability.repairfield = Ремонтирующее поле
|
||||||
#TODO туду тудум
|
ability.statusfield = Усиливающее поле
|
||||||
ability.statusfield = Status Field
|
|
||||||
ability.unitspawn = Завод единиц «{0}»
|
ability.unitspawn = Завод единиц «{0}»
|
||||||
ability.shieldregenfield = Поле восстановления щита
|
ability.shieldregenfield = Поле восстановления щита
|
||||||
|
|
||||||
@@ -728,6 +726,7 @@ setting.blockreplace.name = Автоматическая замена блоко
|
|||||||
setting.linear.name = Линейная фильтрация
|
setting.linear.name = Линейная фильтрация
|
||||||
setting.hints.name = Подсказки
|
setting.hints.name = Подсказки
|
||||||
setting.flow.name = Показывать скорость потока ресурсов
|
setting.flow.name = Показывать скорость потока ресурсов
|
||||||
|
setting.backgroundpause.name = Фоновая пауза
|
||||||
setting.buildautopause.name = Автоматическая приостановка строительства
|
setting.buildautopause.name = Автоматическая приостановка строительства
|
||||||
setting.animatedwater.name = Анимированные поверхности
|
setting.animatedwater.name = Анимированные поверхности
|
||||||
setting.animatedshields.name = Анимированные щиты
|
setting.animatedshields.name = Анимированные щиты
|
||||||
|
|||||||
@@ -420,7 +420,7 @@ filters.empty = [lightgray]Немає фільтрів! Додайте хоча
|
|||||||
filter.distort = Спотворення
|
filter.distort = Спотворення
|
||||||
filter.noise = Шум
|
filter.noise = Шум
|
||||||
filter.enemyspawn = Вибір точки появи противників
|
filter.enemyspawn = Вибір точки появи противників
|
||||||
filter.spawnpath = Path To Spawn
|
filter.spawnpath = Шлях до точки появи
|
||||||
filter.corespawn = Вибір ядра
|
filter.corespawn = Вибір ядра
|
||||||
filter.median = Медіана
|
filter.median = Медіана
|
||||||
filter.oremedian = Рудна медіана
|
filter.oremedian = Рудна медіана
|
||||||
@@ -445,7 +445,7 @@ filter.option.amount = Кількість
|
|||||||
filter.option.block = Блок
|
filter.option.block = Блок
|
||||||
filter.option.floor = Поверхня
|
filter.option.floor = Поверхня
|
||||||
filter.option.flooronto = Цільова поверхня
|
filter.option.flooronto = Цільова поверхня
|
||||||
filter.option.target = Target
|
filter.option.target = Ціль
|
||||||
filter.option.wall = Стіна
|
filter.option.wall = Стіна
|
||||||
filter.option.ore = Руда
|
filter.option.ore = Руда
|
||||||
filter.option.floor2 = Друга поверхня
|
filter.option.floor2 = Друга поверхня
|
||||||
@@ -462,7 +462,7 @@ load = Завантажити
|
|||||||
save = Зберегти
|
save = Зберегти
|
||||||
fps = FPS: {0}
|
fps = FPS: {0}
|
||||||
ping = Затримка: {0} мс
|
ping = Затримка: {0} мс
|
||||||
language.restart = Будь ласка, перезапустіть свою гру, щоби налаштування мови набули чинності.
|
language.restart = Перезапустіть свою гру, щоби налаштування мови набули чинності.
|
||||||
settings = Налаштування
|
settings = Налаштування
|
||||||
tutorial = Навчання
|
tutorial = Навчання
|
||||||
tutorial.retake = Пройти навчання ще раз
|
tutorial.retake = Пройти навчання ще раз
|
||||||
@@ -482,6 +482,8 @@ launch.text = Запуск
|
|||||||
research.multiplayer = Лише власник сервера має змогу досліджувати предмети.
|
research.multiplayer = Лише власник сервера має змогу досліджувати предмети.
|
||||||
uncover = Розкрити
|
uncover = Розкрити
|
||||||
configure = Налаштувати вивантаження
|
configure = Налаштувати вивантаження
|
||||||
|
|
||||||
|
#TODO
|
||||||
loadout = Вивантаження
|
loadout = Вивантаження
|
||||||
resources = Ресурси
|
resources = Ресурси
|
||||||
bannedblocks = Заборонені блоки
|
bannedblocks = Заборонені блоки
|
||||||
@@ -512,7 +514,7 @@ weather.rain.name = Дощ
|
|||||||
weather.snow.name = Сніг
|
weather.snow.name = Сніг
|
||||||
weather.sandstorm.name = Піщана буря
|
weather.sandstorm.name = Піщана буря
|
||||||
weather.sporestorm.name = Спорова буря
|
weather.sporestorm.name = Спорова буря
|
||||||
weather.fog.name = Fog
|
weather.fog.name = Туман
|
||||||
|
|
||||||
sectors.unexplored = [lightgray]Не досліджено
|
sectors.unexplored = [lightgray]Не досліджено
|
||||||
sectors.resources = Ресурси:
|
sectors.resources = Ресурси:
|
||||||
@@ -523,7 +525,7 @@ sectors.launch = Запустити
|
|||||||
sectors.select = Вибрати
|
sectors.select = Вибрати
|
||||||
sectors.nonelaunch = [lightgray]нічого (сонце)
|
sectors.nonelaunch = [lightgray]нічого (сонце)
|
||||||
sectors.rename = Перейменування сектора
|
sectors.rename = Перейменування сектора
|
||||||
sector.missingresources = [scarlet]Insufficient Core Resources
|
sector.missingresources = [scarlet]Недостатньо ресурсів в ядрі
|
||||||
|
|
||||||
planet.serpulo.name = Cерпуло
|
planet.serpulo.name = Cерпуло
|
||||||
planet.sun.name = Сонце
|
planet.sun.name = Сонце
|
||||||
@@ -550,7 +552,7 @@ sector.overgrowth.description = Ближче до джерела спор є т
|
|||||||
sector.tarFields.description = Між горами та пустелею простягається окраїна зони видобутку нафти. Це один із небагатьох районів із корисними для використання запасами смоли.\nНе зважаючи на те, що територія покинута, вона має поблизу небезпечні сили противника. Не варто їх недооцінювати.\n\n[lightgray]Якщо можливо, дослідіть технологію перероблювання нафти.
|
sector.tarFields.description = Між горами та пустелею простягається окраїна зони видобутку нафти. Це один із небагатьох районів із корисними для використання запасами смоли.\nНе зважаючи на те, що територія покинута, вона має поблизу небезпечні сили противника. Не варто їх недооцінювати.\n\n[lightgray]Якщо можливо, дослідіть технологію перероблювання нафти.
|
||||||
sector.desolateRift.description = Надзвичайно небезпечна зона. Багато ресурсів, але мало місця. Високий ризик знищення. Евакуюватися потрібно якомога швидше. Не розслабляйтеся між ворожими атаками та знайдіть ахіллесову п’яту супротивника.
|
sector.desolateRift.description = Надзвичайно небезпечна зона. Багато ресурсів, але мало місця. Високий ризик знищення. Евакуюватися потрібно якомога швидше. Не розслабляйтеся між ворожими атаками та знайдіть ахіллесову п’яту супротивника.
|
||||||
sector.nuclearComplex.description = Колишній об’єкт для виробництва та перероблювання торію було зведено до руїн.\n[lightgray]Дослідіть торій та його нескінченну кількість застосувань.\n\n Противник, який постійно шукає нападників, присутній тут у великій кількості, тому не баріться з евакуацією.
|
sector.nuclearComplex.description = Колишній об’єкт для виробництва та перероблювання торію було зведено до руїн.\n[lightgray]Дослідіть торій та його нескінченну кількість застосувань.\n\n Противник, який постійно шукає нападників, присутній тут у великій кількості, тому не баріться з евакуацією.
|
||||||
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.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.
|
||||||
|
|
||||||
settings.language = Мова
|
settings.language = Мова
|
||||||
settings.data = Ігрові дані
|
settings.data = Ігрові дані
|
||||||
@@ -566,14 +568,13 @@ settings.clear.confirm = Ви дійсно хочете очистити ці д
|
|||||||
settings.clearall.confirm = [scarlet]УВАГА![]\nЦе очистить усі дані, включно із збереженнями, мапами, розблокованим та налаштуваннями керування.\nПісля натискання «Гаразд» гра видалить усі дані та автоматично закриється.
|
settings.clearall.confirm = [scarlet]УВАГА![]\nЦе очистить усі дані, включно із збереженнями, мапами, розблокованим та налаштуваннями керування.\nПісля натискання «Гаразд» гра видалить усі дані та автоматично закриється.
|
||||||
settings.clearsaves.confirm = Ви справді хочете видалити всі ваші збереження?
|
settings.clearsaves.confirm = Ви справді хочете видалити всі ваші збереження?
|
||||||
settings.clearsaves = Очистити збереження
|
settings.clearsaves = Очистити збереження
|
||||||
settings.clearresearch = Clear Research
|
settings.clearresearch = Очистити дослідження
|
||||||
settings.clearresearch.confirm = Are you sure you want to clear all of your campaign research?
|
settings.clearresearch.confirm = Ви справді хочете очистити дослідження кампанії?
|
||||||
settings.clearcampaignsaves = Clear Campaign Saves
|
settings.clearcampaignsaves = Очистити збереження в кампанії
|
||||||
settings.clearcampaignsaves.confirm = Are you sure you want to clear all of your campaign saves?
|
settings.clearcampaignsaves.confirm = Ви справді хочете очистити всі збереженні в кампанії?
|
||||||
paused = [accent]< Пауза>
|
paused = [accent]< Пауза >
|
||||||
clear = Очистити
|
clear = Очистити
|
||||||
banned = [scarlet]Заблоковано
|
banned = [scarlet]Заблоковано
|
||||||
unplaceable.sectorcaptured = [scarlet]Вимагає захопленого сектору
|
|
||||||
yes = Так
|
yes = Так
|
||||||
no = Ні
|
no = Ні
|
||||||
info.title = Інформація
|
info.title = Інформація
|
||||||
@@ -581,7 +582,7 @@ error.title = [crimson]Виникла помилка
|
|||||||
error.crashtitle = Виникла помилка
|
error.crashtitle = Виникла помилка
|
||||||
unit.nobuild = [scarlet]Ця одиниця не може будувати
|
unit.nobuild = [scarlet]Ця одиниця не може будувати
|
||||||
lastaccessed = [lightgray]Остання зміна від {0}
|
lastaccessed = [lightgray]Остання зміна від {0}
|
||||||
block.unknown = [lightgray]???
|
block.unknown = [lightgray]ШО ЗА???
|
||||||
|
|
||||||
stat.input = Ввід
|
stat.input = Ввід
|
||||||
stat.output = Вивід
|
stat.output = Вивід
|
||||||
@@ -626,28 +627,30 @@ stat.reload = Постріли/секунду
|
|||||||
stat.ammo = Боєприпаси
|
stat.ammo = Боєприпаси
|
||||||
stat.shieldhealth = Міцність щита
|
stat.shieldhealth = Міцність щита
|
||||||
stat.cooldowntime = Тривалість охолодження
|
stat.cooldowntime = Тривалість охолодження
|
||||||
stat.explosiveness = Explosiveness
|
stat.explosiveness = Вибухонебезпечність
|
||||||
stat.basedeflectchance = Base Deflect Chance
|
stat.basedeflectchance = Базовий шанс відбиття
|
||||||
stat.lightningchance = Lightning Chance
|
stat.lightningchance = Шанс удару блискавки
|
||||||
stat.lightningdamage = Lightning Damage
|
stat.lightningdamage = Шкода від удару блискавки
|
||||||
stat.flammability = Flammability
|
stat.flammability = Займистість
|
||||||
stat.radioactivity = Radioactivity
|
stat.radioactivity = Радіоактивність
|
||||||
stat.heatcapacity = HeatCapacity
|
stat.heatcapacity = Теплоємність
|
||||||
stat.viscosity = Viscosity
|
stat.viscosity = В'язкість
|
||||||
stat.temperature = Temperature
|
stat.temperature = Температура
|
||||||
stat.speed = Speed
|
stat.speed = Швидкість
|
||||||
stat.buildspeed = Build Speed
|
stat.buildspeed = Швидкість будування
|
||||||
stat.minespeed = Mine Speed
|
stat.minespeed = Швидкість видобутку
|
||||||
stat.minetier = Mine Tier
|
stat.minetier = Рівень видобутку
|
||||||
stat.payloadcapacity = Payload Capacity
|
stat.payloadcapacity = Вантажопідйомність
|
||||||
stat.commandlimit = Command Limit
|
stat.commandlimit = Максимум в загоні
|
||||||
stat.abilities = Abilities
|
stat.abilities = Здібності
|
||||||
|
stat.canboost = Можна прискорити
|
||||||
|
stat.flying = Літає
|
||||||
|
|
||||||
ability.forcefield = Force Field
|
ability.forcefield = Щитове поле
|
||||||
ability.repairfield = Repair Field
|
ability.repairfield = Ремонтувальне поле
|
||||||
ability.statusfield = Status Field
|
ability.statusfield = Поле підсилення
|
||||||
ability.unitspawn = {0} Factory
|
ability.unitspawn = Завод одиниць «{0}»
|
||||||
ability.shieldregenfield = Shield Regen Field
|
ability.shieldregenfield = Поле, що відновлює щити
|
||||||
|
|
||||||
bar.drilltierreq = Потребується кращий бур
|
bar.drilltierreq = Потребується кращий бур
|
||||||
bar.noresources = Бракує ресурсів
|
bar.noresources = Бракує ресурсів
|
||||||
@@ -688,7 +691,7 @@ bullet.multiplier = [stat]{0}[lightgray]x патронів
|
|||||||
bullet.reload = [stat]{0}[lightgray]x швидкість перезаряджання
|
bullet.reload = [stat]{0}[lightgray]x швидкість перезаряджання
|
||||||
|
|
||||||
unit.blocks = блоки
|
unit.blocks = блоки
|
||||||
unit.blockssquared = blocks²
|
unit.blockssquared = блоків²
|
||||||
unit.powersecond = одиниць енергії за секунду
|
unit.powersecond = одиниць енергії за секунду
|
||||||
unit.liquidsecond = одиниць рідини за секунду
|
unit.liquidsecond = одиниць рідини за секунду
|
||||||
unit.itemssecond = предметів за секунду
|
unit.itemssecond = предметів за секунду
|
||||||
@@ -711,7 +714,7 @@ category.power = Енергія
|
|||||||
category.liquids = Рідини
|
category.liquids = Рідини
|
||||||
category.items = Предмети
|
category.items = Предмети
|
||||||
category.crafting = Виробництво
|
category.crafting = Виробництво
|
||||||
category.function = Function
|
category.function = Стрільба
|
||||||
category.optional = Додаткові поліпшення
|
category.optional = Додаткові поліпшення
|
||||||
setting.landscape.name = Тільки альбомний (горизонтальний) режим
|
setting.landscape.name = Тільки альбомний (горизонтальний) режим
|
||||||
setting.shadows.name = Тіні
|
setting.shadows.name = Тіні
|
||||||
@@ -940,13 +943,13 @@ unit.eclipse.name = Затьмарник
|
|||||||
unit.mono.name = Моно
|
unit.mono.name = Моно
|
||||||
unit.poly.name = Полі
|
unit.poly.name = Полі
|
||||||
unit.mega.name = Мега
|
unit.mega.name = Мега
|
||||||
unit.quad.name = Квал
|
unit.quad.name = Квад
|
||||||
unit.oct.name = Окт
|
unit.oct.name = Окт
|
||||||
unit.risso.name = Грампус
|
unit.risso.name = Грампус
|
||||||
unit.minke.name = Смугач малий
|
unit.minke.name = Смугач малий
|
||||||
unit.bryde.name = Смугач Брайда
|
unit.bryde.name = Смугач Брайда
|
||||||
unit.sei.name = Sei
|
unit.sei.name = Смугач Сейвал
|
||||||
unit.omura.name = Omura
|
unit.omura.name = Смугач Омури
|
||||||
unit.alpha.name = Альфа
|
unit.alpha.name = Альфа
|
||||||
unit.beta.name = Бета
|
unit.beta.name = Бета
|
||||||
unit.gamma.name = Гамма
|
unit.gamma.name = Гамма
|
||||||
@@ -1100,7 +1103,7 @@ block.liquid-void.name = Рідинний вакуум
|
|||||||
block.power-void.name = Енергетичний вакуум
|
block.power-void.name = Енергетичний вакуум
|
||||||
block.power-source.name = Нескінченне джерело енергії
|
block.power-source.name = Нескінченне джерело енергії
|
||||||
block.unloader.name = Розвантажувач
|
block.unloader.name = Розвантажувач
|
||||||
block.vault.name = Вмістилище
|
block.vault.name = Склад
|
||||||
block.wave.name = Хвиля
|
block.wave.name = Хвиля
|
||||||
block.tsunami.name = Цунамі
|
block.tsunami.name = Цунамі
|
||||||
block.swarmer.name = Роєвик
|
block.swarmer.name = Роєвик
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
credits.text = 作者[royal]Anuken[] - [sky]anukendev@gmail.com[] 译者[orange]老滑稽[] - [cyan]QQ:1290419934[]
|
credits.text = 作者[royal]Anuken[] - [sky]anukendev@gmail.com[]
|
||||||
credits = 致谢
|
credits = 致谢
|
||||||
contributors = 翻译者和贡献者
|
contributors = 翻译者和贡献者
|
||||||
discord = 加入 Mindustry 的 Discord!
|
discord = 加入 Mindustry 的 Discord!
|
||||||
@@ -20,8 +20,8 @@ gameover = 游戏结束
|
|||||||
gameover.pvp = [accent] {0}[]队获胜!
|
gameover.pvp = [accent] {0}[]队获胜!
|
||||||
highscore = [accent]新纪录!
|
highscore = [accent]新纪录!
|
||||||
copied = 已复制。
|
copied = 已复制。
|
||||||
indev.popup = [accent]v6[]仍在[accent]测试版[].\n[lightgray]这意味着:[]\n[scarlet]- 战役不完善[]\n- 内容不完整\n - 大多[scarlet]单位AI[]运行不佳\n- 单位系统不完整\n- 一切内容都可能发生变动或调整。\n\n向[accent]主群(QQ681962751)[]提交错误报告。
|
indev.popup = [accent]6.0[]仍在[accent]测试版[].\n[lightgray]这意味着:[]\n[scarlet]- 战役玩法完全没有完成[]\n- 很多内容还没有做完\n - 大多[scarlet]单位AI[]无法正确地运行\n- 单位系统完全没有完成\n- 一切您所看到的内容都可能会移除或调整。\n\n在[accent]Github[]提交错误报告。\n[#66ccff]来自译者WinterUnderTheSnow的忠告:不建议新玩家游玩还在测试阶段的6.0!建议您先从[orange]v104.6[#66ccff]或[orange]v104.10[#66ccff]开始游玩!
|
||||||
indev.notready = 还没做好看NM
|
indev.notready = 这部分玩法还未开发完成。
|
||||||
|
|
||||||
load.sound = 音乐加载中
|
load.sound = 音乐加载中
|
||||||
load.map = 地图加载中
|
load.map = 地图加载中
|
||||||
@@ -55,7 +55,7 @@ schematic.saved = 蓝图已保存。
|
|||||||
schematic.delete.confirm = 确认删除蓝图?
|
schematic.delete.confirm = 确认删除蓝图?
|
||||||
schematic.rename = 重命名蓝图
|
schematic.rename = 重命名蓝图
|
||||||
schematic.info = {0}x{1},{2} 个方块
|
schematic.info = {0}x{1},{2} 个方块
|
||||||
schematic.disabled = [scarlet]Schematics disabled[]\nYou are not allowed to use schematics on this [accent]map[] or [accent]server.
|
schematic.disabled = [scarlet]蓝图已禁用![]\n您不能在此[accent]地图[]或[accent]服务器[]上使用蓝图.
|
||||||
|
|
||||||
stat.wave = 防守波数:[accent]{0}
|
stat.wave = 防守波数:[accent]{0}
|
||||||
stat.enemiesDestroyed = 消灭敌人:[accent]{0}
|
stat.enemiesDestroyed = 消灭敌人:[accent]{0}
|
||||||
@@ -66,7 +66,7 @@ stat.delivered = 装运资源:
|
|||||||
stat.playtime = 游玩时间:[accent] {0}
|
stat.playtime = 游玩时间:[accent] {0}
|
||||||
stat.rank = 最终评级:[accent]{0}
|
stat.rank = 最终评级:[accent]{0}
|
||||||
|
|
||||||
globalitems = [accent]Global Items
|
globalitems = [accent]全局物品
|
||||||
map.delete = 确定要删除“[accent]{0}[]”地图吗?
|
map.delete = 确定要删除“[accent]{0}[]”地图吗?
|
||||||
level.highscore = 最高分:[accent]{0}
|
level.highscore = 最高分:[accent]{0}
|
||||||
level.select = 选择关卡
|
level.select = 选择关卡
|
||||||
@@ -115,7 +115,7 @@ mod.disable = 禁用
|
|||||||
mod.content = 内容:
|
mod.content = 内容:
|
||||||
mod.delete.error = 无法删除模组。可能文件被占用。
|
mod.delete.error = 无法删除模组。可能文件被占用。
|
||||||
mod.requiresversion = [scarlet]所需的游戏版本:[accent]{0}
|
mod.requiresversion = [scarlet]所需的游戏版本:[accent]{0}
|
||||||
mod.outdated = [scarlet]模组不兼容6.0(缺失 minGameVersion: 105)
|
mod.outdated = [scarlet]该模组可能不能在6.0上正确地运行(缺失 minGameVersion: 105)
|
||||||
mod.missingdependencies = [scarlet]缺少前置模组:{0}
|
mod.missingdependencies = [scarlet]缺少前置模组:{0}
|
||||||
mod.erroredcontent = [scarlet]内容错误
|
mod.erroredcontent = [scarlet]内容错误
|
||||||
mod.errors = 读取内容时发生错误.
|
mod.errors = 读取内容时发生错误.
|
||||||
@@ -127,14 +127,14 @@ mod.reloadrequired = [scarlet]需要重启
|
|||||||
mod.import = 导入模组
|
mod.import = 导入模组
|
||||||
mod.import.file = 导入文件
|
mod.import.file = 导入文件
|
||||||
mod.import.github = 从 GitHub 导入模组
|
mod.import.github = 从 GitHub 导入模组
|
||||||
mod.jarwarn = [scarlet]JAR模组存在危险性。[]\n请确保此模组来源安全可靠!
|
mod.jarwarn = [scarlet]JAR模组注定存在危险性。[]\n请确保此模组来源安全可靠!
|
||||||
mod.item.remove = 这个物品是[accent] '{0}'[]模组的一部分. 删除物品需要先卸载此模组.
|
mod.item.remove = 这个物品是[accent] '{0}'[]模组的一部分. 删除物品需要先卸载此模组.
|
||||||
mod.remove.confirm = 此模组将被删除。
|
mod.remove.confirm = 此模组将被删除。
|
||||||
mod.author = [lightgray]作者:[] {0}
|
mod.author = [lightgray]作者:[] {0}
|
||||||
mod.missing = 此存档包含您最近已更新或者现在未安装的模组。存档可能会损坏。确定要加载它吗?\n[lightgray]模组:\n{0}
|
mod.missing = 此存档包含您最近已更新或者现在未安装的模组。存档可能会损坏。确定要加载它吗?\n[lightgray]模组:\n{0}
|
||||||
mod.preview.missing = 在创意工坊中发布此模组前,您必须添加一则预览图像。\n请将名为[accent] preview.png[] 的图像放入模组文件夹,然后重试。
|
mod.preview.missing = 在创意工坊中发布此模组前,您必须添加一则预览图像。\n请将名为[accent] preview.png[] 的图像放入模组文件夹,然后重试。
|
||||||
mod.folder.missing = 只有文件夹形式的模组能在创意工坊上发布。\n若要将任何模组转换为文件夹,只需将其文件解压缩到文件夹中并删除旧压缩包,然后重新启动游戏或重新加载模组。
|
mod.folder.missing = 只有文件夹形式的模组能在创意工坊上发布。\n若要将任何模组转换为文件夹,只需将其文件解压缩到文件夹中并删除旧压缩包,然后重新启动游戏或重新加载模组。
|
||||||
mod.scripts.disable = 你的设备不支持含有脚本的模组。必须禁用相关模组以进入游戏。
|
mod.scripts.disable = 您的设备不支持含有脚本的模组。必须禁用相关模组以进入游戏。
|
||||||
|
|
||||||
about.button = 关于
|
about.button = 关于
|
||||||
name = 名字:
|
name = 名字:
|
||||||
@@ -151,28 +151,28 @@ researched = [lightgray]{0}己研究。
|
|||||||
research.progress = {0}% 完成度
|
research.progress = {0}% 完成度
|
||||||
players = {0} 位玩家在线
|
players = {0} 位玩家在线
|
||||||
players.single = {0} 位玩家在线
|
players.single = {0} 位玩家在线
|
||||||
players.search = search
|
players.search = 研究
|
||||||
players.notfound = [gray]没有找到玩家。
|
players.notfound = [gray]没有找到玩家。
|
||||||
server.closing = [accent]服务器关闭…
|
server.closing = [accent]服务器关闭…
|
||||||
server.kicked.kick = 你被踢出了服务器。
|
server.kicked.kick = 你被踢出了服务器。
|
||||||
server.kicked.whitelist = 你不在服务器白名单中。
|
server.kicked.whitelist = 你不在服务器白名单中。
|
||||||
server.kicked.serverClose = 服务器已关闭。
|
server.kicked.serverClose = 服务器已关闭。
|
||||||
server.kicked.vote = 你被投票踢出了服务器。
|
server.kicked.vote = 您被投票踢出了服务器。
|
||||||
server.kicked.clientOutdated = 客户端过旧,请更新你的游戏。
|
server.kicked.clientOutdated = 客户端过旧,请更新你的游戏。
|
||||||
server.kicked.serverOutdated = 服务器过旧,请联系服务器管理员升级服务器。
|
server.kicked.serverOutdated = 服务器过旧,请联系服务器管理员升级服务器。
|
||||||
server.kicked.banned = 你在这个服务器上被封禁了。
|
server.kicked.banned = 您在这个服务器上被封禁了。
|
||||||
server.kicked.typeMismatch = 此服务器与你的不稳定测试版不兼容。
|
server.kicked.typeMismatch = 此服务器与你的不稳定测试版不兼容。
|
||||||
server.kicked.playerLimit = 服务器已满,请等待一个空位。
|
server.kicked.playerLimit = 服务器已满,请等待一个空位。
|
||||||
server.kicked.recentKick = 你刚刚被踢出服务器。\n请稍后重新连接!
|
server.kicked.recentKick = 你刚刚被踢出服务器。\n请稍后重新连接!
|
||||||
server.kicked.nameInUse = 你的名字与服务器中的一个人重复了。
|
server.kicked.nameInUse = 您的名字与服务器中的一个人重复了。
|
||||||
server.kicked.nameEmpty = 无效的名字!
|
server.kicked.nameEmpty = 无效的名字!
|
||||||
server.kicked.idInUse = 你已经连接了这个服务器!不允许在一台电脑上用两个客户端连接。
|
server.kicked.idInUse = 您已经连接了这个服务器!不允许在一台设备上用两个客户端连接。
|
||||||
server.kicked.customClient = 这个服务器不支持自定义客户端。请下载官方版本。
|
server.kicked.customClient = 这个服务器不支持自定义客户端。请下载官方版本。
|
||||||
server.kicked.gameover = 游戏结束!
|
server.kicked.gameover = 游戏结束!
|
||||||
server.kicked.serverRestarting = 服务器正在重启.
|
server.kicked.serverRestarting = 服务器正在重启.
|
||||||
server.versions = 客户端版本:[accent] {0}[]\n服务器版本:[accent] {1}[]
|
server.versions = 客户端版本:[accent] {0}[]\n服务器版本:[accent] {1}[]
|
||||||
host.info = [accent]创建局域网游戏[]按钮会在[scarlet] 6567 []端口运行一个服务器。[]\n任何在同一个[lightgray] Wi-Fi 或本地网络[]下的人应该都可以在服务器列表中看到你的服务器。\n\n如果你想让别人在任何地方都能通过 IP 地址连接,你需要设定[accent]端口转发[]。\n\n[lightgray]注意:如果某人无法连接到你的局域网游戏,请确保你在防火墙设置里允许了 Mindustry 访问本地网络。
|
host.info = [accent]创建局域网游戏[]按钮会在[scarlet] 6567 []端口运行一个服务器。[]\n任何在同一个[lightgray] Wi-Fi 或本地网络[]下的人应该都可以在服务器列表中看到你的服务器。\n\n如果你想让别人在任何地方都能通过 IP 地址连接,你需要设定[accent]端口转发[]。\n\n[lightgray]注意:如果某人无法连接到你的局域网游戏,请确保你在防火墙设置里允许了 Mindustry 访问本地网络。
|
||||||
join.info = 您可以输入[accent]服务器的 IP 地址[]来连接,或寻找[accent]本地网络[]中的服务器来连接。\n支持局域网或广域网的多人游戏。\n\n[lightgray]注意:没有全球服务器列表;如果你想通过 IP 地址连接某个服务器,你需要向房主询问 IP 地址。
|
join.info = 您可以输入[accent]服务器的 IP 地址[]来连接,或寻找[accent]本地网络[]中的服务器来连接。\n支持局域网或广域网的多人游戏。\n\n[lightgray]注意:没有全球服务器列表;如果你想通过 IP 地址连接某个服务器,你需要向服主询问 IP 地址。
|
||||||
hostserver = 创建服务器
|
hostserver = 创建服务器
|
||||||
invitefriends = 邀请朋友
|
invitefriends = 邀请朋友
|
||||||
hostserver.mobile = 创建\n服务器
|
hostserver.mobile = 创建\n服务器
|
||||||
@@ -201,7 +201,7 @@ server.bans.none = 没有被封禁的玩家!
|
|||||||
server.admins = 管理员
|
server.admins = 管理员
|
||||||
server.admins.none = 该服务器没有管理员!
|
server.admins.none = 该服务器没有管理员!
|
||||||
server.add = 添加服务器
|
server.add = 添加服务器
|
||||||
server.delete = 你确定要删除这个服务器吗?
|
server.delete = 您确定要删除这个服务器吗?
|
||||||
server.edit = 编辑服务器
|
server.edit = 编辑服务器
|
||||||
server.outdated = [crimson]服务器过旧![]
|
server.outdated = [crimson]服务器过旧![]
|
||||||
server.outdated.client = [crimson]客户端过旧![]
|
server.outdated.client = [crimson]客户端过旧![]
|
||||||
@@ -228,11 +228,11 @@ server.addressinuse = 地址已在使用!
|
|||||||
server.invalidport = 无效的端口!
|
server.invalidport = 无效的端口!
|
||||||
server.error = [crimson]创建服务器错误:[accent]{0}
|
server.error = [crimson]创建服务器错误:[accent]{0}
|
||||||
save.new = 新存档
|
save.new = 新存档
|
||||||
save.overwrite = 你确定你要覆盖这个存档吗?
|
save.overwrite = 您确定要覆盖这个存档吗?
|
||||||
overwrite = 覆盖
|
overwrite = 覆盖
|
||||||
save.none = 没有找到存档!
|
save.none = 没有找到存档!
|
||||||
savefail = 保存失败!
|
savefail = 保存失败!
|
||||||
save.delete.confirm = 你确定你要删除这个存档吗?
|
save.delete.confirm = 您确定要删除这个存档吗?
|
||||||
save.delete = 删除
|
save.delete = 删除
|
||||||
save.export = 导出存档
|
save.export = 导出存档
|
||||||
save.import.invalid = [accent]此存档无效!
|
save.import.invalid = [accent]此存档无效!
|
||||||
@@ -245,7 +245,7 @@ save.rename.text = 新名称:
|
|||||||
selectslot = 选择一个存档。
|
selectslot = 选择一个存档。
|
||||||
slot = [accent]存档位 {0}
|
slot = [accent]存档位 {0}
|
||||||
editmessage = 编辑消息
|
editmessage = 编辑消息
|
||||||
save.corrupted = [accent]存档损坏或无效!\n如果你刚刚升级了游戏,那么这可能是因为存档格式改变了,而[scarlet]不是[] bug 。
|
save.corrupted = [accent]存档损坏或无效!\n如果您刚刚升级了游戏,那么这可能是因为存档格式改变了,而[scarlet]不是[] bug 。
|
||||||
empty = < 空 >
|
empty = < 空 >
|
||||||
on = 开
|
on = 开
|
||||||
off = 关
|
off = 关
|
||||||
@@ -291,14 +291,14 @@ waiting = [lightgray]等待中…
|
|||||||
waiting.players = 等待玩家中…
|
waiting.players = 等待玩家中…
|
||||||
wave.enemies = [lightgray]剩余 {0} 个敌人
|
wave.enemies = [lightgray]剩余 {0} 个敌人
|
||||||
wave.enemy = [lightgray]剩余 {0} 个敌人
|
wave.enemy = [lightgray]剩余 {0} 个敌人
|
||||||
wave.guardianwarn = Guardian approaching in [accent]{0}[] waves.
|
wave.guardianwarn = Boss 将在[accent]{0}[]波后到来。
|
||||||
wave.guardianwarn.one = Guardian approaching in [accent]{0}[] wave.
|
wave.guardianwarn.one = Boss 将在[accent]{0}[]波后到来。
|
||||||
loadimage = 加载图片
|
loadimage = 加载图片
|
||||||
saveimage = 保存图片
|
saveimage = 保存图片
|
||||||
unknown = 未知
|
unknown = 未知
|
||||||
custom = 自定义
|
custom = 自定义
|
||||||
builtin = 内建的
|
builtin = 内置的
|
||||||
map.delete.confirm = 你确定你想要删除这张地图吗?这个操作无法撤销!
|
map.delete.confirm = 您确定你想要删除这张地图吗?这个操作无法撤销!
|
||||||
map.random = [accent]随机地图
|
map.random = [accent]随机地图
|
||||||
map.nospawn = 这个地图没有核心!请在编辑器中添加一个[royal]己方[]的核心。
|
map.nospawn = 这个地图没有核心!请在编辑器中添加一个[royal]己方[]的核心。
|
||||||
map.nospawn.pvp = 这个地图没有敌人的核心!请在编辑器中添加一个[royal]敌人[]的核心。
|
map.nospawn.pvp = 这个地图没有敌人的核心!请在编辑器中添加一个[royal]敌人[]的核心。
|
||||||
@@ -331,7 +331,7 @@ editor.generation = 筛选器:
|
|||||||
editor.ingame = 游戏内编辑
|
editor.ingame = 游戏内编辑
|
||||||
editor.publish.workshop = 上传到创意工坊
|
editor.publish.workshop = 上传到创意工坊
|
||||||
editor.newmap = 新地图
|
editor.newmap = 新地图
|
||||||
editor.center = Center
|
editor.center = 居中
|
||||||
workshop = 创意工坊
|
workshop = 创意工坊
|
||||||
waves.title = 波数
|
waves.title = 波数
|
||||||
waves.remove = 移除
|
waves.remove = 移除
|
||||||
@@ -339,9 +339,9 @@ waves.never = < 无限 >
|
|||||||
waves.every = 每
|
waves.every = 每
|
||||||
waves.waves = 波
|
waves.waves = 波
|
||||||
waves.perspawn = 每次生成
|
waves.perspawn = 每次生成
|
||||||
waves.shields = 护盾/波次
|
waves.shields = 护盾/波
|
||||||
waves.to = 至
|
waves.to = 至
|
||||||
waves.guardian = 首领
|
waves.guardian = Boss
|
||||||
waves.preview = 预览
|
waves.preview = 预览
|
||||||
waves.edit = 编辑…
|
waves.edit = 编辑…
|
||||||
waves.copy = 复制到剪贴板
|
waves.copy = 复制到剪贴板
|
||||||
@@ -363,7 +363,7 @@ editor.removeunit = 移除单位
|
|||||||
editor.teams = 队伍
|
editor.teams = 队伍
|
||||||
editor.errorload = 读取文件出错:\n[accent]{0}
|
editor.errorload = 读取文件出错:\n[accent]{0}
|
||||||
editor.errorsave = 保存文件出错:\n[accent]{0}
|
editor.errorsave = 保存文件出错:\n[accent]{0}
|
||||||
editor.errorimage = 这是一幅图片,不是地图。请不要更改文件的扩展名来导入。\n\n如果你想导入地图,请在编辑器中使用“导入地图”按钮。
|
editor.errorimage = 这是一幅图片,不是地图。请不要更改文件的扩展名来导入。\n\n如果您想导入地图,请在编辑器中使用“导入地图”按钮。
|
||||||
editor.errorlegacy = 此地图太旧了,旧的地图格式已不再支持。
|
editor.errorlegacy = 此地图太旧了,旧的地图格式已不再支持。
|
||||||
editor.errornot = 这不是地图文件。
|
editor.errornot = 这不是地图文件。
|
||||||
editor.errorheader = 此地图文件无效或已损坏。
|
editor.errorheader = 此地图文件无效或已损坏。
|
||||||
@@ -376,8 +376,8 @@ editor.resize = 调整大小
|
|||||||
editor.loadmap = 载入地图
|
editor.loadmap = 载入地图
|
||||||
editor.savemap = 保存地图
|
editor.savemap = 保存地图
|
||||||
editor.saved = 已保存!
|
editor.saved = 已保存!
|
||||||
editor.save.noname = 你的地图没有名字!在“地图信息”菜单里设置一个。
|
editor.save.noname = 您的地图没有名字!在“地图信息”菜单里设置一个。
|
||||||
editor.save.overwrite = 你的地图覆盖了一个内置的地图!在“地图信息”菜单里重新设置一个不同的名称。
|
editor.save.overwrite = 您的地图覆盖了一个内置的地图!在“地图信息”菜单里重新设置一个不同的名称。
|
||||||
editor.import.exists = [scarlet]无法导入:[]存在名为“{0}”的内置地图!
|
editor.import.exists = [scarlet]无法导入:[]存在名为“{0}”的内置地图!
|
||||||
editor.import = 导入…
|
editor.import = 导入…
|
||||||
editor.importmap = 导入地图
|
editor.importmap = 导入地图
|
||||||
@@ -420,7 +420,7 @@ filters.empty = [lightgray]没有过滤条件!用下方的按钮添加。
|
|||||||
filter.distort = 扭曲程度
|
filter.distort = 扭曲程度
|
||||||
filter.noise = 波动程度
|
filter.noise = 波动程度
|
||||||
filter.enemyspawn = 敌人生成点选择
|
filter.enemyspawn = 敌人生成点选择
|
||||||
filter.spawnpath = Path To Spawn
|
filter.spawnpath = 敌人生成途径
|
||||||
filter.corespawn = 核心降落点选择
|
filter.corespawn = 核心降落点选择
|
||||||
filter.median = 平均数
|
filter.median = 平均数
|
||||||
filter.oremedian = 矿石平均数
|
filter.oremedian = 矿石平均数
|
||||||
@@ -445,7 +445,7 @@ filter.option.amount = 数量
|
|||||||
filter.option.block = 方块
|
filter.option.block = 方块
|
||||||
filter.option.floor = 地面
|
filter.option.floor = 地面
|
||||||
filter.option.flooronto = 地面目标
|
filter.option.flooronto = 地面目标
|
||||||
filter.option.target = Target
|
filter.option.target = 目标
|
||||||
filter.option.wall = 墙
|
filter.option.wall = 墙
|
||||||
filter.option.ore = 矿石
|
filter.option.ore = 矿石
|
||||||
filter.option.floor2 = 二重地面
|
filter.option.floor2 = 二重地面
|
||||||
@@ -479,7 +479,7 @@ requirement.research = 研究 {0}
|
|||||||
requirement.capture = 占领 {0}
|
requirement.capture = 占领 {0}
|
||||||
bestwave = [lightgray]最高波次:{0}
|
bestwave = [lightgray]最高波次:{0}
|
||||||
launch.text = 发射
|
launch.text = 发射
|
||||||
research.multiplayer = Only the host can research items.
|
research.multiplayer = 仅有服主可研究物品。
|
||||||
uncover = 解锁
|
uncover = 解锁
|
||||||
configure = 设定装运的数量
|
configure = 设定装运的数量
|
||||||
loadout = 装运
|
loadout = 装运
|
||||||
@@ -495,7 +495,7 @@ zone.objective = [lightgray]目标:[accent]{0}
|
|||||||
zone.objective.survival = 生存
|
zone.objective.survival = 生存
|
||||||
zone.objective.attack = 摧毁敌方核心
|
zone.objective.attack = 摧毁敌方核心
|
||||||
add = 添加…
|
add = 添加…
|
||||||
boss.health = BOSS 生命值
|
boss.health = Boss 生命值
|
||||||
|
|
||||||
connectfail = [crimson]服务器连接失败:[accent]{0}
|
connectfail = [crimson]服务器连接失败:[accent]{0}
|
||||||
error.unreachable = 无法访问服务器。\n确定输对地址了吗?
|
error.unreachable = 无法访问服务器。\n确定输对地址了吗?
|
||||||
@@ -512,7 +512,7 @@ weather.rain.name = 降雨
|
|||||||
weather.snow.name = 降雪
|
weather.snow.name = 降雪
|
||||||
weather.sandstorm.name = 沙尘暴
|
weather.sandstorm.name = 沙尘暴
|
||||||
weather.sporestorm.name = 孢子雾
|
weather.sporestorm.name = 孢子雾
|
||||||
weather.fog.name = Fog
|
weather.fog.name = 雾
|
||||||
|
|
||||||
sectors.unexplored = [lightgray]未探索
|
sectors.unexplored = [lightgray]未探索
|
||||||
sectors.resources = 资源:
|
sectors.resources = 资源:
|
||||||
@@ -522,11 +522,11 @@ sectors.resume = 继续
|
|||||||
sectors.launch = 发射
|
sectors.launch = 发射
|
||||||
sectors.select = 选择
|
sectors.select = 选择
|
||||||
sectors.nonelaunch = [lightgray]无 (太阳)
|
sectors.nonelaunch = [lightgray]无 (太阳)
|
||||||
sectors.rename = Rename Sector
|
sectors.rename = 重命名区块
|
||||||
sector.missingresources = [scarlet]Insufficient Core Resources
|
sector.missingresources = [scarlet]核心资源不足
|
||||||
|
|
||||||
planet.serpulo.name = Serpulo
|
planet.serpulo.name = 塞普罗
|
||||||
planet.sun.name = Sun
|
planet.sun.name = 太阳
|
||||||
|
|
||||||
sector.groundZero.name = 零号地区
|
sector.groundZero.name = 零号地区
|
||||||
sector.craters.name = 陨石带
|
sector.craters.name = 陨石带
|
||||||
@@ -538,7 +538,7 @@ sector.nuclearComplex.name = 核裂阵
|
|||||||
sector.overgrowth.name = 增生区
|
sector.overgrowth.name = 增生区
|
||||||
sector.tarFields.name = 油田
|
sector.tarFields.name = 油田
|
||||||
sector.saltFlats.name = 盐碱荒滩
|
sector.saltFlats.name = 盐碱荒滩
|
||||||
sector.fungalPass.name = Fungal Pass
|
sector.fungalPass.name = 真菌通道
|
||||||
|
|
||||||
sector.groundZero.description = 踏上旅程的最佳位置。这儿的敌人威胁很小,但资源也少。\n收集尽可能多的铅和铜。\n出发吧!
|
sector.groundZero.description = 踏上旅程的最佳位置。这儿的敌人威胁很小,但资源也少。\n收集尽可能多的铅和铜。\n出发吧!
|
||||||
sector.frozenForest.description = 即使是靠近山脉的这里,孢子也已经扩散。他们不能长期停留在寒冷的温度中。\n\n开始运用电力。建造火力发电机并学会使用修理者。
|
sector.frozenForest.description = 即使是靠近山脉的这里,孢子也已经扩散。他们不能长期停留在寒冷的温度中。\n\n开始运用电力。建造火力发电机并学会使用修理者。
|
||||||
@@ -566,10 +566,10 @@ settings.clear.confirm = 您确定要清除此数据?\n此操作无法撤销
|
|||||||
settings.clearall.confirm = [scarlet]警告![]\n这将清除所有数据,包括存档、地图、解锁和按键绑定。\n按「是」后,游戏将删除所有数据并自动退出。
|
settings.clearall.confirm = [scarlet]警告![]\n这将清除所有数据,包括存档、地图、解锁和按键绑定。\n按「是」后,游戏将删除所有数据并自动退出。
|
||||||
settings.clearsaves.confirm = 您确定要清除存档?
|
settings.clearsaves.confirm = 您确定要清除存档?
|
||||||
settings.clearsaves = 清除存档
|
settings.clearsaves = 清除存档
|
||||||
settings.clearresearch = Clear Research
|
settings.clearresearch = 清除研究进度
|
||||||
settings.clearresearch.confirm = Are you sure you want to clear all of your campaign research?
|
settings.clearresearch.confirm = 您确定要清除战役研究进度?
|
||||||
settings.clearcampaignsaves = Clear Campaign Saves
|
settings.clearcampaignsaves = 清除战役进度
|
||||||
settings.clearcampaignsaves.confirm = Are you sure you want to clear all of your campaign saves?
|
settings.clearcampaignsaves.confirm = 您确定要清除战役进度?
|
||||||
paused = [accent]< 暂停 >
|
paused = [accent]< 暂停 >
|
||||||
clear = 清除
|
clear = 清除
|
||||||
banned = [scarlet]已禁止
|
banned = [scarlet]已禁止
|
||||||
@@ -580,7 +580,7 @@ info.title = [accent]详情
|
|||||||
error.title = [crimson]发生了一个错误
|
error.title = [crimson]发生了一个错误
|
||||||
error.crashtitle = 发生了一个错误
|
error.crashtitle = 发生了一个错误
|
||||||
unit.nobuild = [scarlet]单位未能建造
|
unit.nobuild = [scarlet]单位未能建造
|
||||||
lastaccessed = [lightgray]Last Accessed: {0}
|
lastaccessed = [lightgray]上次操作: {0}
|
||||||
block.unknown = [lightgray]???
|
block.unknown = [lightgray]???
|
||||||
|
|
||||||
stat.input = 输入
|
stat.input = 输入
|
||||||
@@ -606,7 +606,7 @@ stat.powerconnections = 最多连接
|
|||||||
stat.poweruse = 使用能量
|
stat.poweruse = 使用能量
|
||||||
stat.powerdamage = 功率/损伤
|
stat.powerdamage = 功率/损伤
|
||||||
stat.itemcapacity = 物品容量
|
stat.itemcapacity = 物品容量
|
||||||
stat.memorycapacity = Memory Capacity
|
stat.memorycapacity = 内存容量
|
||||||
stat.basepowergeneration = 基础能源输出
|
stat.basepowergeneration = 基础能源输出
|
||||||
stat.productiontime = 生产时间
|
stat.productiontime = 生产时间
|
||||||
stat.repairtime = 建筑完全修复时间
|
stat.repairtime = 建筑完全修复时间
|
||||||
@@ -626,28 +626,28 @@ stat.reload = 每秒发射数
|
|||||||
stat.ammo = 弹药
|
stat.ammo = 弹药
|
||||||
stat.shieldhealth = 盾容
|
stat.shieldhealth = 盾容
|
||||||
stat.cooldowntime = 冷却时间
|
stat.cooldowntime = 冷却时间
|
||||||
stat.explosiveness = Explosiveness
|
stat.explosiveness = 爆炸性
|
||||||
stat.basedeflectchance = Base Deflect Chance
|
stat.basedeflectchance = 基础反射几率
|
||||||
stat.lightningchance = Lightning Chance
|
stat.lightningchance = 激发闪电几率
|
||||||
stat.lightningdamage = Lightning Damage
|
stat.lightningdamage = 激发闪电伤害
|
||||||
stat.flammability = Flammability
|
stat.flammability = 燃烧性
|
||||||
stat.radioactivity = Radioactivity
|
stat.radioactivity = 放射性
|
||||||
stat.heatcapacity = HeatCapacity
|
stat.heatcapacity = 热容量
|
||||||
stat.viscosity = Viscosity
|
stat.viscosity = 粘度
|
||||||
stat.temperature = Temperature
|
stat.temperature = 温度
|
||||||
stat.speed = Speed
|
stat.speed = 速度
|
||||||
stat.buildspeed = Build Speed
|
stat.buildspeed = 建造速度
|
||||||
stat.minespeed = Mine Speed
|
stat.minespeed = 采矿速度
|
||||||
stat.minetier = Mine Tier
|
stat.minetier = 采矿等级
|
||||||
stat.payloadcapacity = Payload Capacity
|
stat.payloadcapacity = 载货容量
|
||||||
stat.commandlimit = Command Limit
|
stat.commandlimit = 指挥上限
|
||||||
stat.abilities = Abilities
|
stat.abilities = 能力
|
||||||
|
|
||||||
ability.forcefield = Force Field
|
ability.forcefield = 力墙场
|
||||||
ability.repairfield = Repair Field
|
ability.repairfield = 修复场
|
||||||
ability.statusfield = Status Field
|
ability.statusfield = 状态场
|
||||||
ability.unitspawn = {0} Factory
|
ability.unitspawn = {0} 工厂
|
||||||
ability.shieldregenfield = Shield Regen Field
|
ability.shieldregenfield = 护盾再生场
|
||||||
|
|
||||||
bar.drilltierreq = 需要更好的钻头
|
bar.drilltierreq = 需要更好的钻头
|
||||||
bar.noresources = 缺失资源
|
bar.noresources = 缺失资源
|
||||||
@@ -659,7 +659,7 @@ bar.powerbalance = 能量:{0}/秒
|
|||||||
bar.powerstored = 储能:{0}/{1}
|
bar.powerstored = 储能:{0}/{1}
|
||||||
bar.poweramount = 能量:{0}
|
bar.poweramount = 能量:{0}
|
||||||
bar.poweroutput = 能量输出:{0}
|
bar.poweroutput = 能量输出:{0}
|
||||||
bar.powerlines = Connections: {0}/{1}
|
bar.powerlines = 链接: {0}/{1}
|
||||||
bar.items = 物品:{0}
|
bar.items = 物品:{0}
|
||||||
bar.capacity = 容量:{0}
|
bar.capacity = 容量:{0}
|
||||||
bar.unitcap = {0} {1}/{2}
|
bar.unitcap = {0} {1}/{2}
|
||||||
@@ -671,7 +671,7 @@ bar.progress = 制造进度
|
|||||||
bar.input = 输入
|
bar.input = 输入
|
||||||
bar.output = 输出
|
bar.output = 输出
|
||||||
|
|
||||||
units.processorcontrol = [lightgray]Processor Controlled
|
units.processorcontrol = [lightgray]由处理器控制
|
||||||
|
|
||||||
bullet.damage = [stat]{0}[lightgray] 伤害
|
bullet.damage = [stat]{0}[lightgray] 伤害
|
||||||
bullet.splashdamage = [stat]{0}[lightgray] 范围伤害 ~[stat] {1}[lightgray] 格
|
bullet.splashdamage = [stat]{0}[lightgray] 范围伤害 ~[stat] {1}[lightgray] 格
|
||||||
@@ -680,7 +680,7 @@ bullet.homing = [stat] 追踪
|
|||||||
bullet.shock = [stat] 电击
|
bullet.shock = [stat] 电击
|
||||||
bullet.frag = [stat] 分裂
|
bullet.frag = [stat] 分裂
|
||||||
bullet.knockback = [stat]{0}[lightgray] 击退
|
bullet.knockback = [stat]{0}[lightgray] 击退
|
||||||
bullet.pierce = [stat]{0}[lightgray]x pierce
|
bullet.pierce = [stat]{0}[lightgray]x 穿透
|
||||||
bullet.infinitepierce = [stat]pierce
|
bullet.infinitepierce = [stat]pierce
|
||||||
bullet.freezing = [stat] 冰冻
|
bullet.freezing = [stat] 冰冻
|
||||||
bullet.tarred = [stat] 减速
|
bullet.tarred = [stat] 减速
|
||||||
@@ -688,7 +688,7 @@ bullet.multiplier = [stat]{0}[lightgray]x 装弹数量
|
|||||||
bullet.reload = [stat]{0}[lightgray]x 装弹速度
|
bullet.reload = [stat]{0}[lightgray]x 装弹速度
|
||||||
|
|
||||||
unit.blocks = 方块
|
unit.blocks = 方块
|
||||||
unit.blockssquared = blocks²
|
unit.blockssquared = 方块²
|
||||||
unit.powersecond = 能量/秒
|
unit.powersecond = 能量/秒
|
||||||
unit.liquidsecond = 液体/秒
|
unit.liquidsecond = 液体/秒
|
||||||
unit.itemssecond = 物品/秒
|
unit.itemssecond = 物品/秒
|
||||||
@@ -711,7 +711,7 @@ category.power = 能量
|
|||||||
category.liquids = 液体
|
category.liquids = 液体
|
||||||
category.items = 物品
|
category.items = 物品
|
||||||
category.crafting = 制造
|
category.crafting = 制造
|
||||||
category.function = Function
|
category.function = 功能
|
||||||
category.optional = 可选的增强
|
category.optional = 可选的增强
|
||||||
setting.landscape.name = 锁定横屏
|
setting.landscape.name = 锁定横屏
|
||||||
setting.shadows.name = 影子
|
setting.shadows.name = 影子
|
||||||
@@ -794,8 +794,8 @@ keybind.clear_building.name = 清除建筑
|
|||||||
keybind.press = 请按一个键…
|
keybind.press = 请按一个键…
|
||||||
keybind.press.axis = 请按一个轴或键…
|
keybind.press.axis = 请按一个轴或键…
|
||||||
keybind.screenshot.name = 地图截图
|
keybind.screenshot.name = 地图截图
|
||||||
keybind.toggle_power_lines.name = 显隐能量标识线
|
keybind.toggle_power_lines.name = 显示/隐藏能量标识线
|
||||||
keybind.toggle_block_status.name = 显隐方块状态
|
keybind.toggle_block_status.name = 显示/隐藏方块状态
|
||||||
keybind.move_x.name = 水平移动
|
keybind.move_x.name = 水平移动
|
||||||
keybind.move_y.name = 竖直移动
|
keybind.move_y.name = 竖直移动
|
||||||
keybind.mouse_move.name = 跟随鼠标
|
keybind.mouse_move.name = 跟随鼠标
|
||||||
@@ -861,7 +861,7 @@ mode.custom = 自定义模式
|
|||||||
|
|
||||||
rules.infiniteresources = 无限资源
|
rules.infiniteresources = 无限资源
|
||||||
rules.reactorexplosions = 反应堆爆炸
|
rules.reactorexplosions = 反应堆爆炸
|
||||||
rules.schematic = Schematics Allowed
|
rules.schematic = 启用蓝图
|
||||||
rules.wavetimer = 波次计时器
|
rules.wavetimer = 波次计时器
|
||||||
rules.waves = 波次
|
rules.waves = 波次
|
||||||
rules.attack = 攻击模式
|
rules.attack = 攻击模式
|
||||||
@@ -887,8 +887,8 @@ rules.title.unit = 单位
|
|||||||
rules.title.experimental = 实验性
|
rules.title.experimental = 实验性
|
||||||
rules.title.environment = 环境性
|
rules.title.environment = 环境性
|
||||||
rules.lighting = 光照
|
rules.lighting = 光照
|
||||||
rules.enemyLights = Enemy Lights
|
rules.enemyLights = 单位光照
|
||||||
rules.fire = Fire
|
rules.fire = 火焰
|
||||||
rules.explosions = 建筑/单位爆炸伤害
|
rules.explosions = 建筑/单位爆炸伤害
|
||||||
rules.ambientlight = 环境光
|
rules.ambientlight = 环境光
|
||||||
rules.weather = 气候
|
rules.weather = 气候
|
||||||
@@ -922,46 +922,46 @@ liquid.oil.name = 石油
|
|||||||
liquid.cryofluid.name = 冷冻液
|
liquid.cryofluid.name = 冷冻液
|
||||||
|
|
||||||
unit.dagger.name = 尖刀
|
unit.dagger.name = 尖刀
|
||||||
unit.mace.name = 牙狼
|
unit.mace.name = 战锤
|
||||||
unit.fortress.name = 堡垒
|
unit.fortress.name = 堡垒
|
||||||
unit.nova.name = 新星
|
unit.nova.name = 新星
|
||||||
unit.pulsar.name = 脉冲星
|
unit.pulsar.name = 恒星
|
||||||
unit.quasar.name = 超星
|
unit.quasar.name = 耀星
|
||||||
unit.crawler.name = 爬虫
|
unit.crawler.name = 爬虫
|
||||||
unit.atrax.name = 火蛛
|
unit.atrax.name = 毒蛛
|
||||||
unit.spiroct.name = 天蝎
|
unit.spiroct.name = 血蛭
|
||||||
unit.arkyid.name = 血蛭
|
unit.arkyid.name = 毒蛊
|
||||||
unit.toxopid.name = 毒蟒
|
unit.toxopid.name = 天蝎
|
||||||
unit.flare.name = 星耀
|
unit.flare.name = 星辉
|
||||||
unit.horizon.name = 天垠
|
unit.horizon.name = 天垠
|
||||||
unit.zenith.name = 苍穹
|
unit.zenith.name = 苍穹
|
||||||
unit.antumbra.name = 半影
|
unit.antumbra.name = 月影
|
||||||
unit.eclipse.name = 日蚀
|
unit.eclipse.name = 日蚀
|
||||||
unit.mono.name = 独影
|
unit.mono.name = 独影
|
||||||
unit.poly.name = 聚幻
|
unit.poly.name = 聚幻
|
||||||
unit.mega.name = 巨像
|
unit.mega.name = 巨灵
|
||||||
unit.quad.name = 雷霆
|
unit.quad.name = 雷霆
|
||||||
unit.oct.name = 要塞
|
unit.oct.name = 要塞
|
||||||
unit.risso.name = 梭鱼
|
unit.risso.name = 梭鱼
|
||||||
unit.minke.name = 刺鲸
|
unit.minke.name = 飞鲨
|
||||||
unit.bryde.name = 虎鲨
|
unit.bryde.name = 戟鲸
|
||||||
unit.sei.name = 湖妖
|
unit.sei.name = 蛟龙
|
||||||
unit.omura.name = 海神
|
unit.omura.name = 海神
|
||||||
unit.alpha.name = 阿尔法
|
unit.alpha.name = 阿尔法
|
||||||
unit.beta.name = 贝塔
|
unit.beta.name = 贝塔
|
||||||
unit.gamma.name = 伽玛
|
unit.gamma.name = 伽马
|
||||||
unit.scepter.name = 权杖
|
unit.scepter.name = 权杖
|
||||||
unit.reign.name = 君王
|
unit.reign.name = 王座
|
||||||
unit.vela.name = 灾星
|
unit.vela.name = 灾星
|
||||||
unit.corvus.name = 死星
|
unit.corvus.name = 死星
|
||||||
|
|
||||||
block.resupply-point.name = 补给点
|
block.resupply-point.name = 补给点
|
||||||
block.parallax.name = 阻滞光束
|
block.parallax.name = 差扰光束
|
||||||
block.cliff.name = 悬崖
|
block.cliff.name = 悬崖
|
||||||
block.sand-boulder.name = 沙砂巨石
|
block.sand-boulder.name = 砂岩
|
||||||
block.grass.name = 草地
|
block.grass.name = 草地
|
||||||
block.slag.name = 矿渣
|
block.slag.name = 矿渣
|
||||||
block.space.name = Space
|
block.space.name = 太空
|
||||||
block.salt.name = 盐碱地
|
block.salt.name = 盐碱地
|
||||||
block.salt-wall.name = 盐墙
|
block.salt-wall.name = 盐墙
|
||||||
block.pebbles.name = 鹅卵石
|
block.pebbles.name = 鹅卵石
|
||||||
@@ -1007,7 +1007,7 @@ block.darksand-water.name = 暗沙 水
|
|||||||
block.char.name = 焦土
|
block.char.name = 焦土
|
||||||
block.dacite.name = 英安岩
|
block.dacite.name = 英安岩
|
||||||
block.dacite-wall.name = 英安岩墙
|
block.dacite-wall.name = 英安岩墙
|
||||||
block.dacite-boulder.name = Dacite Boulder
|
block.dacite-boulder.name = 英安巨岩
|
||||||
block.ice-snow.name = 冰雪地
|
block.ice-snow.name = 冰雪地
|
||||||
block.stone-wall.name = 石墙
|
block.stone-wall.name = 石墙
|
||||||
block.ice-wall.name = 冰墙
|
block.ice-wall.name = 冰墙
|
||||||
@@ -1041,7 +1041,7 @@ block.titanium-wall.name = 钛墙
|
|||||||
block.titanium-wall-large.name = 大型钛墙
|
block.titanium-wall-large.name = 大型钛墙
|
||||||
block.plastanium-wall.name = 塑钢墙
|
block.plastanium-wall.name = 塑钢墙
|
||||||
block.plastanium-wall-large.name = 大型塑钢墙
|
block.plastanium-wall-large.name = 大型塑钢墙
|
||||||
block.phase-wall.name = 相织布墙
|
block.phase-wall.name = 相织物墙
|
||||||
block.phase-wall-large.name = 大型相织物墙
|
block.phase-wall-large.name = 大型相织物墙
|
||||||
block.thorium-wall.name = 钍墙
|
block.thorium-wall.name = 钍墙
|
||||||
block.thorium-wall-large.name = 大型钍墙
|
block.thorium-wall-large.name = 大型钍墙
|
||||||
@@ -1056,7 +1056,7 @@ block.conveyor.name = 传送带
|
|||||||
block.titanium-conveyor.name = 钛传送带
|
block.titanium-conveyor.name = 钛传送带
|
||||||
block.plastanium-conveyor.name = 塑钢传送带
|
block.plastanium-conveyor.name = 塑钢传送带
|
||||||
block.armored-conveyor.name = 装甲传送带
|
block.armored-conveyor.name = 装甲传送带
|
||||||
block.armored-conveyor.description = 运送物品,与钛传送带一样的速度,但有更强的装甲。除其他传送带,不接受任何边的输入。
|
block.armored-conveyor.description = 运送物品,与钛传送带一样的速度,但有更强的装甲。除其他传送带,不接受任何边上的输入。
|
||||||
block.junction.name = 连接器
|
block.junction.name = 连接器
|
||||||
block.router.name = 路由器
|
block.router.name = 路由器
|
||||||
block.distributor.name = 分配器
|
block.distributor.name = 分配器
|
||||||
@@ -1102,7 +1102,7 @@ block.power-source.name = 无限能源
|
|||||||
block.unloader.name = 装卸器
|
block.unloader.name = 装卸器
|
||||||
block.vault.name = 仓库
|
block.vault.name = 仓库
|
||||||
block.wave.name = 波浪
|
block.wave.name = 波浪
|
||||||
block.tsunami.name = Tsunami
|
block.tsunami.name = 海啸
|
||||||
block.swarmer.name = 蜂群
|
block.swarmer.name = 蜂群
|
||||||
block.salvo.name = 齐射炮
|
block.salvo.name = 齐射炮
|
||||||
block.ripple.name = 浪涌
|
block.ripple.name = 浪涌
|
||||||
@@ -1142,33 +1142,33 @@ block.arc.name = 电弧
|
|||||||
block.rtg-generator.name = RTG 发电机
|
block.rtg-generator.name = RTG 发电机
|
||||||
block.spectre.name = 幽灵
|
block.spectre.name = 幽灵
|
||||||
block.meltdown.name = 熔毁
|
block.meltdown.name = 熔毁
|
||||||
block.foreshadow.name = Foreshadow
|
block.foreshadow.name = 厄兆
|
||||||
block.container.name = 容器
|
block.container.name = 容器
|
||||||
block.launch-pad.name = 发射台
|
block.launch-pad.name = 发射台
|
||||||
block.launch-pad-large.name = 大型发射台
|
block.launch-pad-large.name = 大型发射台
|
||||||
block.segment.name = 裂解光束
|
block.segment.name = 裂解光束
|
||||||
block.command-center.name = 指挥中心
|
block.command-center.name = 指挥中心
|
||||||
block.ground-factory.name = 陆战单位工厂
|
block.ground-factory.name = 陆军工厂
|
||||||
block.air-factory.name = 空战单位工厂
|
block.air-factory.name = 空军工厂
|
||||||
block.naval-factory.name = 海战单位工厂
|
block.naval-factory.name = 海军工厂
|
||||||
block.additive-reconstructor.name = 数增级单位重构工厂
|
block.additive-reconstructor.name = 数增级单位重构工厂
|
||||||
block.multiplicative-reconstructor.name = 倍增级单位重构工厂
|
block.multiplicative-reconstructor.name = 倍乘级单位重构工厂
|
||||||
block.exponential-reconstructor.name = 幂乘级单位重构工厂
|
block.exponential-reconstructor.name = 多幂级单位重构工厂
|
||||||
block.tetrative-reconstructor.name = 无量级单位重构工厂
|
block.tetrative-reconstructor.name = 无量级单位重构工厂
|
||||||
block.payload-conveyor.name = 载荷传送带
|
block.payload-conveyor.name = 载荷传送带
|
||||||
block.payload-router.name = 载荷路由器
|
block.payload-router.name = 载荷路由器
|
||||||
block.disassembler.name = 分离机
|
block.disassembler.name = 解离机
|
||||||
block.silicon-crucible.name = 热能坩埚
|
block.silicon-crucible.name = 热能坩埚
|
||||||
block.overdrive-dome.name = 超速场投射器
|
block.overdrive-dome.name = 超速穹顶投射器
|
||||||
|
|
||||||
block.switch.name = 开关
|
block.switch.name = 开关
|
||||||
block.micro-processor.name = 微型处理器
|
block.micro-processor.name = 微型处理器
|
||||||
block.logic-processor.name = 逻辑处理器
|
block.logic-processor.name = 逻辑处理器
|
||||||
block.hyper-processor.name = 超频处理器
|
block.hyper-processor.name = 超核处理器
|
||||||
block.logic-display.name = 逻辑显示屏
|
block.logic-display.name = 逻辑显示屏
|
||||||
block.large-logic-display.name = 大型逻辑显示屏
|
block.large-logic-display.name = 大型逻辑显示屏
|
||||||
block.memory-cell.name = 存储单元
|
block.memory-cell.name = 内存元
|
||||||
block.memory-bank.name = Memory Bank
|
block.memory-bank.name = 内存库
|
||||||
|
|
||||||
team.blue.name = 蓝
|
team.blue.name = 蓝
|
||||||
team.crux.name = 红
|
team.crux.name = 红
|
||||||
|
|||||||
@@ -314,3 +314,5 @@
|
|||||||
63422=foreshadow|block-foreshadow-medium
|
63422=foreshadow|block-foreshadow-medium
|
||||||
63421=tsunami|block-tsunami-medium
|
63421=tsunami|block-tsunami-medium
|
||||||
63420=space|block-space-medium
|
63420=space|block-space-medium
|
||||||
|
63419=legacy-unit-factory-air|block-legacy-unit-factory-air-medium
|
||||||
|
63418=legacy-unit-factory-ground|block-legacy-unit-factory-ground-medium
|
||||||
|
|||||||
@@ -11,8 +11,8 @@ const readBytes = path => Vars.mods.getScripts().readBytes(path)
|
|||||||
const loadMusic = path => Vars.mods.getScripts().loadMusic(path)
|
const loadMusic = path => Vars.mods.getScripts().loadMusic(path)
|
||||||
const loadSound = path => Vars.mods.getScripts().loadSound(path)
|
const loadSound = path => Vars.mods.getScripts().loadSound(path)
|
||||||
|
|
||||||
var scriptName = "base.js"
|
let scriptName = "base.js"
|
||||||
var modName = "none"
|
let modName = "none"
|
||||||
|
|
||||||
const print = text => log(modName + "/" + scriptName, text);
|
const print = text => log(modName + "/" + scriptName, text);
|
||||||
|
|
||||||
@@ -82,6 +82,7 @@ importPackage(Packages.mindustry.maps.generators)
|
|||||||
importPackage(Packages.mindustry.maps.planet)
|
importPackage(Packages.mindustry.maps.planet)
|
||||||
importPackage(Packages.mindustry.net)
|
importPackage(Packages.mindustry.net)
|
||||||
importPackage(Packages.mindustry.type)
|
importPackage(Packages.mindustry.type)
|
||||||
|
importPackage(Packages.mindustry.type.weather)
|
||||||
importPackage(Packages.mindustry.ui)
|
importPackage(Packages.mindustry.ui)
|
||||||
importPackage(Packages.mindustry.ui.dialogs)
|
importPackage(Packages.mindustry.ui.dialogs)
|
||||||
importPackage(Packages.mindustry.ui.fragments)
|
importPackage(Packages.mindustry.ui.fragments)
|
||||||
@@ -137,6 +138,7 @@ const PlayerChatEvent = Packages.mindustry.game.EventType.PlayerChatEvent
|
|||||||
const ClientPreConnectEvent = Packages.mindustry.game.EventType.ClientPreConnectEvent
|
const ClientPreConnectEvent = Packages.mindustry.game.EventType.ClientPreConnectEvent
|
||||||
const CommandIssueEvent = Packages.mindustry.game.EventType.CommandIssueEvent
|
const CommandIssueEvent = Packages.mindustry.game.EventType.CommandIssueEvent
|
||||||
const LaunchItemEvent = Packages.mindustry.game.EventType.LaunchItemEvent
|
const LaunchItemEvent = Packages.mindustry.game.EventType.LaunchItemEvent
|
||||||
|
const SectorInvasionEvent = Packages.mindustry.game.EventType.SectorInvasionEvent
|
||||||
const SectorLoseEvent = Packages.mindustry.game.EventType.SectorLoseEvent
|
const SectorLoseEvent = Packages.mindustry.game.EventType.SectorLoseEvent
|
||||||
const WorldLoadEvent = Packages.mindustry.game.EventType.WorldLoadEvent
|
const WorldLoadEvent = Packages.mindustry.game.EventType.WorldLoadEvent
|
||||||
const ClientLoadEvent = Packages.mindustry.game.EventType.ClientLoadEvent
|
const ClientLoadEvent = Packages.mindustry.game.EventType.ClientLoadEvent
|
||||||
|
|||||||
@@ -27,12 +27,12 @@ uniform vec3 u_rcampos;
|
|||||||
uniform mat4 u_invproj;
|
uniform mat4 u_invproj;
|
||||||
uniform vec3 u_light;
|
uniform vec3 u_light;
|
||||||
|
|
||||||
vec2 rayIntersection(vec3 p, vec3 dir, float radius) {
|
vec2 rayIntersection(vec3 p, vec3 dir, float radius){
|
||||||
float b = dot(p, dir);
|
float b = dot(p, dir);
|
||||||
float c = dot(p, p) - radius * radius;
|
float c = dot(p, p) - radius * radius;
|
||||||
|
|
||||||
float d = b * b - c;
|
float d = b * b - c;
|
||||||
if (d < 0.0) {
|
if(d < 0.0){
|
||||||
return vec2(MAX, -MAX);
|
return vec2(MAX, -MAX);
|
||||||
}
|
}
|
||||||
d = sqrt(d);
|
d = sqrt(d);
|
||||||
@@ -43,7 +43,7 @@ vec2 rayIntersection(vec3 p, vec3 dir, float radius) {
|
|||||||
return vec2(near, far);
|
return vec2(near, far);
|
||||||
}
|
}
|
||||||
|
|
||||||
float miePhase(float g, float c, float cc) {
|
float miePhase(float g, float c, float cc){
|
||||||
float gg = g * g;
|
float gg = g * g;
|
||||||
|
|
||||||
float a = (1.0 - gg) * (1.0 + cc);
|
float a = (1.0 - gg) * (1.0 + cc);
|
||||||
@@ -55,20 +55,20 @@ float miePhase(float g, float c, float cc) {
|
|||||||
return 1.5 * a / b;
|
return 1.5 * a / b;
|
||||||
}
|
}
|
||||||
|
|
||||||
float rayleighPhase(float cc) {
|
float rayleighPhase(float cc){
|
||||||
return 0.75 * (1.0 + cc);
|
return 0.75 * (1.0 + cc);
|
||||||
}
|
}
|
||||||
|
|
||||||
float density(vec3 p) {
|
float density(vec3 p){
|
||||||
return exp(-(length(p) - u_innerRadius) * (4.0 / (u_outerRadius - u_innerRadius)));
|
return exp(-(length(p) - u_innerRadius) * (4.0 / (u_outerRadius - u_innerRadius)));
|
||||||
}
|
}
|
||||||
|
|
||||||
float optic(vec3 p, vec3 q) {
|
float optic(vec3 p, vec3 q){
|
||||||
vec3 step = (q - p) / fNumOutScatter;
|
vec3 step = (q - p) / fNumOutScatter;
|
||||||
vec3 v = p + step * 0.5;
|
vec3 v = p + step * 0.5;
|
||||||
|
|
||||||
float sum = 0.0;
|
float sum = 0.0;
|
||||||
for (int i = 0; i < numOutScatter; i++) {
|
for(int i = 0; i < numOutScatter; i++){
|
||||||
sum += density(v);
|
sum += density(v);
|
||||||
v += step;
|
v += step;
|
||||||
}
|
}
|
||||||
@@ -76,7 +76,7 @@ float optic(vec3 p, vec3 q) {
|
|||||||
return sum;
|
return sum;
|
||||||
}
|
}
|
||||||
|
|
||||||
vec3 inScatter(vec3 o, vec3 dir, vec2 e, vec3 l) {
|
vec3 inScatter(vec3 o, vec3 dir, vec2 e, vec3 l){
|
||||||
float len = (e.y - e.x) / fNumInScatter;
|
float len = (e.y - e.x) / fNumInScatter;
|
||||||
vec3 step = dir * len;
|
vec3 step = dir * len;
|
||||||
vec3 p = o + dir * e.x;
|
vec3 p = o + dir * e.x;
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ bool cont(vec2 T, vec2 v){
|
|||||||
id(T + vec2(step, 0) * v, base) || id(T + vec2(-step, 0) * v, base));
|
id(T + vec2(step, 0) * v, base) || id(T + vec2(-step, 0) * v, base));
|
||||||
}
|
}
|
||||||
|
|
||||||
void main() {
|
void main(){
|
||||||
|
|
||||||
vec2 t = v_texCoords.xy;
|
vec2 t = v_texCoords.xy;
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ uniform mat4 u_trans;
|
|||||||
varying vec4 v_col;
|
varying vec4 v_col;
|
||||||
varying vec4 v_position;
|
varying vec4 v_position;
|
||||||
|
|
||||||
void main() {
|
void main(){
|
||||||
gl_Position = u_proj * u_trans * a_position;
|
gl_Position = u_proj * u_trans * a_position;
|
||||||
v_col = a_color;
|
v_col = a_color;
|
||||||
v_position = a_position;
|
v_position = a_position;
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ bool cont(vec2 T, vec2 v){
|
|||||||
id(T + vec2(step, -step) * v, base) || id(T + vec2(-step, step) * v, base));
|
id(T + vec2(step, -step) * v, base) || id(T + vec2(-step, step) * v, base));
|
||||||
}
|
}
|
||||||
|
|
||||||
void main() {
|
void main(){
|
||||||
vec2 coords = (v_texCoords.xy - u_uv) / (u_uv2 - u_uv);
|
vec2 coords = (v_texCoords.xy - u_uv) / (u_uv2 - u_uv);
|
||||||
vec2 t = v_texCoords.xy;
|
vec2 t = v_texCoords.xy;
|
||||||
vec2 v = vec2(1.0/u_texsize.x, 1.0/u_texsize.y);
|
vec2 v = vec2(1.0/u_texsize.x, 1.0/u_texsize.y);
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 826 B After Width: | Height: | Size: 826 B |
|
Before Width: | Height: | Size: 917 KiB After Width: | Height: | Size: 917 KiB |
|
Before Width: | Height: | Size: 562 KiB After Width: | Height: | Size: 608 KiB |
|
Before Width: | Height: | Size: 189 KiB After Width: | Height: | Size: 190 KiB |
|
Before Width: | Height: | Size: 429 KiB After Width: | Height: | Size: 429 KiB |
|
Before Width: | Height: | Size: 1.4 MiB After Width: | Height: | Size: 1.4 MiB |
|
Before Width: | Height: | Size: 2.9 MiB After Width: | Height: | Size: 2.9 MiB |
|
Before Width: | Height: | Size: 190 KiB After Width: | Height: | Size: 191 KiB |
|
Before Width: | Height: | Size: 426 KiB After Width: | Height: | Size: 426 KiB |
|
Before Width: | Height: | Size: 1.4 MiB After Width: | Height: | Size: 1.4 MiB |
@@ -36,8 +36,8 @@ public class Vars implements Loadable{
|
|||||||
public static boolean loadLocales = true;
|
public static boolean loadLocales = true;
|
||||||
/** Whether the logger is loaded. */
|
/** Whether the logger is loaded. */
|
||||||
public static boolean loadedLogger = false, loadedFileLogger = false;
|
public static boolean loadedLogger = false, loadedFileLogger = false;
|
||||||
/** Whether to show the cliff button in the editor*/
|
/** Whether to enable various experimental features (e.g. cliffs) */
|
||||||
public static boolean addCliffButton = false;
|
public static boolean experimental = false;
|
||||||
/** Maximum extra padding around deployment schematics. */
|
/** Maximum extra padding around deployment schematics. */
|
||||||
public static final int maxLoadoutSchematicPad = 5;
|
public static final int maxLoadoutSchematicPad = 5;
|
||||||
/** Maximum schematic size.*/
|
/** Maximum schematic size.*/
|
||||||
@@ -187,7 +187,7 @@ public class Vars implements Loadable{
|
|||||||
public static ContentLoader content;
|
public static ContentLoader content;
|
||||||
public static GameState state;
|
public static GameState state;
|
||||||
public static EntityCollisions collisions;
|
public static EntityCollisions collisions;
|
||||||
public static DefaultWaves defaultWaves;
|
public static Waves waves;
|
||||||
public static LoopControl loops;
|
public static LoopControl loops;
|
||||||
public static Platform platform = new Platform(){};
|
public static Platform platform = new Platform(){};
|
||||||
public static Mods mods;
|
public static Mods mods;
|
||||||
@@ -256,7 +256,7 @@ public class Vars implements Loadable{
|
|||||||
|
|
||||||
content = new ContentLoader();
|
content = new ContentLoader();
|
||||||
loops = new LoopControl();
|
loops = new LoopControl();
|
||||||
defaultWaves = new DefaultWaves();
|
waves = new Waves();
|
||||||
collisions = new EntityCollisions();
|
collisions = new EntityCollisions();
|
||||||
world = new World();
|
world = new World();
|
||||||
universe = new Universe();
|
universe = new Universe();
|
||||||
@@ -318,20 +318,25 @@ public class Vars implements Loadable{
|
|||||||
|
|
||||||
settings.setAppName(appName);
|
settings.setAppName(appName);
|
||||||
|
|
||||||
Writer writer = settings.getDataDirectory().child("last_log.txt").writer(false);
|
try{
|
||||||
LogHandler log = Log.logger;
|
Writer writer = settings.getDataDirectory().child("last_log.txt").writer(false);
|
||||||
//ignore it
|
LogHandler log = Log.logger;
|
||||||
Log.logger = (level, text) -> {
|
//ignore it
|
||||||
log.log(level, text);
|
Log.logger = (level, text) -> {
|
||||||
|
log.log(level, text);
|
||||||
|
|
||||||
try{
|
try{
|
||||||
writer.write("[" + Character.toUpperCase(level.name().charAt(0)) +"] " + Log.removeColors(text) + "\n");
|
writer.write("[" + Character.toUpperCase(level.name().charAt(0)) +"] " + Log.removeColors(text) + "\n");
|
||||||
writer.flush();
|
writer.flush();
|
||||||
}catch(IOException e){
|
}catch(IOException e){
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
//ignore it
|
//ignore it
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
}catch(Exception e){
|
||||||
|
//handle log file not being found
|
||||||
|
Log.err(e);
|
||||||
|
}
|
||||||
|
|
||||||
loadedFileLogger = true;
|
loadedFileLogger = true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -312,6 +312,11 @@ public class BlockIndexer{
|
|||||||
return null;
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
/** @return extra unit cap of a team. This is added onto the base value. */
|
/** @return extra unit cap of a team. This is added onto the base value. */
|
||||||
public int getExtraUnits(Team team){
|
public int getExtraUnits(Team team){
|
||||||
return unitCaps[team.id];
|
return unitCaps[team.id];
|
||||||
@@ -457,8 +462,8 @@ public class BlockIndexer{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static class TileArray implements Iterable<Tile>{
|
public static class TileArray implements Iterable<Tile>{
|
||||||
private Seq<Tile> tiles = new Seq<>(false, 16);
|
Seq<Tile> tiles = new Seq<>(false, 16);
|
||||||
private IntSet contained = new IntSet();
|
IntSet contained = new IntSet();
|
||||||
|
|
||||||
public void add(Tile tile){
|
public void add(Tile tile){
|
||||||
if(contained.add(tile.pos())){
|
if(contained.add(tile.pos())){
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import arc.struct.*;
|
|||||||
import arc.util.*;
|
import arc.util.*;
|
||||||
import arc.util.async.*;
|
import arc.util.async.*;
|
||||||
import mindustry.annotations.Annotations.*;
|
import mindustry.annotations.Annotations.*;
|
||||||
|
import mindustry.content.*;
|
||||||
import mindustry.core.*;
|
import mindustry.core.*;
|
||||||
import mindustry.game.EventType.*;
|
import mindustry.game.EventType.*;
|
||||||
import mindustry.game.*;
|
import mindustry.game.*;
|
||||||
@@ -116,7 +117,7 @@ public class Pathfinder implements Runnable{
|
|||||||
tile.getTeamID(),
|
tile.getTeamID(),
|
||||||
tile.solid(),
|
tile.solid(),
|
||||||
tile.floor().isLiquid,
|
tile.floor().isLiquid,
|
||||||
tile.staticDarkness() >= 2,
|
tile.staticDarkness() >= 2 || (tile.floor().solid && tile.block() == Blocks.air),
|
||||||
nearLiquid,
|
nearLiquid,
|
||||||
nearGround,
|
nearGround,
|
||||||
nearSolid,
|
nearSolid,
|
||||||
|
|||||||
@@ -2,14 +2,17 @@ package mindustry.ai.types;
|
|||||||
|
|
||||||
import arc.math.*;
|
import arc.math.*;
|
||||||
import arc.math.geom.*;
|
import arc.math.geom.*;
|
||||||
|
import arc.struct.*;
|
||||||
import arc.util.*;
|
import arc.util.*;
|
||||||
import mindustry.ai.formations.*;
|
import mindustry.ai.formations.*;
|
||||||
import mindustry.entities.units.*;
|
import mindustry.entities.units.*;
|
||||||
import mindustry.gen.*;
|
import mindustry.gen.*;
|
||||||
import mindustry.type.*;
|
import mindustry.type.*;
|
||||||
|
import mindustry.world.*;
|
||||||
import mindustry.world.blocks.storage.CoreBlock.*;
|
import mindustry.world.blocks.storage.CoreBlock.*;
|
||||||
|
|
||||||
public class FormationAI extends AIController implements FormationMember{
|
public class FormationAI extends AIController implements FormationMember{
|
||||||
|
private static Seq<Tile> tiles = new Seq<>();
|
||||||
public Unit leader;
|
public Unit leader;
|
||||||
|
|
||||||
private Vec3 target = new Vec3();
|
private Vec3 target = new Vec3();
|
||||||
@@ -51,18 +54,18 @@ public class FormationAI extends AIController implements FormationMember{
|
|||||||
|
|
||||||
Vec2 realtarget = vec.set(target);
|
Vec2 realtarget = vec.set(target);
|
||||||
|
|
||||||
float margin = 3f;
|
float margin = 4f;
|
||||||
|
|
||||||
float speed = unit.realSpeed();
|
float speed = unit.realSpeed();
|
||||||
|
|
||||||
if(unit.dst(realtarget) <= margin){
|
if(unit.dst(realtarget) <= margin){
|
||||||
unit.vel.approachDelta(Vec2.ZERO, speed * type.accel / 2f);
|
//unit.vel.approachDelta(Vec2.ZERO, speed * type.accel / 2f);
|
||||||
}else{
|
}else{
|
||||||
unit.moveAt(realtarget.sub(unit).limit(speed));
|
unit.moveAt(realtarget.sub(unit).limit(speed));
|
||||||
}
|
}
|
||||||
|
|
||||||
if(unit instanceof Minerc mine && leader instanceof Minerc com){
|
if(unit instanceof Minerc mine && leader instanceof Minerc com){
|
||||||
if(mine.validMine(com.mineTile())){
|
if(com.mineTile() != null && mine.validMine(com.mineTile())){
|
||||||
mine.mineTile(com.mineTile());
|
mine.mineTile(com.mineTile());
|
||||||
|
|
||||||
CoreBuild core = unit.team.core();
|
CoreBuild core = unit.team.core();
|
||||||
@@ -77,7 +80,6 @@ public class FormationAI extends AIController implements FormationMember{
|
|||||||
}else{
|
}else{
|
||||||
mine.mineTile(null);
|
mine.mineTile(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(unit instanceof Builderc build && leader instanceof Builderc com && com.activelyBuilding()){
|
if(unit instanceof Builderc build && leader instanceof Builderc com && com.activelyBuilding()){
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ import static mindustry.Vars.*;
|
|||||||
|
|
||||||
public class LogicAI extends AIController{
|
public class LogicAI extends AIController{
|
||||||
/** Minimum delay between item transfers. */
|
/** Minimum delay between item transfers. */
|
||||||
public static final float transferDelay = 60f * 3f;
|
public static final float transferDelay = 60f * 2f;
|
||||||
/** Time after which the unit resets its controlled and reverts to a normal unit. */
|
/** Time after which the unit resets its controlled and reverts to a normal unit. */
|
||||||
public static final float logicControlTimeout = 10f * 60f;
|
public static final float logicControlTimeout = 10f * 60f;
|
||||||
|
|
||||||
@@ -44,8 +44,8 @@ public class LogicAI extends AIController{
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void updateMovement(){
|
protected void updateMovement(){
|
||||||
if(itemTimer > 0) itemTimer -= Time.delta;
|
if(itemTimer >= 0) itemTimer -= Time.delta;
|
||||||
if(payTimer > 0) payTimer -= Time.delta;
|
if(payTimer >= 0) payTimer -= Time.delta;
|
||||||
|
|
||||||
if(targetTimer > 0f){
|
if(targetTimer > 0f){
|
||||||
targetTimer -= Time.delta;
|
targetTimer -= Time.delta;
|
||||||
|
|||||||
@@ -39,12 +39,12 @@ public class MinerAI extends AIController{
|
|||||||
if(unit.stack.amount >= unit.type.itemCapacity || (targetItem != null && !unit.acceptsItem(targetItem))){
|
if(unit.stack.amount >= unit.type.itemCapacity || (targetItem != null && !unit.acceptsItem(targetItem))){
|
||||||
mining = false;
|
mining = false;
|
||||||
}else{
|
}else{
|
||||||
if(retarget() && targetItem != null){
|
if(timer.get(timerTarget, 60) && targetItem != null){
|
||||||
ore = indexer.findClosestOre(unit.x, unit.y, targetItem);
|
ore = indexer.findClosestOre(unit, targetItem);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(ore != null){
|
if(ore != null){
|
||||||
moveTo(ore, unit.type.range / 2f);
|
moveTo(ore, unit.type.range / 2f, 20f);
|
||||||
|
|
||||||
if(unit.within(ore, unit.type.range)){
|
if(unit.within(ore, unit.type.range)){
|
||||||
miner.mineTile(ore);
|
miner.mineTile(ore);
|
||||||
|
|||||||
@@ -103,6 +103,7 @@ public class Blocks implements ContentList{
|
|||||||
alwaysReplace = true;
|
alwaysReplace = true;
|
||||||
hasShadow = false;
|
hasShadow = false;
|
||||||
useColor = false;
|
useColor = false;
|
||||||
|
wall = this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override public void drawBase(Tile tile){}
|
@Override public void drawBase(Tile tile){}
|
||||||
@@ -173,12 +174,14 @@ public class Blocks implements ContentList{
|
|||||||
isLiquid = true;
|
isLiquid = true;
|
||||||
cacheLayer = CacheLayer.water;
|
cacheLayer = CacheLayer.water;
|
||||||
albedo = 0.5f;
|
albedo = 0.5f;
|
||||||
|
attributes.set(Attribute.spores, 0.15f);
|
||||||
}};
|
}};
|
||||||
|
|
||||||
darksandTaintedWater = new ShallowLiquid("darksand-tainted-water"){{
|
darksandTaintedWater = new ShallowLiquid("darksand-tainted-water"){{
|
||||||
speedMultiplier = 0.75f;
|
speedMultiplier = 0.75f;
|
||||||
statusDuration = 60f;
|
statusDuration = 60f;
|
||||||
albedo = 0.5f;
|
albedo = 0.5f;
|
||||||
|
attributes.set(Attribute.spores, 0.1f);
|
||||||
}};
|
}};
|
||||||
|
|
||||||
sandWater = new ShallowLiquid("sand-water"){{
|
sandWater = new ShallowLiquid("sand-water"){{
|
||||||
@@ -624,17 +627,6 @@ public class Blocks implements ContentList{
|
|||||||
consumes.liquid(Liquids.water, 0.2f);
|
consumes.liquid(Liquids.water, 0.2f);
|
||||||
}};
|
}};
|
||||||
|
|
||||||
blastMixer = new GenericCrafter("blast-mixer"){{
|
|
||||||
requirements(Category.crafting, with(Items.lead, 30, Items.titanium, 20));
|
|
||||||
hasItems = true;
|
|
||||||
hasPower = true;
|
|
||||||
outputItem = new ItemStack(Items.blastCompound, 1);
|
|
||||||
size = 2;
|
|
||||||
|
|
||||||
consumes.items(new ItemStack(Items.pyratite, 1), new ItemStack(Items.sporePod, 1));
|
|
||||||
consumes.power(0.40f);
|
|
||||||
}};
|
|
||||||
|
|
||||||
pyratiteMixer = new GenericSmelter("pyratite-mixer"){{
|
pyratiteMixer = new GenericSmelter("pyratite-mixer"){{
|
||||||
requirements(Category.crafting, with(Items.copper, 50, Items.lead, 25));
|
requirements(Category.crafting, with(Items.copper, 50, Items.lead, 25));
|
||||||
flameColor = Color.clear;
|
flameColor = Color.clear;
|
||||||
@@ -648,6 +640,17 @@ public class Blocks implements ContentList{
|
|||||||
consumes.items(new ItemStack(Items.coal, 1), new ItemStack(Items.lead, 2), new ItemStack(Items.sand, 2));
|
consumes.items(new ItemStack(Items.coal, 1), new ItemStack(Items.lead, 2), new ItemStack(Items.sand, 2));
|
||||||
}};
|
}};
|
||||||
|
|
||||||
|
blastMixer = new GenericCrafter("blast-mixer"){{
|
||||||
|
requirements(Category.crafting, with(Items.lead, 30, Items.titanium, 20));
|
||||||
|
hasItems = true;
|
||||||
|
hasPower = true;
|
||||||
|
outputItem = new ItemStack(Items.blastCompound, 1);
|
||||||
|
size = 2;
|
||||||
|
|
||||||
|
consumes.items(new ItemStack(Items.pyratite, 1), new ItemStack(Items.sporePod, 1));
|
||||||
|
consumes.power(0.40f);
|
||||||
|
}};
|
||||||
|
|
||||||
melter = new GenericCrafter("melter"){{
|
melter = new GenericCrafter("melter"){{
|
||||||
requirements(Category.crafting, with(Items.copper, 30, Items.lead, 35, Items.graphite, 45));
|
requirements(Category.crafting, with(Items.copper, 30, Items.lead, 35, Items.graphite, 45));
|
||||||
health = 200;
|
health = 200;
|
||||||
@@ -913,7 +916,7 @@ public class Blocks implements ContentList{
|
|||||||
size = 3;
|
size = 3;
|
||||||
phaseRadiusBoost = 80f;
|
phaseRadiusBoost = 80f;
|
||||||
radius = 101.7f;
|
radius = 101.7f;
|
||||||
breakage = 750f;
|
shieldHealth = 750f;
|
||||||
cooldownNormal = 1.5f;
|
cooldownNormal = 1.5f;
|
||||||
cooldownLiquid = 1.2f;
|
cooldownLiquid = 1.2f;
|
||||||
cooldownBrokenBase = 0.35f;
|
cooldownBrokenBase = 0.35f;
|
||||||
@@ -1190,7 +1193,7 @@ public class Blocks implements ContentList{
|
|||||||
requirements(Category.power, with(Items.lead, 100, Items.silicon, 75, Items.phaseFabric, 25, Items.plastanium, 75, Items.thorium, 50));
|
requirements(Category.power, with(Items.lead, 100, Items.silicon, 75, Items.phaseFabric, 25, Items.plastanium, 75, Items.thorium, 50));
|
||||||
size = 2;
|
size = 2;
|
||||||
powerProduction = 4.5f;
|
powerProduction = 4.5f;
|
||||||
itemDuration = 60 * 18f;
|
itemDuration = 60 * 15f;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
solarPanel = new SolarGenerator("solar-panel"){{
|
solarPanel = new SolarGenerator("solar-panel"){{
|
||||||
@@ -1327,7 +1330,7 @@ public class Blocks implements ContentList{
|
|||||||
//region storage
|
//region storage
|
||||||
|
|
||||||
coreShard = new CoreBlock("core-shard"){{
|
coreShard = new CoreBlock("core-shard"){{
|
||||||
requirements(Category.effect, BuildVisibility.hidden, with(Items.copper, 2000, Items.lead, 1000));
|
requirements(Category.effect, BuildVisibility.editorOnly, with(Items.copper, 2000, Items.lead, 1000));
|
||||||
alwaysUnlocked = true;
|
alwaysUnlocked = true;
|
||||||
|
|
||||||
unitType = UnitTypes.alpha;
|
unitType = UnitTypes.alpha;
|
||||||
@@ -1401,7 +1404,7 @@ public class Blocks implements ContentList{
|
|||||||
restitution = 0.03f;
|
restitution = 0.03f;
|
||||||
range = 100;
|
range = 100;
|
||||||
shootCone = 15f;
|
shootCone = 15f;
|
||||||
ammoUseEffect = Fx.shellEjectSmall;
|
ammoUseEffect = Fx.casing1;
|
||||||
health = 250;
|
health = 250;
|
||||||
inaccuracy = 2f;
|
inaccuracy = 2f;
|
||||||
rotateSpeed = 10f;
|
rotateSpeed = 10f;
|
||||||
@@ -1542,10 +1545,10 @@ public class Blocks implements ContentList{
|
|||||||
|
|
||||||
hasPower = true;
|
hasPower = true;
|
||||||
size = 2;
|
size = 2;
|
||||||
force = 5f;
|
force = 8f;
|
||||||
scaledForce = 5.5f;
|
scaledForce = 7f;
|
||||||
range = 160f;
|
range = 230f;
|
||||||
damage = 0.4f;
|
damage = 0.3f;
|
||||||
health = 160 * size * size;
|
health = 160 * size * size;
|
||||||
rotateSpeed = 10;
|
rotateSpeed = 10;
|
||||||
|
|
||||||
@@ -1590,7 +1593,7 @@ public class Blocks implements ContentList{
|
|||||||
shootShake = 1f;
|
shootShake = 1f;
|
||||||
burstSpacing = 3f;
|
burstSpacing = 3f;
|
||||||
shots = 4;
|
shots = 4;
|
||||||
ammoUseEffect = Fx.shellEjectBig;
|
ammoUseEffect = Fx.casing2;
|
||||||
health = 240 * size * size;
|
health = 240 * size * size;
|
||||||
shootSound = Sounds.shootBig;
|
shootSound = Sounds.shootBig;
|
||||||
}};
|
}};
|
||||||
@@ -1651,17 +1654,19 @@ public class Blocks implements ContentList{
|
|||||||
float brange = range + 10f;
|
float brange = range + 10f;
|
||||||
|
|
||||||
ammo(
|
ammo(
|
||||||
Items.thorium, new ShrapnelBulletType(){{
|
|
||||||
length = brange;
|
|
||||||
damage = 105f;
|
|
||||||
ammoMultiplier = 5f;
|
|
||||||
}},
|
|
||||||
Items.titanium, new ShrapnelBulletType(){{
|
Items.titanium, new ShrapnelBulletType(){{
|
||||||
length = brange;
|
length = brange;
|
||||||
damage = 66f;
|
damage = 66f;
|
||||||
ammoMultiplier = 4f;
|
ammoMultiplier = 4f;
|
||||||
width = 17f;
|
width = 17f;
|
||||||
reloadMultiplier = 1.3f;
|
reloadMultiplier = 1.3f;
|
||||||
|
}},
|
||||||
|
Items.thorium, new ShrapnelBulletType(){{
|
||||||
|
length = brange;
|
||||||
|
damage = 105f;
|
||||||
|
ammoMultiplier = 5f;
|
||||||
|
toColor = Pal.thoriumPink;
|
||||||
|
shootEffect = smokeEffect = Fx.thoriumShoot;
|
||||||
}}
|
}}
|
||||||
);
|
);
|
||||||
}};
|
}};
|
||||||
@@ -1682,7 +1687,7 @@ public class Blocks implements ContentList{
|
|||||||
inaccuracy = 12f;
|
inaccuracy = 12f;
|
||||||
reloadTime = 60f;
|
reloadTime = 60f;
|
||||||
ammoEjectBack = 5f;
|
ammoEjectBack = 5f;
|
||||||
ammoUseEffect = Fx.shellEjectBig;
|
ammoUseEffect = Fx.casing3Double;
|
||||||
ammoPerShot = 2;
|
ammoPerShot = 2;
|
||||||
cooldown = 0.03f;
|
cooldown = 0.03f;
|
||||||
velocityInaccuracy = 0.2f;
|
velocityInaccuracy = 0.2f;
|
||||||
@@ -1740,7 +1745,7 @@ public class Blocks implements ContentList{
|
|||||||
rotateSpeed = 2.5f;
|
rotateSpeed = 2.5f;
|
||||||
reloadTime = 200f;
|
reloadTime = 200f;
|
||||||
restitution = 0.2f;
|
restitution = 0.2f;
|
||||||
ammoUseEffect = Fx.shellEjectBig;
|
ammoUseEffect = Fx.casing3Double;
|
||||||
recoilAmount = 5f;
|
recoilAmount = 5f;
|
||||||
restitution = 0.009f;
|
restitution = 0.009f;
|
||||||
cooldown = 0.009f;
|
cooldown = 0.009f;
|
||||||
@@ -1769,7 +1774,7 @@ public class Blocks implements ContentList{
|
|||||||
reloadTime = 6f;
|
reloadTime = 6f;
|
||||||
coolantMultiplier = 0.5f;
|
coolantMultiplier = 0.5f;
|
||||||
restitution = 0.1f;
|
restitution = 0.1f;
|
||||||
ammoUseEffect = Fx.shellEjectBig;
|
ammoUseEffect = Fx.casing3Double;
|
||||||
range = 200f;
|
range = 200f;
|
||||||
inaccuracy = 3f;
|
inaccuracy = 3f;
|
||||||
recoilAmount = 3f;
|
recoilAmount = 3f;
|
||||||
@@ -1988,9 +1993,9 @@ public class Blocks implements ContentList{
|
|||||||
|
|
||||||
illuminator = new LightBlock("illuminator"){{
|
illuminator = new LightBlock("illuminator"){{
|
||||||
requirements(Category.effect, BuildVisibility.lightingOnly, with(Items.graphite, 12, Items.silicon, 8));
|
requirements(Category.effect, BuildVisibility.lightingOnly, with(Items.graphite, 12, Items.silicon, 8));
|
||||||
brightness = 0.67f;
|
brightness = 0.75f;
|
||||||
radius = 140f;
|
radius = 120f;
|
||||||
consumes.power(0.06f);
|
consumes.power(0.05f);
|
||||||
}};
|
}};
|
||||||
|
|
||||||
//endregion
|
//endregion
|
||||||
@@ -1999,6 +2004,12 @@ public class Blocks implements ContentList{
|
|||||||
//looked up by name, no ref needed
|
//looked up by name, no ref needed
|
||||||
new LegacyMechPad("legacy-mech-pad");
|
new LegacyMechPad("legacy-mech-pad");
|
||||||
new LegacyUnitFactory("legacy-unit-factory");
|
new LegacyUnitFactory("legacy-unit-factory");
|
||||||
|
new LegacyUnitFactory("legacy-unit-factory-air"){{
|
||||||
|
replacement = Blocks.airFactory;
|
||||||
|
}};
|
||||||
|
new LegacyUnitFactory("legacy-unit-factory-ground"){{
|
||||||
|
replacement = Blocks.groundFactory;
|
||||||
|
}};
|
||||||
|
|
||||||
//endregion
|
//endregion
|
||||||
//region campaign
|
//region campaign
|
||||||
@@ -2034,7 +2045,7 @@ public class Blocks implements ContentList{
|
|||||||
}};
|
}};
|
||||||
|
|
||||||
microProcessor = new LogicBlock("micro-processor"){{
|
microProcessor = new LogicBlock("micro-processor"){{
|
||||||
requirements(Category.logic, with(Items.copper, 80, Items.lead, 50, Items.silicon, 50));
|
requirements(Category.logic, with(Items.copper, 80, Items.lead, 50, Items.silicon, 30));
|
||||||
|
|
||||||
instructionsPerTick = 2;
|
instructionsPerTick = 2;
|
||||||
|
|
||||||
@@ -2042,7 +2053,7 @@ public class Blocks implements ContentList{
|
|||||||
}};
|
}};
|
||||||
|
|
||||||
logicProcessor = new LogicBlock("logic-processor"){{
|
logicProcessor = new LogicBlock("logic-processor"){{
|
||||||
requirements(Category.logic, with(Items.lead, 320, Items.silicon, 100, Items.graphite, 60, Items.thorium, 50));
|
requirements(Category.logic, with(Items.lead, 320, Items.silicon, 60, Items.graphite, 60, Items.thorium, 50));
|
||||||
|
|
||||||
instructionsPerTick = 8;
|
instructionsPerTick = 8;
|
||||||
|
|
||||||
@@ -2052,7 +2063,7 @@ public class Blocks implements ContentList{
|
|||||||
}};
|
}};
|
||||||
|
|
||||||
hyperProcessor = new LogicBlock("hyper-processor"){{
|
hyperProcessor = new LogicBlock("hyper-processor"){{
|
||||||
requirements(Category.logic, with(Items.lead, 450, Items.silicon, 150, Items.thorium, 75, Items.surgeAlloy, 50));
|
requirements(Category.logic, with(Items.lead, 450, Items.silicon, 130, Items.thorium, 75, Items.surgeAlloy, 50));
|
||||||
|
|
||||||
consumes.liquid(Liquids.cryofluid, 0.08f);
|
consumes.liquid(Liquids.cryofluid, 0.08f);
|
||||||
hasLiquids = true;
|
hasLiquids = true;
|
||||||
|
|||||||
@@ -30,18 +30,33 @@ public class Bullets implements ContentList{
|
|||||||
missileExplosive, missileIncendiary, missileSurge,
|
missileExplosive, missileIncendiary, missileSurge,
|
||||||
|
|
||||||
//standard
|
//standard
|
||||||
standardCopper, standardDense, standardThorium, standardHoming, standardIncendiary, standardMechSmall,
|
standardCopper, standardDense, standardThorium, standardHoming, standardIncendiary,
|
||||||
standardGlaive, standardDenseBig, standardThoriumBig, standardIncendiaryBig,
|
standardDenseBig, standardThoriumBig, standardIncendiaryBig,
|
||||||
|
|
||||||
//liquid
|
//liquid
|
||||||
waterShot, cryoShot, slagShot, oilShot, heavyWaterShot, heavyCryoShot, heavySlagShot, heavyOilShot,
|
waterShot, cryoShot, slagShot, oilShot, heavyWaterShot, heavyCryoShot, heavySlagShot, heavyOilShot,
|
||||||
|
|
||||||
//environment, misc.
|
//environment, misc.
|
||||||
damageLightning, damageLightningGround, fireball, basicFlame, pyraFlame, driverBolt, healBullet, healBulletBig, frag;
|
damageLightning, damageLightningGround, fireball, basicFlame, pyraFlame, driverBolt, healBullet, healBulletBig;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void load(){
|
public void load(){
|
||||||
|
|
||||||
|
//lightning bullets need to be initialized first.
|
||||||
|
damageLightning = new BulletType(0.0001f, 0f){{
|
||||||
|
lifetime = Fx.lightning.lifetime;
|
||||||
|
hitEffect = Fx.hitLancer;
|
||||||
|
despawnEffect = Fx.none;
|
||||||
|
status = StatusEffects.shocked;
|
||||||
|
statusDuration = 10f;
|
||||||
|
hittable = false;
|
||||||
|
}};
|
||||||
|
|
||||||
|
//this is just a copy of the damage lightning bullet that doesn't damage air units
|
||||||
|
damageLightningGround = new BulletType(0.0001f, 0f){};
|
||||||
|
JsonIO.copy(damageLightning, damageLightningGround);
|
||||||
|
damageLightningGround.collidesAir = false;
|
||||||
|
|
||||||
artilleryDense = new ArtilleryBulletType(3f, 20, "shell"){{
|
artilleryDense = new ArtilleryBulletType(3f, 20, "shell"){{
|
||||||
hitEffect = Fx.flakExplosion;
|
hitEffect = Fx.flakExplosion;
|
||||||
knockback = 0.8f;
|
knockback = 0.8f;
|
||||||
@@ -102,6 +117,7 @@ public class Bullets implements ContentList{
|
|||||||
status = StatusEffects.burning;
|
status = StatusEffects.burning;
|
||||||
frontColor = Pal.lightishOrange;
|
frontColor = Pal.lightishOrange;
|
||||||
backColor = Pal.lightOrange;
|
backColor = Pal.lightOrange;
|
||||||
|
makeFire = true;
|
||||||
trailEffect = Fx.incendTrail;
|
trailEffect = Fx.incendTrail;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
@@ -265,6 +281,7 @@ public class Bullets implements ContentList{
|
|||||||
homingPower = 0.08f;
|
homingPower = 0.08f;
|
||||||
splashDamageRadius = 20f;
|
splashDamageRadius = 20f;
|
||||||
splashDamage = 20f;
|
splashDamage = 20f;
|
||||||
|
makeFire = true;
|
||||||
hitEffect = Fx.blastExplosion;
|
hitEffect = Fx.blastExplosion;
|
||||||
status = StatusEffects.burning;
|
status = StatusEffects.burning;
|
||||||
}};
|
}};
|
||||||
@@ -278,6 +295,7 @@ public class Bullets implements ContentList{
|
|||||||
splashDamage = 25f;
|
splashDamage = 25f;
|
||||||
hitEffect = Fx.blastExplosion;
|
hitEffect = Fx.blastExplosion;
|
||||||
despawnEffect = Fx.blastExplosion;
|
despawnEffect = Fx.blastExplosion;
|
||||||
|
lightningDamage = 10;
|
||||||
lightning = 2;
|
lightning = 2;
|
||||||
lightningLength = 10;
|
lightningLength = 10;
|
||||||
}};
|
}};
|
||||||
@@ -323,27 +341,11 @@ public class Bullets implements ContentList{
|
|||||||
frontColor = Pal.lightishOrange;
|
frontColor = Pal.lightishOrange;
|
||||||
backColor = Pal.lightOrange;
|
backColor = Pal.lightOrange;
|
||||||
status = StatusEffects.burning;
|
status = StatusEffects.burning;
|
||||||
|
makeFire = true;
|
||||||
inaccuracy = 3f;
|
inaccuracy = 3f;
|
||||||
lifetime = 60f;
|
lifetime = 60f;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
standardGlaive = new BasicBulletType(4f, 7.5f, "bullet"){{
|
|
||||||
width = 10f;
|
|
||||||
height = 12f;
|
|
||||||
frontColor = Color.valueOf("feb380");
|
|
||||||
backColor = Color.valueOf("ea8878");
|
|
||||||
status = StatusEffects.burning;
|
|
||||||
lifetime = 60f;
|
|
||||||
}};
|
|
||||||
|
|
||||||
standardMechSmall = new BasicBulletType(4f, 9, "bullet"){{
|
|
||||||
width = 11f;
|
|
||||||
height = 14f;
|
|
||||||
lifetime = 40f;
|
|
||||||
inaccuracy = 5f;
|
|
||||||
despawnEffect = Fx.hitBulletSmall;
|
|
||||||
}};
|
|
||||||
|
|
||||||
standardDenseBig = new BasicBulletType(7f, 55, "bullet"){{
|
standardDenseBig = new BasicBulletType(7f, 55, "bullet"){{
|
||||||
width = 15f;
|
width = 15f;
|
||||||
height = 21f;
|
height = 21f;
|
||||||
@@ -365,24 +367,11 @@ public class Bullets implements ContentList{
|
|||||||
backColor = Pal.lightOrange;
|
backColor = Pal.lightOrange;
|
||||||
status = StatusEffects.burning;
|
status = StatusEffects.burning;
|
||||||
shootEffect = Fx.shootBig;
|
shootEffect = Fx.shootBig;
|
||||||
|
makeFire = true;
|
||||||
pierceCap = 2;
|
pierceCap = 2;
|
||||||
pierceBuilding = true;
|
pierceBuilding = true;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
damageLightning = new BulletType(0.0001f, 0f){{
|
|
||||||
lifetime = Fx.lightning.lifetime;
|
|
||||||
hitEffect = Fx.hitLancer;
|
|
||||||
despawnEffect = Fx.none;
|
|
||||||
status = StatusEffects.shocked;
|
|
||||||
statusDuration = 10f;
|
|
||||||
hittable = false;
|
|
||||||
}};
|
|
||||||
|
|
||||||
//this is just a copy of the damage lightning bullet that doesn't damage air units
|
|
||||||
damageLightningGround = new BulletType(0.0001f, 0f){};
|
|
||||||
JsonIO.copy(damageLightning, damageLightningGround);
|
|
||||||
damageLightningGround.collidesAir = false;
|
|
||||||
|
|
||||||
healBullet = new LaserBoltBulletType(5.2f, 13){{
|
healBullet = new LaserBoltBulletType(5.2f, 13){{
|
||||||
healPercent = 3f;
|
healPercent = 3f;
|
||||||
collidesTeam = true;
|
collidesTeam = true;
|
||||||
@@ -437,7 +426,7 @@ public class Bullets implements ContentList{
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
basicFlame = new BulletType(3.35f, 15f){{
|
basicFlame = new BulletType(3.35f, 16f){{
|
||||||
ammoMultiplier = 3f;
|
ammoMultiplier = 3f;
|
||||||
hitSize = 7f;
|
hitSize = 7f;
|
||||||
lifetime = 18f;
|
lifetime = 18f;
|
||||||
@@ -452,7 +441,7 @@ public class Bullets implements ContentList{
|
|||||||
hittable = false;
|
hittable = false;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
pyraFlame = new BulletType(3.35f, 22f){{
|
pyraFlame = new BulletType(3.35f, 25f){{
|
||||||
ammoMultiplier = 4f;
|
ammoMultiplier = 4f;
|
||||||
hitSize = 7f;
|
hitSize = 7f;
|
||||||
lifetime = 18f;
|
lifetime = 18f;
|
||||||
@@ -489,9 +478,9 @@ public class Bullets implements ContentList{
|
|||||||
knockback = 1.7f;
|
knockback = 1.7f;
|
||||||
puddleSize = 8f;
|
puddleSize = 8f;
|
||||||
drag = 0.001f;
|
drag = 0.001f;
|
||||||
ammoMultiplier = 2f;
|
ammoMultiplier = 0.4f;
|
||||||
statusDuration = 60f * 4f;
|
statusDuration = 60f * 4f;
|
||||||
damage = 0.1f;
|
damage = 0.2f;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
heavyCryoShot = new LiquidBulletType(Liquids.cryofluid){{
|
heavyCryoShot = new LiquidBulletType(Liquids.cryofluid){{
|
||||||
@@ -500,9 +489,9 @@ public class Bullets implements ContentList{
|
|||||||
knockback = 1.3f;
|
knockback = 1.3f;
|
||||||
puddleSize = 8f;
|
puddleSize = 8f;
|
||||||
drag = 0.001f;
|
drag = 0.001f;
|
||||||
ammoMultiplier = 2f;
|
ammoMultiplier = 0.4f;
|
||||||
statusDuration = 60f * 4f;
|
statusDuration = 60f * 4f;
|
||||||
damage = 0.1f;
|
damage = 0.2f;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
heavySlagShot = new LiquidBulletType(Liquids.slag){{
|
heavySlagShot = new LiquidBulletType(Liquids.slag){{
|
||||||
@@ -510,9 +499,9 @@ public class Bullets implements ContentList{
|
|||||||
speed = 4f;
|
speed = 4f;
|
||||||
knockback = 1.3f;
|
knockback = 1.3f;
|
||||||
puddleSize = 8f;
|
puddleSize = 8f;
|
||||||
damage = 5f;
|
damage = 4.75f;
|
||||||
drag = 0.001f;
|
drag = 0.001f;
|
||||||
ammoMultiplier = 2f;
|
ammoMultiplier = 0.4f;
|
||||||
statusDuration = 60f * 4f;
|
statusDuration = 60f * 4f;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
@@ -522,19 +511,11 @@ public class Bullets implements ContentList{
|
|||||||
knockback = 1.3f;
|
knockback = 1.3f;
|
||||||
puddleSize = 8f;
|
puddleSize = 8f;
|
||||||
drag = 0.001f;
|
drag = 0.001f;
|
||||||
ammoMultiplier = 2f;
|
ammoMultiplier = 0.4f;
|
||||||
statusDuration = 60f * 4f;
|
statusDuration = 60f * 4f;
|
||||||
damage = 0.1f;
|
damage = 0.2f;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
driverBolt = new MassDriverBolt();
|
driverBolt = new MassDriverBolt();
|
||||||
|
|
||||||
frag = new BasicBulletType(5f, 8, "bullet"){{
|
|
||||||
width = 8f;
|
|
||||||
height = 9f;
|
|
||||||
shrinkY = 0.5f;
|
|
||||||
lifetime = 50f;
|
|
||||||
drag = 0.04f;
|
|
||||||
}};
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -257,33 +257,33 @@ public class Fx{
|
|||||||
randLenVectors(e.id, 9, 3 + 20f * e.finpow(), (x, y) -> {
|
randLenVectors(e.id, 9, 3 + 20f * e.finpow(), (x, y) -> {
|
||||||
Fill.circle(e.x + x, e.y + y, e.fout() * 4f + 0.4f);
|
Fill.circle(e.x + x, e.y + y, e.fout() * 4f + 0.4f);
|
||||||
});
|
});
|
||||||
}).ground(),
|
}).layer(Layer.debris),
|
||||||
|
|
||||||
unitLand = new Effect(30, e -> {
|
unitLand = new Effect(30, e -> {
|
||||||
color(Tmp.c1.set(e.color).mul(1.1f));
|
color(Tmp.c1.set(e.color).mul(1.1f));
|
||||||
randLenVectors(e.id, 6, 17f * e.finpow(), (x, y) -> {
|
randLenVectors(e.id, 6, 17f * e.finpow(), (x, y) -> {
|
||||||
Fill.circle(e.x + x, e.y + y, e.fout() * 4f + 0.3f);
|
Fill.circle(e.x + x, e.y + y, e.fout() * 4f + 0.3f);
|
||||||
});
|
});
|
||||||
}).ground(),
|
}).layer(Layer.debris),
|
||||||
|
|
||||||
unitLandSmall = new Effect(30, e -> {
|
unitLandSmall = new Effect(30, e -> {
|
||||||
color(Tmp.c1.set(e.color).mul(1.1f));
|
color(Tmp.c1.set(e.color).mul(1.1f));
|
||||||
randLenVectors(e.id, (int)(6 * e.rotation), 12f * e.finpow() * e.rotation, (x, y) -> {
|
randLenVectors(e.id, (int)(6 * e.rotation), 12f * e.finpow() * e.rotation, (x, y) -> {
|
||||||
Fill.circle(e.x + x, e.y + y, e.fout() * 3f + 0.1f);
|
Fill.circle(e.x + x, e.y + y, e.fout() * 3f + 0.1f);
|
||||||
});
|
});
|
||||||
}).ground(),
|
}).layer(Layer.debris),
|
||||||
|
|
||||||
unitPickup = new Effect(18, e -> {
|
unitPickup = new Effect(18, e -> {
|
||||||
color(Pal.lightishGray);
|
color(Pal.lightishGray);
|
||||||
stroke(e.fin() * 2f);
|
stroke(e.fin() * 2f);
|
||||||
Lines.poly(e.x, e.y, 4, 13f * e.fout());
|
Lines.poly(e.x, e.y, 4, 13f * e.fout());
|
||||||
}).ground(),
|
}).layer(Layer.debris),
|
||||||
|
|
||||||
landShock = new Effect(12, e -> {
|
landShock = new Effect(12, e -> {
|
||||||
color(Pal.lancerLaser);
|
color(Pal.lancerLaser);
|
||||||
stroke(e.fout() * 3f);
|
stroke(e.fout() * 3f);
|
||||||
Lines.poly(e.x, e.y, 12, 20f * e.fout());
|
Lines.poly(e.x, e.y, 12, 20f * e.fout());
|
||||||
}).ground(),
|
}).layer(Layer.debris),
|
||||||
|
|
||||||
pickup = new Effect(18, e -> {
|
pickup = new Effect(18, e -> {
|
||||||
color(Pal.lightishGray);
|
color(Pal.lightishGray);
|
||||||
@@ -1064,66 +1064,102 @@ public class Fx{
|
|||||||
|
|
||||||
}),
|
}),
|
||||||
|
|
||||||
shellEjectSmall = new Effect(30f, e -> {
|
casing1 = new Effect(30f, e -> {
|
||||||
color(Pal.lightOrange, Color.lightGray, Pal.lightishGray, e.fin());
|
color(Pal.lightOrange, Color.lightGray, Pal.lightishGray, e.fin());
|
||||||
|
alpha(e.fout(0.3f));
|
||||||
float rot = Math.abs(e.rotation) + 90f;
|
float rot = Math.abs(e.rotation) + 90f;
|
||||||
|
int i = -Mathf.sign(e.rotation);
|
||||||
int i = Mathf.sign(e.rotation);
|
|
||||||
|
|
||||||
float len = (2f + e.finpow() * 6f) * i;
|
float len = (2f + e.finpow() * 6f) * i;
|
||||||
float lr = rot + e.fin() * 30f * i;
|
float lr = rot + e.fin() * 30f * i;
|
||||||
Fill.rect(e.x + trnsx(lr, len) + Mathf.randomSeedRange(e.id + i + 7, 3f * e.fin()),
|
Fill.rect(
|
||||||
e.y + trnsy(lr, len) + Mathf.randomSeedRange(e.id + i + 8, 3f * e.fin()),
|
e.x + trnsx(lr, len) + Mathf.randomSeedRange(e.id + i + 7, 3f * e.fin()),
|
||||||
1f, 2f, rot + e.fin() * 50f * i);
|
e.y + trnsy(lr, len) + Mathf.randomSeedRange(e.id + i + 8, 3f * e.fin()),
|
||||||
|
1f, 2f, rot + e.fin() * 50f * i
|
||||||
|
);
|
||||||
|
|
||||||
}).ground(400f),
|
}).layer(Layer.bullet),
|
||||||
|
|
||||||
shellEjectMedium = new Effect(34f, e -> {
|
casing2 = new Effect(34f, e -> {
|
||||||
color(Pal.lightOrange, Color.lightGray, Pal.lightishGray, e.fin());
|
color(Pal.lightOrange, Color.lightGray, Pal.lightishGray, e.fin());
|
||||||
float rot = e.rotation + 90f;
|
alpha(e.fout(0.5f));
|
||||||
|
float rot = Math.abs(e.rotation) + 90f;
|
||||||
|
int i = -Mathf.sign(e.rotation);
|
||||||
|
float len = (2f + e.finpow() * 10f) * i;
|
||||||
|
float lr = rot + e.fin() * 20f * i;
|
||||||
|
rect(Core.atlas.find("casing"),
|
||||||
|
e.x + trnsx(lr, len) + Mathf.randomSeedRange(e.id + i + 7, 3f * e.fin()),
|
||||||
|
e.y + trnsy(lr, len) + Mathf.randomSeedRange(e.id + i + 8, 3f * e.fin()),
|
||||||
|
2f, 3f, rot + e.fin() * 50f * i
|
||||||
|
);
|
||||||
|
}).layer(Layer.bullet),
|
||||||
|
|
||||||
|
casing3 = new Effect(40f, e -> {
|
||||||
|
color(Pal.lightOrange, Pal.lightishGray, Pal.lightishGray, e.fin());
|
||||||
|
alpha(e.fout(0.5f));
|
||||||
|
float rot = Math.abs(e.rotation) + 90f;
|
||||||
|
int i = -Mathf.sign(e.rotation);
|
||||||
|
float len = (4f + e.finpow() * 9f) * i;
|
||||||
|
float lr = rot + Mathf.randomSeedRange(e.id + i + 6, 20f * e.fin()) * i;
|
||||||
|
|
||||||
|
rect(Core.atlas.find("casing"),
|
||||||
|
e.x + trnsx(lr, len) + Mathf.randomSeedRange(e.id + i + 7, 3f * e.fin()),
|
||||||
|
e.y + trnsy(lr, len) + Mathf.randomSeedRange(e.id + i + 8, 3f * e.fin()),
|
||||||
|
2.5f, 4f,
|
||||||
|
rot + e.fin() * 50f * i
|
||||||
|
);
|
||||||
|
}).layer(Layer.bullet),
|
||||||
|
|
||||||
|
casing4 = new Effect(45f, e -> {
|
||||||
|
color(Pal.lightOrange, Pal.lightishGray, Pal.lightishGray, e.fin());
|
||||||
|
alpha(e.fout(0.5f));
|
||||||
|
float rot = Math.abs(e.rotation) + 90f;
|
||||||
|
int i = -Mathf.sign(e.rotation);
|
||||||
|
float len = (4f + e.finpow() * 9f) * i;
|
||||||
|
float lr = rot + Mathf.randomSeedRange(e.id + i + 6, 20f * e.fin()) * i;
|
||||||
|
|
||||||
|
rect(Core.atlas.find("casing"),
|
||||||
|
e.x + trnsx(lr, len) + Mathf.randomSeedRange(e.id + i + 7, 3f * e.fin()),
|
||||||
|
e.y + trnsy(lr, len) + Mathf.randomSeedRange(e.id + i + 8, 3f * e.fin()),
|
||||||
|
3f, 6f,
|
||||||
|
rot + e.fin() * 50f * i
|
||||||
|
);
|
||||||
|
}).layer(Layer.bullet),
|
||||||
|
|
||||||
|
casing2Double = new Effect(34f, e -> {
|
||||||
|
color(Pal.lightOrange, Color.lightGray, Pal.lightishGray, e.fin());
|
||||||
|
alpha(e.fout(0.5f));
|
||||||
|
float rot = Math.abs(e.rotation) + 90f;
|
||||||
for(int i : Mathf.signs){
|
for(int i : Mathf.signs){
|
||||||
float len = (2f + e.finpow() * 10f) * i;
|
float len = (2f + e.finpow() * 10f) * i;
|
||||||
float lr = rot + e.fin() * 20f * i;
|
float lr = rot + e.fin() * 20f * i;
|
||||||
rect(Core.atlas.find("casing"),
|
rect(Core.atlas.find("casing"),
|
||||||
e.x + trnsx(lr, len) + Mathf.randomSeedRange(e.id + i + 7, 3f * e.fin()),
|
e.x + trnsx(lr, len) + Mathf.randomSeedRange(e.id + i + 7, 3f * e.fin()),
|
||||||
e.y + trnsy(lr, len) + Mathf.randomSeedRange(e.id + i + 8, 3f * e.fin()),
|
e.y + trnsy(lr, len) + Mathf.randomSeedRange(e.id + i + 8, 3f * e.fin()),
|
||||||
2f, 3f, rot);
|
2f, 3f, rot + e.fin() * 50f * i
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
color(Color.lightGray, Color.gray, e.fin());
|
}).layer(Layer.bullet),
|
||||||
|
|
||||||
|
casing3Double = new Effect(40f, e -> {
|
||||||
|
color(Pal.lightOrange, Pal.lightishGray, Pal.lightishGray, e.fin());
|
||||||
|
alpha(e.fout(0.5f));
|
||||||
|
float rot = Math.abs(e.rotation) + 90f;
|
||||||
|
|
||||||
for(int i : Mathf.signs){
|
for(int i : Mathf.signs){
|
||||||
float ex = e.x, ey = e.y, fout = e.fout();
|
float len = (4f + e.finpow() * 9f) * i;
|
||||||
randLenVectors(e.id, 4, 1f + e.finpow() * 11f, e.rotation + 90f * i, 20f, (x, y) -> {
|
|
||||||
Fill.circle(ex + x, ey + y, fout * 1.5f);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
}).ground(400f),
|
|
||||||
|
|
||||||
shellEjectBig = new Effect(22f, e -> {
|
|
||||||
color(Pal.lightOrange, Color.lightGray, Pal.lightishGray, e.fin());
|
|
||||||
float rot = e.rotation + 90f;
|
|
||||||
for(int i : Mathf.signs){
|
|
||||||
float len = (4f + e.finpow() * 8f) * i;
|
|
||||||
float lr = rot + Mathf.randomSeedRange(e.id + i + 6, 20f * e.fin()) * i;
|
float lr = rot + Mathf.randomSeedRange(e.id + i + 6, 20f * e.fin()) * i;
|
||||||
|
|
||||||
rect(Core.atlas.find("casing"),
|
rect(Core.atlas.find("casing"),
|
||||||
e.x + trnsx(lr, len) + Mathf.randomSeedRange(e.id + i + 7, 3f * e.fin()),
|
e.x + trnsx(lr, len) + Mathf.randomSeedRange(e.id + i + 7, 3f * e.fin()),
|
||||||
e.y + trnsy(lr, len) + Mathf.randomSeedRange(e.id + i + 8, 3f * e.fin()),
|
e.y + trnsy(lr, len) + Mathf.randomSeedRange(e.id + i + 8, 3f * e.fin()),
|
||||||
2.5f, 4f,
|
2.5f, 4f,
|
||||||
rot + e.fin() * 30f * i + Mathf.randomSeedRange(e.id + i + 9, 40f * e.fin()));
|
rot + e.fin() * 50f * i
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
color(Color.lightGray);
|
}).layer(Layer.bullet),
|
||||||
|
|
||||||
for(int i : Mathf.signs){
|
|
||||||
float ex = e.x, ey = e.y, fout = e.fout();
|
|
||||||
randLenVectors(e.id, 4, -e.finpow() * 15f, e.rotation + 90f * i, 25f, (x, y) -> {
|
|
||||||
Fill.circle(ex + x, ey + y, fout * 2f);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
}).ground(400f),
|
|
||||||
|
|
||||||
railShoot = new Effect(24f, e -> {
|
railShoot = new Effect(24f, e -> {
|
||||||
e.scaled(10f, b -> {
|
e.scaled(10f, b -> {
|
||||||
@@ -1217,7 +1253,15 @@ public class Fx{
|
|||||||
randLenVectors(e.id, 7, 25f * e.finpow(), e.rotation, 50f, (x, y) -> {
|
randLenVectors(e.id, 7, 25f * e.finpow(), e.rotation, 50f, (x, y) -> {
|
||||||
lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), e.fin() * 5f + 2f);
|
lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), e.fin() * 5f + 2f);
|
||||||
});
|
});
|
||||||
|
}),
|
||||||
|
|
||||||
|
thoriumShoot = new Effect(12f, e -> {
|
||||||
|
color(Color.white, Pal.thoriumPink, e.fin());
|
||||||
|
stroke(e.fout() * 1.2f + 0.5f);
|
||||||
|
|
||||||
|
randLenVectors(e.id, 7, 25f * e.finpow(), e.rotation, 50f, (x, y) -> {
|
||||||
|
lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), e.fin() * 5f + 2f);
|
||||||
|
});
|
||||||
}),
|
}),
|
||||||
|
|
||||||
reactorsmoke = new Effect(17, e -> {
|
reactorsmoke = new Effect(17, e -> {
|
||||||
@@ -1492,7 +1536,7 @@ public class Fx{
|
|||||||
color(Tmp.c1.set(e.color).mul(1.5f));
|
color(Tmp.c1.set(e.color).mul(1.5f));
|
||||||
stroke(e.fout() * 1.4f);
|
stroke(e.fout() * 1.4f);
|
||||||
Lines.circle(e.x, e.y, (2f + e.fin() * 4f) * e.rotation);
|
Lines.circle(e.x, e.y, (2f + e.fin() * 4f) * e.rotation);
|
||||||
}).ground(),
|
}).layer(Layer.debris),
|
||||||
|
|
||||||
bubble = new Effect(20, e -> {
|
bubble = new Effect(20, e -> {
|
||||||
color(Tmp.c1.set(e.color).shiftValue(0.1f));
|
color(Tmp.c1.set(e.color).shiftValue(0.1f));
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ public class SectorPresets implements ContentList{
|
|||||||
|
|
||||||
groundZero = new SectorPreset("groundZero", serpulo, 15){{
|
groundZero = new SectorPreset("groundZero", serpulo, 15){{
|
||||||
alwaysUnlocked = true;
|
alwaysUnlocked = true;
|
||||||
|
addStartingItems = true;
|
||||||
captureWave = 10;
|
captureWave = 10;
|
||||||
difficulty = 1;
|
difficulty = 1;
|
||||||
}};
|
}};
|
||||||
|
|||||||
@@ -6,6 +6,8 @@ import arc.math.*;
|
|||||||
import mindustry.ctype.*;
|
import mindustry.ctype.*;
|
||||||
import mindustry.game.EventType.*;
|
import mindustry.game.EventType.*;
|
||||||
import mindustry.type.*;
|
import mindustry.type.*;
|
||||||
|
import mindustry.graphics.*;
|
||||||
|
|
||||||
|
|
||||||
import static mindustry.Vars.*;
|
import static mindustry.Vars.*;
|
||||||
|
|
||||||
@@ -18,6 +20,7 @@ public class StatusEffects implements ContentList{
|
|||||||
none = new StatusEffect("none");
|
none = new StatusEffect("none");
|
||||||
|
|
||||||
burning = new StatusEffect("burning"){{
|
burning = new StatusEffect("burning"){{
|
||||||
|
color = Pal.lightFlame;
|
||||||
damage = 0.12f; //over 8 seconds, this would be 60 damage
|
damage = 0.12f; //over 8 seconds, this would be 60 damage
|
||||||
effect = Fx.burning;
|
effect = Fx.burning;
|
||||||
|
|
||||||
@@ -32,6 +35,7 @@ public class StatusEffects implements ContentList{
|
|||||||
}};
|
}};
|
||||||
|
|
||||||
freezing = new StatusEffect("freezing"){{
|
freezing = new StatusEffect("freezing"){{
|
||||||
|
color = Color.valueOf("6ecdec");
|
||||||
speedMultiplier = 0.6f;
|
speedMultiplier = 0.6f;
|
||||||
healthMultiplier = 0.8f;
|
healthMultiplier = 0.8f;
|
||||||
effect = Fx.freezing;
|
effect = Fx.freezing;
|
||||||
@@ -47,10 +51,12 @@ public class StatusEffects implements ContentList{
|
|||||||
}};
|
}};
|
||||||
|
|
||||||
unmoving = new StatusEffect("unmoving"){{
|
unmoving = new StatusEffect("unmoving"){{
|
||||||
|
color = Pal.gray;
|
||||||
speedMultiplier = 0.001f;
|
speedMultiplier = 0.001f;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
slow = new StatusEffect("slow"){{
|
slow = new StatusEffect("slow"){{
|
||||||
|
color = Pal.lightishGray;
|
||||||
speedMultiplier = 0.4f;
|
speedMultiplier = 0.4f;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
@@ -80,6 +86,7 @@ public class StatusEffects implements ContentList{
|
|||||||
}};
|
}};
|
||||||
|
|
||||||
melting = new StatusEffect("melting"){{
|
melting = new StatusEffect("melting"){{
|
||||||
|
color = Color.valueOf("ffa166");
|
||||||
speedMultiplier = 0.8f;
|
speedMultiplier = 0.8f;
|
||||||
healthMultiplier = 0.8f;
|
healthMultiplier = 0.8f;
|
||||||
damage = 0.3f;
|
damage = 0.3f;
|
||||||
@@ -92,6 +99,7 @@ public class StatusEffects implements ContentList{
|
|||||||
}};
|
}};
|
||||||
|
|
||||||
sapped = new StatusEffect("sapped"){{
|
sapped = new StatusEffect("sapped"){{
|
||||||
|
color = Pal.sap;
|
||||||
speedMultiplier = 0.7f;
|
speedMultiplier = 0.7f;
|
||||||
healthMultiplier = 0.8f;
|
healthMultiplier = 0.8f;
|
||||||
effect = Fx.sapped;
|
effect = Fx.sapped;
|
||||||
@@ -99,12 +107,14 @@ public class StatusEffects implements ContentList{
|
|||||||
}};
|
}};
|
||||||
|
|
||||||
sporeSlowed = new StatusEffect("spore-slowed"){{
|
sporeSlowed = new StatusEffect("spore-slowed"){{
|
||||||
|
color = Pal.spore;
|
||||||
speedMultiplier = 0.8f;
|
speedMultiplier = 0.8f;
|
||||||
effect = Fx.sapped;
|
effect = Fx.sapped;
|
||||||
effectChance = 0.04f;
|
effectChance = 0.04f;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
tarred = new StatusEffect("tarred"){{
|
tarred = new StatusEffect("tarred"){{
|
||||||
|
color = Color.valueOf("313131");
|
||||||
speedMultiplier = 0.6f;
|
speedMultiplier = 0.6f;
|
||||||
effect = Fx.oily;
|
effect = Fx.oily;
|
||||||
|
|
||||||
@@ -115,6 +125,7 @@ public class StatusEffects implements ContentList{
|
|||||||
}};
|
}};
|
||||||
|
|
||||||
overdrive = new StatusEffect("overdrive"){{
|
overdrive = new StatusEffect("overdrive"){{
|
||||||
|
color = Pal.accent;
|
||||||
healthMultiplier = 0.95f;
|
healthMultiplier = 0.95f;
|
||||||
speedMultiplier = 1.15f;
|
speedMultiplier = 1.15f;
|
||||||
damageMultiplier = 1.4f;
|
damageMultiplier = 1.4f;
|
||||||
@@ -124,6 +135,7 @@ public class StatusEffects implements ContentList{
|
|||||||
}};
|
}};
|
||||||
|
|
||||||
overclock = new StatusEffect("overclock"){{
|
overclock = new StatusEffect("overclock"){{
|
||||||
|
color = Pal.accent;
|
||||||
speedMultiplier = 1.15f;
|
speedMultiplier = 1.15f;
|
||||||
damageMultiplier = 1.15f;
|
damageMultiplier = 1.15f;
|
||||||
reloadMultiplier = 1.25f;
|
reloadMultiplier = 1.25f;
|
||||||
@@ -132,20 +144,27 @@ public class StatusEffects implements ContentList{
|
|||||||
}};
|
}};
|
||||||
|
|
||||||
shielded = new StatusEffect("shielded"){{
|
shielded = new StatusEffect("shielded"){{
|
||||||
|
color = Pal.accent;
|
||||||
healthMultiplier = 3f;
|
healthMultiplier = 3f;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
boss = new StatusEffect("boss"){{
|
boss = new StatusEffect("boss"){{
|
||||||
|
color = Pal.health;
|
||||||
permanent = true;
|
permanent = true;
|
||||||
damageMultiplier = 2f;
|
damageMultiplier = 1.5f;
|
||||||
healthMultiplier = 2f;
|
healthMultiplier = 1.5f;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
shocked = new StatusEffect("shocked");
|
shocked = new StatusEffect("shocked"){{
|
||||||
|
color = Pal.lancerLaser;
|
||||||
|
}};
|
||||||
|
|
||||||
blasted = new StatusEffect("blasted");
|
blasted = new StatusEffect("blasted"){{
|
||||||
|
color = Color.valueOf("ff795e");
|
||||||
|
}};
|
||||||
|
|
||||||
corroded = new StatusEffect("corroded"){{
|
corroded = new StatusEffect("corroded"){{
|
||||||
|
color = Pal.plastanium;
|
||||||
damage = 0.1f;
|
damage = 0.1f;
|
||||||
}};
|
}};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -112,15 +112,15 @@ public class TechTree implements ContentList{
|
|||||||
node(Items.graphite, with(Items.coal, 1000), () -> {
|
node(Items.graphite, with(Items.coal, 1000), () -> {
|
||||||
|
|
||||||
node(graphitePress, () -> {
|
node(graphitePress, () -> {
|
||||||
node(Items.titanium, with(Items.graphite, 6000, Items.copper, 10000, Items.lead, 10000), () -> {
|
node(Items.titanium, with(Items.graphite, 3000, Items.copper, 7000, Items.lead, 7000), () -> {
|
||||||
node(pneumaticDrill, () -> {
|
node(pneumaticDrill, () -> {
|
||||||
node(Items.sporePod, with(Items.coal, 5000, Items.graphite, 5000, Items.lead, 5000), () -> {
|
node(Items.sporePod, with(Items.coal, 4000, Items.graphite, 4000, Items.lead, 4000), () -> {
|
||||||
node(cultivator, () -> {
|
node(cultivator, () -> {
|
||||||
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
node(Items.thorium, with(Items.titanium, 10000, Items.lead, 15000, Items.copper, 30000), () -> {
|
node(Items.thorium, with(Items.titanium, 8000, Items.lead, 12000, Items.copper, 20000), () -> {
|
||||||
node(laserDrill, () -> {
|
node(laserDrill, () -> {
|
||||||
node(blastDrill, () -> {
|
node(blastDrill, () -> {
|
||||||
|
|
||||||
@@ -136,7 +136,7 @@ public class TechTree implements ContentList{
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
node(Items.pyratite, with(Items.coal, 6000, Items.lead, 10000, Items.sand, 5000), () -> {
|
node(Items.pyratite, with(Items.coal, 6000, Items.lead, 8000, Items.sand, 4000), () -> {
|
||||||
node(pyratiteMixer, () -> {
|
node(pyratiteMixer, () -> {
|
||||||
node(Items.blastCompound, with(Items.pyratite, 3000, Items.sporePod, 3000), () -> {
|
node(Items.blastCompound, with(Items.pyratite, 3000, Items.sporePod, 3000), () -> {
|
||||||
node(blastMixer, () -> {
|
node(blastMixer, () -> {
|
||||||
@@ -146,10 +146,10 @@ public class TechTree implements ContentList{
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
node(Items.silicon, with(Items.coal, 4000, Items.sand, 4000), () -> {
|
node(Items.silicon, with(Items.coal, 3000, Items.sand, 4000), () -> {
|
||||||
node(siliconSmelter, () -> {
|
node(siliconSmelter, () -> {
|
||||||
|
|
||||||
node(Liquids.oil, with(Items.coal, 8000, Items.pyratite, 6000, Items.sand, 20000), () -> {
|
node(Liquids.oil, with(Items.coal, 8000, Items.pyratite, 6000, Items.sand, 8000), () -> {
|
||||||
node(sporePress, () -> {
|
node(sporePress, () -> {
|
||||||
node(coalCentrifuge, () -> {
|
node(coalCentrifuge, () -> {
|
||||||
node(multiPress, () -> {
|
node(multiPress, () -> {
|
||||||
@@ -159,9 +159,9 @@ public class TechTree implements ContentList{
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
node(Items.plastanium, with(Items.titanium, 10000, Items.silicon, 10000), () -> {
|
node(Items.plastanium, with(Items.titanium, 8000, Items.silicon, 8000), () -> {
|
||||||
node(plastaniumCompressor, () -> {
|
node(plastaniumCompressor, () -> {
|
||||||
node(Items.phaseFabric, with(Items.thorium, 15000, Items.sand, 30000, Items.silicon, 5000), () -> {
|
node(Items.phaseFabric, with(Items.thorium, 12000, Items.sand, 8000, Items.silicon, 5000), () -> {
|
||||||
node(phaseWeaver, () -> {
|
node(phaseWeaver, () -> {
|
||||||
|
|
||||||
});
|
});
|
||||||
@@ -171,13 +171,13 @@ public class TechTree implements ContentList{
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
node(Items.metaglass, with(Items.sand, 6000, Items.lead, 10000), () -> {
|
node(Items.metaglass, with(Items.sand, 4000, Items.lead, 10000), () -> {
|
||||||
node(kiln, () -> {
|
node(kiln, () -> {
|
||||||
node(incinerator, () -> {
|
node(incinerator, () -> {
|
||||||
node(Items.scrap, with(Items.copper, 20000, Items.sand, 10000), () -> {
|
node(Items.scrap, with(Items.copper, 8000, Items.sand, 4000), () -> {
|
||||||
node(Liquids.slag, with(Items.scrap, 4000), () -> {
|
node(Liquids.slag, with(Items.scrap, 4000), () -> {
|
||||||
node(melter, () -> {
|
node(melter, () -> {
|
||||||
node(Items.surgeAlloy, with(Items.thorium, 20000, Items.silicon, 30000, Items.lead, 40000), () -> {
|
node(Items.surgeAlloy, with(Items.thorium, 20000, Items.silicon, 20000, Items.lead, 40000), () -> {
|
||||||
node(surgeSmelter, () -> {
|
node(surgeSmelter, () -> {
|
||||||
|
|
||||||
});
|
});
|
||||||
@@ -191,7 +191,7 @@ public class TechTree implements ContentList{
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
node(Liquids.cryofluid, with(Items.titanium, 8000, Items.metaglass, 5000), () -> {
|
node(Liquids.cryofluid, with(Items.titanium, 8000, Items.metaglass, 4000), () -> {
|
||||||
node(cryofluidMixer, () -> {
|
node(cryofluidMixer, () -> {
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -74,7 +74,7 @@ public class UnitTypes implements ContentList{
|
|||||||
x = 4f;
|
x = 4f;
|
||||||
y = 2f;
|
y = 2f;
|
||||||
top = false;
|
top = false;
|
||||||
ejectEffect = Fx.shellEjectSmall;
|
ejectEffect = Fx.casing1;
|
||||||
bullet = Bullets.standardCopper;
|
bullet = Bullets.standardCopper;
|
||||||
}});
|
}});
|
||||||
}};
|
}};
|
||||||
@@ -126,7 +126,7 @@ public class UnitTypes implements ContentList{
|
|||||||
reload = 60f;
|
reload = 60f;
|
||||||
recoil = 4f;
|
recoil = 4f;
|
||||||
shake = 2f;
|
shake = 2f;
|
||||||
ejectEffect = Fx.shellEjectMedium;
|
ejectEffect = Fx.casing2;
|
||||||
shootSound = Sounds.artillery;
|
shootSound = Sounds.artillery;
|
||||||
bullet = new ArtilleryBulletType(2f, 8, "shell"){{
|
bullet = new ArtilleryBulletType(2f, 8, "shell"){{
|
||||||
hitEffect = Fx.blastExplosion;
|
hitEffect = Fx.blastExplosion;
|
||||||
@@ -165,7 +165,7 @@ public class UnitTypes implements ContentList{
|
|||||||
reload = 45f;
|
reload = 45f;
|
||||||
recoil = 5f;
|
recoil = 5f;
|
||||||
shake = 2f;
|
shake = 2f;
|
||||||
ejectEffect = Fx.shellEjectBig;
|
ejectEffect = Fx.casing3;
|
||||||
shootSound = Sounds.artillery;
|
shootSound = Sounds.artillery;
|
||||||
shots = 3;
|
shots = 3;
|
||||||
inaccuracy = 3f;
|
inaccuracy = 3f;
|
||||||
@@ -189,7 +189,7 @@ public class UnitTypes implements ContentList{
|
|||||||
x = 8.5f;
|
x = 8.5f;
|
||||||
y = 6f;
|
y = 6f;
|
||||||
rotate = true;
|
rotate = true;
|
||||||
ejectEffect = Fx.shellEjectSmall;
|
ejectEffect = Fx.casing1;
|
||||||
bullet = Bullets.standardCopper;
|
bullet = Bullets.standardCopper;
|
||||||
}},
|
}},
|
||||||
new Weapon("mount-weapon"){{
|
new Weapon("mount-weapon"){{
|
||||||
@@ -197,7 +197,7 @@ public class UnitTypes implements ContentList{
|
|||||||
x = 8.5f;
|
x = 8.5f;
|
||||||
y = -7f;
|
y = -7f;
|
||||||
rotate = true;
|
rotate = true;
|
||||||
ejectEffect = Fx.shellEjectSmall;
|
ejectEffect = Fx.casing1;
|
||||||
bullet = Bullets.standardCopper;
|
bullet = Bullets.standardCopper;
|
||||||
}}
|
}}
|
||||||
|
|
||||||
@@ -225,7 +225,7 @@ public class UnitTypes implements ContentList{
|
|||||||
reload = 9f;
|
reload = 9f;
|
||||||
recoil = 5f;
|
recoil = 5f;
|
||||||
shake = 2f;
|
shake = 2f;
|
||||||
ejectEffect = Fx.shellEjectBig;
|
ejectEffect = Fx.casing4;
|
||||||
shootSound = Sounds.artillery;
|
shootSound = Sounds.artillery;
|
||||||
|
|
||||||
bullet = new BasicBulletType(13f, 60){{
|
bullet = new BasicBulletType(13f, 60){{
|
||||||
@@ -331,6 +331,17 @@ public class UnitTypes implements ContentList{
|
|||||||
lightningLength = 7;
|
lightningLength = 7;
|
||||||
lightningLengthRand = 7;
|
lightningLengthRand = 7;
|
||||||
shootEffect = Fx.shootHeal;
|
shootEffect = Fx.shootHeal;
|
||||||
|
|
||||||
|
lightningType = new BulletType(0.0001f, 0f){{
|
||||||
|
lifetime = Fx.lightning.lifetime;
|
||||||
|
hitEffect = Fx.hitLancer;
|
||||||
|
despawnEffect = Fx.none;
|
||||||
|
status = StatusEffects.shocked;
|
||||||
|
statusDuration = 10f;
|
||||||
|
hittable = false;
|
||||||
|
healPercent = 2f;
|
||||||
|
collidesTeam = true;
|
||||||
|
}};
|
||||||
}};
|
}};
|
||||||
}});
|
}});
|
||||||
}};
|
}};
|
||||||
@@ -372,6 +383,8 @@ public class UnitTypes implements ContentList{
|
|||||||
sideAngle = 45f;
|
sideAngle = 45f;
|
||||||
sideWidth = 1f;
|
sideWidth = 1f;
|
||||||
sideLength = 70f;
|
sideLength = 70f;
|
||||||
|
healPercent = 10f;
|
||||||
|
collidesTeam = true;
|
||||||
colors = new Color[]{Pal.heal.cpy().a(0.4f), Pal.heal, Color.white};
|
colors = new Color[]{Pal.heal.cpy().a(0.4f), Pal.heal, Color.white};
|
||||||
}};
|
}};
|
||||||
}});
|
}});
|
||||||
@@ -416,8 +429,8 @@ public class UnitTypes implements ContentList{
|
|||||||
continuous = true;
|
continuous = true;
|
||||||
cooldownTime = 200f;
|
cooldownTime = 200f;
|
||||||
|
|
||||||
bullet = new ContinuousLaserBulletType(20){{
|
bullet = new ContinuousLaserBulletType(22){{
|
||||||
length = 150f;
|
length = 160f;
|
||||||
hitEffect = Fx.hitMeltHeal;
|
hitEffect = Fx.hitMeltHeal;
|
||||||
drawSize = 420f;
|
drawSize = 420f;
|
||||||
lifetime = 160f;
|
lifetime = 160f;
|
||||||
@@ -431,6 +444,10 @@ public class UnitTypes implements ContentList{
|
|||||||
incendSpread = 5f;
|
incendSpread = 5f;
|
||||||
incendAmount = 1;
|
incendAmount = 1;
|
||||||
|
|
||||||
|
//constant healing
|
||||||
|
healPercent = 1f;
|
||||||
|
collidesTeam = true;
|
||||||
|
|
||||||
colors = new Color[]{Pal.heal.cpy().a(.2f), Pal.heal.cpy().a(.5f), Pal.heal.cpy().mul(1.2f), Color.white};
|
colors = new Color[]{Pal.heal.cpy().a(.2f), Pal.heal.cpy().a(.5f), Pal.heal.cpy().mul(1.2f), Color.white};
|
||||||
}};
|
}};
|
||||||
|
|
||||||
@@ -501,6 +518,9 @@ public class UnitTypes implements ContentList{
|
|||||||
|
|
||||||
shootEffect = Fx.greenLaserCharge;
|
shootEffect = Fx.greenLaserCharge;
|
||||||
|
|
||||||
|
healPercent = 25f;
|
||||||
|
collidesTeam = true;
|
||||||
|
|
||||||
sideAngle = 15f;
|
sideAngle = 15f;
|
||||||
sideWidth = 0f;
|
sideWidth = 0f;
|
||||||
sideLength = 0f;
|
sideLength = 0f;
|
||||||
@@ -717,7 +737,7 @@ public class UnitTypes implements ContentList{
|
|||||||
reload = 45;
|
reload = 45;
|
||||||
shake = 3f;
|
shake = 3f;
|
||||||
rotateSpeed = 2f;
|
rotateSpeed = 2f;
|
||||||
ejectEffect = Fx.shellEjectSmall;
|
ejectEffect = Fx.casing1;
|
||||||
shootSound = Sounds.shootBig;
|
shootSound = Sounds.shootBig;
|
||||||
rotate = true;
|
rotate = true;
|
||||||
occlusion = 8f;
|
occlusion = 8f;
|
||||||
@@ -783,7 +803,7 @@ public class UnitTypes implements ContentList{
|
|||||||
reload = 30;
|
reload = 30;
|
||||||
shake = 4f;
|
shake = 4f;
|
||||||
rotateSpeed = 2f;
|
rotateSpeed = 2f;
|
||||||
ejectEffect = Fx.shellEjectSmall;
|
ejectEffect = Fx.casing1;
|
||||||
shootSound = Sounds.shootBig;
|
shootSound = Sounds.shootBig;
|
||||||
rotate = true;
|
rotate = true;
|
||||||
occlusion = 12f;
|
occlusion = 12f;
|
||||||
@@ -815,7 +835,7 @@ public class UnitTypes implements ContentList{
|
|||||||
shake = 10f;
|
shake = 10f;
|
||||||
recoil = 10f;
|
recoil = 10f;
|
||||||
rotateSpeed = 1f;
|
rotateSpeed = 1f;
|
||||||
ejectEffect = Fx.shellEjectBig;
|
ejectEffect = Fx.casing3;
|
||||||
shootSound = Sounds.shootBig;
|
shootSound = Sounds.shootBig;
|
||||||
rotate = true;
|
rotate = true;
|
||||||
occlusion = 30f;
|
occlusion = 30f;
|
||||||
@@ -875,12 +895,13 @@ public class UnitTypes implements ContentList{
|
|||||||
health = 75;
|
health = 75;
|
||||||
engineOffset = 5.5f;
|
engineOffset = 5.5f;
|
||||||
range = 140f;
|
range = 140f;
|
||||||
|
targetAir = false;
|
||||||
|
|
||||||
weapons.add(new Weapon(){{
|
weapons.add(new Weapon(){{
|
||||||
y = 0f;
|
y = 0f;
|
||||||
x = 2f;
|
x = 2f;
|
||||||
reload = 13f;
|
reload = 13f;
|
||||||
ejectEffect = Fx.shellEjectSmall;
|
ejectEffect = Fx.casing1;
|
||||||
bullet = Bullets.standardCopper;
|
bullet = Bullets.standardCopper;
|
||||||
shootSound = Sounds.shoot;
|
shootSound = Sounds.shoot;
|
||||||
}});
|
}});
|
||||||
@@ -888,7 +909,7 @@ public class UnitTypes implements ContentList{
|
|||||||
|
|
||||||
horizon = new UnitType("horizon"){{
|
horizon = new UnitType("horizon"){{
|
||||||
health = 350;
|
health = 350;
|
||||||
speed = 2f;
|
speed = 1.8f;
|
||||||
accel = 0.08f;
|
accel = 0.08f;
|
||||||
drag = 0.016f;
|
drag = 0.016f;
|
||||||
flying = true;
|
flying = true;
|
||||||
@@ -910,7 +931,7 @@ public class UnitTypes implements ContentList{
|
|||||||
inaccuracy = 15f;
|
inaccuracy = 15f;
|
||||||
ignoreRotation = true;
|
ignoreRotation = true;
|
||||||
shootSound = Sounds.none;
|
shootSound = Sounds.none;
|
||||||
bullet = new BombBulletType(28f, 25f){{
|
bullet = new BombBulletType(27f, 25f){{
|
||||||
width = 10f;
|
width = 10f;
|
||||||
height = 14f;
|
height = 14f;
|
||||||
hitEffect = Fx.flakExplosion;
|
hitEffect = Fx.flakExplosion;
|
||||||
@@ -1002,7 +1023,7 @@ public class UnitTypes implements ContentList{
|
|||||||
y = 8f;
|
y = 8f;
|
||||||
x = 17f;
|
x = 17f;
|
||||||
reload = 20f;
|
reload = 20f;
|
||||||
ejectEffect = Fx.shellEjectSmall;
|
ejectEffect = Fx.casing1;
|
||||||
rotateSpeed = 8f;
|
rotateSpeed = 8f;
|
||||||
bullet = missiles;
|
bullet = missiles;
|
||||||
shootSound = Sounds.shoot;
|
shootSound = Sounds.shoot;
|
||||||
@@ -1014,7 +1035,7 @@ public class UnitTypes implements ContentList{
|
|||||||
x = 17f;
|
x = 17f;
|
||||||
reload = 35;
|
reload = 35;
|
||||||
rotateSpeed = 8f;
|
rotateSpeed = 8f;
|
||||||
ejectEffect = Fx.shellEjectSmall;
|
ejectEffect = Fx.casing1;
|
||||||
bullet = missiles;
|
bullet = missiles;
|
||||||
shootSound = Sounds.shoot;
|
shootSound = Sounds.shoot;
|
||||||
rotate = true;
|
rotate = true;
|
||||||
@@ -1027,7 +1048,7 @@ public class UnitTypes implements ContentList{
|
|||||||
reload = 12;
|
reload = 12;
|
||||||
shake = 1f;
|
shake = 1f;
|
||||||
rotateSpeed = 2f;
|
rotateSpeed = 2f;
|
||||||
ejectEffect = Fx.shellEjectSmall;
|
ejectEffect = Fx.casing1;
|
||||||
shootSound = Sounds.shootBig;
|
shootSound = Sounds.shootBig;
|
||||||
rotate = true;
|
rotate = true;
|
||||||
occlusion = 8f;
|
occlusion = 8f;
|
||||||
@@ -1108,7 +1129,7 @@ public class UnitTypes implements ContentList{
|
|||||||
y = -13f;
|
y = -13f;
|
||||||
x = 20f;
|
x = 20f;
|
||||||
reload = 12f;
|
reload = 12f;
|
||||||
ejectEffect = Fx.shellEjectSmall;
|
ejectEffect = Fx.casing1;
|
||||||
rotateSpeed = 7f;
|
rotateSpeed = 7f;
|
||||||
shake = 1f;
|
shake = 1f;
|
||||||
shootSound = Sounds.shoot;
|
shootSound = Sounds.shoot;
|
||||||
@@ -1127,7 +1148,7 @@ public class UnitTypes implements ContentList{
|
|||||||
flying = true;
|
flying = true;
|
||||||
drag = 0.06f;
|
drag = 0.06f;
|
||||||
accel = 0.12f;
|
accel = 0.12f;
|
||||||
speed = 1.1f;
|
speed = 1.5f;
|
||||||
health = 100;
|
health = 100;
|
||||||
engineSize = 1.8f;
|
engineSize = 1.8f;
|
||||||
engineOffset = 5.7f;
|
engineOffset = 5.7f;
|
||||||
@@ -1200,7 +1221,7 @@ public class UnitTypes implements ContentList{
|
|||||||
mineTier = 3;
|
mineTier = 3;
|
||||||
health = 500;
|
health = 500;
|
||||||
armor = 5f;
|
armor = 5f;
|
||||||
speed = 2.3f;
|
speed = 2.4f;
|
||||||
accel = 0.06f;
|
accel = 0.06f;
|
||||||
drag = 0.017f;
|
drag = 0.017f;
|
||||||
lowAltitude = true;
|
lowAltitude = true;
|
||||||
@@ -1290,7 +1311,7 @@ public class UnitTypes implements ContentList{
|
|||||||
collides = false;
|
collides = false;
|
||||||
|
|
||||||
healPercent = 15f;
|
healPercent = 15f;
|
||||||
splashDamage = 320f;
|
splashDamage = 240f;
|
||||||
splashDamageRadius = 120f;
|
splashDamageRadius = 120f;
|
||||||
}};
|
}};
|
||||||
}});
|
}});
|
||||||
@@ -1341,7 +1362,7 @@ public class UnitTypes implements ContentList{
|
|||||||
shootY = 4f;
|
shootY = 4f;
|
||||||
y = 1.5f;
|
y = 1.5f;
|
||||||
rotate = true;
|
rotate = true;
|
||||||
ejectEffect = Fx.shellEjectSmall;
|
ejectEffect = Fx.casing1;
|
||||||
bullet = Bullets.standardCopper;
|
bullet = Bullets.standardCopper;
|
||||||
}});
|
}});
|
||||||
|
|
||||||
@@ -1351,7 +1372,7 @@ public class UnitTypes implements ContentList{
|
|||||||
x = 0f;
|
x = 0f;
|
||||||
y = -5f;
|
y = -5f;
|
||||||
rotate = true;
|
rotate = true;
|
||||||
ejectEffect = Fx.shellEjectSmall;
|
ejectEffect = Fx.casing1;
|
||||||
bullet = new MissileBulletType(2.7f, 12, "missile"){{
|
bullet = new MissileBulletType(2.7f, 12, "missile"){{
|
||||||
width = 8f;
|
width = 8f;
|
||||||
height = 8f;
|
height = 8f;
|
||||||
@@ -1397,7 +1418,7 @@ public class UnitTypes implements ContentList{
|
|||||||
rotate = true;
|
rotate = true;
|
||||||
rotateSpeed = 5f;
|
rotateSpeed = 5f;
|
||||||
inaccuracy = 10f;
|
inaccuracy = 10f;
|
||||||
ejectEffect = Fx.shellEjectSmall;
|
ejectEffect = Fx.casing1;
|
||||||
bullet = Bullets.flakLead;
|
bullet = Bullets.flakLead;
|
||||||
}});
|
}});
|
||||||
|
|
||||||
@@ -1409,7 +1430,7 @@ public class UnitTypes implements ContentList{
|
|||||||
inaccuracy = 2f;
|
inaccuracy = 2f;
|
||||||
rotateSpeed = 2f;
|
rotateSpeed = 2f;
|
||||||
shake = 1.5f;
|
shake = 1.5f;
|
||||||
ejectEffect = Fx.shellEjectMedium;
|
ejectEffect = Fx.casing2;
|
||||||
bullet = Bullets.artilleryIncendiary;
|
bullet = Bullets.artilleryIncendiary;
|
||||||
}});
|
}});
|
||||||
}};
|
}};
|
||||||
@@ -1445,7 +1466,7 @@ public class UnitTypes implements ContentList{
|
|||||||
|
|
||||||
shots = 1;
|
shots = 1;
|
||||||
inaccuracy = 3f;
|
inaccuracy = 3f;
|
||||||
ejectEffect = Fx.shellEjectBig;
|
ejectEffect = Fx.casing3;
|
||||||
|
|
||||||
bullet = new ArtilleryBulletType(3.2f, 12){{
|
bullet = new ArtilleryBulletType(3.2f, 12){{
|
||||||
trailMult = 0.8f;
|
trailMult = 0.8f;
|
||||||
@@ -1546,7 +1567,7 @@ public class UnitTypes implements ContentList{
|
|||||||
xRand = 8f;
|
xRand = 8f;
|
||||||
shotDelay = 1f;
|
shotDelay = 1f;
|
||||||
|
|
||||||
bullet = new MissileBulletType(4.2f, 30){{
|
bullet = new MissileBulletType(4.2f, 40){{
|
||||||
homingPower = 0.12f;
|
homingPower = 0.12f;
|
||||||
width = 8f;
|
width = 8f;
|
||||||
height = 8f;
|
height = 8f;
|
||||||
@@ -1554,8 +1575,8 @@ public class UnitTypes implements ContentList{
|
|||||||
drag = -0.003f;
|
drag = -0.003f;
|
||||||
homingRange = 80f;
|
homingRange = 80f;
|
||||||
keepVelocity = false;
|
keepVelocity = false;
|
||||||
splashDamageRadius = 30f;
|
splashDamageRadius = 35f;
|
||||||
splashDamage = 35f;
|
splashDamage = 45f;
|
||||||
lifetime = 56f;
|
lifetime = 56f;
|
||||||
trailColor = Pal.bulletYellowBack;
|
trailColor = Pal.bulletYellowBack;
|
||||||
backColor = Pal.bulletYellowBack;
|
backColor = Pal.bulletYellowBack;
|
||||||
@@ -1568,7 +1589,7 @@ public class UnitTypes implements ContentList{
|
|||||||
}});
|
}});
|
||||||
|
|
||||||
weapons.add(new Weapon("large-bullet-mount"){{
|
weapons.add(new Weapon("large-bullet-mount"){{
|
||||||
reload = 80f;
|
reload = 60f;
|
||||||
cooldownTime = 90f;
|
cooldownTime = 90f;
|
||||||
x = 70f/4f;
|
x = 70f/4f;
|
||||||
y = -66f/4f;
|
y = -66f/4f;
|
||||||
@@ -1578,12 +1599,12 @@ public class UnitTypes implements ContentList{
|
|||||||
shake = 2f;
|
shake = 2f;
|
||||||
recoil = 3f;
|
recoil = 3f;
|
||||||
occlusion = 12f;
|
occlusion = 12f;
|
||||||
ejectEffect = Fx.shellEjectBig;
|
ejectEffect = Fx.casing3;
|
||||||
|
|
||||||
shots = 3;
|
shots = 3;
|
||||||
shotDelay = 4f;
|
shotDelay = 4f;
|
||||||
inaccuracy = 1f;
|
inaccuracy = 1f;
|
||||||
bullet = new BasicBulletType(7f, 50){{
|
bullet = new BasicBulletType(7f, 55){{
|
||||||
width = 13f;
|
width = 13f;
|
||||||
height = 19f;
|
height = 19f;
|
||||||
shootEffect = Fx.shootBig;
|
shootEffect = Fx.shootBig;
|
||||||
@@ -1649,7 +1670,7 @@ public class UnitTypes implements ContentList{
|
|||||||
isCounted = false;
|
isCounted = false;
|
||||||
|
|
||||||
flying = true;
|
flying = true;
|
||||||
mineSpeed = 6f;
|
mineSpeed = 6.5f;
|
||||||
mineTier = 1;
|
mineTier = 1;
|
||||||
buildSpeed = 0.5f;
|
buildSpeed = 0.5f;
|
||||||
drag = 0.05f;
|
drag = 0.05f;
|
||||||
@@ -1735,7 +1756,7 @@ public class UnitTypes implements ContentList{
|
|||||||
itemCapacity = 70;
|
itemCapacity = 70;
|
||||||
health = 220f;
|
health = 220f;
|
||||||
engineOffset = 6f;
|
engineOffset = 6f;
|
||||||
hitSize = 10f;
|
hitSize = 11f;
|
||||||
commandLimit = 7;
|
commandLimit = 7;
|
||||||
|
|
||||||
weapons.add(new Weapon("small-mount-weapon"){{
|
weapons.add(new Weapon("small-mount-weapon"){{
|
||||||
@@ -1770,6 +1791,7 @@ public class UnitTypes implements ContentList{
|
|||||||
health = 1;
|
health = 1;
|
||||||
rotateSpeed = 360f;
|
rotateSpeed = 360f;
|
||||||
itemCapacity = 0;
|
itemCapacity = 0;
|
||||||
|
commandLimit = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ public class Weathers implements ContentList{
|
|||||||
@Override
|
@Override
|
||||||
public void load(){
|
public void load(){
|
||||||
snow = new ParticleWeather("snow"){{
|
snow = new ParticleWeather("snow"){{
|
||||||
|
particleRegion = "particle";
|
||||||
sizeMax = 13f;
|
sizeMax = 13f;
|
||||||
sizeMin = 2.6f;
|
sizeMin = 2.6f;
|
||||||
density = 1200f;
|
density = 1200f;
|
||||||
@@ -32,6 +33,7 @@ public class Weathers implements ContentList{
|
|||||||
|
|
||||||
sandstorm = new ParticleWeather("sandstorm"){{
|
sandstorm = new ParticleWeather("sandstorm"){{
|
||||||
color = noiseColor = Color.valueOf("f7cba4");
|
color = noiseColor = Color.valueOf("f7cba4");
|
||||||
|
particleRegion = "particle";
|
||||||
drawNoise = true;
|
drawNoise = true;
|
||||||
useWindVector = true;
|
useWindVector = true;
|
||||||
sizeMax = 140f;
|
sizeMax = 140f;
|
||||||
@@ -39,7 +41,7 @@ public class Weathers implements ContentList{
|
|||||||
minAlpha = 0f;
|
minAlpha = 0f;
|
||||||
maxAlpha = 0.2f;
|
maxAlpha = 0.2f;
|
||||||
density = 1500f;
|
density = 1500f;
|
||||||
baseSpeed = 6.1f;
|
baseSpeed = 5.4f;
|
||||||
attrs.set(Attribute.light, -0.1f);
|
attrs.set(Attribute.light, -0.1f);
|
||||||
attrs.set(Attribute.water, -0.1f);
|
attrs.set(Attribute.water, -0.1f);
|
||||||
opacityMultiplier = 0.8f;
|
opacityMultiplier = 0.8f;
|
||||||
@@ -48,7 +50,7 @@ public class Weathers implements ContentList{
|
|||||||
|
|
||||||
sporestorm = new ParticleWeather("sporestorm"){{
|
sporestorm = new ParticleWeather("sporestorm"){{
|
||||||
color = noiseColor = Color.valueOf("7457ce");
|
color = noiseColor = Color.valueOf("7457ce");
|
||||||
particleRegion = "circle";
|
particleRegion = "circle-small";
|
||||||
drawNoise = true;
|
drawNoise = true;
|
||||||
statusGround = false;
|
statusGround = false;
|
||||||
useWindVector = true;
|
useWindVector = true;
|
||||||
|
|||||||
@@ -181,6 +181,12 @@ public class Control implements ApplicationListener, Loadable{
|
|||||||
Time.run(Fx.coreLand.lifetime, () -> {
|
Time.run(Fx.coreLand.lifetime, () -> {
|
||||||
Fx.launch.at(core);
|
Fx.launch.at(core);
|
||||||
Effect.shake(5f, 5f, core);
|
Effect.shake(5f, 5f, core);
|
||||||
|
|
||||||
|
if(state.isCampaign()){
|
||||||
|
ui.announce("[accent]" + state.rules.sector.name() + "\n" +
|
||||||
|
(state.rules.sector.info.resources.any() ? "[lightgray]" + bundle.get("sectors.resources") + "[white] " +
|
||||||
|
state.rules.sector.info.resources.toString(" ", u -> u.emoji()) : ""), 5);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -264,7 +270,6 @@ public class Control implements ApplicationListener, Loadable{
|
|||||||
slot.load();
|
slot.load();
|
||||||
slot.setAutosave(true);
|
slot.setAutosave(true);
|
||||||
state.rules.sector = sector;
|
state.rules.sector = sector;
|
||||||
state.secinfo = state.rules.sector.info;
|
|
||||||
|
|
||||||
//if there is no base, simulate a new game and place the right loadout at the spawn position
|
//if there is no base, simulate a new game and place the right loadout at the spawn position
|
||||||
if(state.rules.defaultTeam.cores().isEmpty()){
|
if(state.rules.defaultTeam.cores().isEmpty()){
|
||||||
@@ -282,8 +287,12 @@ public class Control implements ApplicationListener, Loadable{
|
|||||||
//reset wave so things are more fair
|
//reset wave so things are more fair
|
||||||
state.wave = 1;
|
state.wave = 1;
|
||||||
|
|
||||||
|
//reset win wave??
|
||||||
|
state.rules.winWave = sector.preset != null ? sector.preset.captureWave : 40;
|
||||||
|
|
||||||
//kill all units, since they should be dead anwyay
|
//kill all units, since they should be dead anwyay
|
||||||
Groups.unit.clear();
|
Groups.unit.clear();
|
||||||
|
Groups.fire.clear();
|
||||||
|
|
||||||
Tile spawn = world.tile(sector.info.spawnPosition);
|
Tile spawn = world.tile(sector.info.spawnPosition);
|
||||||
Schematics.placeLaunchLoadout(spawn.x, spawn.y);
|
Schematics.placeLaunchLoadout(spawn.x, spawn.y);
|
||||||
@@ -311,8 +320,8 @@ public class Control implements ApplicationListener, Loadable{
|
|||||||
world.loadSector(sector);
|
world.loadSector(sector);
|
||||||
state.rules.sector = sector;
|
state.rules.sector = sector;
|
||||||
//assign origin when launching
|
//assign origin when launching
|
||||||
state.secinfo.origin = origin;
|
sector.info.origin = origin;
|
||||||
state.secinfo.destination = origin;
|
sector.info.destination = origin;
|
||||||
logic.play();
|
logic.play();
|
||||||
control.saves.saveSector(sector);
|
control.saves.saveSector(sector);
|
||||||
Events.fire(Trigger.newGame);
|
Events.fire(Trigger.newGame);
|
||||||
@@ -403,13 +412,15 @@ public class Control implements ApplicationListener, Loadable{
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void pause(){
|
public void pause(){
|
||||||
wasPaused = state.is(State.paused);
|
if(settings.getBool("backgroundpause", true)){
|
||||||
if(state.is(State.playing)) state.set(State.paused);
|
wasPaused = state.is(State.paused);
|
||||||
|
if(state.is(State.playing)) state.set(State.paused);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void resume(){
|
public void resume(){
|
||||||
if(state.is(State.paused) && !wasPaused){
|
if(state.is(State.paused) && !wasPaused && settings.getBool("backgroundpause", true)){
|
||||||
state.set(State.playing);
|
state.set(State.playing);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,8 +26,6 @@ public class GameState{
|
|||||||
public GameStats stats = new GameStats();
|
public GameStats stats = new GameStats();
|
||||||
/** Global attributes of the environment, calculated by weather. */
|
/** Global attributes of the environment, calculated by weather. */
|
||||||
public Attributes envAttrs = new Attributes();
|
public Attributes envAttrs = new Attributes();
|
||||||
/** Sector information. Only valid in the campaign. */
|
|
||||||
public SectorInfo secinfo = new SectorInfo();
|
|
||||||
/** Team data. Gets reset every new game. */
|
/** Team data. Gets reset every new game. */
|
||||||
public Teams teams = new Teams();
|
public Teams teams = new Teams();
|
||||||
/** Number of enemies in the game; only used clientside in servers. */
|
/** Number of enemies in the game; only used clientside in servers. */
|
||||||
|
|||||||
@@ -55,15 +55,14 @@ public class Logic implements ApplicationListener{
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
Events.on(LaunchItemEvent.class, e -> state.secinfo.handleItemExport(e.stack));
|
|
||||||
|
|
||||||
//when loading a 'damaged' sector, propagate the damage
|
//when loading a 'damaged' sector, propagate the damage
|
||||||
Events.on(SaveLoadEvent.class, e -> {
|
Events.on(SaveLoadEvent.class, e -> {
|
||||||
if(state.isCampaign()){
|
if(state.isCampaign()){
|
||||||
state.secinfo.write();
|
SectorInfo info = state.rules.sector.info;
|
||||||
|
info.write();
|
||||||
|
|
||||||
//how much wave time has passed
|
//how much wave time has passed
|
||||||
int wavesPassed = state.secinfo.wavesPassed;
|
int wavesPassed = info.wavesPassed;
|
||||||
|
|
||||||
//wave has passed, remove all enemies, they are assumed to be dead
|
//wave has passed, remove all enemies, they are assumed to be dead
|
||||||
if(wavesPassed > 0){
|
if(wavesPassed > 0){
|
||||||
@@ -84,10 +83,10 @@ public class Logic implements ApplicationListener{
|
|||||||
}
|
}
|
||||||
|
|
||||||
//reset values
|
//reset values
|
||||||
state.secinfo.damage = 0f;
|
info.damage = 0f;
|
||||||
state.secinfo.wavesPassed = 0;
|
info.wavesPassed = 0;
|
||||||
state.secinfo.hasCore = true;
|
info.hasCore = true;
|
||||||
state.secinfo.secondsPassed = 0;
|
info.secondsPassed = 0;
|
||||||
|
|
||||||
state.rules.sector.saveInfo();
|
state.rules.sector.saveInfo();
|
||||||
}
|
}
|
||||||
@@ -181,18 +180,8 @@ public class Logic implements ApplicationListener{
|
|||||||
//if there's a "win" wave and no enemies are present, win automatically
|
//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()) ||
|
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.cores().isEmpty())){
|
||||||
//the sector has been conquered - waves get disabled
|
|
||||||
state.rules.waves = false;
|
|
||||||
//disable attack mode
|
|
||||||
state.rules.attackMode = false;
|
|
||||||
|
|
||||||
//fire capture event
|
Call.sectorCapture();
|
||||||
Events.fire(new SectorCaptureEvent(state.rules.sector));
|
|
||||||
|
|
||||||
//save, just in case
|
|
||||||
if(!headless){
|
|
||||||
control.saves.saveSector(state.rules.sector);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
if(!state.rules.attackMode && state.teams.playerCores().size == 0 && !state.gameOver){
|
if(!state.rules.attackMode && state.teams.playerCores().size == 0 && !state.gameOver){
|
||||||
@@ -228,6 +217,24 @@ public class Logic implements ApplicationListener{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Remote(called = Loc.server)
|
||||||
|
public static void sectorCapture(){
|
||||||
|
//the sector has been conquered - waves get disabled
|
||||||
|
state.rules.waves = false;
|
||||||
|
//disable attack mode
|
||||||
|
state.rules.attackMode = false;
|
||||||
|
|
||||||
|
if(state.rules.sector == null) return;
|
||||||
|
|
||||||
|
//fire capture event
|
||||||
|
Events.fire(new SectorCaptureEvent(state.rules.sector));
|
||||||
|
|
||||||
|
//save, just in case
|
||||||
|
if(!headless){
|
||||||
|
control.saves.saveSector(state.rules.sector);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Remote(called = Loc.both)
|
@Remote(called = Loc.both)
|
||||||
public static void updateGameOver(Team winner){
|
public static void updateGameOver(Team winner){
|
||||||
state.gameOver = true;
|
state.gameOver = true;
|
||||||
@@ -246,7 +253,7 @@ public class Logic implements ApplicationListener{
|
|||||||
if(!(content instanceof UnlockableContent u)) return;
|
if(!(content instanceof UnlockableContent u)) return;
|
||||||
|
|
||||||
state.rules.researched.add(u.name);
|
state.rules.researched.add(u.name);
|
||||||
ui.hudfrag.showUnlock(u);
|
Events.fire(new UnlockEvent(u));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -273,7 +280,7 @@ public class Logic implements ApplicationListener{
|
|||||||
state.teams.updateTeamStats();
|
state.teams.updateTeamStats();
|
||||||
|
|
||||||
if(state.isCampaign()){
|
if(state.isCampaign()){
|
||||||
state.secinfo.update();
|
state.rules.sector.info.update();
|
||||||
}
|
}
|
||||||
|
|
||||||
if(state.isCampaign()){
|
if(state.isCampaign()){
|
||||||
|
|||||||
@@ -293,6 +293,13 @@ public class NetClient implements ApplicationListener{
|
|||||||
setHudText(message);
|
setHudText(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Remote(variants = Variant.both)
|
||||||
|
public static void announce(String message){
|
||||||
|
if(message == null) return;
|
||||||
|
|
||||||
|
ui.announce(message);
|
||||||
|
}
|
||||||
|
|
||||||
@Remote(variants = Variant.both)
|
@Remote(variants = Variant.both)
|
||||||
public static void infoMessage(String message){
|
public static void infoMessage(String message){
|
||||||
if(message == null) return;
|
if(message == null) return;
|
||||||
@@ -358,7 +365,6 @@ public class NetClient implements ApplicationListener{
|
|||||||
|
|
||||||
@Remote(variants = Variant.one)
|
@Remote(variants = Variant.one)
|
||||||
public static void setPosition(float x, float y){
|
public static void setPosition(float x, float y){
|
||||||
player.unit().set(x, y);
|
|
||||||
player.set(x, y);
|
player.set(x, y);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -27,10 +27,11 @@ public class Renderer implements ApplicationListener{
|
|||||||
public final Pixelator pixelator = new Pixelator();
|
public final Pixelator pixelator = new Pixelator();
|
||||||
public PlanetRenderer planets;
|
public PlanetRenderer planets;
|
||||||
|
|
||||||
|
public @Nullable Bloom bloom;
|
||||||
public FrameBuffer effectBuffer = new FrameBuffer();
|
public FrameBuffer effectBuffer = new FrameBuffer();
|
||||||
public float laserOpacity = 1f;
|
public float laserOpacity = 1f;
|
||||||
|
|
||||||
private Bloom bloom;
|
//TODO unused
|
||||||
private FxProcessor fx = new FxProcessor();
|
private FxProcessor fx = new FxProcessor();
|
||||||
private Color clearColor = new Color(0f, 0f, 0f, 1f);
|
private Color clearColor = new Color(0f, 0f, 0f, 1f);
|
||||||
private float targetscale = Scl.scl(4);
|
private float targetscale = Scl.scl(4);
|
||||||
@@ -53,7 +54,7 @@ public class Renderer implements ApplicationListener{
|
|||||||
public void init(){
|
public void init(){
|
||||||
planets = new PlanetRenderer();
|
planets = new PlanetRenderer();
|
||||||
|
|
||||||
if(settings.getBool("bloom")){
|
if(settings.getBool("bloom", !ios)){
|
||||||
setupBloom();
|
setupBloom();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -120,10 +121,6 @@ public class Renderer implements ApplicationListener{
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void resize(int width, int height){
|
public void resize(int width, int height){
|
||||||
if(settings.getBool("bloom")){
|
|
||||||
setupBloom();
|
|
||||||
}
|
|
||||||
|
|
||||||
fx.resize(width, height);
|
fx.resize(width, height);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -239,6 +236,7 @@ public class Renderer implements ApplicationListener{
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(bloom != null){
|
if(bloom != null){
|
||||||
|
bloom.resize(graphics.getWidth() / 4, graphics.getHeight() / 4);
|
||||||
Draw.draw(Layer.bullet - 0.01f, bloom::capture);
|
Draw.draw(Layer.bullet - 0.01f, bloom::capture);
|
||||||
Draw.draw(Layer.effect + 0.01f, bloom::render);
|
Draw.draw(Layer.effect + 0.01f, bloom::render);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -328,20 +328,21 @@ public class UI implements ApplicationListener, Loadable{
|
|||||||
|
|
||||||
/** Shows a label in the world. This label is behind everything. Does not fade. */
|
/** Shows a label in the world. This label is behind everything. Does not fade. */
|
||||||
public void showLabel(String info, float duration, float worldx, float worldy){
|
public void showLabel(String info, float duration, float worldx, float worldy){
|
||||||
Table table = new Table();
|
var table = new Table(Styles.black3).margin(4);
|
||||||
table.setFillParent(true);
|
|
||||||
table.touchable = Touchable.disabled;
|
table.touchable = Touchable.disabled;
|
||||||
table.update(() -> {
|
table.update(() -> {
|
||||||
if(state.isMenu()) table.remove();
|
if(state.isMenu()) table.remove();
|
||||||
|
Vec2 v = Core.camera.project(worldx, worldy);
|
||||||
|
table.setPosition(v.x, v.y, Align.center);
|
||||||
});
|
});
|
||||||
table.actions(Actions.delay(duration), Actions.remove());
|
table.actions(Actions.delay(duration), Actions.remove());
|
||||||
table.align(Align.center).table(Styles.black3, t -> t.margin(4).add(info).style(Styles.outlineLabel)).update(t -> {
|
table.add(info).style(Styles.outlineLabel);
|
||||||
Vec2 v = Core.camera.project(worldx, worldy);
|
table.pack();
|
||||||
t.setPosition(v.x, v.y, Align.center);
|
|
||||||
});
|
|
||||||
table.act(0f);
|
table.act(0f);
|
||||||
//make sure it's at the back
|
//make sure it's at the back
|
||||||
Core.scene.root.addChildAt(0, table);
|
Core.scene.root.addChildAt(0, table);
|
||||||
|
|
||||||
|
table.getChildren().first().act(0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void showInfo(String info){
|
public void showInfo(String info){
|
||||||
@@ -378,6 +379,7 @@ public class UI implements ApplicationListener, Loadable{
|
|||||||
cont.add(text).pad(2f).growX().wrap().get().setAlignment(Align.center);
|
cont.add(text).pad(2f).growX().wrap().get().setAlignment(Align.center);
|
||||||
cont.row();
|
cont.row();
|
||||||
cont.button("@ok", this::hide).size(120, 50).pad(4);
|
cont.button("@ok", this::hide).size(120, 50).pad(4);
|
||||||
|
closeOnBack();
|
||||||
}}.show();
|
}}.show();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -388,7 +390,7 @@ public class UI implements ApplicationListener, Loadable{
|
|||||||
public void showException(String text, Throwable exc){
|
public void showException(String text, Throwable exc){
|
||||||
loadfrag.hide();
|
loadfrag.hide();
|
||||||
new Dialog(""){{
|
new Dialog(""){{
|
||||||
String message = Strings.getFinalMesage(exc);
|
String message = Strings.getFinalMessage(exc);
|
||||||
|
|
||||||
setFillParent(true);
|
setFillParent(true);
|
||||||
cont.margin(15);
|
cont.margin(15);
|
||||||
@@ -405,6 +407,7 @@ public class UI implements ApplicationListener, Loadable{
|
|||||||
cont.button("@ok", this::hide).size(110, 50).fillX().left();
|
cont.button("@ok", this::hide).size(110, 50).fillX().left();
|
||||||
cont.row();
|
cont.row();
|
||||||
cont.add(col).colspan(2).pad(2);
|
cont.add(col).colspan(2).pad(2);
|
||||||
|
closeOnBack();
|
||||||
}}.show();
|
}}.show();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -420,6 +423,7 @@ public class UI implements ApplicationListener, Loadable{
|
|||||||
cont.add(text).width(400f).wrap().get().setAlignment(align, align);
|
cont.add(text).width(400f).wrap().get().setAlignment(align, align);
|
||||||
cont.row();
|
cont.row();
|
||||||
buttons.button("@ok", this::hide).size(110, 50).pad(4);
|
buttons.button("@ok", this::hide).size(110, 50).pad(4);
|
||||||
|
closeOnBack();
|
||||||
}}.show();
|
}}.show();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -427,6 +431,7 @@ public class UI implements ApplicationListener, Loadable{
|
|||||||
new Dialog(titleText){{
|
new Dialog(titleText){{
|
||||||
cont.margin(15).add(text).width(400f).wrap().left().get().setAlignment(Align.left, Align.left);
|
cont.margin(15).add(text).width(400f).wrap().left().get().setAlignment(Align.left, Align.left);
|
||||||
buttons.button("@ok", this::hide).size(110, 50).pad(4);
|
buttons.button("@ok", this::hide).size(110, 50).pad(4);
|
||||||
|
closeOnBack();
|
||||||
}}.show();
|
}}.show();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -436,6 +441,7 @@ public class UI implements ApplicationListener, Loadable{
|
|||||||
titleTable.row();
|
titleTable.row();
|
||||||
titleTable.image().color(Pal.accent).height(3f).growX().pad(2f);
|
titleTable.image().color(Pal.accent).height(3f).growX().pad(2f);
|
||||||
buttons.button("@ok", this::hide).size(110, 50).pad(4);
|
buttons.button("@ok", this::hide).size(110, 50).pad(4);
|
||||||
|
closeOnBack();
|
||||||
}}.show();
|
}}.show();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -487,13 +493,19 @@ public class UI implements ApplicationListener, Loadable{
|
|||||||
dialog.show();
|
dialog.show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Display text in the middle of the screen, then fade out. */
|
||||||
public void announce(String text){
|
public void announce(String text){
|
||||||
Table t = new Table();
|
announce(text, 3);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Display text in the middle of the screen, then fade out. */
|
||||||
|
public void announce(String text, float duration){
|
||||||
|
Table t = new Table(Styles.black3);
|
||||||
t.touchable = Touchable.disabled;
|
t.touchable = Touchable.disabled;
|
||||||
t.background(Styles.black3).margin(8f)
|
t.margin(8f).add(text).style(Styles.outlineLabel).labelAlign(Align.center);
|
||||||
.add(text).style(Styles.outlineLabel).labelAlign(Align.center);
|
|
||||||
t.update(() -> t.setPosition(Core.graphics.getWidth()/2f, Core.graphics.getHeight()/2f, Align.center));
|
t.update(() -> t.setPosition(Core.graphics.getWidth()/2f, Core.graphics.getHeight()/2f, Align.center));
|
||||||
t.actions(Actions.fadeOut(3, Interp.pow4In), Actions.remove());
|
t.actions(Actions.fadeOut(duration, Interp.pow4In), Actions.remove());
|
||||||
|
t.pack();
|
||||||
Core.scene.add(t);
|
Core.scene.add(t);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -200,8 +200,8 @@ public class World{
|
|||||||
|
|
||||||
for(Tile tile : tiles){
|
for(Tile tile : tiles){
|
||||||
//remove legacy blocks; they need to stop existing
|
//remove legacy blocks; they need to stop existing
|
||||||
if(tile.block() instanceof LegacyBlock){
|
if(tile.block() instanceof LegacyBlock l){
|
||||||
tile.remove();
|
l.removeSelf(tile);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -20,10 +20,12 @@ public abstract class UnlockableContent extends MappableContent{
|
|||||||
public Stats stats = new Stats();
|
public Stats stats = new Stats();
|
||||||
/** Localized, formal name. Never null. Set to internal name if not found in bundle. */
|
/** Localized, formal name. Never null. Set to internal name if not found in bundle. */
|
||||||
public String localizedName;
|
public String localizedName;
|
||||||
/** Localized description. May be null. */
|
/** Localized description & details. May be null. */
|
||||||
public @Nullable String description;
|
public @Nullable String description, details;
|
||||||
/** Whether this content is always unlocked in the tech tree. */
|
/** Whether this content is always unlocked in the tech tree. */
|
||||||
public boolean alwaysUnlocked = false;
|
public boolean alwaysUnlocked = false;
|
||||||
|
/** Special logic icon ID. */
|
||||||
|
public int iconId = 0;
|
||||||
/** Icons by Cicon ID.*/
|
/** Icons by Cicon ID.*/
|
||||||
protected TextureRegion[] cicons = new TextureRegion[Cicon.all.length];
|
protected TextureRegion[] cicons = new TextureRegion[Cicon.all.length];
|
||||||
/** Unlock state. Loaded from settings. Do not modify outside of the constructor. */
|
/** Unlock state. Loaded from settings. Do not modify outside of the constructor. */
|
||||||
@@ -34,6 +36,7 @@ public abstract class UnlockableContent extends MappableContent{
|
|||||||
|
|
||||||
this.localizedName = Core.bundle.get(getContentType() + "." + this.name + ".name", this.name);
|
this.localizedName = Core.bundle.get(getContentType() + "." + this.name + ".name", this.name);
|
||||||
this.description = Core.bundle.getOrNull(getContentType() + "." + this.name + ".description");
|
this.description = Core.bundle.getOrNull(getContentType() + "." + this.name + ".description");
|
||||||
|
this.details = Core.bundle.getOrNull(getContentType() + "." + this.name + ".details");
|
||||||
this.unlocked = Core.settings != null && Core.settings.getBool(this.name + "-unlocked", false);
|
this.unlocked = Core.settings != null && Core.settings.getBool(this.name + "-unlocked", false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -49,7 +52,7 @@ public abstract class UnlockableContent extends MappableContent{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Intializes stats on demand. Should only be called once. Only called before something is displayed. */
|
/** Initializes stats on demand. Should only be called once. Only called before something is displayed. */
|
||||||
public void setStats(){
|
public void setStats(){
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -123,7 +126,7 @@ public abstract class UnlockableContent extends MappableContent{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean unlocked(){
|
public boolean unlocked(){
|
||||||
if(net.client()) return state.rules.researched.contains(name);
|
if(net != null && net.client()) return state.rules.researched.contains(name);
|
||||||
return unlocked || alwaysUnlocked;
|
return unlocked || alwaysUnlocked;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ public class DrawOperation{
|
|||||||
private MapEditor editor;
|
private MapEditor editor;
|
||||||
private LongSeq array = new LongSeq();
|
private LongSeq array = new LongSeq();
|
||||||
|
|
||||||
public DrawOperation(MapEditor editor) {
|
public DrawOperation(MapEditor editor){
|
||||||
this.editor = editor;
|
this.editor = editor;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -37,7 +37,7 @@ public class DrawOperation{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateTile(int i) {
|
private void updateTile(int i){
|
||||||
long l = array.get(i);
|
long l = array.get(i);
|
||||||
array.set(i, TileOp.get(TileOp.x(l), TileOp.y(l), TileOp.type(l), getTile(editor.tile(TileOp.x(l), TileOp.y(l)), TileOp.type(l))));
|
array.set(i, TileOp.get(TileOp.x(l), TileOp.y(l), TileOp.type(l), getTile(editor.tile(TileOp.x(l), TileOp.y(l)), TileOp.type(l))));
|
||||||
setTile(editor.tile(TileOp.x(l), TileOp.y(l)), TileOp.type(l), TileOp.value(l));
|
setTile(editor.tile(TileOp.x(l), TileOp.y(l)), TileOp.type(l), TileOp.value(l));
|
||||||
|
|||||||
@@ -50,9 +50,19 @@ public class EditorTile extends Tile{
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
op(OpType.block, block.id);
|
if(!isCenter()){
|
||||||
if(rotation != 0) op(OpType.rotation, (byte)rotation);
|
EditorTile cen = (EditorTile)build.tile;
|
||||||
if(team != Team.derelict) op(OpType.team, (byte)team.id);
|
cen.op(OpType.rotation, (byte)build.rotation);
|
||||||
|
cen.op(OpType.team, (byte)build.team.id);
|
||||||
|
cen.op(OpType.block, block.id);
|
||||||
|
update();
|
||||||
|
}else{
|
||||||
|
if(build != null) op(OpType.rotation, (byte)build.rotation);
|
||||||
|
if(build != null) op(OpType.team, (byte)build.team.id);
|
||||||
|
op(OpType.block, block.id);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
super.setBlock(type, team, rotation);
|
super.setBlock(type, team, rotation);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -137,7 +137,7 @@ public class MapEditor{
|
|||||||
|
|
||||||
if(isFloor){
|
if(isFloor){
|
||||||
tile.setFloor(drawBlock.asFloor());
|
tile.setFloor(drawBlock.asFloor());
|
||||||
}else{
|
}else if(!(tile.block().isMultiblock() && !drawBlock.isMultiblock())){
|
||||||
if(drawBlock.rotate && tile.build != null && tile.build.rotation != rotation){
|
if(drawBlock.rotate && tile.build != null && tile.build.rotation != rotation){
|
||||||
addTileOp(TileOp.get(tile.x, tile.y, (byte)OpType.rotation.ordinal(), (byte)rotation));
|
addTileOp(TileOp.get(tile.x, tile.y, (byte)OpType.rotation.ordinal(), (byte)rotation));
|
||||||
}
|
}
|
||||||
@@ -157,7 +157,7 @@ public class MapEditor{
|
|||||||
boolean hasOverlap(int x, int y){
|
boolean hasOverlap(int x, int y){
|
||||||
Tile tile = world.tile(x, y);
|
Tile tile = world.tile(x, y);
|
||||||
//allow direct replacement of blocks of the same size
|
//allow direct replacement of blocks of the same size
|
||||||
if(tile != null && tile.isCenter() && tile.block() != drawBlock && tile.block().size == drawBlock.size){
|
if(tile != null && tile.isCenter() && tile.block() != drawBlock && tile.block().size == drawBlock.size && tile.x == x && tile.y == y){
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -168,12 +168,10 @@ public class MapEditor{
|
|||||||
for(int dy = 0; dy < drawBlock.size; dy++){
|
for(int dy = 0; dy < drawBlock.size; dy++){
|
||||||
int worldx = dx + offsetx + x;
|
int worldx = dx + offsetx + x;
|
||||||
int worldy = dy + offsety + y;
|
int worldy = dy + offsety + y;
|
||||||
if(!(worldx == x && worldy == y)){
|
Tile other = world.tile(worldx, worldy);
|
||||||
Tile other = world.tile(worldx, worldy);
|
|
||||||
|
|
||||||
if(other != null && other.block().isMultiblock()){
|
if(other != null && other.block().isMultiblock()){
|
||||||
return true;
|
return true;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -570,7 +570,7 @@ public class MapEditorDialog extends Dialog implements Disposable{
|
|||||||
}).growX().top();
|
}).growX().top();
|
||||||
}
|
}
|
||||||
|
|
||||||
if(addCliffButton){
|
if(experimental){
|
||||||
mid.row();
|
mid.row();
|
||||||
|
|
||||||
mid.table(t -> {
|
mid.table(t -> {
|
||||||
|
|||||||
@@ -54,6 +54,11 @@ public class MapGenerateDialog extends BaseDialog{
|
|||||||
protected void changeBuild(Team team, Prov<Building> entityprov, int rotation){
|
protected void changeBuild(Team team, Prov<Building> entityprov, int rotation){
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setBlock(Block type, Team team, int rotation, Prov<Building> entityprov){
|
||||||
|
this.block = type;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
/** @param applied whether or not to use the applied in-game mode. */
|
/** @param applied whether or not to use the applied in-game mode. */
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ public class WaveGraph extends Table{
|
|||||||
for(int i = 0; i < values.length; i++){
|
for(int i = 0; i < values.length; i++){
|
||||||
float sum = 0;
|
float sum = 0;
|
||||||
for(UnitType type : used.orderedItems()){
|
for(UnitType type : used.orderedItems()){
|
||||||
sum += type.health * values[i][type.id];
|
sum += (type.health) * values[i][type.id];
|
||||||
}
|
}
|
||||||
|
|
||||||
float cx = graphX + i*spacing, cy = 2f + graphY + sum * (graphH - 4f) / maxHealth;
|
float cx = graphX + i*spacing, cy = 2f + graphY + sum * (graphH - 4f) / maxHealth;
|
||||||
@@ -160,7 +160,7 @@ public class WaveGraph extends Table{
|
|||||||
used.add(spawn.type);
|
used.add(spawn.type);
|
||||||
}
|
}
|
||||||
max = Math.max(max, values[index][spawn.type.id]);
|
max = Math.max(max, values[index][spawn.type.id]);
|
||||||
healthsum += spawned * spawn.type.health;
|
healthsum += spawned * (spawn.type.health);
|
||||||
sum += spawned;
|
sum += spawned;
|
||||||
}
|
}
|
||||||
maxTotal = Math.max(maxTotal, sum);
|
maxTotal = Math.max(maxTotal, sum);
|
||||||
|
|||||||
@@ -34,9 +34,7 @@ public class WaveInfoDialog extends BaseDialog{
|
|||||||
super("@waves.title");
|
super("@waves.title");
|
||||||
|
|
||||||
shown(this::setup);
|
shown(this::setup);
|
||||||
hidden(() -> {
|
hidden(() -> state.rules.spawns = groups);
|
||||||
state.rules.spawns = groups;
|
|
||||||
});
|
|
||||||
|
|
||||||
addCloseListener();
|
addCloseListener();
|
||||||
|
|
||||||
@@ -66,7 +64,7 @@ public class WaveInfoDialog extends BaseDialog{
|
|||||||
}).disabled(b -> Core.app.getClipboardText() == null || Core.app.getClipboardText().isEmpty());
|
}).disabled(b -> Core.app.getClipboardText() == null || Core.app.getClipboardText().isEmpty());
|
||||||
dialog.cont.row();
|
dialog.cont.row();
|
||||||
dialog.cont.button("@settings.reset", () -> ui.showConfirm("@confirm", "@settings.clear.confirm", () -> {
|
dialog.cont.button("@settings.reset", () -> ui.showConfirm("@confirm", "@settings.clear.confirm", () -> {
|
||||||
groups = JsonIO.copy(defaultWaves.get());
|
groups = JsonIO.copy(waves.get());
|
||||||
buildGroups();
|
buildGroups();
|
||||||
dialog.hide();
|
dialog.hide();
|
||||||
}));
|
}));
|
||||||
@@ -96,6 +94,14 @@ public class WaveInfoDialog extends BaseDialog{
|
|||||||
view(1);
|
view(1);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if(experimental){
|
||||||
|
buttons.button("Random", Icon.refresh, () -> {
|
||||||
|
groups.clear();
|
||||||
|
groups = Waves.generate(1f / 10f);
|
||||||
|
updateWaves();
|
||||||
|
}).width(200f);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void view(int amount){
|
void view(int amount){
|
||||||
@@ -119,7 +125,7 @@ public class WaveInfoDialog extends BaseDialog{
|
|||||||
}
|
}
|
||||||
|
|
||||||
void setup(){
|
void setup(){
|
||||||
groups = JsonIO.copy(state.rules.spawns.isEmpty() ? defaultWaves.get() : state.rules.spawns);
|
groups = JsonIO.copy(state.rules.spawns.isEmpty() ? waves.get() : state.rules.spawns);
|
||||||
|
|
||||||
cont.clear();
|
cont.clear();
|
||||||
cont.stack(new Table(Tex.clear, main -> {
|
cont.stack(new Table(Tex.clear, main -> {
|
||||||
|
|||||||
@@ -115,11 +115,17 @@ public class Damage{
|
|||||||
tr.trns(angle, length);
|
tr.trns(angle, length);
|
||||||
Intc2 collider = (cx, cy) -> {
|
Intc2 collider = (cx, cy) -> {
|
||||||
Building tile = world.build(cx, cy);
|
Building tile = world.build(cx, cy);
|
||||||
if(tile != null && !collidedBlocks.contains(tile.pos()) && tile.team != team && tile.collide(hitter)){
|
boolean collide = tile != null && collidedBlocks.add(tile.pos());
|
||||||
|
|
||||||
|
if(collide && tile.team != team && tile.collide(hitter)){
|
||||||
tile.collision(hitter);
|
tile.collision(hitter);
|
||||||
collidedBlocks.add(tile.pos());
|
|
||||||
hitter.type.hit(hitter, tile.x, tile.y);
|
hitter.type.hit(hitter, tile.x, tile.y);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//try to heal the tile
|
||||||
|
if(collide && hitter.type.collides(hitter, tile)){
|
||||||
|
hitter.type.hitTile(hitter, tile, 0f);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
if(hitter.type.collidesGround){
|
if(hitter.type.collidesGround){
|
||||||
|
|||||||
@@ -21,35 +21,46 @@ public class Effect{
|
|||||||
private static final EffectContainer container = new EffectContainer();
|
private static final EffectContainer container = new EffectContainer();
|
||||||
private static final Seq<Effect> all = new Seq<>();
|
private static final Seq<Effect> all = new Seq<>();
|
||||||
|
|
||||||
public final int id;
|
private boolean initialized;
|
||||||
public final Cons<EffectContainer> renderer;
|
|
||||||
public final float lifetime;
|
|
||||||
/** Clip size. */
|
|
||||||
public float size;
|
|
||||||
|
|
||||||
public boolean ground;
|
public final int id;
|
||||||
public float groundDuration;
|
|
||||||
|
public Cons<EffectContainer> renderer = e -> {};
|
||||||
|
public float lifetime = 50f;
|
||||||
|
/** Clip size. */
|
||||||
|
public float clip;
|
||||||
|
|
||||||
|
public float layer = Layer.effect;
|
||||||
|
public float layerDuration;
|
||||||
|
|
||||||
public Effect(float life, float clipsize, Cons<EffectContainer> renderer){
|
public Effect(float life, float clipsize, Cons<EffectContainer> renderer){
|
||||||
this.id = all.size;
|
this.id = all.size;
|
||||||
this.lifetime = life;
|
this.lifetime = life;
|
||||||
this.renderer = renderer;
|
this.renderer = renderer;
|
||||||
this.size = clipsize;
|
this.clip = clipsize;
|
||||||
all.add(this);
|
all.add(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Effect(float life, Cons<EffectContainer> renderer){
|
public Effect(float life, Cons<EffectContainer> renderer){
|
||||||
this(life,50f, renderer);
|
this(life, 50f, renderer);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Effect ground(){
|
//for custom implementations
|
||||||
ground = true;
|
public Effect(){
|
||||||
|
this.id = all.size;
|
||||||
|
all.add(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void init(){}
|
||||||
|
|
||||||
|
public Effect layer(float l){
|
||||||
|
layer = l;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Effect ground(float duration){
|
public Effect layer(float l, float duration){
|
||||||
ground = true;
|
layer = l;
|
||||||
this.groundDuration = duration;
|
this.layerDuration = duration;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -87,14 +98,18 @@ public class Effect{
|
|||||||
|
|
||||||
public float render(int id, Color color, float life, float lifetime, float rotation, float x, float y, Object data){
|
public float render(int id, Color color, float life, float lifetime, float rotation, float x, float y, Object data){
|
||||||
container.set(id, color, life, lifetime, rotation, x, y, data);
|
container.set(id, color, life, lifetime, rotation, x, y, data);
|
||||||
Draw.z(ground ? Layer.debris : Layer.effect);
|
Draw.z(layer);
|
||||||
Draw.reset();
|
Draw.reset();
|
||||||
renderer.get(container);
|
render(container);
|
||||||
Draw.reset();
|
Draw.reset();
|
||||||
|
|
||||||
return container.lifetime;
|
return container.lifetime;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void render(EffectContainer e){
|
||||||
|
renderer.get(e);
|
||||||
|
}
|
||||||
|
|
||||||
public static @Nullable Effect get(int id){
|
public static @Nullable Effect get(int id){
|
||||||
return id >= all.size || id < 0 ? null : all.get(id);
|
return id >= all.size || id < 0 ? null : all.get(id);
|
||||||
}
|
}
|
||||||
@@ -122,9 +137,14 @@ public class Effect{
|
|||||||
if(headless || effect == Fx.none) return;
|
if(headless || effect == Fx.none) return;
|
||||||
if(Core.settings.getBool("effects")){
|
if(Core.settings.getBool("effects")){
|
||||||
Rect view = Core.camera.bounds(Tmp.r1);
|
Rect view = Core.camera.bounds(Tmp.r1);
|
||||||
Rect pos = Tmp.r2.setSize(effect.size).setCenter(x, y);
|
Rect pos = Tmp.r2.setSize(effect.clip).setCenter(x, y);
|
||||||
|
|
||||||
if(view.overlaps(pos)){
|
if(view.overlaps(pos)){
|
||||||
|
if(!effect.initialized){
|
||||||
|
effect.initialized = true;
|
||||||
|
effect.init();
|
||||||
|
}
|
||||||
|
|
||||||
EffectState entity = EffectState.create();
|
EffectState entity = EffectState.create();
|
||||||
entity.effect = effect;
|
entity.effect = effect;
|
||||||
entity.rotation = rotation;
|
entity.rotation = rotation;
|
||||||
|
|||||||
@@ -11,5 +11,6 @@ class GroupDefs<G>{
|
|||||||
@GroupDef(value = Buildingc.class) G build;
|
@GroupDef(value = Buildingc.class) G build;
|
||||||
@GroupDef(value = Syncc.class, mapping = true) G sync;
|
@GroupDef(value = Syncc.class, mapping = true) G sync;
|
||||||
@GroupDef(value = Drawc.class) G draw;
|
@GroupDef(value = Drawc.class) G draw;
|
||||||
|
@GroupDef(value = Firec.class) G fire;
|
||||||
@GroupDef(value = WeatherStatec.class) G weather;
|
@GroupDef(value = WeatherStatec.class) G weather;
|
||||||
}
|
}
|
||||||
|
|||||||