Compare commits

..

34 Commits
v69 ... v71

Author SHA1 Message Date
Anuken
812dea385c more bugfixes 2019-04-04 22:05:12 -04:00
키에르
c582bdea46 Update bundle_ko.properties (#439)
* Update bundle_ko.properties

* Update bundle_ko.properties

* Update bundle_ko.properties

* Update bundle_ko.properties

* Update bundle_ko.properties

* Update bundle_ko.properties

* Update bundle_ko.properties

* match orignal bundle

* Update bundle_ko.properties

* Update bundle_ko.properties
2019-04-04 19:59:09 -06:00
laohuaji233
e6c6a9381b Update bundle_zh_CN.properties (#440)
* Update bundle_zh_CN.properties

More translations and fixed some wrong words

* Update bundle_zh_CN.properties
2019-04-04 19:58:05 -06:00
VXF
4b4c0755c6 Update bundle_zh_CN.properties (#441) 2019-04-04 19:53:34 -06:00
Prosta4okua
aeb0539c91 Russian bundle (#443)
* Go build communism

* Update bundle_ru.properties

Last commit: minimap

* Update bundle_ru.properties

* Update bundle_ru.properties

* Update bundle_ru.properties

* Update bundle_ru.properties
2019-04-04 19:53:02 -06:00
Prosta4okua
9feafa45f5 Ukrainian bundle (#444)
* No. Routernism is better.

Last commit: bugfixes

* Update bundle_uk_UA.properties

Last commit: minimap

* Update bundle_uk_UA.properties

* Update bundle_uk_UA.properties

* Update bundle_uk_UA.properties
2019-04-04 19:52:09 -06:00
Math2128
927df391f3 Update bundle_fr.properties (#447)
* Update bundle_fr.properties

Haven't done much. If I have more time, I will work on it. If anyone else wants to contribute, make sure not to do the same as me ! :p

* Update bundle_fr.properties

* Update bundle_fr.properties

* Update bundle_fr.properties

Add a bit more. If anyone knows where to find all the filters in the game, please tell me. It'll help me get the word in context

* Update bundle_fr.properties

* Update bundle_fr.properties

* Update bundle_fr.properties

* Update bundle_fr.properties

* Update bundle_fr.properties
2019-04-04 19:50:59 -06:00
Anuken
cbef6adeb1 Crafter bugfixes 2019-04-04 21:49:45 -04:00
Anuken
2dee221861 Crash fix 2019-04-04 20:39:04 -04:00
Anuken
0b175cb25d Fixed release script using wrong folder 2019-04-04 19:36:15 -04:00
Anuken
0820338b55 Moved FPS counter once more / Pulverizer sprite fix 2019-04-04 19:31:17 -04:00
Anuken
a2b46eee6f Improved pixel zoom / Possible player duplicate glitch 2019-04-04 18:58:48 -04:00
Anuken
09a435320a Impact reactor display bugfix 2019-04-04 15:14:45 -04:00
Anuken
bf56200c06 Power amount message for buffered blocks 2019-04-04 15:06:27 -04:00
Anuken
2d18df2011 Multiplayer bugfixes / Balancing 2019-04-04 14:46:41 -04:00
Anuken
bab87c0da8 Default spawn limit bumped to 4 2019-04-04 00:05:59 -04:00
Anuken
148f272500 New rule modifiers 2019-04-04 00:03:19 -04:00
Anuken
6de4af727b JSON read/write generation 2019-04-03 22:24:14 -04:00
Anuken
75946b9d14 Explosion propagation 2019-04-03 09:39:11 -04:00
Anuken
1c63ee6743 Clean pixel zoom 2019-04-02 23:30:40 -04:00
Anuken
efdaf0d986 Balancing, tweaks and bugfixes 2019-04-02 22:43:20 -04:00
Anuken
3f6aeac33d Cleanup of new graphical options 2019-04-02 17:18:55 -04:00
Anuken
d9692004cc Shield optimization 2019-04-02 17:08:22 -04:00
Anuken
67a12eecad Bugfixes 2019-04-02 15:52:44 -04:00
Anuken
37999e0870 Risky building changes 2019-04-02 14:26:23 -04:00
Anuken
66dc1e94f5 Slight entity optimizations / Turret sprite fixes 2019-04-02 13:58:44 -04:00
Anuken
ebcce194a0 Turret coolant use balancing 2019-04-02 11:26:02 -04:00
Anuken
95eab94c80 Fixed liquid blocks not accepting liquids 2019-04-02 10:51:52 -04:00
Anuken
41a6dbe06c Basic minimap 2019-04-01 21:16:22 -04:00
Anuken
fa22b0ec12 Removed dead donations code 2019-04-01 18:51:49 -04:00
Anuken
be60a367e8 Removed donations library and Android support libraries 2019-04-01 18:46:11 -04:00
Anuken
608de34205 Updated bundles 2019-04-01 13:32:49 -04:00
Anuken
0a8f2edb05 Block update unit tests 2019-04-01 11:57:43 -04:00
Anuken
41b08f38c5 Fixed tests 2019-04-01 11:34:10 -04:00
104 changed files with 4032 additions and 3846 deletions

View File

@@ -3,7 +3,6 @@
package="io.anuke.mindustry"> package="io.anuke.mindustry">
<uses-feature android:glEsVersion="0x00020000" android:required="true" /> <uses-feature android:glEsVersion="0x00020000" android:required="true" />
<uses-permission android:name="com.android.vending.BILLING" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.INTERNET" />

View File

@@ -27,9 +27,6 @@ repositories {
dependencies { dependencies {
implementation project(":core") implementation project(":core")
implementation project(":net") implementation project(":net")
implementation 'com.android.support:support-v4:28.0.0'
implementation 'org.sufficientlysecure:donations:2.5'
implementation 'com.google.android.gms:play-services-auth:16.0.1'
implementation arcModule("backends:backend-android") implementation arcModule("backends:backend-android")
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi" natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi"
@@ -47,9 +44,9 @@ dependencies {
task deploy(type: Copy){ task deploy(type: Copy){
dependsOn "assembleRelease" dependsOn "assembleRelease"
from "build/outputs/apk/google/release/android-google-release.apk" from "build/outputs/apk/release/android-release.apk"
into "../deploy/" into "../deploy/"
rename ("android-google-release.apk", appName + "-android-" + getVersionString() + ".apk") rename ("android-release.apk", appName + "-android-" + getVersionString() + ".apk")
} }
android { android {
@@ -103,12 +100,6 @@ android {
flavorDimensions "google" flavorDimensions "google"
productFlavors {
google {
buildConfigField "boolean", "DONATIONS_GOOGLE", "true"
}
}
signingConfigs { signingConfigs {
release { release {
if(project.hasProperty("RELEASE_STORE_FILE")) { if(project.hasProperty("RELEASE_STORE_FILE")) {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

View File

@@ -1,32 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="#000">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="top"
android:adjustViewBounds="false"
android:contentDescription="background"
android:cropToPadding="false"
android:scaleType="centerCrop"
android:src="@drawable/background" />
<LinearLayout
android:id="@+id/donations_activity_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
</LinearLayout>
</RelativeLayout>
</LinearLayout>

View File

@@ -1,15 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Mindustry</string>
<string-array name="donation_google_catalog_values">
<item>1 달러</item>
<item>2 달러</item>
<item>5 달러</item>
<item>10 달러</item>
<item>15 달러</item>
<item>25 달러</item>
<item>50 달러</item>
</string-array>
</resources>

View File

@@ -1,15 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Mindustry</string>
<string-array name="donation_google_catalog_values">
<item>1 Доллар</item>
<item>2 Доллара</item>
<item>5 Долларов</item>
<item>10 Долларов</item>
<item>15 Долларов</item>
<item>25 Долларов</item>
<item>50 Долларов</item>
</string-array>
</resources>

View File

@@ -1,15 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Mindustry</string>
<string-array name="donation_google_catalog_values">
<item>1 Доллар</item>
<item>2 Доллара</item>
<item>5 Долларів</item>
<item>10 Долларів</item>
<item>15 Долларів</item>
<item>25 Долларів</item>
<item>50 Долларів</item>
</string-array>
</resources>

View File

@@ -2,14 +2,5 @@
<resources> <resources>
<string name="app_name">Mindustry</string> <string name="app_name">Mindustry</string>
<string-array name="donation_google_catalog_values">
<item>1 Dollar</item>
<item>2 Dollars</item>
<item>5 Dollars</item>
<item>10 Dollars</item>
<item>15 Dollars</item>
<item>25 Dollars</item>
<item>50 Dollars</item>
</string-array>
</resources> </resources>

View File

@@ -10,11 +10,6 @@ import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.provider.Settings.Secure; import android.provider.Settings.Secure;
import android.telephony.TelephonyManager; import android.telephony.TelephonyManager;
import android.util.Log;
import com.google.android.gms.common.GoogleApiAvailability;
import com.google.android.gms.common.GooglePlayServicesNotAvailableException;
import com.google.android.gms.common.GooglePlayServicesRepairableException;
import com.google.android.gms.security.ProviderInstaller;
import io.anuke.arc.Core; import io.anuke.arc.Core;
import io.anuke.arc.backends.android.surfaceview.AndroidApplication; import io.anuke.arc.backends.android.surfaceview.AndroidApplication;
import io.anuke.arc.backends.android.surfaceview.AndroidApplicationConfiguration; import io.anuke.arc.backends.android.surfaceview.AndroidApplicationConfiguration;
@@ -57,11 +52,6 @@ public class AndroidLauncher extends AndroidApplication{
moveTaskToBack(true); moveTaskToBack(true);
} }
@Override
public void openDonations(){
showDonations();
}
@Override @Override
public String getUUID(){ public String getUUID(){
try{ try{
@@ -99,7 +89,7 @@ public class AndroidLauncher extends AndroidApplication{
if(checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED){ if(checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED){
perms.add(Manifest.permission.READ_EXTERNAL_STORAGE); perms.add(Manifest.permission.READ_EXTERNAL_STORAGE);
} }
requestPermissions(perms.toArray(new String[perms.size()]), PERMISSION_REQUEST_CODE); requestPermissions(perms.toArray(new String[0]), PERMISSION_REQUEST_CODE);
} }
} }
@@ -119,17 +109,10 @@ public class AndroidLauncher extends AndroidApplication{
} }
}; };
try{
ProviderInstaller.installIfNeeded(this);
}catch(GooglePlayServicesRepairableException e){
GoogleApiAvailability apiAvailability = GoogleApiAvailability.getInstance();
apiAvailability.getErrorDialog(this, e.getConnectionStatusCode(), 0).show();
}catch(GooglePlayServicesNotAvailableException e){
Log.e("SecurityException", "Google Play Services not available.");
}
if(doubleScaleTablets && isTablet(this.getContext())){ if(doubleScaleTablets && isTablet(this.getContext())){
Unit.dp.addition = 0.5f; Unit.dp.addition = 0.5f;
} }
config.hideStatusBar = true; config.hideStatusBar = true;
Net.setClientProvider(new KryoClient()); Net.setClientProvider(new KryoClient());
Net.setServerProvider(new KryoServer()); Net.setServerProvider(new KryoServer());
@@ -200,22 +183,8 @@ public class AndroidLauncher extends AndroidApplication{
} }
} }
private boolean isPackageInstalled(String packagename){
try{
getPackageManager().getPackageInfo(packagename, 0);
return true;
}catch(Exception e){
return false;
}
}
private boolean isTablet(Context context){ private boolean isTablet(Context context){
TelephonyManager manager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); TelephonyManager manager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
return manager.getPhoneType() == TelephonyManager.PHONE_TYPE_NONE; return manager != null && manager.getPhoneType() == TelephonyManager.PHONE_TYPE_NONE;
}
private void showDonations(){
Intent intent = new Intent(this, DonationsActivity.class);
startActivity(intent);
} }
} }

View File

@@ -1,73 +0,0 @@
package io.anuke.mindustry;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.view.View;
import android.widget.Button;
import org.sufficientlysecure.donations.DonationsFragment;
public class DonationsActivity extends FragmentActivity{
/**
* Google
*/
private static final String GOOGLE_PUBKEY = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzG93KhpfBPKTo2jF0yxbWkkmMKwsPNM4SsMj1aDq7vv6n3R+mqJVfprOJxFfJh7JchXTflLIgiaKXFAiU70gJbMTniEWnEaFSxAeF09a7U0RjOwN+7rFwjCG91c2CpYxPanBTQP4zasc1ODPVzq4q6/4ByjhenN71V4WmR08NFIAodcfFPrOkDPil7i8y7cgcd1Ky53U0TS+LLYJttAK3XdTK4s7VE3I5IKoeNa4uwCmIM59R67q2k3cXjLk/nP6MP+y++EzHN/PTiR1sVg4dMP8K31RPw/1QNLPQwJz6Wc872oWwb7xo5gkoXbDc5WPPydsi8F3SyKNaYwzN6CDFQIDAQAB";
private static final String[] GOOGLE_CATALOG = new String[]{
"mindustry.donation.1", "mindustry.donation.2", "mindustry.donation.5",
"mindustry.donation.10", "mindustry.donation.15",
"mindustry.donation.25", "mindustry.donation.50"};
DonationsFragment donationsFragment;
/**
* Called when the activity is first created.
*/
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setTheme(R.style.GdxTheme);
setContentView(R.layout.donations_activity);
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
if(BuildConfig.DONATIONS_GOOGLE){
donationsFragment = DonationsFragment.newInstance(BuildConfig.DEBUG, true, GOOGLE_PUBKEY, GOOGLE_CATALOG,
getResources().getStringArray(R.array.donation_google_catalog_values), false, null, null,
null, false, null, null, false, null);
}
ft.replace(R.id.donations_activity_container, donationsFragment, "donationsFragment");
ft.commit();
}
public void onStart(){
super.onStart();
Button b = findViewById(org.sufficientlysecure.donations.R.id.donations__google_android_market_donate_button);
b.setOnClickListener(view -> {
donationsFragment.donateGoogleOnClick(donationsFragment.getView());
b.setEnabled(false);
});
}
/**
* Needed for Google Play In-app Billing. It uses startIntentSenderForResult(). The result is not propagated to
* the Fragment like in startActivityForResult(). Thus we need to propagate manually to our Fragment.
*/
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
super.onActivityResult(requestCode, resultCode, data);
Button b = findViewById(org.sufficientlysecure.donations.R.id.donations__google_android_market_donate_button);
b.setEnabled(true);
FragmentManager fragmentManager = getSupportFragmentManager();
Fragment fragment = fragmentManager.findFragmentByTag("donationsFragment");
if(fragment != null){
fragment.onActivityResult(requestCode, resultCode, data);
}
}
}

View File

@@ -50,8 +50,21 @@ public class SerializeAnnotationProcessor extends AbstractProcessor{
classBuilder.addJavadoc(RemoteMethodAnnotationProcessor.autogenWarning); classBuilder.addJavadoc(RemoteMethodAnnotationProcessor.autogenWarning);
MethodSpec.Builder method = MethodSpec.methodBuilder("init").addModifiers(Modifier.PUBLIC, Modifier.STATIC); MethodSpec.Builder method = MethodSpec.methodBuilder("init").addModifiers(Modifier.PUBLIC, Modifier.STATIC);
TypeName jsonType = ClassName.bestGuess("io.anuke.arc.util.serialization.Json");
TypeName jsonValueType = ClassName.bestGuess("io.anuke.arc.util.serialization.JsonValue");
TypeName ubJsonWriterType = ClassName.bestGuess("io.anuke.arc.util.serialization.UBJsonWriter");
TypeName ubJsonReaderType = ClassName.bestGuess("io.anuke.arc.util.serialization.UBJsonReader");
classBuilder.addField(jsonType, "bjson", Modifier.STATIC, Modifier.PRIVATE);
classBuilder.addField(ubJsonReaderType, "bjsonReader", Modifier.STATIC, Modifier.PRIVATE);
classBuilder.addStaticBlock(CodeBlock.builder()
.addStatement("bjson = new " + jsonType + "()")
.addStatement("bjsonReader = new " + ubJsonReaderType + "()")
.build());
for(TypeElement elem : elements){ for(TypeElement elem : elements){
TypeName type = TypeName.get(elem.asType()); TypeName type = TypeName.get(elem.asType());
String simpleTypeName = type.toString().substring(type.toString().lastIndexOf('.') + 1);
TypeSpec.Builder serializer = TypeSpec.anonymousClassBuilder("") TypeSpec.Builder serializer = TypeSpec.anonymousClassBuilder("")
.addSuperinterface(ParameterizedTypeName.get( .addSuperinterface(ParameterizedTypeName.get(
@@ -70,7 +83,19 @@ public class SerializeAnnotationProcessor extends AbstractProcessor{
.addException(IOException.class) .addException(IOException.class)
.addModifiers(Modifier.PUBLIC); .addModifiers(Modifier.PUBLIC);
MethodSpec.Builder jsonWriteMethod = MethodSpec.methodBuilder("write" + simpleTypeName + "Json")
.returns(void.class)
.addParameter(jsonType, "json")
.addParameter(type, "object")
.addModifiers(Modifier.PUBLIC, Modifier.STATIC);
MethodSpec.Builder jsonReadMethod = MethodSpec.methodBuilder("read" + simpleTypeName + "Json")
.returns(type)
.addParameter(jsonValueType, "value")
.addModifiers(Modifier.PUBLIC, Modifier.STATIC);
readMethod.addStatement("$L object = new $L()", type, type); readMethod.addStatement("$L object = new $L()", type, type);
jsonReadMethod.addStatement("$L object = new $L()", type, type);
List<VariableElement> fields = ElementFilter.fieldsIn(Utils.elementUtils.getAllMembers(elem)); List<VariableElement> fields = ElementFilter.fieldsIn(Utils.elementUtils.getAllMembers(elem));
for(VariableElement field : fields){ for(VariableElement field : fields){
@@ -83,6 +108,9 @@ public class SerializeAnnotationProcessor extends AbstractProcessor{
if(field.asType().getKind().isPrimitive()){ if(field.asType().getKind().isPrimitive()){
writeMethod.addStatement("stream.write" + capName + "(object." + name + ")"); writeMethod.addStatement("stream.write" + capName + "(object." + name + ")");
readMethod.addStatement("object." + name + "= stream.read" + capName + "()"); readMethod.addStatement("object." + name + "= stream.read" + capName + "()");
jsonWriteMethod.addStatement("json.writeValue(\"" + name + "\", object." + name +")");
jsonReadMethod.addStatement("if(value.has(\"" + name + "\")) object." + name + "= value.get" + capName + "(\"" + name + "\")");
}else{ }else{
writeMethod.addStatement("io.anuke.arc.Core.settings.getSerializer(" + typeName+ ".class).write(stream, object." + name + ")"); writeMethod.addStatement("io.anuke.arc.Core.settings.getSerializer(" + typeName+ ".class).write(stream, object." + name + ")");
readMethod.addStatement("object." + name + " = (" +typeName+")io.anuke.arc.Core.settings.getSerializer(" + typeName+ ".class).read(stream)"); readMethod.addStatement("object." + name + " = (" +typeName+")io.anuke.arc.Core.settings.getSerializer(" + typeName+ ".class).read(stream)");
@@ -90,22 +118,47 @@ public class SerializeAnnotationProcessor extends AbstractProcessor{
} }
readMethod.addStatement("return object"); readMethod.addStatement("return object");
jsonReadMethod.addStatement("return object");
serializer.addMethod(writeMethod.build()); serializer.addMethod(writeMethod.build());
serializer.addMethod(readMethod.build()); serializer.addMethod(readMethod.build());
method.addStatement("io.anuke.arc.Core.settings.setSerializer($N, $L)", Utils.elementUtils.getBinaryName(elem).toString().replace('$', '.') + ".class", serializer.build()); method.addStatement("io.anuke.arc.Core.settings.setSerializer($N, $L)", Utils.elementUtils.getBinaryName(elem).toString().replace('$', '.') + ".class", serializer.build());
String sname = type.toString().substring(type.toString().lastIndexOf('.') + 1); name(writeMethod, "write" + simpleTypeName);
name(readMethod, "read" + simpleTypeName);
name(writeMethod, "write" + sname);
name(readMethod, "read" + sname);
writeMethod.addModifiers(Modifier.STATIC); writeMethod.addModifiers(Modifier.STATIC);
readMethod.addModifiers(Modifier.STATIC); readMethod.addModifiers(Modifier.STATIC);
classBuilder.addMethod(writeMethod.build()); classBuilder.addMethod(writeMethod.build());
classBuilder.addMethod(readMethod.build()); classBuilder.addMethod(readMethod.build());
classBuilder.addMethod(jsonWriteMethod.build());
classBuilder.addMethod(jsonReadMethod.build());
MethodSpec.Builder binaryJsonWriteMethod = MethodSpec.methodBuilder("write" + simpleTypeName + "StreamJson")
.returns(void.class)
.addParameter(DataOutput.class, "stream")
.addParameter(type, "object")
.addException(IOException.class)
.addModifiers(Modifier.PUBLIC, Modifier.STATIC)
.addStatement("java.io.StringWriter output = new java.io.StringWriter()")
.addStatement("bjson.setWriter(output)")
.addStatement("bjson.writeObjectStart(" + type + ".class, " + type + ".class)")
.addStatement("write" + simpleTypeName + "Json(bjson, object)")
.addStatement("bjson.writeObjectEnd()")
.addStatement("stream.writeUTF(output.toString())");
MethodSpec.Builder binaryJsonReadMethod = MethodSpec.methodBuilder("read" + simpleTypeName + "StreamJson")
.returns(type)
.addParameter(DataInput.class, "stream")
.addException(IOException.class)
.addModifiers(Modifier.PUBLIC, Modifier.STATIC)
.addStatement("return read" + simpleTypeName + "Json(bjson.fromJson(null, stream.readUTF()))");
classBuilder.addMethod(binaryJsonWriteMethod.build());
classBuilder.addMethod(binaryJsonReadMethod.build());
} }
classBuilder.addMethod(method.build()); classBuilder.addMethod(method.build());

View File

@@ -43,6 +43,7 @@ addplayers = Add/Remove Players
customgame = Custom Game customgame = Custom Game
newgame = New Game newgame = New Game
none = <none> none = <none>
minimap = Minimap
close = Close close = Close
quit = Quit quit = Quit
maps = Maps maps = Maps
@@ -376,7 +377,8 @@ blocks.ammo = Ammo
bar.drillspeed = Drill Speed: {0}/s bar.drillspeed = Drill Speed: {0}/s
bar.efficiency = Efficiency: {0}% bar.efficiency = Efficiency: {0}%
bar.powerbalance = Power: {0} bar.powerbalance = Power: {0}/s
bar.poweramount = Power: {0}
bar.poweroutput = Power Output: {0} bar.poweroutput = Power Output: {0}
bar.items = Items: {0} bar.items = Items: {0}
bar.liquid = Liquid bar.liquid = Liquid
@@ -419,6 +421,7 @@ category.optional = Optional Enhancements
setting.landscape.name = Lock Landscape setting.landscape.name = Lock Landscape
setting.shadows.name = Shadows setting.shadows.name = Shadows
setting.animatedwater.name = Animated Water setting.animatedwater.name = Animated Water
setting.animatedshields.name = Animated Shields
setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[] setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[]
setting.indicators.name = Enemy/Ally Indicators setting.indicators.name = Enemy/Ally Indicators
setting.autotarget.name = Auto-Target setting.autotarget.name = Auto-Target
@@ -442,6 +445,7 @@ setting.borderless.name = Borderless Window
setting.fps.name = Show FPS setting.fps.name = Show FPS
setting.vsync.name = VSync setting.vsync.name = VSync
setting.lasers.name = Show Power Lasers setting.lasers.name = Show Power Lasers
setting.pixelate.name = Pixelate [LIGHT_GRAY](may decrease performance)
setting.minimap.name = Show Minimap setting.minimap.name = Show Minimap
setting.musicvol.name = Music Volume setting.musicvol.name = Music Volume
setting.mutemusic.name = Mute Music setting.mutemusic.name = Mute Music
@@ -502,6 +506,9 @@ rules.waves = Waves
rules.enemyCheat = Infinite AI (Red Team) Resources rules.enemyCheat = Infinite AI (Red Team) Resources
rules.pvp = PvP rules.pvp = PvP
rules.unitdrops = Unit Drops rules.unitdrops = Unit Drops
rules.unitbuildspeedmultiplier = Unit Creation Speed Multiplier
rules.unithealthmultiplier = Unit Health Multiplier
rules.playerdamagemultiplier = Player Damage Multiplier
rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles) rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles)
rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec) rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec)
rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec) rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec)

View File

@@ -40,6 +40,7 @@ addplayers = Přidat/Odebrat hráče
customgame = Vlastní hra customgame = Vlastní hra
newgame = New Game newgame = New Game
none = <none> none = <none>
minimap = Minimap
close = Zavřít close = Zavřít
quit = Ukončit quit = Ukončit
maps = Mapy maps = Mapy
@@ -335,66 +336,48 @@ no = Ne
info.title = Informace info.title = Informace
error.title = [crimson]Objevila se chyba error.title = [crimson]Objevila se chyba
error.crashtitle = Objevila se chyba error.crashtitle = Objevila se chyba
bar.drillspeed = Drill Speed: {0}/s blocks.input = Input
bar.efficiency = Efficiency: {0}% blocks.output = Output
blocks.booster = Booster
block.unknown = [LIGHT_GRAY]??? block.unknown = [LIGHT_GRAY]???
blocks.blockinfo = Informace o bloku
bar.powerbalance = Power: {0}
bar.poweroutput = Power Output: {0}
blocks.powercapacity = Kapacita energie blocks.powercapacity = Kapacita energie
blocks.powershot = Energie na výstřel blocks.powershot = Energie na výstřel
blocks.targetsair = Zaměřuje vzdušné jednotky blocks.targetsair = Zaměřuje vzdušné jednotky
blocks.targetsground = Targets Ground blocks.targetsground = Targets Ground
bar.items = Items: {0}
blocks.itemsmoved = Move Speed blocks.itemsmoved = Move Speed
blocks.launchtime = Time Between Launches blocks.launchtime = Time Between Launches
blocks.shootrange = Dostřel blocks.shootrange = Dostřel
blocks.size = velikost blocks.size = velikost
blocks.liquidcapacity = Kapacita tekutin blocks.liquidcapacity = Kapacita tekutin
blocks.maxitemssecond = Max předmětů
blocks.powerrange = Rozsah energie blocks.powerrange = Rozsah energie
blocks.poweruse = Spotřebuje energie blocks.poweruse = Spotřebuje energie
blocks.powerdamage = Energie na poškození blocks.powerdamage = Energie na poškození
blocks.inputitemcapacity = Kapacita vstupních předmětů
blocks.outputitemcapacity = Kapacita výstupních předmětů
blocks.itemcapacity = kapacita předmětů blocks.itemcapacity = kapacita předmětů
blocks.basepowergeneration = Základní generování energie blocks.basepowergeneration = Základní generování energie
blocks.powertransferspeed = Přenos energie blocks.productiontime = Production Time
blocks.craftspeed = Rychlost produkce
blocks.repairtime = Block Full Repair Time blocks.repairtime = Block Full Repair Time
blocks.speedincrease = Speed Increase
blocks.range = Range blocks.range = Range
blocks.inputliquid = Vstupní tekutiny
blocks.inputliquidaux = Aux tekutina
blocks.inputitem = Vstupní předmět
blocks.inputitems = Vstupní předměty
blocks.outputitem = Výstupní předmět
blocks.drilltier = Vrtatelné blocks.drilltier = Vrtatelné
blocks.drillspeed = Základní rychlost vrtu blocks.drillspeed = Základní rychlost vrtu
blocks.boosteffect = Boost Effect
blocks.maxunits = Max Active Units blocks.maxunits = Max Active Units
blocks.liquidoutput = Výstup tekutin
blocks.liquidoutputspeed = Rychlost výstupu tekutin
blocks.liquiduse = Spotřebuje tekutin
blocks.coolant = Chlazení
bar.liquid = Liquid
blocks.coolantuse = Spotřeba chlazení
blocks.inputliquidfuel = Palivo-tekutina
blocks.liquidfueluse = Spotřeba Paliva-tekutiny
blocks.boostitem = Předmět pro zrychlení
blocks.boostliquid = Tekutina pro zrychlení
blocks.health = Životy blocks.health = Životy
blocks.inaccuracy = Nepřesnost/výchylka
blocks.shots = Střely
blocks.reload = Střely za sekundu
blocks.ammo = Ammo
bar.drillspeed = Drill Speed: {0}/s
bar.efficiency = Efficiency: {0}%
bar.powerbalance = Power: {0}
bar.poweramount = Power: {0}
bar.poweroutput = Power Output: {0}
bar.items = Items: {0}
bar.liquid = Liquid
bar.heat = Heat bar.heat = Heat
bar.power = Power bar.power = Power
bar.progress = Build Progress bar.progress = Build Progress
bar.spawned = Units: {0}/{1} bar.spawned = Units: {0}/{1}
blocks.power.satisfaction = Power Satisfaction
blocks.inaccuracy = Nepřesnost/výchylka
blocks.shots = Střely
blocks.reload = Střely za sekundu
blocks.inputfuel = Palivo
blocks.fuelburntime = Čas spalování paliva
blocks.inputcapacity = Vstupní kapacita
blocks.outputcapacity = Výstupní kapacita
blocks.ammo = Ammo
bullet.damage = [stat]{0}[lightgray] dmg bullet.damage = [stat]{0}[lightgray] dmg
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
bullet.incendiary = [stat]incendiary bullet.incendiary = [stat]incendiary
@@ -414,6 +397,9 @@ unit.liquidunits = jednotek tekutin
unit.powerunits = jednotek energie unit.powerunits = jednotek energie
unit.degrees = úhly unit.degrees = úhly
unit.seconds = sekundy unit.seconds = sekundy
unit.persecond = /sec
unit.timesspeed = x speed
unit.percent = %
unit.items = předměty unit.items = předměty
category.general = Všeobecné category.general = Všeobecné
category.power = Energie category.power = Energie
@@ -425,6 +411,7 @@ category.optional = Volitelné vylepšení
setting.landscape.name = Lock Landscape setting.landscape.name = Lock Landscape
setting.shadows.name = Shadows setting.shadows.name = Shadows
setting.animatedwater.name = Animated Water setting.animatedwater.name = Animated Water
setting.animatedshields.name = Animated Shields
setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[] setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[]
setting.indicators.name = Indikátor pro spojence setting.indicators.name = Indikátor pro spojence
setting.autotarget.name = Automaticky zaměřuje setting.autotarget.name = Automaticky zaměřuje
@@ -448,6 +435,7 @@ setting.borderless.name = Borderless Window
setting.fps.name = Ukázat snímky/sekundu setting.fps.name = Ukázat snímky/sekundu
setting.vsync.name = Vertikální synchronizace setting.vsync.name = Vertikální synchronizace
setting.lasers.name = Ukázat laser energie setting.lasers.name = Ukázat laser energie
setting.pixelate.name = Pixelate [LIGHT_GRAY](may decrease performance)
setting.minimap.name = Ukázat minimapu setting.minimap.name = Ukázat minimapu
setting.musicvol.name = Hlasitost hudby setting.musicvol.name = Hlasitost hudby
setting.mutemusic.name = Ztišit hudbu setting.mutemusic.name = Ztišit hudbu
@@ -507,6 +495,9 @@ rules.waves = Waves
rules.enemyCheat = Infinite AI Resources rules.enemyCheat = Infinite AI Resources
rules.pvp = PvP rules.pvp = PvP
rules.unitdrops = Unit Drops rules.unitdrops = Unit Drops
rules.unitbuildspeedmultiplier = Unit Creation Speed Multiplier
rules.unithealthmultiplier = Unit Health Multiplier
rules.playerdamagemultiplier = Player Damage Multiplier
rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles) rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles)
rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec) rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec)
rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec) rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec)
@@ -592,6 +583,7 @@ mech.itemcapacity = [LIGHT_GRAY]Kapacita předmětů: {0}
mech.minespeed = [LIGHT_GRAY]Rychlost těžení: {0} mech.minespeed = [LIGHT_GRAY]Rychlost těžení: {0}
mech.minepower = [LIGHT_GRAY]Síla těžení: {0} mech.minepower = [LIGHT_GRAY]Síla těžení: {0}
mech.ability = [LIGHT_GRAY]Schopnost: {0} mech.ability = [LIGHT_GRAY]Schopnost: {0}
mech.buildspeed = [LIGHT_GRAY]Building Speed: {0}%
liquid.heatcapacity = [LIGHT_GRAY]Kapacita teploty: {0} liquid.heatcapacity = [LIGHT_GRAY]Kapacita teploty: {0}
liquid.viscosity = [LIGHT_GRAY]Viskozita: {0} liquid.viscosity = [LIGHT_GRAY]Viskozita: {0}
liquid.temperature = [LIGHT_GRAY]Teplota: {0} liquid.temperature = [LIGHT_GRAY]Teplota: {0}

View File

@@ -40,6 +40,7 @@ addplayers = Hinzufügen/Entfernen von Spielern
customgame = Benutzerdefiniertes Spiel customgame = Benutzerdefiniertes Spiel
newgame = New Game newgame = New Game
none = <nichts> none = <nichts>
minimap = Minimap
close = Schließen close = Schließen
quit = Verlassen quit = Verlassen
maps = Karten maps = Karten
@@ -335,66 +336,48 @@ no = Nein
info.title = [accent]Info info.title = [accent]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!
bar.drillspeed = Drill Speed: {0}/s blocks.input = Input
bar.efficiency = Efficiency: {0}% blocks.output = Output
blocks.booster = Booster
block.unknown = [LIGHT_GRAY]??? block.unknown = [LIGHT_GRAY]???
blocks.blockinfo = Blockinfo:
bar.powerbalance = Power: {0}
bar.poweroutput = Power Output: {0}
blocks.powercapacity = Kapazität blocks.powercapacity = Kapazität
blocks.powershot = Stromverbrauch/Schuss blocks.powershot = Stromverbrauch/Schuss
blocks.targetsair = Visiert Luft Einheiten an blocks.targetsair = Visiert Luft Einheiten an
blocks.targetsground = Targets Ground blocks.targetsground = Targets Ground
bar.items = Items: {0}
blocks.itemsmoved = Move Speed blocks.itemsmoved = Move Speed
blocks.launchtime = Time Between Launches blocks.launchtime = Time Between Launches
blocks.shootrange = Reichweite blocks.shootrange = Reichweite
blocks.size = Größe blocks.size = Größe
blocks.liquidcapacity = Flüssigkeitskapazität blocks.liquidcapacity = Flüssigkeitskapazität
blocks.maxitemssecond = Max Materialien
blocks.powerrange = Stromreichweite blocks.powerrange = Stromreichweite
blocks.poweruse = Stromverbrauch blocks.poweruse = Stromverbrauch
blocks.powerdamage = Stromverbrauch/Schadenspunkt blocks.powerdamage = Stromverbrauch/Schadenspunkt
blocks.inputitemcapacity = Annahmekapazität
blocks.outputitemcapacity = Ausgabekapazität
blocks.itemcapacity = Materialkapazität blocks.itemcapacity = Materialkapazität
blocks.basepowergeneration = Basis-Stromerzeugung blocks.basepowergeneration = Basis-Stromerzeugung
blocks.powertransferspeed = Stromübertragung blocks.productiontime = Production Time
blocks.craftspeed = Produktionsgeschwindigkeit
blocks.repairtime = Block Full Repair Time blocks.repairtime = Block Full Repair Time
blocks.speedincrease = Speed Increase
blocks.range = Range blocks.range = Range
blocks.inputliquid = Benötigte Flüssigkeit
blocks.inputliquidaux = Optionale Flüssigkeit
blocks.inputitem = Akzeptiertes Material
blocks.inputitems = Akzeptierte Materialien
blocks.outputitem = Erzeugtes Material
blocks.drilltier = Abbaubare Erze blocks.drilltier = Abbaubare Erze
blocks.drillspeed = Bohrgeschwindigkeit blocks.drillspeed = Bohrgeschwindigkeit
blocks.boosteffect = Boost Effect
blocks.maxunits = Max Active Units blocks.maxunits = Max Active Units
blocks.liquidoutput = Erzeugte Flüssigkeit
blocks.liquidoutputspeed = Ausgabegeschwindigkeit
blocks.liquiduse = Flüssigkeitsverbrauch
blocks.coolant = Kühlmittel
bar.liquid = Liquid
blocks.coolantuse = Kühlmittelverbrauch
blocks.inputliquidfuel = Kraftstoff
blocks.liquidfueluse = Kraftstoffverbrauch
blocks.boostitem = Boost Item
blocks.boostliquid = Boost Liquid
blocks.health = Lebenspunkte blocks.health = Lebenspunkte
blocks.inaccuracy = Ungenauigkeit
blocks.shots = Schüsse
blocks.reload = Schüsse/Sekunde
blocks.ammo = Ammo
bar.drillspeed = Drill Speed: {0}/s
bar.efficiency = Efficiency: {0}%
bar.powerbalance = Power: {0}
bar.poweramount = Power: {0}
bar.poweroutput = Power Output: {0}
bar.items = Items: {0}
bar.liquid = Liquid
bar.heat = Heat bar.heat = Heat
bar.power = Power bar.power = Power
bar.progress = Build Progress bar.progress = Build Progress
bar.spawned = Units: {0}/{1} bar.spawned = Units: {0}/{1}
blocks.power.satisfaction = Power Satisfaction
blocks.inaccuracy = Ungenauigkeit
blocks.shots = Schüsse
blocks.reload = Schüsse/Sekunde
blocks.inputfuel = Kraftstoff
blocks.fuelburntime = Kraftstoff Verbrennungs-Zeit
blocks.inputcapacity = Annahmekapazität
blocks.outputcapacity = Ausgabekapazität
blocks.ammo = Ammo
bullet.damage = [stat]{0}[lightgray] dmg bullet.damage = [stat]{0}[lightgray] dmg
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
bullet.incendiary = [stat]incendiary bullet.incendiary = [stat]incendiary
@@ -414,6 +397,9 @@ unit.liquidunits = Flüssigkeitseinheiten
unit.powerunits = Stromeinheiten unit.powerunits = Stromeinheiten
unit.degrees = Grad unit.degrees = Grad
unit.seconds = Sekunden unit.seconds = Sekunden
unit.persecond = /sec
unit.timesspeed = x speed
unit.percent = %
unit.items = Materialeinheiten unit.items = Materialeinheiten
category.general = Generell category.general = Generell
category.power = Strom category.power = Strom
@@ -425,6 +411,7 @@ category.optional = Optional Enhancements
setting.landscape.name = Lock Landscape setting.landscape.name = Lock Landscape
setting.shadows.name = Shadows setting.shadows.name = Shadows
setting.animatedwater.name = Animated Water setting.animatedwater.name = Animated Water
setting.animatedshields.name = Animated Shields
setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[] setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[]
setting.indicators.name = Ally Indicators setting.indicators.name = Ally Indicators
setting.autotarget.name = Auto-Zielauswahl setting.autotarget.name = Auto-Zielauswahl
@@ -448,6 +435,7 @@ setting.borderless.name = Borderless Window
setting.fps.name = Zeige FPS setting.fps.name = Zeige FPS
setting.vsync.name = VSync setting.vsync.name = VSync
setting.lasers.name = Zeige Stromlaser setting.lasers.name = Zeige Stromlaser
setting.pixelate.name = Pixelate [LIGHT_GRAY](may decrease performance)
setting.minimap.name = Zeige die Minimap setting.minimap.name = Zeige die Minimap
setting.musicvol.name = Musiklautstärke setting.musicvol.name = Musiklautstärke
setting.mutemusic.name = Musik stummschalten setting.mutemusic.name = Musik stummschalten
@@ -507,6 +495,9 @@ rules.waves = Waves
rules.enemyCheat = Infinite AI Resources rules.enemyCheat = Infinite AI Resources
rules.pvp = PvP rules.pvp = PvP
rules.unitdrops = Unit Drops rules.unitdrops = Unit Drops
rules.unitbuildspeedmultiplier = Unit Creation Speed Multiplier
rules.unithealthmultiplier = Unit Health Multiplier
rules.playerdamagemultiplier = Player Damage Multiplier
rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles) rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles)
rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec) rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec)
rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec) rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec)
@@ -592,6 +583,7 @@ mech.itemcapacity = [LIGHT_GRAY]Materialkapazität: {0}
mech.minespeed = [LIGHT_GRAY]Erzabbaugeschwindigkeit: {0} mech.minespeed = [LIGHT_GRAY]Erzabbaugeschwindigkeit: {0}
mech.minepower = [LIGHT_GRAY]Erzabbaukraft: {0} mech.minepower = [LIGHT_GRAY]Erzabbaukraft: {0}
mech.ability = [LIGHT_GRAY]Fähigkeit: {0} mech.ability = [LIGHT_GRAY]Fähigkeit: {0}
mech.buildspeed = [LIGHT_GRAY]Building Speed: {0}%
liquid.heatcapacity = [LIGHT_GRAY]Wärmekapazität: {0} liquid.heatcapacity = [LIGHT_GRAY]Wärmekapazität: {0}
liquid.viscosity = [LIGHT_GRAY]Viskosität: {0} liquid.viscosity = [LIGHT_GRAY]Viskosität: {0}
liquid.temperature = [LIGHT_GRAY]Temperatur: {0} liquid.temperature = [LIGHT_GRAY]Temperatur: {0}

View File

@@ -40,6 +40,7 @@ addplayers = Agregar/Quitar Jugadores
customgame = Partida personalizada customgame = Partida personalizada
newgame = New Game newgame = New Game
none = <no hay> none = <no hay>
minimap = Minimap
close = Cerrar close = Cerrar
quit = Salir quit = Salir
maps = Mapas maps = Mapas
@@ -335,66 +336,48 @@ 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.
bar.drillspeed = Drill Speed: {0}/s blocks.input = Input
bar.efficiency = Efficiency: {0}% blocks.output = Output
blocks.booster = Booster
block.unknown = [LIGHT_GRAY]??? block.unknown = [LIGHT_GRAY]???
blocks.blockinfo = Información del Bloque
bar.powerbalance = Power: {0}
bar.poweroutput = Power Output: {0}
blocks.powercapacity = Capacidad de Energía blocks.powercapacity = Capacidad de Energía
blocks.powershot = Energía/Disparo blocks.powershot = Energía/Disparo
blocks.targetsair = Apunta al Aire blocks.targetsair = Apunta al Aire
blocks.targetsground = Targets Ground blocks.targetsground = Targets Ground
bar.items = Items: {0}
blocks.itemsmoved = Move Speed blocks.itemsmoved = Move Speed
blocks.launchtime = Time Between Launches blocks.launchtime = Time Between Launches
blocks.shootrange = Rango blocks.shootrange = Rango
blocks.size = Tamaño blocks.size = Tamaño
blocks.liquidcapacity = Capacidad de Líquidos blocks.liquidcapacity = Capacidad de Líquidos
blocks.maxitemssecond = Máximo de Objetos
blocks.powerrange = Rango de Energía blocks.powerrange = Rango de Energía
blocks.poweruse = Consumo de Energía blocks.poweruse = Consumo de Energía
blocks.powerdamage = Energía/Daño blocks.powerdamage = Energía/Daño
blocks.inputitemcapacity = Capacidad de Entrada de los Objetos
blocks.outputitemcapacity = Capacidad de Salida de los Objetos
blocks.itemcapacity = Capacidad de Objetos blocks.itemcapacity = Capacidad de Objetos
blocks.basepowergeneration = Generación de energía base blocks.basepowergeneration = Generación de energía base
blocks.powertransferspeed = Transferencia de Energía blocks.productiontime = Production Time
blocks.craftspeed = Velocidad de Producción
blocks.repairtime = Block Full Repair Time blocks.repairtime = Block Full Repair Time
blocks.speedincrease = Speed Increase
blocks.range = Range blocks.range = Range
blocks.inputliquid = Líquidos de Entrada
blocks.inputliquidaux = Líquido Auxiliar
blocks.inputitem = Objeto de Entrada
blocks.inputitems = Objetos de Entrada
blocks.outputitem = Objeto de Salida
blocks.drilltier = Taladrables blocks.drilltier = Taladrables
blocks.drillspeed = Velocidad Base del Taladro blocks.drillspeed = Velocidad Base del Taladro
blocks.boosteffect = Boost Effect
blocks.maxunits = Max Active Units blocks.maxunits = Max Active Units
blocks.liquidoutput = Líquido de Salida
blocks.liquidoutputspeed = Velocidad de Salida del Líquido
blocks.liquiduse = Uso de Líquido
blocks.coolant = Refrigerante
bar.liquid = Liquid
blocks.coolantuse = Uso del Refrigerante
blocks.inputliquidfuel = Combustible Líquido
blocks.liquidfueluse = Uso del Combustible Líquido
blocks.boostitem = Boost Item
blocks.boostliquid = Boost Liquid
blocks.health = Vida blocks.health = Vida
blocks.inaccuracy = Imprecisión
blocks.shots = Disparos
blocks.reload = Recarga
blocks.ammo = Ammo
bar.drillspeed = Drill Speed: {0}/s
bar.efficiency = Efficiency: {0}%
bar.powerbalance = Power: {0}
bar.poweramount = Power: {0}
bar.poweroutput = Power Output: {0}
bar.items = Items: {0}
bar.liquid = Liquid
bar.heat = Heat bar.heat = Heat
bar.power = Power bar.power = Power
bar.progress = Build Progress bar.progress = Build Progress
bar.spawned = Units: {0}/{1} bar.spawned = Units: {0}/{1}
blocks.power.satisfaction = Power Satisfaction
blocks.inaccuracy = Imprecisión
blocks.shots = Disparos
blocks.reload = Recarga
blocks.inputfuel = Combustible
blocks.fuelburntime = Tiempo de Quemado del Combustible
blocks.inputcapacity = Capacidad de entrada
blocks.outputcapacity = Capacidad de salida
blocks.ammo = Ammo
bullet.damage = [stat]{0}[lightgray] dmg bullet.damage = [stat]{0}[lightgray] dmg
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
bullet.incendiary = [stat]incendiary bullet.incendiary = [stat]incendiary
@@ -414,6 +397,9 @@ unit.liquidunits = unidades de líquido
unit.powerunits = unidades de energía unit.powerunits = unidades de energía
unit.degrees = grados unit.degrees = grados
unit.seconds = segundos unit.seconds = segundos
unit.persecond = /sec
unit.timesspeed = x speed
unit.percent = %
unit.items = objetos unit.items = objetos
category.general = General category.general = General
category.power = Energía category.power = Energía
@@ -425,6 +411,7 @@ category.optional = Mejoras Opcionales
setting.landscape.name = Lock Landscape setting.landscape.name = Lock Landscape
setting.shadows.name = Shadows setting.shadows.name = Shadows
setting.animatedwater.name = Animated Water setting.animatedwater.name = Animated Water
setting.animatedshields.name = Animated Shields
setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[] setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[]
setting.indicators.name = Ally Indicators setting.indicators.name = Ally Indicators
setting.autotarget.name = Auto apuntado setting.autotarget.name = Auto apuntado
@@ -448,6 +435,7 @@ setting.borderless.name = Borderless Window
setting.fps.name = Mostrar FPS setting.fps.name = Mostrar FPS
setting.vsync.name = VSync setting.vsync.name = VSync
setting.lasers.name = Mostrar Energía de los Láseres setting.lasers.name = Mostrar Energía de los Láseres
setting.pixelate.name = Pixelate [LIGHT_GRAY](may decrease performance)
setting.minimap.name = Mostrar Minimapa setting.minimap.name = Mostrar Minimapa
setting.musicvol.name = Volumen de la Música setting.musicvol.name = Volumen de la Música
setting.mutemusic.name = Silenciar Musica setting.mutemusic.name = Silenciar Musica
@@ -507,6 +495,9 @@ rules.waves = Waves
rules.enemyCheat = Infinite AI Resources rules.enemyCheat = Infinite AI Resources
rules.pvp = PvP rules.pvp = PvP
rules.unitdrops = Unit Drops rules.unitdrops = Unit Drops
rules.unitbuildspeedmultiplier = Unit Creation Speed Multiplier
rules.unithealthmultiplier = Unit Health Multiplier
rules.playerdamagemultiplier = Player Damage Multiplier
rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles) rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles)
rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec) rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec)
rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec) rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec)
@@ -592,6 +583,7 @@ mech.itemcapacity = [LIGHT_GRAY]Capacidad de objetos: {0}
mech.minespeed = [LIGHT_GRAY]Velocidad de minado: {0} mech.minespeed = [LIGHT_GRAY]Velocidad de minado: {0}
mech.minepower = [LIGHT_GRAY]Potencia de minado: {0} mech.minepower = [LIGHT_GRAY]Potencia de minado: {0}
mech.ability = [LIGHT_GRAY]Hablidad: {0} mech.ability = [LIGHT_GRAY]Hablidad: {0}
mech.buildspeed = [LIGHT_GRAY]Building Speed: {0}%
liquid.heatcapacity = [LIGHT_GRAY]Capacidad Térmica: {0} liquid.heatcapacity = [LIGHT_GRAY]Capacidad Térmica: {0}
liquid.viscosity = [LIGHT_GRAY]Viscosidad: {0} liquid.viscosity = [LIGHT_GRAY]Viscosidad: {0}
liquid.temperature = [LIGHT_GRAY]Temperatura: {0} liquid.temperature = [LIGHT_GRAY]Temperatura: {0}

View File

@@ -1,45 +1,46 @@
credits.text = Created by [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[]\n\n[GRAY](In case you can't tell, this text is currently unfinished.\nTranslators, don't edit it yet!) credits.text = Created by [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[]\n\n[GRAY](In case you can't tell, this text is currently unfinished.\nTranslators, don't edit it yet!)
credits = Crédits credits = Crédits
contributors = Translators and Contributors contributors = Traducteurs et contributeurs
discord = Rejoignez le discord de Mindustry discord = Rejoignez le discord de Mindustry
link.discord.description = Le discord officiel de mindustry link.discord.description = Le discord officiel de Mindustry!
link.github.description = Code source du jeu link.github.description = Code source du jeu.
link.dev-builds.description = Versions instables du jeu link.dev-builds.description = Versions instables du jeu.
link.trello.description = Trello officiel pour les futurs ajouts . link.trello.description = Trello officiel pour les futurs ajouts .
link.itch.io.description = Page itch.io avec le lien du téléchargement pour PC et la version web . link.itch.io.description = Page itch.io avec le lien du téléchargement pour PC et la version web .
link.google-play.description = Listing par le Google Play Store link.google-play.description = Accès à la version android du Google Play Store.
link.wiki.description = Wiki officiel de mindustry . link.wiki.description = Wiki officiel de mindustry .
linkfail = Erreur lors de l'ouverture du lien !\nL'URL a été copié avec succès. linkfail = Erreur lors de l'ouverture du lien !\nL'URL a été copié avec succès.
screenshot = Screenshot saved to {0} screenshot = Capture d'écran sauvegardée à {0}
gameover = Partie terminée. gameover = Partie terminée.
gameover.pvp = L'équipe [accent] {0}[] a gagnée ! gameover.pvp = L'équipe [accent] {0}[] a gagnée !
highscore = [YELLOW]Nouveau meilleur score! highscore = [YELLOW]Nouveau meilleur score!
stat.wave = Waves Defeated:[accent] {0} stat.wave = Vagues vaincues:[accent] {0}
stat.enemiesDestroyed = Enemies Destroyed:[accent] {0} stat.enemiesDestroyed = Ennemies détruits:[accent] {0}
stat.built = Buildings Built:[accent] {0} stat.built = Bâtiments construits:[accent] {0}
stat.destroyed = Buildings Destroyed:[accent] {0} stat.destroyed = Bâtiments détruits:[accent] {0}
stat.deconstructed = Buildings Deconstructed:[accent] {0} stat.deconstructed = Bâtiments déconstruits:[accent] {0}
stat.delivered = Resources Launched: stat.delivered = Ressources transférées:
stat.rank = Final Rank: [accent]{0} stat.rank = Rang Final: [accent]{0}
placeline = You have selected a block.\nYou can[accent] place in a line[] by[accent] holding down your finger for a few seconds[] and dragging in a direction.\nTry it. placeline = Tu as sélectionné un bloc.\nTu peux les[accent] placer en rangée[] en[accent] maintenant ton doigt sur l'écran pendant quelques secondes[] et en le glissant vers n'importe qu'elle direction.\nEssaye!
removearea = You have selected removal mode.\nYou can[accent] remove blocks in a rectangle[] by[accent] holding down your finger for a few seconds[] and dragging.\nTry it. removearea = Tu as sélectionné le mode de suppression.\nTu peux[accent] supprimer les blocs en rectangle[] en[accent] maintenant ton doigt sur l'écran pendant quelques secondes[] et en le glissant.\nEssaye!
launcheditems = [accent]Launched Items launcheditems = [accent]ressources transférées
map.delete = Êtes-vous sûr de supprimer cette carte"[accent]{0}[]"? map.delete = Êtes-vous sûr de supprimer cette carte"[accent]{0}[]"?
level.highscore = Meilleur score: [accent]{0} level.highscore = Meilleur score: [accent]{0}
level.select = Sélection de niveau level.select = Sélection de niveau
level.mode = Mode de jeu : level.mode = Mode de jeu :
showagain = Ne pas montrer la prochaine fois showagain = Ne pas montrer la prochaine fois
coreattack = [scarlet]<La base est sous les feux ennemis> coreattack = [scarlet]<La base est sous les feux ennemis>
nearpoint = [[ [scarlet]LEAVE DROP POINT IMMEDIATELY[] ]\nannihilation imminent nearpoint = [[ [scarlet]QUITTEZ LE POINT D'APPARITION ENNEMI IMMÉDIATEMENT[] ]\nannihilation imminente
outofbounds = [[ OUT OF BOUNDS ]\n[]self-destruct in {0} outofbounds = [[ HORS LIMITES ]\n[]auto-destruction dans {0}
database = Core Database database = Base de données
savegame = Sauvegarder la partie savegame = Sauvegarder la partie
loadgame = Charger la partie loadgame = Charger la partie
joingame = Rejoindre une partie joingame = Rejoindre une partie
addplayers = Ajouter/Enlever des joueurs addplayers = Ajouter/Enlever des joueurs
customgame = Partie personnalisée customgame = Partie customisée
newgame = New Game newgame = Nouvelle partie
none = <vide> none = <vide>
minimap = Minimap
close = Fermer close = Fermer
quit = Quitter quit = Quitter
maps = Cartes maps = Cartes
@@ -47,16 +48,16 @@ continue = Continuer
maps.none = [LIGHT_GRAY]Aucune carte trouvée! maps.none = [LIGHT_GRAY]Aucune carte trouvée!
about.button = À propos about.button = À propos
name = Nom: name = Nom:
noname = Pick a[accent] player name[] first. noname = Commencer par choisir un[accent] nom de joueur[].
filename = Nom du fichier: filename = Nom du fichier:
unlocked = Nouveau bloc débloqué! unlocked = Nouveau bloc débloqué!
completed = [accent]Completed completed = [accent]Complété
techtree = Tech Tree techtree = Arbre technologique
research.list = [LIGHT_GRAY]Research: research.list = [LIGHT_GRAY]Recherche:
research = Research research = Rechercher
researched = [LIGHT_GRAY]{0} researched. researched = [LIGHT_GRAY]{0} recherché(e).
players = {0} joueurs en ligne players = {0} joueurs en ligne
players.single = {0} joueur en ligne players.single = {0} joueurs en ligne
server.closing = [accent]Fermeture du serveur... server.closing = [accent]Fermeture du serveur...
server.kicked.kick = Vous avez été expulsé du serveur! server.kicked.kick = Vous avez été expulsé du serveur!
server.kicked.serverClose = Serveur fermé. server.kicked.serverClose = Serveur fermé.
@@ -148,7 +149,7 @@ save.wave = Vague {0}
save.difficulty = Difficulté: {0} save.difficulty = Difficulté: {0}
save.date = Dernière sauvegarde: {0} save.date = Dernière sauvegarde: {0}
save.playtime = Temps de jeu: {0} save.playtime = Temps de jeu: {0}
warning = Warning. warning = Avertissement.
confirm = Confirmer confirm = Confirmer
delete = Supprimer delete = Supprimer
ok = OK ok = OK
@@ -191,32 +192,32 @@ editor.oregen.info = Génération de minerais:
editor.mapinfo = Infos sur la carte editor.mapinfo = Infos sur la carte
editor.author = Auteur: editor.author = Auteur:
editor.description = Description: editor.description = Description:
editor.waves = Waves: editor.waves = Vagues:
waves.title = Waves waves.title = Vagues
waves.remove = Remove waves.remove = Remove
waves.never = <never> waves.never = <jamais>
waves.every = every waves.every = tous les
waves.waves = wave(s) waves.waves = vague(s)
waves.perspawn = per spawn waves.perspawn = par apparition
waves.to = to waves.to = à
waves.boss = Boss waves.boss = Boss
waves.preview = Preview waves.preview = Prévisualiser
waves.edit = Edit... waves.edit = Modifier...
waves.copy = Copy to Clipboard waves.copy = Copier dans le Presse-papiers
waves.load = Load from Clipboard waves.load = Coller depuis le Presse-papiers
waves.invalid = Invalid waves in clipboard. waves.invalid = Vagues invalides dans le Presse-papiers.
waves.copied = Waves copied. waves.copied = Vagues copiées
editor.default = [LIGHT_GRAY]<Default> editor.default = [LIGHT_GRAY]<par défaut>
edit = Edit... edit = Modifier...
editor.name = Nom: editor.name = Nom:
editor.teams = Équipe editor.teams = Équipe
editor.elevation = Élevation editor.elevation = Élevation
editor.errorload = Error loading file:\n[accent]{0} editor.errorload = Erreur lors du chargement du fichier:\n[accent]{0}
editor.errorsave = Error saving file:\n[accent]{0} editor.errorsave = Erreur lors de la sauvegarde du fichier:\n[accent]{0}
editor.errorname = Map has no name defined. editor.errorname = La carte n'a pas de nom!
editor.update = Update editor.update = Mettre à jour
editor.randomize = Randomize editor.randomize = Randomiser
editor.apply = Apply editor.apply = Appliquer
editor.generate = Générer editor.generate = Générer
editor.resize = Redimensionner editor.resize = Redimensionner
editor.loadmap = Charger une carte editor.loadmap = Charger une carte
@@ -245,26 +246,26 @@ editor.mapname = Nom de la carte²:
editor.overwrite = [accent]Attention !\nCeci réécrit une carte existante . editor.overwrite = [accent]Attention !\nCeci réécrit une carte existante .
editor.overwrite.confirm = [scarlet]Attention ![] Une carte avec ce nom existe déjà. Êtes-vous sûr de vouloir la réécrire? editor.overwrite.confirm = [scarlet]Attention ![] Une carte avec ce nom existe déjà. Êtes-vous sûr de vouloir la réécrire?
editor.selectmap = Séléctionnez une carte: editor.selectmap = Séléctionnez une carte:
filters.empty = [LIGHT_GRAY]No filters! Add one with the button below. filters.empty = [LIGHT_GRAY]Aucun filtre! Ajoutez-en un avec les boutons ci-dessous.
filter.distort = Distort filter.distort = Déformation
filter.noise = Noise filter.noise = Bruit
filter.ore = Ore filter.ore = Minerai
filter.rivernoise = River Noise filter.rivernoise = Bruit des rivières
filter.scatter = Scatter filter.scatter = Dispersement
filter.terrain = Terrain filter.terrain = Terrain
filter.option.scale = Scale filter.option.scale = Gamme
filter.option.chance = Chance filter.option.chance = Chance
filter.option.mag = Magnitude filter.option.mag = Magnitude
filter.option.threshold = Threshold filter.option.threshold = Seuil
filter.option.circle-scale = Circle Scale filter.option.circle-scale = Gamme du cercle
filter.option.octaves = Octaves filter.option.octaves = Octaves
filter.option.falloff = Falloff filter.option.falloff = Diminution
filter.option.block = Block filter.option.block = Bloc
filter.option.floor = Floor filter.option.floor = Sol
filter.option.wall = Wall filter.option.wall = Mur
filter.option.ore = Ore filter.option.ore = Minerai
filter.option.floor2 = Secondary Floor filter.option.floor2 = Sol secondaire
filter.option.threshold2 = Secondary Threshold filter.option.threshold2 = Seuil secondaire
width = Largeur: width = Largeur:
height = Hauteur: height = Hauteur:
menu = Menu menu = Menu
@@ -281,49 +282,49 @@ editor = Éditeur
mapeditor = Éditeur de carte mapeditor = Éditeur de carte
donate = Faire un\ndon donate = Faire un\ndon
abandon = Abandon abandon = Abandon
abandon.text = This zone and all its resources will be lost to the enemy. abandon.text = Cette zone et tous ses ressources vont être perdues.
locked = Locked locked = Verrouillé
complete = [LIGHT_GRAY]Complete: complete = [LIGHT_GRAY]Compléter:
zone.requirement = Wave {0} in zone {1} zone.requirement = Vague {0} dans la zone {1}
resume = Resume Zone:\n[LIGHT_GRAY]{0} resume = Reprendre la partie en cours:\n[LIGHT_GRAY]{0}
bestwave = [LIGHT_GRAY]Best: {0} bestwave = [LIGHT_GRAY]Meilleur: {0}
launch = Launch launch = Lancement
launch.title = Launch Successful launch.title = Lancement réussi
launch.next = [LIGHT_GRAY]next opportunity at wave {0} launch.next = [LIGHT_GRAY] Prochaine opportunité à la vague {0}
launch.unable = [scarlet]Unable to LAUNCH.[] Enemies. launch.unable = [scarlet]Impossible d'effectuer le lancement.[] Ennemis.
launch.confirm = This will launch all resources in your core.\nYou will not be able to return to this base. launch.confirm = Cela va transférer tous tes ressources dans votre coeur.\nTu ne vas pas pouvoir retourner à cette base.
uncover = Uncover uncover = Découvrir
configure = Configure Loadout configure = Configurer le transfert des ressources.
configure.locked = [LIGHT_GRAY]Reach wave {0}\nto configure loadout. configure.locked = [LIGHT_GRAY]Atteigner la vague {0}\npour configurer le transfert des ressources
zone.unlocked = [LIGHT_GRAY]{0} unlocked. zone.unlocked = [LIGHT_GRAY]{0} Débloquée.
zone.requirement.complete = Wave {0} reached:\n{1} zone requirements met. zone.requirement.complete = Vague {0} atteinte:\n{1} Exigences de la zone complétées
zone.config.complete = Wave {0} reached:\nLoadout config unlocked. zone.config.complete = Vague {0} atteinte:\nConfiguration du transfert débloquée.
zone.resources = Resources Detected: zone.resources = Ressources tectées:
add = Add... add = Ajouter...
boss.health = Boss Health boss.health = Vie du BOSS
connectfail = [crimson]Échec de la connexion au serveur : [accent]{0} connectfail = [crimson]Échec de la connexion au serveur : [accent]{0}
error.unreachable = Server injoignable. error.unreachable = Serveur injoignable.
error.invalidaddress = Adresse invalide. error.invalidaddress = Adresse invalide.
error.timedout = Délai de connexion dépassé!\nAssurez-vous que l'hôte a autorisé l'accès au port, et que l'adresse soit correcte! error.timedout = Délai de connexion dépassé!\nAssurez-vous que l'hôte a autorisé l'accès au port, et que l'adresse soit correcte!
error.mismatch = Erreur de paquet:\nPossible différence de verison entre le client et le serveur .\nVérifiez que vous et l'hôte avez la plus récente version de Mindustry ! error.mismatch = Erreur de paquet:\nPossible différence de verison entre le client et le serveur .\nVérifiez que vous et l'hôte avez la plus récente version de Mindustry !
error.alreadyconnected = Déjà connecté. error.alreadyconnected = Déjà connecté.
error.mapnotfound = Fichier de la carte introuvable! error.mapnotfound = Fichier de la carte introuvable!
error.io = Network I/O error. error.io = Erreur de Réseau (I/O)
error.any = Erreur réseau inconnue. error.any = Erreur réseau inconnue.
zone.groundZero.name = Ground Zero zone.groundZero.name = Première Bataille
zone.craters.name = The Craters zone.craters.name = Les Cratères
zone.frozenForest.name = Frozen Forest zone.frozenForest.name = Forêt Glaciale
zone.ruinousShores.name = Ruinous Shores zone.ruinousShores.name = Rives en Ruine
zone.stainedMountains.name = Stained Mountains zone.stainedMountains.name = Montagnes Tâchetées
zone.desolateRift.name = Desolate Rift zone.desolateRift.name = Fissure abandonnée
zone.nuclearComplex.name = Nuclear Production Complex zone.nuclearComplex.name = Complexe nucléaire
settings.language = Langage settings.language = Langage
settings.reset = Valeur par défaut. settings.reset = Valeur par défaut.
settings.rebind = Réatttribuer settings.rebind = Réatttribuer
settings.controls = Contrôles settings.controls = Contrôles
settings.game = Jeu settings.game = Jeu
settings.sound = Son settings.sound = Son
settings.graphics = Graphiques settings.graphics = Graphismes
settings.cleardata = Effacer les données du jeu... settings.cleardata = Effacer les données du jeu...
settings.clear.confirm = Êtes-vous sûr d'effacer ces données ?\nCe qui est fait ne peut être défait ! settings.clear.confirm = Êtes-vous sûr d'effacer ces données ?\nCe qui est fait ne peut être défait !
settings.clearall.confirm = [scarlet]ATTENTION![]\nCet action effacera toutes les données , incluant les sauvegarges, les cartes, les déblocages et la configuration des touches.\nUne fois que vous aurez pressé 'ok' le jeu effacera toutes les données et se fermera. settings.clearall.confirm = [scarlet]ATTENTION![]\nCet action effacera toutes les données , incluant les sauvegarges, les cartes, les déblocages et la configuration des touches.\nUne fois que vous aurez pressé 'ok' le jeu effacera toutes les données et se fermera.
@@ -335,34 +336,31 @@ no = Non
info.title = Info info.title = Info
error.title = [crimson]Une erreur s'est produite error.title = [crimson]Une erreur s'est produite
error.crashtitle = Une erreur s'est produite error.crashtitle = Une erreur s'est produite
bar.drillspeed = Drill Speed: {0}/s bar.drillspeed = Vitesse de forage: {0}/s
bar.efficiency = Efficiency: {0}% bar.efficiency = Efficacité: {0}%
block.unknown = [LIGHT_GRAY]??? block.unknown = [LIGHT_GRAY]???
blocks.blockinfo = Info sur le bloc blocks.blockinfo = Info sur le bloc
bar.powerbalance = Power: {0} bar.powerbalance = Énergie: {0}
bar.poweroutput = Power Output: {0} bar.poweroutput = Énergie en sortie: {0}
blocks.powercapacity = capacité d'énergie blocks.powercapacity = Capacité d'énergie
blocks.powershot = Énergie/Tir blocks.powershot = Énergie/Tir
blocks.targetsair = Cible les unités aériennes blocks.targetsair = Cible les unités aériennes
blocks.targetsground = Targets Ground blocks.targetsground = Cible les unités terrestres
bar.items = Items: {0} bar.items = Objets: {0}
blocks.itemsmoved = Move Speed blocks.itemsmoved = Vitesse de Déplacement
blocks.launchtime = Time Between Launches blocks.launchtime = Temps entre chaque lancement
blocks.shootrange = Portée blocks.shootrange = Portée
blocks.size = Taille blocks.size = Taille
blocks.liquidcapacity = Capacité en liquide blocks.liquidcapacity = Capacité en liquide
blocks.maxitemssecond = Production maximale
blocks.powerrange = Distance de transmission blocks.powerrange = Distance de transmission
blocks.poweruse = Énergie utilisée blocks.poweruse = Énergie utilisée
blocks.powerdamage = Énergie/Dégâts blocks.powerdamage = Énergie/Dégâts
blocks.inputitemcapacity = Capacité d'entrée
blocks.outputitemcapacity = Capacité de sortie
blocks.itemcapacity = Stockage blocks.itemcapacity = Stockage
blocks.basepowergeneration = Generation d'énergie minimale blocks.basepowergeneration = Génération d'énergie minimale
blocks.powertransferspeed = Vitesse de transfert d'énergie blocks.powertransferspeed = Vitesse de transfert d'énergie
blocks.craftspeed = Vitesse de production blocks.craftspeed = Vitesse de production
blocks.repairtime = Block Full Repair Time blocks.repairtime = Temps pour la Réparation Totale du Bloc
blocks.range = Range blocks.range = Portée
blocks.inputliquid = Liquide requis blocks.inputliquid = Liquide requis
blocks.inputliquidaux = Liquide optionnel blocks.inputliquidaux = Liquide optionnel
blocks.inputitem = Objets en entrée blocks.inputitem = Objets en entrée
@@ -370,23 +368,23 @@ blocks.inputitems = Objets utilisés
blocks.outputitem = Objet produit blocks.outputitem = Objet produit
blocks.drilltier = Forable blocks.drilltier = Forable
blocks.drillspeed = Vitesse de forage de base blocks.drillspeed = Vitesse de forage de base
blocks.maxunits = Max Active Units blocks.maxunits = Nombre d'unité actives maximal
blocks.liquidoutput = Liquide en sortie blocks.liquidoutput = Liquide en sortie
blocks.liquidoutputspeed = Vitesse de production de liquide blocks.liquidoutputspeed = Vitesse de production de liquide
blocks.liquiduse = Quantité de liquide utilisée blocks.liquiduse = Quantité de liquide utilisée
blocks.coolant = Liquide de refroidissement blocks.coolant = Liquide de refroidissement
bar.liquid = Liquid bar.liquid = Liquide
blocks.coolantuse = Quantité de liquide de refroidissement utilisée blocks.coolantuse = Quantité de liquide de refroidissement utilisée
blocks.inputliquidfuel = Carburant liquide blocks.inputliquidfuel = Carburant liquide
blocks.liquidfueluse = Quantité de carburant liquide utilisé blocks.liquidfueluse = Quantité de carburant liquide utilisé
blocks.boostitem = Boost Item blocks.boostitem = Objets boosters
blocks.boostliquid = Boost Liquid blocks.boostliquid = Liquides boosters
blocks.health = Santé blocks.health = Santé
bar.heat = Heat bar.heat = Chaleur
bar.power = Power bar.power = Énergie
bar.progress = Build Progress bar.progress = Progression de la construction
bar.spawned = Units: {0}/{1} bar.spawned = Unités: {0}/{1}
blocks.power.satisfaction = Power Satisfaction blocks.power.satisfaction = Énergie minimum nécessaire
blocks.inaccuracy = Précision blocks.inaccuracy = Précision
blocks.shots = Tir blocks.shots = Tir
blocks.reload = Tirs/Seconde blocks.reload = Tirs/Seconde
@@ -394,18 +392,18 @@ blocks.inputfuel = Carburant
blocks.fuelburntime = Durée du carburant blocks.fuelburntime = Durée du carburant
blocks.inputcapacity = Capacité d'entrée blocks.inputcapacity = Capacité d'entrée
blocks.outputcapacity = Capacité de production blocks.outputcapacity = Capacité de production
blocks.ammo = Ammo blocks.ammo = Munitions
bullet.damage = [stat]{0}[lightgray] dmg bullet.damage = [stat]{0}[lightgray] dmg
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles bullet.splashdamage = [stat]{0}[lightgray] dmg de zone ~[stat] {1}[lightgray] tuiles
bullet.incendiary = [stat]incendiary bullet.incendiary = [stat]incendiaire
bullet.homing = [stat]homing bullet.homing = [stat]autoguidage
bullet.shock = [stat]shock bullet.shock = [stat]choc
bullet.frag = [stat]frag bullet.frag = [stat]frag
bullet.knockback = [stat]{0}[lightgray] knockback bullet.knockback = [stat]{0}[lightgray] recul
bullet.freezing = [stat]freezing bullet.freezing = [stat]gel
bullet.tarred = [stat]tarred bullet.tarred = [stat]tarred
bullet.multiplier = [stat]{0}[lightgray]x ammo multiplier bullet.multiplier = [stat]{0}[lightgray]x multiplicateur de munitions
bullet.reload = [stat]{0}[lightgray]x reload bullet.reload = [stat]{0}[lightgray]x rechargement
unit.blocks = blocs unit.blocks = blocs
unit.powersecond = Énergie/seconde unit.powersecond = Énergie/seconde
unit.liquidsecond = Liquides/seconde unit.liquidsecond = Liquides/seconde
@@ -414,6 +412,9 @@ unit.liquidunits = Unité de liquide
unit.powerunits = Unité d'énergie unit.powerunits = Unité d'énergie
unit.degrees = degrés unit.degrees = degrés
unit.seconds = secondes unit.seconds = secondes
unit.persecond = /sec
unit.timesspeed = x speed
unit.percent = %
unit.items = Objets unit.items = Objets
category.general = Général category.general = Général
category.power = Énergie category.power = Énergie
@@ -421,22 +422,22 @@ category.liquids = Liquides
category.items = Objets category.items = Objets
category.crafting = Fabrication category.crafting = Fabrication
category.shooting = Défense category.shooting = Défense
category.optional = Optional Enhancements category.optional = Améliorations optionnelles
setting.landscape.name = Lock Landscape setting.landscape.name = Verrouiller la rotation en mode paysage
setting.shadows.name = Shadows setting.shadows.name = Ombres
setting.animatedwater.name = Animated Water setting.animatedwater.name = Eau animée
setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[] setting.antialias.name = Antialias[LIGHT_GRAY] (demande le redémarrage de l'appareil)[]
setting.indicators.name = Ally Indicators setting.indicators.name = Indicateurs pour les alliés
setting.autotarget.name = Visée automatique setting.autotarget.name = Visée automatique
setting.fpscap.name = Max FPS setting.fpscap.name = Max FPS
setting.fpscap.none = None setting.fpscap.none = None
setting.fpscap.text = {0} FPS setting.fpscap.text = {0} FPS
setting.swapdiagonal.name = Always Diagonal Placement setting.swapdiagonal.name = Autoriser le placement des blocs en diagonal
setting.difficulty.training = entraînement setting.difficulty.training = entraînement
setting.difficulty.easy = facile setting.difficulty.easy = Facile
setting.difficulty.normal = normal setting.difficulty.normal = Normal
setting.difficulty.hard = difficile setting.difficulty.hard = Difficile
setting.difficulty.insane = Extreme setting.difficulty.insane = Extrème
setting.difficulty.name = Difficulté: setting.difficulty.name = Difficulté:
setting.screenshake.name = Tremblement de l'écran setting.screenshake.name = Tremblement de l'écran
setting.effects.name = Montrer les effets setting.effects.name = Montrer les effets
@@ -444,37 +445,37 @@ setting.sensitivity.name = Sensibilité de la manette
setting.saveinterval.name = Intervalle des sauvegardes auto setting.saveinterval.name = Intervalle des sauvegardes auto
setting.seconds = {0} secondes setting.seconds = {0} secondes
setting.fullscreen.name = Plein écran setting.fullscreen.name = Plein écran
setting.borderless.name = Borderless Window setting.borderless.name = Fenêtre sans contour
setting.fps.name = Afficher FPS setting.fps.name = Afficher FPS
setting.vsync.name = VSync setting.vsync.name = VSync
setting.lasers.name = Afficher les rayons des lasers setting.lasers.name = Afficher les rayons des lasers
setting.minimap.name = montrer la minimap setting.minimap.name = Montrer la minimap
setting.musicvol.name = volume de la musique setting.musicvol.name = Volume de la musique
setting.mutemusic.name = Couper la musique setting.mutemusic.name = Couper la musique
setting.sfxvol.name = Volume des SFX setting.sfxvol.name = Volume des SFX
setting.mutesound.name = Couper les SFX setting.mutesound.name = Couper les SFX
setting.crashreport.name = Send Anonymous Crash Reports setting.crashreport.name = Envoyer un rapport de crash anonyme
keybind.title = Paramétrer les touches keybind.title = Paramétrer les touches
category.general.name = General category.general.name = Général
category.view.name = Voir category.view.name = Voir
category.multiplayer.name = Multijoueur category.multiplayer.name = Multijoueur
command.attack = Attaque command.attack = Attaque
command.retreat = Retraite command.retreat = Retraite
command.patrol = Patrouille command.patrol = Patrouille
keybind.gridMode.name = Block Select keybind.gridMode.name = Sélection des blocs
keybind.gridModeShift.name = Category Select keybind.gridModeShift.name = Sélection des catégories
keybind.press = Appuyer sur une touche... keybind.press = Appuyer sur une touche...
keybind.press.axis = Appuyer sur un axe ou une touche... keybind.press.axis = Appuyer sur un axe ou une touche...
keybind.screenshot.name = Map Screenshot keybind.screenshot.name = Capture d'écran
keybind.move_x.name = mouvement x keybind.move_x.name = mouvement x
keybind.move_y.name = mouvement y keybind.move_y.name = mouvement y
keybind.select.name = sélectionner keybind.select.name = sélectionner
keybind.diagonal_placement.name = Diagonal Placement keybind.diagonal_placement.name = Placement en diagonal
keybind.pick.name = Pick Block keybind.pick.name = Choisir un bloc
keybind.break_block.name = Break Block keybind.break_block.name = Suppprimer un bloc
keybind.deselect.name = Déselectionner keybind.deselect.name = Désélectionner
keybind.shoot.name = tirer keybind.shoot.name = tirer
keybind.zoom_hold.name = tenir le zoom keybind.zoom_hold.name = maintenir le zoom
keybind.zoom.name = zoom keybind.zoom.name = zoom
keybind.menu.name = menu keybind.menu.name = menu
keybind.pause.name = Pause keybind.pause.name = Pause
@@ -507,6 +508,9 @@ rules.waves = Waves
rules.enemyCheat = Infinite AI Resources rules.enemyCheat = Infinite AI Resources
rules.pvp = PvP rules.pvp = PvP
rules.unitdrops = Unit Drops rules.unitdrops = Unit Drops
rules.unitbuildspeedmultiplier = Unit Creation Speed Multiplier
rules.unithealthmultiplier = Unit Health Multiplier
rules.playerdamagemultiplier = Player Damage Multiplier
rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles) rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles)
rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec) rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec)
rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec) rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec)
@@ -592,6 +596,7 @@ mech.itemcapacity = [LIGHT_GRAY]Capacité de stockage: {0}
mech.minespeed = [LIGHT_GRAY]Vitesse de minage: {0} mech.minespeed = [LIGHT_GRAY]Vitesse de minage: {0}
mech.minepower = [LIGHT_GRAY]Puissance du minage: {0} mech.minepower = [LIGHT_GRAY]Puissance du minage: {0}
mech.ability = [LIGHT_GRAY]Compétence: {0} mech.ability = [LIGHT_GRAY]Compétence: {0}
mech.buildspeed = [LIGHT_GRAY]Building Speed: {0}%
liquid.heatcapacity = [LIGHT_GRAY]Capacité Thermique: {0} liquid.heatcapacity = [LIGHT_GRAY]Capacité Thermique: {0}
liquid.viscosity = [LIGHT_GRAY]Viscosité: {0} liquid.viscosity = [LIGHT_GRAY]Viscosité: {0}
liquid.temperature = [LIGHT_GRAY]Température: {0} liquid.temperature = [LIGHT_GRAY]Température: {0}

View File

@@ -40,6 +40,7 @@ addplayers = Ajouter/Enlever des joueurs
customgame = Partie personnalisée customgame = Partie personnalisée
newgame = New Game newgame = New Game
none = <Vide> none = <Vide>
minimap = Minimap
close = Fermer close = Fermer
quit = Quitter quit = Quitter
maps = Cartes maps = Cartes
@@ -335,66 +336,48 @@ no = Non
info.title = Info info.title = Info
error.title = [crimson]Une erreur s'est produite error.title = [crimson]Une erreur s'est produite
error.crashtitle = Une erreur s'est produite error.crashtitle = Une erreur s'est produite
bar.drillspeed = Drill Speed: {0}/s blocks.input = Input
bar.efficiency = Efficiency: {0}% blocks.output = Output
blocks.booster = Booster
block.unknown = [LIGHT_GRAY]??? block.unknown = [LIGHT_GRAY]???
blocks.blockinfo = Info sur le bloc
bar.powerbalance = Power: {0}
bar.poweroutput = Power Output: {0}
blocks.powercapacity = Capacité d'énergie blocks.powercapacity = Capacité d'énergie
blocks.powershot = Énergie/Tir blocks.powershot = Énergie/Tir
blocks.targetsair = Cible les unités aériennes blocks.targetsair = Cible les unités aériennes
blocks.targetsground = Targets Ground blocks.targetsground = Targets Ground
bar.items = Items: {0}
blocks.itemsmoved = Move Speed blocks.itemsmoved = Move Speed
blocks.launchtime = Time Between Launches blocks.launchtime = Time Between Launches
blocks.shootrange = Portée blocks.shootrange = Portée
blocks.size = Taille blocks.size = Taille
blocks.liquidcapacity = Capacité en liquide blocks.liquidcapacity = Capacité en liquide
blocks.maxitemssecond = Production maximale
blocks.powerrange = Distance de transmission blocks.powerrange = Distance de transmission
blocks.poweruse = Énergie utilisée blocks.poweruse = Énergie utilisée
blocks.powerdamage = Énergie/Dégâts blocks.powerdamage = Énergie/Dégâts
blocks.inputitemcapacity = Capacité d'entrée
blocks.outputitemcapacity = Capacité de sortie
blocks.itemcapacity = Stockage blocks.itemcapacity = Stockage
blocks.basepowergeneration = Production d'énergie de base blocks.basepowergeneration = Production d'énergie de base
blocks.powertransferspeed = Vitesse de transfert d'énergie blocks.productiontime = Production Time
blocks.craftspeed = Vitesse de production
blocks.repairtime = Block Full Repair Time blocks.repairtime = Block Full Repair Time
blocks.speedincrease = Speed Increase
blocks.range = Range blocks.range = Range
blocks.inputliquid = Liquide requis
blocks.inputliquidaux = Liquide optionnel
blocks.inputitem = Objet utilisé
blocks.inputitems = Objets utilisés
blocks.outputitem = Objet produit
blocks.drilltier = Forable blocks.drilltier = Forable
blocks.drillspeed = Vitesse de forage de base blocks.drillspeed = Vitesse de forage de base
blocks.boosteffect = Boost Effect
blocks.maxunits = Max Active Units blocks.maxunits = Max Active Units
blocks.liquidoutput = Liquide en sortie
blocks.liquidoutputspeed = Vitesse de sortie du liquide
blocks.liquiduse = Quantité de liquide utilisé
blocks.coolant = Liquide de refroidissement
bar.liquid = Liquid
blocks.coolantuse = Quantité de liquide de refroidissement utilisé
blocks.inputliquidfuel = Carburant liquide
blocks.liquidfueluse = Quantité de carburant liquide utilisé
blocks.boostitem = Objet boostant la production
blocks.boostliquid = Liquide boostant la production
blocks.health = Santé blocks.health = Santé
blocks.inaccuracy = Précision
blocks.shots = Tirs
blocks.reload = Tirs/Seconde
blocks.ammo = Ammo
bar.drillspeed = Drill Speed: {0}/s
bar.efficiency = Efficiency: {0}%
bar.powerbalance = Power: {0}
bar.poweramount = Power: {0}
bar.poweroutput = Power Output: {0}
bar.items = Items: {0}
bar.liquid = Liquid
bar.heat = Heat bar.heat = Heat
bar.power = Power bar.power = Power
bar.progress = Build Progress bar.progress = Build Progress
bar.spawned = Units: {0}/{1} bar.spawned = Units: {0}/{1}
blocks.power.satisfaction = Power Satisfaction
blocks.inaccuracy = Précision
blocks.shots = Tirs
blocks.reload = Tirs/Seconde
blocks.inputfuel = Carburant
blocks.fuelburntime = Durée du carburant
blocks.inputcapacity = Capacité d'entrée
blocks.outputcapacity = Capacité de sortie
blocks.ammo = Ammo
bullet.damage = [stat]{0}[lightgray] dmg bullet.damage = [stat]{0}[lightgray] dmg
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
bullet.incendiary = [stat]incendiary bullet.incendiary = [stat]incendiary
@@ -414,6 +397,9 @@ unit.liquidunits = Unité de liquide
unit.powerunits = Unité d'énergie unit.powerunits = Unité d'énergie
unit.degrees = degrés unit.degrees = degrés
unit.seconds = secondes unit.seconds = secondes
unit.persecond = /sec
unit.timesspeed = x speed
unit.percent = %
unit.items = Objets unit.items = Objets
category.general = Général category.general = Général
category.power = Énergie category.power = Énergie
@@ -425,6 +411,7 @@ category.optional = Améliorations facultatives
setting.landscape.name = Lock Landscape setting.landscape.name = Lock Landscape
setting.shadows.name = Shadows setting.shadows.name = Shadows
setting.animatedwater.name = Animated Water setting.animatedwater.name = Animated Water
setting.animatedshields.name = Animated Shields
setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[] setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[]
setting.indicators.name = Indicateurs d'alliés setting.indicators.name = Indicateurs d'alliés
setting.autotarget.name = Visée automatique setting.autotarget.name = Visée automatique
@@ -448,6 +435,7 @@ setting.borderless.name = Borderless Window
setting.fps.name = Afficher FPS setting.fps.name = Afficher FPS
setting.vsync.name = VSync setting.vsync.name = VSync
setting.lasers.name = Afficher les rayons des lasers setting.lasers.name = Afficher les rayons des lasers
setting.pixelate.name = Pixelate [LIGHT_GRAY](may decrease performance)
setting.minimap.name = Montrer la minimap setting.minimap.name = Montrer la minimap
setting.musicvol.name = Volume de la musique setting.musicvol.name = Volume de la musique
setting.mutemusic.name = Couper la musique setting.mutemusic.name = Couper la musique
@@ -507,6 +495,9 @@ rules.waves = Waves
rules.enemyCheat = Infinite AI Resources rules.enemyCheat = Infinite AI Resources
rules.pvp = PvP rules.pvp = PvP
rules.unitdrops = Unit Drops rules.unitdrops = Unit Drops
rules.unitbuildspeedmultiplier = Unit Creation Speed Multiplier
rules.unithealthmultiplier = Unit Health Multiplier
rules.playerdamagemultiplier = Player Damage Multiplier
rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles) rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles)
rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec) rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec)
rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec) rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec)
@@ -592,6 +583,7 @@ mech.itemcapacity = [LIGHT_GRAY]Capacité de stockage: {0}
mech.minespeed = [LIGHT_GRAY]Vitesse de minage: {0} mech.minespeed = [LIGHT_GRAY]Vitesse de minage: {0}
mech.minepower = [LIGHT_GRAY]Puissance du minage: {0} mech.minepower = [LIGHT_GRAY]Puissance du minage: {0}
mech.ability = [LIGHT_GRAY]Compétence: {0} mech.ability = [LIGHT_GRAY]Compétence: {0}
mech.buildspeed = [LIGHT_GRAY]Building Speed: {0}%
liquid.heatcapacity = [LIGHT_GRAY]Capacité Thermique {0} liquid.heatcapacity = [LIGHT_GRAY]Capacité Thermique {0}
liquid.viscosity = [LIGHT_GRAY]Viscosité: {0} liquid.viscosity = [LIGHT_GRAY]Viscosité: {0}
liquid.temperature = [LIGHT_GRAY]Température: {0} liquid.temperature = [LIGHT_GRAY]Température: {0}

View File

@@ -40,6 +40,7 @@ addplayers = Tambah/Hapus Pemain
customgame = Game Bebas customgame = Game Bebas
newgame = New Game newgame = New Game
none = <kosong> none = <kosong>
minimap = Minimap
close = Tutup close = Tutup
quit = Keluar quit = Keluar
maps = Peta maps = Peta
@@ -335,66 +336,48 @@ no = No
info.title = [accent]Info info.title = [accent]Info
error.title = [crimson]Telah terjadi kesalahan error.title = [crimson]Telah terjadi kesalahan
error.crashtitle = Telah terjadi kesalahan error.crashtitle = Telah terjadi kesalahan
bar.drillspeed = Drill Speed: {0}/s blocks.input = Input
bar.efficiency = Efficiency: {0}% blocks.output = Output
blocks.booster = Booster
block.unknown = [LIGHT_GRAY]??? block.unknown = [LIGHT_GRAY]???
blocks.blockinfo = Info Blok
bar.powerbalance = Power: {0}
bar.poweroutput = Power Output: {0}
blocks.powercapacity = Kapasitas Tenaga blocks.powercapacity = Kapasitas Tenaga
blocks.powershot = Tenaga/tembakan blocks.powershot = Tenaga/tembakan
blocks.targetsair = Targets Air blocks.targetsair = Targets Air
blocks.targetsground = Targets Ground blocks.targetsground = Targets Ground
bar.items = Items: {0}
blocks.itemsmoved = Move Speed blocks.itemsmoved = Move Speed
blocks.launchtime = Time Between Launches blocks.launchtime = Time Between Launches
blocks.shootrange = Range blocks.shootrange = Range
blocks.size = Ukuran blocks.size = Ukuran
blocks.liquidcapacity = Kapasitas cairan blocks.liquidcapacity = Kapasitas cairan
blocks.maxitemssecond = Batas barang/detik
blocks.powerrange = Jangkauan tenaga blocks.powerrange = Jangkauan tenaga
blocks.poweruse = Power Use blocks.poweruse = Power Use
blocks.powerdamage = Power/Damage blocks.powerdamage = Power/Damage
blocks.inputitemcapacity = Input Item Capacity
blocks.outputitemcapacity = Input Item Capacity
blocks.itemcapacity = Kapasitas Barang blocks.itemcapacity = Kapasitas Barang
blocks.basepowergeneration = Base Power Generation blocks.basepowergeneration = Base Power Generation
blocks.powertransferspeed = Power Transfer blocks.productiontime = Production Time
blocks.craftspeed = Production Speed
blocks.repairtime = Block Full Repair Time blocks.repairtime = Block Full Repair Time
blocks.speedincrease = Speed Increase
blocks.range = Range blocks.range = Range
blocks.inputliquid = Cairan yang Masuk
blocks.inputliquidaux = Aux Liquid
blocks.inputitem = Barang yang Masuk
blocks.inputitems = Input Items
blocks.outputitem = Output Item
blocks.drilltier = Drillables blocks.drilltier = Drillables
blocks.drillspeed = Base Drill Speed blocks.drillspeed = Base Drill Speed
blocks.boosteffect = Boost Effect
blocks.maxunits = Max Active Units blocks.maxunits = Max Active Units
blocks.liquidoutput = Liquid Output
blocks.liquidoutputspeed = Liquid Output Speed
blocks.liquiduse = Liquid Use
blocks.coolant = Coolant
bar.liquid = Liquid
blocks.coolantuse = Coolant Use
blocks.inputliquidfuel = Fuel Liquid
blocks.liquidfueluse = Liquid Fuel Use
blocks.boostitem = Boost Item
blocks.boostliquid = Boost Liquid
blocks.health = Darah blocks.health = Darah
blocks.inaccuracy = Ketidaktelitian
blocks.shots = Tembakan
blocks.reload = Reload
blocks.ammo = Ammo
bar.drillspeed = Drill Speed: {0}/s
bar.efficiency = Efficiency: {0}%
bar.powerbalance = Power: {0}
bar.poweramount = Power: {0}
bar.poweroutput = Power Output: {0}
bar.items = Items: {0}
bar.liquid = Liquid
bar.heat = Heat bar.heat = Heat
bar.power = Power bar.power = Power
bar.progress = Build Progress bar.progress = Build Progress
bar.spawned = Units: {0}/{1} bar.spawned = Units: {0}/{1}
blocks.power.satisfaction = Power Satisfaction
blocks.inaccuracy = Ketidaktelitian
blocks.shots = Tembakan
blocks.reload = Reload
blocks.inputfuel = Fuel
blocks.fuelburntime = Fuel Burn Time
blocks.inputcapacity = Kapasitas masuk
blocks.outputcapacity = Kapasitas keluar
blocks.ammo = Ammo
bullet.damage = [stat]{0}[lightgray] dmg bullet.damage = [stat]{0}[lightgray] dmg
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
bullet.incendiary = [stat]incendiary bullet.incendiary = [stat]incendiary
@@ -414,6 +397,9 @@ unit.liquidunits = liquid units
unit.powerunits = power units unit.powerunits = power units
unit.degrees = degrees unit.degrees = degrees
unit.seconds = seconds unit.seconds = seconds
unit.persecond = /sec
unit.timesspeed = x speed
unit.percent = %
unit.items = items unit.items = items
category.general = General category.general = General
category.power = Power category.power = Power
@@ -425,6 +411,7 @@ category.optional = Optional Enhancements
setting.landscape.name = Lock Landscape setting.landscape.name = Lock Landscape
setting.shadows.name = Shadows setting.shadows.name = Shadows
setting.animatedwater.name = Animated Water setting.animatedwater.name = Animated Water
setting.animatedshields.name = Animated Shields
setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[] setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[]
setting.indicators.name = Ally Indicators setting.indicators.name = Ally Indicators
setting.autotarget.name = Auto-Target setting.autotarget.name = Auto-Target
@@ -448,6 +435,7 @@ setting.borderless.name = Borderless Window
setting.fps.name = Tunjukkan FPS setting.fps.name = Tunjukkan FPS
setting.vsync.name = VSync setting.vsync.name = VSync
setting.lasers.name = Tampilkan Laser Tenaga setting.lasers.name = Tampilkan Laser Tenaga
setting.pixelate.name = Pixelate [LIGHT_GRAY](may decrease performance)
setting.minimap.name = Show Minimap setting.minimap.name = Show Minimap
setting.musicvol.name = Volume Musik setting.musicvol.name = Volume Musik
setting.mutemusic.name = Bisukan Musik setting.mutemusic.name = Bisukan Musik
@@ -507,6 +495,9 @@ rules.waves = Waves
rules.enemyCheat = Infinite AI Resources rules.enemyCheat = Infinite AI Resources
rules.pvp = PvP rules.pvp = PvP
rules.unitdrops = Unit Drops rules.unitdrops = Unit Drops
rules.unitbuildspeedmultiplier = Unit Creation Speed Multiplier
rules.unithealthmultiplier = Unit Health Multiplier
rules.playerdamagemultiplier = Player Damage Multiplier
rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles) rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles)
rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec) rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec)
rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec) rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec)
@@ -592,6 +583,7 @@ mech.itemcapacity = [LIGHT_GRAY]Item Capacity: {0}
mech.minespeed = [LIGHT_GRAY]Mining Speed: {0} mech.minespeed = [LIGHT_GRAY]Mining Speed: {0}
mech.minepower = [LIGHT_GRAY]Mining Power: {0} mech.minepower = [LIGHT_GRAY]Mining Power: {0}
mech.ability = [LIGHT_GRAY]Ability: {0} mech.ability = [LIGHT_GRAY]Ability: {0}
mech.buildspeed = [LIGHT_GRAY]Building Speed: {0}%
liquid.heatcapacity = [LIGHT_GRAY]Heat Capacity: {0} liquid.heatcapacity = [LIGHT_GRAY]Heat Capacity: {0}
liquid.viscosity = [LIGHT_GRAY]Viscosity: {0} liquid.viscosity = [LIGHT_GRAY]Viscosity: {0}
liquid.temperature = [LIGHT_GRAY]Temperature: {0} liquid.temperature = [LIGHT_GRAY]Temperature: {0}

View File

@@ -40,6 +40,7 @@ addplayers = Aggiungi/rimuovi giocatori
customgame = Gioco personalizzato customgame = Gioco personalizzato
newgame = New Game newgame = New Game
none = <Niente . . . > none = <Niente . . . >
minimap = Minimap
close = Chiuso close = Chiuso
quit = Esci quit = Esci
maps = Mappe maps = Mappe
@@ -335,66 +336,48 @@ no = No
info.title = [accent] Info info.title = [accent] Info
error.title = [crimson]Si è verificato un errore error.title = [crimson]Si è verificato un errore
error.crashtitle = Si è verificato un errore error.crashtitle = Si è verificato un errore
bar.drillspeed = Drill Speed: {0}/s blocks.input = Input
bar.efficiency = Efficiency: {0}% blocks.output = Output
blocks.booster = Booster
block.unknown = [LIGHT_GRAY]??? block.unknown = [LIGHT_GRAY]???
blocks.blockinfo = info sul blocco
bar.powerbalance = Power: {0}
bar.poweroutput = Power Output: {0}
blocks.powercapacity = Capacità Energetica blocks.powercapacity = Capacità Energetica
blocks.powershot = Danno/Colpo blocks.powershot = Danno/Colpo
blocks.targetsair = Attacca nemici aerei blocks.targetsair = Attacca nemici aerei
blocks.targetsground = Targets Ground blocks.targetsground = Targets Ground
bar.items = Items: {0}
blocks.itemsmoved = Move Speed blocks.itemsmoved = Move Speed
blocks.launchtime = Time Between Launches blocks.launchtime = Time Between Launches
blocks.shootrange = Raggio blocks.shootrange = Raggio
blocks.size = Grandezza blocks.size = Grandezza
blocks.liquidcapacity = Capacità del liquido blocks.liquidcapacity = Capacità del liquido
blocks.maxitemssecond = Oggetti massimi/secondo
blocks.powerrange = Raggio Energia blocks.powerrange = Raggio Energia
blocks.poweruse = Utilizzo energia blocks.poweruse = Utilizzo energia
blocks.powerdamage = Power/Damage blocks.powerdamage = Power/Damage
blocks.inputitemcapacity = Capacità oggetti in entrata
blocks.outputitemcapacity = Capacità oggetti in uscità
blocks.itemcapacity = Capacità blocks.itemcapacity = Capacità
blocks.basepowergeneration = Base Power Generation blocks.basepowergeneration = Base Power Generation
blocks.powertransferspeed = Velocità trasferimento energia blocks.productiontime = Production Time
blocks.craftspeed = Velocità produzione
blocks.repairtime = Block Full Repair Time blocks.repairtime = Block Full Repair Time
blocks.speedincrease = Speed Increase
blocks.range = Range blocks.range = Range
blocks.inputliquid = Input del liquido
blocks.inputliquidaux = Liquidi extra
blocks.inputitem = Input Oggetto
blocks.inputitems = Oggetti in entrata
blocks.outputitem = Oggetti in uscita
blocks.drilltier = Scavabili blocks.drilltier = Scavabili
blocks.drillspeed = Velocità scavo stbile blocks.drillspeed = Velocità scavo stbile
blocks.boosteffect = Boost Effect
blocks.maxunits = Max Active Units blocks.maxunits = Max Active Units
blocks.liquidoutput = Uscita liquidi
blocks.liquidoutputspeed = Liquid Output Speed
blocks.liquiduse = Uso liquidi
blocks.coolant = Refrigerante
bar.liquid = Liquid
blocks.coolantuse = uso refrigerante
blocks.inputliquidfuel = carburante liquido
blocks.liquidfueluse = Utilizzo carburante liquido
blocks.boostitem = Boost Item
blocks.boostliquid = Boost Liquid
blocks.health = Salute blocks.health = Salute
blocks.inaccuracy = Inaccuratezza
blocks.shots = Colpi
blocks.reload = Ricarica
blocks.ammo = Ammo
bar.drillspeed = Drill Speed: {0}/s
bar.efficiency = Efficiency: {0}%
bar.powerbalance = Power: {0}
bar.poweramount = Power: {0}
bar.poweroutput = Power Output: {0}
bar.items = Items: {0}
bar.liquid = Liquid
bar.heat = Heat bar.heat = Heat
bar.power = Power bar.power = Power
bar.progress = Build Progress bar.progress = Build Progress
bar.spawned = Units: {0}/{1} bar.spawned = Units: {0}/{1}
blocks.power.satisfaction = Power Satisfaction
blocks.inaccuracy = Inaccuratezza
blocks.shots = Colpi
blocks.reload = Ricarica
blocks.inputfuel = Carburante
blocks.fuelburntime = Tempo combustione carburante
blocks.inputcapacity = Capacità di ingresso
blocks.outputcapacity = Capacità di uscita
blocks.ammo = Ammo
bullet.damage = [stat]{0}[lightgray] dmg bullet.damage = [stat]{0}[lightgray] dmg
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
bullet.incendiary = [stat]incendiary bullet.incendiary = [stat]incendiary
@@ -414,6 +397,9 @@ unit.liquidunits = unità liquidi
unit.powerunits = unità energia unit.powerunits = unità energia
unit.degrees = gradi unit.degrees = gradi
unit.seconds = secondi unit.seconds = secondi
unit.persecond = /sec
unit.timesspeed = x speed
unit.percent = %
unit.items = oggetti unit.items = oggetti
category.general = Generali category.general = Generali
category.power = Energia category.power = Energia
@@ -425,6 +411,7 @@ category.optional = Optional Enhancements
setting.landscape.name = Lock Landscape setting.landscape.name = Lock Landscape
setting.shadows.name = Shadows setting.shadows.name = Shadows
setting.animatedwater.name = Animated Water setting.animatedwater.name = Animated Water
setting.animatedshields.name = Animated Shields
setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[] setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[]
setting.indicators.name = Ally Indicators setting.indicators.name = Ally Indicators
setting.autotarget.name = Auto-Target setting.autotarget.name = Auto-Target
@@ -448,6 +435,7 @@ setting.borderless.name = Borderless Window
setting.fps.name = Mostra FPS setting.fps.name = Mostra FPS
setting.vsync.name = VSync setting.vsync.name = VSync
setting.lasers.name = Mostra Laser Energetici setting.lasers.name = Mostra Laser Energetici
setting.pixelate.name = Pixelate [LIGHT_GRAY](may decrease performance)
setting.minimap.name = Mostra minimappa setting.minimap.name = Mostra minimappa
setting.musicvol.name = Volume Musica setting.musicvol.name = Volume Musica
setting.mutemusic.name = Silenzia musica setting.mutemusic.name = Silenzia musica
@@ -507,6 +495,9 @@ rules.waves = Waves
rules.enemyCheat = Infinite AI Resources rules.enemyCheat = Infinite AI Resources
rules.pvp = PvP rules.pvp = PvP
rules.unitdrops = Unit Drops rules.unitdrops = Unit Drops
rules.unitbuildspeedmultiplier = Unit Creation Speed Multiplier
rules.unithealthmultiplier = Unit Health Multiplier
rules.playerdamagemultiplier = Player Damage Multiplier
rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles) rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles)
rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec) rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec)
rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec) rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec)
@@ -592,6 +583,7 @@ mech.itemcapacity = [LIGHT_GRAY]Capacità oggetti: {0}
mech.minespeed = [LIGHT_GRAY]Velocità di scavo: {0} mech.minespeed = [LIGHT_GRAY]Velocità di scavo: {0}
mech.minepower = [LIGHT_GRAY]Potenza di scavo: {0} mech.minepower = [LIGHT_GRAY]Potenza di scavo: {0}
mech.ability = [LIGHT_GRAY]Abilità: {0} mech.ability = [LIGHT_GRAY]Abilità: {0}
mech.buildspeed = [LIGHT_GRAY]Building Speed: {0}%
liquid.heatcapacity = [LIGHT_GRAY]Capacità calorifica: {0} liquid.heatcapacity = [LIGHT_GRAY]Capacità calorifica: {0}
liquid.viscosity = [LIGHT_GRAY]Viscosità: {0} liquid.viscosity = [LIGHT_GRAY]Viscosità: {0}
liquid.temperature = [LIGHT_GRAY]Temperatura: {0} liquid.temperature = [LIGHT_GRAY]Temperatura: {0}

View File

@@ -40,6 +40,7 @@ addplayers = プレイヤーを追加/削除
customgame = カスタムゲーム customgame = カスタムゲーム
newgame = 新しいゲーム newgame = 新しいゲーム
none = <なし> none = <なし>
minimap = Minimap
close = 閉じる close = 閉じる
quit = 終了 quit = 終了
maps = マップ maps = マップ
@@ -335,66 +336,48 @@ no = いいえ
info.title = 情報 info.title = 情報
error.title = [crimson]エラーが発生しました error.title = [crimson]エラーが発生しました
error.crashtitle = エラーが発生しました error.crashtitle = エラーが発生しました
bar.drillspeed = 採掘速度: {0}/秒 blocks.input = Input
bar.efficiency = 効率: {0}% blocks.output = Output
blocks.booster = Booster
block.unknown = [LIGHT_GRAY]??? block.unknown = [LIGHT_GRAY]???
blocks.blockinfo = ブロック情報
bar.powerbalance = 電力: {0}
bar.poweroutput = 電力発電量: {0}
blocks.powercapacity = 電力容量 blocks.powercapacity = 電力容量
blocks.powershot = 電力/ショット blocks.powershot = 電力/ショット
blocks.targetsair = 対空攻撃 blocks.targetsair = 対空攻撃
blocks.targetsground = 対地攻撃 blocks.targetsground = 対地攻撃
bar.items = アイテム: {0}
blocks.itemsmoved = 輸送速度 blocks.itemsmoved = 輸送速度
blocks.launchtime = Time Between Launches blocks.launchtime = Time Between Launches
blocks.shootrange = 範囲 blocks.shootrange = 範囲
blocks.size = 大きさ blocks.size = 大きさ
blocks.liquidcapacity = 液体容量 blocks.liquidcapacity = 液体容量
blocks.maxitemssecond = 最大アイテム量
blocks.powerrange = 電力範囲 blocks.powerrange = 電力範囲
blocks.poweruse = 電力使用量 blocks.poweruse = 電力使用量
blocks.powerdamage = 電力/ダメージ blocks.powerdamage = 電力/ダメージ
blocks.inputitemcapacity = 搬入アイテム容量
blocks.outputitemcapacity = 搬出アイテム容量
blocks.itemcapacity = アイテム容量 blocks.itemcapacity = アイテム容量
blocks.basepowergeneration = 基本発電量 blocks.basepowergeneration = 基本発電量
blocks.powertransferspeed = 電力伝送量 blocks.productiontime = Production Time
blocks.craftspeed = 生産速度
blocks.repairtime = Block Full Repair Time blocks.repairtime = Block Full Repair Time
blocks.speedincrease = Speed Increase
blocks.range = Range blocks.range = Range
blocks.inputliquid = 必要な液体
blocks.inputliquidaux = 補助液
blocks.inputitem = 必要なアイテム
blocks.inputitems = 必要なアイテム
blocks.outputitem = 搬出アイテム
blocks.drilltier = ドリル blocks.drilltier = ドリル
blocks.drillspeed = 基本採掘速度 blocks.drillspeed = 基本採掘速度
blocks.boosteffect = Boost Effect
blocks.maxunits = 最大ユニット数 blocks.maxunits = 最大ユニット数
blocks.liquidoutput = 搬出液体
blocks.liquidoutputspeed = 液体搬出速度
blocks.liquiduse = 液体使用量
blocks.coolant = 冷却
bar.liquid = 液体
blocks.coolantuse = 冷却使用量
blocks.inputliquidfuel = 液体燃料
blocks.liquidfueluse = 液体燃料使用量
blocks.boostitem = 加速アイテム
blocks.boostliquid = 加速液体
blocks.health = 耐久値 blocks.health = 耐久値
blocks.inaccuracy = 精度のずれ
blocks.shots = ショット
blocks.reload = ショット/秒
blocks.ammo = 弾薬
bar.drillspeed = 採掘速度: {0}/秒
bar.efficiency = 効率: {0}%
bar.powerbalance = 電力: {0}
bar.poweramount = Power: {0}
bar.poweroutput = 電力発電量: {0}
bar.items = アイテム: {0}
bar.liquid = 液体
bar.heat = bar.heat =
bar.power = 電力 bar.power = 電力
bar.progress = 建設状況 bar.progress = 建設状況
bar.spawned = ユニット数: {0}/{1} bar.spawned = ユニット数: {0}/{1}
blocks.power.satisfaction = 電力需要
blocks.inaccuracy = 精度のずれ
blocks.shots = ショット
blocks.reload = ショット/秒
blocks.inputfuel = 燃料
blocks.fuelburntime = 燃焼時間
blocks.inputcapacity = 搬入容量
blocks.outputcapacity = 搬出容量
blocks.ammo = 弾薬
bullet.damage = [stat]{0}[lightgray] dmg bullet.damage = [stat]{0}[lightgray] dmg
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
bullet.incendiary = [stat]incendiary bullet.incendiary = [stat]incendiary
@@ -414,6 +397,9 @@ unit.liquidunits = 液体
unit.powerunits = 電力 unit.powerunits = 電力
unit.degrees = unit.degrees =
unit.seconds = unit.seconds =
unit.persecond = /sec
unit.timesspeed = x speed
unit.percent = %
unit.items = アイテム unit.items = アイテム
category.general = 一般 category.general = 一般
category.power = 電力 category.power = 電力
@@ -425,6 +411,7 @@ category.optional = 機能強化オプション
setting.landscape.name = Lock Landscape setting.landscape.name = Lock Landscape
setting.shadows.name = Shadows setting.shadows.name = Shadows
setting.animatedwater.name = 水のアニメーション setting.animatedwater.name = 水のアニメーション
setting.animatedshields.name = Animated Shields
setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[] setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[]
setting.indicators.name = 味方の方角表示 setting.indicators.name = 味方の方角表示
setting.autotarget.name = 自動ターゲット setting.autotarget.name = 自動ターゲット
@@ -448,6 +435,7 @@ setting.borderless.name = Borderless Window
setting.fps.name = FPSを表示 setting.fps.name = FPSを表示
setting.vsync.name = VSync setting.vsync.name = VSync
setting.lasers.name = 電力レーザーを表示 setting.lasers.name = 電力レーザーを表示
setting.pixelate.name = Pixelate [LIGHT_GRAY](may decrease performance)
setting.minimap.name = ミニマップを表示 setting.minimap.name = ミニマップを表示
setting.musicvol.name = 音楽 音量 setting.musicvol.name = 音楽 音量
setting.mutemusic.name = 音楽をミュート setting.mutemusic.name = 音楽をミュート
@@ -507,6 +495,9 @@ rules.waves = Waves
rules.enemyCheat = Infinite AI Resources rules.enemyCheat = Infinite AI Resources
rules.pvp = PvP rules.pvp = PvP
rules.unitdrops = Unit Drops rules.unitdrops = Unit Drops
rules.unitbuildspeedmultiplier = Unit Creation Speed Multiplier
rules.unithealthmultiplier = Unit Health Multiplier
rules.playerdamagemultiplier = Player Damage Multiplier
rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles) rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles)
rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec) rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec)
rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec) rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec)
@@ -592,6 +583,7 @@ mech.itemcapacity = [LIGHT_GRAY]アイテム容量: {0}
mech.minespeed = [LIGHT_GRAY]採掘速度: {0} mech.minespeed = [LIGHT_GRAY]採掘速度: {0}
mech.minepower = [LIGHT_GRAY]採掘性能: {0} mech.minepower = [LIGHT_GRAY]採掘性能: {0}
mech.ability = [LIGHT_GRAY]能力: {0} mech.ability = [LIGHT_GRAY]能力: {0}
mech.buildspeed = [LIGHT_GRAY]Building Speed: {0}%
liquid.heatcapacity = [LIGHT_GRAY]熱容量: {0} liquid.heatcapacity = [LIGHT_GRAY]熱容量: {0}
liquid.viscosity = [LIGHT_GRAY]粘度: {0} liquid.viscosity = [LIGHT_GRAY]粘度: {0}
liquid.temperature = [LIGHT_GRAY]温度: {0} liquid.temperature = [LIGHT_GRAY]温度: {0}

View File

@@ -14,24 +14,27 @@ screenshot = 화면 캡쳐가 {0} 경로에 저장되었습니다.
gameover = 게임 오버 gameover = 게임 오버
gameover.pvp = [accent]{0}[] 팀이 승리했습니다! gameover.pvp = [accent]{0}[] 팀이 승리했습니다!
highscore = [accent]최고점수 달성! highscore = [accent]최고점수 달성!
stat.wave = 웨이브 성공:[accent]{0} stat.wave = 웨이브 성공:[accent]{0}
stat.enemiesDestroyed = 파괴한 적 수:[accent]{0} stat.enemiesDestroyed = 파괴한 적 수:[accent]{0}
stat.built = 건설한 건물 수:[accent]{0} stat.built = 건설한 건물 수:[accent]{0}
stat.destroyed = 파괴된 건물 수:[accent]{0} stat.destroyed = 파괴된 건물 수:[accent]{0}
stat.deconstructed = 해체한 건물 수:[accent]{0} stat.deconstructed = 파괴한 건물 수:[accent]{0}
stat.delivered = 획득한 자원: stat.delivered = 획득한 자원:
stat.rank = 최종 기록: [accent]{0} stat.rank = 최종 기록: [accent]{0}
placeline = You have selected a block.\nYou can[accent] place in a line[] by[accent] holding down your finger for a few seconds[] and dragging in a direction.\nTry it.
removearea = You have selected removal mode.\nYou can[accent] remove blocks in a rectangle[] by[accent] holding down your finger for a few seconds[] and dragging.\nTry it. placeline = 블록을 선택하셨습니다.\n][accent]몇초간 설치 시작지점을 누르고[] 원하는 방향을 향해 드래그 하면 [accent]일렬로[] 설치할 수 있습니다.\n한번 해 보세요.
launcheditems = [accent]Launched Items removearea = 블록 제거모드를 선택하셨습니다.\n[accent]몇초간 제거 시작지점을 누르고[] 원하는 구역 끝을 향해 드래그 하면 [accent]직사각형[] 안에 있는 모든 건물을 제거할 수 있습니다.\n한번 해 보세요.
launcheditems = [accent]출격 아이템
map.delete = 정말로 "[accent]{0}[]" 맵을 삭제하시겠습니까?\n map.delete = 정말로 "[accent]{0}[]" 맵을 삭제하시겠습니까?\n
level.highscore = 최고 점수: [accent]{0} level.highscore = 최고 점수: [accent]{0}
level.select = 맵 선택 level.select = 맵 선택
level.mode = 게임 모드 : level.mode = 게임 모드 :
showagain = 다음 세션에서 이 메세지를 표시하지 않습니다 showagain = 다음 세션에서 이 메세지를 표시하지 않습니다
coreattack = < 코어가 공격받고 있습니다! > coreattack = < 코어가 공격받고 있습니다! >
nearpoint = [[ [scarlet]드롭 지점에서 나가세요[] ]\n모든 유닛 및 건물 파괴 임박 nearpoint = [[ [scarlet]드롭 지점에서 나가세요[] ]\n적 스폰시 건물 및 유닛 파괴
outofbounds = [[ 출입 금지 구역 ]\n[]{0}초후 건물이 해체됩니다. outofbounds = [[ 출입 금지 구역 ]\n[]{0}초후 유닛이 파괴됩니다.
database = 코어 데이터베이스 database = 코어 데이터베이스
savegame = 게임 저장 savegame = 게임 저장
loadgame = 게임 불러오기 loadgame = 게임 불러오기
@@ -40,6 +43,7 @@ addplayers = 플레이어 추가/제거
customgame = 커스텀 게임 customgame = 커스텀 게임
newgame = 새 게임 newgame = 새 게임
none = <없음> none = <없음>
minimap = 미니맵
close = 닫기 close = 닫기
quit = 나가기 quit = 나가기
maps = maps =
@@ -280,11 +284,12 @@ tutorial = 게임 방법
editor = 편집기 editor = 편집기
mapeditor = 맵 편집기 mapeditor = 맵 편집기
donate = 기부 donate = 기부
abandon = 버리기
abandon = 포기
abandon.text = 이 구역과 모든 자원이 적에게 빼앗길 것입니다. abandon.text = 이 구역과 모든 자원이 적에게 빼앗길 것입니다.
locked = 잠김 locked = 잠김
complete = [LIGHT_GRAY]완료: complete = [LIGHT_GRAY]완료:
zone.requirement = Wave {0} in zone {1} zone.requirement = 지역 {1} 에서 웨이브 {0} 달성
resume = 지역 계속 플레이:\n[LIGHT_GRAY]{0} resume = 지역 계속 플레이:\n[LIGHT_GRAY]{0}
bestwave = [LIGHT_GRAY]최고 점수: {0} bestwave = [LIGHT_GRAY]최고 점수: {0}
launch = < 출격 > launch = < 출격 >
@@ -296,11 +301,12 @@ uncover = 털어넣기
configure = 로드아웃 설정 configure = 로드아웃 설정
configure.locked = {0} 단계에서 로드아웃을 설정할 수 있음. configure.locked = {0} 단계에서 로드아웃을 설정할 수 있음.
zone.unlocked = [LIGHT_GRAY] 잠금 해제됨. zone.unlocked = [LIGHT_GRAY] 잠금 해제됨.
zone.requirement.complete = Wave {0} reached:\n{1} zone requirements met. zone.requirement.complete = 웨이브 {0} 달성:\n{1} 지역 요구사항이 충족됨.
zone.config.complete = 웨이브 {0} 달성:\n로드아웃 설정 잠금 해제됨. zone.config.complete = 웨이브 {0} 달성:\n로드아웃 설정 잠금 해제됨.
zone.resources = 자원 감지됨: zone.resources = 자원 감지됨:
add = 추가... add = 추가...
boss.health = 보스 체력 boss.health = 보스 체력
connectfail = [crimson]{0}[accent] 서버에 연결하지 못했습니다.[] connectfail = [crimson]{0}[accent] 서버에 연결하지 못했습니다.[]
error.unreachable = 서버에 연결하지 못했습니다.\n서버 주소가 정확히 입력되었나요? error.unreachable = 서버에 연결하지 못했습니다.\n서버 주소가 정확히 입력되었나요?
error.invalidaddress = 잘못된 주소입니다. error.invalidaddress = 잘못된 주소입니다.
@@ -310,6 +316,7 @@ error.alreadyconnected = 이미 접속중입니다.
error.mapnotfound = 맵 파일을 찾을 수 없습니다! error.mapnotfound = 맵 파일을 찾을 수 없습니다!
error.io = 네트워크 I/O 오류. error.io = 네트워크 I/O 오류.
error.any = 알 수 없는 네트워크 오류. error.any = 알 수 없는 네트워크 오류.
zone.groundZero.name = 그라운드 제로 zone.groundZero.name = 그라운드 제로
zone.craters.name = 분화구 zone.craters.name = 분화구
zone.frozenForest.name = 얼어붙은 숲 zone.frozenForest.name = 얼어붙은 숲
@@ -317,6 +324,7 @@ zone.ruinousShores.name = 파멸의 기슭
zone.stainedMountains.name = 얼룩진 산맥 zone.stainedMountains.name = 얼룩진 산맥
zone.desolateRift.name = 황량한 강 zone.desolateRift.name = 황량한 강
zone.nuclearComplex.name = 핵 생산 단지 zone.nuclearComplex.name = 핵 생산 단지
settings.language = 언어 settings.language = 언어
settings.reset = 설정 초기화 settings.reset = 설정 초기화
settings.rebind = 키 재설정 settings.rebind = 키 재설정
@@ -335,66 +343,48 @@ no = 아니오
info.title = [accent]정보 info.title = [accent]정보
error.title = [crimson]오류가 발생했습니다. error.title = [crimson]오류가 발생했습니다.
error.crashtitle = 오류가 발생했습니다. error.crashtitle = 오류가 발생했습니다.
bar.outputspeed = 채광 속도: {0}/s blocks.input = 입력
bar.efficiency = 효율성: {0}% blocks.output = 출력
blocks.booster = 가속
block.unknown = [LIGHT_GRAY]??? block.unknown = [LIGHT_GRAY]???
blocks.blockinfo = 블록 정보
bar.powerbalance = 전력: {0}
bar.poweroutput = 전력 출력: {0}
blocks.powercapacity = 전력 용량 blocks.powercapacity = 전력 용량
blocks.powershot = 1발당 전력 소모량 blocks.powershot = 1발당 전력 소모량
blocks.targetsair = 공중공격 가능 blocks.targetsair = 공중공격 가능
blocks.targetsground = 지상공격 가능 blocks.targetsground = 지상공격 가능
bar.items = Items: {0}
blocks.itemsmoved = 이동 속도 blocks.itemsmoved = 이동 속도
blocks.launchtime = Time Between Launches blocks.launchtime = 출격 시간
blocks.shootrange = 사거리 blocks.shootrange = 사거리
blocks.size = 크기 blocks.size = 크기
blocks.liquidcapacity = 액체 용량 blocks.liquidcapacity = 액체 용량
blocks.maxitemssecond = 아이템 보관량
blocks.powerrange = 전력 범위 blocks.powerrange = 전력 범위
blocks.poweruse = 전력 사용 blocks.poweruse = 전력 사용
blocks.powerdamage = 전력/데미지 blocks.powerdamage = 전력/데미지
blocks.inputitemcapacity = 입력 아이템 용량
blocks.outputitemcapacity = 출력 아이템 용량
blocks.itemcapacity = 저장 용량 blocks.itemcapacity = 저장 용량
blocks.basepowergeneration = 전력 생성 blocks.basepowergeneration = 전력 생성
blocks.powertransferspeed = 전력 전송량 blocks.productiontime = 제작 시간
blocks.craftspeed = 생산 속도 blocks.repairtime = 전체 블록 수리시간
blocks.repairtime = Block Full Repair Time blocks.speedincrease = 속도 증가
blocks.range = Range blocks.range = 사거리
blocks.inputliquid = 사용되는 액체
blocks.inputliquidaux = 보조 액체
blocks.inputitem = 사용되는 아이템
blocks.inputitems = 사용되는 아이템들
blocks.outputitem = 출력 아이템
blocks.drilltier = 드릴 blocks.drilltier = 드릴
blocks.drillspeed = 기본 드릴 속도 blocks.drillspeed = 기본 드릴 속도
blocks.boosteffect = 가속 효과
blocks.maxunits = 최대 활성유닛 blocks.maxunits = 최대 활성유닛
blocks.liquidoutput = 액체 출력
blocks.liquidoutputspeed = 액체 출력속도
blocks.liquiduse = 액체 사용량
blocks.coolant = 냉각제
bar.liquid = 액체
blocks.coolantuse = 냉각제 사용
blocks.inputliquidfuel = 연료 액
blocks.liquidfueluse = 액체 연료 사용
blocks.boostitem = 가속 아이템
blocks.boostliquid = 가속 액체
blocks.health = 체력 blocks.health = 체력
blocks.inaccuracy = 오차각
blocks.shots = 발포 횟수
blocks.reload = 재장전
blocks.ammo = 탄약
bar.outputspeed = 채광 속도: {0}/s
bar.efficiency = 효율성: {0}%
bar.powerbalance = 전력: {0}/s
bar.poweroutput = 전력 출력: {0}
bar.items = 아이템: {0}
bar.liquid = 액체
bar.heat = 발열 bar.heat = 발열
bar.power = 전력 bar.power = 전력
bar.progress = 건설 진행 bar.progress = 건설 진행
bar.spawned = 유닛: {0}/{1} bar.spawned = 유닛: {0}/{1}
blocks.power.satisfaction = 전력 만족도
blocks.inaccuracy = 오차각
blocks.shots = 발포 횟수
blocks.reload = 재장전
blocks.inputfuel = 연료
blocks.fuelburntime = 연료 연소 시간
blocks.inputcapacity = 입력 용량
blocks.outputcapacity = 출력 용량
blocks.ammo = 탄약
bullet.damage = [stat]{0}[lightgray] 데미지 bullet.damage = [stat]{0}[lightgray] 데미지
bullet.splashdamage = [stat]{0}[lightgray] area 데미지 ~[stat] {1}[lightgray] 타일 bullet.splashdamage = [stat]{0}[lightgray] area 데미지 ~[stat] {1}[lightgray] 타일
bullet.incendiary = [stat]방화 bullet.incendiary = [stat]방화
@@ -406,6 +396,7 @@ bullet.freezing = [stat]동결
bullet.tarred = [stat]타르 bullet.tarred = [stat]타르
bullet.multiplier = [stat]{0}[lightgray]x 탄약 배율 bullet.multiplier = [stat]{0}[lightgray]x 탄약 배율
bullet.reload = [stat]{0}[lightgray]x 사격 속도 bullet.reload = [stat]{0}[lightgray]x 사격 속도
unit.blocks = 블록 unit.blocks = 블록
unit.powersecond = 전력/초 unit.powersecond = 전력/초
unit.liquidsecond = 액체/초 unit.liquidsecond = 액체/초
@@ -414,6 +405,9 @@ unit.liquidunits = 액체
unit.powerunits = 전력 unit.powerunits = 전력
unit.degrees = unit.degrees =
unit.seconds = unit.seconds =
unit.persecond = /초
unit.timesspeed = x 배
unit.percent = %
unit.items = 아이템 unit.items = 아이템
category.general = 일반 category.general = 일반
category.power = 전력 category.power = 전력
@@ -425,7 +419,8 @@ category.optional = 보조 아이템
setting.landscape.name = 가로화면으로 고정 setting.landscape.name = 가로화면으로 고정
setting.shadows.name = 그림자 setting.shadows.name = 그림자
setting.animatedwater.name = 움직이는 물 setting.animatedwater.name = 움직이는 물
setting.antialias.name = 안티에일리어싱[LIGHT_GRAY] (재시작 필요)[] setting.animatedshields.name = 움직이는 보호막
setting.antialias.name = 안티 에일리어싱[LIGHT_GRAY] (재시작 필요)[]
setting.indicators.name = 아군/적 인디게이터 표시 setting.indicators.name = 아군/적 인디게이터 표시
setting.autotarget.name = 자동 조준 setting.autotarget.name = 자동 조준
setting.fpscap.name = 최대 FPS setting.fpscap.name = 최대 FPS
@@ -448,6 +443,7 @@ setting.borderless.name = 테두리 없는 창모드
setting.fps.name = FPS 표시 setting.fps.name = FPS 표시
setting.vsync.name = VSync 활성화 setting.vsync.name = VSync 활성화
setting.lasers.name = 전력 노드 레이저 표시 setting.lasers.name = 전력 노드 레이저 표시
setting.pixelate.name = 픽셀화 [LIGHT_GRAY](게임 성능이 감소할 수 있습니다)
setting.minimap.name = 미니맵 보기 setting.minimap.name = 미니맵 보기
setting.musicvol.name = 음악 크기 setting.musicvol.name = 음악 크기
setting.mutemusic.name = 음소거 setting.mutemusic.name = 음소거
@@ -500,18 +496,23 @@ mode.pvp.name = PvP
mode.pvp.description = 실제 플레이어와 PvP를 합니다. mode.pvp.description = 실제 플레이어와 PvP를 합니다.
mode.attack.name = 공격 mode.attack.name = 공격
mode.attack.description = 일정 시간마다 적이 오는 단계가 없으며, 적의 기지를 파괴하는 것을 목표로 합니다. mode.attack.description = 일정 시간마다 적이 오는 단계가 없으며, 적의 기지를 파괴하는 것을 목표로 합니다.
mode.custom = Custom Rules mode.custom = 커스텀 규칙
rules.infiniteresources = 무한 자원 rules.infiniteresources = 무한 자원
rules.wavetimer = 웨이브 타이머 rules.wavetimer = 웨이브 타이머
rules.waves = 웨이브 rules.waves = 웨이브
rules.enemyCheat = 무한 AI 자원 rules.enemyCheat = 무한 AI 자원
rules.pvp = PvP rules.pvp = PvP
rules.unitdrops = 유닛 드롭 rules.unitdrops = 유닛 드롭
rules.unitbuildspeedmultiplier = 유닛 생산속도 배수
rules.unithealthmultiplier = 유닛 체력 배수
rules.playerdamagemultiplier = 플레이어 공격력 배수
rules.enemycorebuildradius = 적 코어 건설 금지구역:[LIGHT_GRAY] (타일) rules.enemycorebuildradius = 적 코어 건설 금지구역:[LIGHT_GRAY] (타일)
rules.respawntime = 리스폰 시간:[LIGHT_GRAY] (초) rules.respawntime = 리스폰 시간:[LIGHT_GRAY] (초)
rules.wavespacing = 웨이브 간격:[LIGHT_GRAY] (초) rules.wavespacing = 웨이브 간격:[LIGHT_GRAY] (초)
rules.buildcostmultiplier = 건설 소모 배율 rules.buildcostmultiplier = 건설 소모 배율
rules.buildspeedmultiplier = 건설 속도 배율 rules.buildspeedmultiplier = 건설 속도 배율
content.item.name = 아이템 content.item.name = 아이템
content.liquid.name = 액체 content.liquid.name = 액체
content.unit.name = 유닛 content.unit.name = 유닛
@@ -554,7 +555,7 @@ liquid.oil.name = 석유
liquid.cryofluid.name = 냉각유체 liquid.cryofluid.name = 냉각유체
mech.alpha-mech.name = 알파 mech.alpha-mech.name = 알파
mech.alpha-mech.weapon = 중무장 소총 mech.alpha-mech.weapon = 중무장 소총
mech.alpha-mech.ability = 없음 mech.alpha-mech.ability = 회복
mech.alpha-mech.description = 표준 기체.\n적절한 속도와 공격력을 갖추고 있습니다. mech.alpha-mech.description = 표준 기체.\n적절한 속도와 공격력을 갖추고 있습니다.
mech.delta-mech.name = 델타 mech.delta-mech.name = 델타
mech.delta-mech.weapon = 전격 생산기 mech.delta-mech.weapon = 전격 생산기
@@ -589,12 +590,14 @@ unit.speed = [LIGHT_GRAY]속도: {0}
mech.weapon = [LIGHT_GRAY]무기: {0} mech.weapon = [LIGHT_GRAY]무기: {0}
mech.health = [LIGHT_GRAY]체력: {0} mech.health = [LIGHT_GRAY]체력: {0}
mech.itemcapacity = [LIGHT_GRAY]아이템 수용 용량: {0} mech.itemcapacity = [LIGHT_GRAY]아이템 수용 용량: {0}
mech.minespeed = [LIGHT_GRAY]채광 속도: {0} mech.minespeed = [LIGHT_GRAY]채광 속도: {0}%
mech.minepower = [LIGHT_GRAY]채광 레벨: {0} mech.minepower = [LIGHT_GRAY]채광 레벨: {0}
mech.ability = [LIGHT_GRAY]능력: {0} mech.ability = [LIGHT_GRAY]능력: {0}
mech.buildspeed = [LIGHT_GRAY]건설 속도: {0}%
liquid.heatcapacity = [LIGHT_GRAY]발열 용량: {0} liquid.heatcapacity = [LIGHT_GRAY]발열 용량: {0}
liquid.viscosity = [LIGHT_GRAY]점도: {0} liquid.viscosity = [LIGHT_GRAY]점도: {0}
liquid.temperature = [LIGHT_GRAY]온도: {0} liquid.temperature = [LIGHT_GRAY]온도: {0}
block.grass.name = 잔디 block.grass.name = 잔디
block.salt.name = 소금 block.salt.name = 소금
block.sandrocks.name = 모래 바위 block.sandrocks.name = 모래 바위
@@ -694,7 +697,7 @@ block.battery-large.name = 대형 배터리
block.combustion-generator.name = 화력 발전기 block.combustion-generator.name = 화력 발전기
block.turbine-generator.name = 터빈 발전기 block.turbine-generator.name = 터빈 발전기
block.differential-generator.name = 차동 발전기 block.differential-generator.name = 차동 발전기
block.impact-reactor.name = 충격 반응기 block.impact-reactor.name = 핵융합로
block.mechanical-drill.name = 기계 드릴 block.mechanical-drill.name = 기계 드릴
block.pneumatic-drill.name = 강철 드릴 block.pneumatic-drill.name = 강철 드릴
block.laser-drill.name = 레이저 드릴 block.laser-drill.name = 레이저 드릴
@@ -751,7 +754,7 @@ block.blast-drill.name = 압축 공기분사 드릴
block.thermal-pump.name = 화력 펌프 block.thermal-pump.name = 화력 펌프
block.thermal-generator.name = 열발전기 block.thermal-generator.name = 열발전기
block.alloy-smelter.name = 서지 합금 제련소 block.alloy-smelter.name = 서지 합금 제련소
block.mender.name = Mender block.mender.name = 멘더
block.mend-projector.name = 수리 프로젝터 block.mend-projector.name = 수리 프로젝터
block.surge-wall.name = 서지 합금벽 block.surge-wall.name = 서지 합금벽
block.surge-wall-large.name = 큰 서지 합금벽 block.surge-wall-large.name = 큰 서지 합금벽
@@ -767,7 +770,7 @@ block.meltdown.name = 멜트다운
block.container.name = 컨테이너 block.container.name = 컨테이너
block.launch-pad.name = 발사대 block.launch-pad.name = 발사대
block.launch-pad.description = 출격할 필요 없이 아이템을 수송시킵시다. 미완성. block.launch-pad.description = 출격할 필요 없이 아이템을 수송시킵시다. 미완성.
block.launch-pad-large.name = Large Launch Pad block.launch-pad-large.name = 큰 출격 패드
team.blue.name = 블루팀 team.blue.name = 블루팀
team.red.name = 레드팀 team.red.name = 레드팀
team.orange.name = 오렌지팀 team.orange.name = 오렌지팀
@@ -852,7 +855,7 @@ block.silicon-smelter.description = 고순도 석탄으로 모래를 줄여 실
block.plastanium-compressor.description = 석유와 티타늄으로 플라스타늄을 생산합니다. block.plastanium-compressor.description = 석유와 티타늄으로 플라스타늄을 생산합니다.
block.phase-weaver.description = 방사능 토륨과 많은 량의 모래에서 상직물을 생산합니다. block.phase-weaver.description = 방사능 토륨과 많은 량의 모래에서 상직물을 생산합니다.
block.alloy-smelter.description = 티타늄, 납, 실리콘, 구리로부터 서지 합금을 생산합니다. block.alloy-smelter.description = 티타늄, 납, 실리콘, 구리로부터 서지 합금을 생산합니다.
block.pulverizer.description = 모래로 을 부숩니다. 천연 모래가 부족할 때 유용합니다. block.pulverizer.description = 모래로 을 부숩니다. 천연 모래가 부족할 때 유용합니다.
block.pyratite-mixer.description = 석탄, 납, 모래를 가연성이 높은 피라타이트로 만듭니다. block.pyratite-mixer.description = 석탄, 납, 모래를 가연성이 높은 피라타이트로 만듭니다.
block.blast-mixer.description = 기름을 사용하여 피라타이트를 인화성은 떨어지지만 폭발성은 높은 폭발성 화합물로 변환시킵니다. block.blast-mixer.description = 기름을 사용하여 피라타이트를 인화성은 떨어지지만 폭발성은 높은 폭발성 화합물로 변환시킵니다.
block.cryofluidmixer.description = 물과 티타늄을 냉각에 훨씬 더 효과적인 냉동액으로 결합시킵니다. block.cryofluidmixer.description = 물과 티타늄을 냉각에 훨씬 더 효과적인 냉동액으로 결합시킵니다.
@@ -872,7 +875,7 @@ block.solar-panel-large.description = 일반 태양 전지판보다 훨씬 나
block.thorium-reactor.description = 고방사능 토륨으로부터 막대한 양의 전력을 발생시킵니다. 지속적인 냉각이 필요하며 냉각제의 양이 부족하면 크게 폭발합니다. 전력 출력은 최대 용량에서 기본 전력을 발생시키는 완전성에 따라 결정됩니다. block.thorium-reactor.description = 고방사능 토륨으로부터 막대한 양의 전력을 발생시킵니다. 지속적인 냉각이 필요하며 냉각제의 양이 부족하면 크게 폭발합니다. 전력 출력은 최대 용량에서 기본 전력을 발생시키는 완전성에 따라 결정됩니다.
block.rtg-generator.description = 냉각은 필요 없지만 토륨 원자로에 비해 전력을 적게 공급하는 방사성 동위원소 열전 발생기. block.rtg-generator.description = 냉각은 필요 없지만 토륨 원자로에 비해 전력을 적게 공급하는 방사성 동위원소 열전 발생기.
block.unloader.description = 컨테이너, 금고 또는 코어에서 인접한 블록으로 아이템을 출하합니다. 출하시킬 아이템의 종류는 언로더를 눌러 지정할 수 있습니다. block.unloader.description = 컨테이너, 금고 또는 코어에서 인접한 블록으로 아이템을 출하합니다. 출하시킬 아이템의 종류는 언로더를 눌러 지정할 수 있습니다.
block.container.description = 각종 소량의 자원을 저장할 수 있습니다.[LIGHT_GRAY언로더[]를 사용하여 컨테이너에서 물건을 회수할 수 있습니다. block.container.description = 각종 소량의 자원을 저장할 수 있습니다.[LIGHT_GRAY]언로더[]를 사용하여 컨테이너에서 물건을 회수할 수 있습니다.
block.vault.description = 각종 대량의 자원을 저장할 수 있습니다.[LIGHT_GRAY]언로더[]를 사용하여 금고에서 물건을 회수할 수 있습니다. block.vault.description = 각종 대량의 자원을 저장할 수 있습니다.[LIGHT_GRAY]언로더[]를 사용하여 금고에서 물건을 회수할 수 있습니다.
block.mechanical-drill.description = 싸구려 드릴. 적절한 타일 위에 놓였을때 매우 느린 속도로 계속 출력합니다. block.mechanical-drill.description = 싸구려 드릴. 적절한 타일 위에 놓였을때 매우 느린 속도로 계속 출력합니다.
block.pneumatic-drill.description = 기압을 이용하여 보다 빠르고 단단한 물질을 채광할 수 있는 향상된 드릴. block.pneumatic-drill.description = 기압을 이용하여 보다 빠르고 단단한 물질을 채광할 수 있는 향상된 드릴.
@@ -893,6 +896,7 @@ block.wraith-factory.description = 빠른 뺑소니 요격기 유닛을 생산
block.ghoul-factory.description = 중탄두 폭격기를 생산합니다. block.ghoul-factory.description = 중탄두 폭격기를 생산합니다.
block.dagger-factory.description = 기본 지상 유닛을 생산합니다. block.dagger-factory.description = 기본 지상 유닛을 생산합니다.
block.titan-factory.description = 첨단 장갑 지상부대를 생산합니다. block.titan-factory.description = 첨단 장갑 지상부대를 생산합니다.
block.fortress-factory.description = 중대포 지상부대를 생산합니다. block.fortress-factory.description = 중대포 지상부대를 생산합니다.
block.revenant-factory.description = 중량의 레이저 포대를 가진 공중부대를 생산합니다. block.revenant-factory.description = 중량의 레이저 포대를 가진 공중부대를 생산합니다.
block.repair-point.description = 주변에서 가장 가까운 손상된 유닛을 지속적으로 치료합니다. block.repair-point.description = 주변에서 가장 가까운 손상된 유닛을 지속적으로 치료합니다.

View File

@@ -40,6 +40,7 @@ addplayers = Add/Remove Players
customgame = Custom Game customgame = Custom Game
newgame = New Game newgame = New Game
none = <none> none = <none>
minimap = Minimap
close = Close close = Close
quit = Quit quit = Quit
maps = Maps maps = Maps
@@ -335,66 +336,48 @@ no = No
info.title = Info info.title = Info
error.title = [crimson]An error has occured error.title = [crimson]An error has occured
error.crashtitle = An error has occured error.crashtitle = An error has occured
bar.drillspeed = Drill Speed: {0}/s blocks.input = Input
bar.efficiency = Efficiency: {0}% blocks.output = Output
blocks.booster = Booster
block.unknown = [LIGHT_GRAY]??? block.unknown = [LIGHT_GRAY]???
blocks.blockinfo = Block Info
bar.powerbalance = Power: {0}
bar.poweroutput = Power Output: {0}
blocks.powercapacity = Power Capacity blocks.powercapacity = Power Capacity
blocks.powershot = Power/Shot blocks.powershot = Power/Shot
blocks.targetsair = Targets Air blocks.targetsair = Targets Air
blocks.targetsground = Targets Ground blocks.targetsground = Targets Ground
bar.items = Items: {0}
blocks.itemsmoved = Move Speed blocks.itemsmoved = Move Speed
blocks.launchtime = Time Between Launches blocks.launchtime = Time Between Launches
blocks.shootrange = Range blocks.shootrange = Range
blocks.size = Size blocks.size = Size
blocks.liquidcapacity = Liquid Capacity blocks.liquidcapacity = Liquid Capacity
blocks.maxitemssecond = Max Items
blocks.powerrange = Power Range blocks.powerrange = Power Range
blocks.poweruse = Power Use blocks.poweruse = Power Use
blocks.powerdamage = Power/Damage blocks.powerdamage = Power/Damage
blocks.inputitemcapacity = Input Item Capacity
blocks.outputitemcapacity = Output Item Capacity
blocks.itemcapacity = Item Capacity blocks.itemcapacity = Item Capacity
blocks.basepowergeneration = Base Power Generation blocks.basepowergeneration = Base Power Generation
blocks.powertransferspeed = Power Transfer blocks.productiontime = Production Time
blocks.craftspeed = Production Speed
blocks.repairtime = Block Full Repair Time blocks.repairtime = Block Full Repair Time
blocks.speedincrease = Speed Increase
blocks.range = Range blocks.range = Range
blocks.inputliquid = Input Liquid
blocks.inputliquidaux = Aux Liquid
blocks.inputitem = Input Item
blocks.inputitems = Input Items
blocks.outputitem = Output Item
blocks.drilltier = Drillables blocks.drilltier = Drillables
blocks.drillspeed = Base Drill Speed blocks.drillspeed = Base Drill Speed
blocks.boosteffect = Boost Effect
blocks.maxunits = Max Active Units blocks.maxunits = Max Active Units
blocks.liquidoutput = Liquid Output
blocks.liquidoutputspeed = Liquid Output Speed
blocks.liquiduse = Liquid Use
blocks.coolant = Coolant
bar.liquid = Liquid
blocks.coolantuse = Coolant Use
blocks.inputliquidfuel = Fuel Liquid
blocks.liquidfueluse = Liquid Fuel Use
blocks.boostitem = Boost Item
blocks.boostliquid = Boost Liquid
blocks.health = Health blocks.health = Health
blocks.inaccuracy = Inaccuracy
blocks.shots = Shots
blocks.reload = Shots/Second
blocks.ammo = Ammo
bar.drillspeed = Drill Speed: {0}/s
bar.efficiency = Efficiency: {0}%
bar.powerbalance = Power: {0}
bar.poweramount = Power: {0}
bar.poweroutput = Power Output: {0}
bar.items = Items: {0}
bar.liquid = Liquid
bar.heat = Heat bar.heat = Heat
bar.power = Power bar.power = Power
bar.progress = Build Progress bar.progress = Build Progress
bar.spawned = Units: {0}/{1} bar.spawned = Units: {0}/{1}
blocks.power.satisfaction = Power Satisfaction
blocks.inaccuracy = Inaccuracy
blocks.shots = Shots
blocks.reload = Shots/Second
blocks.inputfuel = Fuel
blocks.fuelburntime = Fuel Burn Time
blocks.inputcapacity = Input capacity
blocks.outputcapacity = Output capacity
blocks.ammo = Ammo
bullet.damage = [stat]{0}[lightgray] dmg bullet.damage = [stat]{0}[lightgray] dmg
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
bullet.incendiary = [stat]incendiary bullet.incendiary = [stat]incendiary
@@ -414,6 +397,9 @@ unit.liquidunits = liquid units
unit.powerunits = power units unit.powerunits = power units
unit.degrees = degrees unit.degrees = degrees
unit.seconds = seconds unit.seconds = seconds
unit.persecond = /sec
unit.timesspeed = x speed
unit.percent = %
unit.items = items unit.items = items
category.general = General category.general = General
category.power = Power category.power = Power
@@ -425,6 +411,7 @@ category.optional = Optional Enhancements
setting.landscape.name = Lock Landscape setting.landscape.name = Lock Landscape
setting.shadows.name = Shadows setting.shadows.name = Shadows
setting.animatedwater.name = Animated Water setting.animatedwater.name = Animated Water
setting.animatedshields.name = Animated Shields
setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[] setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[]
setting.indicators.name = Ally Indicators setting.indicators.name = Ally Indicators
setting.autotarget.name = Auto-Target setting.autotarget.name = Auto-Target
@@ -448,6 +435,7 @@ setting.borderless.name = Borderless Window
setting.fps.name = Show FPS setting.fps.name = Show FPS
setting.vsync.name = VSync setting.vsync.name = VSync
setting.lasers.name = Show Power Lasers setting.lasers.name = Show Power Lasers
setting.pixelate.name = Pixelate [LIGHT_GRAY](may decrease performance)
setting.minimap.name = Show Minimap setting.minimap.name = Show Minimap
setting.musicvol.name = Music Volume setting.musicvol.name = Music Volume
setting.mutemusic.name = Mute Music setting.mutemusic.name = Mute Music
@@ -507,6 +495,9 @@ rules.waves = Waves
rules.enemyCheat = Infinite AI Resources rules.enemyCheat = Infinite AI Resources
rules.pvp = PvP rules.pvp = PvP
rules.unitdrops = Unit Drops rules.unitdrops = Unit Drops
rules.unitbuildspeedmultiplier = Unit Creation Speed Multiplier
rules.unithealthmultiplier = Unit Health Multiplier
rules.playerdamagemultiplier = Player Damage Multiplier
rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles) rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles)
rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec) rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec)
rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec) rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec)
@@ -592,6 +583,7 @@ mech.itemcapacity = [LIGHT_GRAY]Item Capacity: {0}
mech.minespeed = [LIGHT_GRAY]Mining Speed: {0} mech.minespeed = [LIGHT_GRAY]Mining Speed: {0}
mech.minepower = [LIGHT_GRAY]Mining Power: {0} mech.minepower = [LIGHT_GRAY]Mining Power: {0}
mech.ability = [LIGHT_GRAY]Ability: {0} mech.ability = [LIGHT_GRAY]Ability: {0}
mech.buildspeed = [LIGHT_GRAY]Building Speed: {0}%
liquid.heatcapacity = [LIGHT_GRAY]Heat Capacity: {0} liquid.heatcapacity = [LIGHT_GRAY]Heat Capacity: {0}
liquid.viscosity = [LIGHT_GRAY]Viscosity: {0} liquid.viscosity = [LIGHT_GRAY]Viscosity: {0}
liquid.temperature = [LIGHT_GRAY]Temperature: {0} liquid.temperature = [LIGHT_GRAY]Temperature: {0}

View File

@@ -40,6 +40,7 @@ addplayers = Dodaj/Usuń graczy
customgame = Własna Gra customgame = Własna Gra
newgame = Nowa Gra newgame = Nowa Gra
none = <żadne> none = <żadne>
minimap = Minimap
close = Zamknij close = Zamknij
quit = Wyjdź quit = Wyjdź
maps = Mapy maps = Mapy
@@ -335,66 +336,48 @@ no = Nie ma mowy!
info.title = [accent]Informacje info.title = [accent]Informacje
error.title = [crimson]Wystąpił błąd error.title = [crimson]Wystąpił błąd
error.crashtitle = Wystąpił błąd error.crashtitle = Wystąpił błąd
bar.drillspeed = Drill Speed: {0}/s blocks.input = Input
bar.efficiency = Efficiency: {0}% blocks.output = Output
blocks.booster = Booster
block.unknown = [LIGHT_GRAY]??? block.unknown = [LIGHT_GRAY]???
blocks.blockinfo = Informacje o bloku
bar.powerbalance = Power: {0}
bar.poweroutput = Power Output: {0}
blocks.powercapacity = Pojemność mocy blocks.powercapacity = Pojemność mocy
blocks.powershot = moc/strzał blocks.powershot = moc/strzał
blocks.targetsair = Może namierzać wrogów powietrznych blocks.targetsair = Może namierzać wrogów powietrznych
blocks.targetsground = Targets Ground blocks.targetsground = Targets Ground
bar.items = Items: {0}
blocks.itemsmoved = Move Speed blocks.itemsmoved = Move Speed
blocks.launchtime = Time Between Launches blocks.launchtime = Time Between Launches
blocks.shootrange = Zasięg blocks.shootrange = Zasięg
blocks.size = Rozmiar blocks.size = Rozmiar
blocks.liquidcapacity = Pojemność cieczy blocks.liquidcapacity = Pojemność cieczy
blocks.maxitemssecond = Maksymalna liczba przedmiotów/sekundę
blocks.powerrange = Zakres mocy blocks.powerrange = Zakres mocy
blocks.poweruse = Zużycie prądu blocks.poweruse = Zużycie prądu
blocks.powerdamage = Moc/Zniszczenia blocks.powerdamage = Moc/Zniszczenia
blocks.inputitemcapacity = Pojemność materiałów
blocks.outputitemcapacity = Pojemność produktów
blocks.itemcapacity = Pojemność przedmiotów blocks.itemcapacity = Pojemność przedmiotów
blocks.basepowergeneration = Base Power Generation blocks.basepowergeneration = Base Power Generation
blocks.powertransferspeed = Szybość przesyłu prądu blocks.productiontime = Production Time
blocks.craftspeed = Szybkość produkcji
blocks.repairtime = Block Full Repair Time blocks.repairtime = Block Full Repair Time
blocks.speedincrease = Speed Increase
blocks.range = Range blocks.range = Range
blocks.inputliquid = Potrzebna ciecz
blocks.inputliquidaux = Płyny do produkcji
blocks.inputitem = Potrzebne przedmioty
blocks.inputitems = Materiały do produkcji
blocks.outputitem = Produkty
blocks.drilltier = Co może wykopać blocks.drilltier = Co może wykopać
blocks.drillspeed = Postawowa szybkość kopania blocks.drillspeed = Postawowa szybkość kopania
blocks.boosteffect = Boost Effect
blocks.maxunits = Max Active Units blocks.maxunits = Max Active Units
blocks.liquidoutput = Wyprodukowany płyn
blocks.liquidoutputspeed = Prędkość odpływu cieczy
blocks.liquiduse = Zużycie płynów
blocks.coolant = Płyn chłodzący
bar.liquid = Płyn
blocks.coolantuse = Zużycie płynu chłodzącego
blocks.inputliquidfuel = Paliwo
blocks.liquidfueluse = Zużycie paliwa
blocks.boostitem = Boost Item
blocks.boostliquid = Boost Liquid
blocks.health = Zdrowie blocks.health = Zdrowie
blocks.inaccuracy = Niedokładność
blocks.shots = Strzały
blocks.reload = Przeładowanie
blocks.ammo = Ammo
bar.drillspeed = Drill Speed: {0}/s
bar.efficiency = Efficiency: {0}%
bar.powerbalance = Power: {0}
bar.poweramount = Power: {0}
bar.poweroutput = Power Output: {0}
bar.items = Items: {0}
bar.liquid = Płyn
bar.heat = Heat bar.heat = Heat
bar.power = Prąd bar.power = Prąd
bar.progress = Build Progress bar.progress = Build Progress
bar.spawned = Units: {0}/{1} bar.spawned = Units: {0}/{1}
blocks.power.satisfaction = Zapotrzebowanie Prądu
blocks.inaccuracy = Niedokładność
blocks.shots = Strzały
blocks.reload = Przeładowanie
blocks.inputfuel = Paliwo
blocks.fuelburntime = Płonięcie paliwa
blocks.inputcapacity = Pojemność wejściowa
blocks.outputcapacity = Wydajność wyjściowa
blocks.ammo = Ammo
bullet.damage = [stat]{0}[lightgray] dmg bullet.damage = [stat]{0}[lightgray] dmg
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
bullet.incendiary = [stat]incendiary bullet.incendiary = [stat]incendiary
@@ -414,6 +397,9 @@ unit.liquidunits = jednostek płynów
unit.powerunits = jednostek prądu unit.powerunits = jednostek prądu
unit.degrees = stopnie unit.degrees = stopnie
unit.seconds = sekundy unit.seconds = sekundy
unit.persecond = /sec
unit.timesspeed = x speed
unit.percent = %
unit.items = Przedmioty unit.items = Przedmioty
category.general = Główne category.general = Główne
category.power = Prąd category.power = Prąd
@@ -425,6 +411,7 @@ category.optional = Ulepszenia Nieobowiąskowe
setting.landscape.name = Lock Landscape setting.landscape.name = Lock Landscape
setting.shadows.name = Shadows setting.shadows.name = Shadows
setting.animatedwater.name = Animated Water setting.animatedwater.name = Animated Water
setting.animatedshields.name = Animated Shields
setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[] setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[]
setting.indicators.name = Wskaźniki Przyjaciół setting.indicators.name = Wskaźniki Przyjaciół
setting.autotarget.name = Automatyczne Celowanie setting.autotarget.name = Automatyczne Celowanie
@@ -448,6 +435,7 @@ setting.borderless.name = Borderless Window
setting.fps.name = Widoczny licznik FPS setting.fps.name = Widoczny licznik FPS
setting.vsync.name = Synchronizacja pionowa setting.vsync.name = Synchronizacja pionowa
setting.lasers.name = Pokaż lasery zasilające setting.lasers.name = Pokaż lasery zasilające
setting.pixelate.name = Pixelate [LIGHT_GRAY](may decrease performance)
setting.minimap.name = Pokaż Minimapę setting.minimap.name = Pokaż Minimapę
setting.musicvol.name = Głośność muzyki setting.musicvol.name = Głośność muzyki
setting.mutemusic.name = Wycisz muzykę setting.mutemusic.name = Wycisz muzykę
@@ -507,6 +495,9 @@ rules.waves = Waves
rules.enemyCheat = Infinite AI Resources rules.enemyCheat = Infinite AI Resources
rules.pvp = PvP rules.pvp = PvP
rules.unitdrops = Unit Drops rules.unitdrops = Unit Drops
rules.unitbuildspeedmultiplier = Unit Creation Speed Multiplier
rules.unithealthmultiplier = Unit Health Multiplier
rules.playerdamagemultiplier = Player Damage Multiplier
rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles) rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles)
rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec) rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec)
rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec) rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec)
@@ -592,6 +583,7 @@ mech.itemcapacity = [LIGHT_GRAY]Pojemność przedmiotów: {0}
mech.minespeed = [LIGHT_GRAY]Prędkość kopania: {0} mech.minespeed = [LIGHT_GRAY]Prędkość kopania: {0}
mech.minepower = [LIGHT_GRAY]Moc kopania: {0} mech.minepower = [LIGHT_GRAY]Moc kopania: {0}
mech.ability = [LIGHT_GRAY]Umiejętność: {0} mech.ability = [LIGHT_GRAY]Umiejętność: {0}
mech.buildspeed = [LIGHT_GRAY]Building Speed: {0}%
liquid.heatcapacity = [LIGHT_GRAY]Wytrzymałość na przegrzewanie: {0} liquid.heatcapacity = [LIGHT_GRAY]Wytrzymałość na przegrzewanie: {0}
liquid.viscosity = [LIGHT_GRAY]Lepkość: {0} liquid.viscosity = [LIGHT_GRAY]Lepkość: {0}
liquid.temperature = [LIGHT_GRAY]Temperatura: {0} liquid.temperature = [LIGHT_GRAY]Temperatura: {0}

View File

@@ -40,6 +40,7 @@ addplayers = Adicionar/Remover Jogador
customgame = Jogo Customizado customgame = Jogo Customizado
newgame = Novo Jogo newgame = Novo Jogo
none = <none> none = <none>
minimap = Minimap
close = Fechar close = Fechar
quit = Sair quit = Sair
maps = Mapas maps = Mapas
@@ -335,66 +336,48 @@ no = Não
info.title = [accent]Informação info.title = [accent]Informação
error.title = [crimson]Ocorreu um Erro. error.title = [crimson]Ocorreu um Erro.
error.crashtitle = Ocorreu um Erro error.crashtitle = Ocorreu um Erro
bar.drillspeed = Drill Speed: {0}/s blocks.input = Input
bar.efficiency = Efficiency: {0}% blocks.output = Output
blocks.booster = Booster
block.unknown = [LIGHT_GRAY]??? block.unknown = [LIGHT_GRAY]???
blocks.blockinfo = Informação do Bloco
bar.powerbalance = Power: {0}
bar.poweroutput = Power Output: {0}
blocks.powercapacity = Capacidade de Energia blocks.powercapacity = Capacidade de Energia
blocks.powershot = Energia/tiro blocks.powershot = Energia/tiro
blocks.targetsair = Mirar no ar blocks.targetsair = Mirar no ar
blocks.targetsground = Targets Ground blocks.targetsground = Targets Ground
bar.items = Items: {0}
blocks.itemsmoved = Move Speed blocks.itemsmoved = Move Speed
blocks.launchtime = Time Between Launches blocks.launchtime = Time Between Launches
blocks.shootrange = Alcance blocks.shootrange = Alcance
blocks.size = Tamanho blocks.size = Tamanho
blocks.liquidcapacity = Capacidade de Líquido blocks.liquidcapacity = Capacidade de Líquido
blocks.maxitemssecond = Máximo de itens/segundo
blocks.powerrange = Alcance da Energia blocks.powerrange = Alcance da Energia
blocks.poweruse = Uso de energia blocks.poweruse = Uso de energia
blocks.powerdamage = Dano/Poder blocks.powerdamage = Dano/Poder
blocks.inputitemcapacity = Configurar capacidade de itens
blocks.outputitemcapacity = Configurar capacidade de itens
blocks.itemcapacity = Capacidade de Itens blocks.itemcapacity = Capacidade de Itens
blocks.basepowergeneration = Geração de poder base blocks.basepowergeneration = Geração de poder base
blocks.powertransferspeed = Transferência de energia blocks.productiontime = Production Time
blocks.craftspeed = Velocidade de produção
blocks.repairtime = Block Full Repair Time blocks.repairtime = Block Full Repair Time
blocks.speedincrease = Speed Increase
blocks.range = Range blocks.range = Range
blocks.inputliquid = Líquido de entrada
blocks.inputliquidaux = Líquido auxiliar
blocks.inputitem = Item de entrada
blocks.inputitems = Itens de entrada
blocks.outputitem = Itens de saida
blocks.drilltier = Furaveis blocks.drilltier = Furaveis
blocks.drillspeed = Velocidade da furadeira base blocks.drillspeed = Velocidade da furadeira base
blocks.boosteffect = Boost Effect
blocks.maxunits = Max Active Units blocks.maxunits = Max Active Units
blocks.liquidoutput = Saida de liquido
blocks.liquidoutputspeed = Velocidade da saida de líquido
blocks.liquiduse = Uso de liquido
blocks.coolant = Esfriador
bar.liquid = Liquid
blocks.coolantuse = Uso do esfriador
blocks.inputliquidfuel = Liquido de combustivel
blocks.liquidfueluse = Uso do liquido de combustivel
blocks.boostitem = Acelerar item
blocks.boostliquid = Acelerar líquido
blocks.health = Saúde blocks.health = Saúde
blocks.inaccuracy = Imprecisão
blocks.shots = Tiros
blocks.reload = Recarregar
blocks.ammo = Ammo
bar.drillspeed = Drill Speed: {0}/s
bar.efficiency = Efficiency: {0}%
bar.powerbalance = Power: {0}
bar.poweramount = Power: {0}
bar.poweroutput = Power Output: {0}
bar.items = Items: {0}
bar.liquid = Liquid
bar.heat = Heat bar.heat = Heat
bar.power = Poder bar.power = Poder
bar.progress = Build Progress bar.progress = Build Progress
bar.spawned = Units: {0}/{1} bar.spawned = Units: {0}/{1}
blocks.power.satisfaction = Power Satisfaction
blocks.inaccuracy = Imprecisão
blocks.shots = Tiros
blocks.reload = Recarregar
blocks.inputfuel = Combustivel
blocks.fuelburntime = Tempo de queima de combustivel
blocks.inputcapacity = Capacidade de entrada
blocks.outputcapacity = Capacidade de saída
blocks.ammo = Ammo
bullet.damage = [stat]{0}[lightgray] dmg bullet.damage = [stat]{0}[lightgray] dmg
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
bullet.incendiary = [stat]incendiary bullet.incendiary = [stat]incendiary
@@ -414,6 +397,9 @@ unit.liquidunits = Unidades de liquido
unit.powerunits = Unidades de energia unit.powerunits = Unidades de energia
unit.degrees = Graus unit.degrees = Graus
unit.seconds = segundos unit.seconds = segundos
unit.persecond = /sec
unit.timesspeed = x speed
unit.percent = %
unit.items = itens unit.items = itens
category.general = Geral category.general = Geral
category.power = Poder category.power = Poder
@@ -425,6 +411,7 @@ category.optional = Melhoras opcionais
setting.landscape.name = Lock Landscape setting.landscape.name = Lock Landscape
setting.shadows.name = Shadows setting.shadows.name = Shadows
setting.animatedwater.name = Animated Water setting.animatedwater.name = Animated Water
setting.animatedshields.name = Animated Shields
setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[] setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[]
setting.indicators.name = Ally Indicators setting.indicators.name = Ally Indicators
setting.autotarget.name = Alvo automatico setting.autotarget.name = Alvo automatico
@@ -448,6 +435,7 @@ setting.borderless.name = Borderless Window
setting.fps.name = Mostrar FPS setting.fps.name = Mostrar FPS
setting.vsync.name = VSync setting.vsync.name = VSync
setting.lasers.name = Mostrar lasers setting.lasers.name = Mostrar lasers
setting.pixelate.name = Pixelate [LIGHT_GRAY](may decrease performance)
setting.minimap.name = Mostrar minimapa setting.minimap.name = Mostrar minimapa
setting.musicvol.name = Volume da Música setting.musicvol.name = Volume da Música
setting.mutemusic.name = Desligar Música setting.mutemusic.name = Desligar Música
@@ -507,6 +495,9 @@ rules.waves = Waves
rules.enemyCheat = Infinite AI Resources rules.enemyCheat = Infinite AI Resources
rules.pvp = PvP rules.pvp = PvP
rules.unitdrops = Unit Drops rules.unitdrops = Unit Drops
rules.unitbuildspeedmultiplier = Unit Creation Speed Multiplier
rules.unithealthmultiplier = Unit Health Multiplier
rules.playerdamagemultiplier = Player Damage Multiplier
rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles) rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles)
rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec) rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec)
rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec) rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec)
@@ -592,6 +583,7 @@ mech.itemcapacity = [LIGHT_GRAY]Capacidade de itens: {0}
mech.minespeed = [LIGHT_GRAY]Velocidade de mineração: {0} mech.minespeed = [LIGHT_GRAY]Velocidade de mineração: {0}
mech.minepower = [LIGHT_GRAY]Poder de mineração: {0} mech.minepower = [LIGHT_GRAY]Poder de mineração: {0}
mech.ability = [LIGHT_GRAY]Habilidade: {0} mech.ability = [LIGHT_GRAY]Habilidade: {0}
mech.buildspeed = [LIGHT_GRAY]Building Speed: {0}%
liquid.heatcapacity = [LIGHT_GRAY]Capacidade de aquecimento: {0} liquid.heatcapacity = [LIGHT_GRAY]Capacidade de aquecimento: {0}
liquid.viscosity = [LIGHT_GRAY]Viscosidade: {0} liquid.viscosity = [LIGHT_GRAY]Viscosidade: {0}
liquid.temperature = [LIGHT_GRAY]Temperatura: {0} liquid.temperature = [LIGHT_GRAY]Temperatura: {0}

View File

@@ -40,6 +40,7 @@ addplayers = Доб/удалить игроков
customgame = Пользовательская игра customgame = Пользовательская игра
newgame = Новая игра newgame = Новая игра
none = <нет> none = <нет>
minimap = Minimap
close = Закрыть close = Закрыть
quit = Выход quit = Выход
maps = Карты maps = Карты
@@ -182,7 +183,7 @@ map.delete.confirm = Вы действительно хотите удалить
map.random = [accent]Случайная карта map.random = [accent]Случайная карта
map.nospawn = Эта карта не имеет ядер, в которых игрок может появиться! Добавьте[ROYAL] синее[] ядро на эту карту в редакторе карт. map.nospawn = Эта карта не имеет ядер, в которых игрок может появиться! Добавьте[ROYAL] синее[] ядро на эту карту в редакторе карт.
map.nospawn.pvp = У этой карты нет вражеских ядер, в которых игрок может появиться! Добавьте[SCARLET] красные[] ядра к этой карте в редакторе. map.nospawn.pvp = У этой карты нет вражеских ядер, в которых игрок может появиться! Добавьте[SCARLET] красные[] ядра к этой карте в редакторе.
map.nospawn.attack = This map does not have any enemy cores for player to attack! Add[SCARLET] red[] cores to this map in the editor. map.nospawn.attack = У этой карты нету вражеских ядер! Добавьте [scarlet] красные[] ядра в эту карте в редакторе.
map.invalid = Ошибка загрузки карты: повреждённый или недопустимый файл карты. map.invalid = Ошибка загрузки карты: повреждённый или недопустимый файл карты.
editor.brush = Кисть editor.brush = Кисть
editor.openin = Открыть в редакторе editor.openin = Открыть в редакторе
@@ -335,77 +336,61 @@ no = Нет
info.title = Информация info.title = Информация
error.title = [crimson]Произошла ошибка error.title = [crimson]Произошла ошибка
error.crashtitle = Произошла ошибка error.crashtitle = Произошла ошибка
bar.drillspeed = Скорость сверления: {0}/с blocks.input = Вход
bar.efficiency = Эффективность: {0}% blocks.output = Выход
blocks.booster = Ускоритель
block.unknown = [LIGHT_GRAY]??? block.unknown = [LIGHT_GRAY]???
blocks.blockinfo = Информация о блоке
bar.powerbalance = Энергия: {0}
bar.poweroutput = Выходная энергия: {0}
blocks.powercapacity = Вместимость энергии blocks.powercapacity = Вместимость энергии
blocks.powershot = Энергия/выстрел blocks.powershot = Энергия/выстрел
blocks.targetsair = Воздушные цели blocks.targetsair = Воздушные цели
blocks.targetsground = Наземные цели blocks.targetsground = Наземные цели
bar.items = Предметы: {0}
blocks.itemsmoved = Скорость перемещения blocks.itemsmoved = Скорость перемещения
blocks.launchtime = Time Between Launches blocks.launchtime = Интервал запусков
blocks.shootrange = Радиус действия blocks.shootrange = Радиус действия
blocks.size = Размер blocks.size = Размер
blocks.liquidcapacity = Вместимость жидкости blocks.liquidcapacity = Вместимость жидкости
blocks.maxitemssecond = Макс. количество предметов/секунду
blocks.powerrange = Диапазон передачи энергии blocks.powerrange = Диапазон передачи энергии
blocks.poweruse = Потребляет энергии blocks.poweruse = Потребляет энергии
blocks.powerdamage = Энергия/урон blocks.powerdamage = Энергия/урон
blocks.inputitemcapacity = Вместимость входящих предметов
blocks.outputitemcapacity = Вместимость выходящих предметов
blocks.itemcapacity = Вместимость предметов blocks.itemcapacity = Вместимость предметов
blocks.basepowergeneration = Базовая генерация энергии blocks.basepowergeneration = Базовая генерация энергии
blocks.powertransferspeed = Скорость передачи энергии blocks.productiontime = Время производства
blocks.craftspeed = Скорость производства blocks.craftspeed = Скорость производства
blocks.repairtime = Block Full Repair Time blocks.repairtime = Время полной регенерации
blocks.range = Range blocks.speedincrease = Увеличение скорости
blocks.range = Радиус действия
blocks.inputliquid = Прием жидкости blocks.inputliquid = Прием жидкости
blocks.inputliquidaux = Вспом. жидкость
blocks.inputitem = Входящий предмет
blocks.inputitems = Входящие предметы
blocks.outputitem = Выходящий предмет
blocks.drilltier = Добывает blocks.drilltier = Добывает
blocks.drillspeed = Базовая скорость сверления blocks.drillspeed = Базовая скорость сверления
blocks.boosteffect = Ускоряющий эффект
blocks.maxunits = Максимальное количество активных единиц blocks.maxunits = Максимальное количество активных единиц
blocks.liquidoutput = Выходящая жидкость
blocks.liquidoutputspeed = Выходная скорость жидкости
blocks.liquiduse = Используется жидкости
blocks.coolant = Охлаждающая жидкость
bar.liquid = Жидкость
blocks.coolantuse = Охлажд. жидкости используется
blocks.inputliquidfuel = Жидкое топливо
blocks.liquidfueluse = Жидкого топлива используется
blocks.boostitem = Ускоряющий предмет
blocks.boostliquid = Ускоряющая жидкость
blocks.health = Здоровье blocks.health = Здоровье
bar.heat = Температура
bar.power = Энергия
bar.progress = Строительство продолжается
bar.spawned = Бой. ед.: {0}/{1}
blocks.power.satisfaction = Энергия
blocks.inaccuracy = Разброс blocks.inaccuracy = Разброс
blocks.shots = Выстрелы blocks.shots = Выстрелы
blocks.reload = Выстрелы/секунду blocks.reload = Выстрелы/секунду
blocks.inputfuel = Входящее топливо
blocks.fuelburntime = Время горения топлива
blocks.inputcapacity = Макс. вместимость входящих предметов
blocks.outputcapacity = Макс. вместимость выходящих предметов
blocks.ammo = Боеприпасы blocks.ammo = Боеприпасы
bullet.damage = [stat]{0}[lightgray] dmg bar.drillspeed = Скорость свердления: {0}/s
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles bar.efficiency = Эффективность: {0}%
bullet.incendiary = [stat]incendiary bar.powerbalance = Энергия: {0}/с
bullet.homing = [stat]homing bar.poweramount = Энергия: {0}
bullet.shock = [stat]shock bar.poweroutput = Выходная энергия: {0}
bullet.frag = [stat]frag bar.items = Предметы: {0}
bullet.knockback = [stat]{0}[lightgray] knockback bar.liquid = Жидкости
bullet.freezing = [stat]freezing bar.heat = Нагревание
bullet.tarred = [stat]tarred bar.power = Энергия
bullet.multiplier = [stat]{0}[lightgray]x ammo multiplier bar.progress = Прогресс Строительство
bullet.reload = [stat]{0}[lightgray]x reload bar.spawned = Боев. ед. : {0}/{1}
bullet.damage = [stat]{0}[lightgray] урона
bullet.splashdamage = [stat]{0}[lightgray] урона в радиусе ~[stat] {1}[lightgray] БЛОКОВ
bullet.incendiary = [stat]поджигающий
bullet.homing = [stat]самонаводящийся
bullet.shock = [stat]ЭМИ
bullet.frag = [stat]взрывоопасный
bullet.knockback = [stat]{0}[lightgray] отдачи
bullet.freezing = [stat]замораживающий
bullet.tarred = [stat]горючий
bullet.multiplier = [stat]{0}[lightgray]x снарядов
bullet.reload = [stat]{0}[lightgray]x скорость перезарядки
unit.blocks = блоки unit.blocks = блоки
unit.powersecond = единиц энергии/секунду unit.powersecond = единиц энергии/секунду
unit.liquidsecond = жидкостных единиц/секунду unit.liquidsecond = жидкостных единиц/секунду
@@ -414,6 +399,9 @@ unit.liquidunits = жидкостных единиц
unit.powerunits = энерг. единиц unit.powerunits = энерг. единиц
unit.degrees = град. unit.degrees = град.
unit.seconds = сек. unit.seconds = сек.
unit.persecond = /сек
unit.timesspeed = x скорость
unit.percent = %
unit.items = единиц unit.items = единиц
category.general = Основные category.general = Основные
category.power = Энергия category.power = Энергия
@@ -422,14 +410,16 @@ category.items = Предметы
category.crafting = Ввод/вывод category.crafting = Ввод/вывод
category.shooting = рельба category.shooting = рельба
category.optional = Дополнительные улучшения category.optional = Дополнительные улучшения
setting.landscape.name = Lock Landscape setting.landscape.name = Сохранить ландшафт
setting.shadows.name = Shadows setting.shadows.name = Тени
setting.animatedwater.name = Анимированная вода setting.animatedwater.name = Анимированная вода
setting.animatedshields.name = Анимированные щиты
setting.antialias.name = Сглаживание[LIGHT_GRAY] (требует перезапуска)[] setting.antialias.name = Сглаживание[LIGHT_GRAY] (требует перезапуска)[]
setting.indicators.name = Показывать в сторону союзников и врагов setting.indicators.name = Показывать в сторону союзников и врагов
setting.autotarget.name = Авто-стрельба setting.autotarget.name = Авто-стрельба
setting.fpscap.name = Макс. FPS setting.fpscap.name = Макс. FPS
setting.fpscap.none = Неограниченный setting.fpscap.none = Неограниченный
minimap = Мини-карта
setting.fpscap.text = {0} FPS setting.fpscap.text = {0} FPS
setting.swapdiagonal.name = Всегда Диагональное Размещение setting.swapdiagonal.name = Всегда Диагональное Размещение
setting.difficulty.training = обучение setting.difficulty.training = обучение
@@ -496,22 +486,25 @@ mode.sandbox.name = Песочница
mode.sandbox.description = Бесконечные ресурсы и нет таймера для волн, но можно самим вызвать волну. mode.sandbox.description = Бесконечные ресурсы и нет таймера для волн, но можно самим вызвать волну.
mode.freebuild.name = ободная\nстройка mode.freebuild.name = ободная\nстройка
mode.freebuild.description = Ограниченные ресурсы и нет таймера для волн. mode.freebuild.description = Ограниченные ресурсы и нет таймера для волн.
mode.pvp.name = Противо-\nстояние mode.pvp.name = PvP
mode.pvp.description = боритесь против других игроков. mode.pvp.description = боритесь против других игроков.
mode.attack.name = Атака mode.attack.name = Атака
mode.attack.description = Нет волн, цель - уничтожить базу противника. mode.attack.description = Нет волн, цель - уничтожить базу противника.
mode.custom = Custom Rules mode.custom = Настройки правил
rules.infiniteresources = Infinite Resources rules.infiniteresources = Бескон. Ресурсы (Игрок)
rules.wavetimer = Wave Timer rules.wavetimer = Интервал волн
rules.waves = Waves rules.waves = Волны
rules.enemyCheat = Infinite AI Resources rules.enemyCheat = Бескон. Ресурсы (ИИ)
rules.pvp = PvP rules.pvp = PvP
rules.unitdrops = Unit Drops rules.unitdrops = Ресурсы Боев. Ед.
rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles) rules.unitbuildspeedmultiplier = Множитель Скорости Создания Боев. Ед.
rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec) rules.unithealthmultiplier = Множитель Здоровья Боев. Ед.
rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec) rules.playerdamagemultiplier = Множитель Урона Игрока
rules.buildcostmultiplier = Build Cost Multiplier rules.enemycorebuildradius = Радиус защиты враж. ядер: [LIGHT_GRAY] {0} (блоков)
rules.buildspeedmultiplier = Build Speed Multiplier rules.respawntime = Интервал возрождения: [LIGHT_GRAY] (сек)
rules.wavespacing = Интервал волн: [LIGHT_GRAY] (sec)
rules.buildcostmultiplier = Множитель затрат на строительство
rules.buildspeedmultiplier = Множитель скорости строительства
content.item.name = Предметы content.item.name = Предметы
content.liquid.name = Жидкости content.liquid.name = Жидкости
content.unit.name = Боевые единицы content.unit.name = Боевые единицы
@@ -540,7 +533,7 @@ item.spore-pod.name = Споровой стручок
item.spore-pod.description = Используется для превращения в нефть, взрывчатые вещества и топливо. item.spore-pod.description = Используется для превращения в нефть, взрывчатые вещества и топливо.
item.sand.name = Песок item.sand.name = Песок
item.sand.description = Обычный материал, который широко используется при плавке как в сплаве, так и в виде шлака. item.sand.description = Обычный материал, который широко используется при плавке как в сплаве, так и в виде шлака.
item.blast-compound.name = Взрывоопасное соединение item.blast-compound.name = Взрывная смесь
item.blast-compound.description = Летучее соединение, используемое в бомбах и взрывчатых веществах. Также может гореть в качестве топлива, но не рекомендуется этого делать. item.blast-compound.description = Летучее соединение, используемое в бомбах и взрывчатых веществах. Также может гореть в качестве топлива, но не рекомендуется этого делать.
item.pyratite.name = Пиротит item.pyratite.name = Пиротит
item.pyratite.description = Очень огнеопасное вещество, используемое в зажигательном оружии. item.pyratite.description = Очень огнеопасное вещество, используемое в зажигательном оружии.
@@ -554,7 +547,7 @@ liquid.oil.name = Нефть
liquid.cryofluid.name = Криогенная жидкость liquid.cryofluid.name = Криогенная жидкость
mech.alpha-mech.name = Альфа mech.alpha-mech.name = Альфа
mech.alpha-mech.weapon = Тяжёлый пулемёт mech.alpha-mech.weapon = Тяжёлый пулемёт
mech.alpha-mech.ability = Нет mech.alpha-mech.ability = Регенерация
mech.alpha-mech.description = Стандартный мех для настольных устройств. Имеет приличную скорость и урон. mech.alpha-mech.description = Стандартный мех для настольных устройств. Имеет приличную скорость и урон.
mech.delta-mech.name = Дельта mech.delta-mech.name = Дельта
mech.delta-mech.weapon = Дуговой генератор mech.delta-mech.weapon = Дуговой генератор
@@ -589,9 +582,10 @@ unit.speed = [LIGHT_GRAY]Скорость: {0}
mech.weapon = [LIGHT_GRAY]Оружие: {0} mech.weapon = [LIGHT_GRAY]Оружие: {0}
mech.health = [LIGHT_GRAY]Здоровье: {0} mech.health = [LIGHT_GRAY]Здоровье: {0}
mech.itemcapacity = [LIGHT_GRAY]Вместимость предметов: {0} mech.itemcapacity = [LIGHT_GRAY]Вместимость предметов: {0}
mech.minespeed = [LIGHT_GRAY]Скорость добычи: {0} mech.minespeed = [LIGHT_GRAY]Скорость добычи: {0}%
mech.minepower = [LIGHT_GRAY]Мощность добычи: {0} mech.minepower = [LIGHT_GRAY]Мощность добычи: {0}
mech.ability = [LIGHT_GRAY]Способность: {0} mech.ability = [LIGHT_GRAY]Способность: {0}
mech.buildspeed = [LIGHT_GRAY]Скорость строительства: {0}%
liquid.heatcapacity = [LIGHT_GRAY]Теплоёмкость: {0} liquid.heatcapacity = [LIGHT_GRAY]Теплоёмкость: {0}
liquid.viscosity = [LIGHT_GRAY]Вязкость: {0} liquid.viscosity = [LIGHT_GRAY]Вязкость: {0}
liquid.temperature = [LIGHT_GRAY]Температура: {0} liquid.temperature = [LIGHT_GRAY]Температура: {0}
@@ -698,7 +692,7 @@ block.impact-reactor.name = Импульсный реактор
block.mechanical-drill.name = Механический бур block.mechanical-drill.name = Механический бур
block.pneumatic-drill.name = Пневматический бур block.pneumatic-drill.name = Пневматический бур
block.laser-drill.name = Лазерный бур block.laser-drill.name = Лазерный бур
block.water-extractor.name = Экстрактор воды block.water-extractor.name = Гидроконденсатор
block.cultivator.name = Культиватор block.cultivator.name = Культиватор
block.alpha-dart-mech-pad.name = Реконструктор мехов "Альфа-Дротик" block.alpha-dart-mech-pad.name = Реконструктор мехов "Альфа-Дротик"
block.delta-mech-pad.name = Реконструктор "Дельта" block.delta-mech-pad.name = Реконструктор "Дельта"
@@ -727,7 +721,7 @@ block.pyratite-mixer.name = Мешалка пиротита
block.blast-mixer.name = Мешалка взрывоопасного соединения block.blast-mixer.name = Мешалка взрывоопасного соединения
block.solar-panel.name = Солнечная панель block.solar-panel.name = Солнечная панель
block.solar-panel-large.name = Большая солнечная панель block.solar-panel-large.name = Большая солнечная панель
block.oil-extractor.name = Нефтяной экстрактор block.oil-extractor.name = Нефтяная вышка
block.spirit-factory.name = Завод дронов "Призрак" block.spirit-factory.name = Завод дронов "Призрак"
block.phantom-factory.name = Завод дронов "Фантом" block.phantom-factory.name = Завод дронов "Фантом"
block.wraith-factory.name = Завод призрачных истребителей block.wraith-factory.name = Завод призрачных истребителей
@@ -767,7 +761,7 @@ block.meltdown.name = Катастрофа
block.container.name = Склад block.container.name = Склад
block.launch-pad.name = Стартовая площадка block.launch-pad.name = Стартовая площадка
block.launch-pad.description = Запускает партии предметов без необходимости запуска ядра. Незавершённое. block.launch-pad.description = Запускает партии предметов без необходимости запуска ядра. Незавершённое.
block.launch-pad-large.name = Large Launch Pad block.launch-pad-large.name = Большая Стартовая площадка
team.blue.name = Синяя team.blue.name = Синяя
team.red.name = Красная team.red.name = Красная
team.orange.name = Оранжевая team.orange.name = Оранжевая
@@ -852,7 +846,7 @@ block.silicon-smelter.description = С помощью песка, угля и э
block.plastanium-compressor.description = Создаёт пластиний из титана и нефти. Требует энергии. Для ускорения производства можно добавить в компрессор песок. block.plastanium-compressor.description = Создаёт пластиний из титана и нефти. Требует энергии. Для ускорения производства можно добавить в компрессор песок.
block.phase-weaver.description = Производит фазовую материю из тория и песка. Требует большего количества энергии. block.phase-weaver.description = Производит фазовую материю из тория и песка. Требует большего количества энергии.
block.alloy-smelter.description = Создаёт кинетический сплав из титана, кремния, меди и свинца. Требует энергию. block.alloy-smelter.description = Создаёт кинетический сплав из титана, кремния, меди и свинца. Требует энергию.
block.pulverizer.description = Измельчает камень в песок. Требует энергию. block.pulverizer.description = Измельчает металлолом в песок. Требует энергию.
block.pyratite-mixer.description = Создаёт пиротит из угля, свинца и песка. Требует энергии. block.pyratite-mixer.description = Создаёт пиротит из угля, свинца и песка. Требует энергии.
block.blast-mixer.description = Создаёт взрывоопасное соединение из нефти и пиротита. Для ускорения производства можно добавить в мешалку песок. block.blast-mixer.description = Создаёт взрывоопасное соединение из нефти и пиротита. Для ускорения производства можно добавить в мешалку песок.
block.cryofluidmixer.description = Производит криогенную жидкость из воды и титана. Требует энергии. block.cryofluidmixer.description = Производит криогенную жидкость из воды и титана. Требует энергии.
@@ -896,7 +890,7 @@ block.titan-factory.description = Производит продвинутые з
block.fortress-factory.description = Производит тяжёлые артиллерийские боевые единицы. block.fortress-factory.description = Производит тяжёлые артиллерийские боевые единицы.
block.revenant-factory.description = Производит тяжёлые летающие боевые единицы. block.revenant-factory.description = Производит тяжёлые летающие боевые единицы.
block.repair-point.description = Может ремонтировать вас и ваши боевые единицы block.repair-point.description = Может ремонтировать вас и ваши боевые единицы
block.conduit.description = Основной блок транспортировки жидкости. Работает как конвейер, но с жидкостями. Лучше всего использовать экстракторы, насосы или т.п.. block.conduit.description = Основной блок транспортировки жидкости. Работает как конвейер, но с жидкостями.
block.pulse-conduit.description = Улучшенный блок транспортировки жидкости. Транспортирует жидкости быстрее и хранит больше, чем стандартные. block.pulse-conduit.description = Улучшенный блок транспортировки жидкости. Транспортирует жидкости быстрее и хранит больше, чем стандартные.
block.phase-conduit.description = Улучшенный блок транспортировки жидкости. Использует энергию для передачи жидкостей на подключенный фазовый канал на несколько плиток. block.phase-conduit.description = Улучшенный блок транспортировки жидкости. Использует энергию для передачи жидкостей на подключенный фазовый канал на несколько плиток.
block.liquid-router.description = Принимает жидкости с одного направления и равномерно выводит их до трех других направлений. Может также хранить определенное количество жидкости. Полезно для разделения жидкостей из одного источника на несколько целей. block.liquid-router.description = Принимает жидкости с одного направления и равномерно выводит их до трех других направлений. Может также хранить определенное количество жидкости. Полезно для разделения жидкостей из одного источника на несколько целей.

View File

@@ -40,6 +40,7 @@ addplayers = Oyuncu ekle/cikar
customgame = Ozel oyun customgame = Ozel oyun
newgame = New Game newgame = New Game
none = <none> none = <none>
minimap = Minimap
close = Kapat close = Kapat
quit = Cik quit = Cik
maps = Haritalar maps = Haritalar
@@ -335,66 +336,48 @@ no = Hayir
info.title = [accent]Bilgi info.title = [accent]Bilgi
error.title = [crimson]Bir hata olustu error.title = [crimson]Bir hata olustu
error.crashtitle = Bir hata olustu error.crashtitle = Bir hata olustu
bar.drillspeed = Drill Speed: {0}/s blocks.input = Input
bar.efficiency = Efficiency: {0}% blocks.output = Output
blocks.booster = Booster
block.unknown = [LIGHT_GRAY]??? block.unknown = [LIGHT_GRAY]???
blocks.blockinfo = Yapi bilgisi
bar.powerbalance = Power: {0}
bar.poweroutput = Power Output: {0}
blocks.powercapacity = Guc kapasitesi blocks.powercapacity = Guc kapasitesi
blocks.powershot = Guc/Saldiri hizi blocks.powershot = Guc/Saldiri hizi
blocks.targetsair = Havayi hedef alir mi? blocks.targetsair = Havayi hedef alir mi?
blocks.targetsground = Targets Ground blocks.targetsground = Targets Ground
bar.items = Items: {0}
blocks.itemsmoved = Move Speed blocks.itemsmoved = Move Speed
blocks.launchtime = Time Between Launches blocks.launchtime = Time Between Launches
blocks.shootrange = Menzil blocks.shootrange = Menzil
blocks.size = Buyukluk blocks.size = Buyukluk
blocks.liquidcapacity = Sivi kapasitesi blocks.liquidcapacity = Sivi kapasitesi
blocks.maxitemssecond = Esya limiti
blocks.powerrange = Menzil blocks.powerrange = Menzil
blocks.poweruse = Guc kullanimi blocks.poweruse = Guc kullanimi
blocks.powerdamage = Power/Damage blocks.powerdamage = Power/Damage
blocks.inputitemcapacity = Giris esya kapasitesi
blocks.outputitemcapacity = Cikis esya kapasitesi
blocks.itemcapacity = Esya kapasitesi blocks.itemcapacity = Esya kapasitesi
blocks.basepowergeneration = Base Power Generation blocks.basepowergeneration = Base Power Generation
blocks.powertransferspeed = Guc transfer hizi blocks.productiontime = Production Time
blocks.craftspeed = Yapilma hizi
blocks.repairtime = Block Full Repair Time blocks.repairtime = Block Full Repair Time
blocks.speedincrease = Speed Increase
blocks.range = Range blocks.range = Range
blocks.inputliquid = Giris sivi
blocks.inputliquidaux = Yardimci sivi
blocks.inputitem = Giris esyasi
blocks.inputitems = Giris esyalari
blocks.outputitem = Sonuc
blocks.drilltier = Kazilabilirler blocks.drilltier = Kazilabilirler
blocks.drillspeed = Ana kazma hizi blocks.drillspeed = Ana kazma hizi
blocks.boosteffect = Boost Effect
blocks.maxunits = Max Active Units blocks.maxunits = Max Active Units
blocks.liquidoutput = Sivi cikisi
blocks.liquidoutputspeed = Liquid Output Speed
blocks.liquiduse = Sivi kullanimi
blocks.coolant = Sogutma sivisi
bar.liquid = Liquid
blocks.coolantuse = Sogutma sivi kullanimi
blocks.inputliquidfuel = Yakit sivisi
blocks.liquidfueluse = Sivi yakit kullanimi
blocks.boostitem = Boost Item
blocks.boostliquid = Boost Liquid
blocks.health = Can blocks.health = Can
blocks.inaccuracy = sekme
blocks.shots = vuruslar
blocks.reload = Yeniden doldurma
blocks.ammo = Ammo
bar.drillspeed = Drill Speed: {0}/s
bar.efficiency = Efficiency: {0}%
bar.powerbalance = Power: {0}
bar.poweramount = Power: {0}
bar.poweroutput = Power Output: {0}
bar.items = Items: {0}
bar.liquid = Liquid
bar.heat = Heat bar.heat = Heat
bar.power = Power bar.power = Power
bar.progress = Build Progress bar.progress = Build Progress
bar.spawned = Units: {0}/{1} bar.spawned = Units: {0}/{1}
blocks.power.satisfaction = Power Satisfaction
blocks.inaccuracy = sekme
blocks.shots = vuruslar
blocks.reload = Yeniden doldurma
blocks.inputfuel = Yakit
blocks.fuelburntime = Yakit yakilma suresi
blocks.inputcapacity = Giris kapasitesi
blocks.outputcapacity = Cikis kapasitesi
blocks.ammo = Ammo
bullet.damage = [stat]{0}[lightgray] dmg bullet.damage = [stat]{0}[lightgray] dmg
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
bullet.incendiary = [stat]incendiary bullet.incendiary = [stat]incendiary
@@ -414,6 +397,9 @@ unit.liquidunits = Litre
unit.powerunits = Volt unit.powerunits = Volt
unit.degrees = derece unit.degrees = derece
unit.seconds = saniye unit.seconds = saniye
unit.persecond = /sec
unit.timesspeed = x speed
unit.percent = %
unit.items = esya unit.items = esya
category.general = General category.general = General
category.power = Guc category.power = Guc
@@ -425,6 +411,7 @@ category.optional = Optional Enhancements
setting.landscape.name = Lock Landscape setting.landscape.name = Lock Landscape
setting.shadows.name = Shadows setting.shadows.name = Shadows
setting.animatedwater.name = Animated Water setting.animatedwater.name = Animated Water
setting.animatedshields.name = Animated Shields
setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[] setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[]
setting.indicators.name = Ally Indicators setting.indicators.name = Ally Indicators
setting.autotarget.name = Auto-Target setting.autotarget.name = Auto-Target
@@ -448,6 +435,7 @@ setting.borderless.name = Borderless Window
setting.fps.name = FPS'i goster setting.fps.name = FPS'i goster
setting.vsync.name = VSync setting.vsync.name = VSync
setting.lasers.name = Guc lazerlerini goster setting.lasers.name = Guc lazerlerini goster
setting.pixelate.name = Pixelate [LIGHT_GRAY](may decrease performance)
setting.minimap.name = Haritayi goster setting.minimap.name = Haritayi goster
setting.musicvol.name = Ses yuksekligi setting.musicvol.name = Ses yuksekligi
setting.mutemusic.name = Sesi kapat setting.mutemusic.name = Sesi kapat
@@ -507,6 +495,9 @@ rules.waves = Waves
rules.enemyCheat = Infinite AI Resources rules.enemyCheat = Infinite AI Resources
rules.pvp = PvP rules.pvp = PvP
rules.unitdrops = Unit Drops rules.unitdrops = Unit Drops
rules.unitbuildspeedmultiplier = Unit Creation Speed Multiplier
rules.unithealthmultiplier = Unit Health Multiplier
rules.playerdamagemultiplier = Player Damage Multiplier
rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles) rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles)
rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec) rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec)
rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec) rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec)
@@ -592,6 +583,7 @@ mech.itemcapacity = [LIGHT_GRAY]esya kapasitesi: {0}
mech.minespeed = [LIGHT_GRAY]kazma hizi: {0} mech.minespeed = [LIGHT_GRAY]kazma hizi: {0}
mech.minepower = [LIGHT_GRAY]kazma gucu: {0} mech.minepower = [LIGHT_GRAY]kazma gucu: {0}
mech.ability = [LIGHT_GRAY]yetenek gucu: {0} mech.ability = [LIGHT_GRAY]yetenek gucu: {0}
mech.buildspeed = [LIGHT_GRAY]Building Speed: {0}%
liquid.heatcapacity = [LIGHT_GRAY]isinma kapasitesi: {0} liquid.heatcapacity = [LIGHT_GRAY]isinma kapasitesi: {0}
liquid.viscosity = [LIGHT_GRAY]Yari sivilik: {0} liquid.viscosity = [LIGHT_GRAY]Yari sivilik: {0}
liquid.temperature = [LIGHT_GRAY]isi: {0} liquid.temperature = [LIGHT_GRAY]isi: {0}

View File

@@ -40,6 +40,7 @@ addplayers = Oyuncu ekle/cikar
customgame = Ozel oyun customgame = Ozel oyun
newgame = New Game newgame = New Game
none = <none> none = <none>
minimap = Minimap
close = Kapat close = Kapat
quit = Çık quit = Çık
maps = Haritalar maps = Haritalar
@@ -335,66 +336,48 @@ no = No
info.title = [Vurgu] Bilgi info.title = [Vurgu] Bilgi
error.title = [crimson] Bir hata oluştu error.title = [crimson] Bir hata oluştu
error.crashtitle = Bir hata oluştu error.crashtitle = Bir hata oluştu
bar.drillspeed = Drill Speed: {0}/s blocks.input = Input
bar.efficiency = Efficiency: {0}% blocks.output = Output
blocks.booster = Booster
block.unknown = [LIGHT_GRAY]??? block.unknown = [LIGHT_GRAY]???
blocks.blockinfo = Blok Bilgisi
bar.powerbalance = Power: {0}
bar.poweroutput = Power Output: {0}
blocks.powercapacity = Güç kapasitesi blocks.powercapacity = Güç kapasitesi
blocks.powershot = Güç / atış blocks.powershot = Güç / atış
blocks.targetsair = Targets Air blocks.targetsair = Targets Air
blocks.targetsground = Targets Ground blocks.targetsground = Targets Ground
bar.items = Items: {0}
blocks.itemsmoved = Move Speed blocks.itemsmoved = Move Speed
blocks.launchtime = Time Between Launches blocks.launchtime = Time Between Launches
blocks.shootrange = Range blocks.shootrange = Range
blocks.size = Boyut blocks.size = Boyut
blocks.liquidcapacity = Sıvı kapasitesi blocks.liquidcapacity = Sıvı kapasitesi
blocks.maxitemssecond = Maksimum öğe / saniye
blocks.powerrange = Güç aralığı blocks.powerrange = Güç aralığı
blocks.poweruse = Power Use blocks.poweruse = Power Use
blocks.powerdamage = Power/Damage blocks.powerdamage = Power/Damage
blocks.inputitemcapacity = Input Item Capacity
blocks.outputitemcapacity = Input Item Capacity
blocks.itemcapacity = Ürün kapasitesi blocks.itemcapacity = Ürün kapasitesi
blocks.basepowergeneration = Base Power Generation blocks.basepowergeneration = Base Power Generation
blocks.powertransferspeed = Power Transfer blocks.productiontime = Production Time
blocks.craftspeed = Production Speed
blocks.repairtime = Block Full Repair Time blocks.repairtime = Block Full Repair Time
blocks.speedincrease = Speed Increase
blocks.range = Range blocks.range = Range
blocks.inputliquid = Giriş sıvı
blocks.inputliquidaux = Aux Liquid
blocks.inputitem = Giriş öğesi
blocks.inputitems = Input Items
blocks.outputitem = Output Item
blocks.drilltier = Drillables blocks.drilltier = Drillables
blocks.drillspeed = Base Drill Speed blocks.drillspeed = Base Drill Speed
blocks.boosteffect = Boost Effect
blocks.maxunits = Max Active Units blocks.maxunits = Max Active Units
blocks.liquidoutput = Liquid Output
blocks.liquidoutputspeed = Liquid Output Speed
blocks.liquiduse = Liquid Use
blocks.coolant = Coolant
bar.liquid = Liquid
blocks.coolantuse = Coolant Use
blocks.inputliquidfuel = Fuel Liquid
blocks.liquidfueluse = Liquid Fuel Use
blocks.boostitem = Boost Item
blocks.boostliquid = Boost Liquid
blocks.health = Can blocks.health = Can
blocks.inaccuracy = yanlışlık
blocks.shots = atışlar
blocks.reload = Reload
blocks.ammo = Ammo
bar.drillspeed = Drill Speed: {0}/s
bar.efficiency = Efficiency: {0}%
bar.powerbalance = Power: {0}
bar.poweramount = Power: {0}
bar.poweroutput = Power Output: {0}
bar.items = Items: {0}
bar.liquid = Liquid
bar.heat = Heat bar.heat = Heat
bar.power = Power bar.power = Power
bar.progress = Build Progress bar.progress = Build Progress
bar.spawned = Units: {0}/{1} bar.spawned = Units: {0}/{1}
blocks.power.satisfaction = Power Satisfaction
blocks.inaccuracy = yanlışlık
blocks.shots = atışlar
blocks.reload = Reload
blocks.inputfuel = Fuel
blocks.fuelburntime = Fuel Burn Time
blocks.inputcapacity = Giriş kapasitesi
blocks.outputcapacity = Çıkış kapasitesi
blocks.ammo = Ammo
bullet.damage = [stat]{0}[lightgray] dmg bullet.damage = [stat]{0}[lightgray] dmg
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
bullet.incendiary = [stat]incendiary bullet.incendiary = [stat]incendiary
@@ -414,6 +397,9 @@ unit.liquidunits = liquid units
unit.powerunits = power units unit.powerunits = power units
unit.degrees = degrees unit.degrees = degrees
unit.seconds = seconds unit.seconds = seconds
unit.persecond = /sec
unit.timesspeed = x speed
unit.percent = %
unit.items = items unit.items = items
category.general = General category.general = General
category.power = Power category.power = Power
@@ -425,6 +411,7 @@ category.optional = Optional Enhancements
setting.landscape.name = Lock Landscape setting.landscape.name = Lock Landscape
setting.shadows.name = Shadows setting.shadows.name = Shadows
setting.animatedwater.name = Animated Water setting.animatedwater.name = Animated Water
setting.animatedshields.name = Animated Shields
setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[] setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[]
setting.indicators.name = Ally Indicators setting.indicators.name = Ally Indicators
setting.autotarget.name = Auto-Target setting.autotarget.name = Auto-Target
@@ -448,6 +435,7 @@ setting.borderless.name = Borderless Window
setting.fps.name = Saniyede ... Kare göstermek setting.fps.name = Saniyede ... Kare göstermek
setting.vsync.name = VSync setting.vsync.name = VSync
setting.lasers.name = Güç Lazerleri Göster setting.lasers.name = Güç Lazerleri Göster
setting.pixelate.name = Pixelate [LIGHT_GRAY](may decrease performance)
setting.minimap.name = Show Minimap setting.minimap.name = Show Minimap
setting.musicvol.name = Müzik sesi setting.musicvol.name = Müzik sesi
setting.mutemusic.name = Müziği Kapat setting.mutemusic.name = Müziği Kapat
@@ -507,6 +495,9 @@ rules.waves = Waves
rules.enemyCheat = Infinite AI Resources rules.enemyCheat = Infinite AI Resources
rules.pvp = PvP rules.pvp = PvP
rules.unitdrops = Unit Drops rules.unitdrops = Unit Drops
rules.unitbuildspeedmultiplier = Unit Creation Speed Multiplier
rules.unithealthmultiplier = Unit Health Multiplier
rules.playerdamagemultiplier = Player Damage Multiplier
rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles) rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles)
rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec) rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec)
rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec) rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec)
@@ -592,6 +583,7 @@ mech.itemcapacity = [LIGHT_GRAY]Item Capacity: {0}
mech.minespeed = [LIGHT_GRAY]Mining Speed: {0} mech.minespeed = [LIGHT_GRAY]Mining Speed: {0}
mech.minepower = [LIGHT_GRAY]Mining Power: {0} mech.minepower = [LIGHT_GRAY]Mining Power: {0}
mech.ability = [LIGHT_GRAY]Ability: {0} mech.ability = [LIGHT_GRAY]Ability: {0}
mech.buildspeed = [LIGHT_GRAY]Building Speed: {0}%
liquid.heatcapacity = [LIGHT_GRAY]Heat Capacity: {0} liquid.heatcapacity = [LIGHT_GRAY]Heat Capacity: {0}
liquid.viscosity = [LIGHT_GRAY]Viscosity: {0} liquid.viscosity = [LIGHT_GRAY]Viscosity: {0}
liquid.temperature = [LIGHT_GRAY]Temperature: {0} liquid.temperature = [LIGHT_GRAY]Temperature: {0}

View File

@@ -40,6 +40,7 @@ addplayers = Дод/Видалити гравців
customgame = Користувальницька гра customgame = Користувальницька гра
newgame = Нова гра newgame = Нова гра
none = <нічого> none = <нічого>
minimap = Minimap
close = Закрити close = Закрити
quit = Вийти quit = Вийти
maps = Мапи maps = Мапи
@@ -335,66 +336,50 @@ no = Ні
info.title = Інформація info.title = Інформація
error.title = [crimson]Виникла помилка error.title = [crimson]Виникла помилка
error.crashtitle = Виникла помилка error.crashtitle = Виникла помилка
bar.drillspeed = Швидкість свердління: {0}/с blocks.input = Вхід
bar.efficiency = Ефективність: {0}% blocks.output = Вихід
blocks.booster = Прискорювач
block.unknown = [LIGHT_GRAY]??? block.unknown = [LIGHT_GRAY]???
blocks.blockinfo = Інформація про блок
bar.powerbalance = Енергія: {0}
bar.poweroutput = Вихідна енергія: {0}
blocks.powercapacity = Місткість енергії blocks.powercapacity = Місткість енергії
blocks.powershot = Енергія/постріл blocks.powershot = Енергія/постріл
blocks.targetsair = Повітряні мішені blocks.targetsair = Повітряні мішені
blocks.targetsground = Наземні мішені blocks.targetsground = Наземні мішені
bar.items = Предмети: {0}
blocks.itemsmoved = Швидкість переміщення blocks.itemsmoved = Швидкість переміщення
blocks.launchtime = Time Between Launches blocks.launchtime = Час між запусками
blocks.shootrange = Діапазон дії blocks.shootrange = Діапазон дії
blocks.size = Розмір blocks.size = Розмір
blocks.liquidcapacity = Місткість рідини blocks.liquidcapacity = Місткість рідини
blocks.maxitemssecond = Макс. кількість предметів/секунду
blocks.powerrange = Діапазон передачі енергії blocks.powerrange = Діапазон передачі енергії
blocks.poweruse = Енергії використовує blocks.poweruse = Енергії використовує
blocks.powerdamage = Енергія/урон blocks.powerdamage = Енергія/урон
blocks.inputitemcapacity = Ємність вхідних елементів
blocks.outputitemcapacity = Ємність вихідних елементів
blocks.itemcapacity = Місткість предметів blocks.itemcapacity = Місткість предметів
blocks.basepowergeneration = Базова генерація енергії blocks.basepowergeneration = Базова генерація енергії
blocks.powertransferspeed = Швидкість передачі енергії
blocks.craftspeed = Швидкість виробництва blocks.craftspeed = Швидкість виробництва
blocks.repairtime = Block Full Repair Time blocks.productiontime = Час виробництва
blocks.range = Range blocks.repairtime = Час повного відновлення блоку
blocks.speedincrease = Збільшення швидкості
blocks.range = Радіус дії
blocks.inputliquid = Прийом рідини blocks.inputliquid = Прийом рідини
blocks.inputliquidaux = Допоміжна рідина
blocks.inputitem = Вхідний предмет
blocks.inputitems = Вхідні предмети
blocks.outputitem = Вихідний предмет
blocks.drilltier = Видобуває blocks.drilltier = Видобуває
blocks.drillspeed = Базова швидкість свердління blocks.drillspeed = Базова швидкість свердління
blocks.boosteffect = Прискорювальний ефект
blocks.maxunits = Максимальна кількість активних одиниць blocks.maxunits = Максимальна кількість активних одиниць
blocks.liquidoutput = Вихідна рідина
blocks.liquidoutputspeed = Швидкість вихідної рідини
blocks.liquiduse = Використовуеться рідин
blocks.coolant = Охолоджуюча рідина
bar.liquid = Рідина
blocks.coolantuse = Охолодж. рідини використовуеться
blocks.inputliquidfuel = Рідке паливо
blocks.liquidfueluse = Рідкого палива використовуеться
blocks.boostitem = Прискорюючий предмет
blocks.boostliquid = Прискорююча рідина
blocks.health = Здоров'я blocks.health = Здоров'я
bar.heat = Температура
bar.power = Енергія
bar.progress = Будівництво триває
bar.spawned = Бой. од.: {0}/{1}
blocks.power.satisfaction = Енергія
blocks.inaccuracy = Розкид blocks.inaccuracy = Розкид
blocks.shots = Постріли blocks.shots = Постріли
blocks.reload = Постріли/секунду blocks.reload = Постріли/секунду
blocks.inputfuel = Паливо
blocks.fuelburntime = Час горіння топлива
blocks.inputcapacity = Макс. місткість вхідних предметів
blocks.outputcapacity = Макс. місткість вихідних предметів
blocks.ammo = Боєприпаси blocks.ammo = Боєприпаси
bar.drillspeed = Швидкість сверрдління: {0}/s
bar.efficiency = Ефективність: {0}%
bar.powerbalance = Енергія: {0}/с
bar.poweramount = Енергія: {0}
bar.poweroutput = Вихідна енергія: {0}
bar.items = Предмети: {0}
bar.liquid = Рідина
bar.heat = Нагрівання
bar.power = Енергія
bar.progress = Хід Будівництва
bar.spawned = Бойов. од. : {0}/{1}
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] плитк.
bullet.incendiary = [stat]запальний bullet.incendiary = [stat]запальний
@@ -404,8 +389,8 @@ bullet.frag = [stat]осколкова граната
bullet.knockback = [stat]{0}[lightgray] відкидання bullet.knockback = [stat]{0}[lightgray] відкидання
bullet.freezing = [stat]заморожування bullet.freezing = [stat]заморожування
bullet.tarred = [stat]дьогтьовий bullet.tarred = [stat]дьогтьовий
bullet.multiplier = [stat]{0}[lightgray]x множник патронів bullet.multiplier = [stat]{0}[lightgray]x патронів
bullet.reload = [stat]{0}[lightgray]x перезаряджання bullet.reload = [stat]{0}[lightgray]x швидкість перезаряджання
unit.blocks = блоки unit.blocks = блоки
unit.powersecond = одиниць енергії/секунду unit.powersecond = одиниць енергії/секунду
unit.liquidsecond = рідких одиниць/секунду unit.liquidsecond = рідких одиниць/секунду
@@ -414,6 +399,9 @@ unit.liquidunits = рідинних одиниць
unit.powerunits = енергетичних одиниць unit.powerunits = енергетичних одиниць
unit.degrees = град. unit.degrees = град.
unit.seconds = сек. unit.seconds = сек.
unit.persecond = /сек
unit.timesspeed = x швидкість
unit.percent = %
unit.items = предм. unit.items = предм.
category.general = Загальні category.general = Загальні
category.power = Енергетичні category.power = Енергетичні
@@ -422,14 +410,16 @@ category.items = Предмети
category.crafting = Введення/виведення category.crafting = Введення/виведення
category.shooting = Стрільба category.shooting = Стрільба
category.optional = Додаткові поліпшення category.optional = Додаткові поліпшення
setting.landscape.name = Заблокований пейхаж setting.landscape.name = Зберегти пейхаж
setting.shadows.name = Тіні setting.shadows.name = Тіні
setting.animatedwater.name = Анімована вода setting.animatedwater.name = Анімована вода
setting.animatedshields.name = Анімовані щити
setting.antialias.name = Згладжування[LIGHT_GRAY] (потребує перезапуску)[] setting.antialias.name = Згладжування[LIGHT_GRAY] (потребує перезапуску)[]
setting.indicators.name = Показувати у сторону ворогів та союзників setting.indicators.name = Показувати у сторону ворогів та союзників
setting.autotarget.name = Авто-стрільба setting.autotarget.name = Авто-стрільба
setting.fpscap.name = Макс. FPS setting.fpscap.name = Макс. FPS
setting.fpscap.none = Необмежений setting.fpscap.none = Необмежений
minimap = Міні-мапа
setting.fpscap.text = {0} FPS setting.fpscap.text = {0} FPS
setting.swapdiagonal.name = Завжди Діагональне Розміщення setting.swapdiagonal.name = Завжди Діагональне Розміщення
setting.difficulty.training = навчання setting.difficulty.training = навчання
@@ -448,7 +438,8 @@ setting.borderless.name = Вікно без полів
setting.fps.name = Показувати FPS setting.fps.name = Показувати FPS
setting.vsync.name = Вертикальна синхронізація setting.vsync.name = Вертикальна синхронізація
setting.lasers.name = Показувати енергію лазерів setting.lasers.name = Показувати енергію лазерів
setting.minimap.name = Показати мінімапу setting.pixelate.name = Пікселізація [LIGHT_GRAY](може знизити продуктивність)
setting.minimap.name = Показати міні-мапу
setting.musicvol.name = Гучність музики setting.musicvol.name = Гучність музики
setting.mutemusic.name = Заглушити музику setting.mutemusic.name = Заглушити музику
setting.sfxvol.name = Гучність звукових ефектів setting.sfxvol.name = Гучність звукових ефектів
@@ -506,7 +497,10 @@ rules.wavetimer = Таймер Хвиль
rules.waves = Хвилі rules.waves = Хвилі
rules.enemyCheat = Нескінченні ресурси для ШІ rules.enemyCheat = Нескінченні ресурси для ШІ
rules.pvp = PvP rules.pvp = PvP
rules.unitdrops = Падіння бойових одиниць rules.unitdrops = Ресурс бойових одиниць
rules.unitbuildspeedmultiplier = Множник Швидкості Створювання Бойов. Од.
rules.unithealthmultiplier = Множник Здоров'я Створювання Бойов. Од.
rules.playerdamagemultiplier = Множник Шкоди Гравця
rules.enemycorebuildradius = Радіус заборони будування для Ворожого Ядра:[LIGHT_GRAY] (плитки) rules.enemycorebuildradius = Радіус заборони будування для Ворожого Ядра:[LIGHT_GRAY] (плитки)
rules.respawntime = Час відродження:[LIGHT_GRAY] (sec) rules.respawntime = Час відродження:[LIGHT_GRAY] (sec)
rules.wavespacing = Інтервал хвиль:[LIGHT_GRAY] (sec) rules.wavespacing = Інтервал хвиль:[LIGHT_GRAY] (sec)
@@ -540,7 +534,7 @@ item.spore-pod.name = Споровий стручок
item.spore-pod.description = Використовується для перетворення на нафту, вибухові речовини та паливо. item.spore-pod.description = Використовується для перетворення на нафту, вибухові речовини та паливо.
item.sand.name = Пісок item.sand.name = Пісок
item.sand.description = Загальний матеріал, який широко використовується при плавленні, як у процесі плавки, так і у вигляді шлака. item.sand.description = Загальний матеріал, який широко використовується при плавленні, як у процесі плавки, так і у вигляді шлака.
item.blast-compound.name = Вибухонебезпечне з'єднання item.blast-compound.name = Вибухова суміш
item.blast-compound.description = Нестійке з'єднання, що використовується в бомбах та вибухових речовинах. Хоча воно може спалюватися як паливо, та це не рекомендується. item.blast-compound.description = Нестійке з'єднання, що використовується в бомбах та вибухових речовинах. Хоча воно може спалюватися як паливо, та це не рекомендується.
item.pyratite.name = Піротит item.pyratite.name = Піротит
item.pyratite.description = Вкрай легкозаймиста речовина, що використовується у запальній зброї. item.pyratite.description = Вкрай легкозаймиста речовина, що використовується у запальній зброї.
@@ -554,7 +548,7 @@ liquid.oil.name = Нафта
liquid.cryofluid.name = Кріогенна рідина liquid.cryofluid.name = Кріогенна рідина
mech.alpha-mech.name = Альфа mech.alpha-mech.name = Альфа
mech.alpha-mech.weapon = Тяжкий кулемет mech.alpha-mech.weapon = Тяжкий кулемет
mech.alpha-mech.ability = Нема mech.alpha-mech.ability = Регенерація
mech.alpha-mech.description = Стандартний мех для настільних пристроїв. Має пристойну швидкість і урон. mech.alpha-mech.description = Стандартний мех для настільних пристроїв. Має пристойну швидкість і урон.
mech.delta-mech.name = Дельта mech.delta-mech.name = Дельта
mech.delta-mech.weapon = Генератор дуг mech.delta-mech.weapon = Генератор дуг
@@ -589,9 +583,10 @@ unit.speed = [LIGHT_GRAY]Швидкість: {0}
mech.weapon = [LIGHT_GRAY]Зброя: {0} mech.weapon = [LIGHT_GRAY]Зброя: {0}
mech.health = [LIGHT_GRAY]Здоров'я: {0} mech.health = [LIGHT_GRAY]Здоров'я: {0}
mech.itemcapacity = [LIGHT_GRAY] Ємність елементів: {0} mech.itemcapacity = [LIGHT_GRAY] Ємність елементів: {0}
mech.minespeed = [LIGHT_GRAY]Швидкість видобутку: {0} mech.minespeed = [LIGHT_GRAY]Швидкість видобутку: {0}%
mech.minepower = [LIGHT_GRAY]Потужність видобутку: {0} mech.minepower = [LIGHT_GRAY]Потужність видобутку: {0}
mech.ability = [LIGHT_GRAY]Здібність: {0} mech.ability = [LIGHT_GRAY]Здібність: {0}
mech.buildspeed = [LIGHT_GRAY]Швидкість будування: {0}%
liquid.heatcapacity = [LIGHT_GRAY]Теплоємність: {0} liquid.heatcapacity = [LIGHT_GRAY]Теплоємність: {0}
liquid.viscosity = [LIGHT_GRAY]В'язкість: {0} liquid.viscosity = [LIGHT_GRAY]В'язкість: {0}
liquid.temperature = [LIGHT_GRAY]Температура: {0} liquid.temperature = [LIGHT_GRAY]Температура: {0}
@@ -698,7 +693,7 @@ block.impact-reactor.name = Імпульсний реактор
block.mechanical-drill.name = Механічний дриль block.mechanical-drill.name = Механічний дриль
block.pneumatic-drill.name = Пневматичний дриль block.pneumatic-drill.name = Пневматичний дриль
block.laser-drill.name = Лазерний дриль block.laser-drill.name = Лазерний дриль
block.water-extractor.name = Екстрактор води block.water-extractor.name = Гідроконденсатор
block.cultivator.name = Культиватор block.cultivator.name = Культиватор
block.alpha-dart-mech-pad.name = Реконструктор "Альфа-Дротик" block.alpha-dart-mech-pad.name = Реконструктор "Альфа-Дротик"
block.delta-mech-pad.name = Реконструктор "Дельта" block.delta-mech-pad.name = Реконструктор "Дельта"
@@ -727,7 +722,7 @@ block.pyratite-mixer.name = Змішувач піротиту
block.blast-mixer.name = Доменний змішувач block.blast-mixer.name = Доменний змішувач
block.solar-panel.name = Сонячна панель block.solar-panel.name = Сонячна панель
block.solar-panel-large.name = Велика сонячна панель block.solar-panel-large.name = Велика сонячна панель
block.oil-extractor.name = Екстрактор нафти block.oil-extractor.name = Нафтова вежа
block.spirit-factory.name = Завод дронов "Призрак" block.spirit-factory.name = Завод дронов "Призрак"
block.phantom-factory.name = Завод дронов "Фантом" block.phantom-factory.name = Завод дронов "Фантом"
block.wraith-factory.name = Завод винищувачів "Примара" block.wraith-factory.name = Завод винищувачів "Примара"
@@ -767,7 +762,7 @@ block.meltdown.name = Розтоплення
block.container.name = Склад block.container.name = Склад
block.launch-pad.name = Стартовий майданчик block.launch-pad.name = Стартовий майданчик
block.launch-pad.description = Запускає партії елементів без необхідності запуску ядра. Незакінчено. block.launch-pad.description = Запускає партії елементів без необхідності запуску ядра. Незакінчено.
block.launch-pad-large.name = Large Launch Pad block.launch-pad-large.name = Великий Стартовий майданчик
team.blue.name = Синя team.blue.name = Синя
team.red.name = Червона team.red.name = Червона
team.orange.name = Помаренчева team.orange.name = Помаренчева
@@ -852,7 +847,7 @@ block.silicon-smelter.description = За допомогою піску, вугі
block.plastanium-compressor.description = Створює пластинійи з титану і нафти. Вимагає енергії. Для прискорення виробництва можна додати в компресор пісок. block.plastanium-compressor.description = Створює пластинійи з титану і нафти. Вимагає енергії. Для прискорення виробництва можна додати в компресор пісок.
block.phase-weaver.description = Виробляє фазову тканину торію і піску. Вимагає багато енергії. block.phase-weaver.description = Виробляє фазову тканину торію і піску. Вимагає багато енергії.
block.alloy-smelter.description = Створює кінетичний сплав з титану, кременя, міді і свинця. Вимагає енергію. block.alloy-smelter.description = Створює кінетичний сплав з титану, кременя, міді і свинця. Вимагає енергію.
block.pulverizer.description = Подрібнює камінь в пісок. Вимагає енергії. block.pulverizer.description = Подрібнює металобрухт в пісок. Вимагає енергії.
block.pyratite-mixer.description = Створює піротит з вугілля, свинцю і піску. Вимагає енергії. block.pyratite-mixer.description = Створює піротит з вугілля, свинцю і піску. Вимагає енергії.
block.blast-mixer.description = Створює вибухонебезпечне з'єднання з нафти і піротіта. Для прискорення виробництва можна додати в мішалку пісок. block.blast-mixer.description = Створює вибухонебезпечне з'єднання з нафти і піротіта. Для прискорення виробництва можна додати в мішалку пісок.
block.cryofluidmixer.description = Виробляє криогенну рідину з води і титану. Вимагає енергії. block.cryofluidmixer.description = Виробляє криогенну рідину з води і титану. Вимагає енергії.

View File

@@ -1,4 +1,4 @@
credits.text = Created by [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[]\n\n[GRAY](In case you can't tell, this text is currently unfinished.\nTranslators, don't edit it yet!) credits.text = [ROYAL]Anuken[]开发 - [SKY]anukendev@gmail.com[]\n\n[GRAY](In case you can't tell, this text is currently unfinished.\nTranslators, don't edit it yet!)
credits = 致谢 credits = 致谢
contributors = 译者和贡献者 contributors = 译者和贡献者
discord = 加入 Mindustry 的 Discord! discord = 加入 Mindustry 的 Discord!
@@ -12,65 +12,66 @@ link.wiki.description = 官方 Mindustry 维基
linkfail = 打开链接失败!\nURL 已经复制到剪贴板。 linkfail = 打开链接失败!\nURL 已经复制到剪贴板。
screenshot = 荧幕截图已放在 {0} screenshot = 荧幕截图已放在 {0}
gameover = 你的核心被摧毁了! gameover = 你的核心被摧毁了!
gameover.pvp = accent] {0}[] 队获胜! gameover.pvp = [accent] {0}[] 队获胜!
highscore = [accent]新纪录! highscore = [accent]新纪录!
stat.wave = 战胜的波数:[accent] {0} stat.wave = 战胜的波数:[accent]{0}
stat.enemiesDestroyed = Enemies Destroyed:[accent] {0} stat.enemiesDestroyed = 消灭的敌人:[accent]{0}
stat.built = Buildings Built:[accent] {0} stat.built = 建造的建筑:[accent]{0}
stat.destroyed = Buildings Destroyed:[accent] {0} stat.destroyed = 摧毁的建筑:[accent]{0}
stat.deconstructed = Buildings Deconstructed:[accent] {0} stat.deconstructed = 拆除的建筑:[accent]{0}
stat.delivered = Resources Launched: stat.delivered = 发射的资源:
stat.rank = Final Rank: [accent]{0} stat.rank = 最终排名:[accent]{0}
placeline = You have selected a block.\nYou can[accent] place in a line[] by[accent] holding down your finger for a few seconds[] and dragging in a direction.\nTry it. placeline = 你选择了一个方块。\n你能通过[accent]长按几秒钟[]并向一个方向拖动来[accent]直线放置方块[]。\n试试看吧。
removearea = You have selected removal mode.\nYou can[accent] remove blocks in a rectangle[] by[accent] holding down your finger for a few seconds[] and dragging.\nTry it. removearea = 你选择了拆除模式。\n你能通过[accent]长按几秒钟[]并拖动来[accent]删除矩形内的方块[]。\n试试看吧。
launcheditems = [accent]Launched Items launcheditems = [accent]发射的资源
map.delete = 确定要删除 "[accent]{0}[]" 地图吗? map.delete = 确定要删除 "[accent]{0}[]" 地图吗?
level.highscore = 最高分: [accent]{0} level.highscore = 最高分:[accent]{0}
level.select = 选择关卡 level.select = 选择关卡Level Select
level.mode = 游戏模式: level.mode = 游戏模式:
showagain = 不再显示 showagain = 下次不再显示
coreattack = < 核心正在受到攻击! > coreattack = < 核心正在受到攻击! >
nearpoint = [[ [scarlet]LEAVE DROP POINT IMMEDIATELY[] ]\nannihilation imminent nearpoint = [[ [scarlet]立即离开敌人出生点[] ]\n将被清理
outofbounds = [[ OUT OF BOUNDS ]\n[]self-destruct in {0} outofbounds = [[ 超出边界 ]\n[]{0}秒后自毁
database = 核心数据 database = 核心数据
savegame = 保存游戏 savegame = 保存游戏
loadgame = 载入游戏 loadgame = 载入游戏
joingame = 加入游戏 joingame = 加入游戏
addplayers = 加/删除玩家 addplayers = 加/删除玩家
customgame = 自定义游戏 customgame = 自定义游戏
newgame = 新游戏 newgame = 新游戏
none = <无> none = <无>
minimap = Minimap
close = 关闭 close = 关闭
quit = 退出 quit = 退出
maps = 地图 maps = 地图
continue = 继续 continue = 继续
maps.none = [LIGHT_GRAY]未发现地图! maps.none = [LIGHT_GRAY]没有找到地图!
about.button = 关于 about.button = 关于
name = 名字: name = 名字:
noname = Pick a[accent] player name[] first. noname = 先取一个[accent] 玩家名[]。
filename = 文件名: filename = 文件名:
unlocked = 新方块已解锁! unlocked = 新方块已解锁!
completed = [accent]Completed completed = [accent]完成的
techtree = 科技树 techtree = 科技树
research.list = [LIGHT_GRAY]Research: research.list = [LIGHT_GRAY]研究:
research = Research research = 研究
researched = [LIGHT_GRAY]{0} researched. researched = [LIGHT_GRAY]{0} 己研究。
players = {0} 玩家在线 players = {0} 玩家在线
players.single = {0} 玩家在线 players.single = {0} 玩家在线
server.closing = [accent]正在关闭服务器…… server.closing = [accent]正在关闭服务器……
server.kicked.kick = 你被踢出服务器了! server.kicked.kick = 你被踢出服务器了!
server.kicked.serverClose = 服务器已关闭。 server.kicked.serverClose = 服务器已关闭。
server.kicked.clientOutdated = 客户端版本过旧!请升级 server.kicked.clientOutdated = 过旧的客户端!更新你的游戏
server.kicked.serverOutdated = 服务器版本过旧!请联系房主升级! server.kicked.serverOutdated = 过旧的服务器!联系房主升级!
server.kicked.banned = 这个服务器拉黑了。 server.kicked.banned = 这个服务器上被禁了。
server.kicked.recentKick = 你刚刚被踢出服务器。\n请稍后重新连接 server.kicked.recentKick = 你刚刚被踢出服务器。\n请稍后重新连接
server.kicked.nameInUse = 服务器中已经\n有人有相同的名字了。 server.kicked.nameInUse = 服务器中已经\n有人有相同的名字了。
server.kicked.nameEmpty = 你的名字必须至少包含一个字母或数字 server.kicked.nameEmpty = 选择的名字是无效的
server.kicked.idInUse = 你已在服务器!不允许用两个账号。 server.kicked.idInUse = 你已在这个服务器!不允许用两个账号连接
server.kicked.customClient = 这个服务器不支持修改版客户端,请下载官方版本。 server.kicked.customClient = 这个服务器不支持定制版本。下载官方版本。
server.kicked.gameover = ! server.kicked.gameover = 游戏结束!
host.info = [accent]创建局域网游戏[]按钮会在[scarlet]6567[]端口运行一个服务器。[]\n任何在同一个[LIGHT_GRAY]网络或本地网络[]下的人都在服务器列表中看到你的服务器。\n\n如果你想让别人在任何地方都能通过IP地址连接你需要设定[accent]端口转发[]。\n\n[LIGHT_GRAY]注意如果某人无法连接到你的局域网游戏请确保你在防火墙设置里允许了Mindustry连接本地网络。 host.info = [accent]创建局域网游戏[]按钮会在[scarlet]6567[]端口运行一个服务器。[]\n任何在同一个[LIGHT_GRAY]wifi或本地网络[]下的人都应该可以在服务器列表中看到你的服务器。\n\n如果你想让别人在任何地方都能通过IP地址连接你需要设定[accent]端口转发[]。\n\n[LIGHT_GRAY]注意如果某人无法连接到你的局域网游戏请确保你在防火墙设置里允许了Mindustry访问本地网络。
join.info = 你可以在这里输入[accent]服务器的IP地址[]连接,或寻找[accent]本地网络[]中的服务器连接。\n目前支持局域网或广域网多人游戏。\n\n[LIGHT_GRAY]注意没有全球服务器列表如果你想通过IP地址连接某个服务器你需要向房主询问IP地址。 join.info = 此时,可以输入[accent]服务器的IP地址[]连接,或寻找[accent]本地网络[]中的服务器连接。\n局域网或广域网多人游戏都被支持。\n\n[LIGHT_GRAY]注意没有全球服务器列表如果你想通过IP地址连接某个服务器你需要向房主询问IP地址。
hostserver = 创建服务器 hostserver = 创建服务器
hostserver.mobile = 创建\n服务器 hostserver.mobile = 创建\n服务器
host = 创建 host = 创建
@@ -81,190 +82,190 @@ server.refreshing = 正在刷新服务器
hosts.none = [lightgray]未发现局域网游戏! hosts.none = [lightgray]未发现局域网游戏!
host.invalid = [scarlet]无法连接服务器。 host.invalid = [scarlet]无法连接服务器。
trace = 跟踪玩家 trace = 跟踪玩家
trace.playername = 玩家名字: [accent]{0} trace.playername = 玩家名称:[accent]{0}
trace.ip = IP地址 [accent]{0} trace.ip = IP地址[accent]{0}
trace.id = ID[accent]{0} trace.id = 唯一的ID[accent]{0}
trace.android = 安卓客户端: [accent]{0} trace.android = 安卓客户端:[accent]{0}
trace.modclient = 修改版客户端: [accent]{0} trace.modclient = 定制版客户端:[accent]{0}
trace.totalblocksbroken = 总共破坏了 [accent]{0} 个方块。 trace.totalblocksbroken = 总共破坏了 [accent]{0} 个方块。
trace.structureblocksbroken = 总共破坏了[accent]{0}方块。 trace.structureblocksbroken = 总共破坏了 [accent]{0} 个建筑物方块。
trace.lastblockbroken = 最后破坏的方块: [accent]{0} trace.lastblockbroken = 最后破坏的方块:[accent]{0}
trace.totalblocksplaced = 总共放置了 [accent]{0} 个方块。 trace.totalblocksplaced = 总共放置了 [accent]{0} 个方块。
trace.lastblockplaced = 最后放置的方块: [accent]{0} trace.lastblockplaced = 最后放置的方块:[accent]{0}
invalidid = 无效的客户端ID提交错误报告。 invalidid = 无效的客户端ID提交一个错误报告。
server.bans = 黑名单 server.bans = 黑名单
server.bans.none = 没有被拉黑的玩家! server.bans.none = 没有找到被拉黑的玩家!
server.admins = 管理员 server.admins = 管理员
server.admins.none = 没有管理员! server.admins.none = 没有找到管理员!
server.add = 添加服务器 server.add = 添加服务器
server.delete = 确定要删除这个服务器吗? server.delete = 确定要删除这个服务器吗?
server.hostname = 主机{0} server.hostname = 主机{0}
server.edit = 编辑服务器 server.edit = 编辑服务器
server.outdated = [crimson]服务器过旧[] server.outdated = [crimson]过旧的服务器![]
server.outdated.client = [crimson]客户端过旧[] server.outdated.client = [crimson]过旧的客户端![]
server.version = [lightgray]版本: {0} server.version = [lightgray]版本:{0} {1}
server.custombuild = [yellow]修改 server.custombuild = [yellow]定制
confirmban = 确认拉黑这玩家吗? confirmban = 确认你想拉黑这玩家吗?
confirmkick = 确定要踢出这个玩家吗? confirmkick = 确定你想要踢走这名玩家吗?
confirmunban = 确认要取消拉黑这玩家吗? confirmunban = 你确定你想要取消拉黑这玩家吗?
confirmadmin = 确认要添加这个玩家为管理员吗? confirmadmin = 你确定你想要使这名玩家成为一个管理员吗?
confirmunadmin = 确认要取消这个玩家的管理员身份吗? confirmunadmin = 你确定你想要删除这名玩家的管理员地位吗?
joingame.title = 加入游戏 joingame.title = 加入游戏
joingame.ip = IP joingame.ip = 地址
disconnect = 已断开 disconnect = 已断开
disconnect.data = 载入世界失败! disconnect.data = 读取世界数据失败!
connecting = [accent]连接中…… connecting = [accent]正在连接...
connecting.data = [accent]加载世界中…… connecting.data = [accent]正在加载世界数据...
server.port = 端口 server.port = 端口
server.addressinuse = 地址已经使用! server.addressinuse = 地址已经使用
server.invalidport = 无效的端口! server.invalidport = 无效的端口
server.error = [crimson]创建服务器错误:[accent]{0} server.error = [crimson]创建服务器错误:[accent]{0}
save.old = 这个存档属于旧版本游戏,无法继续使用。\n\n[LIGHT_GRAY]存档向下兼容将在 4.0 版本中实现。 save.old = 这个存档属于旧版本游戏,不再被使用。\n\n[LIGHT_GRAY]存档向下兼容将在完整的 4.0 版本中实现。
save.new = 新存档 save.new = 新存档
save.overwrite = 确认要覆盖这个存档吗? save.overwrite = 你确定你要覆盖这个存档吗?
overwrite = 覆盖 overwrite = 覆盖
save.none = 没有存档! save.none = 没有存档被找到
saveload = [accent]保存中…… saveload = [accent]正在保存...
savefail = 保存失败! savefail = 保存失败!
save.delete.confirm = 确认要删除这个存档吗? save.delete.confirm = 你确定你要删除这个存档吗?
save.delete = 删除 save.delete = 删除
save.export = 导出存档 save.export = 导出存档
save.import.invalid = [accent]存档无效! save.import.invalid = [accent]这个存档无效
save.import.fail = [crimson]导入存档失败:[accent]{0} save.import.fail = [crimson]导入存档失败:[accent]{0}
save.export.fail = [crimson]导出存档失败:[accent]{0} save.export.fail = [crimson]导出存档失败:[accent]{0}
save.import = 导入存档 save.import = 导入存档
save.newslot = 保存游戏 save.newslot = 保存的名称
save.rename = 重命名 save.rename = 重命名
save.rename.text = 新名 save.rename.text = 新名
selectslot = 选择一个存档。 selectslot = 选择一个存档。
slot = [accent]存档 {0} slot = [accent]存档 {0}
save.corrupted = [accent]存档损坏或无效!\n如果你刚刚升级了游戏那么这可能是因为存档格式改变了而[scarlet]不是[] bug 。 save.corrupted = [accent]存档损坏或无效!\n如果你刚刚升级了游戏那么这可能是因为存档格式改变了而[scarlet]不是[]bug 。
empty = <空> empty = <空>
on = on =
off = off =
save.autosave = 自动保存:{0} save.autosave = 自动保存:{0}
save.map = 地图:{0} save.map = 地图:{0}
save.wave = {0} save.wave = 波次 {0}
save.difficulty = 难度: {0} save.difficulty = 难度:{0}
save.date = 最后保存日期{0} save.date = 最后保存{0}
save.playtime = 游戏时间:{0} save.playtime = 游戏时间:{0}
warning = Warning. warning = 警告。
confirm = 确认 confirm = 确认
delete = 删除 delete = 删除
ok = 好的 ok = 好的
open = 打开 open = 打开
cancel = 取消 cancel = 取消
openlink = 打开链接 openlink = 打开链接
copylink = 删除链接 copylink = 复制链接
back = 返回 back = 返回
quit.confirm = 确认要退出? quit.confirm = 你确定你想要退出?
changelog.title = 更新日志 changelog.title = 更新日志
changelog.loading = 正在获取更新日志... changelog.loading = 正在获取更新日志...
changelog.error.android = [accent]注意更新日志有时在安卓 4.4 以下不工作。\n这是因为安卓系统的一个 bug changelog.error.android = [accent]注意更新日志有时在安卓 4.4 以下不工作。\n这是安卓系统内部的一个bug。
changelog.error.ios = [accent]iOS还不支持更新日志。 changelog.error.ios = [accent]更新日志当前在iOS中不被支持
changelog.error = [scarlet]获取更新日志失败!\n请检查你的网络。 changelog.error = [scarlet]获取更新日志失败!\n请检查你的网络。
changelog.current = [yellow][[Current version] changelog.current = [yellow][[当前版本]
changelog.latest = [accent][[Latest version] changelog.latest = [accent][[最新版本]
loading = [accent]加载中…… loading = [accent]正在加载...
saving = [accent]保存中…… saving = [accent]正在保存...
wave = [accent] {0} wave = [accent]波次 {0}
wave.waiting = 下一波将在 {0} 秒后到来 wave.waiting = [LIGHT_GRAY]下一波将在{0}秒后到来
waiting = 等待中……
waiting.players = 等待玩家中…… waiting.players = 等待玩家中……
wave.enemies = 剩下 [LIGHT_GRAY]{0} 敌人 waiting = [LIGHT_GRAY]正在等待...
wave.enemy = 剩下 [LIGHT_GRAY]{0} 敌人 wave.enemies = [LIGHT_GRAY]剩余 {0} 敌人
wave.enemy = [LIGHT_GRAY]剩余 {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]红色[]的核心。
map.nospawn.attack = This map does not have any enemy cores for player to attack! Add[SCARLET] red[] cores to this map in the editor. map.nospawn.attack = 这个地图没有敌人的核心!请在编辑中向地图添加一个[SCARLET]红色[]的核心。
map.invalid = 地图载入错误:地图文件可能已经损坏。 map.invalid = 地图载入错误:地图文件可能已经损坏。
editor.brush = 笔刷 editor.brush = 笔刷
editor.openin = 在编辑器中打开 editor.openin = 在编辑器中打开
editor.oregen = 生成矿石 editor.oregen = 矿石的生成
editor.oregen.info = 生成矿石: editor.oregen.info = 矿石的生成
editor.mapinfo = 地图详情 editor.mapinfo = 地图信息
editor.author = 作者: editor.author = 作者:
editor.description = 描述: editor.description = 描述:
editor.waves = Waves: editor.waves = 波数:
waves.title = Waves waves.title = 波数
waves.remove = Remove waves.remove = 去除
waves.never = <never> waves.never = <never>
waves.every = every waves.every =
waves.waves = wave(s) waves.waves =
waves.perspawn = per spawn waves.perspawn = 每次生成
waves.to = to waves.to =
waves.boss = Boss waves.boss = 首领Boos
waves.preview = Preview waves.preview = 预览
waves.edit = Edit... waves.edit = 编辑...
waves.copy = Copy to Clipboard waves.copy = 复制到剪贴板
waves.load = Load from Clipboard waves.load = 从剪贴板读取
waves.invalid = Invalid waves in clipboard. waves.invalid = 剪贴板中无效的波次信息。
waves.copied = Waves copied. waves.copied = 波次信息已复制。
editor.default = [LIGHT_GRAY]<Default> editor.default = [LIGHT_GRAY]<默认>
edit = Edit... edit = 编辑...
editor.name = editor.name =
editor.teams = editor.teams =
editor.elevation = 高度 editor.elevation = 高度
editor.errorload = Error loading file:\n[accent]{0} editor.errorload = 读取文件时出现错误:\n[accent]{0}
editor.errorsave = Error saving file:\n[accent]{0} editor.errorsave = 保存文件时出现错误:\n[accent]{0}
editor.errorname = Map has no name defined. editor.errorname = 地图没有被定义的名称。
editor.update = Update editor.update = 更新(Update
editor.randomize = Randomize editor.randomize = 随机化
editor.apply = Apply editor.apply = 应用
editor.generate = 生成 editor.generate = 生成
editor.resize = 调整 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 = 导入地图
editor.importmap.description = 导入一个已经存在的地图 editor.importmap.description = 导入一个已经存在的地图
editor.importfile = 导入文件 editor.importfile = 导入文件
editor.importfile.description = 导入一个外置的地图文件 editor.importfile.description = 导入一个外置的地图文件
editor.importimage = 导入地形图像 editor.importimage = 导入地形图像
editor.importimage.description = 导入外置地图图像文件 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 = 导入地形 editor.loadimage = 导入地形
editor.saveimage = 导出地形 editor.saveimage = 导出地形
editor.unsaved = [scarlet]你有未保存的更改![]\n确定要退出 editor.unsaved = [scarlet]你有未保存的更改![]\n确定你想要要退出?
editor.resizemap = 调整地图 editor.resizemap = 调整地图大小
editor.mapname = 地图名 editor.mapname = 地图名
editor.overwrite = [accent]警告!\n这将会覆盖一个已经存在的地图。 editor.overwrite = [accent]警告!\n这将会覆盖一个已经存在的地图。
editor.overwrite.confirm = [scarlet]警告![] 存在同名地图,确定要覆盖? editor.overwrite.confirm = [scarlet]警告![]存在同名地图。你确定你想要覆盖?
editor.selectmap = 选择一个地图加载: editor.selectmap = 选择一个地图加载:
filters.empty = [LIGHT_GRAY]No filters! Add one with the button below. filters.empty = [LIGHT_GRAY]没有过滤器(filters)!用下方的按钮添加一个。
filter.distort = Distort filter.distort = 扭曲?(Distort
filter.noise = Noise filter.noise = 噪音(Noise
filter.ore = Ore filter.ore = 矿石(Ore
filter.rivernoise = River Noise filter.rivernoise = 河流噪音(River Noise
filter.scatter = Scatter filter.scatter = 散播(Scatter
filter.terrain = Terrain filter.terrain = 地形(Terrain
filter.option.scale = Scale filter.option.scale = 规模?(Scale
filter.option.chance = Chance filter.option.chance = 机会(Chance
filter.option.mag = Magnitude filter.option.mag = 大小?(Magnitude
filter.option.threshold = Threshold filter.option.threshold = 门槛?(Threshold
filter.option.circle-scale = Circle Scale filter.option.circle-scale = 圈规模?(Circle Scale
filter.option.octaves = Octaves filter.option.octaves = 八度?(Octaves
filter.option.falloff = Falloff filter.option.falloff = 减少?(Falloff
filter.option.block = Block filter.option.block = 方块
filter.option.floor = Floor filter.option.floor = 地面
filter.option.wall = Wall filter.option.wall =
filter.option.ore = Ore filter.option.ore = 矿石
filter.option.floor2 = Secondary Floor filter.option.floor2 = 第二地面?(Secondary Floor
filter.option.threshold2 = Secondary Threshold filter.option.threshold2 = 第二门槛?(Secondary Threshold
width = 宽度: width = 宽度:
height = 高度: height = 高度:
menu = 菜单 menu = 菜单
@@ -280,7 +281,7 @@ tutorial = 教程
editor = 编辑器 editor = 编辑器
mapeditor = 地图编辑器 mapeditor = 地图编辑器
donate = 捐赠 donate = 捐赠
abandon = Abandon abandon = 放弃
abandon.text = 这个区域和它的所有资源会被敌人没收. abandon.text = 这个区域和它的所有资源会被敌人没收.
locked = 已被锁定 locked = 已被锁定
complete = [LIGHT_GRAY]完成: complete = [LIGHT_GRAY]完成:
@@ -300,7 +301,7 @@ zone.requirement.complete = Wave {0} reached:\n{1} zone requirements met.
zone.config.complete = Wave {0} reached:\nLoadout config unlocked. zone.config.complete = Wave {0} reached:\nLoadout config unlocked.
zone.resources = 已被发现的资源: zone.resources = 已被发现的资源:
add = Add... add = Add...
boss.health = Boss Health boss.health = Boss 生命值
connectfail = [crimson]服务器连接失败: [accent]{0} connectfail = [crimson]服务器连接失败: [accent]{0}
error.unreachable = 服务器无法访问。 error.unreachable = 服务器无法访问。
error.invalidaddress = 地址无效。 error.invalidaddress = 地址无效。
@@ -335,34 +336,30 @@ no = 不
info.title = [accent]详情 info.title = [accent]详情
error.title = [crimson]发生了一个错误 error.title = [crimson]发生了一个错误
error.crashtitle = 发生了一个错误 error.crashtitle = 发生了一个错误
bar.drillspeed = 挖掘速度: {0}/s blocks.input = Input
bar.efficiency = 效率: {0}% blocks.output = Output
blocks.booster = Booster
block.unknown = [LIGHT_GRAY]??? block.unknown = [LIGHT_GRAY]???
blocks.blockinfo = 方块详情
bar.powerbalance = 能量: {0}
bar.poweroutput = 能量输出: {0}
blocks.powercapacity = 能量容量 blocks.powercapacity = 能量容量
blocks.powershot = 能量/发射 blocks.powershot = 能量/发射
blocks.targetsair = 攻击空中单位 blocks.targetsair = 攻击空中单位
blocks.targetsground = 攻击地面单位 blocks.targetsground = 攻击地面单位
bar.items = 物体: {0}
blocks.itemsmoved = 移动速度 blocks.itemsmoved = 移动速度
blocks.launchtime = Time Between Launches blocks.launchtime = 发射间隔时间
blocks.shootrange = 范围 blocks.shootrange = 范围
blocks.size = 尺寸 blocks.size = 尺寸
blocks.liquidcapacity = 液体容量 blocks.liquidcapacity = 液体容量
blocks.maxitemssecond = 最大物品数量
blocks.powerrange = 能量范围 blocks.powerrange = 能量范围
blocks.poweruse = 能量使用 blocks.poweruse = 能量使用
blocks.powerdamage = 功率/损伤 blocks.powerdamage = 功率/损伤
blocks.inputitemcapacity = 最大输入
blocks.outputitemcapacity = 最大输出
blocks.itemcapacity = 物品容量 blocks.itemcapacity = 物品容量
blocks.basepowergeneration = 基础能源输出 blocks.basepowergeneration = 基础能源输出
blocks.powertransferspeed = 能量传输 blocks.powertransferspeed = 能量传输
blocks.craftspeed = 生产速度 blocks.craftspeed = 生产速度
blocks.repairtime = Block Full Repair Time blocks.productiontime = 生产时间
blocks.range = Range blocks.repairtime = 方块完全修复时间
blocks.speedincrease = 提速
blocks.range = 范围
blocks.inputliquid = 液体输入 blocks.inputliquid = 液体输入
blocks.inputliquidaux = 辅助液体 blocks.inputliquidaux = 辅助液体
blocks.inputitem = 物品输入 blocks.inputitem = 物品输入
@@ -370,41 +367,40 @@ blocks.inputitems = 物品输入
blocks.outputitem = 物品输出 blocks.outputitem = 物品输出
blocks.drilltier = 可钻探矿物 blocks.drilltier = 可钻探矿物
blocks.drillspeed = 基础钻探速度 blocks.drillspeed = 基础钻探速度
blocks.boosteffect = 加成影响
blocks.maxunits = 最大单位数量 blocks.maxunits = 最大单位数量
blocks.liquidoutput = 液体输出
blocks.liquidoutputspeed = 液体输出速度
blocks.liquiduse = 液体使用速度
blocks.coolant = 冷却剂
bar.liquid = 液体
blocks.coolantuse = 冷却剂使用速度
blocks.inputliquidfuel = 液体燃料输入
blocks.liquidfueluse = 液体燃料使用速度
blocks.boostitem = 强化物件
blocks.boostliquid = 强化液体
blocks.health = 生命值 blocks.health = 生命值
blocks.heat = 热量
blocks.power = 电力
blocks.progress = 制造进度
blocks.spawned = 单位数量: {0}/{1}
blocks.power.satisfaction = 电力输入
blocks.inaccuracy = 误差
blocks.shots = 发射数
blocks.reload = 重新装弹
blocks.ammo = 子弹
bar.drillspeed = 挖掘速度: {0}/s
bar.efficiency = 效率: {0}%
bar.powerbalance = 能量: {0}
bar.poweramount = Power: {0}
bar.poweroutput = 能量输出: {0}
bar.items = 物体: {0}
bar.liquid = 液体
bar.heat = Heat bar.heat = Heat
bar.power = 电力 bar.power = 电力
bar.progress = 制造进度 bar.progress = 制造进度
bar.spawned = 单位数量: {0}/{1} bar.spawned = 单位数量: {0}/{1}
blocks.inaccuracy = 误差 bullet.damage = [stat]{0}[lightgray] 伤害
blocks.shots = 发射数 bullet.splashdamage = [stat]{0}[lightgray] 范围伤害 ~[stat] {1}[lightgray] 格
blocks.reload = 重新装弹 bullet.incendiary = [stat] 燃烧
blocks.inputfuel = 燃料 bullet.homing = [stat] 追踪
blocks.fuelburntime = 燃料燃烧时间 bullet.shock = [stat] 击晕
blocks.inputcapacity = 输入容量 bullet.frag = [stat] 分裂
blocks.outputcapacity = 输出容量 bullet.knockback = [stat]{0}[lightgray] 击退
blocks.ammo = 子弹 bullet.freezing = [stat] 冰冻
bullet.damage = [stat]{0}[lightgray] dmg bullet.tarred = [stat] 减速
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles bullet.multiplier = [stat]{0}[lightgray]x 子弹数量
bullet.incendiary = [stat]incendiary bullet.reload = [stat]{0}[lightgray]x 装弹
bullet.homing = [stat]homing
bullet.shock = [stat]shock
bullet.frag = [stat]frag
bullet.knockback = [stat]{0}[lightgray] knockback
bullet.freezing = [stat]freezing
bullet.tarred = [stat]tarred
bullet.multiplier = [stat]{0}[lightgray]x ammo multiplier
bullet.reload = [stat]{0}[lightgray]x reload
unit.blocks = 方块 unit.blocks = 方块
unit.powersecond = 能量单位/秒 unit.powersecond = 能量单位/秒
unit.liquidsecond = 液体单位/秒 unit.liquidsecond = 液体单位/秒
@@ -413,6 +409,9 @@ unit.liquidunits = 液体单位
unit.powerunits = 能量单位 unit.powerunits = 能量单位
unit.degrees = unit.degrees =
unit.seconds = unit.seconds =
unit.persecond = /sec
unit.timesspeed = x speed
unit.percent = %
unit.items = 物品 unit.items = 物品
category.general = 普通 category.general = 普通
category.power = 能量 category.power = 能量
@@ -421,10 +420,10 @@ category.items = 物品
category.crafting = 制造 category.crafting = 制造
category.shooting = 发射 category.shooting = 发射
category.optional = 可选的增强物品 category.optional = 可选的增强物品
setting.landscape.name = 锁定地形 setting.landscape.name = 锁定横屏
setting.shadows.name = 影子 setting.shadows.name = 影子
setting.animatedwater.name = 流动的水 setting.animatedwater.name = 流动的水
setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[] setting.antialias.name = 抗锯齿[LIGHT_GRAY] (需要重新启动)[]
setting.indicators.name = 队友指示器 setting.indicators.name = 队友指示器
setting.autotarget.name = 自动发射 setting.autotarget.name = 自动发射
setting.fpscap.name = 最高 FPS setting.fpscap.name = 最高 FPS
@@ -443,10 +442,11 @@ setting.sensitivity.name = 控制器灵敏度
setting.saveinterval.name = 自动保存间隔 setting.saveinterval.name = 自动保存间隔
setting.seconds = {0} 秒 setting.seconds = {0} 秒
setting.fullscreen.name = 全屏 setting.fullscreen.name = 全屏
setting.borderless.name = Borderless Window setting.borderless.name = 无边界
setting.fps.name = 显示 FPS setting.fps.name = 显示 FPS
setting.vsync.name = 帧同步 setting.vsync.name = 帧同步
setting.lasers.name = 显示能量射线 setting.lasers.name = 显示能量射线
setting.pixelate.name = Pixelate [LIGHT_GRAY](may decrease performance)
setting.minimap.name = 显示小地图 setting.minimap.name = 显示小地图
setting.musicvol.name = 音乐音量 setting.musicvol.name = 音乐音量
setting.mutemusic.name = 静音 setting.mutemusic.name = 静音
@@ -490,7 +490,7 @@ keybind.drop_unit.name = 掉落单位
keybind.zoom_minimap.name = 小地图缩放 keybind.zoom_minimap.name = 小地图缩放
mode.help.title = 模式说明 mode.help.title = 模式说明
mode.survival.name = 生存 mode.survival.name = 生存
mode.survival.description = 正常的游戏模式,有限的资源和自动入射波。 mode.survival.description = 正常的游戏模式,有限的资源和自动波
mode.sandbox.name = 沙盒 mode.sandbox.name = 沙盒
mode.sandbox.description = 无限的资源,不会自动生成敌人。 mode.sandbox.description = 无限的资源,不会自动生成敌人。
mode.freebuild.name = 自由建造 mode.freebuild.name = 自由建造
@@ -498,19 +498,19 @@ mode.freebuild.description = 有限的资源,不会自动生成敌人。
mode.pvp.name = PvP mode.pvp.name = PvP
mode.pvp.description = 和本地玩家对战. mode.pvp.description = 和本地玩家对战.
mode.attack.name = 攻击 mode.attack.name = 攻击
mode.attack.description = 没有波数,但是有毁敌人基地的任务. mode.attack.description = 没有波数,但是有毁敌人基地的任务.
mode.custom = Custom Rules mode.custom = 自定义模式
rules.infiniteresources = Infinite Resources rules.infiniteresources = 无限资源
rules.wavetimer = Wave Timer rules.wavetimer = 波次计时器
rules.waves = Waves rules.waves = 波次
rules.enemyCheat = Infinite AI Resources rules.enemyCheat = AI无限资源
rules.pvp = PvP rules.pvp = PvP
rules.unitdrops = Unit Drops rules.unitdrops = 敌人出生点
rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles) rules.enemycorebuildradius = 敌对核心非建设区半径:[LIGHT_GRAY](格)
rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec) rules.respawntime = 重生时间:[LIGHT_GRAY](秒)
rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec) rules.wavespacing = 波次间隔时间:[LIGHT_GRAY](秒)
rules.buildcostmultiplier = Build Cost Multiplier rules.buildcostmultiplier = 建设花费倍数
rules.buildspeedmultiplier = Build Speed Multiplier rules.buildspeedmultiplier = 建设时间倍数
content.item.name = 物品 content.item.name = 物品
content.liquid.name = 液体 content.liquid.name = 液体
content.unit.name = 部队 content.unit.name = 部队
@@ -567,7 +567,7 @@ mech.omega-mech.name = 欧米茄
mech.omega-mech.weapon = 导弹群 mech.omega-mech.weapon = 导弹群
mech.omega-mech.ability = 配置装甲 mech.omega-mech.ability = 配置装甲
mech.omega-mech.description = 一种装甲厚重的机甲,用于在前线攻击。它的护甲可以阻挡高达 90% 的伤害。 mech.omega-mech.description = 一种装甲厚重的机甲,用于在前线攻击。它的护甲可以阻挡高达 90% 的伤害。
mech.dart-ship.name = 沉思者 mech.dart-ship.name = 飞镖
mech.dart-ship.weapon = 机枪 mech.dart-ship.weapon = 机枪
mech.dart-ship.description = 标准飞船。快速轻便,但攻击能力低,采矿速度快。 mech.dart-ship.description = 标准飞船。快速轻便,但攻击能力低,采矿速度快。
mech.javelin-ship.name = 标枪 mech.javelin-ship.name = 标枪
@@ -591,6 +591,7 @@ mech.itemcapacity = [LIGHT_GRAY]物品容量:{0}
mech.minespeed = [LIGHT_GRAY]采矿速度:{0} mech.minespeed = [LIGHT_GRAY]采矿速度:{0}
mech.minepower = [LIGHT_GRAY]采矿力量:{0} mech.minepower = [LIGHT_GRAY]采矿力量:{0}
mech.ability = [LIGHT_GRAY]能力:{0} mech.ability = [LIGHT_GRAY]能力:{0}
mech.buildspeed = [LIGHT_GRAY]建造速度:{0}%
liquid.heatcapacity = [LIGHT_GRAY]热容量:{0} liquid.heatcapacity = [LIGHT_GRAY]热容量:{0}
liquid.viscosity = [LIGHT_GRAY]粘度:{0} liquid.viscosity = [LIGHT_GRAY]粘度:{0}
liquid.temperature = [LIGHT_GRAY]温度:{0} liquid.temperature = [LIGHT_GRAY]温度:{0}
@@ -615,7 +616,7 @@ block.kiln.name = 熔炉
block.kiln.description = 将铅和沙子熔炼成钢化玻璃,需要少量电力。 block.kiln.description = 将铅和沙子熔炼成钢化玻璃,需要少量电力。
block.graphite-press.name = 石墨压缩机 block.graphite-press.name = 石墨压缩机
block.multi-press.name = 大型石墨压缩机 block.multi-press.name = 大型石墨压缩机
block.constructing = {0}\n[LIGHT_GRAY](Constructing) block.constructing = {0}\n[LIGHT_GRAY](建造中)
block.spawn.name = 敌人出生点 block.spawn.name = 敌人出生点
block.core-shard.name = 小型核心 block.core-shard.name = 小型核心
block.core-foundation.name = 中型核心 block.core-foundation.name = 中型核心
@@ -699,7 +700,7 @@ block.pneumatic-drill.name = 气动钻头
block.laser-drill.name = 激光钻头 block.laser-drill.name = 激光钻头
block.water-extractor.name = 抽水机 block.water-extractor.name = 抽水机
block.cultivator.name = 耕种机 block.cultivator.name = 耕种机
block.alpha-dart-mech-pad.name = 阿尔法-沉思者 机甲平台 block.alpha-dart-mech-pad.name = 阿尔法-飞镖 机甲平台
block.delta-mech-pad.name = 德尔塔 机甲平台 block.delta-mech-pad.name = 德尔塔 机甲平台
block.javelin-ship-pad.name = 标枪 机甲平台 block.javelin-ship-pad.name = 标枪 机甲平台
block.trident-ship-pad.name = 三叉戟 机甲平台 block.trident-ship-pad.name = 三叉戟 机甲平台
@@ -766,7 +767,7 @@ block.meltdown.name = 熔毁
block.container.name = 容器 block.container.name = 容器
block.launch-pad.name = 发射台 block.launch-pad.name = 发射台
block.launch-pad.description = 不通过核心发射物体。尚未完成。 block.launch-pad.description = 不通过核心发射物体。尚未完成。
block.launch-pad-large.name = Large Launch Pad block.launch-pad-large.name = 大型发射台
team.blue.name = team.blue.name =
team.red.name = team.red.name =
team.orange.name = team.orange.name =
@@ -789,7 +790,7 @@ unit.wraith.description = 一种快速,打了就跑的截击机。
unit.fortress.name = 堡垒 unit.fortress.name = 堡垒
unit.fortress.description = 一种重炮地面部队。 unit.fortress.description = 一种重炮地面部队。
unit.revenant.name = 亡魂 unit.revenant.name = 亡魂
unit.eruptor.name = 爆发者 unit.eruptor.name = 暴君
unit.chaos-array.name = 混沌者 unit.chaos-array.name = 混沌者
unit.eradicator.name = 根除者 unit.eradicator.name = 根除者
unit.lich.name = 尸鬼 unit.lich.name = 尸鬼
@@ -830,7 +831,7 @@ block.overdrive-projector.description = 提高附近建筑物的速度,如钻
block.force-projector.description = 自身周围创建一个六边形力场,保护建筑物和内部单位免受子弹的伤害。 block.force-projector.description = 自身周围创建一个六边形力场,保护建筑物和内部单位免受子弹的伤害。
block.shock-mine.description = 伤害踩到它的敌人。敌人几乎看不到它。 block.shock-mine.description = 伤害踩到它的敌人。敌人几乎看不到它。
block.duo.description = 小而便宜的炮塔。 block.duo.description = 小而便宜的炮塔。
block.scatter.description = 中型防空炮塔,向空中单位发射铅或废料。. block.scatter.description = 中型防空炮塔,向空中单位发射铅或废料。
block.arc.description = 小型炮塔,发射电弧。 block.arc.description = 小型炮塔,发射电弧。
block.hail.description = 小型炮兵炮台。 block.hail.description = 小型炮兵炮台。
block.lancer.description = 中型炮塔,发射带电的电子束。 block.lancer.description = 中型炮塔,发射带电的电子束。

View File

@@ -40,6 +40,7 @@ addplayers = 增加/移除玩家
customgame = 自訂遊戲 customgame = 自訂遊戲
newgame = 新遊戲 newgame = 新遊戲
none = 〈沒有〉 none = 〈沒有〉
minimap = Minimap
close = 關閉 close = 關閉
quit = 退出 quit = 退出
maps = 地圖 maps = 地圖
@@ -335,66 +336,48 @@ no = 否
info.title = [accent]資訊 info.title = [accent]資訊
error.title = [crimson]發生錯誤 error.title = [crimson]發生錯誤
error.crashtitle = 發生錯誤 error.crashtitle = 發生錯誤
bar.drillspeed = 鑽頭速度:{0}/秒 blocks.input = Input
bar.efficiency = 效率:{0}% blocks.output = Output
blocks.booster = Booster
block.unknown = [LIGHT_GRAY] block.unknown = [LIGHT_GRAY]
blocks.blockinfo = 方塊資訊
bar.powerbalance = 能量變化:{0}
bar.poweroutput = 能量輸出:{0}
blocks.powercapacity = 蓄電量 blocks.powercapacity = 蓄電量
blocks.powershot = 能量/射擊 blocks.powershot = 能量/射擊
blocks.targetsair = 攻擊空中目標 blocks.targetsair = 攻擊空中目標
blocks.targetsground = 攻擊地面 blocks.targetsground = 攻擊地面
bar.items = 物品:{0}
blocks.itemsmoved = 移動速度 blocks.itemsmoved = 移動速度
blocks.launchtime = Time Between Launches blocks.launchtime = Time Between Launches
blocks.shootrange = 範圍 blocks.shootrange = 範圍
blocks.size = 尺寸 blocks.size = 尺寸
blocks.liquidcapacity = 液體容量 blocks.liquidcapacity = 液體容量
blocks.maxitemssecond = 最高產量
blocks.powerrange = 輸出範圍 blocks.powerrange = 輸出範圍
blocks.poweruse = 能量使用 blocks.poweruse = 能量使用
blocks.powerdamage = 能量/傷害 blocks.powerdamage = 能量/傷害
blocks.inputitemcapacity = 最大輸入
blocks.outputitemcapacity = 最大輸出
blocks.itemcapacity = 物品容量 blocks.itemcapacity = 物品容量
blocks.basepowergeneration = 基本能量生产 blocks.basepowergeneration = 基本能量生产
blocks.powertransferspeed = 能量傳輸 blocks.productiontime = Production Time
blocks.craftspeed = 產生速度
blocks.repairtime = Block Full Repair Time blocks.repairtime = Block Full Repair Time
blocks.speedincrease = Speed Increase
blocks.range = Range blocks.range = Range
blocks.inputliquid = 輸入液體
blocks.inputliquidaux = 輔助液體
blocks.inputitem = 輸入物品
blocks.inputitems = 輸入物品
blocks.outputitem = 輸出物品
blocks.drilltier = 可鑽取礦物 blocks.drilltier = 可鑽取礦物
blocks.drillspeed = 基本鑽取速度 blocks.drillspeed = 基本鑽取速度
blocks.boosteffect = Boost Effect
blocks.maxunits = 最大活躍單位 blocks.maxunits = 最大活躍單位
blocks.liquidoutput = 輸出液體
blocks.liquidoutputspeed = 輸出液體速度
blocks.liquiduse = 使用液體速度
blocks.coolant = 冷卻劑
bar.liquid = 液體
blocks.coolantuse = 使用冷卻劑
blocks.inputliquidfuel = 輸入液體燃料
blocks.liquidfueluse = 使用液體燃料速度
blocks.boostitem = 強化物品
blocks.boostliquid = 強化液體
blocks.health = 耐久度 blocks.health = 耐久度
blocks.inaccuracy = 誤差
blocks.shots = 射擊數
blocks.reload = 重裝彈藥
blocks.ammo = 彈藥
bar.drillspeed = 鑽頭速度:{0}/秒
bar.efficiency = 效率:{0}%
bar.powerbalance = 能量變化:{0}
bar.poweramount = Power: {0}
bar.poweroutput = 能量輸出:{0}
bar.items = 物品:{0}
bar.liquid = 液體
bar.heat = bar.heat =
bar.power = 能量 bar.power = 能量
bar.progress = 建造進度 bar.progress = 建造進度
bar.spawned = 單位:{0}/{1} bar.spawned = 單位:{0}/{1}
blocks.power.satisfaction = 能量滿意度
blocks.inaccuracy = 誤差
blocks.shots = 射擊數
blocks.reload = 重裝彈藥
blocks.inputfuel = 燃料
blocks.fuelburntime = 燃燒燃料時間
blocks.inputcapacity = 輸入容量
blocks.outputcapacity = 輸出容量
blocks.ammo = 彈藥
bullet.damage = [stat]{0}[lightgray] dmg bullet.damage = [stat]{0}[lightgray] dmg
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
bullet.incendiary = [stat]incendiary bullet.incendiary = [stat]incendiary
@@ -414,6 +397,9 @@ unit.liquidunits = 液體單位
unit.powerunits = 能量單位 unit.powerunits = 能量單位
unit.degrees = unit.degrees =
unit.seconds = unit.seconds =
unit.persecond = /sec
unit.timesspeed = x speed
unit.percent = %
unit.items = 物品 unit.items = 物品
category.general = 一般 category.general = 一般
category.power = 能量 category.power = 能量
@@ -425,6 +411,7 @@ category.optional = 可選的強化
setting.landscape.name = Lock Landscape setting.landscape.name = Lock Landscape
setting.shadows.name = Shadows setting.shadows.name = Shadows
setting.animatedwater.name = 動畫水 setting.animatedwater.name = 動畫水
setting.animatedshields.name = Animated Shields
setting.antialias.name = 消除鋸齒[LIGHT_GRAY](需要重啟)[] setting.antialias.name = 消除鋸齒[LIGHT_GRAY](需要重啟)[]
setting.indicators.name = 盟友指標 setting.indicators.name = 盟友指標
setting.autotarget.name = 自動射擊 setting.autotarget.name = 自動射擊
@@ -448,6 +435,7 @@ setting.borderless.name = 無邊框窗口
setting.fps.name = 顯示FPS setting.fps.name = 顯示FPS
setting.vsync.name = 垂直同步 setting.vsync.name = 垂直同步
setting.lasers.name = 顯示雷射光束 setting.lasers.name = 顯示雷射光束
setting.pixelate.name = Pixelate [LIGHT_GRAY](may decrease performance)
setting.minimap.name = 顯示小地圖 setting.minimap.name = 顯示小地圖
setting.musicvol.name = 音樂音量 setting.musicvol.name = 音樂音量
setting.mutemusic.name = 靜音 setting.mutemusic.name = 靜音
@@ -507,6 +495,9 @@ rules.waves = Waves
rules.enemyCheat = Infinite AI Resources rules.enemyCheat = Infinite AI Resources
rules.pvp = PvP rules.pvp = PvP
rules.unitdrops = Unit Drops rules.unitdrops = Unit Drops
rules.unitbuildspeedmultiplier = Unit Creation Speed Multiplier
rules.unithealthmultiplier = Unit Health Multiplier
rules.playerdamagemultiplier = Player Damage Multiplier
rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles) rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles)
rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec) rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec)
rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec) rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec)
@@ -592,6 +583,7 @@ mech.itemcapacity = [LIGHT_GRAY]物品容量:{0}
mech.minespeed = [LIGHT_GRAY]採礦速度:{0} mech.minespeed = [LIGHT_GRAY]採礦速度:{0}
mech.minepower = [LIGHT_GRAY]採礦力度:{0} mech.minepower = [LIGHT_GRAY]採礦力度:{0}
mech.ability = [LIGHT_GRAY]能力:{0} mech.ability = [LIGHT_GRAY]能力:{0}
mech.buildspeed = [LIGHT_GRAY]Building Speed: {0}%
liquid.heatcapacity = [LIGHT_GRAY]熱容量:{0} liquid.heatcapacity = [LIGHT_GRAY]熱容量:{0}
liquid.viscosity = [LIGHT_GRAY]粘性:{0} liquid.viscosity = [LIGHT_GRAY]粘性:{0}
liquid.temperature = [LIGHT_GRAY]温度:{0} liquid.temperature = [LIGHT_GRAY]温度:{0}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 505 B

After

Width:  |  Height:  |  Size: 506 B

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 244 KiB

After

Width:  |  Height:  |  Size: 244 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 192 KiB

After

Width:  |  Height:  |  Size: 192 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 283 KiB

After

Width:  |  Height:  |  Size: 277 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 535 KiB

After

Width:  |  Height:  |  Size: 542 KiB

View File

@@ -36,6 +36,8 @@ public class Vars{
public static final Charset charset = Charset.forName("UTF-8"); public static final Charset charset = Charset.forName("UTF-8");
/**main application name, capitalized*/ /**main application name, capitalized*/
public static final String appName = "Mindustry"; public static final String appName = "Mindustry";
/**URL for itch.io donations.*/
public static final String donationURL = "https://anuke.itch.io/mindustry/purchase";
/**URL for discord invite.*/ /**URL for discord invite.*/
public static final String discordURL = "https://discord.gg/mindustry"; public static final String discordURL = "https://discord.gg/mindustry";
/**URL for Github API for releases*/ /**URL for Github API for releases*/

View File

@@ -97,7 +97,7 @@ public class WaveSpawner{
} }
Time.run(20f, () -> Effects.effect(Fx.spawnShockwave, spawn.x * tilesize, spawn.y * tilesize)); Time.run(20f, () -> Effects.effect(Fx.spawnShockwave, spawn.x * tilesize, spawn.y * tilesize));
//would be interesting to see player structures survive this without hacks //would be interesting to see player structures survive this without hacks
Time.run(40f, () -> Damage.damage(waveTeam, spawn.x * tilesize, spawn.y * tilesize, shockwaveBase + Mathf.random(shockwaveRand), 99999999f)); Time.run(40f, () -> Damage.damage(waveTeam, spawn.x * tilesize, spawn.y * tilesize, shockwaveBase + Mathf.random(shockwaveRand), 99999999f, true));
} }
} }
} }

View File

@@ -407,6 +407,7 @@ public class Blocks implements ContentList{
outputItem = new ItemStack(Items.silicon, 1); outputItem = new ItemStack(Items.silicon, 1);
craftTime = 40f; craftTime = 40f;
size = 2; size = 2;
hasPower = true;
hasLiquids = false; hasLiquids = false;
flameColor = Color.valueOf("ffef99"); flameColor = Color.valueOf("ffef99");
@@ -446,7 +447,7 @@ public class Blocks implements ContentList{
int topRegion = reg("-top"); int topRegion = reg("-top");
drawer = tile -> { drawer = tile -> {
super.draw(tile); Draw.rect(region, tile.drawx(), tile.drawy());
GenericCrafterEntity entity = tile.entity(); GenericCrafterEntity entity = tile.entity();
@@ -462,12 +463,15 @@ public class Blocks implements ContentList{
outputItem = new ItemStack(Items.phasefabric, 1); outputItem = new ItemStack(Items.phasefabric, 1);
craftTime = 120f; craftTime = 120f;
size = 2; size = 2;
hasPower = true;
consumes.items(new ItemStack(Items.thorium, 4), new ItemStack(Items.sand, 10)); consumes.items(new ItemStack(Items.thorium, 4), new ItemStack(Items.sand, 10));
consumes.power(5f); consumes.power(5f);
int bottomRegion = reg("-bottom"), weaveRegion = reg("-weave"); int bottomRegion = reg("-bottom"), weaveRegion = reg("-weave");
drawIcons = () -> new TextureRegion[]{Core.atlas.find(name + "-bottom"), Core.atlas.find(name)};
drawer = tile -> { drawer = tile -> {
GenericCrafterEntity entity = tile.entity(); GenericCrafterEntity entity = tile.entity();
@@ -507,6 +511,7 @@ public class Blocks implements ContentList{
outputItem = new ItemStack(Items.surgealloy, 1); outputItem = new ItemStack(Items.surgealloy, 1);
craftTime = 75f; craftTime = 75f;
size = 3; size = 3;
hasPower = true;
consumes.power(4f); consumes.power(4f);
consumes.items(new ItemStack(Items.titanium, 2), new ItemStack(Items.lead, 4), new ItemStack(Items.silicon, 3), new ItemStack(Items.copper, 3)); consumes.items(new ItemStack(Items.titanium, 2), new ItemStack(Items.lead, 4), new ItemStack(Items.silicon, 3), new ItemStack(Items.copper, 3));
@@ -514,18 +519,19 @@ public class Blocks implements ContentList{
cryofluidMixer = new GenericCrafter("cryofluidmixer"){{ cryofluidMixer = new GenericCrafter("cryofluidmixer"){{
requirements(Category.crafting, ItemStack.with(Items.lead, 130, Items.silicon, 80, Items.thorium, 90)); requirements(Category.crafting, ItemStack.with(Items.lead, 130, Items.silicon, 80, Items.thorium, 90));
outputLiquid = new LiquidStack(Liquids.cryofluid, 0.3f); outputLiquid = new LiquidStack(Liquids.cryofluid, 0.6f);
craftTime = 5f; craftTime = 5f;
size = 2; size = 2;
hasPower = true; hasPower = true;
hasItems = true; hasItems = true;
hasLiquids = true;
rotate = false; rotate = false;
solid = true; solid = true;
outputsLiquid = true; outputsLiquid = true;
consumes.power(1f); consumes.power(1f);
consumes.item(Items.titanium); consumes.item(Items.titanium);
consumes.liquid(Liquids.water, 0.3f); consumes.liquid(Liquids.water, 0.6f);
int liquidRegion = reg("-liquid"), topRegion = reg("-top"), bottomRegion = reg("-bottom"); int liquidRegion = reg("-liquid"), topRegion = reg("-top"), bottomRegion = reg("-bottom");
@@ -625,6 +631,8 @@ public class Blocks implements ContentList{
size = 2; size = 2;
health = 320; health = 320;
hasLiquids = true; hasLiquids = true;
hasPower = true;
craftEffect = Fx.none;
consumes.item(Items.sporePod, 1); consumes.item(Items.sporePod, 1);
consumes.power(0.60f); consumes.power(0.60f);
@@ -637,6 +645,8 @@ public class Blocks implements ContentList{
int liquidRegion = reg("-liquid"); int liquidRegion = reg("-liquid");
int topRegion =reg("-top"); int topRegion =reg("-top");
drawIcons = () -> new TextureRegion[]{Core.atlas.find(name), Core.atlas.find(name + "-top")};
drawer = tile -> { drawer = tile -> {
GenericCrafterEntity entity = tile.entity(); GenericCrafterEntity entity = tile.entity();
@@ -662,6 +672,8 @@ public class Blocks implements ContentList{
int rotatorRegion = reg("-rotator"); int rotatorRegion = reg("-rotator");
drawIcons = () -> new TextureRegion[]{Core.atlas.find(name), Core.atlas.find(name + "-rotator")};
drawer = tile -> { drawer = tile -> {
GenericCrafterEntity entity = tile.entity(); GenericCrafterEntity entity = tile.entity();
@@ -802,7 +814,7 @@ public class Blocks implements ContentList{
mender = new MendProjector("mender"){{ mender = new MendProjector("mender"){{
requirements(Category.effect, ItemStack.with(Items.lead, 60, Items.copper, 50)); requirements(Category.effect, ItemStack.with(Items.lead, 60, Items.copper, 50));
consumes.power(0.7f); consumes.power(0.3f);
size = 1; size = 1;
reload = 200f; reload = 200f;
range = 40f; range = 40f;
@@ -815,7 +827,7 @@ public class Blocks implements ContentList{
mendProjector = new MendProjector("mend-projector"){{ mendProjector = new MendProjector("mend-projector"){{
requirements(Category.effect, ItemStack.with(Items.lead, 200, Items.titanium, 50, Items.silicon, 80)); requirements(Category.effect, ItemStack.with(Items.lead, 200, Items.titanium, 50, Items.silicon, 80));
consumes.power(1.8f); consumes.power(1.5f);
size = 2; size = 2;
reload = 250f; reload = 250f;
range = 85f; range = 85f;
@@ -1001,20 +1013,20 @@ public class Blocks implements ContentList{
}}; }};
battery = new Battery("battery"){{ battery = new Battery("battery"){{
requirements(Category.power, ItemStack.with(Items.copper, 8, Items.lead, 30, Items.silicon, 4)); requirements(Category.power, ItemStack.with(Items.copper, 8, Items.lead, 40));
consumes.powerBuffered(3200f, 1f); consumes.powerBuffered(4000f, 1f);
}}; }};
batteryLarge = new Battery("battery-large"){{ batteryLarge = new Battery("battery-large"){{
requirements(Category.power, ItemStack.with(Items.titanium, 40, Items.lead, 80, Items.silicon, 30)); requirements(Category.power, ItemStack.with(Items.titanium, 40, Items.lead, 80, Items.silicon, 40));
size = 3; size = 3;
consumes.powerBuffered(37440f, 1f); consumes.powerBuffered(50000f, 1f);
}}; }};
combustionGenerator = new BurnerGenerator("combustion-generator"){{ combustionGenerator = new BurnerGenerator("combustion-generator"){{
requirements(Category.power, ItemStack.with(Items.copper, 50, Items.lead, 30)); requirements(Category.power, ItemStack.with(Items.copper, 50, Items.lead, 30));
powerProduction = 1f; powerProduction = 1f;
itemDuration = 40f; itemDuration = 60f;
}}; }};
thermalGenerator = new ThermalGenerator("thermal-generator"){{ thermalGenerator = new ThermalGenerator("thermal-generator"){{
@@ -1027,7 +1039,7 @@ public class Blocks implements ContentList{
turbineGenerator = new BurnerGenerator("turbine-generator"){{ turbineGenerator = new BurnerGenerator("turbine-generator"){{
requirements(Category.power, ItemStack.with(Items.copper, 70, Items.graphite, 50, Items.lead, 80, Items.silicon, 60)); requirements(Category.power, ItemStack.with(Items.copper, 70, Items.graphite, 50, Items.lead, 80, Items.silicon, 60));
powerProduction = 6f; powerProduction = 6f;
itemDuration = 30f; itemDuration = 40f;
consumes.liquid(Liquids.water, 0.05f); consumes.liquid(Liquids.water, 0.05f);
hasLiquids = true; hasLiquids = true;
size = 2; size = 2;
@@ -1035,7 +1047,7 @@ public class Blocks implements ContentList{
differentialGenerator = new ItemLiquidGenerator(true, true, "differential-generator"){{ differentialGenerator = new ItemLiquidGenerator(true, true, "differential-generator"){{
requirements(Category.power, ItemStack.with(Items.copper, 140, Items.titanium, 100, Items.lead, 200, Items.silicon, 130, Items.metaglass, 100)); requirements(Category.power, ItemStack.with(Items.copper, 140, Items.titanium, 100, Items.lead, 200, Items.silicon, 130, Items.metaglass, 100));
powerProduction = 13f; powerProduction = 16f;
itemDuration = 50f; itemDuration = 50f;
hasLiquids = true; hasLiquids = true;
size = 3; size = 3;
@@ -1075,9 +1087,9 @@ public class Blocks implements ContentList{
requirements(Category.power, ItemStack.with(Items.lead, 1000, Items.silicon, 600, Items.graphite, 800, Items.thorium, 200, Items.surgealloy, 500, Items.metaglass, 500)); requirements(Category.power, ItemStack.with(Items.lead, 1000, Items.silicon, 600, Items.graphite, 800, Items.thorium, 200, Items.surgealloy, 500, Items.metaglass, 500));
size = 4; size = 4;
health = 900; health = 900;
powerProduction = 80f; powerProduction = 100f;
itemDuration = 40f; itemDuration = 40f;
consumes.power(23f); consumes.power(25f);
consumes.item(Items.blastCompound); consumes.item(Items.blastCompound);
consumes.liquid(Liquids.cryofluid, 0.8f); consumes.liquid(Liquids.cryofluid, 0.8f);
}}; }};
@@ -1252,7 +1264,7 @@ public class Blocks implements ContentList{
Items.scrap, Bullets.flakScrap, Items.scrap, Bullets.flakScrap,
Items.lead, Bullets.flakLead Items.lead, Bullets.flakLead
); );
reload = 20f; reload = 15f;
range = 180f; range = 180f;
size = 2; size = 2;
burstSpacing = 5f; burstSpacing = 5f;
@@ -1497,12 +1509,13 @@ public class Blocks implements ContentList{
shootShake = 2f; shootShake = 2f;
powerUsed = 0.5f; powerUsed = 0.5f;
consumes.powerBuffered(1200f); consumes.powerBuffered(1200f);
range = 160f; range = 190f;
reload = 170f; reload = 170f;
firingMoveFract = 0.1f; firingMoveFract = 0.2f;
shootDuration = 220f; shootDuration = 220f;
health = 165 * size * size; health = 200 * size * size;
consumes.add(new ConsumeLiquidFilter(liquid -> liquid.temperature <= 0.5f && liquid.flammability < 0.1f, 0.5f)).update(false);
}}; }};
//endregion //endregion
@@ -1513,6 +1526,7 @@ public class Blocks implements ContentList{
type = UnitTypes.spirit; type = UnitTypes.spirit;
produceTime = 5700; produceTime = 5700;
size = 2; size = 2;
maxSpawn = 2;
consumes.power(0.80f); consumes.power(0.80f);
consumes.items(new ItemStack(Items.silicon, 30), new ItemStack(Items.lead, 30)); consumes.items(new ItemStack(Items.silicon, 30), new ItemStack(Items.lead, 30));
}}; }};
@@ -1522,6 +1536,7 @@ public class Blocks implements ContentList{
type = UnitTypes.phantom; type = UnitTypes.phantom;
produceTime = 7300; produceTime = 7300;
size = 2; size = 2;
maxSpawn = 2;
consumes.power(2f); consumes.power(2f);
consumes.items(new ItemStack(Items.silicon, 70), new ItemStack(Items.lead, 80), new ItemStack(Items.titanium, 80)); consumes.items(new ItemStack(Items.silicon, 70), new ItemStack(Items.lead, 80), new ItemStack(Items.titanium, 80));
}}; }};
@@ -1585,6 +1600,7 @@ public class Blocks implements ContentList{
type = UnitTypes.fortress; type = UnitTypes.fortress;
produceTime = 5000; produceTime = 5000;
size = 3; size = 3;
maxSpawn = 3;
consumes.power(2f); consumes.power(2f);
consumes.items(new ItemStack(Items.silicon, 40), new ItemStack(Items.thorium, 50)); consumes.items(new ItemStack(Items.silicon, 40), new ItemStack(Items.thorium, 50));
}}; }};

View File

@@ -273,7 +273,7 @@ public class Bullets implements ContentList{
keepVelocity = false; keepVelocity = false;
splashDamageRadius = 25f; splashDamageRadius = 25f;
splashDamage = 10f; splashDamage = 10f;
lifetime = 80f; lifetime = 50f;
trailColor = Pal.unitBack; trailColor = Pal.unitBack;
backColor = Pal.unitBack; backColor = Pal.unitBack;
frontColor = Pal.unitFront; frontColor = Pal.unitFront;
@@ -533,13 +533,13 @@ public class Bullets implements ContentList{
} }
}; };
meltdownLaser = new BulletType(0.001f, 35){ meltdownLaser = new BulletType(0.001f, 50){
Color tmpColor = new Color(); Color tmpColor = new Color();
Color[] colors = {Color.valueOf("ec745855"), Color.valueOf("ec7458aa"), Color.valueOf("ff9c5a"), Color.WHITE}; Color[] colors = {Color.valueOf("ec745855"), Color.valueOf("ec7458aa"), Color.valueOf("ff9c5a"), Color.WHITE};
float[] tscales = {1f, 0.7f, 0.5f, 0.2f}; float[] tscales = {1f, 0.7f, 0.5f, 0.2f};
float[] strokes = {2f, 1.5f, 1f, 0.3f}; float[] strokes = {2f, 1.5f, 1f, 0.3f};
float[] lenscales = {1f, 1.12f, 1.15f, 1.17f}; float[] lenscales = {1f, 1.12f, 1.15f, 1.17f};
float length = 200f; float length = 220f;
{ {
hitEffect = Fx.hitMeltdown; hitEffect = Fx.hitMeltdown;
@@ -730,7 +730,7 @@ public class Bullets implements ContentList{
lifetime = 23f; lifetime = 23f;
speed = 1f; speed = 1f;
splashDamageRadius = 50f; splashDamageRadius = 50f;
splashDamage = 20f; splashDamage = 28f;
} }
@Override @Override

View File

@@ -199,12 +199,14 @@ public class TechTree implements ContentList{
node(combustionGenerator, () -> { node(combustionGenerator, () -> {
node(powerNode, () -> { node(powerNode, () -> {
node(powerNodeLarge, () -> { node(powerNodeLarge, () -> {
node(battery, () -> {
node(batteryLarge, () -> {
node(surgeTower, () -> { node(surgeTower, () -> {
}); });
}); });
node(battery, () -> {
node(batteryLarge, () -> {
}); });
}); });
@@ -243,12 +245,13 @@ public class TechTree implements ContentList{
}); });
}); });
node(alphaDartPad, () -> {
node(deltaPad, () -> {
node(spiritFactory, () -> { node(spiritFactory, () -> {
node(phantomFactory); node(phantomFactory);
}); });
node(alphaDartPad, () -> {
node(deltaPad, () -> {
node(javelinPad, () -> { node(javelinPad, () -> {
node(tridentPad, () -> { node(tridentPad, () -> {
node(glaivePad); node(glaivePad);

View File

@@ -39,7 +39,7 @@ public class Zones implements ContentList{
rules = () -> new Rules(){{ rules = () -> new Rules(){{
waves = true; waves = true;
waveTimer = true; waveTimer = true;
waveSpacing = 60 * 60 * 1f; waveSpacing = 60 * 60 * 1.5f;
}}; }};
}}; }};

View File

@@ -9,10 +9,7 @@ import io.anuke.arc.graphics.g2d.Draw;
import io.anuke.arc.graphics.g2d.TextureAtlas; import io.anuke.arc.graphics.g2d.TextureAtlas;
import io.anuke.arc.input.KeyCode; import io.anuke.arc.input.KeyCode;
import io.anuke.arc.scene.ui.TextField; import io.anuke.arc.scene.ui.TextField;
import io.anuke.arc.util.BufferUtils; import io.anuke.arc.util.*;
import io.anuke.arc.util.Interval;
import io.anuke.arc.util.Strings;
import io.anuke.arc.util.Time;
import io.anuke.mindustry.content.Mechs; import io.anuke.mindustry.content.Mechs;
import io.anuke.mindustry.core.GameState.State; import io.anuke.mindustry.core.GameState.State;
import io.anuke.mindustry.entities.Effects; import io.anuke.mindustry.entities.Effects;
@@ -101,7 +98,7 @@ public class Control implements ApplicationListener{
}); });
Events.on(WorldLoadEvent.class, event -> { Events.on(WorldLoadEvent.class, event -> {
Core.app.post(() -> Core.camera.position.set(player)); Core.app.post(() -> Core.app.post(() -> Core.camera.position.set(player)));
}); });
Events.on(ResetEvent.class, event -> { Events.on(ResetEvent.class, event -> {

View File

@@ -63,6 +63,7 @@ public class NetClient implements ApplicationListener{
public NetClient(){ public NetClient(){
Net.handleClient(Connect.class, packet -> { Net.handleClient(Connect.class, packet -> {
Log.info("Connecting to server: {0}", packet.addressTCP);
player.isAdmin = false; player.isAdmin = false;
@@ -212,6 +213,11 @@ public class NetClient implements ApplicationListener{
SyncTrait entity = (SyncTrait) group.getByID(id); SyncTrait entity = (SyncTrait) group.getByID(id);
boolean add = false; boolean add = false;
if(entity == null && id == player.id){
entity = player;
add = true;
}
//entity must not be added yet, so create it //entity must not be added yet, so create it
if(entity == null){ if(entity == null){
entity = (SyncTrait) TypeTrait.getTypeByID(typeID).get(); //create entity from supplier entity = (SyncTrait) TypeTrait.getTypeByID(typeID).get(); //create entity from supplier

View File

@@ -190,20 +190,7 @@ public class NetServer implements ApplicationListener{
//playing in pvp mode automatically assigns players to teams //playing in pvp mode automatically assigns players to teams
if(state.rules.pvp){ if(state.rules.pvp){
//find team with minimum amount of players and auto-assign player to that. player.setTeam(assignTeam());
Team min = Structs.findMin(Team.all, team -> {
if(state.teams.isActive(team)){
int count = 0;
for(Player other : playerGroup.all()){
if(other.getTeam() == team){
count ++;
}
}
return count;
}
return Integer.MAX_VALUE;
});
player.setTeam(min);
Log.info("Auto-assigned player {0} to team {1}.", player.name, player.getTeam()); Log.info("Auto-assigned player {0} to team {1}.", player.name, player.getTeam());
} }
@@ -221,6 +208,22 @@ public class NetServer implements ApplicationListener{
}); });
} }
public Team assignTeam(){
//find team with minimum amount of players and auto-assign player to that.
return Structs.findMin(Team.all, team -> {
if(state.teams.isActive(team)){
int count = 0;
for(Player other : playerGroup.all()){
if(other.getTeam() == team){
count ++;
}
}
return count;
}
return Integer.MAX_VALUE;
});
}
public void sendWorldData(Player player, int clientID){ public void sendWorldData(Player player, int clientID){
ByteArrayOutputStream stream = new ByteArrayOutputStream(); ByteArrayOutputStream stream = new ByteArrayOutputStream();
DeflaterOutputStream def = new DeflaterOutputStream(stream); DeflaterOutputStream def = new DeflaterOutputStream(stream);
@@ -294,10 +297,12 @@ public class NetServer implements ApplicationListener{
player.isShooting = shooting; player.isShooting = shooting;
player.getPlaceQueue().clear(); player.getPlaceQueue().clear();
for(BuildRequest req : requests){ for(BuildRequest req : requests){
Tile tile = world.tile(req.x, req.y);
if(tile == null) continue;
//auto-skip done requests //auto-skip done requests
if(req.breaking && world.tile(req.x, req.y).block() == Blocks.air){ if(req.breaking && tile.block() == Blocks.air){
continue; continue;
}else if(!req.breaking && world.tile(req.x, req.y).block() == req.block && (!req.block.rotate || world.tile(req.x, req.y).getRotation() == req.rotation)){ }else if(!req.breaking && tile.block() == req.block && (!req.block.rotate || tile.getRotation() == req.rotation)){
continue; continue;
} }
player.getPlaceQueue().addLast(req); player.getPlaceQueue().addLast(req);
@@ -425,7 +430,7 @@ public class NetServer implements ApplicationListener{
Log.err("Cannot kick unknown player!"); Log.err("Cannot kick unknown player!");
return; return;
}else{ }else{
Log.info("Kicking connection #{0} / IP: {1}. Reason: {2}", connection, con.address, reason); Log.info("Kicking connection #{0} / IP: {1}. Reason: {2}", connection, con.address, reason.name());
} }
Player player = connections.get(con.id); Player player = connections.get(con.id);

View File

@@ -37,8 +37,6 @@ public abstract class Platform {
} }
/**Update discord RPC.*/ /**Update discord RPC.*/
public void updateRPC(){} public void updateRPC(){}
/**Open donation dialog. Currently android only.*/
public void openDonations(){}
/**Whether donating is supported.*/ /**Whether donating is supported.*/
public boolean canDonate(){ public boolean canDonate(){
return false; return false;

View File

@@ -47,6 +47,7 @@ public class Renderer implements ApplicationListener{
public final BlockRenderer blocks = new BlockRenderer(); public final BlockRenderer blocks = new BlockRenderer();
public final MinimapRenderer minimap = new MinimapRenderer(); public final MinimapRenderer minimap = new MinimapRenderer();
public final OverlayRenderer overlays = new OverlayRenderer(); public final OverlayRenderer overlays = new OverlayRenderer();
public final Pixelator pixelator = new Pixelator();
public FrameBuffer shieldBuffer = new FrameBuffer(2, 2); public FrameBuffer shieldBuffer = new FrameBuffer(2, 2);
private Color clearColor; private Color clearColor;
@@ -132,10 +133,13 @@ public class Renderer implements ApplicationListener{
} }
updateShake(0.75f); updateShake(0.75f);
if(pixelator.enabled()){
pixelator.drawPixelate();
}else{
draw(); draw();
} }
} }
}
void updateShake(float scale){ void updateShake(float scale){
if(shaketime > 0){ if(shaketime > 0){
@@ -159,7 +163,7 @@ public class Renderer implements ApplicationListener{
graphics.clear(clearColor); graphics.clear(clearColor);
if(graphics.getWidth() >= 2 && graphics.getHeight() >= 2 && (shieldBuffer.getWidth() != graphics.getWidth() || shieldBuffer.getHeight() != graphics.getHeight())){ if(!graphics.isHidden() && (Core.settings.getBool("animatedwater") || Core.settings.getBool("animatedshields")) && (shieldBuffer.getWidth() != graphics.getWidth() || shieldBuffer.getHeight() != graphics.getHeight())){
shieldBuffer.resize(graphics.getWidth(), graphics.getHeight()); shieldBuffer.resize(graphics.getWidth(), graphics.getHeight());
} }
@@ -207,6 +211,7 @@ public class Renderer implements ApplicationListener{
drawAndInterpolate(playerGroup, p -> true, Player::drawBuildRequests); drawAndInterpolate(playerGroup, p -> true, Player::drawBuildRequests);
if(EntityDraw.countInBounds(shieldGroup) > 0){ if(EntityDraw.countInBounds(shieldGroup) > 0){
if(settings.getBool("animatedshields")){
Draw.flush(); Draw.flush();
shieldBuffer.begin(); shieldBuffer.begin();
graphics.clear(Color.CLEAR); graphics.clear(Color.CLEAR);
@@ -219,13 +224,14 @@ public class Renderer implements ApplicationListener{
Draw.rect(Draw.wrap(shieldBuffer.getTexture()), camera.position.x, camera.position.y, camera.width, -camera.height); Draw.rect(Draw.wrap(shieldBuffer.getTexture()), camera.position.x, camera.position.y, camera.width, -camera.height);
Draw.color(); Draw.color();
Draw.shader(); Draw.shader();
}else{
EntityDraw.drawWith(shieldGroup, shield -> true, shield -> ((ShieldEntity)shield).drawSimple());
}
} }
overlays.drawTop(); overlays.drawTop();
EntityDraw.setClip(false);
drawAndInterpolate(playerGroup, p -> !p.isDead() && !p.isLocal, Player::drawName); drawAndInterpolate(playerGroup, p -> !p.isDead() && !p.isLocal, Player::drawName);
EntityDraw.setClip(true);
Draw.color(); Draw.color();
Draw.flush(); Draw.flush();
@@ -311,13 +317,24 @@ public class Renderer implements ApplicationListener{
targetscale = Mathf.clamp(targetscale, s * 1.5f, Math.round(s * 6)); targetscale = Mathf.clamp(targetscale, s * 1.5f, Math.round(s * 6));
} }
public float getScale(){
return targetscale;
}
public void setScale(float scl){
targetscale = scl;
clampScale();
}
public void takeMapScreenshot(){ public void takeMapScreenshot(){
drawGroundShadows(); drawGroundShadows();
int w = world.width()*tilesize, h = world.height()*tilesize; int w = world.width()*tilesize, h = world.height()*tilesize;
boolean isWater = settings.getBool("animatedwater"); boolean hadShields = Core.settings.getBool("animatedshields");
settings.put("animatedwater", false); boolean hadWater = Core.settings.getBool("animatedwater");
Core.settings.put("animatedwater", false);
Core.settings.put("animatedshields", false);
FrameBuffer buffer = new FrameBuffer(w, h); FrameBuffer buffer = new FrameBuffer(w, h);
@@ -351,7 +368,8 @@ public class Renderer implements ApplicationListener{
buffer.dispose(); buffer.dispose();
settings.put("animatedwater", isWater); Core.settings.put("animatedwater", hadWater);
Core.settings.put("animatedshields", hadShields);
} }
} }

View File

@@ -67,6 +67,7 @@ public class UI implements ApplicationListener{
public ContentInfoDialog content; public ContentInfoDialog content;
public DeployDialog deploy; public DeployDialog deploy;
public TechTreeDialog tech; public TechTreeDialog tech;
public MinimapDialog minimap;
public Cursor drillCursor, unloadCursor; public Cursor drillCursor, unloadCursor;
@@ -178,6 +179,7 @@ public class UI implements ApplicationListener{
content = new ContentInfoDialog(); content = new ContentInfoDialog();
deploy = new DeployDialog(); deploy = new DeployDialog();
tech = new TechTreeDialog(); tech = new TechTreeDialog();
minimap = new MinimapDialog();
Group group = Core.scene.root; Group group = Core.scene.root;

View File

@@ -1,22 +1,27 @@
package io.anuke.mindustry.entities; package io.anuke.mindustry.entities;
import io.anuke.mindustry.entities.Effects.Effect; import io.anuke.annotations.Annotations.Struct;
import io.anuke.arc.collection.GridBits;
import io.anuke.arc.collection.IntQueue;
import io.anuke.arc.function.Consumer; import io.anuke.arc.function.Consumer;
import io.anuke.arc.function.Predicate; import io.anuke.arc.function.Predicate;
import io.anuke.arc.graphics.Color; import io.anuke.arc.graphics.Color;
import io.anuke.arc.math.Mathf; import io.anuke.arc.math.Mathf;
import io.anuke.arc.math.geom.Geometry; import io.anuke.arc.math.geom.Geometry;
import io.anuke.arc.math.geom.Point2;
import io.anuke.arc.math.geom.Rectangle; import io.anuke.arc.math.geom.Rectangle;
import io.anuke.arc.math.geom.Vector2; import io.anuke.arc.math.geom.Vector2;
import io.anuke.arc.util.Time; import io.anuke.arc.util.Time;
import io.anuke.mindustry.content.Bullets; import io.anuke.mindustry.content.Bullets;
import io.anuke.mindustry.content.Fx; import io.anuke.mindustry.content.Fx;
import io.anuke.mindustry.entities.Effects.Effect;
import io.anuke.mindustry.entities.bullet.Bullet; import io.anuke.mindustry.entities.bullet.Bullet;
import io.anuke.mindustry.entities.effect.Fire; import io.anuke.mindustry.entities.effect.Fire;
import io.anuke.mindustry.entities.effect.Lightning; import io.anuke.mindustry.entities.effect.Lightning;
import io.anuke.mindustry.entities.type.Unit; import io.anuke.mindustry.entities.type.Unit;
import io.anuke.mindustry.game.Team; import io.anuke.mindustry.game.Team;
import io.anuke.mindustry.gen.Call; import io.anuke.mindustry.gen.Call;
import io.anuke.mindustry.gen.PropCell;
import io.anuke.mindustry.graphics.Pal; import io.anuke.mindustry.graphics.Pal;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;
@@ -27,6 +32,8 @@ public class Damage{
private static Rectangle rect = new Rectangle(); private static Rectangle rect = new Rectangle();
private static Rectangle hitrect = new Rectangle(); private static Rectangle hitrect = new Rectangle();
private static Vector2 tr = new Vector2(); private static Vector2 tr = new Vector2();
private static GridBits bits = new GridBits(30, 30);
private static IntQueue propagation = new IntQueue();
/**Creates a dynamic explosion based on specified parameters.*/ /**Creates a dynamic explosion based on specified parameters.*/
public static void dynamicExplosion(float x, float y, float flammability, float explosiveness, float power, float radius, Color color){ public static void dynamicExplosion(float x, float y, float flammability, float explosiveness, float power, float radius, Color color){
@@ -152,11 +159,16 @@ public class Damage{
/**Damages everything in a radius.*/ /**Damages everything in a radius.*/
public static void damage(float x, float y, float radius, float damage){ public static void damage(float x, float y, float radius, float damage){
damage(null, x, y, radius, damage); damage(null, x, y, radius, damage, false);
} }
/**Damages all entities and blocks in a radius that are enemies of the team.*/ /**Damages all entities and blocks in a radius that are enemies of the team.*/
public static void damage(Team team, float x, float y, float radius, float damage){ public static void damage(Team team, float x, float y, float radius, float damage){
damage(team, x, y, radius, damage, false);
}
/**Damages all entities and blocks in a radius that are enemies of the team.*/
public static void damage(Team team, float x, float y, float radius, float damage, boolean complete){
Consumer<Unit> cons = entity -> { Consumer<Unit> cons = entity -> {
if(entity.getTeam() == team || entity.dst(x, y) > radius){ if(entity.getTeam() == team || entity.dst(x, y) > radius){
return; return;
@@ -175,17 +187,68 @@ public class Damage{
Units.getNearby(rect, cons); Units.getNearby(rect, cons);
} }
int trad = (int) (radius / tilesize); if(!complete){
for(int dx = -trad; dx <= trad; dx++){ int trad = (int)(radius / tilesize);
for(int dy = -trad; dy <= trad; dy++){ Tile tile = world.tileWorld(x, y);
Tile tile = world.tile(Math.round(x / tilesize) + dx, Math.round(y / tilesize) + dy); if(tile != null){
if(tile != null && tile.entity != null && (team == null || state.teams.areEnemies(team, tile.getTeam())) && Mathf.dst(dx, dy, 0, 0) <= trad){ tileDamage(team, tile.x, tile.y, trad, damage);
float amount = calculateDamage(x, y, tile.worldx(), tile.worldy(), radius, damage); }
tile.entity.damage(amount); }else{
completeDamage(team, x, y, radius, damage);
}
}
public static void tileDamage(Team team, int startx, int starty, int radius, float baseDamage){
bits.clear();
propagation.clear();
int bitOffset = bits.width()/2;
propagation.addFirst(PropCell.get((byte)0, (byte)0, (short)baseDamage));
//clamp radius to fit bits
radius = Math.min(radius, bits.width()/2);
while(!propagation.isEmpty()){
int prop = propagation.removeLast();
int x = PropCell.x(prop);
int y = PropCell.y(prop);
int damage = PropCell.damage(prop);
//manhattan distance used for calculating falloff, results in a diamond pattern
int dst = Math.abs(x) + Math.abs(y);
int scaledDamage = (int)(damage * (1f - (float)dst / radius));
bits.set(bitOffset + x, bitOffset + y);
Tile tile = world.tile(startx + x, starty + y);
if(scaledDamage <= 0 || tile == null) continue;
//apply damage to entity if needed
if(tile.entity != null && tile.getTeam() != team){
int health = (int)tile.entity.health;
tile.entity.damage(scaledDamage);
scaledDamage -= health;
if(scaledDamage <= 0) continue;
}
for(Point2 p : Geometry.d4){
if(!bits.get(bitOffset + x + p.x, bitOffset + y + p.y)){
propagation.addFirst(PropCell.get((byte)(x + p.x), (byte)(y + p.y), (short)scaledDamage));
}
} }
} }
} }
private static void completeDamage(Team team, float x, float y, float radius, float damage){
int trad = (int) (radius / tilesize);
for(int dx = -trad; dx <= trad; dx++){
for(int dy = -trad; dy <= trad; dy++){
Tile tile = world.tile(Math.round(x / tilesize) + dx, Math.round(y / tilesize) + dy);
if(tile != null && tile.entity != null && (team == null || state.teams.areEnemies(team, tile.getTeam())) && Mathf.dst(dx, dy) <= trad){
tile.entity.damage(damage);
}
}
}
} }
private static float calculateDamage(float x, float y, float tx, float ty, float radius, float damage){ private static float calculateDamage(float x, float y, float tx, float ty, float radius, float damage){
@@ -194,4 +257,11 @@ public class Damage{
float scaled = Mathf.lerp(1f - dist / radius, 1f, falloff); float scaled = Mathf.lerp(1f - dist / radius, 1f, falloff);
return damage * scaled; return damage * scaled;
} }
@Struct
class PropCellStruct{
byte x;
byte y;
short damage;
}
} }

View File

@@ -12,7 +12,7 @@ import io.anuke.mindustry.entities.traits.SolidTrait;
public class EntityCollisions{ public class EntityCollisions{
//range for tile collision scanning //range for tile collision scanning
private static final int r = 2; private static final int r = 1;
//move in 1-unit chunks //move in 1-unit chunks
private static final float seg = 1f; private static final float seg = 1f;

View File

@@ -131,6 +131,17 @@ public class Bullet extends SolidEntity implements DamageTrait, ScaleTrait, Pool
this.data = data; this.data = data;
} }
public float damageMultiplier(){
if(owner instanceof Unit){
return ((Unit) owner).getDamageMultipler();
}
if(owner instanceof Lightning && data instanceof Float){
return (Float)data;
}
return 1f;
}
@Override @Override
public void absorb(){ public void absorb(){
supressCollision = true; supressCollision = true;
@@ -144,16 +155,7 @@ public class Bullet extends SolidEntity implements DamageTrait, ScaleTrait, Pool
@Override @Override
public float damage(){ public float damage(){
//todo hacky way to get damage, refactor return type.damage * damageMultiplier();
if(owner instanceof Unit){
return type.damage * ((Unit) owner).getDamageMultipler();
}
if(owner instanceof Lightning && data instanceof Float){
return (Float)data;
}
return type.damage;
} }
@Override @Override

View File

@@ -125,7 +125,7 @@ public abstract class BulletType extends Content{
} }
if(splashDamageRadius > 0){ if(splashDamageRadius > 0){
Damage.damage(b.getTeam(), x, y, splashDamageRadius, splashDamage); Damage.damage(b.getTeam(), x, y, splashDamageRadius, splashDamage * b.damageMultiplier());
} }
} }

View File

@@ -202,9 +202,9 @@ public interface BuilderTrait extends Entity, TeamTrait{
if(!(tile.block() instanceof BuildBlock)){ if(!(tile.block() instanceof BuildBlock)){
if(canCreateBlocks() && !current.breaking && Build.validPlace(getTeam(), current.x, current.y, current.block, current.rotation)){ if(canCreateBlocks() && !current.breaking && Build.validPlace(getTeam(), current.x, current.y, current.block, current.rotation)){
Build.beginPlace(getTeam(), current.x, current.y, current.block, current.rotation); Call.beginPlace(getTeam(), current.x, current.y, current.block, current.rotation);
}else if(canCreateBlocks() && current.breaking && Build.validBreak(getTeam(), current.x, current.y)){ }else if(canCreateBlocks() && current.breaking && Build.validBreak(getTeam(), current.x, current.y)){
Build.beginBreak(getTeam(), current.x, current.y); Call.beginBreak(getTeam(), current.x, current.y);
}else{ }else{
getPlaceQueue().removeFirst(); getPlaceQueue().removeFirst();
return; return;
@@ -213,8 +213,8 @@ public interface BuilderTrait extends Entity, TeamTrait{
TileEntity core = unit.getClosestCore(); TileEntity core = unit.getClosestCore();
//if there is no core to build with, stop building! //if there is no core to build with or no build entity, stop building!
if(core == null){ if(core == null || !(tile.entity instanceof BuildEntity)){
return; return;
} }
@@ -222,7 +222,6 @@ public interface BuilderTrait extends Entity, TeamTrait{
BuildEntity entity = tile.entity(); BuildEntity entity = tile.entity();
if(entity == null){ if(entity == null){
getPlaceQueue().removeFirst();
return; return;
} }

View File

@@ -217,7 +217,7 @@ public abstract class BaseUnit extends Unit implements ShooterTrait{
@Override @Override
public float maxHealth(){ public float maxHealth(){
return type.health; return type.health * Vars.state.rules.unitHealthMultiplier;
} }
@Override @Override
@@ -278,6 +278,7 @@ public abstract class BaseUnit extends Unit implements ShooterTrait{
@Override @Override
public void removed(){ public void removed(){
super.removed();
Tile tile = world.tile(spawner); Tile tile = world.tile(spawner);
if(tile != null){ if(tile != null){
tile.block().unitRemoved(tile, this); tile.block().unitRemoved(tile, this);
@@ -356,6 +357,8 @@ public abstract class BaseUnit extends Unit implements ShooterTrait{
interpolator.read(lastx, lasty, x, y, rotation); interpolator.read(lastx, lasty, x, y, rotation);
rotation = lastrot; rotation = lastrot;
x = lastx;
y = lasty;
} }
public void onSuperDeath(){ public void onSuperDeath(){

View File

@@ -211,8 +211,6 @@ public abstract class GroundUnit extends BaseUnit{
if(tile == targetTile) return; if(tile == targetTile) return;
float angle = angleTo(targetTile);
velocity.add(vec.trns(angleTo(targetTile), type.speed*Time.delta())); velocity.add(vec.trns(angleTo(targetTile), type.speed*Time.delta()));
if(Units.invalidateTarget(target, this)){ if(Units.invalidateTarget(target, this)){
rotation = Mathf.slerpDelta(rotation, baseRotation, type.rotatespeed); rotation = Mathf.slerpDelta(rotation, baseRotation, type.rotatespeed);
@@ -237,8 +235,6 @@ public abstract class GroundUnit extends BaseUnit{
if(tile == targetTile || core == null || dst(core) < 90f) return; if(tile == targetTile || core == null || dst(core) < 90f) return;
float angle = angleTo(targetTile);
velocity.add(vec.trns(angleTo(targetTile), type.speed*Time.delta())); velocity.add(vec.trns(angleTo(targetTile), type.speed*Time.delta()));
rotation = Mathf.slerpDelta(rotation, baseRotation, type.rotatespeed); rotation = Mathf.slerpDelta(rotation, baseRotation, type.rotatespeed);
} }

View File

@@ -91,6 +91,11 @@ public class Player extends Unit implements BuilderTrait, ShooterTrait{
player.mech = (player.isMobile ? Mechs.starterMobile : Mechs.starterDesktop); player.mech = (player.isMobile ? Mechs.starterMobile : Mechs.starterDesktop);
} }
@Override
public float getDamageMultipler(){
return status.getDamageMultiplier() * state.rules.playerDamageMultiplier;
}
@Override @Override
public void hitbox(Rectangle rectangle){ public void hitbox(Rectangle rectangle){
rectangle.setSize(mech.hitsize).setCenter(x, y); rectangle.setSize(mech.hitsize).setCenter(x, y);
@@ -874,10 +879,10 @@ public class Player extends Unit implements BuilderTrait, ShooterTrait{
interpolator.read(lastx, lasty, x, y, rotation, baseRotation); interpolator.read(lastx, lasty, x, y, rotation, baseRotation);
rotation = lastrot; rotation = lastrot;
if(isLocal){
x = lastx; x = lastx;
y = lasty; y = lasty;
if(isLocal){
velocity.x = lastvx; velocity.x = lastvx;
velocity.y = lastvy; velocity.y = lastvy;
}else{ }else{

View File

@@ -280,7 +280,9 @@ public class TileEntity extends BaseEntity implements TargetTrait, HealthTrait{
if(health <= 0){ if(health <= 0){
onDeath(); onDeath();
return; //no need to update anymore
} }
Block previous = block; Block previous = block;
block.update(tile); block.update(tile);
if(block == previous && cons != null){ if(block == previous && cons != null){

View File

@@ -95,7 +95,9 @@ public abstract class Unit extends DestructibleEntity implements SaveTrait, Targ
@Override @Override
public void damage(float amount){ public void damage(float amount){
if(!Net.client()){
super.damage(calculateDamage(amount)); super.damage(calculateDamage(amount));
}
hitTime = hitDuration; hitTime = hitDuration;
} }
@@ -142,10 +144,17 @@ public abstract class Unit extends DestructibleEntity implements SaveTrait, Targ
@Override @Override
public void removed(){ public void removed(){
if(lastWeightTile != Pos.invalid){
Tile tile = world.tile(lastWeightTile); Tile tile = world.tile(lastWeightTile);
if(tile != null){ if(tile != null){
tile.weight -= Math.max(lastWeightDelta, tile.weight); int dec = Math.min(lastWeightDelta, wasFlying ? tile.airWeight : tile.weight);
if(!wasFlying){
tile.weight -= dec;
}else{
tile.airWeight -= dec;
}
}
} }
} }
@@ -241,7 +250,6 @@ public abstract class Unit extends DestructibleEntity implements SaveTrait, Targ
}else{ }else{
tile.airWeight -= dec; tile.airWeight -= dec;
} }
} }
} }

View File

@@ -15,6 +15,7 @@ public enum RulePreset{
infiniteResources = true; infiniteResources = true;
waves = true; waves = true;
waveTimer = false; waveTimer = false;
respawnTime = 0f;
spawns = DefaultWaves.get(); spawns = DefaultWaves.get();
}}), }}),
attack(() -> new Rules(){{ attack(() -> new Rules(){{
@@ -27,6 +28,9 @@ public enum RulePreset{
respawnTime = 60 * 10; respawnTime = 60 * 10;
buildCostMultiplier = 0.5f; buildCostMultiplier = 0.5f;
buildSpeedMultiplier = 2f; buildSpeedMultiplier = 2f;
playerDamageMultiplier = 0.5f;
unitBuildSpeedMultiplier = 3f;
unitHealthMultiplier = 2f;
}}); }});
private final Supplier<Rules> rules; private final Supplier<Rules> rules;

View File

@@ -19,6 +19,12 @@ public class Rules{
public boolean pvp; public boolean pvp;
/**Whether enemy units drop random items on death.*/ /**Whether enemy units drop random items on death.*/
public boolean unitDrops; public boolean unitDrops;
/**How fast unit pads build units.*/
public float unitBuildSpeedMultiplier = 1f;
/**How much health units start with.*/
public float unitHealthMultiplier = 1f;
/**How much damage player mechs deal.*/
public float playerDamageMultiplier = 1f;
/**Multiplier for buildings for the player.*/ /**Multiplier for buildings for the player.*/
public float buildCostMultiplier = 1f; public float buildCostMultiplier = 1f;
/**Multiplier for building speed.*/ /**Multiplier for building speed.*/

View File

@@ -75,7 +75,7 @@ public class SpawnGroup implements Serializable{
} }
@Override @Override
public void write (Json json) { public void write(Json json){
json.writeValue("type", type.name); json.writeValue("type", type.name);
if(begin != 0) json.writeValue("begin", begin); if(begin != 0) json.writeValue("begin", begin);
if(end != never) json.writeValue("end", end); if(end != never) json.writeValue("end", end);
@@ -87,7 +87,7 @@ public class SpawnGroup implements Serializable{
} }
@Override @Override
public void read (Json json, JsonValue data) { public void read(Json json, JsonValue data){
type = content.getByName(ContentType.unit, data.getString("type", "dagger")); type = content.getByName(ContentType.unit, data.getString("type", "dagger"));
begin = data.getInt("begin", 0); begin = data.getInt("begin", 0);
end = data.getInt("end", never); end = data.getInt("end", never);

View File

@@ -121,6 +121,7 @@ public class BlockRenderer{
public void drawShadows(){ public void drawShadows(){
if(!shadowEvents.isEmpty()){ if(!shadowEvents.isEmpty()){
Draw.flush(); Draw.flush();
shadows.begin(); shadows.begin();
Draw.proj().setOrtho(0, 0, shadows.getWidth(), shadows.getHeight()); Draw.proj().setOrtho(0, 0, shadows.getWidth(), shadows.getHeight());
@@ -139,6 +140,7 @@ public class BlockRenderer{
shadowEvents.clear(); shadowEvents.clear();
Draw.proj(camera.projection()); Draw.proj(camera.projection());
renderer.pixelator.rebind();
} }
float ww = world.width() * tilesize, wh = world.height() * tilesize; float ww = world.width() * tilesize, wh = world.height() * tilesize;

View File

@@ -25,13 +25,13 @@ import static io.anuke.mindustry.Vars.tilesize;
import static io.anuke.mindustry.Vars.world; import static io.anuke.mindustry.Vars.world;
public class MinimapRenderer implements Disposable{ public class MinimapRenderer implements Disposable{
private static final int baseSize = 16; private static final float baseSize = 16f;
private final Array<Unit> units = new Array<>(); private final Array<Unit> units = new Array<>();
private Pixmap pixmap; private Pixmap pixmap;
private Texture texture; private Texture texture;
private TextureRegion region; private TextureRegion region;
private Rectangle rect = new Rectangle(), scissor = new Rectangle(); private Rectangle rect = new Rectangle(), scissor = new Rectangle();
private int zoom = 4; private float zoom = 4;
public MinimapRenderer(){ public MinimapRenderer(){
Events.on(WorldLoadEvent.class, event -> { Events.on(WorldLoadEvent.class, event -> {
@@ -49,7 +49,7 @@ public class MinimapRenderer implements Disposable{
public void zoomBy(float amount){ public void zoomBy(float amount){
zoom += amount; zoom += amount;
zoom = Mathf.clamp(zoom, 1, Math.min(world.width(), world.height()) / baseSize / 2); zoom = Mathf.clamp(zoom, 1f, Math.min(world.width(), world.height()) / baseSize / 2f);
} }
public float getZoom(){ public float getZoom(){
@@ -69,7 +69,7 @@ public class MinimapRenderer implements Disposable{
public void drawEntities(float x, float y, float w, float h){ public void drawEntities(float x, float y, float w, float h){
updateUnitArray(); updateUnitArray();
int sz = baseSize * zoom; float sz = baseSize * zoom;
float dx = (Core.camera.position.x / tilesize); float dx = (Core.camera.position.x / tilesize);
float dy = (Core.camera.position.y / tilesize); float dy = (Core.camera.position.y / tilesize);
dx = Mathf.clamp(dx, sz, world.width() - sz); dx = Mathf.clamp(dx, sz, world.width() - sz);
@@ -95,7 +95,7 @@ public class MinimapRenderer implements Disposable{
public TextureRegion getRegion(){ public TextureRegion getRegion(){
if(texture == null) return null; if(texture == null) return null;
int sz = Mathf.clamp(baseSize * zoom, baseSize, Math.min(world.width(), world.height())); float sz = Mathf.clamp(baseSize * zoom, baseSize, Math.min(world.width(), world.height()));
float dx = (Core.camera.position.x / tilesize); float dx = (Core.camera.position.x / tilesize);
float dy = (Core.camera.position.y / tilesize); float dy = (Core.camera.position.y / tilesize);
dx = Mathf.clamp(dx, sz, world.width() - sz); dx = Mathf.clamp(dx, sz, world.width() - sz);
@@ -124,7 +124,7 @@ public class MinimapRenderer implements Disposable{
} }
public void updateUnitArray(){ public void updateUnitArray(){
int sz = baseSize * zoom; float sz = baseSize * zoom;
float dx = (Core.camera.position.x / tilesize); float dx = (Core.camera.position.x / tilesize);
float dy = (Core.camera.position.y / tilesize); float dy = (Core.camera.position.y / tilesize);
dx = Mathf.clamp(dx, sz, world.width() - sz); dx = Mathf.clamp(dx, sz, world.width() - sz);

View File

@@ -0,0 +1,75 @@
package io.anuke.mindustry.graphics;
import io.anuke.arc.Core;
import io.anuke.arc.graphics.Blending;
import io.anuke.arc.graphics.g2d.Draw;
import io.anuke.arc.graphics.glutils.FrameBuffer;
import io.anuke.arc.util.Disposable;
import io.anuke.mindustry.entities.type.Player;
import static io.anuke.arc.Core.camera;
import static io.anuke.arc.Core.graphics;
import static io.anuke.mindustry.Vars.playerGroup;
import static io.anuke.mindustry.Vars.renderer;
public class Pixelator implements Disposable{
private FrameBuffer buffer = new FrameBuffer(2, 2);
public void drawPixelate(){
float pre = renderer.getScale();
float scale = renderer.getScale();
scale = (int)scale;
renderer.setScale(scale);
camera.width = (int)camera.width;
camera.height = (int)camera.height;
boolean hadShields = Core.settings.getBool("animatedshields");
boolean hadWater = Core.settings.getBool("animatedwater");
Core.settings.put("animatedwater", false);
Core.settings.put("animatedshields", false);
graphics.clear(0f, 0f, 0f, 1f);
float px = Core.camera.position.x, py = Core.camera.position.y;
Core.camera.position.set((int)px + ((int)(camera.width) % 2 == 0 ? 0 : 0.5f), (int)py + ((int)(camera.height) % 2 == 0 ? 0 : 0.5f));
int w = (int)(Core.camera.width);
int h = (int)(Core.camera.height);
if(!graphics.isHidden() && (buffer.getWidth() != w || buffer.getHeight() != h)){
buffer.resize(w, h);
}
Draw.flush();
buffer.begin();
renderer.draw();
Draw.flush();
buffer.end();
Draw.blend(Blending.disabled);
Draw.rect(Draw.wrap(buffer.getTexture()), Core.camera.position.x, Core.camera.position.y, Core.camera.width, -Core.camera.height);
Draw.blend();
renderer.drawAndInterpolate(playerGroup, p -> !p.isDead() && !p.isLocal, Player::drawName);
Core.camera.position.set(px, py);
Core.settings.put("animatedwater", hadWater);
Core.settings.put("animatedshields", hadShields);
renderer.setScale(pre);
}
public void rebind(){
if(enabled()){
buffer.begin();
}
}
public boolean enabled(){
return Core.settings.getBool("pixelate");
}
@Override
public void dispose(){
buffer.dispose();
}
}

View File

@@ -36,7 +36,7 @@ public abstract class SaveFileVersion{
long playtime = stream.readLong(); long playtime = stream.readLong();
int build = stream.readInt(); int build = stream.readInt();
Rules rules = Serialization.readRules(stream); Rules rules = Serialization.readRulesStreamJson(stream);
String map = stream.readUTF(); String map = stream.readUTF();
int wave = stream.readInt(); int wave = stream.readInt();
return new SaveMeta(version, time, playtime, build, map, wave, rules); return new SaveMeta(version, time, playtime, build, map, wave, rules);

View File

@@ -26,7 +26,7 @@ public class Save16 extends SaveFileVersion{
stream.readInt(); //build stream.readInt(); //build
//general state //general state
state.rules = Serialization.readRules(stream); state.rules = Serialization.readRulesStreamJson(stream);
String mapname = stream.readUTF(); String mapname = stream.readUTF();
Map map = world.maps.all().find(m -> m.name().equals(mapname)); Map map = world.maps.all().find(m -> m.name().equals(mapname));
if(map == null) map = new Map(customMapDirectory.child(mapname), 1, 1, new ObjectMap<>(), true); if(map == null) map = new Map(customMapDirectory.child(mapname), 1, 1, new ObjectMap<>(), true);
@@ -56,7 +56,7 @@ public class Save16 extends SaveFileVersion{
stream.writeInt(Version.build); //build stream.writeInt(Version.build); //build
//--GENERAL STATE-- //--GENERAL STATE--
Serialization.writeRules(stream, state.rules); Serialization.writeRulesStreamJson(stream, state.rules);
stream.writeUTF(world.getMap().name()); //map name stream.writeUTF(world.getMap().name()); //map name
stream.writeInt(state.wave); //wave stream.writeInt(state.wave); //wave

View File

@@ -83,7 +83,7 @@ public class Map implements Comparable<Map>{
} }
public String tag(String name){ public String tag(String name){
return tags.containsKey(name) && !tags.get(name).trim().isEmpty() ? tags.get(name): Core.bundle.get("unknown"); return tags.containsKey(name) && !tags.get(name).trim().isEmpty() ? tags.get(name) : Core.bundle.get("unknown");
} }
public boolean hasTag(String name){ public boolean hasTag(String name){

View File

@@ -163,7 +163,7 @@ public class Administration{
public boolean adminPlayer(String id, String usid){ public boolean adminPlayer(String id, String usid){
PlayerInfo info = getCreateInfo(id); PlayerInfo info = getCreateInfo(id);
if(info.admin) if(info.admin && info.adminUsid != null && info.adminUsid.equals(usid))
return false; return false;
info.adminUsid = usid; info.adminUsid = usid;

View File

@@ -36,7 +36,6 @@ public class Interpolator{
} }
public void update(){ public void update(){
if(lastUpdated != 0 && updateSpacing != 0){ if(lastUpdated != 0 && updateSpacing != 0){
float timeSinceUpdate = Time.timeSinceMillis(lastUpdated); float timeSinceUpdate = Time.timeSinceMillis(lastUpdated);
float alpha = Math.min(timeSinceUpdate / updateSpacing, 2f); float alpha = Math.min(timeSinceUpdate / updateSpacing, 2f);

View File

@@ -69,7 +69,7 @@ public class Item extends UnlockableContent implements Comparable<Item>{
@Override @Override
public TextureRegion getContentIcon(){ public TextureRegion getContentIcon(){
return icon(Icon.large); return icon(Icon.xlarge);
} }
@Override @Override

View File

@@ -2,17 +2,35 @@ package io.anuke.mindustry.ui;
import io.anuke.arc.Core; import io.anuke.arc.Core;
import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.graphics.g2d.Draw;
import io.anuke.arc.input.KeyCode;
import io.anuke.arc.scene.Element; import io.anuke.arc.scene.Element;
import io.anuke.arc.scene.event.ClickListener;
import io.anuke.arc.scene.event.InputEvent; import io.anuke.arc.scene.event.InputEvent;
import io.anuke.arc.scene.event.InputListener; import io.anuke.arc.scene.event.InputListener;
import io.anuke.arc.scene.event.Touchable;
import io.anuke.arc.scene.ui.layout.Container; import io.anuke.arc.scene.ui.layout.Container;
import io.anuke.arc.scene.ui.layout.Unit;
import static io.anuke.mindustry.Vars.renderer; import static io.anuke.mindustry.Vars.*;
public class Minimap extends Container<Element>{ public class Minimap extends Container<Element>{
public Minimap(){ public Minimap(){
super(new Element(){ background("pane");
float margin = 5f;
touchable(Touchable.enabled);
addChild(new Element(){
{
setSize(Unit.dp.scl(140f));
}
@Override
public void act(float delta){
setPosition(margin, margin);
super.act(delta);
}
@Override @Override
public void draw(){ public void draw(){
@@ -26,17 +44,59 @@ public class Minimap extends Container<Element>{
} }
}); });
background("pane");
size(140f); size(140f);
margin(5f); margin(margin);
addListener(new InputListener(){ addListener(new InputListener(){
@Override @Override
public boolean scrolled(InputEvent event, float x, float y, float amountx, float amounty){ public boolean scrolled(InputEvent event, float x, float y, float amountx, float amounty){
renderer.minimap.zoomBy(amounty); renderer.minimap.zoomBy(amounty);
return true; return true;
} }
@Override
public boolean touchDown(InputEvent event, float x, float y, int pointer, KeyCode button){
return true;
}
@Override
public void touchDragged(InputEvent event, float x, float y, int pointer){
if(mobile){
renderer.minimap.zoomBy(Core.input.deltaY(pointer) / 12f / Unit.dp.scl(1f));
}
}
});
addListener(new ClickListener(){
{
tapSquareSize = Unit.dp.scl(11f);
}
@Override
public void touchUp(InputEvent event, float x, float y, int pointer, KeyCode button){
if(inTapSquare()){
super.touchUp(event, x, y, pointer, button);
}else{
pressed = false;
pressedPointer = -1;
pressedButton = null;
cancelled = false;
}
}
@Override
public void touchDragged(InputEvent event, float x, float y, int pointer){
if(!inTapSquare(x, y)){
invalidateTapSquare();
}
super.touchDragged(event, x, y, pointer);
}
@Override
public void clicked(InputEvent event, float x, float y){
ui.minimap.show();
}
}); });
update(() -> { update(() -> {

View File

@@ -43,6 +43,9 @@ public class CustomRulesDialog extends FloatingDialog{
main.row(); main.row();
number("$rules.buildcostmultiplier", f -> rules.buildCostMultiplier = f, () -> rules.buildCostMultiplier); number("$rules.buildcostmultiplier", f -> rules.buildCostMultiplier = f, () -> rules.buildCostMultiplier);
number("$rules.buildspeedmultiplier", f -> rules.buildSpeedMultiplier = f, () -> rules.buildSpeedMultiplier); number("$rules.buildspeedmultiplier", f -> rules.buildSpeedMultiplier = f, () -> rules.buildSpeedMultiplier);
number("$rules.unitbuildspeedmultiplier", f -> rules.unitBuildSpeedMultiplier = f, () -> rules.unitBuildSpeedMultiplier);
number("$rules.unithealthmultiplier", f -> rules.unitHealthMultiplier = f, () -> rules.unitHealthMultiplier);
number("$rules.playerdamagemultiplier", f -> rules.playerDamageMultiplier = f, () -> rules.playerDamageMultiplier);
number("$rules.enemycorebuildradius", f -> rules.enemyCoreBuildRadius = f*tilesize, () -> Math.min(rules.enemyCoreBuildRadius/tilesize, 200)); number("$rules.enemycorebuildradius", f -> rules.enemyCoreBuildRadius = f*tilesize, () -> Math.min(rules.enemyCoreBuildRadius/tilesize, 200));
number("$rules.respawntime", f -> rules.respawnTime = f*60f, () -> rules.respawnTime/60f); number("$rules.respawntime", f -> rules.respawnTime = f*60f, () -> rules.respawnTime/60f);
number("$rules.wavespacing", f -> rules.waveSpacing = f*60f, () -> rules.waveSpacing/60f); number("$rules.wavespacing", f -> rules.waveSpacing = f*60f, () -> rules.waveSpacing/60f);

View File

@@ -0,0 +1,64 @@
package io.anuke.mindustry.ui.dialogs;
import io.anuke.arc.Core;
import io.anuke.arc.graphics.Color;
import io.anuke.arc.graphics.g2d.Draw;
import io.anuke.arc.input.KeyCode;
import io.anuke.arc.scene.event.InputEvent;
import io.anuke.arc.scene.event.InputListener;
import io.anuke.arc.scene.ui.layout.Unit;
import static io.anuke.mindustry.Vars.mobile;
import static io.anuke.mindustry.Vars.renderer;
public class MinimapDialog extends FloatingDialog{
public MinimapDialog(){
super("$minimap");
setFillParent(false);
shown(this::setup);
addCloseButton();
shouldPause = true;
}
void setup(){
cont.clear();
float size = Math.min(Core.graphics.getWidth(), Core.graphics.getHeight()) / Unit.dp.scl(1f) / 1.3f;
cont.table("pane", t -> {
t.addRect((x, y, width, height) -> {
if(renderer.minimap.getRegion() == null) return;
Draw.color(Color.WHITE);
Draw.rect(renderer.minimap.getRegion(), x + width/2f, y + height/2f, width, height);
if(renderer.minimap.getTexture() != null){
renderer.minimap.drawEntities(x, y, width, height);
}
}).grow();
}).size(size);
cont.addListener(new InputListener(){
@Override
public boolean scrolled(InputEvent event, float x, float y, float amountx, float amounty){
renderer.minimap.zoomBy(amounty);
return true;
}
@Override
public boolean touchDown(InputEvent event, float x, float y, int pointer, KeyCode button){
return true;
}
@Override
public void touchDragged(InputEvent event, float x, float y, int pointer){
if(mobile){
renderer.minimap.zoomBy(Core.input.deltaY(pointer) / 30f / Unit.dp.scl(1f));
}
}
});
Core.app.post(() -> Core.scene.setScrollFocus(cont));
}
}

View File

@@ -209,10 +209,13 @@ public class SettingsMenuDialog extends SettingsDialog{
} }
} }
graphics.checkPref("minimap", !mobile);
graphics.checkPref("fps", false); graphics.checkPref("fps", false);
graphics.checkPref("indicators", true); graphics.checkPref("indicators", true);
graphics.checkPref("animatedwater", !mobile); graphics.checkPref("animatedwater", false);
graphics.checkPref("animatedshields", !mobile);
graphics.checkPref("lasers", true); graphics.checkPref("lasers", true);
graphics.checkPref("pixelate", false);
} }
private void back(){ private void back(){

View File

@@ -31,7 +31,7 @@ import io.anuke.mindustry.world.Tile;
import static io.anuke.mindustry.Vars.*; import static io.anuke.mindustry.Vars.*;
public class BlockInventoryFragment extends Fragment{ public class BlockInventoryFragment extends Fragment{
private final static float holdWithdraw = 40f; private final static float holdWithdraw = 20f;
private Table table; private Table table;
private Tile tile; private Tile tile;

View File

@@ -32,6 +32,7 @@ import io.anuke.mindustry.net.Net;
import io.anuke.mindustry.net.Packets.AdminAction; import io.anuke.mindustry.net.Packets.AdminAction;
import io.anuke.mindustry.ui.Bar; import io.anuke.mindustry.ui.Bar;
import io.anuke.mindustry.ui.IntFormat; import io.anuke.mindustry.ui.IntFormat;
import io.anuke.mindustry.ui.Minimap;
import io.anuke.mindustry.ui.dialogs.FloatingDialog; import io.anuke.mindustry.ui.dialogs.FloatingDialog;
import static io.anuke.mindustry.Vars.*; import static io.anuke.mindustry.Vars.*;
@@ -154,19 +155,23 @@ public class HudFragment extends Fragment{
.grow()).fillX().visible(() -> state.rules.waves && state.boss() != null).height(60f).get(); .grow()).fillX().visible(() -> state.rules.waves && state.boss() != null).height(60f).get();
stuff.row(); stuff.row();
}).visible(() -> shown); }).visible(() -> shown);
});
//fps display //fps display
parent.fill(info -> { cont.table(info -> {
info.top().right().margin(4).visible(() -> Core.settings.getBool("fps") && !state.is(State.menu)); info.top().left().margin(4).visible(() -> Core.settings.getBool("fps"));
info.update(() -> info.setTranslation(state.rules.waves ? 0f : -Unit.dp.scl(dsize*4 + 3), 0));
IntFormat fps = new IntFormat("fps"); IntFormat fps = new IntFormat("fps");
IntFormat ping = new IntFormat("ping"); IntFormat ping = new IntFormat("ping");
info.label(() -> fps.get(Core.graphics.getFramesPerSecond())).right();
info.label(() -> fps.get(Core.graphics.getFramesPerSecond())).left();
info.row(); info.row();
info.label(() -> ping.get(Net.getPing())).visible(Net::client).right(); info.label(() -> ping.get(Net.getPing())).visible(Net::client).left();
}).top().left();
}); });
//minimap
parent.fill(t -> t.top().right().add(new Minimap()).visible(() -> !state.is(State.menu) && Core.settings.getBool("minimap")));
//spawner warning //spawner warning
parent.fill(t -> { parent.fill(t -> {
t.touchable(Touchable.disabled); t.touchable(Touchable.disabled);
@@ -262,6 +267,7 @@ public class HudFragment extends Fragment{
testb[0] = button; testb[0] = button;
button.getStyle().disabledFontColor = Color.WHITE; button.getStyle().disabledFontColor = Color.WHITE;
button.margin(16f);
button.visible(() -> button.visible(() ->
world.isZone() && world.isZone() &&
world.getZone().metCondition() && world.getZone().metCondition() &&
@@ -277,8 +283,8 @@ public class HudFragment extends Fragment{
button.setText(state.enemies() > 0 ? Core.bundle.format("launch.unable", state.enemies()) : Core.bundle.get("launch") + "\n" + button.setText(state.enemies() > 0 ? Core.bundle.format("launch.unable", state.enemies()) : Core.bundle.get("launch") + "\n" +
Core.bundle.format("launch.next", state.wave + world.getZone().launchPeriod)); Core.bundle.format("launch.next", state.wave + world.getZone().launchPeriod));
button.getLabel().setColor(Tmp.c1.set(Color.WHITE).lerp(state.enemies() > 0 ? Color.WHITE : Pal.accent, button.getLabel().setColor(Tmp.c1.set(Color.WHITE).lerp(state.enemies() > 0 ? Color.WHITE : Color.SCARLET,
Mathf.absin(Time.time(), 7f, 1f))); Mathf.absin(Time.time(), 2f, 1f)));
}); });
button.setDisabled(() -> state.enemies() > 0); button.setDisabled(() -> state.enemies() > 0);

View File

@@ -63,7 +63,7 @@ public class MenuFragment extends Fragment{
join = new MobileButton("icon-add", isize, "$joingame", ui.join::show), join = new MobileButton("icon-add", isize, "$joingame", ui.join::show),
editor = new MobileButton("icon-editor", isize, "$editor", () -> ui.loadAnd(ui.editor::show)), editor = new MobileButton("icon-editor", isize, "$editor", () -> ui.loadAnd(ui.editor::show)),
tools = new MobileButton("icon-tools", isize, "$settings", ui.settings::show), tools = new MobileButton("icon-tools", isize, "$settings", ui.settings::show),
donate = new MobileButton("icon-donate", isize, "$donate", Platform.instance::openDonations); donate = new MobileButton("icon-donate", isize, "$donate", () -> Core.net.openURI(donationURL));
if(Core.graphics.getWidth() > Core.graphics.getHeight()){ if(Core.graphics.getWidth() > Core.graphics.getHeight()){
container.add(play); container.add(play);

View File

@@ -69,10 +69,10 @@ public class PlayerListFragment extends Fragment{
playerGroup.all().sort((p1, p2) -> p1.getTeam().compareTo(p2.getTeam())); playerGroup.all().sort((p1, p2) -> p1.getTeam().compareTo(p2.getTeam()));
playerGroup.forEach(player -> { playerGroup.forEach(user -> {
NetConnection connection = player.con; NetConnection connection = user.con;
if(connection == null && Net.server() && !player.isLocal) return; if(connection == null && Net.server() && !user.isLocal) return;
Table button = new Table(); Table button = new Table();
button.left(); button.left();
@@ -90,15 +90,15 @@ public class PlayerListFragment extends Fragment{
} }
}; };
table.margin(8); table.margin(8);
table.add(new Image(player.mech.iconRegion)).grow(); table.add(new Image(user.mech.iconRegion)).grow();
button.add(table).size(h); button.add(table).size(h);
button.labelWrap("[#" + player.color.toString().toUpperCase() + "]" + player.name).width(170f).pad(10); button.labelWrap("[#" + user.color.toString().toUpperCase() + "]" + user.name).width(170f).pad(10);
button.add().grow(); button.add().grow();
button.addImage("icon-admin").size(14 * 2).visible(() -> player.isAdmin && !(!player.isLocal && Net.server())).padRight(5).get().updateVisibility(); button.addImage("icon-admin").size(14 * 2).visible(() -> user.isAdmin && !(!user.isLocal && Net.server())).padRight(5).get().updateVisibility();
if((Net.server() || player.isAdmin) && !player.isLocal && (!player.isAdmin || Net.server())){ if((Net.server() || player.isAdmin) && !user.isLocal && (!user.isAdmin || Net.server())){
button.add().growY(); button.add().growY();
float bs = (h) / 2f; float bs = (h) / 2f;
@@ -107,36 +107,36 @@ public class PlayerListFragment extends Fragment{
t.defaults().size(bs); t.defaults().size(bs);
t.addImageButton("icon-ban", "clear-partial", 14 * 2, t.addImageButton("icon-ban", "clear-partial", 14 * 2,
() -> ui.showConfirm("$confirm", "$confirmban", () -> Call.onAdminRequest(player, AdminAction.ban))); () -> ui.showConfirm("$confirm", "$confirmban", () -> Call.onAdminRequest(user, AdminAction.ban)));
t.addImageButton("icon-cancel", "clear-partial", 16 * 2, t.addImageButton("icon-cancel", "clear-partial", 16 * 2,
() -> ui.showConfirm("$confirm", "$confirmkick", () -> Call.onAdminRequest(player, AdminAction.kick))); () -> ui.showConfirm("$confirm", "$confirmkick", () -> Call.onAdminRequest(user, AdminAction.kick)));
t.row(); t.row();
t.addImageButton("icon-admin", "clear-toggle-partial", 14 * 2, () -> { t.addImageButton("icon-admin", "clear-toggle-partial", 14 * 2, () -> {
if(Net.client()) return; if(Net.client()) return;
String id = player.uuid; String id = user.uuid;
if(netServer.admins.isAdmin(id, connection.address)){ if(netServer.admins.isAdmin(id, connection.address)){
ui.showConfirm("$confirm", "$confirmunadmin", () -> netServer.admins.unAdminPlayer(id)); ui.showConfirm("$confirm", "$confirmunadmin", () -> netServer.admins.unAdminPlayer(id));
}else{ }else{
ui.showConfirm("$confirm", "$confirmadmin", () -> netServer.admins.adminPlayer(id, player.usid)); ui.showConfirm("$confirm", "$confirmadmin", () -> netServer.admins.adminPlayer(id, user.usid));
} }
}) })
.update(b -> b.setChecked(player.isAdmin)) .update(b -> b.setChecked(user.isAdmin))
.disabled(b -> Net.client()) .disabled(b -> Net.client())
.touchable(() -> Net.client() ? Touchable.disabled : Touchable.enabled) .touchable(() -> Net.client() ? Touchable.disabled : Touchable.enabled)
.checked(player.isAdmin); .checked(user.isAdmin);
t.addImageButton("icon-zoom-small", "clear-partial", 14 * 2, () -> ui.showError("Currently unimplemented.")/*Call.onAdminRequest(player, AdminAction.trace)*/); t.addImageButton("icon-zoom-small", "clear-partial", 14 * 2, () -> ui.showError("Currently unimplemented.")/*Call.onAdminRequest(user, AdminAction.trace)*/);
}).padRight(12).size(bs + 10f, bs); }).padRight(12).size(bs + 10f, bs);
} }
content.add(button).padBottom(-6).width(350f).maxHeight(h + 14); content.add(button).padBottom(-6).width(350f).maxHeight(h + 14);
content.row(); content.row();
content.addImage("blank").height(3f).color(state.rules.pvp ? player.getTeam().color : Pal.accent).growX(); content.addImage("blank").height(3f).color(state.rules.pvp ? user.getTeam().color : Pal.accent).growX();
content.row(); content.row();
}); });

View File

@@ -210,6 +210,8 @@ public class Block extends BlockStorage{
} }
protected void drawPlaceText(String text, int x, int y, boolean valid){ protected void drawPlaceText(String text, int x, int y, boolean valid){
if(renderer.pixelator.enabled()) return;
Color color = valid ? Pal.accent : Pal.remove; Color color = valid ? Pal.accent : Pal.remove;
BitmapFont font = Core.scene.skin.getFont("default-font"); BitmapFont font = Core.scene.skin.getFont("default-font");
GlyphLayout layout = Pools.obtain(GlyphLayout.class, GlyphLayout::new); GlyphLayout layout = Pools.obtain(GlyphLayout.class, GlyphLayout::new);
@@ -290,7 +292,7 @@ public class Block extends BlockStorage{
@Override @Override
public TextureRegion getContentIcon(){ public TextureRegion getContentIcon(){
return icon(Icon.medium); return icon(Icon.large);
} }
@Override @Override
@@ -418,7 +420,7 @@ public class Block extends BlockStorage{
boolean buffered = consumes.getPower().isBuffered; boolean buffered = consumes.getPower().isBuffered;
float capacity = consumes.getPower().powerCapacity; float capacity = consumes.getPower().powerCapacity;
bars.add("power", entity -> new Bar(() -> buffered ? Core.bundle.format("bar.powerbalance", Float.isNaN(entity.power.satisfaction * capacity) ? "<ERROR>" : (int)(entity.power.satisfaction * capacity)) : bars.add("power", entity -> new Bar(() -> buffered ? Core.bundle.format("bar.poweramount", Float.isNaN(entity.power.satisfaction * capacity) ? "<ERROR>" : (int)(entity.power.satisfaction * capacity)) :
Core.bundle.get("bar.power"), () -> Pal.powerBar, () -> entity.power.satisfaction)); Core.bundle.get("bar.power"), () -> Pal.powerBar, () -> entity.power.satisfaction));
} }

View File

@@ -1,5 +1,7 @@
package io.anuke.mindustry.world; package io.anuke.mindustry.world;
import io.anuke.annotations.Annotations.Loc;
import io.anuke.annotations.Annotations.Remote;
import io.anuke.arc.Core; import io.anuke.arc.Core;
import io.anuke.arc.Events; import io.anuke.arc.Events;
import io.anuke.arc.math.Mathf; import io.anuke.arc.math.Mathf;
@@ -19,6 +21,7 @@ public class Build{
private static final Rectangle rect = new Rectangle(); private static final Rectangle rect = new Rectangle();
/**Returns block type that was broken, or null if unsuccesful.*/ /**Returns block type that was broken, or null if unsuccesful.*/
@Remote(called = Loc.server)
public static void beginBreak(Team team, int x, int y){ public static void beginBreak(Team team, int x, int y){
if(!validBreak(team, x, y)){ if(!validBreak(team, x, y)){
return; return;
@@ -69,6 +72,7 @@ public class Build{
} }
/**Places a BuildBlock at this location.*/ /**Places a BuildBlock at this location.*/
@Remote(called = Loc.server)
public static void beginPlace(Team team, int x, int y, Block result, int rotation){ public static void beginPlace(Team team, int x, int y, Block result, int rotation){
if(!validPlace(team, x, y, result, rotation)){ if(!validPlace(team, x, y, result, rotation)){
return; return;

View File

@@ -3,10 +3,7 @@ package io.anuke.mindustry.world;
import io.anuke.arc.collection.Array; import io.anuke.arc.collection.Array;
import io.anuke.arc.function.Consumer; import io.anuke.arc.function.Consumer;
import io.anuke.arc.math.Mathf; import io.anuke.arc.math.Mathf;
import io.anuke.arc.math.geom.Geometry; import io.anuke.arc.math.geom.*;
import io.anuke.arc.math.geom.Point2;
import io.anuke.arc.math.geom.Position;
import io.anuke.arc.math.geom.Vector2;
import io.anuke.arc.util.Pack; import io.anuke.arc.util.Pack;
import io.anuke.mindustry.content.Blocks; import io.anuke.mindustry.content.Blocks;
import io.anuke.mindustry.entities.traits.TargetTrait; import io.anuke.mindustry.entities.traits.TargetTrait;
@@ -142,6 +139,11 @@ public class Tile implements Position, TargetTrait{
return wall; return wall;
} }
@SuppressWarnings("unchecked")
public <T extends Block> T cblock(){
return (T)wall;
}
@Override @Override
public Team getTeam(){ public Team getTeam(){
return Team.all[target().team]; return Team.all[target().team];
@@ -327,6 +329,10 @@ public class Tile implements Position, TargetTrait{
return link == null ? this : link; return link == null ? this : link;
} }
public Rectangle getHitbox(Rectangle rect){
return rect.setSize(block().size * tilesize).setCenter(drawx(), drawy());
}
public Tile getNearby(Point2 relative){ public Tile getNearby(Point2 relative){
return world.tile(x + relative.x, y + relative.y); return world.tile(x + relative.x, y + relative.y);
} }

View File

@@ -1,21 +1,22 @@
package io.anuke.mindustry.world.blocks.defense; package io.anuke.mindustry.world.blocks.defense;
import io.anuke.arc.Core; import io.anuke.arc.Core;
import io.anuke.mindustry.entities.Effects;
import io.anuke.mindustry.entities.EntityGroup;
import io.anuke.mindustry.entities.EntityQuery;
import io.anuke.mindustry.entities.impl.BaseEntity;
import io.anuke.mindustry.entities.traits.DrawTrait;
import io.anuke.arc.graphics.Blending; import io.anuke.arc.graphics.Blending;
import io.anuke.arc.graphics.Color; import io.anuke.arc.graphics.Color;
import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.graphics.g2d.Draw;
import io.anuke.arc.graphics.g2d.Fill; import io.anuke.arc.graphics.g2d.Fill;
import io.anuke.arc.graphics.g2d.Lines;
import io.anuke.arc.graphics.g2d.TextureRegion; import io.anuke.arc.graphics.g2d.TextureRegion;
import io.anuke.arc.math.Mathf; import io.anuke.arc.math.Mathf;
import io.anuke.arc.util.Time; import io.anuke.arc.util.Time;
import io.anuke.mindustry.content.Fx; import io.anuke.mindustry.content.Fx;
import io.anuke.mindustry.entities.type.TileEntity; import io.anuke.mindustry.entities.Effects;
import io.anuke.mindustry.entities.EntityGroup;
import io.anuke.mindustry.entities.EntityQuery;
import io.anuke.mindustry.entities.impl.BaseEntity;
import io.anuke.mindustry.entities.traits.AbsorbTrait; import io.anuke.mindustry.entities.traits.AbsorbTrait;
import io.anuke.mindustry.entities.traits.DrawTrait;
import io.anuke.mindustry.entities.type.TileEntity;
import io.anuke.mindustry.graphics.Pal; import io.anuke.mindustry.graphics.Pal;
import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Block;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;
@@ -36,7 +37,7 @@ public class ForceProjector extends Block {
protected float phaseUseTime = 350f; protected float phaseUseTime = 350f;
protected float phaseRadiusBoost = 80f; protected float phaseRadiusBoost = 80f;
protected float radius = 100f; protected float radius = 101.7f;
protected float breakage = 550f; protected float breakage = 550f;
protected float cooldownNormal = 1.75f; protected float cooldownNormal = 1.75f;
protected float cooldownLiquid = 1.5f; protected float cooldownLiquid = 1.5f;
@@ -46,7 +47,6 @@ public class ForceProjector extends Block {
protected final ConsumeForceProjectorPower consumePower; protected final ConsumeForceProjectorPower consumePower;
protected TextureRegion topRegion; protected TextureRegion topRegion;
public ForceProjector(String name) { public ForceProjector(String name) {
super(name); super(name);
update = true; update = true;
@@ -76,6 +76,16 @@ public class ForceProjector extends Block {
stats.add(BlockStat.boostEffect, phaseRadiusBoost/tilesize, StatUnit.blocks); stats.add(BlockStat.boostEffect, phaseRadiusBoost/tilesize, StatUnit.blocks);
} }
@Override
public void drawPlace(int x, int y, int rotation, boolean valid){
super.drawPlace(x, y, rotation, valid);
Draw.color(Pal.accent);
Lines.stroke(1f);
Lines.poly(x * tilesize, y * tilesize, 6, radius);
Draw.color();
}
@Override @Override
public void update(Tile tile){ public void update(Tile tile){
ForceEntity entity = tile.entity(); ForceEntity entity = tile.entity();
@@ -112,13 +122,13 @@ public class ForceProjector extends Block {
if(entity.power.satisfaction < relativePowerDraw){ if(entity.power.satisfaction < relativePowerDraw){
entity.warmup = Mathf.lerpDelta(entity.warmup, 0f, 0.15f); entity.warmup = Mathf.lerpDelta(entity.warmup, 0f, 0.15f);
entity.power.satisfaction = .0f; entity.power.satisfaction = 0f;
if(entity.warmup <= 0.09f){ if(entity.warmup <= 0.09f){
entity.broken = true; entity.broken = true;
} }
}else{ }else{
entity.warmup = Mathf.lerpDelta(entity.warmup, 1f, 0.1f); entity.warmup = Mathf.lerpDelta(entity.warmup, 1f, 0.1f);
entity.power.satisfaction -= Math.min(entity.power.satisfaction, relativePowerDraw); entity.power.satisfaction -= Math.min(entity.power.satisfaction, relativePowerDraw*Time.delta());
} }
if(entity.buildup > 0){ if(entity.buildup > 0){
@@ -261,6 +271,20 @@ public class ForceProjector extends Block {
Draw.color(); Draw.color();
} }
public void drawSimple(){
if(realRadius(entity) < 0.5f) return;;
float rad = realRadius(entity);
Draw.color(Pal.accent);
Lines.stroke(1.5f);
Draw.alpha(0.09f + 0.08f * entity.hit);
Fill.poly(x, y, 6, rad);
Draw.alpha(1f);
Lines.poly(x, y, 6, rad);
Draw.reset();
}
@Override @Override
public EntityGroup targetGroup(){ public EntityGroup targetGroup(){
return shieldGroup; return shieldGroup;

View File

@@ -13,6 +13,7 @@ import io.anuke.arc.util.Time;
import io.anuke.arc.util.Tmp; import io.anuke.arc.util.Tmp;
import io.anuke.mindustry.content.Fx; import io.anuke.mindustry.content.Fx;
import io.anuke.mindustry.entities.type.TileEntity; import io.anuke.mindustry.entities.type.TileEntity;
import io.anuke.mindustry.graphics.Pal;
import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Block;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;
import io.anuke.mindustry.world.meta.BlockStat; import io.anuke.mindustry.world.meta.BlockStat;
@@ -103,6 +104,13 @@ public class MendProjector extends Block{
} }
} }
@Override
public void drawPlace(int x, int y, int rotation, boolean valid){
Draw.color(Pal.accent);
Lines.dashCircle(x * tilesize, y * tilesize, range);
Draw.color();
}
@Override @Override
public void drawSelect(Tile tile){ public void drawSelect(Tile tile){
MendEntity entity = tile.entity(); MendEntity entity = tile.entity();

View File

@@ -10,6 +10,7 @@ import io.anuke.arc.graphics.g2d.TextureRegion;
import io.anuke.arc.math.Mathf; import io.anuke.arc.math.Mathf;
import io.anuke.arc.util.Time; import io.anuke.arc.util.Time;
import io.anuke.mindustry.entities.type.TileEntity; import io.anuke.mindustry.entities.type.TileEntity;
import io.anuke.mindustry.graphics.Pal;
import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Block;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;
import io.anuke.mindustry.world.meta.BlockStat; import io.anuke.mindustry.world.meta.BlockStat;
@@ -52,6 +53,13 @@ public class OverdriveProjector extends Block{
topRegion = Core.atlas.find(name + "-top"); topRegion = Core.atlas.find(name + "-top");
} }
@Override
public void drawPlace(int x, int y, int rotation, boolean valid){
Draw.color(Pal.accent);
Lines.dashCircle(x * tilesize, y * tilesize, range);
Draw.color();
}
@Override @Override
public void setStats(){ public void setStats(){
super.setStats(); super.setStats();

View File

@@ -17,7 +17,7 @@ import static io.anuke.mindustry.Vars.tilesize;
public class CooledTurret extends Turret{ public class CooledTurret extends Turret{
/**How much reload is lowered by for each unit of liquid of heat capacity.*/ /**How much reload is lowered by for each unit of liquid of heat capacity.*/
protected float coolantMultiplier = 2f; protected float coolantMultiplier = 5f;
protected Effect coolEffect = Fx.fuelburn; protected Effect coolEffect = Fx.fuelburn;
public CooledTurret(String name){ public CooledTurret(String name){
@@ -25,7 +25,7 @@ public class CooledTurret extends Turret{
hasLiquids = true; hasLiquids = true;
liquidCapacity = 20f; liquidCapacity = 20f;
consumes.add(new ConsumeLiquidFilter(liquid -> liquid.temperature <= 0.5f && liquid.flammability < 0.1f, 0.5f)).update(false).optional(true); consumes.add(new ConsumeLiquidFilter(liquid -> liquid.temperature <= 0.5f && liquid.flammability < 0.1f, 0.2f)).update(false).optional(true);
} }
@Override @Override

View File

@@ -12,6 +12,7 @@ import io.anuke.mindustry.world.Tile;
import io.anuke.mindustry.world.consumers.ConsumeLiquidBase; import io.anuke.mindustry.world.consumers.ConsumeLiquidBase;
import io.anuke.mindustry.world.consumers.ConsumeLiquidFilter; import io.anuke.mindustry.world.consumers.ConsumeLiquidFilter;
import io.anuke.mindustry.world.consumers.ConsumeType; import io.anuke.mindustry.world.consumers.ConsumeType;
import io.anuke.mindustry.world.meta.BlockStat;
import static io.anuke.mindustry.Vars.tilesize; import static io.anuke.mindustry.Vars.tilesize;
@@ -26,6 +27,13 @@ public class LaserTurret extends PowerTurret{
consumes.add(new ConsumeLiquidFilter(liquid -> liquid.temperature <= 0.5f && liquid.flammability < 0.1f, 0.01f)).update(false); consumes.add(new ConsumeLiquidFilter(liquid -> liquid.temperature <= 0.5f && liquid.flammability < 0.1f, 0.01f)).update(false);
} }
@Override
public void setStats(){
super.setStats();
stats.remove(BlockStat.boostEffect);
}
@Override @Override
public void update(Tile tile) { public void update(Tile tile) {
super.update(tile); super.update(tile);

View File

@@ -108,7 +108,7 @@ public class Conduit extends LiquidBlock{
@Override @Override
public boolean acceptLiquid(Tile tile, Tile source, Liquid liquid, float amount){ public boolean acceptLiquid(Tile tile, Tile source, Liquid liquid, float amount){
tile.entity.noSleep(); tile.entity.noSleep();
return super.acceptLiquid(tile, source, liquid, amount) && ((2 + source.relativeTo(tile.x, tile.y)) % 4 != tile.getRotation()); return tile.entity.liquids.get(liquid) + amount < liquidCapacity && (tile.entity.liquids.current() == liquid || tile.entity.liquids.get(tile.entity.liquids.current()) < 0.2f) && ((2 + source.relativeTo(tile.x, tile.y)) % 4 != tile.getRotation());
} }
@Override @Override

View File

@@ -199,7 +199,6 @@ public class Conveyor extends Block{
@Override @Override
public void update(Tile tile){ public void update(Tile tile){
ConveyorEntity entity = tile.entity(); ConveyorEntity entity = tile.entity();
entity.minitem = 1f; entity.minitem = 1f;
Tile next = tile.getNearby(tile.getRotation()); Tile next = tile.getNearby(tile.getRotation());

View File

@@ -56,6 +56,11 @@ public class LiquidBridge extends ItemBridge{
return false; return false;
} }
@Override
public boolean acceptLiquid(Tile tile, Tile source, Liquid liquid, float amount){
return tile.entity.liquids.get(liquid) + amount < liquidCapacity && (tile.entity.liquids.current() == liquid || tile.entity.liquids.get(tile.entity.liquids.current()) < 0.2f);
}
@Override @Override
public boolean canDumpLiquid(Tile tile, Tile to, Liquid liquid){ public boolean canDumpLiquid(Tile tile, Tile to, Liquid liquid){
ItemBridgeEntity entity = tile.entity(); ItemBridgeEntity entity = tile.entity();

View File

@@ -1,5 +1,6 @@
package io.anuke.mindustry.world.blocks.distribution; package io.anuke.mindustry.world.blocks.distribution;
import io.anuke.mindustry.type.Liquid;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;
import io.anuke.mindustry.world.blocks.LiquidBlock; import io.anuke.mindustry.world.blocks.LiquidBlock;
@@ -17,4 +18,8 @@ public class LiquidRouter extends LiquidBlock{
} }
} }
@Override
public boolean acceptLiquid(Tile tile, Tile source, Liquid liquid, float amount){
return tile.entity.liquids.get(liquid) + amount < liquidCapacity && (tile.entity.liquids.current() == liquid || tile.entity.liquids.get(tile.entity.liquids.current()) < 0.2f);
}
} }

View File

@@ -41,7 +41,6 @@ public class ImpactReactor extends PowerGenerator{
super(name); super(name);
hasPower = true; hasPower = true;
hasLiquids = true; hasLiquids = true;
powerProduction = 2.0f;
liquidCapacity = 30f; liquidCapacity = 30f;
hasItems = true; hasItems = true;
outputsPower = consumesPower = true; outputsPower = consumesPower = true;
@@ -53,7 +52,7 @@ public class ImpactReactor extends PowerGenerator{
bars.add("poweroutput", entity -> new Bar(() -> bars.add("poweroutput", entity -> new Bar(() ->
Core.bundle.format("bar.poweroutput", Core.bundle.format("bar.poweroutput",
Strings.fixed(Math.max(entity.block.getPowerProduction(entity.tile) - consumes.getPower().powerPerTick, 0)*60 * entity.delta(), 1)), Strings.fixed(Math.max(entity.block.getPowerProduction(entity.tile) - consumes.getPower().powerPerTick, 0)*60 * entity.timeScale, 1)),
() -> Pal.powerBar, () -> Pal.powerBar,
() -> ((GeneratorEntity)entity).productionEfficiency)); () -> ((GeneratorEntity)entity).productionEfficiency));
} }
@@ -73,6 +72,9 @@ public class ImpactReactor extends PowerGenerator{
if(entity.cons.valid()){ if(entity.cons.valid()){
entity.warmup = Mathf.lerpDelta(entity.warmup, 1f, warmupSpeed); entity.warmup = Mathf.lerpDelta(entity.warmup, 1f, warmupSpeed);
if(Mathf.isEqual(entity.warmup, 1f, 0.001f)){
entity.warmup =1f;
}
if(entity.timer.get(timerUse, itemDuration)){ if(entity.timer.get(timerUse, itemDuration)){
entity.cons.trigger(); entity.cons.trigger();

View File

@@ -79,11 +79,6 @@ public class ItemLiquidGenerator extends PowerGenerator{
//Power amount is delta'd by PowerGraph class already. //Power amount is delta'd by PowerGraph class already.
float calculationDelta = entity.delta(); float calculationDelta = entity.delta();
if(!entity.cons.valid()){
entity.productionEfficiency = 0.0f;
return;
}
Liquid liquid = null; Liquid liquid = null;
for(Liquid other : content.liquids()){ for(Liquid other : content.liquids()){
if(hasLiquids && entity.liquids.get(other) >= 0.001f && getLiquidEfficiency(other) >= minLiquidEfficiency){ if(hasLiquids && entity.liquids.get(other) >= 0.001f && getLiquidEfficiency(other) >= minLiquidEfficiency){

View File

@@ -8,9 +8,11 @@ import io.anuke.arc.graphics.g2d.Draw;
import io.anuke.arc.graphics.g2d.Lines; import io.anuke.arc.graphics.g2d.Lines;
import io.anuke.arc.math.Angles; import io.anuke.arc.math.Angles;
import io.anuke.arc.math.Mathf; import io.anuke.arc.math.Mathf;
import io.anuke.arc.math.geom.Intersector;
import io.anuke.arc.math.geom.Vector2; import io.anuke.arc.math.geom.Vector2;
import io.anuke.arc.util.Strings; import io.anuke.arc.util.Strings;
import io.anuke.arc.util.Time; import io.anuke.arc.util.Time;
import io.anuke.arc.util.Tmp;
import io.anuke.mindustry.entities.type.Player; import io.anuke.mindustry.entities.type.Player;
import io.anuke.mindustry.entities.type.TileEntity; import io.anuke.mindustry.entities.type.TileEntity;
import io.anuke.mindustry.gen.Call; import io.anuke.mindustry.gen.Call;
@@ -224,19 +226,19 @@ public class PowerNode extends PowerBlock{
} }
protected boolean linkValid(Tile tile, Tile link, boolean checkMaxNodes){ protected boolean linkValid(Tile tile, Tile link, boolean checkMaxNodes){
if(!(tile != link && link != null && link.block().hasPower) || tile.getTeamID() != link.getTeamID()) return false; if(tile == link || link == null || !link.block().hasPower || tile.getTeam() != link.getTeam()) return false;
if(link.block() instanceof PowerNode){ if(overlaps(tile, link, laserRange*tilesize) || (link.block() instanceof PowerNode && overlaps(link, tile, link.<PowerNode>cblock().laserRange*tilesize))){
TileEntity oe = link.entity(); if(checkMaxNodes && link.block() instanceof PowerNode){
return link.entity.power.links.size < link.<PowerNode>cblock().maxNodes || link.entity.power.links.contains(tile.pos());
return Mathf.dst(tile.drawx(), tile.drawy(), link.drawx(), link.drawy()) <= Math.max(laserRange * tilesize,
((PowerNode) link.block()).laserRange * tilesize)
+ (link.block().size - 1) * tilesize / 2f + (tile.block().size - 1) * tilesize / 2f &&
(!checkMaxNodes || (oe.power.links.size < ((PowerNode) link.block()).maxNodes || oe.power.links.contains(tile.pos())));
}else{
return Mathf.dst(tile.drawx(), tile.drawy(), link.drawx(), link.drawy())
<= laserRange * tilesize + (link.block().size - 1) * tilesize;
} }
return true;
}
return false;
}
protected boolean overlaps(Tile src, Tile other, float range){
return Intersector.overlaps(Tmp.cr1.set(src.drawx(), src.drawy(), range), other.getHitbox(Tmp.r1));
} }
protected void drawLaser(Tile tile, Tile target){ protected void drawLaser(Tile tile, Tile target){

View File

@@ -60,7 +60,7 @@ public class Fracker extends SolidPump{
public void update(Tile tile){ public void update(Tile tile){
FrackerEntity entity = tile.entity(); FrackerEntity entity = tile.entity();
if(entity.cons.valid() && entity.accumulator < itemUseTime){ if(entity.cons.valid()){
if(entity.accumulator >= itemUseTime){ if(entity.accumulator >= itemUseTime){
entity.cons.trigger(); entity.cons.trigger();
entity.accumulator -= itemUseTime; entity.accumulator -= itemUseTime;

View File

@@ -30,7 +30,7 @@ public class GenericCrafter extends Block{
protected LiquidStack outputLiquid; protected LiquidStack outputLiquid;
protected float craftTime = 80; protected float craftTime = 80;
protected Effect craftEffect = Fx.purify; protected Effect craftEffect = Fx.none;
protected Effect updateEffect = Fx.none; protected Effect updateEffect = Fx.none;
protected float updateEffectChance = 0.04f; protected float updateEffectChance = 0.04f;

View File

@@ -39,7 +39,7 @@ public class Separator extends Block{
hasItems = true; hasItems = true;
hasLiquids = true; hasLiquids = true;
liquidRegion = reg("liquid"); liquidRegion = reg("-liquid");
} }
@Override @Override

View File

@@ -44,7 +44,7 @@ public class UnitFactory extends Block{
protected float produceTime = 1000f; protected float produceTime = 1000f;
protected float launchVelocity = 0f; protected float launchVelocity = 0f;
protected TextureRegion topRegion; protected TextureRegion topRegion;
protected int maxSpawn = 2; protected int maxSpawn = 4;
protected int[] capacities; protected int[] capacities;
public UnitFactory(String name){ public UnitFactory(String name){
@@ -176,8 +176,8 @@ public class UnitFactory extends Block{
if(!tile.isEnemyCheat()){ if(!tile.isEnemyCheat()){
//player-made spawners have default behavior //player-made spawners have default behavior
if(entity.cons.valid()){ if(entity.cons.valid()){
entity.time += entity.delta() * entity.speedScl; entity.time += entity.delta() * entity.speedScl * Vars.state.rules.unitBuildSpeedMultiplier;
entity.buildTime += entity.delta() * entity.power.satisfaction; entity.buildTime += entity.delta() * entity.power.satisfaction * Vars.state.rules.unitBuildSpeedMultiplier;
entity.speedScl = Mathf.lerpDelta(entity.speedScl, 1f, 0.05f); entity.speedScl = Mathf.lerpDelta(entity.speedScl, 1f, 0.05f);
}else{ }else{
entity.speedScl = Mathf.lerpDelta(entity.speedScl, 0f, 0.05f); entity.speedScl = Mathf.lerpDelta(entity.speedScl, 0f, 0.05f);

View File

@@ -1,6 +1,5 @@
package io.anuke.mindustry.world.modules; package io.anuke.mindustry.world.modules;
import io.anuke.arc.util.Log;
import io.anuke.mindustry.entities.type.TileEntity; import io.anuke.mindustry.entities.type.TileEntity;
import io.anuke.mindustry.world.consumers.Consume; import io.anuke.mindustry.world.consumers.Consume;
@@ -22,10 +21,7 @@ public class ConsumeModule extends BlockModule{
optionalValid = true; optionalValid = true;
boolean docons = entity.block.shouldConsume(entity.tile); boolean docons = entity.block.shouldConsume(entity.tile);
Log.info("update begin: is valid");
for(Consume cons : entity.block.consumes.all()){ for(Consume cons : entity.block.consumes.all()){
Log.info("check cons {1}: {0}", cons, cons.valid(entity));
if(docons && cons.isUpdate() && prevValid && cons.valid(entity)){ if(docons && cons.isUpdate() && prevValid && cons.valid(entity)){
cons.update(entity); cons.update(entity);
} }

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