Compare commits
256 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
29be8176c1 | ||
|
|
67c6e0179f | ||
|
|
e3f2966db3 | ||
|
|
9e53b3b7e6 | ||
|
|
8f186a16b3 | ||
|
|
9a3b21d77a | ||
|
|
23fc86fac1 | ||
|
|
3d6fd8a351 | ||
|
|
3c51d82a1a | ||
|
|
b63501b1c7 | ||
|
|
810238d0f9 | ||
|
|
bb16d1c613 | ||
|
|
b8cb17c0c5 | ||
|
|
9ca3cd49b8 | ||
|
|
e6544b73db | ||
|
|
2e30cd31c2 | ||
|
|
e6078bd4f6 | ||
|
|
b0477394e6 | ||
|
|
699750762f | ||
|
|
ee3348d160 | ||
|
|
6dc2486ce0 | ||
|
|
724a0018b8 | ||
|
|
3b20c68a6f | ||
|
|
98206446e6 | ||
|
|
6e62859d0e | ||
|
|
1f1701f1d6 | ||
|
|
e6c99e0c6d | ||
|
|
e6c15b526a | ||
|
|
4de516b527 | ||
|
|
815a483d2c | ||
|
|
2816aeb6e9 | ||
|
|
f40e523764 | ||
|
|
8a424111f0 | ||
|
|
47922834f9 | ||
|
|
2a6b0fd0ce | ||
|
|
47e622dee3 | ||
|
|
99125e9218 | ||
|
|
66918f0322 | ||
|
|
b8a2c609cb | ||
|
|
968277477a | ||
|
|
d06b32c20b | ||
|
|
525dc0cd7e | ||
|
|
8b6fc7f3ac | ||
|
|
8dd66fb942 | ||
|
|
7e5c69a107 | ||
|
|
e4a95ab4c4 | ||
|
|
40dd3d5677 | ||
|
|
e39eceee28 | ||
|
|
ca29909bec | ||
|
|
869c329fbf | ||
|
|
c8b425116e | ||
|
|
0a290d2e10 | ||
|
|
9863cbc991 | ||
|
|
91c50ae126 | ||
|
|
dae46ceb6d | ||
|
|
6b3919e8f7 | ||
|
|
20637fa358 | ||
|
|
1d8ec9abd9 | ||
|
|
d3f58c0e83 | ||
|
|
84474040c0 | ||
|
|
3fe4ae38b6 | ||
|
|
465219540c | ||
|
|
0e354dbf23 | ||
|
|
d1563ee55e | ||
|
|
fa3a19d766 | ||
|
|
0d4add667f | ||
|
|
7f214f1343 | ||
|
|
e1ddf115e0 | ||
|
|
56f1d0548e | ||
|
|
38471d68d7 | ||
|
|
17a571f22a | ||
|
|
dd9c3fc8d6 | ||
|
|
a70e29127b | ||
|
|
6be2b6021b | ||
|
|
488147759a | ||
|
|
9a7d359626 | ||
|
|
0437d50a5c | ||
|
|
f49f151901 | ||
|
|
245e5d515a | ||
|
|
2b8c11c451 | ||
|
|
11d864f2b5 | ||
|
|
977b55bf32 | ||
|
|
b06be81f1e | ||
|
|
93313664f0 | ||
|
|
25cb2b0abf | ||
|
|
b841af3a48 | ||
|
|
709f43b83c | ||
|
|
aabc094dd9 | ||
|
|
58acc0a970 | ||
|
|
c874089f27 | ||
|
|
1cc73a4077 | ||
|
|
4ac26d86f5 | ||
|
|
a693289867 | ||
|
|
010e5341dc | ||
|
|
51790e0bf9 | ||
|
|
40b67349d9 | ||
|
|
735cb74483 | ||
|
|
bc55e43def | ||
|
|
084d7e8355 | ||
|
|
22e60612ac | ||
|
|
b271c4be32 | ||
|
|
f26b3358ef | ||
|
|
3d6390a76a | ||
|
|
ff20928bec | ||
|
|
59387389a4 | ||
|
|
fb200c6d11 | ||
|
|
8418770bbf | ||
|
|
eaa7b04c3d | ||
|
|
6131ef23fc | ||
|
|
1467a3a7fd | ||
|
|
b002d8b446 | ||
|
|
f5e06cca54 | ||
|
|
642b877ab0 | ||
|
|
2a618a6600 | ||
|
|
fa48f1b2e0 | ||
|
|
69063e9dc5 | ||
|
|
8ee3f2b2e6 | ||
|
|
40bf0741f0 | ||
|
|
6633b07fb2 | ||
|
|
e65971db47 | ||
|
|
5fd66d38bb | ||
|
|
15f33b45c7 | ||
|
|
17e66f1008 | ||
|
|
bcaf5e4c3d | ||
|
|
6fd36d97f0 | ||
|
|
61bec243dc | ||
|
|
7d43856735 | ||
|
|
9f8e1b93f1 | ||
|
|
058b2ddfce | ||
|
|
1637360952 | ||
|
|
38f4154d18 | ||
|
|
7ffbb93ba7 | ||
|
|
8004b6ce1d | ||
|
|
97254a6672 | ||
|
|
2282cb89b1 | ||
|
|
06929ee8f3 | ||
|
|
ec19381c4e | ||
|
|
7c79ee469e | ||
|
|
741e6b55b0 | ||
|
|
6f75116197 | ||
|
|
4a52392ce9 | ||
|
|
dcbe06229c | ||
|
|
075be1a862 | ||
|
|
143be734c5 | ||
|
|
ad6a3bf150 | ||
|
|
8d91a9b014 | ||
|
|
ecea8eab01 | ||
|
|
3db2fea32b | ||
|
|
335e7489ce | ||
|
|
ad71007a0a | ||
|
|
b595f7b175 | ||
|
|
e783ad8893 | ||
|
|
0ac54aba83 | ||
|
|
fc47e1cf16 | ||
|
|
37246becc2 | ||
|
|
58e45aa22d | ||
|
|
5952785199 | ||
|
|
ea377c6f16 | ||
|
|
0da32c969c | ||
|
|
b42e5c3b66 | ||
|
|
455e3188c4 | ||
|
|
fa150eb5f1 | ||
|
|
704b53a02e | ||
|
|
bf31a8c06b | ||
|
|
909dff7608 | ||
|
|
a8c22c1a99 | ||
|
|
ebf7cf859e | ||
|
|
3ef2c585a5 | ||
|
|
84765f696b | ||
|
|
925cc7318b | ||
|
|
9dba2389bb | ||
|
|
b707ef10f1 | ||
|
|
8f1d05b3e3 | ||
|
|
a84eb58d86 | ||
|
|
b6b550fc04 | ||
|
|
df7d856aae | ||
|
|
19638da99d | ||
|
|
e4266d22f5 | ||
|
|
22bd64508c | ||
|
|
b09dc47aad | ||
|
|
96b55c6b1c | ||
|
|
ac4a96eefb | ||
|
|
1b0d2dcdc0 | ||
|
|
cd7c90f1f6 | ||
|
|
3b991952b1 | ||
|
|
6fba84959c | ||
|
|
0662fd8427 | ||
|
|
55a929010e | ||
|
|
c6657109b1 | ||
|
|
0422cf79b2 | ||
|
|
3ce6a6dea4 | ||
|
|
09eed078cd | ||
|
|
2b22170318 | ||
|
|
589971a8c3 | ||
|
|
522a7f4728 | ||
|
|
06921b53be | ||
|
|
1372fc4079 | ||
|
|
07b12890e8 | ||
|
|
c014f86f2b | ||
|
|
aa2783a885 | ||
|
|
dbc0e6751b | ||
|
|
814065bf8e | ||
|
|
3e5d5e4064 | ||
|
|
139fa329d4 | ||
|
|
abdccbb1bd | ||
|
|
0e4ec86f34 | ||
|
|
67dcc28312 | ||
|
|
2d06495472 | ||
|
|
88535665e8 | ||
|
|
75744256f9 | ||
|
|
a0f1f52a8b | ||
|
|
b1ace4a7c9 | ||
|
|
8214188215 | ||
|
|
07ddf806ac | ||
|
|
8bd2b9b45c | ||
|
|
4e9b07d8e2 | ||
|
|
a7aad1a1f9 | ||
|
|
f71b726877 | ||
|
|
e700ef179e | ||
|
|
ffcda6d246 | ||
|
|
4d113a6aac | ||
|
|
a6d1ac0b86 | ||
|
|
637cca2e66 | ||
|
|
72136ebea3 | ||
|
|
ce045a470a | ||
|
|
647911725b | ||
|
|
61582fed3a | ||
|
|
07893eee9c | ||
|
|
15ef32447c | ||
|
|
aef6ac4335 | ||
|
|
ef2ff385b8 | ||
|
|
d63efb1ff0 | ||
|
|
f4c69372c9 | ||
|
|
16adbd667d | ||
|
|
dd9b85f79b | ||
|
|
c468bdef6d | ||
|
|
97c3d36bae | ||
|
|
9033683e15 | ||
|
|
1c48bc786b | ||
|
|
7612a22480 | ||
|
|
f07a108410 | ||
|
|
31d401340c | ||
|
|
c3df430a4e | ||
|
|
babb6616ef | ||
|
|
071d98dbfa | ||
|
|
9fe01eec38 | ||
|
|
73955611d1 | ||
|
|
f56c944329 | ||
|
|
7affde5a2e | ||
|
|
4a46baecae | ||
|
|
e9f7ba5f41 | ||
|
|
775b3592a3 | ||
|
|
59a7b584fb | ||
|
|
3055485e17 | ||
|
|
bd992b4612 | ||
|
|
56fece1a30 |
5
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@@ -17,11 +17,14 @@ assignees: ''
|
|||||||
|
|
||||||
**Link(s) to mod(s) used**: *The mod repositories or zip files that are related to the issue, if applicable.*
|
**Link(s) to mod(s) used**: *The mod repositories or zip files that are related to the issue, if applicable.*
|
||||||
|
|
||||||
**Save file**: *The (zipped) save file you were playing on when the bug happened. THIS IS REQUIRED FOR ANY ISSUE HAPPENING IN-GAME, REGARDLESS OF WHETHER YOU THINK IT HAPPENS EVERYWHERE. DO NOT DELETE OR OMIT THIS LINE UNLESS YOU ARE SURE THAT THE ISSUE DOES NOT HAPPEN IN-GAME.*
|
**Save file**: *The (zipped) save file you were playing on when the bug happened. THIS IS REQUIRED FOR ANY ISSUE HAPPENING IN-GAME OR IN MULTIPLAYER, REGARDLESS OF WHETHER YOU THINK IT HAPPENS EVERYWHERE. DO NOT DELETE OR OMIT THIS LINE UNLESS YOU ARE SURE THAT THE ISSUE DOES NOT HAPPEN IN-GAME.*
|
||||||
|
|
||||||
|
If you remove the line above without reading it properly and understanding what it means, I will reap your soul. Even if you're playing on someone's server, you can still save the game to a slot.
|
||||||
|
|
||||||
**Crash report**: *The contents of relevant crash report files. REQUIRED if you are reporting a crash.*
|
**Crash report**: *The contents of relevant crash report files. REQUIRED if you are reporting a crash.*
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
*Place an X (no spaces) between the brackets to confirm that you have read the line below.*
|
*Place an X (no spaces) between the brackets to confirm that you have read the line below.*
|
||||||
|
- [ ] **I have updated to the latest release (https://github.com/Anuken/Mindustry/releases) to make sure my issue has not been fixed.**
|
||||||
- [ ] **I have searched the closed and open issues to make sure that this problem has not already been reported.**
|
- [ ] **I have searched the closed and open issues to make sure that this problem has not already been reported.**
|
||||||
|
|||||||
63
.github/workflows/deployment.yml
vendored
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
name: Deployment
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- 'v*'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
buildJava14:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: Set up JDK 14
|
||||||
|
uses: actions/setup-java@v1
|
||||||
|
with:
|
||||||
|
java-version: 14
|
||||||
|
- name: Set env
|
||||||
|
run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
|
||||||
|
- name: Create artifacts
|
||||||
|
run: |
|
||||||
|
./gradlew desktop:dist server:dist core:javadoc -Pbuildversion=${RELEASE_VERSION:1}
|
||||||
|
- name: Update docs
|
||||||
|
run: |
|
||||||
|
cd ../
|
||||||
|
git config --global user.email "cli@github.com"
|
||||||
|
git config --global user.name "Github Actions"
|
||||||
|
git clone --depth=1 https://github.com/MindustryGame/docs.git
|
||||||
|
cp -a Mindustry/core/build/docs/javadoc/. docs/
|
||||||
|
cd docs
|
||||||
|
git add .
|
||||||
|
git commit -m "Update ${RELEASE_VERSION:1}"
|
||||||
|
git push https://Anuken:${{ secrets.API_TOKEN_GITHUB }}@github.com/MindustryGame/docs
|
||||||
|
cd ../Mindustry
|
||||||
|
- name: Add Arc release
|
||||||
|
run: |
|
||||||
|
git clone --depth=1 --branch=master https://github.com/Anuken/Arc ../Arc
|
||||||
|
cd ../Arc
|
||||||
|
git tag ${RELEASE_VERSION}
|
||||||
|
git push https://Anuken:${{ secrets.API_TOKEN_GITHUB }}@github.com/Anuken/Arc ${RELEASE_VERSION};
|
||||||
|
cd ../Mindustry
|
||||||
|
- name: Update F-Droid build string
|
||||||
|
run: |
|
||||||
|
git clone --depth=1 --branch=master https://github.com/Anuken/MindustryBuilds ../MindustryBuilds
|
||||||
|
cd ../MindustryBuilds
|
||||||
|
echo "Updating version to ${RELEASE_VERSION:1}"
|
||||||
|
echo versionName=6-fdroid-${RELEASE_VERSION:1}$'\n'versionCode=${RELEASE_VERSION:1} > version_fdroid.txt
|
||||||
|
git add .
|
||||||
|
git commit -m "Updating to build ${RELEASE_VERSION:1}"
|
||||||
|
cd ../Mindustry
|
||||||
|
- name: Upload client artifacts
|
||||||
|
uses: svenstaro/upload-release-action@v2
|
||||||
|
with:
|
||||||
|
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
file: desktop/build/libs/Mindustry.jar
|
||||||
|
tag: ${{ github.ref }}
|
||||||
|
- name: Upload server artifacts
|
||||||
|
uses: svenstaro/upload-release-action@v2
|
||||||
|
with:
|
||||||
|
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
file: server/build/libs/server-release.jar
|
||||||
|
tag: ${{ github.ref }}
|
||||||
|
|
||||||
27
.github/workflows/gradle.yml
vendored
@@ -1,27 +0,0 @@
|
|||||||
name: Java CI
|
|
||||||
|
|
||||||
on: [push, pull_request]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
buildJava14:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v1
|
|
||||||
- name: Set up JDK 14
|
|
||||||
uses: actions/setup-java@v1
|
|
||||||
with:
|
|
||||||
java-version: 14
|
|
||||||
- name: Run unit tests with gradle and Java 14
|
|
||||||
run: ./gradlew compileJava
|
|
||||||
buildJava15:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v1
|
|
||||||
- name: Set up JDK 15
|
|
||||||
uses: actions/setup-java@v1
|
|
||||||
with:
|
|
||||||
java-version: 15
|
|
||||||
- name: Run unit tests with gradle and Java 15
|
|
||||||
run: ./gradlew compileJava
|
|
||||||
21
.github/workflows/pr.yml
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
name: Pull Request Tests
|
||||||
|
|
||||||
|
on: [pull_request]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
buildJava14:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: Set up JDK 14
|
||||||
|
uses: actions/setup-java@v1
|
||||||
|
with:
|
||||||
|
java-version: 14
|
||||||
|
- name: Run unit tests and build JAR
|
||||||
|
run: ./gradlew test desktop:dist
|
||||||
|
- name: Upload desktop JAR for testing
|
||||||
|
uses: actions/upload-artifact@v2
|
||||||
|
with:
|
||||||
|
name: Desktop JAR (zipped)
|
||||||
|
path: desktop/build/libs/Mindustry.jar
|
||||||
25
.github/workflows/push.yml
vendored
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
name: Tests
|
||||||
|
|
||||||
|
on: [push, workflow_dispatch]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
buildJava14:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: Set up JDK 14
|
||||||
|
uses: actions/setup-java@v1
|
||||||
|
with:
|
||||||
|
java-version: 14
|
||||||
|
- name: Run unit tests
|
||||||
|
run: ./gradlew test
|
||||||
|
- name: Trigger BE build
|
||||||
|
if: ${{ github.repository == 'Anuken/Mindustry' }}
|
||||||
|
run: |
|
||||||
|
git clone --depth=1 --branch=master https://github.com/Anuken/MindustryBuilds ../MindustryBuilds
|
||||||
|
cd ../MindustryBuilds
|
||||||
|
BNUM=$(($GITHUB_RUN_NUMBER + 20000))
|
||||||
|
git tag ${BNUM}
|
||||||
|
git config --global user.name "Build Uploader"
|
||||||
|
git push https://Anuken:${{ secrets.API_TOKEN_GITHUB }}@github.com/Anuken/MindustryBuilds ${BNUM}
|
||||||
50
.travis.yml
@@ -1,50 +0,0 @@
|
|||||||
jdk:
|
|
||||||
- openjdk14
|
|
||||||
dist: xenial
|
|
||||||
android:
|
|
||||||
components:
|
|
||||||
- android-29
|
|
||||||
- build-tools-29.0.3
|
|
||||||
|
|
||||||
script:
|
|
||||||
- git clone --depth=1 --branch=master https://github.com/Anuken/MindustryBuilds ../MindustryBuilds
|
|
||||||
- cd ../MindustryBuilds
|
|
||||||
- echo ${TRAVIS_TAG}
|
|
||||||
- if [ -n "$TRAVIS_TAG" ]; then echo versionName=6-fdroid-${TRAVIS_TAG:1}$'\n'versionCode=${TRAVIS_TAG:1} > version_fdroid.txt; git add .; git commit -m "Updating to build ${TRAVIS_TAG}"; fi
|
|
||||||
- git tag ${TRAVIS_BUILD_NUMBER}
|
|
||||||
- git config --global user.name "Build Uploader"
|
|
||||||
- if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then git push https://Anuken:${GH_PUSH_TOKEN}@github.com/Anuken/MindustryBuilds ${TRAVIS_BUILD_NUMBER}; git push https://Anuken:${GH_PUSH_TOKEN}@github.com/Anuken/MindustryBuilds; fi
|
|
||||||
- cd ../Mindustry
|
|
||||||
- git clone --depth=1 --branch=master https://github.com/Anuken/Arc ../Arc
|
|
||||||
- if [ -n "$TRAVIS_TAG" ]; then cd ../Arc; git tag ${TRAVIS_TAG}; git push https://Anuken:${GH_PUSH_TOKEN}@github.com/Anuken/Arc ${TRAVIS_TAG}; cd ../Mindustry; fi
|
|
||||||
- "./gradlew test"
|
|
||||||
- "./gradlew desktop:dist -Pbuildversion=${TRAVIS_TAG:1}"
|
|
||||||
- "./gradlew server:dist -Pbuildversion=${TRAVIS_TAG:1}"
|
|
||||||
- "./gradlew core:javadoc"
|
|
||||||
- cd ../
|
|
||||||
- git clone --depth=1 https://github.com/MindustryGame/docs.git
|
|
||||||
- cp -a Mindustry/core/build/docs/javadoc/. docs/
|
|
||||||
- cd docs
|
|
||||||
- if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then git add .; git commit -m "Update ${TRAVIS_BUILD_NUMBER}"; git push https://Anuken:${GH_PUSH_TOKEN}@github.com/MindustryGame/docs; fi
|
|
||||||
- cd ../Mindustry
|
|
||||||
deploy:
|
|
||||||
- provider: releases
|
|
||||||
cleanup: false
|
|
||||||
draft: false
|
|
||||||
api_key:
|
|
||||||
secure: Cv5wFtWt62/A24EvSEQvMow7gKPbZ3oATEFPuSghhB2TQz1dA40Zee3Qvk4LFlpLrhYo4K0ZSczCZRGpR+hCd8+Dpww52bheYEvWuh3ZQfvu/fXtEx2j5PwP1qMpmIgSxETV/gkD7l9FImdh0VzktYiAvQfmi0bEocG9/D4QwjFpNat7iwBdcMiw1MvAygpdIWRsjiw0RKlB2mWarmoHhQ7Gu7qlU3j50uaEvcrtmU0pBUPggNQwQRv32i9NPvNFxrqqlUjDLIS8JFea99zCkp8BwYqbEvBIMzd+Qip1/stLJJA3+cDUClbsDtg8rAVetzpOrdLEEBmqShFe5MDl2yEHcsgpN9CFsyTaUfvB3P3rVjizvycMm42IsUkXQiarm5xTQ/TIA8Rd8AHiSKuweNCg1Fd5SFaRtKy8JVLXuxyfUccmyje6hhz2L4lS2Wfj3mAG7sqZUCXhWP79EKdGkiPOjKv4CwXEKmuH3BMVqPlNUZJr9Eg3sV1FG0h2l+MVOOnR635qdUbb49sYojYxVruMLX0BH1c4ZCu230m8CUoWA1Em1QNI75ya7+9Y5T6AsgWDVpBvdUo9fWNbdp+VQ0GskFQsJD5wtnxbcbHeFiERAgGBm7z6qt9u9LrQpBH+dsW52ADvYsu3L4nQEa+sdMHwTTwmGY+iUvsxu0DqxGg=
|
|
||||||
file:
|
|
||||||
- desktop/build/libs/Mindustry.jar
|
|
||||||
- server/build/libs/server-release.jar
|
|
||||||
on:
|
|
||||||
repo: Anuken/Mindustry
|
|
||||||
tags: true
|
|
||||||
#- provider: script
|
|
||||||
# script: bash update_wiki.sh
|
|
||||||
# on:
|
|
||||||
# repo: Anuken/Mindustry
|
|
||||||
# tags: true
|
|
||||||
env:
|
|
||||||
global:
|
|
||||||
- secure: TqlUl/ojjkCMVOGbCTKz7Cnr4F08UyWzY/CiJ0vvUOGJGZ1qm7XavAlDf5XT0egU4mvr37THubFO8vojbqmrmy0oZnYh3njKFA8axgyZ8PyKkjGHOfd0i6qyEWsOr9H90/2X8r3LwEeLaDFyHpu3wljIGBjweg53g2qwmDwCFa9UR80FJZ+xDB+rD6B3cXT0DTEkCoLZXLqXm0Y3HvBdSuBL1LR/FNb2BSxNq+tNLGiz1kdQZV5erausbbZypBoGxzz63xAnyz2kkFz73A8xQYVTzGbFodTPz7HM13GVZ5s43I03Y+HYyHBgBaSLziO2hi2kzVJccOwzBp7wS4fs1MqsFY5+IeWJ9k+hm89NiYT7+6zlEgoUMlIniny1qLqWTzx7btUeuC/y/h5TVBNgaV+z0jmHycHfeSyq5I+vmX4J8qe3wmaN8TcdqYKU5nIznOTk3CM5Fzu0Bs9vkCkOxmormmcjMFW1RbdOLc/hpZWZggsBA88sNEAI8eq+r5QEeqzeCx8YKoZDjdrsqvgLMc3El3gS9oMGxkn0Y/TEcqs9Tc4BXtTkqIA68hD0DYzlAxYjVbbkAI9Hh9lHNvV3Dr/oCkGXQ/HflM143kj1L3tSBZpqeqQE2XhngB5nqpS3OZTmZbMTQ8qD2luU18yaTGMLF5tJS/fdKPRx0gQ1kL8=
|
|
||||||
- secure: VEskj/0TVX2o7iUVXuVPysj/VSWmPhDl57SrT7/nBNN/P/8N5jFAvx8PMzG7qT0S5FzKxuV20psE4WylUGRKdeRtK7/QNBV7T3YqYYM6BUB1VeRpxe5hLxTeuBK3izglFO8DkdDqjUtzQSjzkoYT75ilROjhBrBUPhVek7UlbBHbaklPWYFXHnJmYS1FpZTdzqIj+Y0Gd1PSL2MzK4X74aAHl0qaDgsTwYwtKs7IAz+kFaTZBRpi9VjQHAFhDlkDR3jo9wQjH8/F6x0lCgV/FulSc37Okdb40sLFG98xcEA6gWh1NPMkz8CulUdVE7mj7SJNxLbNvoMNrWOVRjmEsn59p/9LiNC1F9ncFz9vjQjAmi7rMFFGHGxe5nn8cIAkpTvHQQkZoWHAA9SNJTDMMf09m2pRy/vvzx+a6NVxyC9iNrhLlnBg4gxAqRh0S6NU0uL+fuygKixn7rqlnb7KMT7bAbfcuV+dng6c8V7hYKDCh7sJbH8iJump1xkwoM7ecnU8fxJF/oKOr/fbk0Bfxu+Q9qYLrV1+DEdm93Vl2Thq+DBKmI66jRGSva6HeCLFo81PEiEjP1nLv75+kvVfOqVqJrZD1BrvoG2eWT/3hVLrN2kEIWWlpvQVC7FL11yWmYtAuOBh/vfhI76zKr+YTS6ccG9rqW4XeYjJytshe8M=
|
|
||||||
@@ -61,5 +61,5 @@ Post feature requests and feedback [here](https://github.com/Anuken/Mindustry-Su
|
|||||||
|
|
||||||
## Downloads
|
## Downloads
|
||||||
|
|
||||||
| [](https://anuke.itch.io/mindustry) | [](https://play.google.com/store/apps/details?id=io.anuke.mindustry) | [](https://f-droid.org/packages/io.anuke.mindustry) | [](https://flathub.org/apps/details/com.github.Anuken.Mindustry) |
|
| [](https://anuke.itch.io/mindustry) | [](https://play.google.com/store/apps/details?id=io.anuke.mindustry) | [](https://f-droid.org/packages/io.anuke.mindustry) | [](https://flathub.org/apps/details/com.github.Anuken.Mindustry)
|
||||||
|--- |--- |--- |--- |
|
|--- |--- |--- |--- |
|
||||||
|
|||||||
@@ -35,7 +35,8 @@ dependencies{
|
|||||||
natives "com.github.Anuken.Arc:natives-box2d-android:${getArcHash()}"
|
natives "com.github.Anuken.Arc:natives-box2d-android:${getArcHash()}"
|
||||||
|
|
||||||
//android dependencies magically disappear during compilation, thanks gradle!
|
//android dependencies magically disappear during compilation, thanks gradle!
|
||||||
if(new File(projectDir.parent, '../Arc').exists()) compileOnly fileTree(dir: '../../Arc/backends/backend-android/libs', include: ['*.jar'])
|
def sdkFile = new File((String)findSdkDir(), "/platforms/android-29/android.jar")
|
||||||
|
if(sdkFile.exists()) compileOnly files(sdkFile.absolutePath)
|
||||||
}
|
}
|
||||||
|
|
||||||
task deploy(type: Copy){
|
task deploy(type: Copy){
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ public class AssetsProcess extends BaseProcessor{
|
|||||||
String name = Strings.kebabToCamel(split[1]).replace("Medium", "").replace("Icon", "");
|
String name = Strings.kebabToCamel(split[1]).replace("Medium", "").replace("Icon", "");
|
||||||
if(SourceVersion.isKeyword(name) || name.equals("char")) name += "i";
|
if(SourceVersion.isKeyword(name) || name.equals("char")) name += "i";
|
||||||
|
|
||||||
ichtype.addField(FieldSpec.builder(char.class, name, Modifier.PUBLIC, Modifier.STATIC, Modifier.FINAL).initializer("(char)" + key).build());
|
ichtype.addField(FieldSpec.builder(char.class, name, Modifier.PUBLIC, Modifier.STATIC, Modifier.FINAL).addJavadoc(String.format("\\u%04x", Integer.parseInt(key))).initializer("'" + ((char)Integer.parseInt(key)) + "'").build());
|
||||||
});
|
});
|
||||||
|
|
||||||
ictype.addField(FieldSpec.builder(ParameterizedTypeName.get(ObjectMap.class, String.class, TextureRegionDrawable.class),
|
ictype.addField(FieldSpec.builder(ParameterizedTypeName.get(ObjectMap.class, String.class, TextureRegionDrawable.class),
|
||||||
@@ -64,7 +64,7 @@ public class AssetsProcess extends BaseProcessor{
|
|||||||
|
|
||||||
int code = val.getInt("code", 0);
|
int code = val.getInt("code", 0);
|
||||||
iconcAll.append((char)code);
|
iconcAll.append((char)code);
|
||||||
ichtype.addField(FieldSpec.builder(char.class, name, Modifier.PUBLIC, Modifier.STATIC, Modifier.FINAL).initializer("(char)" + code).build());
|
ichtype.addField(FieldSpec.builder(char.class, name, Modifier.PUBLIC, Modifier.STATIC, Modifier.FINAL).addJavadoc(String.format("\\u%04x", code)).initializer("'" + ((char)code) + "'").build());
|
||||||
ichinit.addStatement("codes.put($S, $L)", name, code);
|
ichinit.addStatement("codes.put($S, $L)", name, code);
|
||||||
|
|
||||||
ictype.addField(TextureRegionDrawable.class, name + "Small", Modifier.PUBLIC, Modifier.STATIC);
|
ictype.addField(TextureRegionDrawable.class, name + "Small", Modifier.PUBLIC, Modifier.STATIC);
|
||||||
|
|||||||
11
build.gradle
@@ -99,6 +99,17 @@ allprojects{
|
|||||||
return project.ext.mainClassName.substring(0, project.ext.mainClassName.indexOf("desktop") - 1)
|
return project.ext.mainClassName.substring(0, project.ext.mainClassName.indexOf("desktop") - 1)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
findSdkDir = {
|
||||||
|
//null because IntelliJ doesn't get env variables
|
||||||
|
def v = System.getenv("ANDROID_HOME")
|
||||||
|
if(v != null) return v
|
||||||
|
//rootDir is null here, amazing. brilliant.
|
||||||
|
def file = new File("local.properties")
|
||||||
|
if(!file.exists()) file = new File("../local.properties")
|
||||||
|
def props = new Properties().with{p -> p.load(file.newReader()); return p }
|
||||||
|
return props.get("sdk.dir")
|
||||||
|
}
|
||||||
|
|
||||||
generateLocales = {
|
generateLocales = {
|
||||||
def output = 'en\n'
|
def output = 'en\n'
|
||||||
def bundles = new File(project(':core').projectDir, 'assets/bundles/')
|
def bundles = new File(project(':core').projectDir, 'assets/bundles/')
|
||||||
|
|||||||
55
core/assets-raw/fontgen/extra/planet.svg
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
width="16"
|
||||||
|
height="16"
|
||||||
|
version="1.1"
|
||||||
|
id="svg542"
|
||||||
|
sodipodi:docname="planet.svg"
|
||||||
|
inkscape:version="1.0.1 (0767f8302a, 2020-10-17)">
|
||||||
|
<metadata
|
||||||
|
id="metadata548">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
<dc:title></dc:title>
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<defs
|
||||||
|
id="defs546" />
|
||||||
|
<sodipodi:namedview
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1"
|
||||||
|
objecttolerance="10"
|
||||||
|
gridtolerance="10"
|
||||||
|
guidetolerance="10"
|
||||||
|
inkscape:pageopacity="0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:window-width="2560"
|
||||||
|
inkscape:window-height="1316"
|
||||||
|
id="namedview544"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:pagecheckerboard="true"
|
||||||
|
inkscape:zoom="15.75"
|
||||||
|
inkscape:cx="-16.385458"
|
||||||
|
inkscape:cy="16.16535"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="27"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="svg542" />
|
||||||
|
<path
|
||||||
|
id="polygon2"
|
||||||
|
style="fill:#ffffff"
|
||||||
|
d="M 5.5 0 L 5 0.5 L 4.5 1 L 3.5 1 L 3 1.5 L 2.5 2 L 2 2.5 L 1.5 3 L 1 3.5 L 1 4.5 L 0.5 5 L 0 5.5 L 0 6.5 L 0 7.5 L 0 8.5 L 0 9.5 L 0 10.5 L 0.5 11 L 1 11.5 L 1 12.5 L 1.5 13 L 2 13.5 L 2.5 14 L 3 14.5 L 3.5 15 L 4.5 15 L 5 15.5 L 5.5 16 L 6.5 16 L 7.5 16 L 8.5 16 L 9.5 16 L 10.5 16 L 11 15.5 L 11.5 15 L 12.5 15 L 13 14.5 L 13.5 14 L 14 13.5 L 14.5 13 L 15 12.5 L 15 11.5 L 15.5 11 L 16 10.5 L 16 9.5 L 16 8.5 L 16 7.5 L 16 6.5 L 16 5.5 L 15.5 5 L 15 4.5 L 15 3.5 L 14.5 3 L 14 2.5 L 13.5 2 L 13 1.5 L 12.5 1 L 11.5 1 L 11 0.5 L 10.5 0 L 9.5 0 L 8.5 0 L 7.5 0 L 6.5 0 L 5.5 0 z M 6.5 1 L 7 1.5 L 7.5 2 L 8.5 2 L 9 2.5 L 9 3.5 L 9.5 4 L 10 4.5 L 10.5 5 L 11 5.5 L 11.5 6 L 12.5 6 L 13.5 6 L 14.5 6 L 15 6.5 L 15 7.5 L 15 8.5 L 15 9.5 L 14.5 10 L 14 10.5 L 14 11.5 L 13.5 12 L 13 12.5 L 12.5 13 L 12 13.5 L 11.5 14 L 10.5 14 L 10 14.5 L 9.5 15 L 8.5 15 L 8 14.5 L 7.5 14 L 7 13.5 L 7 12.5 L 7.5 12 L 8 11.5 L 8.5 11 L 9 10.5 L 9 9.5 L 9 8.5 L 8.5 8 L 8 7.5 L 7.5 7 L 6.5 7 L 5.5 7 L 4.5 7 L 4 7.5 L 3.5 8 L 3 8.5 L 2.5 9 L 2 9.5 L 1.5 10 L 1 9.5 L 1 8.5 L 1 7.5 L 1 6.5 L 1.5 6 L 2 5.5 L 2 4.5 L 2.5 4 L 3 3.5 L 3.5 3 L 4 2.5 L 4.5 2 L 5.5 2 L 6 1.5 L 6.5 1 z M 11.5 9 L 11 9.5 L 11 10.5 L 11.5 11 L 12.5 11 L 13 10.5 L 13 9.5 L 12.5 9 L 11.5 9 z " />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.7 KiB |
BIN
core/assets-raw/icons/planet.png
Normal file
|
After Width: | Height: | Size: 578 B |
BIN
core/assets-raw/sprites/blocks/props/basalt-boulder1.png
Normal file
|
After Width: | Height: | Size: 682 B |
BIN
core/assets-raw/sprites/blocks/props/basalt-boulder2.png
Normal file
|
After Width: | Height: | Size: 683 B |
@@ -1,2 +1,3 @@
|
|||||||
mschxœ-‹k
|
mschxњ-Ќ‹
|
||||||
1„ÇMÅîуôPÅ
|
В0EoЧКєўТЏЄ®И ¶Ґ«Ёџ.CfІJ‡<N‚З*Ш»Г<C2BB>lцЮѕ–иmЖ0№ељзTжЂN)>]6!NОРьж0,‚)Ь‡&ЩІЌцbKqщЌу~И$њя+А‘Vh¶•т№} ¶U
|
||||||
|
кwZР'И;¤$ґ]СUфґ…]P,(І»Љ‘ЎkҐ№ъЕ¶,e
|
||||||
@@ -22,9 +22,8 @@ gameover.pvp = The[accent] {0}[] team is victorious!
|
|||||||
gameover.waiting = [accent]Waiting for next map...
|
gameover.waiting = [accent]Waiting for next map...
|
||||||
highscore = [accent]New highscore!
|
highscore = [accent]New highscore!
|
||||||
copied = Copied.
|
copied = Copied.
|
||||||
indev.popup = [accent]v6[] is currently in [accent]beta[].\n[lightgray]This means:[]\n[scarlet]- The campaign is unfinished[]\n- Everything you see is subject to change or removal.\n\nReport bugs or crashes on [accent]Github[].
|
|
||||||
indev.notready = This part of the game isn't ready yet
|
indev.notready = This part of the game isn't ready yet
|
||||||
indev.campaign = [accent]You've reached the end of the campaign![]\n\nThis is as far as the content goes. Interplanetary travel will be added in future updates.
|
indev.campaign = [accent]Congratulations! You've reached the end of the campaign![]\n\nThis is as far as the content goes right now. Interplanetary travel will be added in future updates.
|
||||||
|
|
||||||
load.sound = Sounds
|
load.sound = Sounds
|
||||||
load.map = Maps
|
load.map = Maps
|
||||||
@@ -147,8 +146,12 @@ planetmap = Planet Map
|
|||||||
launchcore = Launch Core
|
launchcore = Launch Core
|
||||||
filename = File Name:
|
filename = File Name:
|
||||||
unlocked = New content unlocked!
|
unlocked = New content unlocked!
|
||||||
|
available = New research available!
|
||||||
completed = [accent]Completed
|
completed = [accent]Completed
|
||||||
techtree = Tech Tree
|
techtree = Tech Tree
|
||||||
|
research.legacy = [accent]5.0[] research data found.\nDo you want to [accent]load this data[], or [accent]discard it[] and restart research in the new campaign (recommended)?
|
||||||
|
research.load = Load
|
||||||
|
research.discard = Discard
|
||||||
research.list = [lightgray]Research:
|
research.list = [lightgray]Research:
|
||||||
research = Research
|
research = Research
|
||||||
researched = [lightgray]{0} researched.
|
researched = [lightgray]{0} researched.
|
||||||
@@ -230,6 +233,7 @@ disconnect.timeout = Timed out.
|
|||||||
disconnect.data = Failed to load world data!
|
disconnect.data = Failed to load world data!
|
||||||
cantconnect = Unable to join game ([accent]{0}[]).
|
cantconnect = Unable to join game ([accent]{0}[]).
|
||||||
connecting = [accent]Connecting...
|
connecting = [accent]Connecting...
|
||||||
|
reconnecting = [accent]Reconnecting...
|
||||||
connecting.data = [accent]Loading world data...
|
connecting.data = [accent]Loading world data...
|
||||||
server.port = Port:
|
server.port = Port:
|
||||||
server.addressinuse = Address already in use!
|
server.addressinuse = Address already in use!
|
||||||
@@ -497,10 +501,10 @@ requirement.produce = Produce {0}
|
|||||||
requirement.capture = Capture {0}
|
requirement.capture = Capture {0}
|
||||||
launch.text = Launch
|
launch.text = Launch
|
||||||
research.multiplayer = Only the host can research items.
|
research.multiplayer = Only the host can research items.
|
||||||
|
map.multiplayer = Only the host can view sectors.
|
||||||
uncover = Uncover
|
uncover = Uncover
|
||||||
configure = Configure Loadout
|
configure = Configure Loadout
|
||||||
|
|
||||||
#TODO
|
|
||||||
loadout = Loadout
|
loadout = Loadout
|
||||||
resources = Resources
|
resources = Resources
|
||||||
bannedblocks = Banned Blocks
|
bannedblocks = Banned Blocks
|
||||||
@@ -508,12 +512,6 @@ addall = Add All
|
|||||||
launch.from = Launching From: [accent]{0}
|
launch.from = Launching From: [accent]{0}
|
||||||
launch.destination = Destination: {0}
|
launch.destination = Destination: {0}
|
||||||
configure.invalid = Amount must be a number between 0 and {0}.
|
configure.invalid = Amount must be a number between 0 and {0}.
|
||||||
zone.unlocked = [lightgray]{0} unlocked.
|
|
||||||
zone.requirement.complete = Requirement for {0} completed:[lightgray]\n{1}
|
|
||||||
zone.resources = [lightgray]Resources Detected:
|
|
||||||
zone.objective = [lightgray]Objective: [accent]{0}
|
|
||||||
zone.objective.survival = Survive
|
|
||||||
zone.objective.attack = Destroy Enemy Core
|
|
||||||
add = Add...
|
add = Add...
|
||||||
boss.health = Guardian Health
|
boss.health = Guardian Health
|
||||||
|
|
||||||
@@ -547,8 +545,13 @@ sectors.launch = Launch
|
|||||||
sectors.select = Select
|
sectors.select = Select
|
||||||
sectors.nonelaunch = [lightgray]none (sun)
|
sectors.nonelaunch = [lightgray]none (sun)
|
||||||
sectors.rename = Rename Sector
|
sectors.rename = Rename Sector
|
||||||
|
sectors.enemybase = [scarlet]Enemy Base
|
||||||
|
sectors.vulnerable = [scarlet]Vulnerable
|
||||||
|
sectors.underattack = [scarlet]Under attack! [accent]{0}% damaged
|
||||||
|
sectors.survives = [accent]Survives {0} waves
|
||||||
|
sectors.go = Go
|
||||||
sector.curcapture = Sector Captured
|
sector.curcapture = Sector Captured
|
||||||
|
sector.curlost = Sector Lost
|
||||||
sector.missingresources = [scarlet]Insufficient Core Resources
|
sector.missingresources = [scarlet]Insufficient Core Resources
|
||||||
sector.attacked = Sector [accent]{0}[white] under attack!
|
sector.attacked = Sector [accent]{0}[white] under attack!
|
||||||
sector.lost = Sector [accent]{0}[white] lost!
|
sector.lost = Sector [accent]{0}[white] lost!
|
||||||
@@ -589,11 +592,16 @@ sector.saltFlats.description = On the outskirts of the desert lie the Salt Flats
|
|||||||
sector.craters.description = Water has accumulated in this crater, relic of the old wars. Reclaim the area. Collect sand. Smelt metaglass. Pump water to cool turrets and drills.
|
sector.craters.description = Water has accumulated in this crater, relic of the old wars. Reclaim the area. Collect sand. Smelt metaglass. Pump water to cool turrets and drills.
|
||||||
sector.ruinousShores.description = Past the wastes, is the shoreline. Once, this location housed a coastal defense array. Not much of it remains. Only the most basic defense structures have remained unscathed, everything else reduced to scrap.\nContinue the expansion outwards. Rediscover the technology.
|
sector.ruinousShores.description = Past the wastes, is the shoreline. Once, this location housed a coastal defense array. Not much of it remains. Only the most basic defense structures have remained unscathed, everything else reduced to scrap.\nContinue the expansion outwards. Rediscover the technology.
|
||||||
sector.stainedMountains.description = Further inland lie the mountains, yet untainted by spores.\nExtract the abundant titanium in this area. Learn how to use it.\n\nThe enemy presence is greater here. Do not give them time to send their strongest units.
|
sector.stainedMountains.description = Further inland lie the mountains, yet untainted by spores.\nExtract the abundant titanium in this area. Learn how to use it.\n\nThe enemy presence is greater here. Do not give them time to send their strongest units.
|
||||||
sector.overgrowth.description = This area is overgrown, closer to the source of the spores.\nThe enemy has established an outpost here. Build Titan units. Destroy it. Reclaim that which was lost.
|
sector.overgrowth.description = This area is overgrown, closer to the source of the spores.\nThe enemy has established an outpost here. Build Mace units. Destroy it.
|
||||||
sector.tarFields.description = The outskirts of an oil production zone, between the mountains and desert. One of the few areas with usable tar reserves.\nAlthough abandoned, this area has some dangerous enemy forces nearby. Do not underestimate them.\n\n[lightgray]Research oil processing technology if possible.
|
sector.tarFields.description = The outskirts of an oil production zone, between the mountains and desert. One of the few areas with usable tar reserves.\nAlthough abandoned, this area has some dangerous enemy forces nearby. Do not underestimate them.\n\n[lightgray]Research oil processing technology if possible.
|
||||||
sector.desolateRift.description = An extremely dangerous zone. Plentiful resources, but little space. High risk of destruction. Leave as soon as possible. Do not be fooled by the long spacing between enemy attacks.
|
sector.desolateRift.description = An extremely dangerous zone. Plentiful resources, but little space. High risk of destruction. Leave as soon as possible. Do not be fooled by the long spacing between enemy attacks.
|
||||||
sector.nuclearComplex.description = A former facility for the production and processing of thorium, reduced to ruins.\n[lightgray]Research the thorium and its many uses.\n\nThe enemy is present here in great numbers, constantly scouting for attackers.
|
sector.nuclearComplex.description = A former facility for the production and processing of thorium, reduced to ruins.\n[lightgray]Research the thorium and its many uses.\n\nThe enemy is present here in great numbers, constantly scouting for attackers.
|
||||||
sector.fungalPass.description = A transition area between high mountains and lower, spore-ridden lands. A small enemy reconnaissance base is located here.\nDestroy it.\nUse Dagger and Crawler units. Take out the two cores.
|
sector.fungalPass.description = A transition area between high mountains and lower, spore-ridden lands. A small enemy reconnaissance base is located here.\nDestroy it.\nUse Dagger and Crawler units. Take out the two cores.
|
||||||
|
sector.biomassFacility.description = The origin of spores. This is the facility in which they were researched and initially produced.\nResearch the technology contained within. Cultivate spores for the production of fuel and plastics.\n\n[lightgray]Upon this facility's demise, the spores were released. Nothing in the local ecosystem could compete with such an invasive organism.
|
||||||
|
sector.windsweptIslands.description = Further past the shoreline is this remote chain of islands. Records show they once had [accent]Plastanium[]-producing structures.\n\nFend off the enemy's naval units. Establish a base on the islands. Research these factories.
|
||||||
|
sector.extractionOutpost.description = A remote outpost, constructed by the enemy for the purpose of launching resources to other sectors.\n\nCross-sector transport technology is essential for further conquest. Destroy the base. Research their Launch Pads.
|
||||||
|
sector.impact0078.description = Here lie remnants of the interstellar transport vessel that first entered this system.\n\nSalvage as much as possible from the wreckage. Research any intact technology.
|
||||||
|
sector.planetaryTerminal.description = The final target.\n\nThis coastal base contains a structure capable of launching Cores to local planets. It is extremely well guarded.\n\nProduce naval units. Eliminate the enemy as quickly as possible. Research the launch structure.
|
||||||
|
|
||||||
settings.language = Language
|
settings.language = Language
|
||||||
settings.data = Game Data
|
settings.data = Game Data
|
||||||
@@ -799,7 +807,6 @@ setting.conveyorpathfinding.name = Conveyor Placement Pathfinding
|
|||||||
setting.sensitivity.name = Controller Sensitivity
|
setting.sensitivity.name = Controller Sensitivity
|
||||||
setting.saveinterval.name = Save Interval
|
setting.saveinterval.name = Save Interval
|
||||||
setting.seconds = {0} seconds
|
setting.seconds = {0} seconds
|
||||||
setting.blockselecttimeout.name = Block Select Timeout
|
|
||||||
setting.milliseconds = {0} milliseconds
|
setting.milliseconds = {0} milliseconds
|
||||||
setting.fullscreen.name = Fullscreen
|
setting.fullscreen.name = Fullscreen
|
||||||
setting.borderlesswindow.name = Borderless Window[lightgray] (restart may be required)
|
setting.borderlesswindow.name = Borderless Window[lightgray] (restart may be required)
|
||||||
@@ -808,7 +815,7 @@ setting.smoothcamera.name = Smooth Camera
|
|||||||
setting.vsync.name = VSync
|
setting.vsync.name = VSync
|
||||||
setting.pixelate.name = Pixelate
|
setting.pixelate.name = Pixelate
|
||||||
setting.minimap.name = Show Minimap
|
setting.minimap.name = Show Minimap
|
||||||
setting.coreitems.name = Display Core Items (WIP)
|
setting.coreitems.name = Display Core Items
|
||||||
setting.position.name = Show Player Position
|
setting.position.name = Show Player Position
|
||||||
setting.musicvol.name = Music Volume
|
setting.musicvol.name = Music Volume
|
||||||
setting.atmosphere.name = Show Planet Atmosphere
|
setting.atmosphere.name = Show Planet Atmosphere
|
||||||
@@ -888,6 +895,8 @@ keybind.menu.name = Menu
|
|||||||
keybind.pause.name = Pause
|
keybind.pause.name = Pause
|
||||||
keybind.pause_building.name = Pause/Resume Building
|
keybind.pause_building.name = Pause/Resume Building
|
||||||
keybind.minimap.name = Minimap
|
keybind.minimap.name = Minimap
|
||||||
|
keybind.planet_map.name = Planet Map
|
||||||
|
keybind.research.name = Research
|
||||||
keybind.chat.name = Chat
|
keybind.chat.name = Chat
|
||||||
keybind.player_list.name = Player List
|
keybind.player_list.name = Player List
|
||||||
keybind.console.name = Console
|
keybind.console.name = Console
|
||||||
@@ -1012,6 +1021,7 @@ block.resupply-point.name = Resupply Point
|
|||||||
block.parallax.name = Parallax
|
block.parallax.name = Parallax
|
||||||
block.cliff.name = Cliff
|
block.cliff.name = Cliff
|
||||||
block.sand-boulder.name = Sand Boulder
|
block.sand-boulder.name = Sand Boulder
|
||||||
|
block.basalt-boulder.name = Basalt Boulder
|
||||||
block.grass.name = Grass
|
block.grass.name = Grass
|
||||||
block.slag.name = Slag
|
block.slag.name = Slag
|
||||||
block.space.name = Space
|
block.space.name = Space
|
||||||
@@ -1234,27 +1244,41 @@ team.derelict.name = derelict
|
|||||||
team.green.name = green
|
team.green.name = green
|
||||||
team.purple.name = purple
|
team.purple.name = purple
|
||||||
|
|
||||||
tutorial.next = [lightgray]<Tap to continue>
|
hint.skip = Skip
|
||||||
tutorial.intro = You have entered the[scarlet] Mindustry Tutorial.[]\nUse[accent] [[WASD][] to move.\n[accent]Scroll[] to zoom in and out.\nBegin by[accent] mining copper[]. Move close to it, then tap a copper ore vein near your core to do this.\n\n[accent]{0}/{1} copper
|
hint.desktopMove = Use [accent][[WASD][] to move.
|
||||||
tutorial.intro.mobile = You have entered the[scarlet] Mindustry Tutorial.[]\nSwipe the screen to move.\n[accent]Pinch with 2 fingers[] to zoom in and out.\nBegin by[accent] mining copper[]. Move close to it, then tap a copper ore vein near your core to do this.\n\n[accent]{0}/{1} copper
|
hint.zoom = [accent]Scroll[] to zoom in or out.
|
||||||
tutorial.drill = Mining manually is inefficient.\n[accent]Drills[] can mine automatically.\nClick the drill tab in the bottom right.\nSelect the[accent] mechanical drill[]. Place it on a copper vein by clicking.\nYou can also select the drill by tapping [accent][[2][] then [accent][[1][] quickly, regardless of which tab is open.\n[accent]Right-click[] to stop building.
|
hint.mine = Move near the \uf8c4 copper ore and [accent]tap[] it to mine manually.
|
||||||
tutorial.drill.mobile = Mining manually is inefficient.\n[accent]Drills[] can mine automatically.\nTap the drill tab in the bottom right.\nSelect the[accent] mechanical drill[].\nPlace it on a copper vein by tapping, then press the[accent] checkmark[] below to confirm your selection.\nPress the[accent] X button[] to cancel placement.
|
hint.desktopShoot = [accent][[Left-click][] to shoot.
|
||||||
tutorial.blockinfo = Each block has different stats. Each drill can only mine certain ores.\nTo check a block's info and stats,[accent] tap the "?" button while selecting it in the build menu.[]\n\n[accent]Access the Mechanical Drill's stats now.[]
|
hint.depositItems = To transfer items, drag from your ship to the core.
|
||||||
tutorial.conveyor = [accent]Conveyors[] are used to transport items to the core.\nMake a line of conveyors from the drill to the core.\n[accent]Hold down the mouse to place in a line.[]\nHold[accent] CTRL[] while selecting a line to place diagonally.\nUse the scrollwheel to rotate blocks before placing them.\n[accent]Place 2 conveyors with the line tool, then deliver an item into the core.
|
hint.respawn = To respawn as a ship, press [accent][[V][].
|
||||||
tutorial.conveyor.mobile = [accent]Conveyors[] are used to transport items to the core.\nMake a line of conveyors from the drill to the core.\n[accent] Place in a line by holding down your finger for a few seconds[] and dragging in a direction.\n\n[accent]Place 2 conveyors with the line tool, then deliver an item into the core.
|
hint.respawn.mobile = You have switched control a unit/structure. To respawn as a ship, [accent]tap the avatar in the top left.[]
|
||||||
tutorial.turret = Once an item enters your core, it can be used for building.\nKeep in mind that not all items can be used for building.\nItems that are not used for building, such as[accent] coal[] or[accent] scrap[], cannot be put into the core.\nDefensive structures must be built to repel the[lightgray] enemy[].\nBuild a[accent] duo turret[] near your base.
|
hint.desktopPause = Press [accent][[Space][] to pause and unpause the game.
|
||||||
tutorial.drillturret = Duo turrets require[accent] copper ammo[] to shoot.\nPlace a drill near the turret.\nLead conveyors into the turret to supply it with copper.\n\n[accent]Ammo delivered: 0/1
|
hint.placeDrill = Select the \ue85e [accent]Drill[] tab in the menu at the bottom right, then select a \uf870 [accent]Drill[] and click on a copper patch to place it.
|
||||||
tutorial.pause = During battle, you are able to[accent] pause the game.[]\nYou may queue buildings while paused.\n\n[accent]Press space to pause.
|
hint.placeDrill.mobile = Select the \ue85e[accent]Drill[] tab in the menu at the bottom right, then select a \uf870 [accent]Drill[] and tap on a copper patch to place it.\n\nPress the \ue800 [accent]checkmark[] at the bottom right to confirm.
|
||||||
tutorial.pause.mobile = During battle, you are able to[accent] pause the game.[]\nYou may queue buildings while paused.\n\n[accent]Press this button in the top left to pause.
|
hint.placeConveyor = Conveyors move items from drills into other blocks. Select a \uf896 [accent]Conveyor[] from the \ue814 [accent]Distribution[] tab.\n\nClick and drag to place multiple conveyors.\n[accent]Scroll[] to rotate.
|
||||||
tutorial.unpause = Now press space again to unpause.
|
hint.placeConveyor.mobile = Conveyors move items from drills into other blocks. Select a \uf896 [accent]Conveyor[] from the \ue814 [accent]Distribution[] tab.\n\nHold down your finger for a second and drag to place multiple conveyors.
|
||||||
tutorial.unpause.mobile = Now press it again to unpause.
|
hint.placeTurret = Place \uf861 [accent]Turrets[] to defend your base from enemies.\n\nTurrets require ammo - in this case, \uf838copper.\nUse conveyors and drills to supply them.
|
||||||
tutorial.breaking = Blocks frequently need to be destroyed.\n[accent]Hold down right-click[] to destroy all blocks in a selection.[]\n\n[accent]Destroy all the scrap blocks to the left of your core using area selection.
|
hint.breaking = [accent]Right-click[] and drag to break blocks.
|
||||||
tutorial.breaking.mobile = Blocks frequently need to be destroyed.\n[accent]Select deconstruction mode[], then tap a block to begin breaking it.\nDestroy an area by holding down your finger for a few seconds[] and dragging in a direction.\nPress the checkmark button to confirm breaking.\n\n[accent]Destroy all the scrap blocks to the left of your core using area selection.
|
hint.breaking.mobile = Activate the \ue817 [accent]hammer[] in the bottom right and tap to break blocks.\n\nHold down your finger for a second and drag to break in a selection.
|
||||||
tutorial.withdraw = In some situations, taking items directly from blocks is necessary.\nTo do this, [accent]tap a block[] with items in it, then [accent]tap the item[] in the inventory.\nMultiple items can be withdrawn by [accent]tapping and holding[].\n\n[accent]Withdraw some copper from the core.[]
|
hint.research = Use the \ue875 [accent]Research[] button to research new technology.
|
||||||
tutorial.deposit = Deposit items into blocks by dragging from your ship to the destination block.\n\n[accent]Deposit your copper back into the core.[]
|
hint.research.mobile = Use the \ue875 [accent]Research[] button in the \ue88c [accent]Menu[] to research new technology.
|
||||||
tutorial.waves = The[lightgray] enemy[] approaches.\n\nDefend the core for 2 waves.[accent] Click[] to shoot.\nBuild more turrets and drills. Mine more copper.
|
hint.unitControl = Hold [accent][[L-ctrl][] and [accent]click[] to control friendly units or turrets.
|
||||||
tutorial.waves.mobile = The[lightgray] enemy[] approaches.\n\nDefend the core for 2 waves. Your ship will automatically fire at enemies.\nBuild more turrets and drills. Mine more copper.
|
hint.unitControl.mobile = [accent][Double-tap[] to control friendly units or turrets.
|
||||||
tutorial.launch = Once you reach a specific wave, you are able to[accent] launch the core[], leaving your defenses behind and[accent] obtaining all the resources in your core.[]\nThese obtained resources can then be used to research new technology.\n\n[accent]Press the launch button.
|
hint.launch = Once enough resources are collected, you can [accent]Launch[] by selecting nearby sectors from the \ue827 [accent]Map[] in the bottom right.
|
||||||
|
hint.launch.mobile = Once enough resources are collected, you can [accent]Launch[] by selecting nearby sectors from the \ue827 [accent]Map[] in the \ue88c [accent]Menu[].
|
||||||
|
hint.schematicSelect = Hold [accent][[F][] and drag to select blocks to copy and paste.\n\n[accent][[Middle Click][] to copy a single block type.
|
||||||
|
hint.conveyorPathfind = Hold [accent][[L-Ctrl][] while dragging conveyors to automatically generate a path.
|
||||||
|
hint.conveyorPathfind.mobile = Enable \ue844 [accent]diagonal mode[] and drag conveyors to automatically generate a path.
|
||||||
|
hint.boost = Hold [accent][[L-Shift][] to fly over obstacles with your current unit.\n\nOnly a few ground units have boosters.
|
||||||
|
hint.command = Press [accent][[G][] to command nearby units of [accent]similar type[] into formation.\n\nTo command ground units, you must first control another ground unit.
|
||||||
|
hint.command.mobile = [accent][[Double-tap][] your unit to command nearby units into formation.
|
||||||
|
hint.payloadPickup = Press [accent][[[] to pick up small blocks or units.
|
||||||
|
hint.payloadPickup.mobile = [accent]Tap and hold[] a small block or unit to pick it up.
|
||||||
|
hint.payloadDrop = Press [accent]][] to drop a payload.
|
||||||
|
hint.payloadDrop.mobile = [accent]Tap and hold[] an empty location to drop a payload there.
|
||||||
|
hint.waveFire = [accent]Wave[] turrets with water as ammunition will automatically put out nearby fires.
|
||||||
|
hint.generator = \uf879 [accent]Combustion Generators[] burn coal and transmit power to adjacent blocks.\n\nPower transmission range can be extended with \uf87f [accent]Power Nodes[].
|
||||||
|
hint.guardian = [accent]Guardian[] units are armored. Weak ammo such as [accent]Copper[] and [accent]Lead[] is [scarlet]not effective[].\n\nUse higher tier turrets or \uf835 [accent]Graphite[] \uf861Duo/\uf859Salvo ammunition to take Guardians down.
|
||||||
|
|
||||||
item.copper.description = Used in all types of construction and ammunition.
|
item.copper.description = Used in all types of construction and ammunition.
|
||||||
item.copper.details = Copper. Abnormally abundant metal on Serpulo. Structurally weak unless reinforced.
|
item.copper.details = Copper. Abnormally abundant metal on Serpulo. Structurally weak unless reinforced.
|
||||||
@@ -1436,7 +1460,7 @@ unit.reign.description = Fires a barrage of massive piercing bullets at all near
|
|||||||
unit.nova.description = Fires laser bolts that damage enemies and repair allied structures. Capable of flight.
|
unit.nova.description = Fires laser bolts that damage enemies and repair allied structures. Capable of flight.
|
||||||
unit.pulsar.description = Fires arcs of electricity that damage enemies and repair allied structures. Capable of flight.
|
unit.pulsar.description = Fires arcs of electricity that damage enemies and repair allied structures. Capable of flight.
|
||||||
unit.quasar.description = Fires piercing laser beams that damage enemies and repair allied structures. Capable of flight. Shielded.
|
unit.quasar.description = Fires piercing laser beams that damage enemies and repair allied structures. Capable of flight. Shielded.
|
||||||
unit.vela.description = Fires a massive continuous laser beam that damages enemies, causes fires and repair allied structures. Capable of flight.
|
unit.vela.description = Fires a massive continuous laser beam that damages enemies, causes fires and repairs allied structures. Capable of flight.
|
||||||
unit.corvus.description = Fires a massive laser blast that damages enemies and repairs allied structures. Can step over most terrain.
|
unit.corvus.description = Fires a massive laser blast that damages enemies and repairs allied structures. Can step over most terrain.
|
||||||
unit.crawler.description = Runs toward enemies and self-destructs, causing a large explosion.
|
unit.crawler.description = Runs toward enemies and self-destructs, causing a large explosion.
|
||||||
unit.atrax.description = Fires debilitating orbs of slag at ground targets. Can step over most terrain.
|
unit.atrax.description = Fires debilitating orbs of slag at ground targets. Can step over most terrain.
|
||||||
|
|||||||
@@ -10,18 +10,22 @@ link.dev-builds.description = Nestabilní vývojová verze hry
|
|||||||
link.trello.description = Oficiální Trello nástěnka s plánovanými novinkami
|
link.trello.description = Oficiální Trello nástěnka s plánovanými novinkami
|
||||||
link.itch.io.description = Stránka na itch.io s odkazy na stažení hry
|
link.itch.io.description = Stránka na itch.io s odkazy na stažení hry
|
||||||
link.google-play.description = Obchod Google Play
|
link.google-play.description = Obchod Google Play
|
||||||
link.f-droid.description = Katalog F-Droid
|
link.f-droid.description = F-Droid
|
||||||
link.wiki.description = Oficiální Wiki Mindustry
|
link.wiki.description = Oficiální Wiki Mindustry
|
||||||
link.suggestions.description = Suggest new features
|
link.suggestions.description = Suggest new features
|
||||||
linkfail = Nepodařilo se otevřít odkaz!\nAdresa URL byla zkopírována do schránky.
|
linkfail = Nepodařilo se otevřít odkaz!\nAdresa URL byla zkopírována do schránky.
|
||||||
screenshot = Snímek obrazovky uložen {0}
|
screenshot = Snímek obrazovky uložen {0}
|
||||||
screenshot.invalid = Mapa je moc velká, nemusí být dost paměti pro získání snímku obrazovky.
|
screenshot.invalid = Mapa je moc velká, nemusí být dost paměti pro získání snímku obrazovky.
|
||||||
gameover = Konec hry
|
gameover = Konec hry
|
||||||
|
gameover.disconnect = Odpojit se
|
||||||
gameover.pvp = Vyhrál tým [accent]{0}[]!
|
gameover.pvp = Vyhrál tým [accent]{0}[]!
|
||||||
|
gameover.waiting = [accent]Hra čeká na další mapu...
|
||||||
highscore = [accent]Nový rekord!
|
highscore = [accent]Nový rekord!
|
||||||
copied = Zkopírováno.
|
copied = Zkopírováno.
|
||||||
indev.popup = Mindustry [accent]v6[] je aktuálně ve verzi [accent]beta[].\n[lightgray]To znamená:[]\n[scarlet]- Kampaň je nedokončená[]\n- SFX a hudba je nedokončená nebo chybí\n- Cokoli, co vidíte, se může změnit nebo být odstraněno.\n\nHlaste prosím chyby na [accent]Github[].
|
indev.popup = Mindustry [accent]v6[] je aktuálně ve verzi [accent]beta[].\n[lightgray]To znamená:[]\n[scarlet]- Kampaň je nedokončená[]\n- Cokoli, co vidíte, se může změnit nebo být odstraněno.\n\nHlaste prosím chyby na [accent]Github[].
|
||||||
indev.notready = Tato část hry ještě není připravena
|
indev.notready = Tato část hry ještě není připravena
|
||||||
|
indev.campaign = [accent]Dovršil jsi kampaň![]\n\nTohle je vše, co Ti hra může po obsahové stránce nabídnout. Meziplanetární lety budou přidány až v budoucích aktualizacích.
|
||||||
|
|
||||||
|
|
||||||
load.sound = Zvuky
|
load.sound = Zvuky
|
||||||
load.map = Mapy
|
load.map = Mapy
|
||||||
@@ -57,6 +61,7 @@ schematic.rename = Přejmenovat šablonu
|
|||||||
schematic.info = {0}x{1}, {2} bloků
|
schematic.info = {0}x{1}, {2} bloků
|
||||||
schematic.disabled = [scarlet]Šablony jsou zakázány[]\nNa této [accent]mapě[] nebo [accent]serveru[] nemůžeš používat šablony.
|
schematic.disabled = [scarlet]Šablony jsou zakázány[]\nNa této [accent]mapě[] nebo [accent]serveru[] nemůžeš používat šablony.
|
||||||
|
|
||||||
|
stats = Statistiky
|
||||||
stat.wave = Vln poraženo: [accent]{0}
|
stat.wave = Vln poraženo: [accent]{0}
|
||||||
stat.enemiesDestroyed = Nepřátel zničeno: [accent]{0}[]
|
stat.enemiesDestroyed = Nepřátel zničeno: [accent]{0}[]
|
||||||
stat.built = Budov postaveno: [accent]{0}[]
|
stat.built = Budov postaveno: [accent]{0}[]
|
||||||
@@ -189,6 +194,10 @@ servers.local = Místní servery
|
|||||||
servers.remote = Vzdálené servery
|
servers.remote = Vzdálené servery
|
||||||
servers.global = Komunitní servery
|
servers.global = Komunitní servery
|
||||||
|
|
||||||
|
servers.showhidden = Zobraz skryté servery
|
||||||
|
server.shown = Zobrazené
|
||||||
|
server.hidden = Skryté
|
||||||
|
|
||||||
trace = Vystopovat hráče
|
trace = Vystopovat hráče
|
||||||
trace.playername = Jméno hráče: [accent]{0}[]
|
trace.playername = Jméno hráče: [accent]{0}[]
|
||||||
trace.ip = Adresa IP: [accent]{0}[]
|
trace.ip = Adresa IP: [accent]{0}[]
|
||||||
@@ -267,6 +276,9 @@ cancel = Zrušit
|
|||||||
openlink = Otevřít odkaz
|
openlink = Otevřít odkaz
|
||||||
copylink = Zkopírovat odkaz
|
copylink = Zkopírovat odkaz
|
||||||
back = Zpět
|
back = Zpět
|
||||||
|
crash.export = Exportovat záznamy o zhroucení hry
|
||||||
|
crash.none = Záznamy o zhroucení hry nebyly nalezeny.
|
||||||
|
crash.exported = Záznamy o zhroucení hry byly exportovány.
|
||||||
data.export = Exportovat data
|
data.export = Exportovat data
|
||||||
data.import = Importovat data
|
data.import = Importovat data
|
||||||
data.openfolder = Otevřít složku s daty
|
data.openfolder = Otevřít složku s daty
|
||||||
@@ -283,6 +295,7 @@ cancelbuilding = [accent][[{0}][] vyčistí plán šablony
|
|||||||
selectschematic = [accent][[{0}][] provede výběr a zkopírování
|
selectschematic = [accent][[{0}][] provede výběr a zkopírování
|
||||||
pausebuilding = [accent][[{0}][] zastaví stavění
|
pausebuilding = [accent][[{0}][] zastaví stavění
|
||||||
resumebuilding = [scarlet][[{0}][] bude pokračovat ve stavění
|
resumebuilding = [scarlet][[{0}][] bude pokračovat ve stavění
|
||||||
|
showui = UI je skryto.\nZmáčkni [accent][[{0}][] pro jeho zobrazení.
|
||||||
wave = [accent]Vlna číslo {0}[]
|
wave = [accent]Vlna číslo {0}[]
|
||||||
wave.cap = [accent]Vlna {0} z {1}[]
|
wave.cap = [accent]Vlna {0} z {1}[]
|
||||||
wave.waiting = [lightgray]Vlna za {0} vteřin[]
|
wave.waiting = [lightgray]Vlna za {0} vteřin[]
|
||||||
@@ -290,7 +303,9 @@ wave.waveInProgress = [lightgray]Vlna přichází![]
|
|||||||
waiting = [lightgray]Čekám...[]
|
waiting = [lightgray]Čekám...[]
|
||||||
waiting.players = Čekání na hráče...
|
waiting.players = Čekání na hráče...
|
||||||
wave.enemies = [lightgray]{0} zbývajících nepřátel
|
wave.enemies = [lightgray]{0} zbývajících nepřátel
|
||||||
wave.enemy = [lightgray]{0} zbývající nepřítel
|
wave.enemycores = [accent]{0}[lightgray] nepřátelská jádra
|
||||||
|
wave.enemycore = [accent]{0}[lightgray] nepřátelské jádro
|
||||||
|
wave.enemy = [lightgray]{0} zbývající nepřátel
|
||||||
wave.guardianwarn = Počet vln do příchodu strážce: [accent]{0}[].
|
wave.guardianwarn = Počet vln do příchodu strážce: [accent]{0}[].
|
||||||
wave.guardianwarn.one = [accent]Strážce přijde již příští vlnu![]
|
wave.guardianwarn.one = [accent]Strážce přijde již příští vlnu![]
|
||||||
loadimage = Nahrát obrázek
|
loadimage = Nahrát obrázek
|
||||||
@@ -420,7 +435,7 @@ toolmode.drawteams.description = Kreslí týmy místo bloků.
|
|||||||
filters.empty = [lightgray]Nejsou zadány žádné filtry, přidej filtr tlačítkem níže.[]
|
filters.empty = [lightgray]Nejsou zadány žádné filtry, přidej filtr tlačítkem níže.[]
|
||||||
filter.distort = Zkreslení
|
filter.distort = Zkreslení
|
||||||
filter.noise = Zašumění
|
filter.noise = Zašumění
|
||||||
filter.enemyspawn = Výběr nepřítelské líhně
|
filter.enemyspawn = Výběr nepřátelské líhně
|
||||||
filter.spawnpath = Cesta k líhni
|
filter.spawnpath = Cesta k líhni
|
||||||
filter.corespawn = Váběr ládra
|
filter.corespawn = Váběr ládra
|
||||||
filter.median = Medián
|
filter.median = Medián
|
||||||
@@ -463,7 +478,9 @@ load = Načíst
|
|||||||
save = Uložit
|
save = Uložit
|
||||||
fps = FPS: {0}
|
fps = FPS: {0}
|
||||||
ping = Odezva: {0} ms
|
ping = Odezva: {0} ms
|
||||||
language.restart = Prosím restartuj hru, aby se provedla změna jazyka!
|
memory = Paměť: {0} MB
|
||||||
|
memory2 = Paměť:\n {0} MB +\n {1} MB
|
||||||
|
language.restart = Hru je třeba restartovat, aby se provedla změna jazyka.
|
||||||
settings = Volby
|
settings = Volby
|
||||||
tutorial = Výuka
|
tutorial = Výuka
|
||||||
tutorial.retake = Spustit znovu výuku.
|
tutorial.retake = Spustit znovu výuku.
|
||||||
@@ -476,18 +493,20 @@ locked = Zamčeno
|
|||||||
complete = [lightgray]Dokončeno:
|
complete = [lightgray]Dokončeno:
|
||||||
requirement.wave = Dosáhni vlny {0} na mapě {1}
|
requirement.wave = Dosáhni vlny {0} na mapě {1}
|
||||||
requirement.core = Znič nepřátelské jádro na mapě {0}
|
requirement.core = Znič nepřátelské jádro na mapě {0}
|
||||||
requirement.research = Vynalezeno {0}
|
requirement.research = Vynalezni {0}
|
||||||
requirement.capture = Polapeno {0}
|
requirement.produce = Vyrob {0}
|
||||||
bestwave = [lightgray]Nejvyšší vlna: {0}
|
requirement.capture = Polap {0}
|
||||||
launch.text = Vyslat
|
launch.text = Vyslat
|
||||||
research.multiplayer = Jen hostitel hry může vynalézat nové technologie.
|
research.multiplayer = Jen hostitel hry může vynalézat nové technologie.
|
||||||
uncover = Odkrýt mapu
|
uncover = Odkrýt mapu
|
||||||
configure = Přizpůsobit vybavení
|
configure = Přizpůsobit vybavení
|
||||||
|
|
||||||
#TODO
|
#TODO
|
||||||
loadout = Načtení
|
loadout = Načtení
|
||||||
resources = Zdroje
|
resources = Zdroje
|
||||||
bannedblocks = Zakázané bloky
|
bannedblocks = Zakázané bloky
|
||||||
addall = Přidat vše
|
addall = Přidat vše
|
||||||
|
launch.from = Vysláno z: [accent]{0}
|
||||||
launch.destination = Cíl: {0}
|
launch.destination = Cíl: {0}
|
||||||
configure.invalid = Hodnota musí být číslo mezi 0 a {0}.
|
configure.invalid = Hodnota musí být číslo mezi 0 a {0}.
|
||||||
zone.unlocked = [lightgray]Mapa {0} byla odemknuta.[]
|
zone.unlocked = [lightgray]Mapa {0} byla odemknuta.[]
|
||||||
@@ -519,19 +538,36 @@ weather.fog.name = Mlha
|
|||||||
sectors.unexplored = [lightgray]Neprozkoumáno
|
sectors.unexplored = [lightgray]Neprozkoumáno
|
||||||
sectors.resources = Zdroje:
|
sectors.resources = Zdroje:
|
||||||
sectors.production = Výroba:
|
sectors.production = Výroba:
|
||||||
|
sectors.export = Export:
|
||||||
|
sectors.time = Čas:
|
||||||
|
sectors.threat = Ohrožení:
|
||||||
|
sectors.wave = Vlna:
|
||||||
sectors.stored = Uskladněno:
|
sectors.stored = Uskladněno:
|
||||||
sectors.resume = Pokračovat
|
sectors.resume = Pokračovat
|
||||||
sectors.launch = Vyslat
|
sectors.launch = Vyslat
|
||||||
sectors.select = Vybrat
|
sectors.select = Vybrat
|
||||||
sectors.nonelaunch = [lightgray]bez (slunce)[]
|
sectors.nonelaunch = [lightgray]bez (slunce)[]
|
||||||
sectors.rename = Přejmenovat sektor
|
sectors.rename = Přejmenovat sektor
|
||||||
sector.missingresources = [scarlet]Nedostatečné zdroje v jádře[]
|
|
||||||
|
sector.curcapture = Sektor polapen
|
||||||
|
sector.missingresources = [scarlet]Nedostatečné zdroje v jádře
|
||||||
|
sector.attacked = Sektor [accent]{0}[white] pod útokem!
|
||||||
|
sector.lost = Sektor [accent]{0}[white] ztracen! :(
|
||||||
|
#note: the missing space in the line below is intentional
|
||||||
|
sector.captured = Sektor [accent]{0}[white]polapen! :)
|
||||||
|
|
||||||
|
threat.low = Nízké
|
||||||
|
threat.medium = Střední
|
||||||
|
threat.high = Velké
|
||||||
|
threat.extreme = Extrémní
|
||||||
|
threat.eradication = Vyhlazující
|
||||||
|
|
||||||
|
planets = Planets
|
||||||
|
|
||||||
planet.serpulo.name = Serpulo
|
planet.serpulo.name = Serpulo
|
||||||
#TODO better name
|
|
||||||
planet.sun.name = Sol
|
planet.sun.name = Sol
|
||||||
|
|
||||||
#NOTE TO TRANSLATORS: don't bother editing these, they'll be removed and/or rewritten anyway
|
sector.impact0078.name = Dopad 0078
|
||||||
sector.groundZero.name = Základní tábor
|
sector.groundZero.name = Základní tábor
|
||||||
sector.craters.name = Krátery
|
sector.craters.name = Krátery
|
||||||
sector.frozenForest.name = Zamrzlý les
|
sector.frozenForest.name = Zamrzlý les
|
||||||
@@ -543,16 +579,19 @@ sector.overgrowth.name = Džungle
|
|||||||
sector.tarFields.name = Dehtová pole
|
sector.tarFields.name = Dehtová pole
|
||||||
sector.saltFlats.name = Solné nížiny
|
sector.saltFlats.name = Solné nížiny
|
||||||
sector.fungalPass.name = Plísňový průsmyk
|
sector.fungalPass.name = Plísňový průsmyk
|
||||||
|
sector.biomassFacility.name = Zařízení pro syntézu biomasy
|
||||||
|
sector.windsweptIslands.name = Větrné ostrovy
|
||||||
|
sector.extractionOutpost.name = Extrakční základna
|
||||||
|
sector.planetaryTerminal.name = Planetární odpalovací terminál
|
||||||
|
|
||||||
#unused
|
#unused
|
||||||
#sector.impact0078.name = Impact 0078
|
|
||||||
#sector.crags.name = Crags
|
#sector.crags.name = Crags
|
||||||
|
|
||||||
sector.groundZero.description = Optimální místo, kde znovu začít. Nízký výskyt nepřátel. Několik málo surovin.\nPosbírej co nejvíce olova a mědi.\nBěž dál.
|
sector.groundZero.description = Optimální místo, kde znovu začít. Nízký výskyt nepřátel. Několik málo surovin.\nPosbírej co nejvíce olova a mědi.\nBěž dál.
|
||||||
sector.frozenForest.description = Dokonce až sem, blízko hor, se dokázaly spóry rozrůst. Mráz je však nemůže zadržet navěky.\n\nPusť se do práce za pomocí energie. Stav spalovací generátory. Nauč se, jak používat opravovací věže.
|
sector.frozenForest.description = Dokonce až sem, blízko hor, se dokázaly spóry rozrůst. Mráz je však nemůže zadržet navěky.\n\nPusť se do práce za pomocí energie. Stav spalovací generátory. Nauč se, jak používat opravovací věže.
|
||||||
sector.saltFlats.description = Na okraji pouště leží Solné nížiny. V této lokaci se nachází jen několik málo surovin.\n\nNepřítel zde vybudoval zásobovací komplex. Znič jádro v jeho základně. Nenechej kámen na kameni.
|
sector.saltFlats.description = Na okraji pouště leží Solné nížiny. V této lokaci se nachází jen několik málo surovin.\n\nNepřítel zde vybudoval zásobovací komplex. Znič jádro v jeho základně. Nenechej kámen na kameni.
|
||||||
sector.craters.description = V těchto relikviích starých válek se nahromadilo velké množství vody. Znovu získej tuto oblast. Sbírej písek. Vyrob z něj metasklo. Použij vodu k chlazení svých vrtů a střílen.
|
sector.craters.description = V těchto relikviích starých válek se nahromadilo velké množství vody. Znovu získej tuto oblast. Sbírej písek. Vyrob z něj metasklo. Použij vodu k chlazení svých vrtů a střílen.
|
||||||
sector.ruinousShores.description = Za pustinou se nachází pobřeží. Kdysi zde stál obranný pobřežní systém. Moc z něj už dneska nezbylo. Jen základní stavby zůstaly ušetřeny, zbytek se rozpadl na šrot.\nPokračuj ve své expanzi hlouběji. Objev ztracenou technologii.
|
sector.ruinousShores.description = Za pustinou se nachází pobřeží. Kdysi zde stál obranný pobřežní systém. Moc z něj už dneska nezbylo. Jen základní konstrukce zůstaly ušetřeny, zbytek se rozpadl na šrot.\nPokračuj ve své expanzi hlouběji. Objev ztracenou technologii.
|
||||||
sector.stainedMountains.description = Dále ve vnitrozemí leží hory, dosud neposkvrněny spórami.\nVytěž titan, kterým tato oblast oplývá. Nauč se jej používat.\n\nPřítomnost nepřátelských jednotek je zde větší. Radši jim nedej moc času na vyslání jejich nejsilnějších jednotech.
|
sector.stainedMountains.description = Dále ve vnitrozemí leží hory, dosud neposkvrněny spórami.\nVytěž titan, kterým tato oblast oplývá. Nauč se jej používat.\n\nPřítomnost nepřátelských jednotek je zde větší. Radši jim nedej moc času na vyslání jejich nejsilnějších jednotech.
|
||||||
sector.overgrowth.description = Tato přerostlá džungle se nachází blíže ke zdroji spór.\nNepřítel zde zbudoval předsunutou hlídku. Stav jednotky Dýka a znič s jejich pomocí jádro základny. Získej znovu to, co bylo již dávno ztraceno.
|
sector.overgrowth.description = Tato přerostlá džungle se nachází blíže ke zdroji spór.\nNepřítel zde zbudoval předsunutou hlídku. Stav jednotky Dýka a znič s jejich pomocí jádro základny. Získej znovu to, co bylo již dávno ztraceno.
|
||||||
sector.tarFields.description = Rozhraní produkční naftové oblasti mezi horami a pouští. Jedna z mála oblastí, kde se stále nachází dehet.\nAčkoliv je oblast opuštěná, stále se v jejím okolí nachází nebezpečné nepřátelské síly. Není radno je podcenit.\n\n[lightgray]Vyzkoumej technologii na zpracování nafty.[]
|
sector.tarFields.description = Rozhraní produkční naftové oblasti mezi horami a pouští. Jedna z mála oblastí, kde se stále nachází dehet.\nAčkoliv je oblast opuštěná, stále se v jejím okolí nachází nebezpečné nepřátelské síly. Není radno je podcenit.\n\n[lightgray]Vyzkoumej technologii na zpracování nafty.[]
|
||||||
@@ -590,6 +629,7 @@ unit.nobuild = [scarlet]Jednotka nemůže stavět
|
|||||||
lastaccessed = [lightgray]Naposledy použil: {0}
|
lastaccessed = [lightgray]Naposledy použil: {0}
|
||||||
block.unknown = [lightgray]???[]
|
block.unknown = [lightgray]???[]
|
||||||
|
|
||||||
|
stat.description = Účel
|
||||||
stat.input = Vstup
|
stat.input = Vstup
|
||||||
stat.output = Výstup
|
stat.output = Výstup
|
||||||
stat.booster = Posilovač
|
stat.booster = Posilovač
|
||||||
@@ -617,6 +657,8 @@ stat.memorycapacity = Kapacita paměti
|
|||||||
stat.basepowergeneration = Základní generování energie
|
stat.basepowergeneration = Základní generování energie
|
||||||
stat.productiontime = Čas produkce
|
stat.productiontime = Čas produkce
|
||||||
stat.repairtime = Čas do úplné opravy
|
stat.repairtime = Čas do úplné opravy
|
||||||
|
stat.weapons = Zbraně
|
||||||
|
stat.bullet = Střela
|
||||||
stat.speedincrease = Zvýšení rychlosti
|
stat.speedincrease = Zvýšení rychlosti
|
||||||
stat.range = Dosah
|
stat.range = Dosah
|
||||||
stat.drilltier = Lze těžit
|
stat.drilltier = Lze těžit
|
||||||
@@ -624,9 +666,9 @@ stat.drillspeed = Základní rychlost vrtu
|
|||||||
stat.boosteffect = Účinek posílení
|
stat.boosteffect = Účinek posílení
|
||||||
stat.maxunits = Nejvýše aktivních jednotek
|
stat.maxunits = Nejvýše aktivních jednotek
|
||||||
stat.health = Životy
|
stat.health = Životy
|
||||||
stat.buildtime = Čas stavby
|
stat.buildtime = Čas konstrukce
|
||||||
stat.maxconsecutive = Nejvýše po sobě
|
stat.maxconsecutive = Nejvýše po sobě
|
||||||
stat.buildcost = Cena stavby
|
stat.buildcost = Cena konstrukce
|
||||||
stat.inaccuracy = Nepřesnost
|
stat.inaccuracy = Nepřesnost
|
||||||
stat.shots = Střely
|
stat.shots = Střely
|
||||||
stat.reload = Střel za 1s
|
stat.reload = Střel za 1s
|
||||||
@@ -657,6 +699,7 @@ ability.repairfield = Opravit pole
|
|||||||
ability.statusfield = Stav pole
|
ability.statusfield = Stav pole
|
||||||
ability.unitspawn = {0} továrna
|
ability.unitspawn = {0} továrna
|
||||||
ability.shieldregenfield = Silově opravné pole
|
ability.shieldregenfield = Silově opravné pole
|
||||||
|
ability.movelightning = Pohybující se blesk
|
||||||
|
|
||||||
bar.drilltierreq = Je vyžadován lepší vrt
|
bar.drilltierreq = Je vyžadován lepší vrt
|
||||||
bar.noresources = Chybějí zdroje
|
bar.noresources = Chybějí zdroje
|
||||||
@@ -676,7 +719,7 @@ bar.limitreached = [scarlet] {0} / {1}[white] {2}\n[lightgray][[jednotka je v
|
|||||||
bar.liquid = Chlazení
|
bar.liquid = Chlazení
|
||||||
bar.heat = Teplo
|
bar.heat = Teplo
|
||||||
bar.power = Energie
|
bar.power = Energie
|
||||||
bar.progress = Stavba v průběhu
|
bar.progress = Konstrukce v průběhu
|
||||||
bar.input = Vstup
|
bar.input = Vstup
|
||||||
bar.output = Výstup
|
bar.output = Výstup
|
||||||
|
|
||||||
@@ -684,13 +727,15 @@ units.processorcontrol = [lightgray]Procesor je ovládán[]
|
|||||||
|
|
||||||
bullet.damage = [stat]{0}[lightgray] poškození[]
|
bullet.damage = [stat]{0}[lightgray] poškození[]
|
||||||
bullet.splashdamage = [stat]{0}[lightgray] plošného poškození ~[stat] {1}[lightgray] dlaždic
|
bullet.splashdamage = [stat]{0}[lightgray] plošného poškození ~[stat] {1}[lightgray] dlaždic
|
||||||
bullet.incendiary = [stat]zápalné
|
bullet.incendiary = [stat]zápalný
|
||||||
|
bullet.sapping = [stat]oslabující
|
||||||
bullet.homing = [stat]samonaváděcí
|
bullet.homing = [stat]samonaváděcí
|
||||||
bullet.shock = [stat]šokové
|
bullet.shock = [stat]šokový
|
||||||
bullet.frag = [stat]trhavé
|
bullet.frag = [stat]trhavý
|
||||||
bullet.knockback = [stat]{0}[lightgray] odhození[]
|
bullet.knockback = [stat]{0}[lightgray] odhození[]
|
||||||
bullet.pierce = [stat]{0}[lightgray]x průrazné[]
|
bullet.pierce = [stat]{0}[lightgray]x průrazné[]
|
||||||
bullet.infinitepierce = [stat]průrazné[]
|
bullet.infinitepierce = [stat]průrazné[]
|
||||||
|
bullet.healpercent = [stat]{0}[lightgray]% opravující
|
||||||
bullet.freezing = [stat]zmrazující[]
|
bullet.freezing = [stat]zmrazující[]
|
||||||
bullet.tarred = [stat]dehtující[]
|
bullet.tarred = [stat]dehtující[]
|
||||||
bullet.multiplier = [stat]{0}[lightgray]x více střel[]
|
bullet.multiplier = [stat]{0}[lightgray]x více střel[]
|
||||||
@@ -715,6 +760,7 @@ unit.items = předměty
|
|||||||
unit.thousands = tis
|
unit.thousands = tis
|
||||||
unit.millions = mio
|
unit.millions = mio
|
||||||
unit.billions = mld
|
unit.billions = mld
|
||||||
|
category.purpose = Účel
|
||||||
category.general = Všeobecné
|
category.general = Všeobecné
|
||||||
category.power = Energie
|
category.power = Energie
|
||||||
category.liquids = Kapaliny
|
category.liquids = Kapaliny
|
||||||
@@ -728,7 +774,7 @@ setting.blockreplace.name = Automatický návrh bloků
|
|||||||
setting.linear.name = Lineární filtrování
|
setting.linear.name = Lineární filtrování
|
||||||
setting.hints.name = Rady a tipy
|
setting.hints.name = Rady a tipy
|
||||||
setting.flow.name = Zobrazit rychlost toku zdroje [scarlet](experimentální)[]
|
setting.flow.name = Zobrazit rychlost toku zdroje [scarlet](experimentální)[]
|
||||||
setting.backgroundpause.name = Pozastavit na pozadí
|
setting.backgroundpause.name = Pozastavit v pozadí
|
||||||
setting.buildautopause.name = Automaticky pozastavit stavění
|
setting.buildautopause.name = Automaticky pozastavit stavění
|
||||||
setting.animatedwater.name = Animované povrchy
|
setting.animatedwater.name = Animované povrchy
|
||||||
setting.animatedshields.name = Animované štíty
|
setting.animatedshields.name = Animované štíty
|
||||||
@@ -859,7 +905,7 @@ keybind.drop_unit.name = Zahodit jednotku
|
|||||||
keybind.zoom_minimap.name = Přiblížit mapu
|
keybind.zoom_minimap.name = Přiblížit mapu
|
||||||
mode.help.title = Popis režimů
|
mode.help.title = Popis režimů
|
||||||
mode.survival.name = Hra o přežití
|
mode.survival.name = Hra o přežití
|
||||||
mode.survival.description = Klasický režim. Zdroje jsou limitované a vlny nepřátel přicházejí automaticky.\n[gray]Vyžaduje, aby v mapě bylo místo pro líhnutí nepřítel.[]
|
mode.survival.description = Klasický režim. Zdroje jsou limitované a vlny nepřátel přicházejí automaticky.\n[gray]Vyžaduje, aby v mapě bylo místo pro líhnutí nepřátel.[]
|
||||||
mode.sandbox.name = Pískoviště
|
mode.sandbox.name = Pískoviště
|
||||||
mode.sandbox.description = Zdroje jsou nekonečné, vlny nepřátel nemají automatické načasování.
|
mode.sandbox.description = Zdroje jsou nekonečné, vlny nepřátel nemají automatické načasování.
|
||||||
mode.editor.name = Editor
|
mode.editor.name = Editor
|
||||||
@@ -909,6 +955,7 @@ content.item.name = Předměty
|
|||||||
content.liquid.name = Kapaliny
|
content.liquid.name = Kapaliny
|
||||||
content.unit.name = Jednotky
|
content.unit.name = Jednotky
|
||||||
content.block.name = Bloky
|
content.block.name = Bloky
|
||||||
|
content.sector.name = Sektory
|
||||||
|
|
||||||
item.copper.name = Měď
|
item.copper.name = Měď
|
||||||
item.lead.name = Olovo
|
item.lead.name = Olovo
|
||||||
@@ -927,7 +974,7 @@ item.pyratite.name = Pyratit
|
|||||||
item.metaglass.name = Metasklo
|
item.metaglass.name = Metasklo
|
||||||
item.scrap.name = Šrot
|
item.scrap.name = Šrot
|
||||||
liquid.water.name = Voda
|
liquid.water.name = Voda
|
||||||
liquid.slag.name = Roztavený kov
|
liquid.slag.name = Struska
|
||||||
liquid.oil.name = Nafta
|
liquid.oil.name = Nafta
|
||||||
liquid.cryofluid.name = Chladící kapalina
|
liquid.cryofluid.name = Chladící kapalina
|
||||||
|
|
||||||
@@ -970,7 +1017,7 @@ block.parallax.name = Paralaxa
|
|||||||
block.cliff.name = Útes
|
block.cliff.name = Útes
|
||||||
block.sand-boulder.name = Pískovec
|
block.sand-boulder.name = Pískovec
|
||||||
block.grass.name = Tráva
|
block.grass.name = Tráva
|
||||||
block.slag.name = Slag
|
block.slag.name = Struska
|
||||||
block.space.name = Vesmír
|
block.space.name = Vesmír
|
||||||
block.salt.name = Sůl
|
block.salt.name = Sůl
|
||||||
block.salt-wall.name = Solné skály
|
block.salt-wall.name = Solné skály
|
||||||
@@ -1066,7 +1113,6 @@ block.conveyor.name = Dopravník
|
|||||||
block.titanium-conveyor.name = Titanoový dopravník
|
block.titanium-conveyor.name = Titanoový dopravník
|
||||||
block.plastanium-conveyor.name = Plastanový přepravník
|
block.plastanium-conveyor.name = Plastanový přepravník
|
||||||
block.armored-conveyor.name = Obrněný dopravník
|
block.armored-conveyor.name = Obrněný dopravník
|
||||||
block.armored-conveyor.description = Přepravuje předměty stejně rychle jako titanový přepravník, ale má navíc brnění. Přijímá předměty ze srtan pouze z jiných přepravníků.
|
|
||||||
block.junction.name = Křižovatka
|
block.junction.name = Křižovatka
|
||||||
block.router.name = Směrovač
|
block.router.name = Směrovač
|
||||||
block.distributor.name = Rozdělovač
|
block.distributor.name = Rozdělovač
|
||||||
@@ -1148,7 +1194,7 @@ block.fuse.name = Fúze
|
|||||||
block.shock-mine.name = Šoková mina
|
block.shock-mine.name = Šoková mina
|
||||||
block.overdrive-projector.name = Urychlující projektor
|
block.overdrive-projector.name = Urychlující projektor
|
||||||
block.force-projector.name = Silový projektor
|
block.force-projector.name = Silový projektor
|
||||||
block.arc.name = Oblouk
|
block.arc.name = Výboj
|
||||||
block.rtg-generator.name = RTG
|
block.rtg-generator.name = RTG
|
||||||
block.spectre.name = Přízrak
|
block.spectre.name = Přízrak
|
||||||
block.meltdown.name = Rozpékač
|
block.meltdown.name = Rozpékač
|
||||||
@@ -1170,6 +1216,11 @@ block.payload-router.name = Směřovač nákladu
|
|||||||
block.disassembler.name = Rozebírač
|
block.disassembler.name = Rozebírač
|
||||||
block.silicon-crucible.name = Tavicí tyglík pro křemík
|
block.silicon-crucible.name = Tavicí tyglík pro křemík
|
||||||
block.overdrive-dome.name = Velká urychlující kupole
|
block.overdrive-dome.name = Velká urychlující kupole
|
||||||
|
#experimental, may be removed
|
||||||
|
block.block-forge.name = Výheň bloků
|
||||||
|
block.block-loader.name = Nakladač bloků
|
||||||
|
block.block-unloader.name = Vykladač bloků
|
||||||
|
block.interplanetary-accelerator.name = Meziplanetární urychlovač
|
||||||
|
|
||||||
block.switch.name = Přepínač
|
block.switch.name = Přepínač
|
||||||
block.micro-processor.name = Mikroprocesor
|
block.micro-processor.name = Mikroprocesor
|
||||||
@@ -1196,10 +1247,10 @@ tutorial.drill.mobile = Sám vidíš, že ruční těžba není moc efektivní.\
|
|||||||
tutorial.blockinfo = Každý blok má jiné vlastnosti. Každý vrt může těžit pouze některé suroviny.\nPro zobrazení informací a statistik o bloku [accent]zvol "?" při vybraném bloku ve stavební nabídce[].\n\nNyní se podívej na [accent]vlastnosti mechanického vrtu[].
|
tutorial.blockinfo = Každý blok má jiné vlastnosti. Každý vrt může těžit pouze některé suroviny.\nPro zobrazení informací a statistik o bloku [accent]zvol "?" při vybraném bloku ve stavební nabídce[].\n\nNyní se podívej na [accent]vlastnosti mechanického vrtu[].
|
||||||
tutorial.conveyor = Pro dopravu materiálu k jádru jsou zapotřebí [accent]dopravníky[].\nVytvoř řadu dopravníků od vrtu až k jádru.\nDrž zmáčknuté [accent]levé tlačítko myši[], abys umístil dopravníky v jedné řadě.\nKdyž zmáčkneš [accent]Ctrl[], řada dopravníků se bude umisťovat navíc úhlopříčně.\nPoužij [accent]kolečko myši[] pro otáčení bloku před umístěním.\n[accent]Umísti dopravníky tak, abys dopravil měď do jádra[].
|
tutorial.conveyor = Pro dopravu materiálu k jádru jsou zapotřebí [accent]dopravníky[].\nVytvoř řadu dopravníků od vrtu až k jádru.\nDrž zmáčknuté [accent]levé tlačítko myši[], abys umístil dopravníky v jedné řadě.\nKdyž zmáčkneš [accent]Ctrl[], řada dopravníků se bude umisťovat navíc úhlopříčně.\nPoužij [accent]kolečko myši[] pro otáčení bloku před umístěním.\n[accent]Umísti dopravníky tak, abys dopravil měď do jádra[].
|
||||||
tutorial.conveyor.mobile = Pro dopravu materiálu k jádru jsou zapotřebí [accent]dopravníky[].\nVytvoř řadu dopravníků od vrtu až k jádru.\n[accent]Pokládej dopravníky v řadě ťupnutím a delším prstu[] a táhnutím v požadovaném směru.\n[accent]Umísti dopravníky tak, abys dopravil měď do jádra[].
|
tutorial.conveyor.mobile = Pro dopravu materiálu k jádru jsou zapotřebí [accent]dopravníky[].\nVytvoř řadu dopravníků od vrtu až k jádru.\n[accent]Pokládej dopravníky v řadě ťupnutím a delším prstu[] a táhnutím v požadovaném směru.\n[accent]Umísti dopravníky tak, abys dopravil měď do jádra[].
|
||||||
tutorial.turret = Jakmile se materiál dostane do jádra, může být použit pro stavbu.\nPamatuj si, že ne všechno lze použít pro stavbu.\nVěci, které melze použít jako stavební materiál, jako například [accent]uhlí[] nebo [accent]šrot[], nelze do jádra uložit, a zasekne tak celý dopravník na vstupu.\nPro odehnání útočných jednotek [lightgray]nepřítele[] od jádra je třeba postavit obranné stavby.\nPostav [accent]střílnu Duo[] poblíž svého jádra.
|
tutorial.turret = Jakmile se materiál dostane do jádra, může být použit pro konstrukci.\nPamatuj si, že ne všechno lze použít pro konstrukci.\nVěci, které melze použít jako stavební materiál, jako například [accent]uhlí[] nebo [accent]šrot[], nelze do jádra uložit, a zasekne tak celý dopravník na vstupu.\nPro odehnání útočných jednotek [lightgray]nepřítele[] od jádra je třeba postavit obranné konstrukce.\nPostav [accent]střílnu Duo[] poblíž svého jádra.
|
||||||
tutorial.drillturret = Střílny Duo potřebují jako střelivo [accent]měď[].\nPolož mechanický vrt blízko střílny.\nPro zásobování mědí veď dopravníky od vrtu ke střílně.\n\n[accent]Doručeno střeliva: {0}/{1}[]
|
tutorial.drillturret = Střílny Duo potřebují jako střelivo [accent]měď[].\nPolož mechanický vrt blízko střílny.\nPro zásobování mědí veď dopravníky od vrtu ke střílně.\n\n[accent]Doručeno střeliva: {0}/{1}[]
|
||||||
tutorial.pause = Během hry, například v boji, můžeš [accent]pozastavit hru[].\nPři pozastavení můžeš naplánovat stavbu do fronty.\n\n[accent]Pozastav hru mezerníkem[].
|
tutorial.pause = Během hry, například v boji, můžeš [accent]pozastavit hru[].\nPři pozastavení můžeš naplánovat konstrukci do fronty.\n\n[accent]Pozastav hru mezerníkem[].
|
||||||
tutorial.pause.mobile = Během hry, například v boji, můžeš [accent]pozastavit hru[].\nPři pozastavení můžeš naplánovat stavbu do fronty.\n\n[accent]Pozastavení hry probedeš ťupnutím na dvě čárky vlevo nahoře.
|
tutorial.pause.mobile = Během hry, například v boji, můžeš [accent]pozastavit hru[].\nPři pozastavení můžeš naplánovat konstrukci do fronty.\n\n[accent]Pozastavení hry probedeš ťupnutím na dvě čárky vlevo nahoře.
|
||||||
tutorial.unpause = Teď zmáčkni mezerník znova a pokračuj ve hře.
|
tutorial.unpause = Teď zmáčkni mezerník znova a pokračuj ve hře.
|
||||||
tutorial.unpause.mobile = Teď ťupni na ikonu na stejném místě a pokračuj ve hře.
|
tutorial.unpause.mobile = Teď ťupni na ikonu na stejném místě a pokračuj ve hře.
|
||||||
tutorial.breaking = Bloky je třeba nejen stavět, ale Často rozbít.\n[accent]Drž pravé tlačítko myšu[] a táhni s ní pro výběr bloků, které potřebuješ rozbít.\n\n[accent]Znič všechen šrot vlevo od Tvého jádra použitím blokového výběru[].
|
tutorial.breaking = Bloky je třeba nejen stavět, ale Často rozbít.\n[accent]Drž pravé tlačítko myšu[] a táhni s ní pro výběr bloků, které potřebuješ rozbít.\n\n[accent]Znič všechen šrot vlevo od Tvého jádra použitím blokového výběru[].
|
||||||
@@ -1210,136 +1261,207 @@ tutorial.waves = [lightgray]Nepřítel[] se přibližuje.\n\nUbraň své jádro
|
|||||||
tutorial.waves.mobile = [lightgray]Nepřítel[] se přibližuje.\n\nUbraň své jádro po dobu 2 vln. Tvá loď bude automaticky střílet po nepřátelských jednotkách.\nPostav více střílen a vrtů. Natěž více mědi.
|
tutorial.waves.mobile = [lightgray]Nepřítel[] se přibližuje.\n\nUbraň své jádro po dobu 2 vln. Tvá loď bude automaticky střílet po nepřátelských jednotkách.\nPostav více střílen a vrtů. Natěž více mědi.
|
||||||
tutorial.launch = Jakmile dosáhneš určité vlny, budeš moci [accent]vyslat své jádro zpět[]. Opustíš tím svou základnu a [accent]získáš suroviny uložené v jádře[].\nZískané suroviny mohou být použity pro výzkum nových technologií.\n\n[accent]Stiskni tlačítko pro vyslání jádra zpět[].
|
tutorial.launch = Jakmile dosáhneš určité vlny, budeš moci [accent]vyslat své jádro zpět[]. Opustíš tím svou základnu a [accent]získáš suroviny uložené v jádře[].\nZískané suroviny mohou být použity pro výzkum nových technologií.\n\n[accent]Stiskni tlačítko pro vyslání jádra zpět[].
|
||||||
|
|
||||||
item.copper.description = Nejběžnější stavební materiál. Používá se ve všech typech bloků.
|
item.copper.description = Používá se ve všech typech bloků a munice.
|
||||||
item.lead.description = Základní materiál. Používá se v energetických blocích a při přepravě kapalin.
|
item.copper.details = Měď. Nezvykle nadpočetný kov na Serpulu. Konstrukčně slabý, pokud není rafinovaná.
|
||||||
item.metaglass.description = Velmi tvrdá skleněná sloučenina. Hodně používaná pro ukládání a rozvod kapalin.
|
item.lead.description = Používá se v přepravě kapalin a elektrických konstrukcích.
|
||||||
item.graphite.description = Mineralizovaný uhlík, používaný v energetických komponentách a též jako munice.
|
item.lead.details = Hutný, netečný materiál. Hojně používán v bateriích.\nPoznámka: Pravděpodobně toxický pro biologické formy života. Ne že by jich tady moc zbývalo.
|
||||||
item.sand.description = Běžný materiál, který se hojně používá při slévání a tavení.
|
item.metaglass.description = Používá se v přepravě kapalin a úložných konstrukcích.
|
||||||
item.coal.description = Zkamenělé rostliny, zformované dávno před vznikem mapy. Používané běžně jako palivo a pro vyrobu dalších materálů.
|
item.graphite.description = Používá se v elektrických komponentách a nábojích do věží.
|
||||||
item.titanium.description = Vzácný, velice lehký kov, využívaný hojně při přepravě kapalin, ve vrtech a při výrobě letových strojů.
|
item.sand.description = Používá se ve výrobě ostatních rafinovaných materiálů.
|
||||||
item.thorium.description = Hutný, radioaktivní materiál, využívaný jako strukturální podpora a nuklearní palivo.
|
item.coal.description = Používá se na palivo a výrobu rafinovaný materiálů.
|
||||||
item.scrap.description = Zbytky starých struktur a jednotek. Obsahuje stopové množství mnoha různých kovů.
|
item.coal.details = Jeví se být zkamenělou rostlinou hmotou, zformovaou dávno před událostí vytvoření tohoto světa náhodným číslem.
|
||||||
item.silicon.description = Extrémně užitečný polovodič. Využívá se v solárních panelech, pokročilých energetických blocích a jako munice do samonaváděcích střel ve střílnách.
|
item.titanium.description = Používá se v konstrukcích pro přepravu kapalin, ve vrtácích a letectví.
|
||||||
item.plastanium.description = Lehký, kujný materiál, využívaný v pokročilém letectví a jako tříštivá munice.
|
item.thorium.description = Používá se v bytelných konstrukcích a též jako nukleární palivo.
|
||||||
item.phase-fabric.description = Takřka nehmotná substance používaná v pokročilých energetických blocích a v samoopravných technologiích.
|
item.scrap.description = Používá se v tavičích a drtičích pro rafinaci na jiné materiály.
|
||||||
item.surge-alloy.description = Vyspělá slitina s jedinečnými energetickými vlastnostmi.
|
item.scrap.details = Zbytky zbytků starých konstrukcí a jednotek.
|
||||||
item.spore-pod.description = Umělé spór, syntetizované pro průmyslové účely z atmosférických koncentrací. Jejich využití spočívá v přeměně na naftu, výbušniny a jako palivo.
|
item.silicon.description = Používá se v solárních panelech, komplexní elektronice a samonaváděcích střelách do obraných věží.
|
||||||
item.blast-compound.description = Nestálá směs používaná v bombách a výbušninách. Syntetizuje se ze spórových tobolek a těkavých substancí. Nedoporučuje se využívat jako palivo.
|
item.plastanium.description = Používá se v pokročilých jednotkách, izolaci a tříštivé munici.
|
||||||
item.pyratite.description = Extrémně vznětlivá substance, používaná ve zápalném střelivu.
|
item.phase-fabric.description = Používá se v pokročilé elektronice a samoopravných konstrukcích.
|
||||||
liquid.water.description = Nejužitečnější kapalina. Hojně využívaná jak chlazení do strojů a též pro výrobu spór.
|
item.surge-alloy.description = Používá se v pokročilém zbrojnictví a reakčních obranných konstrukcích.
|
||||||
liquid.slag.description = Různé různé druhy roztaveného kovu smíchané dohromady. Lze je rozdělit na jednotlivé minerály, nebo se tato slitina dá použít jako munice při střílení na nepřátelské jednotky.
|
item.spore-pod.description = Používá se pro přeměnu na ropu, výbušniny a palivo.
|
||||||
liquid.oil.description = Kapalina použitá při pokročilé výrobě materiálů. Může být přeměněna na uhlí, nebo při rozprášení a zapálení použita jako zbraň.
|
item.spore-pod.details = Spóry. Pravděpodobně syntetická forma života. Vydává plyn toxický pro jiné formy života. Extrémně invazivní. Vysoce hořlavý za určitých podmínek.
|
||||||
liquid.cryofluid.description = Netečná, nereznoucí kapalina, vytvořená z vody a titanu. Má extrémně vysokou tepelnou kapacitu. Hojně se používá jako chladicí kapalina.
|
item.blast-compound.description = Používá se v bombách a výbušné munici.
|
||||||
|
item.pyratite.description = Používá se v zápalných zbraních a spalovacích generátorech.
|
||||||
|
|
||||||
block.message.description = Ukládá zprávu. Používá se pro komunikaci mezi spojenci.
|
liquid.water.description = Používá se pro chladící stroje a na zpracování odpadu.
|
||||||
block.graphite-press.description = Přeměňuje neforemné kusy uhlí do ušlechtilých výlisků grafitu.
|
liquid.slag.description = Používá se v oddělovačích pro rozdělení na jednotlivé kovy, nebo je chrlena na protivníky z věží.
|
||||||
block.multi-press.description = Vylepšená verze lisu na grafit. Využívá vodu a energii k rychlejšímu a efektivnějšímu zpracování uhlí.
|
liquid.oil.description = Používá se v pokročilé materiálové výrobě a jako zápalná munice.
|
||||||
block.silicon-smelter.description = Redukuje písek vyčištěným uhlím, čímž vyrábí křemík.
|
liquid.cryofluid.description = Používá se jako chladící kapalina v reaktorech, věžích a továrnách.
|
||||||
block.kiln.description = Taví písek a olovo na směs známou jako metasklo. Vyžaduje k běhu malé množství energie.
|
|
||||||
block.plastanium-compressor.description = Produkuje plastanu z titanu a nafty.
|
block.resupply-point.description = Zásobuje okolní jednotky měděnou municí. Není kompatibilní s jednotkami, které vyžadují energii z baterie.
|
||||||
block.phase-weaver.description = Produkuje fázovou tkaninu z radioaktivního thoria a písku. Spotřebuje k tomu výrazné množství energie.
|
block.armored-conveyor.description = Přepravuje předměty vpřed. Nepřijímá předměty ze stran.
|
||||||
block.alloy-smelter.description = Produkuje rázovou slitinu z titanu, olova, křemíku a mědi.
|
block.illuminator.description = Vydává světlo.
|
||||||
block.cryofluid-mixer.description = Míchá vodu a jemný titanová prášek do chladící kapaliny, nezbytné například pro thoriový reaktor.
|
block.message.description = Ukládá zprávu pro komunikaci mezi spojenci.
|
||||||
block.blast-mixer.description = Drtí a míchá shluky spór s pyratitem, čímž vzniká výbušnina.
|
block.graphite-press.description = Lisuje uhlí na grafit.
|
||||||
block.pyratite-mixer.description = Míchá uhlí, olovo a písek do vysoce hořlavého pyratitu.
|
block.multi-press.description = Lisuje uhlí na grafit. Vyžaduje vodu jako chladivo.
|
||||||
block.melter.description = Taví šrot do roztaveného kovu pro další zpracování, nebo pro munici do střílny Vlna.
|
block.silicon-smelter.description = Rafinuje křemík z písku a uhlí.
|
||||||
block.separator.description = Odděluje z roztaveného kovu jednotlivé minerální součásti, které na výstupu zchlazuje do pevné formy.
|
block.kiln.description = Taví písek a olovo na metasklo.
|
||||||
block.spore-press.description = Lisuje ze spór pod enormním tlakem naftu.
|
block.plastanium-compressor.description = Produkuje plastan z titanu a nafty.
|
||||||
|
block.phase-weaver.description = Syntetizuje fázovou tkaninu z thoria a písku.
|
||||||
|
block.alloy-smelter.description = Taví titan, olovo, křemík a měď na rázovou slitinu.
|
||||||
|
block.cryofluid-mixer.description = Míchá vodu a jemný titanová prášek na chladící kapalinu.
|
||||||
|
block.blast-mixer.description = Vyrábí výbušninu z pyratitu a shluků spór.
|
||||||
|
block.pyratite-mixer.description = Míchá uhlí, olovo a písek na pyratit.
|
||||||
|
block.melter.description = Taví šrot na strusku.
|
||||||
|
block.separator.description = Odděluje ze strusky jednotlivé minerální součásti.
|
||||||
|
block.spore-press.description = Lisuje skluhy spór na naftu.
|
||||||
block.pulverizer.description = Drtí šrot na jemný písek.
|
block.pulverizer.description = Drtí šrot na jemný písek.
|
||||||
block.coal-centrifuge.description = Tuhne naftu do kusů uhlí.
|
block.coal-centrifuge.description = Přetváří naftu na uhlí.
|
||||||
block.incinerator.description = Vypaří jakékoliv nadbytečné předměty nebo kapaliny, které mu pošleš.
|
block.incinerator.description = Vypařuje jakékoliv předměty nebo kapaliny, které obdrží.
|
||||||
block.power-void.description = Zničí jakoukoliv energii, kterou bloku pošleš. Jen pro režim Pískoviště.
|
block.power-void.description = Zničí jakoukoliv energii na vstupu. Jen v režimu Pískoviště.
|
||||||
block.power-source.description = Nekonečný zdroj energie. Jen pro Pískoviště.
|
block.power-source.description = Nekonečný zdroj energie. Jen v režimu Pískoviště.
|
||||||
block.item-source.description = Nekonečný zdroj předmětů. Jen pro Pískoviště.
|
block.item-source.description = Nekonečný zdroj předmětů. Jen v režimu Pískoviště.
|
||||||
block.item-void.description = Zničí jakýkoliv vstupní předmět, který bloku pošleš. Jen pro Pískoviště.
|
block.item-void.description = Zničí jakýkoliv vstupní předmět, který bloku pošleš. Jen v režimu Pískoviště.
|
||||||
block.liquid-source.description = Nekonečný zdroj kapalin. Jen pro Pískoviště.
|
block.liquid-source.description = Nekonečný zdroj kapalin. Jen v režimu Pískoviště.
|
||||||
block.liquid-void.description = Zničí jakoukoliv kapalinu, kterou bloku pošleš. Jen pro Pískoviště.
|
block.liquid-void.description = Zničí jakoukoliv kapalinu, kterou bloku pošleš. Jen v režimu Pískoviště.
|
||||||
block.copper-wall.description = Levný obranný blok.\nUžitečný k obraně Tvého jádra a střílen pro prvních několik vln nepřátel.
|
block.copper-wall.description = Chrání konstrukce před nepřátelskými střelami.
|
||||||
block.copper-wall-large.description = Levný obranný blok.\nUžitečný k obraně Tvého jádra a střílen pro prvních několik vln nepřátel.\nZabírá více dlaždic.
|
block.copper-wall-large.description = Chrání konstrukce před nepřátelskými střelami.
|
||||||
block.titanium-wall.description = Středně silný obranný blok.\nPoskytuje středně dobrou obranu proti nepřátelům.
|
block.titanium-wall.description = Chrání konstrukce před nepřátelskými střelami.
|
||||||
block.titanium-wall-large.description = Středně silný obranný blok.\nPoskytuje středně dobrou obranu proti nepřátelům.\nZabírá více dlaždic.
|
block.titanium-wall-large.description = Chrání konstrukce před nepřátelskými střelami.
|
||||||
block.plastanium-wall.description = Speciální typ zdi, která je schopná absorbovat energetické výboje a blokuje automaticky energetické vedení, například mezi uzly.
|
block.plastanium-wall.description = Chrání konstrukce před nepřátelskými střelami. Pohlcuje laserové a elektrické výboje. Automaticky blokuje energetické spoje.
|
||||||
block.plastanium-wall-large.description = Speciální typ zdi, která je schopná absorbovat energetické výboje a blokuje automaticky energetické vedení, například mezi uzly.\nZabírá více dlaždic.
|
block.plastanium-wall-large.description = Chrání konstrukce před nepřátelskými střelami. Absorbs lasers and electric arcs. Automaticky blokuje energetické spoje.
|
||||||
block.thorium-wall.description = Silný obranný blok.\nSlušná obrana před nepřáteli.
|
block.thorium-wall.description = Chrání konstrukce před nepřátelskými střelami.
|
||||||
block.thorium-wall-large.description = Silný obranný blok.\nSlušná obrana před nepřáteli.\nZabírá více dlaždic.
|
block.thorium-wall-large.description = Chrání konstrukce před nepřátelskými střelami.
|
||||||
block.phase-wall.description = Zeď potažená speciální odrazivou sloučeninou na fázové bázi. Odráží při nárazu většinu střel.
|
block.phase-wall.description = Chrání konstrukce před nepřátelskými střelami, reflecting most bullets upon impact.
|
||||||
block.phase-wall-large.description = Zeď potažená speciální odrazivou sloučeninou na fázové bázi. Odráží při nárazu většinu střel.\nZabírá více dlaždic.
|
block.phase-wall-large.description = Chrání konstrukce před nepřátelskými střelami, reflecting most bullets upon impact.
|
||||||
block.surge-wall.description = Extrémně odolný obranný blok.\nPři zásahu střelou akumuluje energii, kterou pak náhodně uvolňuje ve formě výboje.
|
block.surge-wall.description = Chrání konstrukce před nepřátelskými střelami. Při doteku opakovaně vydává elektrické výboje.
|
||||||
block.surge-wall-large.description = Extrémně odolný obranný blok.\nPři zásahu střelou akumuluje energii, kterou pak náhodně uvolňuje ve formě výboje.\nZabírá více dlaždic.
|
block.surge-wall-large.description = Chrání konstrukce před nepřátelskými střelami. Při doteku opakovaně vydává elektrické výboje.
|
||||||
block.door.description = Malé dveře, které se dají otevřít nebo zavřít kliknutím/tupnutím na ně.
|
block.door.description = Zeď, která může být otevřena a zavřena.
|
||||||
block.door-large.description = Velké dveře, které se dají otevřít nebo zavřít kliknutím/ťupnutím na ně.\nZabírají více dlaždic.
|
block.door-large.description = Zeď, která může být otevřena a zavřena.
|
||||||
block.mender.description = Pravidelně opravuje bloky ve svém poli působnosti. Dobré pro opravu obranného systému mezi vlnami.\nVolitelně lze využít křemíku pro posílení dosahu a efektivity.
|
block.mender.description = Opakovaně opravuje bloky ve svém dosahu.\nVolitelně umí použít křemík pro posílení dosahu a efektivity.
|
||||||
block.mend-projector.description = Vylepšená verze Opraváře. Opravuje bloky ve svém poli působnosti.\nVolitelně lze využít fízové tkaniny pro posílení dosahu a efektivity.
|
block.mend-projector.description = Opakovaně opravuje bloky ve svém dosahu.\nVolitelně umí použít fázovou tkaninu pro posílení dosahu a efektivity.
|
||||||
block.overdrive-projector.description = Zrychluje funkce budov v okolí.\nVolitelně lze využít křemíku pro posílení dosahu a efektivity.
|
block.overdrive-projector.description = Zrychluje funkce budov v okolí.\nVolitelně umí využít fázovou tkaninu pro posílení dosahu a efektivity.
|
||||||
block.force-projector.description = Vytvoří okolo sebe šestihrané silové pole, které chrání jednotky a budovy uvnitř před poškozením.\nPokud dostane moc poškození, tak se přehřeje. Volitelně lze použít chlazení pro snížení přehřívání a fázové tkaniny pro zvětšené dosahu štítu.
|
block.force-projector.description = Vytváří okolo sebe šestiúhelníkové silové pole. Chrání konstrukce a jednotky uvnitř pole před poškozením.\nPřehřívá se, pokud obdrží moc poškození. Přehřátí lze eliminovat použitím chlazení. Fázová tkanina zvyšje velikost pole.
|
||||||
block.shock-mine.description = Působí poškození nepřátelským jednotkám při sešlápnutí. Takřka neviditelné pro nepřátele (a i v nabídce bloků :) ).
|
block.shock-mine.description = Vydává elektrické výboje při dotyku nepřátelskou jednotkou.
|
||||||
block.conveyor.description = Základní blok pro přepravu předmětů. Unáší předměty kupředu a automaticky plní vhodná úložiště (budovy, kontejnery, jádro), které po cestě potká. Lze jej otáčet dle potřeby.
|
block.conveyor.description = Přepravuje předměty vpřed.
|
||||||
block.titanium-conveyor.description = Pokročilý blok pro přepravu předmětů. Přenáší předměty rychleji, než základní dopravník.
|
block.titanium-conveyor.description = Přepravuje předměty vpřed. Rychlejší, než standardní dopravník.
|
||||||
block.plastanium-conveyor.description = Přesouvá položky v dávkích.\nPřijímá položky zezadu, a vykládá je do tří směrů vepředu.\nPro špičkový průchod vyžaduje několik nakládacích a vykládacích míst.
|
block.plastanium-conveyor.description = Přepravuje předměty vpřed in batches. Přijímá předměty zezadu, a vykládá je do tří směrů vpředu. Vyžaduje více nakládacích a vykládacích bodů pro špičkový průtok.
|
||||||
block.junction.description = Chová se jako most pro dva křížící se pásy dopravníků. Užitečný při situaci, kdy dva rozdílné dopravníky dopravují dva rozdílné materiály přes jedno pole.
|
block.junction.description = Funguje jako most pro dva křížící se dopravníky.
|
||||||
block.bridge-conveyor.description = Pokročilý blok pro přepravu předmětů. Dovoluje transport předmětů až přes tři pole, a to přes jakýkoliv terén nebo budovu.
|
block.bridge-conveyor.description = Přepravuje předměty přes terén nebo budovy.
|
||||||
block.phase-conveyor.description = Pokročilý blok pro přepravu předmětů. Využívá energii k teleportaci předmětů na vzdálenost několika dlaždic mezi jiným propojeným fázovým dopravníkem.
|
block.phase-conveyor.description = Okamžitě přepravuje předměty přes terén nebo budovy. Má delší dosah než standardní přemostění přepravníku, ale vyžaduje energii.
|
||||||
block.sorter.description = Třídí předměty. Pokud je předmět shodný s výběrem, je poslán rovně dál. Jinak je předmět je odbočen do strany.
|
block.sorter.description = Pokud vstupní položka odpovídá výběru, je předána vpřed. Jinak je vyložena napravo a nalevo.
|
||||||
block.inverted-sorter.description = Třídí předměty. Pokud je předmět shodný s výběrem, je odbočen do strany. Jinak je předmět je poslán rovně dál.
|
block.inverted-sorter.description = Podobné stanrdardní třídičce, ale vykládá vybrané položky do stran.
|
||||||
block.router.description = Přijímá předměty z jednoho směru a posílá je rovnoměrně do zbylých tří směrů. Užitečný pro rozdělení předmětů z jednoho zdroje do různých cílů, jako odbočení z dopravníků a podobně.\n\n[scarlet]Pozor, nepoužívejte pro vstup do produkční budovy, jinak se bude ucpávat výstupními předměty[].
|
block.router.description = Rozděluje vstupní položky rovnoměrně do tří výstupů.
|
||||||
block.distributor.description = Pokročilý směrovač. Rozděluje předměty rovnoměrně až do 7 dalších směrů.
|
block.router.details = Nezbytné zlo. Použití hned u produkčních vstupů se nedoporučuje, protože budou ucpány výstupnímk položkami.
|
||||||
block.overflow-gate.description = Předměty jsou poslány do strany, pokud je směr vpřed zablokován. Užitečné například pro zpracování přebytečného materiálu, pokud je primární příjemce saturován.
|
block.distributor.description = Rozděluje vstupní položky rovnoměrně do sedmi výstupů.
|
||||||
block.underflow-gate.description = Předměty jsou poslány vpřed, pokud je směr do strany zablokován. Užitečné například pro zpracování přebytečného materiálu, pokud je primární příjemce saturován.
|
block.overflow-gate.description = Pokud je směr vpřed ucpán, posílá vstupní položky do stran. Nelze použít vedle jiné brány.
|
||||||
block.mass-driver.description = Ultimátní blok pro přepravu předmětů. Sebere několik předmětů a vystřelí je k dalšímu hromadnému směřovači přes několik dlaždic. Vyžaduje ke své funkci energii.
|
block.underflow-gate.description = Pokud je směr do stran ucpán, posílá vstupní položky vpřed. Nelze použít vedle jiné brány.
|
||||||
block.mechanical-pump.description = Levné čerpadlo s pomalým průtokem, nevyžaduje však energii k provozu.
|
block.mass-driver.description = Konstrukce pro přepravu položek na velkou vzdálenost. Sesere dávku položek a vystřelí ji k dalšímu hromadnému přenašeči.
|
||||||
block.rotary-pump.description = Pokročilé čerpadlo, které za pomoci energie vyčerpá větší množství kapalin, než standardní.
|
block.mechanical-pump.description = Pumpuje kapalinu a předává ji dál. Nevyžaduje energii.
|
||||||
block.thermal-pump.description = Ultimátní čerpadlo. Nejrychlejší čerpání kapalin.
|
block.rotary-pump.description = Pumpuje kapalinu a předává ji dál. Vyžaduje energii.
|
||||||
block.conduit.description = Základní blok pro přepravu kapalin. Unáší kapaliny vpřed. Používá se s čerpadly, v některých vrtech a nebo ve spojení s jiným potrubím.
|
block.thermal-pump.description = Pumpuje kapalinu a předává ji dál.
|
||||||
block.pulse-conduit.description = Pokročilý blok přepravy kapalin. Přepravuje kapaliny rychleji a má větší kapacitu, než základní potrubí.
|
block.conduit.description = Přepravuje kapaliny vpřed. Používá se spolu s pumpami a dalším potrubím.
|
||||||
block.plated-conduit.description = Přenáší kapaliny stejně rychle jako pulzní potrubí, ale díky oplátování má větší výdržnost. Ze stran přijímá kapaliny pouze z dalších potrubí.\nNedochází zde k úniku kapalin.
|
block.pulse-conduit.description = Přepravuje kapaliny vpřed. Přepravuje kapaliny rychleji a ukládá jich více, než standadní potrubí.
|
||||||
block.liquid-router.description = Přijímá kapaliny z jednoho směru a vypouští je rovnoměrně do zbylých tří směrů. Dokáže pojmout i určitý objem kapalin do vnitřího úložiště. Používá se při rozdělení kapaliny z jednoho zdroje směřující do různých cílů.
|
block.plated-conduit.description = Přepravuje kapaliny vpřed. Nepřijímá kapaliny ze stran. Nemá úniky.
|
||||||
block.liquid-tank.description = Ukládá velké množství kapalin. Používá se pro vyrovnávání zásob vody, když je přítok nestabilní nebo jako záložní chlazení pro životně důležité stavby.
|
block.liquid-router.description = Přijímá kapalinu z jednoho směru a vydává ji rovnomerně do tří ostatních stran. Umí též uchovat malé množství kapaliny.
|
||||||
block.liquid-junction.description = Chová se jako most pro dvě křížící se potrubí. Používá se v situacích, kdy dvě rozdílná potrubí vedou rozdílný obsah přes jedno místo.
|
block.liquid-tank.description = Ukládá velké množství kapaliny. Předává ji do stran, podobně jako směřovač kapalin.
|
||||||
block.bridge-conduit.description = Pokročilý blok přepravy kapalin. Dovoluje přenášet kapaliny přes tři dlaždice napříč jakýmkoliv terénem nebo přes budovy.
|
block.liquid-junction.description = Funguje jako most pro dvě křížící se potrubí.
|
||||||
block.phase-conduit.description = Pokročilý blok pro přepravu kapalib. Využívá energii k teleportaci kapalin na vzdálenost několika dlaždic mezi jiným propojeným fázovým potrubím.
|
block.bridge-conduit.description = Přepravuje kapalinu přes terén a budovy.
|
||||||
|
block.phase-conduit.description = Přepravuje kapalinu přes terén a budovy. Má delší dosah než standardní přemostění potrubí, ale vyžaduje energii.
|
||||||
block.power-node.description = Přenáší energii mezi propojenými uzly. Uzel získává energii z nebo dodává energii do bloků ve svém poli působnosti.
|
block.power-node.description = Přenáší energii mezi propojenými uzly. Uzel získává energii z nebo dodává energii do bloků ve svém poli působnosti.
|
||||||
block.power-node-large.description = Pokročilý energerický uzel. Má větší dosah než základní uzel.
|
block.power-node-large.description = Pokročilý energerický uzel. Má větší dosah než základní uzel.
|
||||||
block.surge-tower.description = Energetický uzel s extrémním dosahem, ale méně dostupnými přípojkami pro ostatní bloky, než ostatní uzly.
|
block.surge-tower.description = Energetický uzel s dlouhým dosahem, ale méně dostupnými přípojkami pro ostatní bloky, než ostatní uzly.
|
||||||
block.diode.description = Energie z baterie přes tento blok protéká jen jedním směrem, a to jen za podmínky, že a druhé straně je méně energie (například vybitá baterie).
|
block.diode.description = Energie z baterie přes tento blok protéká jen jedním směrem, a to jen za podmínky, že na druhé straně je méně energie (například vybitá baterie).
|
||||||
block.battery.description = Ukládá energii v případě nadbytku v síti a poskytuje energii kdykolik, když se energetické síti nedostává (záporný rozdíl).
|
block.battery.description = Ukládá energii v případě nadbytku v síti a poskytuje energii kdykolik, když se energetické síti nedostává.
|
||||||
block.battery-large.description = Ukládá více energie, než základní baterie.
|
block.battery-large.description = Ukládá energii v případě nadbytku v síti a poskytuje energii kdykolik, když se energetické síti nedostává. Ukládá více energie než základní baterie.
|
||||||
block.combustion-generator.description = Generuje energii spalováním hořlaných materiálů, jako je například uhlí.
|
block.combustion-generator.description = Generuje energii spalováním hořlaných materiálů, jako je například uhlí.
|
||||||
block.thermal-generator.description = Pokud je umístěn na teplotně aktivní místo (jako je magmatický kámen), dokáže z tepla generovat energii.
|
block.thermal-generator.description = Pokud je umístěn na teplotně aktivní místo (jako je magmatický kámen), dokáže z tepla generovat energii.
|
||||||
block.steam-generator.description = Pokročilý spalovací generátor. Efektivnější, ale vyžaduje dodatečný přísun vody pro produkci páry.
|
block.steam-generator.description = Vytváří energii spalováním hořlavých materiálů a měněním vody na páru.
|
||||||
block.differential-generator.description = Generuje velké množství energie. Využívá teplotního rozdílu mezi chladící kapalinou a hořícím pyratitem.
|
block.differential-generator.description = Generuje velké množství energie. Využívá teplotního rozdílu mezi chladící kapalinou a hořícím pyratitem.
|
||||||
block.rtg-generator.description = Radioizotopní termoenergetický generátor (RTG) je jednoduchý, spolehlivý generátor. Využívá tepla z rozpadu radioaktivních složek ke generování menších dávek energie.
|
block.rtg-generator.description = Používá teplo z rozpadajících se radioaktivních materiálů k výrobě energie v malých dávkách.
|
||||||
block.solar-panel.description = Základní solární panel pro generování malého množství energie ze Slunce.
|
block.solar-panel.description = Vytváří malého množství energie ze Slunce.
|
||||||
block.solar-panel-large.description = Výrazně efektivnější verze solárního panelu pro generování energie ze Slunce.
|
block.solar-panel-large.description = Vytváří malého množství energie ze Slunce. Efektivnější, než základní solárí panel.
|
||||||
block.thorium-reactor.description = Generuje významné množství energie z thoria. Vyžaduje nepřetržité chlazení. Je-li chlazen nedostatečně, způsobí značnou explozi. Výstup energie závisí na míře naplnění generátoru, základní generování energie se aktivuje při plné kapacitě.
|
block.thorium-reactor.description = Generuje významné množství energie z thoria. Vyžaduje nepřetržité chlazení. Je-li chlazen nedostatečně, způsobí značnou explozi.
|
||||||
block.impact-reactor.description = Vyspělý generátor, schopný vytvářet při maximálním výkonu obrovská množství energie. Vyžaduje však značné množství energie pro nastartování celého procesu.
|
block.impact-reactor.description = Vytváří při špičkové účinnosti velké množství energi. Vyspělý generátor, schopný vytvářet při maximálním výkonu obrovská množství energie. Vyžaduje však značné množství energie pro nastartování celého procesu.
|
||||||
block.mechanical-drill.description = Levný vrt. Při položení na vhodné pole (ruda, písek) natrvalo a pomalu produkuje odpovídající materiál. Umí těžit jen základní rudy.
|
block.mechanical-drill.description = Když je umístěn na rudu, generuje donekonečna odpovídající položky, pomalou rychlostí. Použitelný jen pro těžení základních surovin.
|
||||||
block.pneumatic-drill.description = Vylepšený vrt, který je schopen těžit i titan. Těží vyšší rychlostí než mechanický vrt.
|
block.pneumatic-drill.description = Vylepšený vrt, který je schopen těžit i titan. Těží vyšší rychlostí než mechanický vrt.
|
||||||
block.laser-drill.description = Vrtá rychleji než penumatický vrt díky laserové technologii, ale vyžaduje ke svému fungování energii. Dokáže navrtat i rudné žíly thoria.
|
block.laser-drill.description = Vrtá rychleji než penumatický vrt díky laserové technologii, ale vyžaduje ke svému fungování energii. Dokáže navrtat i rudné žíly thoria.
|
||||||
block.blast-drill.description = Ultimátní vrt, vyžadující k provozu značné množství energie.
|
block.blast-drill.description = Ultimátní vrt, vyžadující k provozu značné množství energie.
|
||||||
block.water-extractor.description = Extrahuje podzemní vodu. Vhodný pro místa, kde se nevyskytuje povrchová voda.
|
block.water-extractor.description = Extrahuje podzemní vodu. Vhodný pro místa, kde se nevyskytuje povrchová voda.
|
||||||
block.cultivator.description = Kultivuje drobounké koncentrace spór v atmosféře do formy vhodné pro průmyslové využití spór.
|
block.cultivator.description = Kultivuje drobounké koncentrace atmosférických spór do spórových polštářků.
|
||||||
|
block.cultivator.details = Zachráněná technologie. Používá se k výrobě obrovského množství biomasy tak efektivně, jak jen to jde. Pravděpodobně se původně jednalo o inkubátor spó, které nyní pokrývají Serpulo.
|
||||||
block.oil-extractor.description = Vyžaduje značné množství energie, písku a vody na těžení nafty.
|
block.oil-extractor.description = Vyžaduje značné množství energie, písku a vody na těžení nafty.
|
||||||
block.core-shard.description = První verze jádra. Pokud je zničeno, veškerý kontakt s mapou je ztracen. Nedopusť, aby se to stalo.
|
block.core-shard.description = Jádro základny. Pokud je zničena, sektor je ztracen.
|
||||||
block.core-foundation.description = Druhá cerze jádra. Je lépe obrněná a pojme více surovin.
|
block.core-shard.details = První iterace. Kompaktní. Sebereplikující. Vybavená vysílacím pohonem na jedno použití. Není navržena pro meziplanetární cestování.
|
||||||
block.core-nucleus.description = Třetí a konečná iterace vývoje jádra. Velmi dobře obrněná. Dokáže skladovat významné množství zdrojů.
|
block.core-foundation.description = Jádro základny. Dobře opevněná. Pojme více surovin, než základna Odstěpek.
|
||||||
|
block.core-foundation.details = Druhá iterace.
|
||||||
|
block.core-nucleus.description = Jádro základny. Velmi dobře opevněná. Dokáže skladovat enormní množství zdrojů.
|
||||||
|
block.core-nucleus.details = Třetí a konečná iterace vývoje jádra.
|
||||||
block.vault.description = Ukládá velké množství předmětů od každého typu. K vyskladnění věcí z trezoru je možné použít odbavovač.
|
block.vault.description = Ukládá velké množství předmětů od každého typu. K vyskladnění věcí z trezoru je možné použít odbavovač.
|
||||||
block.container.description = Ukládá menší množství předmětů od každého typu. K vyskladnění věcí z kontejneru je možné použít odbavovač.
|
block.container.description = Ukládá menší množství předmětů od každého typu. K vyskladnění věcí z kontejneru je možné použít odbavovač.
|
||||||
block.unloader.description = Vyskladňuje předměty z kontejneru, trezoru nebo jádra na dopravník nebo přímo do produktivních bloků. Druh předmětu pro vyskladnění lze nastavit kliknutím nebo ťupnutím na odbavovač.
|
block.unloader.description = Vyskladňuje vybrané položky z okolních bloků.
|
||||||
block.launch-pad.description = Vysílá dávky předmětů z mapy bez nutnosti vyslat zpět jádro.
|
block.launch-pad.description = Vysílá dávky předmětů do přilehlých sektorů.
|
||||||
block.launch-pad-large.description = Vylepšená verze vysílací plošiny. Má větší úložný prostor a vysílá předměty z mapy častěji.
|
block.duo.description = Střílí střídavé dávky kulek na nepřátele.
|
||||||
block.duo.description = Malá, levná střílna. Užitečná proti pozemním jednotkám.
|
block.scatter.description = Střílí kusy olova, pláty šrotu nebo střepy metaskla na nepřátelské letectvo.
|
||||||
block.scatter.description = Základní protivzdušná střílna. Střílí kusy olova, pláty šrotu nebo střepy metaskla na nepřátelské jednotky.
|
|
||||||
block.scorch.description = Sežehne pozemní jednotky blízkosti. Velmi efektivní na malé vzdálenosti.
|
block.scorch.description = Sežehne pozemní jednotky blízkosti. Velmi efektivní na malé vzdálenosti.
|
||||||
block.hail.description = Malá dělostřelecká střílna na delší vzdálenosti.
|
block.hail.description = Střílí na dálku malé patrony na pozemní nepřátele.
|
||||||
block.wave.description = Středně velká střílna. Pálí po nepřítelích proudy kapaliny (například roztaveného kovu). Umí automaticky uhasit oheň, pokud je zásobena vodou.
|
block.wave.description = Střílí po nepřátelích proudy kapaliny (například strusky). Umí automaticky uhasit oheň, pokud je zásobena vodou.
|
||||||
block.lancer.description = Středně velká střílna proti pozemním jednotkám. Po nabití se střílí mocné energetické paprsky.
|
block.lancer.description = Po nabití střílí mocné energetické paprsky na pozemní cíle.
|
||||||
block.arc.description = Malá energetická střílna. Pálí výboje po nepřátelských jednotkách.
|
block.arc.description = Střílí výboje po pozemních jednotkách.
|
||||||
block.swarmer.description = Středně velká střílna s raketami. Útočí na pozemní i vzdušné cíle. Pálí samonaváděcí střely.
|
block.swarmer.description = Střílí po nepřátelích samonaváděcí střely.
|
||||||
block.salvo.description = Větší, pokročilejší verze střílny Duo. Pálí na nepřátele rychlé dávky střel.
|
block.salvo.description = Střílí na nepřátele rychlé dávky střel.
|
||||||
block.fuse.description = Velká střílna s krátkým dosahem. Pálí trojici pronikavých výbuchů na blízké nepřátele.
|
block.fuse.description = Střílí trojici pronikavých výbuchů na blízké nepřátele.
|
||||||
block.ripple.description = Extrémně silná dělostřelecká střílna. Pálí na dálku shluky střel na nepřátelské jednotky.
|
block.ripple.description = Střílí na dálku shluky střel na pozemní jednotky.
|
||||||
block.cyclone.description = Velká protiletecká a protipozemní střílna. Pálí explodující dávky na nepřítele v okolí.
|
block.cyclone.description = Střílí vybuchující dávky na blízké nepřátele.
|
||||||
block.spectre.description = Velká střílna s kanónem s dvěma hlavněmi. Střílí velké náboje, které pronikají brněním jak pozemních, tak vzdušných nepřátelských cílů.
|
block.spectre.description = Střílí velké náboje, které pronikají brněním jak pozemních, tak vzdušných cílů.
|
||||||
block.meltdown.description = Masivní laserový kanón. Nabije se a pak pálí nepřetržitý laserový paprsek na nepřátele v okolí. Vyžaduje ke své funkci chlazení.
|
block.meltdown.description = Po nabití střílí nepřetržitý laserový paprsek na nepřátele v okolí. Vyžaduje ke své funkci chlazení.
|
||||||
block.repair-point.description = Nepřetržitě léčí nejbližší poškozenou jednotku v poli své působnosti.
|
block.repair-point.description = Nepřetržitě opravuje nejbližší poškozenou jednotku v poli své působnosti.
|
||||||
block.segment.description = Poškozuje a ničí příchozí střely. Laserové střely ale zacílit neumí.
|
block.segment.description = Poškozuje a ničí příchozí střely. Laserové střely ale zacílit neumí.
|
||||||
|
block.parallax.description = Střílí tažný paprsek, který přitahuje vzdušné cíle, a poškozuje je.
|
||||||
|
block.tsunami.description = Střílí mocné proudy kapalin na nepřátele. Samočinně hasí oheň, pokud je zásobován vodou.
|
||||||
|
block.silicon-crucible.description = Rafinuje křemík z písku a uhlí za použití pyratitu jako přídavného zdroje tepla. Účinnější na horkých místech.
|
||||||
|
block.disassembler.description = Odděluje ze strusky stopové množství exotických minerálových součástí při malé účinnosti. Umí vyrobit thorium.
|
||||||
|
block.overdrive-dome.description = Zvyšuje rychlost okolních konstrukcí. Vyžaduje ke svému fungování fázovou tkaninu a křemík.
|
||||||
|
block.payload-conveyor.description = Přesouvá velké náklady, jako jednotky z továren.
|
||||||
|
block.payload-router.description = Rozděluje vstuní náklad na 3 výstupní směry.
|
||||||
|
block.command-center.description = Ovládá chování jednotky několika příkazy.
|
||||||
|
block.ground-factory.description = Vyrábí pozemní jednotky. Výstupní jednotky mohou být použity přímo, nebo přesunuty do přestavovačů na vylepšení.
|
||||||
|
block.air-factory.description = Vyrábí letecké jednotky. Výstupní jednotky mohou být použity přímo, nebo přesunuty do přestavovačů na vylepšení.
|
||||||
|
block.naval-factory.description = Vyrání námořní jednotky. Výstupní jednotky mohou být použity přímo, nebo přesunuty do přestavovačů na vylepšení.
|
||||||
|
block.additive-reconstructor.description = Vylepšuje vstupní jednotky na druhou úroveň.
|
||||||
|
block.multiplicative-reconstructor.description = Vylepšuje vstupní jednotky na třetí úroveň.
|
||||||
|
block.exponential-reconstructor.description = Vylepšuje vstupní jednotky na čtvrtou úroveň.
|
||||||
|
block.tetrative-reconstructor.description =Vylepšuje vstupní jednotky na pátou, konečnou úroveň.
|
||||||
|
block.switch.description = Přepínač. Jeho stav je možné číst a ovládat logickými procesory.
|
||||||
|
block.micro-processor.description = Spouští posloupnost logických instrukcí ve smyčce. Dá se použít k ovládání jednotek a konstrukcí.
|
||||||
|
block.logic-processor.description = Spouští posloupnost logických instrukcí ve smyčce. Dá se použít k ovládání jednotek a konstrukcí. Rychlejší než mikroprocesor.
|
||||||
|
block.hyper-processor.description = Spouští posloupnost logických instrukcí ve smyčce. Dá se použít k ovládání jednotek a konstrukcí. Rychlejší než logický procesor.
|
||||||
|
block.memory-cell.description = Ukládá informace z logického procesoru.
|
||||||
|
block.memory-bank.description = Ukládá informace z logického procesoru. Větší kapacita.
|
||||||
|
block.logic-display.description = Zobrazuje libovolnou grafiku z logického procesoru.
|
||||||
|
block.large-logic-display.description = Zobrazuje libovolnou grafiku z logického procesoru.
|
||||||
|
block.interplanetary-accelerator.description = Masivní elektromagnetická věž. Urychlí jádro na únikovou rychlost pro meziplanetární vyslání.
|
||||||
|
|
||||||
|
unit.dagger.description = Střílí základní střely na všechny okolní nepřátele.
|
||||||
|
unit.mace.description = Střílí proudy ohně na všechny okolní nepřátele.
|
||||||
|
unit.fortress.description = Střílí dělostřelecké salvy na pozemní cíle.
|
||||||
|
unit.scepter.description = Střílí palbu nabitých střel na všechny okolní nepřátele.
|
||||||
|
unit.reign.description = Střílí palbu masivních střel pronikajících brněním na všechny okolní nepřátele.
|
||||||
|
unit.nova.description = Střílí laserové výboje, které poškozují nepřátele a opravují spojenecké konstrukce. Je schopný letu.
|
||||||
|
unit.pulsar.description = Střílí oblouky elektřiny, které poškozují nepřátele a opravují spojenecké struktury. Schopný letu.
|
||||||
|
unit.quasar.description = Střílí pronikavé laserové paprsky, které poškozují nepřátele a opravují spojenecké struktury. Schopný letu. Oštítovaný.
|
||||||
|
unit.vela.description = Střílí masivní nepřetržitý laserový paprsek, který poškozuje nepřátele, způsobuje požáry a opravuje spojenecké struktury. Schopný letu.
|
||||||
|
unit.corvus.description = Střílí masivní laserový paprsek, který poškozuje nepřátele a opravuje spojenecké struktury. Může překonat většinu z terénů.
|
||||||
|
unit.crawler.description = Běží směrem k nepřátelům, vybuchne a způsobí velkou explozi.
|
||||||
|
unit.atrax.description = Střílí oslabující koule strusky na pozemní cíle. Může překonat většinu z terénů.
|
||||||
|
unit.spiroct.description = Střílí mířené laserové paprsky na nepřátele, a zároveň se tím opravuje. Může překročit většinu terénu.
|
||||||
|
unit.arkyid.description = Střílí velké mířené laserové paprsky na nepřátele, a zároveň se tím opravuje. Může překročit většinu terénu.
|
||||||
|
unit.toxopid.description = Střílí na nepřátele velké elektrické kazetové střely a lasery pronikající brněním. Může překročit většinu z terénů.
|
||||||
|
unit.flare.description = Střílí základní střely na okolní nepřátele.
|
||||||
|
unit.horizon.description = Pouští shluky bomb na pozemní cíle.
|
||||||
|
unit.zenith.description = Střílí salvy raket na všechny blízké nepřátele.
|
||||||
|
unit.antumbra.description = Střílí palbu střel na všechny blízké nepřátele.
|
||||||
|
unit.eclipse.description = Vystřelí dva pronikavé lasery a záplavu protivzdušných střel na všechny blízké nepřátele.
|
||||||
|
unit.mono.description = Samočinně těží měď a olovo a ukládá je do jádra.
|
||||||
|
unit.poly.description = Samočinně obnovuje poškozené konstrukce a pomáhá ostatním jednotkám při stavbě.
|
||||||
|
unit.mega.description = Samočinně opravuje poškozené konstrukce. Je schopný přenést bloky a malé pozemní jednotky.
|
||||||
|
unit.quad.description = Pouští velké bomby na pozemní cíle, opravuje spojenecké konstrukce a poškozuje nepřátele. Je schopen přenést středně velké pozemní jednotky.
|
||||||
|
unit.oct.description = Chrání blízké spojence pomocí regeneračního štítu. Je schopen přenést většinu pozemních jednotek.
|
||||||
|
unit.risso.description = Střílí palbu raket a střel na všechny blízké nepřátele.
|
||||||
|
unit.minke.description = Střílí patrony a základní střely na blízké pozemní cíle.
|
||||||
|
unit.bryde.description = Střílí na nepřátele dělostřelecké granáty a rakety dlouhého doletu.
|
||||||
|
unit.sei.description = Střílí na nepřátele palbu raket a průbojných střel.
|
||||||
|
unit.omura.description = Střílí na nepřátele průrazné šrouby s dlouhým doletem. Vytváří jednotky Záře.
|
||||||
|
unit.alpha.description = Brání jádro Odštěpek před nepřáteli. Staví konstrukce.
|
||||||
|
unit.beta.description = Brání jádro Základ před nepřáteli. Staví konstrukce.
|
||||||
|
unit.gamma.description = Brání jádro Atom před nepřáteli. Staví konstrukce.
|
||||||
|
|||||||
@@ -20,8 +20,8 @@ gameover = Le base a été détruite.
|
|||||||
gameover.pvp = L'équipe[accent] {0}[] a gagnée !
|
gameover.pvp = L'équipe[accent] {0}[] a gagnée !
|
||||||
highscore = [accent]Nouveau meilleur score !
|
highscore = [accent]Nouveau meilleur score !
|
||||||
copied = Copié.
|
copied = Copié.
|
||||||
indev.popup = [accent]v6[] is currently in [accent]alpha[].\n[lightgray]This means:[]\n[scarlet]- The campaign is completely unfinished[]\n- Content is missing\n - Most [scarlet]Unit AI[] does not work properly\n- Many units are unfinished\n- Everything you see is subject to change or removal.\n\nReport bugs or crashes on [accent]Github[].
|
indev.popup = [accent]La v6[] est actuellement en [accent]alpha[].\n[lightgray]Cela signifie :[]\n[scarlet]- La campagne est totalement incomplète[]\n- Il manque du contenu\n - La plupart des [scarlet]IA d'unités[] ne fonctionne pas correctement\n- De nombreuses unités ne sont pas terminées\n- Tout ce que vous voyez est susceptible d'être modifié ou supprimé.\n\nMerci de rapporter les bugs/crash sur [accent]Github[].
|
||||||
indev.notready = This part of the game isn't ready yet
|
indev.notready = Cette partie du jeu n'est pas encore prête
|
||||||
|
|
||||||
load.sound = Son
|
load.sound = Son
|
||||||
load.map = Maps
|
load.map = Maps
|
||||||
@@ -33,7 +33,7 @@ load.scripts = Scripts
|
|||||||
|
|
||||||
be.update = Une nouvelle version est disponible:
|
be.update = Une nouvelle version est disponible:
|
||||||
be.update.confirm = Voulez vous la télécharger et recommencer maintenant ?
|
be.update.confirm = Voulez vous la télécharger et recommencer maintenant ?
|
||||||
be.updating = Entrain de mettre à jour...
|
be.updating = En train de mettre à jour...
|
||||||
be.ignore = Ignorer
|
be.ignore = Ignorer
|
||||||
be.noupdates = Aucune mise à jour n'as été trouvée.
|
be.noupdates = Aucune mise à jour n'as été trouvée.
|
||||||
be.check = Chercher des mises à jour
|
be.check = Chercher des mises à jour
|
||||||
@@ -52,10 +52,10 @@ schematic.copy.import = Importer du presse-papier
|
|||||||
schematic.shareworkshop = Partager sur l'Atelier
|
schematic.shareworkshop = Partager sur l'Atelier
|
||||||
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Retourner Schéma
|
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Retourner Schéma
|
||||||
schematic.saved = Schéma enregistré.
|
schematic.saved = Schéma enregistré.
|
||||||
schematic.delete.confirm = Ce Schéma sera totalement éradiqué.
|
schematic.delete.confirm = Ce Schéma sera définitivement supprimé.
|
||||||
schematic.rename = Renommer Schéma
|
schematic.rename = Renommer Schéma
|
||||||
schematic.info = {0}x{1}, {2} blocks
|
schematic.info = {0}x{1}, {2} blocks
|
||||||
schematic.disabled = [scarlet]Schematics disabled[]\nYou are not allowed to use schematics on this [accent]map[] or [accent]server.
|
schematic.disabled = [scarlet] Schémas désactivés ![]\nVous n'êtes pas autorisés à utiliser des schémas sur cette [accent]map[] ou ce [accent]serveur.
|
||||||
|
|
||||||
stat.wave = Vagues vaincues:[accent] {0}
|
stat.wave = Vagues vaincues:[accent] {0}
|
||||||
stat.enemiesDestroyed = Ennemies détruits:[accent] {0}
|
stat.enemiesDestroyed = Ennemies détruits:[accent] {0}
|
||||||
@@ -508,13 +508,13 @@ error.io = Network I/O error.
|
|||||||
error.any = Erreur réseau inconnue.
|
error.any = Erreur réseau inconnue.
|
||||||
error.bloom = Échec d'initialisation du flou lumineux.\nVotre appareil peut ne pas le supporter.
|
error.bloom = Échec d'initialisation du flou lumineux.\nVotre appareil peut ne pas le supporter.
|
||||||
|
|
||||||
weather.rain.name = Rain
|
weather.rain.name = Pluie
|
||||||
weather.snow.name = Snow
|
weather.snow.name = Neige
|
||||||
weather.sandstorm.name = Sandstorm
|
weather.sandstorm.name = Tempête de sable
|
||||||
weather.sporestorm.name = Sporestorm
|
weather.sporestorm.name = Tempête de spores
|
||||||
weather.fog.name = Fog
|
weather.fog.name = Brouillard
|
||||||
|
|
||||||
sectors.unexplored = [lightgray]Unexplored
|
sectors.unexplored = [lightgray] Inexploré
|
||||||
sectors.resources = Resources:
|
sectors.resources = Resources:
|
||||||
sectors.production = Production:
|
sectors.production = Production:
|
||||||
sectors.stored = Stored:
|
sectors.stored = Stored:
|
||||||
@@ -523,10 +523,10 @@ sectors.launch = Launch
|
|||||||
sectors.select = Select
|
sectors.select = Select
|
||||||
sectors.nonelaunch = [lightgray]none (sun)
|
sectors.nonelaunch = [lightgray]none (sun)
|
||||||
sectors.rename = Rename Sector
|
sectors.rename = Rename Sector
|
||||||
sector.missingresources = [scarlet]Insufficient Core Resources
|
sector.missingresources = [scarlet]Ressources du noyau insuffisantes
|
||||||
|
|
||||||
planet.serpulo.name = Serpulo
|
planet.serpulo.name = Serpulo
|
||||||
planet.sun.name = Sun
|
planet.sun.name = Soleil
|
||||||
|
|
||||||
sector.groundZero.name = Ground Zero
|
sector.groundZero.name = Ground Zero
|
||||||
sector.craters.name = The Craters
|
sector.craters.name = The Craters
|
||||||
@@ -552,8 +552,8 @@ sector.desolateRift.description = An extremely dangerous zone. Plentiful resourc
|
|||||||
sector.nuclearComplex.description = A former facility for the production and processing of thorium, reduced to ruins.\n[lightgray]Research the thorium and its many uses.\n\nThe enemy is present here in great numbers, constantly scouting for attackers.
|
sector.nuclearComplex.description = A former facility for the production and processing of thorium, reduced to ruins.\n[lightgray]Research the thorium and its many uses.\n\nThe enemy is present here in great numbers, constantly scouting for attackers.
|
||||||
sector.fungalPass.description = A transition area between high mountains and lower, spore-ridden lands. A small enemy reconnaissance base is located here.\nDestroy it.\nUse Dagger and Crawler units. Take out the two cores.
|
sector.fungalPass.description = A transition area between high mountains and lower, spore-ridden lands. A small enemy reconnaissance base is located here.\nDestroy it.\nUse Dagger and Crawler units. Take out the two cores.
|
||||||
|
|
||||||
settings.language = Langage
|
settings.language = Langue
|
||||||
settings.data = Game Data
|
settings.data = Données du jeu
|
||||||
settings.reset = Valeur par défaut.
|
settings.reset = Valeur par défaut.
|
||||||
settings.rebind = Réatttribuer
|
settings.rebind = Réatttribuer
|
||||||
settings.resetKey = Reset
|
settings.resetKey = Reset
|
||||||
@@ -927,7 +927,7 @@ unit.fortress.name = Forteresse
|
|||||||
unit.nova.name = Nova
|
unit.nova.name = Nova
|
||||||
unit.pulsar.name = Pulsar
|
unit.pulsar.name = Pulsar
|
||||||
unit.quasar.name = Quasar
|
unit.quasar.name = Quasar
|
||||||
unit.crawler.name = Chenille
|
unit.crawler.name = Rampeur
|
||||||
unit.atrax.name = Atrax
|
unit.atrax.name = Atrax
|
||||||
unit.spiroct.name = Spiroct
|
unit.spiroct.name = Spiroct
|
||||||
unit.arkyid.name = Arkyid
|
unit.arkyid.name = Arkyid
|
||||||
@@ -955,18 +955,18 @@ unit.reign.name = Reign
|
|||||||
unit.vela.name = Vela
|
unit.vela.name = Vela
|
||||||
unit.corvus.name = Corvus
|
unit.corvus.name = Corvus
|
||||||
|
|
||||||
block.resupply-point.name = Resupply Point
|
block.resupply-point.name = Point de rechargement
|
||||||
block.parallax.name = Parallax
|
block.parallax.name = Parallax
|
||||||
block.cliff.name = Cliff
|
block.cliff.name = Falaise
|
||||||
block.sand-boulder.name = Sable rocheux
|
block.sand-boulder.name = Sable rocheux
|
||||||
block.grass.name = Herbe
|
block.grass.name = Herbe
|
||||||
block.slag.name = Slag
|
block.slag.name = Scories
|
||||||
block.space.name = Space
|
block.space.name = Space
|
||||||
block.salt.name = Sel
|
block.salt.name = Sel
|
||||||
block.salt-wall.name = Salt Wall
|
block.salt-wall.name = Mur de sel
|
||||||
block.pebbles.name = Cailloux
|
block.pebbles.name = Cailloux
|
||||||
block.tendrils.name = Vrilles
|
block.tendrils.name = Vrilles
|
||||||
block.sand-wall.name = Sand Wall
|
block.sand-wall.name = Mur de sable
|
||||||
block.spore-pine.name = Pin sporifère
|
block.spore-pine.name = Pin sporifère
|
||||||
block.spore-wall.name = Spore Wall
|
block.spore-wall.name = Spore Wall
|
||||||
block.boulder.name = Boulder
|
block.boulder.name = Boulder
|
||||||
@@ -983,11 +983,11 @@ block.scrap-wall-large.name = Grand mur de ferraille
|
|||||||
block.scrap-wall-huge.name = Enorme mur de ferraille
|
block.scrap-wall-huge.name = Enorme mur de ferraille
|
||||||
block.scrap-wall-gigantic.name = Gigantesque mur de ferraille
|
block.scrap-wall-gigantic.name = Gigantesque mur de ferraille
|
||||||
block.thruster.name = Propulseur
|
block.thruster.name = Propulseur
|
||||||
block.kiln.name = Four a métaverre
|
block.kiln.name = Four
|
||||||
block.graphite-press.name = Presse à graphite
|
block.graphite-press.name = Presse à graphite
|
||||||
block.multi-press.name = Multi-Presse
|
block.multi-press.name = Multi-Presse
|
||||||
block.constructing = {0}\n[lightgray](En construction)
|
block.constructing = {0}\n[lightgray](En construction)
|
||||||
block.spawn.name = Générateur d'ennemi
|
block.spawn.name = Générateur d'ennemis
|
||||||
block.core-shard.name = Core: Shard
|
block.core-shard.name = Core: Shard
|
||||||
block.core-foundation.name = Core: Fondation
|
block.core-foundation.name = Core: Fondation
|
||||||
block.core-nucleus.name = Core: Nucleus
|
block.core-nucleus.name = Core: Nucleus
|
||||||
@@ -1048,20 +1048,20 @@ block.thorium-wall-large.name = Grand mur en thorium
|
|||||||
block.door.name = Porte
|
block.door.name = Porte
|
||||||
block.door-large.name = Grande porte
|
block.door-large.name = Grande porte
|
||||||
block.duo.name = Duo
|
block.duo.name = Duo
|
||||||
block.scorch.name = Scorch
|
block.scorch.name = Brûleur
|
||||||
block.scatter.name = Scatter
|
block.scatter.name = Disperseur
|
||||||
block.hail.name = Hail
|
block.hail.name = Grêle
|
||||||
block.lancer.name = Lancer
|
block.lancer.name = Lancier
|
||||||
block.conveyor.name = Transporteur
|
block.conveyor.name = Convoyeur
|
||||||
block.titanium-conveyor.name = Transporteur en titane
|
block.titanium-conveyor.name = Convoyeur en titane
|
||||||
block.plastanium-conveyor.name = Plastanium Conveyor
|
block.plastanium-conveyor.name = Convoyeur en plastanium
|
||||||
block.armored-conveyor.name = Armored Conveyor
|
block.armored-conveyor.name = Convoyeur cuirassé
|
||||||
block.armored-conveyor.description = Moves items at the same speed as titanium conveyors, but possesses more armor. Does not accept inputs from the sides from anything but other conveyors.
|
block.armored-conveyor.description = Moves items at the same speed as titanium conveyors, but possesses more armor. Does not accept inputs from the sides from anything but other conveyors.
|
||||||
block.junction.name = Junction
|
block.junction.name = Jonction
|
||||||
block.router.name = Routeur
|
block.router.name = Routeur
|
||||||
block.distributor.name = [accent]Distributeur[]
|
block.distributor.name = [accent]Distributeur[]
|
||||||
block.sorter.name = Trieur
|
block.sorter.name = Trieur
|
||||||
block.inverted-sorter.name = Inverted Sorter
|
block.inverted-sorter.name = Trieur inversé
|
||||||
block.message.name = Message
|
block.message.name = Message
|
||||||
block.illuminator.name = Illuminator
|
block.illuminator.name = Illuminator
|
||||||
block.illuminator.description = A small, compact, configurable light source. Requires power to function.
|
block.illuminator.description = A small, compact, configurable light source. Requires power to function.
|
||||||
@@ -1073,30 +1073,30 @@ block.pulverizer.name = Pulvérisateur
|
|||||||
block.cryofluid-mixer.name = Refroidisseur
|
block.cryofluid-mixer.name = Refroidisseur
|
||||||
block.melter.name = Four à Fusion
|
block.melter.name = Four à Fusion
|
||||||
block.incinerator.name = Incinérateur
|
block.incinerator.name = Incinérateur
|
||||||
block.spore-press.name = Spore presse
|
block.spore-press.name = Presse à spores
|
||||||
block.separator.name = Séparateur
|
block.separator.name = Séparateur
|
||||||
block.coal-centrifuge.name = Centrifugeuse à charbon
|
block.coal-centrifuge.name = Centrifugeuse à charbon
|
||||||
block.power-node.name = Transmetteur énergétique
|
block.power-node.name = Transmetteur énergétique
|
||||||
block.power-node-large.name = Grand transmetteur énergétique
|
block.power-node-large.name = Grand transmetteur énergétique
|
||||||
block.surge-tower.name = Tour de surtension
|
block.surge-tower.name = Tour de surtension
|
||||||
block.diode.name = Battery Diode
|
block.diode.name = Diode de batterie
|
||||||
block.battery.name = Batterie
|
block.battery.name = Batterie
|
||||||
block.battery-large.name = Batterie large
|
block.battery-large.name = Grande batterie
|
||||||
block.combustion-generator.name = Générateur à combustion
|
block.combustion-generator.name = Générateur à combustion
|
||||||
block.steam-generator.name = Générateur à turbine
|
block.steam-generator.name = Générateur à turbine
|
||||||
block.differential-generator.name = Générateur différentiel
|
block.differential-generator.name = Générateur différentiel
|
||||||
block.impact-reactor.name = Réacteur à impact
|
block.impact-reactor.name = Réacteur à impact
|
||||||
block.mechanical-drill.name = Foreuse mécanique
|
block.mechanical-drill.name = Foreuse mécanique
|
||||||
block.pneumatic-drill.name = Foreuse à vérin
|
block.pneumatic-drill.name = Foreuse à vérins
|
||||||
block.laser-drill.name = Foreuse Laser
|
block.laser-drill.name = Foreuse Laser
|
||||||
block.water-extractor.name = Extracteur d'eau
|
block.water-extractor.name = Extracteur d'eau
|
||||||
block.cultivator.name = Cultivateur
|
block.cultivator.name = Cultivateur
|
||||||
block.conduit.name = Conduit
|
block.conduit.name = Conduit
|
||||||
block.mechanical-pump.name = Pompe Méchanique
|
block.mechanical-pump.name = Pompe Mécanique
|
||||||
block.item-source.name = Source d'objets
|
block.item-source.name = Source d'objets
|
||||||
block.item-void.name = Destructeur d'objets
|
block.item-void.name = Destructeur d'objets
|
||||||
block.liquid-source.name = Source de liquide
|
block.liquid-source.name = Source de liquide
|
||||||
block.liquid-void.name = Liquid Void
|
block.liquid-void.name = Vaporisateur
|
||||||
block.power-void.name = Absorbeur énergétique
|
block.power-void.name = Absorbeur énergétique
|
||||||
block.power-source.name = Puissance infinie
|
block.power-source.name = Puissance infinie
|
||||||
block.unloader.name = Déchargeur
|
block.unloader.name = Déchargeur
|
||||||
@@ -1105,15 +1105,15 @@ block.wave.name = Vague
|
|||||||
block.tsunami.name = Tsunami
|
block.tsunami.name = Tsunami
|
||||||
block.swarmer.name = Essaim
|
block.swarmer.name = Essaim
|
||||||
block.salvo.name = Salve
|
block.salvo.name = Salve
|
||||||
block.ripple.name = Ripple
|
block.ripple.name = Percussion
|
||||||
block.phase-conveyor.name = Transporteur phasé
|
block.phase-conveyor.name = Convoyeur phasé
|
||||||
block.bridge-conveyor.name = Pont transporteur
|
block.bridge-conveyor.name = Pont
|
||||||
block.plastanium-compressor.name = Compresseur de plastanium
|
block.plastanium-compressor.name = Compresseur de plastanium
|
||||||
block.pyratite-mixer.name = Mixeur à pyratite
|
block.pyratite-mixer.name = Mixeur à pyratite
|
||||||
block.blast-mixer.name = Mixeur à explosion
|
block.blast-mixer.name = Mixeur à explosion
|
||||||
block.solar-panel.name = Panneau solaire
|
block.solar-panel.name = Panneau solaire
|
||||||
block.solar-panel-large.name = Grand panneau solaire
|
block.solar-panel-large.name = Grand panneau solaire
|
||||||
block.oil-extractor.name = Extracteur de pétrol
|
block.oil-extractor.name = Extracteur de pétrole
|
||||||
block.repair-point.name = Point de Réparation
|
block.repair-point.name = Point de Réparation
|
||||||
block.pulse-conduit.name = Conduit à Impulsion
|
block.pulse-conduit.name = Conduit à Impulsion
|
||||||
block.plated-conduit.name = Plated Conduit
|
block.plated-conduit.name = Plated Conduit
|
||||||
|
|||||||
@@ -19,8 +19,8 @@ screenshot.invalid = 맵이 너무 커서 스크린샷에 사용될 메모리가
|
|||||||
gameover = 게임 오버
|
gameover = 게임 오버
|
||||||
gameover.pvp = [accent]{0}[] 팀이 승리했습니다!
|
gameover.pvp = [accent]{0}[] 팀이 승리했습니다!
|
||||||
highscore = [accent]새로운 최고 점수!
|
highscore = [accent]새로운 최고 점수!
|
||||||
copied = 복사됨.
|
copied = 복사
|
||||||
indev.popup = 현재 [accent]v6[] 버전은 [accent]알파[] 단계입니다.\n[lightgray]이 말은:[]\n- [scarlet]캠페인이 아직 완전히 개발되지 않음[]\n- 몇몇 컨텐츠가 빠짐\n- 대부분의 [scarlet]유닛 AI[]가 작동하지 않음\n- 많은 유닛들이 아직 미완성\n- 보이는 것은 모두 바뀌거나 제거될 수 있음\n\n[accent]Github[] 에서 버그 또는 강제종료 오류를 신고 해 주세요.
|
indev.popup = 현재 [accent]v6[] 버전은 [accent]베타[] 단계입니다.\n\n[accent]Github[] 에서 버그 또는 강제종료 오류를 신고 해 주세요.
|
||||||
indev.notready = 이 부분은 아직 준비가 되지 않았습니다.
|
indev.notready = 이 부분은 아직 준비가 되지 않았습니다.
|
||||||
|
|
||||||
load.sound = 소리
|
load.sound = 소리
|
||||||
@@ -71,15 +71,15 @@ map.delete = 정말로 "[accent]{0}[]" 맵을 삭제하시겠습니까?
|
|||||||
level.highscore = 최고 점수: [accent]{0}
|
level.highscore = 최고 점수: [accent]{0}
|
||||||
level.select = 맵 선택
|
level.select = 맵 선택
|
||||||
level.mode = 게임 모드:
|
level.mode = 게임 모드:
|
||||||
coreattack = < 코어가 공격 받고 있습니다! >
|
coreattack = < 코어가 공격을 받고 있습니다! >
|
||||||
nearpoint = [[ [scarlet]즉시 스폰지점에서 떠나세요[] ]\n전멸 임박
|
nearpoint = [[ [scarlet]즉시 스폰지점에서 떠나세요[] ]\n인근 건물들과 유닛들은 초토화됩니다!
|
||||||
database = 코어 데이터베이스
|
database = 코어 데이터베이스
|
||||||
savegame = 게임 저장
|
savegame = 게임 저장
|
||||||
loadgame = 게임 불러오기
|
loadgame = 게임 불러오기
|
||||||
joingame = 게임 참여
|
joingame = 게임 참여
|
||||||
customgame = 사용자 지정 게임
|
customgame = 사용자 지정 게임
|
||||||
newgame = 새 게임
|
newgame = 새 게임
|
||||||
none = <없음>
|
none = < 없음 >
|
||||||
minimap = 미니맵
|
minimap = 미니맵
|
||||||
position = 위치
|
position = 위치
|
||||||
close = 닫기
|
close = 닫기
|
||||||
@@ -291,8 +291,8 @@ waiting = [lightgray]대기중...
|
|||||||
waiting.players = 상대 플레이어를 기다리는 중...
|
waiting.players = 상대 플레이어를 기다리는 중...
|
||||||
wave.enemies = [lightgray]적 유닛 {0}명 남음
|
wave.enemies = [lightgray]적 유닛 {0}명 남음
|
||||||
wave.enemy = [lightgray]{0}명 남음
|
wave.enemy = [lightgray]{0}명 남음
|
||||||
wave.guardianwarn = [accent]{0}[] 단계 후에 가디언이 접근합니다.
|
wave.guardianwarn = [accent]{0}[] 단계 후에 수호자가 접근합니다.
|
||||||
wave.guardianwarn.one = [accent]{0}[] 단계 후에 가디언이 접근합니다.
|
wave.guardianwarn.one = [accent]{0}[] 단계 후에 수호자가 접근합니다.
|
||||||
loadimage = 사진 불러오기
|
loadimage = 사진 불러오기
|
||||||
saveimage = 사진 저장
|
saveimage = 사진 저장
|
||||||
unknown = 알 수 없음
|
unknown = 알 수 없음
|
||||||
@@ -335,13 +335,13 @@ editor.center = 중앙
|
|||||||
workshop = 창작마당
|
workshop = 창작마당
|
||||||
waves.title = 단계
|
waves.title = 단계
|
||||||
waves.remove = 삭제
|
waves.remove = 삭제
|
||||||
waves.never = 여기까지 유닛생성
|
waves.never = 여기까지 유닛 생성
|
||||||
waves.every = 매
|
waves.every = 매
|
||||||
waves.waves = 단계마다
|
waves.waves = 단계마다
|
||||||
waves.perspawn = 마리 생성
|
waves.perspawn = 마리 생성
|
||||||
waves.shields = 보호막/단계
|
waves.shields = 방어막/단계
|
||||||
waves.to = 부터
|
waves.to = 부터
|
||||||
waves.guardian = 가디언
|
waves.guardian = 수호자
|
||||||
waves.preview = 미리보기
|
waves.preview = 미리보기
|
||||||
waves.edit = 편집
|
waves.edit = 편집
|
||||||
waves.copy = 클립보드로 복사
|
waves.copy = 클립보드로 복사
|
||||||
@@ -495,7 +495,7 @@ zone.objective = [lightgray]목표: [accent]{0}
|
|||||||
zone.objective.survival = 생존
|
zone.objective.survival = 생존
|
||||||
zone.objective.attack = 적 코어 파괴
|
zone.objective.attack = 적 코어 파괴
|
||||||
add = 추가...
|
add = 추가...
|
||||||
boss.health = 보스 체력
|
boss.health = 수호자 체력
|
||||||
|
|
||||||
connectfail = [scarlet]연결 오류:\n\n[accent]{0}
|
connectfail = [scarlet]연결 오류:\n\n[accent]{0}
|
||||||
error.unreachable = 서버에 연결하지 못했습니다.\n서버 주소가 정확히 입력되었나요?
|
error.unreachable = 서버에 연결하지 못했습니다.\n서버 주소가 정확히 입력되었나요?
|
||||||
@@ -522,11 +522,11 @@ sectors.resume = 재개
|
|||||||
sectors.launch = 출격
|
sectors.launch = 출격
|
||||||
sectors.select = 선택
|
sectors.select = 선택
|
||||||
sectors.nonelaunch = [lightgray]없음 (sun)
|
sectors.nonelaunch = [lightgray]없음 (sun)
|
||||||
sectors.rename = Rename Sector
|
sectors.rename = 구역 명명
|
||||||
sector.missingresources = [scarlet]Insufficient Core Resources
|
sector.missingresources = [scarlet]자원 부족
|
||||||
|
|
||||||
planet.serpulo.name = Serpulo
|
planet.serpulo.name = 세르플
|
||||||
planet.sun.name = Sun
|
planet.sun.name = 태양
|
||||||
|
|
||||||
sector.groundZero.name = 전초기지
|
sector.groundZero.name = 전초기지
|
||||||
sector.craters.name = 크레이터
|
sector.craters.name = 크레이터
|
||||||
@@ -561,26 +561,26 @@ settings.controls = 조작
|
|||||||
settings.game = 게임
|
settings.game = 게임
|
||||||
settings.sound = 소리
|
settings.sound = 소리
|
||||||
settings.graphics = 그래픽
|
settings.graphics = 그래픽
|
||||||
settings.cleardata = 게임 데이터 초기화...
|
settings.cleardata = 게임 데이터 초기화
|
||||||
settings.clear.confirm = 정말로 이 데이터를 지우시겠습니까?\n완료된 작업은 취소할 수 없습니다!
|
settings.clear.confirm = 정말로 이 데이터를 지우시겠습니까?\n되돌릴 수 없습니다!
|
||||||
settings.clearall.confirm = [scarlet]경고![]\n이 작업은 저장된 맵, 맵파일, 잠금 해제된 목록과 키 매핑, 그리고 모든 데이터를 삭제합니다.\n확인 버튼을 다시 눌러 모든 데이터를 삭제하고 게임에서 나갑니다.
|
settings.clearall.confirm = [scarlet]경고![]\n이 작업은 저장된 맵, 맵파일, 잠금 해제된 목록과 키 매핑, 그리고 모든 데이터를 삭제합니다.\n확인 버튼을 다시 눌러 모든 데이터를 삭제하고 게임에서 나갑니다.
|
||||||
settings.clearsaves.confirm = 정말로 모든 저장을 삭제 하시겠습니까?
|
settings.clearsaves.confirm = 정말로 모든 저장된 파일들을 삭제하시겠습니까?
|
||||||
settings.clearsaves = 저장 초기화
|
settings.clearsaves = 저장 초기화
|
||||||
settings.clearresearch = Clear Research
|
settings.clearresearch = 연구 초기화
|
||||||
settings.clearresearch.confirm = Are you sure you want to clear all of your campaign research?
|
settings.clearresearch.confirm = 정말로 모든 연구를 삭제하시겠습니까?
|
||||||
settings.clearcampaignsaves = Clear Campaign Saves
|
settings.clearcampaignsaves = 캠페인 맵 초기화
|
||||||
settings.clearcampaignsaves.confirm = Are you sure you want to clear all of your campaign saves?
|
settings.clearcampaignsaves.confirm = 정말로 캠페인을 초기화하시겠습니까?
|
||||||
paused = [accent]< 일시정지 >
|
paused = [accent]< 일시정지 >
|
||||||
clear = 초기화
|
clear = 초기화
|
||||||
banned = [scarlet]차단됨
|
banned = [scarlet]차단됨
|
||||||
unplaceable.sectorcaptured = [scarlet]점령된 구역이 필요합니다
|
unplaceable.sectorcaptured = [scarlet]구역 점령 필요
|
||||||
yes = 예
|
yes = 예
|
||||||
no = 아니오
|
no = 아니오
|
||||||
info.title = 정보
|
info.title = 정보
|
||||||
error.title = [scarlet]오류가 발생했습니다.
|
error.title = [scarlet]오류가 발생했습니다.
|
||||||
error.crashtitle = 오류가 발생했습니다
|
error.crashtitle = 오류가 발생했습니다
|
||||||
unit.nobuild = [scarlet]이 유닛은 건설할 수 없습니다.
|
unit.nobuild = [scarlet]건설 불가
|
||||||
lastaccessed = [lightgray]마지막 접근: {0}
|
lastaccessed = [lightgray]마지막 조작: {0}
|
||||||
block.unknown = [lightgray]???
|
block.unknown = [lightgray]???
|
||||||
|
|
||||||
stat.input = 입력
|
stat.input = 입력
|
||||||
@@ -588,70 +588,70 @@ stat.output = 출력
|
|||||||
stat.booster = 가속
|
stat.booster = 가속
|
||||||
stat.tiles = 필요한 타일
|
stat.tiles = 필요한 타일
|
||||||
stat.affinities = 친화력
|
stat.affinities = 친화력
|
||||||
stat.powercapacity = Power Capacity
|
stat.powercapacity = 전력량
|
||||||
stat.powershot = Power/Shot
|
stat.powershot = 전력량/발
|
||||||
stat.damage = Damage
|
stat.damage = 공격력
|
||||||
stat.targetsair = Targets Air
|
stat.targetsair = 공중 공격
|
||||||
stat.targetsground = Targets Ground
|
stat.targetsground = 지상 공격
|
||||||
stat.itemsmoved = Move Speed
|
stat.itemsmoved = 이동 속도
|
||||||
stat.launchtime = Time Between Launches
|
stat.launchtime = 발사 간격
|
||||||
stat.shootrange = Range
|
stat.shootrange = 사거리
|
||||||
stat.size = Size
|
stat.size = 크기
|
||||||
stat.displaysize = Display Size
|
stat.displaysize = 화면 크기
|
||||||
stat.liquidcapacity = Liquid Capacity
|
stat.liquidcapacity = 액체 수용량
|
||||||
stat.powerrange = Power Range
|
stat.powerrange = 전선 길이
|
||||||
stat.linkrange = Link Range
|
stat.linkrange = 감지 길이
|
||||||
stat.instructions = Instructions
|
stat.instructions = 최대 명령어 수
|
||||||
stat.powerconnections = Max Connections
|
stat.powerconnections = 최대 연결 개수
|
||||||
stat.poweruse = Power Use
|
stat.poweruse = 전력 요구량
|
||||||
stat.powerdamage = Power/Damage
|
stat.powerdamage = 전력량/피해량
|
||||||
stat.itemcapacity = Item Capacity
|
stat.itemcapacity = 자원 수용량
|
||||||
stat.memorycapacity = Memory Capacity
|
stat.memorycapacity = 변수 개수
|
||||||
stat.basepowergeneration = Base Power Generation
|
stat.basepowergeneration = 기본 발전량
|
||||||
stat.productiontime = Production Time
|
stat.productiontime = 소요 시간
|
||||||
stat.repairtime = Block Full Repair Time
|
stat.repairtime = 건물 완전 복구 시간
|
||||||
stat.speedincrease = Speed Increase
|
stat.speedincrease = 속도 증가
|
||||||
stat.range = Range
|
stat.range = 사거리
|
||||||
stat.drilltier = Drillables
|
stat.drilltier = 채굴 가능 자원
|
||||||
stat.drillspeed = Base Drill Speed
|
stat.drillspeed = 기본 채굴 속도
|
||||||
stat.boosteffect = Boost Effect
|
stat.boosteffect = 버프 효과
|
||||||
stat.maxunits = Max Active Units
|
stat.maxunits = 최대 유닛 수
|
||||||
stat.health = Health
|
stat.health = 체력
|
||||||
stat.buildtime = Build Time
|
stat.buildtime = 건설 시간
|
||||||
stat.maxconsecutive = Max Consecutive
|
stat.maxconsecutive = 최대 체인 길이
|
||||||
stat.buildcost = Build Cost
|
stat.buildcost = 건설 비용
|
||||||
stat.inaccuracy = Inaccuracy
|
stat.inaccuracy = 오차각
|
||||||
stat.shots = Shots
|
stat.shots = 발사 당 탄
|
||||||
stat.reload = Shots/Second
|
stat.reload = 발/초
|
||||||
stat.ammo = Ammo
|
stat.ammo = 탄약
|
||||||
stat.shieldhealth = Shield Health
|
stat.shieldhealth = 보호막 체력
|
||||||
stat.cooldowntime = Cooldown Time
|
stat.cooldowntime = 쿨타임
|
||||||
stat.explosiveness = Explosiveness
|
stat.explosiveness = 폭발성
|
||||||
stat.basedeflectchance = Base Deflect Chance
|
stat.basedeflectchance = 기본 반사 확률
|
||||||
stat.lightningchance = Lightning Chance
|
stat.lightningchance = 전격 확률
|
||||||
stat.lightningdamage = Lightning Damage
|
stat.lightningdamage = 전격 공격량
|
||||||
stat.flammability = Flammability
|
stat.flammability = 휘발성
|
||||||
stat.radioactivity = Radioactivity
|
stat.radioactivity = 방사성
|
||||||
stat.heatcapacity = HeatCapacity
|
stat.heatcapacity = 열용량
|
||||||
stat.viscosity = Viscosity
|
stat.viscosity = 점성
|
||||||
stat.temperature = Temperature
|
stat.temperature = 온도
|
||||||
stat.speed = Speed
|
stat.speed = 속도
|
||||||
stat.buildspeed = Build Speed
|
stat.buildspeed = 건설 속도
|
||||||
stat.minespeed = Mine Speed
|
stat.minespeed = 채굴 속도
|
||||||
stat.minetier = Mine Tier
|
stat.minetier = 채굴 티어
|
||||||
stat.payloadcapacity = Payload Capacity
|
stat.payloadcapacity = 화물 수용량
|
||||||
stat.commandlimit = Command Limit
|
stat.commandlimit = 지휘 한계
|
||||||
stat.abilities = Abilities
|
stat.abilities = 능력
|
||||||
|
|
||||||
ability.forcefield = Force Field
|
ability.forcefield = 보호막
|
||||||
ability.repairfield = Repair Field
|
ability.repairfield = 수리장
|
||||||
ability.statusfield = Status Field
|
ability.statusfield = 버프장
|
||||||
ability.unitspawn = {0} Factory
|
ability.unitspawn = {0} 공장
|
||||||
ability.shieldregenfield = Shield Regen Field
|
ability.shieldregenfield = 방어막 복구장
|
||||||
|
|
||||||
bar.drilltierreq = 더 좋은 드릴이 필요
|
bar.drilltierreq = 더 좋은 드릴이 필요
|
||||||
bar.noresources = 자원 부족
|
bar.noresources = 자원 부족
|
||||||
bar.corereq = 코어 기지 필요
|
bar.corereq = 코어 필요
|
||||||
bar.drillspeed = 드릴 속도: {0}/s
|
bar.drillspeed = 드릴 속도: {0}/s
|
||||||
bar.pumpspeed = 펌프 속도: {0}/s
|
bar.pumpspeed = 펌프 속도: {0}/s
|
||||||
bar.efficiency = 효율: {0}%
|
bar.efficiency = 효율: {0}%
|
||||||
@@ -688,7 +688,7 @@ bullet.multiplier = [stat]{0}[lightgray]x 탄약 배수
|
|||||||
bullet.reload = [stat]{0}[lightgray]x 발사 속도
|
bullet.reload = [stat]{0}[lightgray]x 발사 속도
|
||||||
|
|
||||||
unit.blocks = 블록
|
unit.blocks = 블록
|
||||||
unit.blockssquared = blocks²
|
unit.blockssquared = 블록²
|
||||||
unit.powersecond = 전력/초
|
unit.powersecond = 전력/초
|
||||||
unit.liquidsecond = 액체/초
|
unit.liquidsecond = 액체/초
|
||||||
unit.itemssecond = 개/초
|
unit.itemssecond = 개/초
|
||||||
@@ -701,7 +701,7 @@ unit.persecond = /초
|
|||||||
unit.perminute = /분
|
unit.perminute = /분
|
||||||
unit.timesspeed = x 배
|
unit.timesspeed = x 배
|
||||||
unit.percent = %
|
unit.percent = %
|
||||||
unit.shieldhealth = 보호막 체력
|
unit.shieldhealth = 방어막 체력
|
||||||
unit.items = 자원
|
unit.items = 자원
|
||||||
unit.thousands = 천
|
unit.thousands = 천
|
||||||
unit.millions = 백만
|
unit.millions = 백만
|
||||||
@@ -711,7 +711,7 @@ category.power = 전력
|
|||||||
category.liquids = 액체
|
category.liquids = 액체
|
||||||
category.items = 자원
|
category.items = 자원
|
||||||
category.crafting = 입력/출력
|
category.crafting = 입력/출력
|
||||||
category.function = Function
|
category.function = 기능
|
||||||
category.optional = 보조 자원
|
category.optional = 보조 자원
|
||||||
setting.landscape.name = 가로화면 잠금
|
setting.landscape.name = 가로화면 잠금
|
||||||
setting.shadows.name = 그림자
|
setting.shadows.name = 그림자
|
||||||
@@ -722,7 +722,7 @@ setting.flow.name = 자원 흐름량 표시
|
|||||||
setting.buildautopause.name = 건설 자동 일시정지
|
setting.buildautopause.name = 건설 자동 일시정지
|
||||||
setting.animatedwater.name = 액체 애니메이션 효과
|
setting.animatedwater.name = 액체 애니메이션 효과
|
||||||
setting.animatedshields.name = 보호막 애니메이션 효과
|
setting.animatedshields.name = 보호막 애니메이션 효과
|
||||||
setting.antialias.name = 안티 에일리어싱[lightgray] (재시작 필요)[]
|
setting.antialias.name = 위신호 제거 필터[lightgray] (재시작 필요)[]
|
||||||
setting.playerindicators.name = 플레이어 위치 표시기
|
setting.playerindicators.name = 플레이어 위치 표시기
|
||||||
setting.indicators.name = 적 위치 표시기
|
setting.indicators.name = 적 위치 표시기
|
||||||
setting.autotarget.name = 자동 조준
|
setting.autotarget.name = 자동 조준
|
||||||
@@ -734,10 +734,10 @@ setting.fpscap.text = {0} FPS
|
|||||||
setting.uiscale.name = UI 스케일링[lightgray] (재시작 필요)[]
|
setting.uiscale.name = UI 스케일링[lightgray] (재시작 필요)[]
|
||||||
setting.swapdiagonal.name = 항상 대각선 배치
|
setting.swapdiagonal.name = 항상 대각선 배치
|
||||||
setting.difficulty.training = 훈련
|
setting.difficulty.training = 훈련
|
||||||
setting.difficulty.easy = 쉬움
|
setting.difficulty.easy = 무난
|
||||||
setting.difficulty.normal = 보통
|
setting.difficulty.normal = 보통
|
||||||
setting.difficulty.hard = 어려움
|
setting.difficulty.hard = 혼돈
|
||||||
setting.difficulty.insane = 미침
|
setting.difficulty.insane = 박멸
|
||||||
setting.difficulty.name = 난이도:
|
setting.difficulty.name = 난이도:
|
||||||
setting.screenshake.name = 화면 흔들림
|
setting.screenshake.name = 화면 흔들림
|
||||||
setting.effects.name = 효과 보임
|
setting.effects.name = 효과 보임
|
||||||
@@ -769,7 +769,7 @@ setting.savecreate.name = 자동 저장 활성화
|
|||||||
setting.publichost.name = 멀티플레이 공용 서버로 표시
|
setting.publichost.name = 멀티플레이 공용 서버로 표시
|
||||||
setting.playerlimit.name = 플레이어 제한
|
setting.playerlimit.name = 플레이어 제한
|
||||||
setting.chatopacity.name = 채팅창 투명도
|
setting.chatopacity.name = 채팅창 투명도
|
||||||
setting.lasersopacity.name = 전력 레이저 투명도
|
setting.lasersopacity.name = 전선 투명도
|
||||||
setting.bridgeopacity.name = 터널 투명도
|
setting.bridgeopacity.name = 터널 투명도
|
||||||
setting.playerchat.name = 채팅 말풍선 표시
|
setting.playerchat.name = 채팅 말풍선 표시
|
||||||
public.confirm = 게임을 모두에게 공개하시겠습니까?\n[accent]모든 플레이어가 게임에 참여할 수 있습니다.\n[lightgray]설정->게임->멀티플레이 공용 서버로 표시에서 나중에 변경할 수 있습니다.\n\n[sky]번역자 추가[]\n[accent]친구끼리 하려고 이 기능을 활성화 한 뒤에, 친구 외에 다른 플레이어가 들어왔을 때\n해당 플레이어를 차단하는 행위는 비매너를 넘어서는 얌체 행위 그 자체입니다.\n정말로 [scarlet]많은 다른 플레이어들이 오길 원한다[]면 확인하세요.
|
public.confirm = 게임을 모두에게 공개하시겠습니까?\n[accent]모든 플레이어가 게임에 참여할 수 있습니다.\n[lightgray]설정->게임->멀티플레이 공용 서버로 표시에서 나중에 변경할 수 있습니다.\n\n[sky]번역자 추가[]\n[accent]친구끼리 하려고 이 기능을 활성화 한 뒤에, 친구 외에 다른 플레이어가 들어왔을 때\n해당 플레이어를 차단하는 행위는 비매너를 넘어서는 얌체 행위 그 자체입니다.\n정말로 [scarlet]많은 다른 플레이어들이 오길 원한다[]면 확인하세요.
|
||||||
@@ -794,8 +794,8 @@ keybind.clear_building.name = 설계도 초기화
|
|||||||
keybind.press = 키를 누르세요...
|
keybind.press = 키를 누르세요...
|
||||||
keybind.press.axis = 마우스 휠 또는 키를 누르세요...
|
keybind.press.axis = 마우스 휠 또는 키를 누르세요...
|
||||||
keybind.screenshot.name = 맵 스크린샷
|
keybind.screenshot.name = 맵 스크린샷
|
||||||
keybind.toggle_power_lines.name = 전력 레이저 토글
|
keybind.toggle_power_lines.name = 전선 가시도 설정
|
||||||
keybind.toggle_block_status.name = 블록 상태 토글
|
keybind.toggle_block_status.name = 블록 상태 가시도
|
||||||
keybind.move_x.name = X축 이동
|
keybind.move_x.name = X축 이동
|
||||||
keybind.move_y.name = Y축 이동
|
keybind.move_y.name = Y축 이동
|
||||||
keybind.mouse_move.name = 커서를 따라서 이동
|
keybind.mouse_move.name = 커서를 따라서 이동
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ link.dev-builds.description = Niestabilne wersje gry
|
|||||||
link.trello.description = Oficjalna tablica Trello z planowanym funkcjami
|
link.trello.description = Oficjalna tablica Trello z planowanym funkcjami
|
||||||
link.itch.io.description = Strona itch.io z oficjanymi wersjami do pobrania
|
link.itch.io.description = Strona itch.io z oficjanymi wersjami do pobrania
|
||||||
link.google-play.description = Strona w sklepie Google Play
|
link.google-play.description = Strona w sklepie Google Play
|
||||||
link.f-droid.description = F-Droid catalogue listing
|
link.f-droid.description = Wykaz Katalogu F-Droid
|
||||||
link.wiki.description = Oficjana Wiki Mindustry
|
link.wiki.description = Oficjana Wiki Mindustry
|
||||||
link.suggestions.description = Zaproponuj nowe funkcje
|
link.suggestions.description = Zaproponuj nowe funkcje
|
||||||
linkfail = Nie udało się otworzyć linku!\nURL został skopiowany.
|
linkfail = Nie udało się otworzyć linku!\nURL został skopiowany.
|
||||||
@@ -112,12 +112,12 @@ mod.display = [gray]Mod:[orange] {0}
|
|||||||
mod.enabled = [lightgray]Włączony
|
mod.enabled = [lightgray]Włączony
|
||||||
mod.disabled = [scarlet]Wyłączony
|
mod.disabled = [scarlet]Wyłączony
|
||||||
mod.disable = Wyłącz
|
mod.disable = Wyłącz
|
||||||
mod.content = Content:
|
mod.content = Zawartość:
|
||||||
mod.delete.error = Nie udało się usunąć moda. Plik może być w użyciu.
|
mod.delete.error = Nie udało się usunąć moda. Plik może być w użyciu.
|
||||||
mod.requiresversion = [scarlet]Wymaga gry w wersji co najmniej: [accent]{0}
|
mod.requiresversion = [scarlet]Wymaga gry w wersji co najmniej: [accent]{0}
|
||||||
mod.outdated = [scarlet]Niekompatybilne z wersją v6 (no minGameVersion: 105)
|
mod.outdated = [scarlet]Niekompatybilne z wersją v6 (no minGameVersion: 105)
|
||||||
mod.missingdependencies = [scarlet]Brakujące zależności: {0}
|
mod.missingdependencies = [scarlet]Brakujące zależności: {0}
|
||||||
mod.erroredcontent = [scarlet]Content Errors
|
mod.erroredcontent = [scarlet]Błędy Zawartości
|
||||||
mod.errors = Wystąpił błąd podczas ładowania treści.
|
mod.errors = Wystąpił błąd podczas ładowania treści.
|
||||||
mod.noerrorplay = [scarlet]Twoje mody zawierają błędy.[] Wyłącz je lub napraw błędy przed rozpoczęciem gry.
|
mod.noerrorplay = [scarlet]Twoje mody zawierają błędy.[] Wyłącz je lub napraw błędy przed rozpoczęciem gry.
|
||||||
mod.nowdisabled = [scarlet]Brakuje zależności dla moda '{0}':[accent] {1}\n[lightgray]Najpierw trzeba ściągnąć te mody.\nMod zostanie automatycznie wyłączony.
|
mod.nowdisabled = [scarlet]Brakuje zależności dla moda '{0}':[accent] {1}\n[lightgray]Najpierw trzeba ściągnąć te mody.\nMod zostanie automatycznie wyłączony.
|
||||||
@@ -139,8 +139,8 @@ mod.scripts.disable = Twoje urządzenie nie wspiera modów ze skryptami. Musisz
|
|||||||
about.button = O Grze
|
about.button = O Grze
|
||||||
name = Nazwa:
|
name = Nazwa:
|
||||||
noname = Najpierw wybierz[accent] nazwę gracza[].
|
noname = Najpierw wybierz[accent] nazwę gracza[].
|
||||||
planetmap = Planet Map
|
planetmap = Mapa Planety
|
||||||
launchcore = Launch Core
|
launchcore = Wystrzel Rdzeń
|
||||||
filename = Nazwa Pliku:
|
filename = Nazwa Pliku:
|
||||||
unlocked = Odblokowano nową zawartość!
|
unlocked = Odblokowano nową zawartość!
|
||||||
completed = [accent]Ukończony
|
completed = [accent]Ukończony
|
||||||
@@ -284,15 +284,15 @@ selectschematic = [accent][[{0}][] by wybrać+skopiować
|
|||||||
pausebuilding = [accent][[{0}][] by wstrzymać budowę
|
pausebuilding = [accent][[{0}][] by wstrzymać budowę
|
||||||
resumebuilding = [scarlet][[{0}][] by kontynuować budowę
|
resumebuilding = [scarlet][[{0}][] by kontynuować budowę
|
||||||
wave = [accent]Fala {0}
|
wave = [accent]Fala {0}
|
||||||
wave.cap = [accent]Wave {0}/{1}
|
wave.cap = [accent]Fala {0}/{1}
|
||||||
wave.waiting = [lightgray]Fala za {0}
|
wave.waiting = [lightgray]Fala za {0}
|
||||||
wave.waveInProgress = [lightgray]Fala w trakcie
|
wave.waveInProgress = [lightgray]Fala w trakcie
|
||||||
waiting = [lightgray]Oczekiwanie...
|
waiting = [lightgray]Oczekiwanie...
|
||||||
waiting.players = Oczekiwanie na graczy...
|
waiting.players = Oczekiwanie na graczy...
|
||||||
wave.enemies = Pozostało [lightgray]{0} wrogów
|
wave.enemies = Pozostało [lightgray]{0} wrogów
|
||||||
wave.enemy = Pozostał [lightgray]{0} wróg
|
wave.enemy = Pozostał [lightgray]{0} wróg
|
||||||
wave.guardianwarn = Guardian approaching in [accent]{0}[] waves.
|
wave.guardianwarn = Strażnik nadejdzie za [accent]{0}[] fale.
|
||||||
wave.guardianwarn.one = Guardian approaching in [accent]{0}[] wave.
|
wave.guardianwarn.one = Strażnik nadejdzie za [accent]{0}[] fale.
|
||||||
loadimage = Załaduj Obraz
|
loadimage = Załaduj Obraz
|
||||||
saveimage = Zapisz Obraz
|
saveimage = Zapisz Obraz
|
||||||
unknown = Nieznane
|
unknown = Nieznane
|
||||||
@@ -339,9 +339,9 @@ waves.never = <nigdy>
|
|||||||
waves.every = co
|
waves.every = co
|
||||||
waves.waves = fal(e)
|
waves.waves = fal(e)
|
||||||
waves.perspawn = co pojawienie
|
waves.perspawn = co pojawienie
|
||||||
waves.shields = shields/wave
|
waves.shields = tarcze/fala
|
||||||
waves.to = do
|
waves.to = do
|
||||||
waves.guardian = Guardian
|
waves.guardian = Strażnik
|
||||||
waves.preview = Podgląd
|
waves.preview = Podgląd
|
||||||
waves.edit = Edytuj...
|
waves.edit = Edytuj...
|
||||||
waves.copy = Kopiuj Do Schowka
|
waves.copy = Kopiuj Do Schowka
|
||||||
@@ -350,9 +350,9 @@ waves.invalid = Nieprawidłowe fale w schowku.
|
|||||||
waves.copied = Fale zostały skopiowane.
|
waves.copied = Fale zostały skopiowane.
|
||||||
waves.none = Brak zdefiniowanych wrogów.\nPamiętaj, że puste układy fal zostaną automatycznie zastąpione układem domyślnym.
|
waves.none = Brak zdefiniowanych wrogów.\nPamiętaj, że puste układy fal zostaną automatycznie zastąpione układem domyślnym.
|
||||||
|
|
||||||
wavemode.counts = counts
|
wavemode.counts = liczba
|
||||||
wavemode.totals = totals
|
wavemode.totals = sumy
|
||||||
wavemode.health = health
|
wavemode.health = życie
|
||||||
|
|
||||||
editor.default = [lightgray]<Domyślne>
|
editor.default = [lightgray]<Domyślne>
|
||||||
details = Detale...
|
details = Detale...
|
||||||
@@ -420,7 +420,7 @@ filters.empty = [lightgray]Brak filtrów! Dodaj jeden za pomocą przycisku poni
|
|||||||
filter.distort = Zniekształcanie
|
filter.distort = Zniekształcanie
|
||||||
filter.noise = Szum
|
filter.noise = Szum
|
||||||
filter.enemyspawn = Wybierz spawn przeciwnika
|
filter.enemyspawn = Wybierz spawn przeciwnika
|
||||||
filter.spawnpath = Path To Spawn
|
filter.spawnpath = Droga Do Spawnu
|
||||||
filter.corespawn = Wybierz rdzeń
|
filter.corespawn = Wybierz rdzeń
|
||||||
filter.median = Mediana
|
filter.median = Mediana
|
||||||
filter.oremedian = Mediana Rud
|
filter.oremedian = Mediana Rud
|
||||||
@@ -479,7 +479,7 @@ requirement.research = Zbadaj {0}
|
|||||||
requirement.capture = Zdobądź {0}
|
requirement.capture = Zdobądź {0}
|
||||||
bestwave = [lightgray]Najwyższa fala: {0}
|
bestwave = [lightgray]Najwyższa fala: {0}
|
||||||
launch.text = Wystrzel
|
launch.text = Wystrzel
|
||||||
research.multiplayer = Only the host can research items.
|
research.multiplayer = Tylko host może odkrywać przedmoty.
|
||||||
uncover = Odkryj
|
uncover = Odkryj
|
||||||
configure = Skonfiguruj Ładunek
|
configure = Skonfiguruj Ładunek
|
||||||
loadout = Loadout
|
loadout = Loadout
|
||||||
@@ -512,17 +512,17 @@ weather.rain.name = Deszcz
|
|||||||
weather.snow.name = Śnieg
|
weather.snow.name = Śnieg
|
||||||
weather.sandstorm.name = Burza piaskowa
|
weather.sandstorm.name = Burza piaskowa
|
||||||
weather.sporestorm.name = Burza zarodników
|
weather.sporestorm.name = Burza zarodników
|
||||||
weather.fog.name = Fog
|
weather.fog.name = Mgła
|
||||||
|
|
||||||
sectors.unexplored = [lightgray]Niezbadane
|
sectors.unexplored = [lightgray]Niezbadane
|
||||||
sectors.resources = Resources:
|
sectors.resources = Zasoby:
|
||||||
sectors.production = Production:
|
sectors.production = Produkcja:
|
||||||
sectors.stored = Stored:
|
sectors.stored = Zmagazynowane:
|
||||||
sectors.resume = Resume
|
sectors.resume = Kontynuuj
|
||||||
sectors.launch = Launch
|
sectors.launch = Wystrzel
|
||||||
sectors.select = Select
|
sectors.select = Wybierz
|
||||||
sectors.nonelaunch = [lightgray]none (sun)
|
sectors.nonelaunch = [lightgray]żaden (słońce)
|
||||||
sectors.rename = Rename Sector
|
sectors.rename = Zmień Nazwę Sektora
|
||||||
sector.missingresources = [scarlet]Insufficient Core Resources
|
sector.missingresources = [scarlet]Insufficient Core Resources
|
||||||
|
|
||||||
planet.serpulo.name = Serpulo
|
planet.serpulo.name = Serpulo
|
||||||
@@ -564,12 +564,12 @@ settings.graphics = Grafika
|
|||||||
settings.cleardata = Wyczyść Dane Gry...
|
settings.cleardata = Wyczyść Dane Gry...
|
||||||
settings.clear.confirm = Czy jesteś pewien że chcesz usunąć te dane?\nPo tym nie ma powrotu!
|
settings.clear.confirm = Czy jesteś pewien że chcesz usunąć te dane?\nPo tym nie ma powrotu!
|
||||||
settings.clearall.confirm = [scarlet]UWAGA![]\nTo wykasuje wszystkie dane, włącznie z zapisanymi grami i mapami, ustawienami, i znanymi technologiami.\nKiedy naciśniesz 'ok', gra usunie wszystkie swoje dane i automatycznie wyłączy się.
|
settings.clearall.confirm = [scarlet]UWAGA![]\nTo wykasuje wszystkie dane, włącznie z zapisanymi grami i mapami, ustawienami, i znanymi technologiami.\nKiedy naciśniesz 'ok', gra usunie wszystkie swoje dane i automatycznie wyłączy się.
|
||||||
settings.clearsaves.confirm = Are you sure you want to clear all your saves?
|
settings.clearsaves.confirm = Jesteś pewny że chcesz usunąć wszystkie zapisy?
|
||||||
settings.clearsaves = Clear Saves
|
settings.clearsaves = Usuń Zapisy
|
||||||
settings.clearresearch = Clear Research
|
settings.clearresearch = Usuń Postęp Drzewa Tech.
|
||||||
settings.clearresearch.confirm = Are you sure you want to clear all of your campaign research?
|
settings.clearresearch.confirm = Jesteś pewny że chcesz usunąć cały postęp drzewa technologicznego?
|
||||||
settings.clearcampaignsaves = Clear Campaign Saves
|
settings.clearcampaignsaves = Usuń Zapisy Kampanii
|
||||||
settings.clearcampaignsaves.confirm = Are you sure you want to clear all of your campaign saves?
|
settings.clearcampaignsaves.confirm = Jesteś pewny że chcesz usunąć wszystkie zapisy kampanii?
|
||||||
paused = [accent]< Wstrzymano >
|
paused = [accent]< Wstrzymano >
|
||||||
clear = Wyczyść
|
clear = Wyczyść
|
||||||
banned = [scarlet]Zbanowano
|
banned = [scarlet]Zbanowano
|
||||||
@@ -597,16 +597,16 @@ stat.itemsmoved = Prędkość poruszania się
|
|||||||
stat.launchtime = Czas pomiędzy wystrzeleniami
|
stat.launchtime = Czas pomiędzy wystrzeleniami
|
||||||
stat.shootrange = Zasięg
|
stat.shootrange = Zasięg
|
||||||
stat.size = Rozmiar
|
stat.size = Rozmiar
|
||||||
stat.displaysize = Display Size
|
stat.displaysize = Wielkość Wyświetlania
|
||||||
stat.liquidcapacity = Pojemność cieczy
|
stat.liquidcapacity = Pojemność cieczy
|
||||||
stat.powerrange = Zakres mocy
|
stat.powerrange = Zakres mocy
|
||||||
stat.linkrange = Link Range
|
stat.linkrange = Link Range
|
||||||
stat.instructions = Instructions
|
stat.instructions = Instrukcje
|
||||||
stat.powerconnections = Maksymalna ilość połączeń
|
stat.powerconnections = Maksymalna ilość połączeń
|
||||||
stat.poweruse = Zużycie prądu
|
stat.poweruse = Zużycie prądu
|
||||||
stat.powerdamage = Moc/Zniszczenia
|
stat.powerdamage = Moc/Zniszczenia
|
||||||
stat.itemcapacity = Pojemność przedmiotów
|
stat.itemcapacity = Pojemność przedmiotów
|
||||||
stat.memorycapacity = Memory Capacity
|
stat.memorycapacity = Pojemość Pamięci
|
||||||
stat.basepowergeneration = Podstawowa generacja mocy
|
stat.basepowergeneration = Podstawowa generacja mocy
|
||||||
stat.productiontime = Czas produkcji
|
stat.productiontime = Czas produkcji
|
||||||
stat.repairtime = Czas pełnej naprawy bloku
|
stat.repairtime = Czas pełnej naprawy bloku
|
||||||
@@ -618,36 +618,36 @@ stat.boosteffect = Efekt wzmocnienia
|
|||||||
stat.maxunits = Maksymalna ilość jednostek
|
stat.maxunits = Maksymalna ilość jednostek
|
||||||
stat.health = Zdrowie
|
stat.health = Zdrowie
|
||||||
stat.buildtime = Czas budowy
|
stat.buildtime = Czas budowy
|
||||||
stat.maxconsecutive = Max Consecutive
|
stat.maxconsecutive = Maksymalnie Kolejny
|
||||||
stat.buildcost = Koszt budowy
|
stat.buildcost = Koszt budowy
|
||||||
stat.inaccuracy = Niecelność
|
stat.inaccuracy = Niecelność
|
||||||
stat.shots = Strzały
|
stat.shots = Strzały
|
||||||
stat.reload = Strzałów/sekundę
|
stat.reload = Strzałów/Sekundę
|
||||||
stat.ammo = Amunicja
|
stat.ammo = Amunicja
|
||||||
stat.shieldhealth = Shield Health
|
stat.shieldhealth = Życie Tarczy
|
||||||
stat.cooldowntime = Cooldown Time
|
stat.cooldowntime = Czas Odnowienia
|
||||||
stat.explosiveness = Explosiveness
|
stat.explosiveness = Wybuchowość
|
||||||
stat.basedeflectchance = Base Deflect Chance
|
stat.basedeflectchance = Bazowa Szansa Na Odbicie
|
||||||
stat.lightningchance = Lightning Chance
|
stat.lightningchance = Szansa Na Błyskawicę
|
||||||
stat.lightningdamage = Lightning Damage
|
stat.lightningdamage = Obrażenia Błyskawic
|
||||||
stat.flammability = Flammability
|
stat.flammability = Palność
|
||||||
stat.radioactivity = Radioactivity
|
stat.radioactivity = Radioaktywność
|
||||||
stat.heatcapacity = HeatCapacity
|
stat.heatcapacity = Pojemność Cieplna
|
||||||
stat.viscosity = Viscosity
|
stat.viscosity = Lepkość
|
||||||
stat.temperature = Temperature
|
stat.temperature = Temperatura
|
||||||
stat.speed = Speed
|
stat.speed = Prędość
|
||||||
stat.buildspeed = Build Speed
|
stat.buildspeed = Prędkość Budowy
|
||||||
stat.minespeed = Mine Speed
|
stat.minespeed = Prędkość Wydobycia
|
||||||
stat.minetier = Mine Tier
|
stat.minetier = Stopień Wydobycia
|
||||||
stat.payloadcapacity = Payload Capacity
|
stat.payloadcapacity = Ładowność
|
||||||
stat.commandlimit = Command Limit
|
stat.commandlimit = Limit Jednostek Zarządanych
|
||||||
stat.abilities = Abilities
|
stat.abilities = Umiejętności
|
||||||
|
|
||||||
ability.forcefield = Force Field
|
ability.forcefield = Pole Mocy
|
||||||
ability.repairfield = Repair Field
|
ability.repairfield = Pole Naprawy
|
||||||
ability.statusfield = Status Field
|
ability.statusfield = Pole Statusu
|
||||||
ability.unitspawn = {0} Factory
|
ability.unitspawn = {0} Fabryka
|
||||||
ability.shieldregenfield = Shield Regen Field
|
ability.shieldregenfield = Strefa Tarczy Regenerującej
|
||||||
|
|
||||||
bar.drilltierreq = Wymagane Lepsze Wiertło
|
bar.drilltierreq = Wymagane Lepsze Wiertło
|
||||||
bar.noresources = Missing Resources
|
bar.noresources = Missing Resources
|
||||||
@@ -671,7 +671,7 @@ bar.progress = Postęp Budowy
|
|||||||
bar.input = Wejście
|
bar.input = Wejście
|
||||||
bar.output = Wyjście
|
bar.output = Wyjście
|
||||||
|
|
||||||
units.processorcontrol = [lightgray]Processor Controlled
|
units.processorcontrol = [lightgray]Procesor Kontrolowany
|
||||||
|
|
||||||
bullet.damage = [stat]{0}[lightgray] Obrażenia
|
bullet.damage = [stat]{0}[lightgray] Obrażenia
|
||||||
bullet.splashdamage = [stat]{0}[lightgray] Obrażenia obszarowe ~[stat] {1}[lightgray] kratki
|
bullet.splashdamage = [stat]{0}[lightgray] Obrażenia obszarowe ~[stat] {1}[lightgray] kratki
|
||||||
@@ -680,15 +680,15 @@ bullet.homing = [stat]naprowadzający
|
|||||||
bullet.shock = [stat]piorunowy
|
bullet.shock = [stat]piorunowy
|
||||||
bullet.frag = [stat]fragmentacyjny
|
bullet.frag = [stat]fragmentacyjny
|
||||||
bullet.knockback = [stat]{0}[lightgray] odrzut
|
bullet.knockback = [stat]{0}[lightgray] odrzut
|
||||||
bullet.pierce = [stat]{0}[lightgray]x pierce
|
bullet.pierce = [stat]{0}[lightgray]x przebicia
|
||||||
bullet.infinitepierce = [stat]pierce
|
bullet.infinitepierce = [stat]przebijający
|
||||||
bullet.freezing = [stat]zamrażający
|
bullet.freezing = [stat]zamrażający
|
||||||
bullet.tarred = [stat]smolny
|
bullet.tarred = [stat]smolny
|
||||||
bullet.multiplier = [stat]{0}[lightgray]x mnożnik amunicji
|
bullet.multiplier = [stat]{0}[lightgray]x mnożnik amunicji
|
||||||
bullet.reload = [stat]{0}[lightgray]x szybkość ataku
|
bullet.reload = [stat]{0}[lightgray]x szybkość ataku
|
||||||
|
|
||||||
unit.blocks = bloki
|
unit.blocks = bloki
|
||||||
unit.blockssquared = blocks²
|
unit.blockssquared = bloki²
|
||||||
unit.powersecond = jednostek prądu na sekundę
|
unit.powersecond = jednostek prądu na sekundę
|
||||||
unit.liquidsecond = jednostek płynu na sekundę
|
unit.liquidsecond = jednostek płynu na sekundę
|
||||||
unit.itemssecond = przedmiotów na sekundę
|
unit.itemssecond = przedmiotów na sekundę
|
||||||
@@ -701,7 +701,7 @@ unit.persecond = /sekundę
|
|||||||
unit.perminute = /min
|
unit.perminute = /min
|
||||||
unit.timesspeed = x prędkość
|
unit.timesspeed = x prędkość
|
||||||
unit.percent = %
|
unit.percent = %
|
||||||
unit.shieldhealth = shield health
|
unit.shieldhealth = życie tarczy
|
||||||
unit.items = przedmioty
|
unit.items = przedmioty
|
||||||
unit.thousands = tys.
|
unit.thousands = tys.
|
||||||
unit.millions = mln
|
unit.millions = mln
|
||||||
@@ -711,7 +711,7 @@ category.power = Prąd
|
|||||||
category.liquids = Płyny
|
category.liquids = Płyny
|
||||||
category.items = Przedmioty
|
category.items = Przedmioty
|
||||||
category.crafting = Przetwórstwo
|
category.crafting = Przetwórstwo
|
||||||
category.function = Function
|
category.function = Funkcja
|
||||||
category.optional = Dodatkowe ulepszenia
|
category.optional = Dodatkowe ulepszenia
|
||||||
setting.landscape.name = Zablokuj tryb panoramiczny
|
setting.landscape.name = Zablokuj tryb panoramiczny
|
||||||
setting.shadows.name = Cienie
|
setting.shadows.name = Cienie
|
||||||
@@ -747,19 +747,19 @@ setting.conveyorpathfinding.name = Ustalanie ścieżki przenośników
|
|||||||
setting.sensitivity.name = Czułość kontrolera
|
setting.sensitivity.name = Czułość kontrolera
|
||||||
setting.saveinterval.name = Interwał automatycznego zapisywania
|
setting.saveinterval.name = Interwał automatycznego zapisywania
|
||||||
setting.seconds = {0} sekund
|
setting.seconds = {0} sekund
|
||||||
setting.blockselecttimeout.name = Block Select Timeout
|
setting.blockselecttimeout.name = Czas Wyboru Klocka
|
||||||
setting.milliseconds = {0} milisekund
|
setting.milliseconds = {0} milisekund
|
||||||
setting.fullscreen.name = Pełny ekran
|
setting.fullscreen.name = Pełny ekran
|
||||||
setting.borderlesswindow.name = Bezramkowe okno[lightgray] (może wymagać restartu)
|
setting.borderlesswindow.name = Bezramkowe okno[lightgray] (może wymagać restartu)
|
||||||
setting.fps.name = Pokazuj FPS oraz ping
|
setting.fps.name = Pokazuj FPS oraz ping
|
||||||
setting.smoothcamera.name = Smooth Camera
|
setting.smoothcamera.name = Gładka Kamera
|
||||||
setting.vsync.name = Synchronizacja pionowa
|
setting.vsync.name = Synchronizacja pionowa
|
||||||
setting.pixelate.name = Pikselacja [lightgray](wyłącza animacje)
|
setting.pixelate.name = Pikselacja [lightgray](wyłącza animacje)
|
||||||
setting.minimap.name = Pokaż Minimapę
|
setting.minimap.name = Pokaż Minimapę
|
||||||
setting.coreitems.name = Display Core Items (WIP)
|
setting.coreitems.name = Poazuj Przedmoty W Rdzeniu (WIP)
|
||||||
setting.position.name = Pokazuj położenie gracza
|
setting.position.name = Pokazuj położenie gracza
|
||||||
setting.musicvol.name = Głośność muzyki
|
setting.musicvol.name = Głośność muzyki
|
||||||
setting.atmosphere.name = Show Planet Atmosphere
|
setting.atmosphere.name = Pokazuj atmosferę planety
|
||||||
setting.ambientvol.name = Głośność otoczenia
|
setting.ambientvol.name = Głośność otoczenia
|
||||||
setting.mutemusic.name = Wycisz muzykę
|
setting.mutemusic.name = Wycisz muzykę
|
||||||
setting.sfxvol.name = Głośność dźwięków
|
setting.sfxvol.name = Głośność dźwięków
|
||||||
@@ -782,11 +782,11 @@ keybinds.mobile = [scarlet]Większość skrótów klawiszowych nie funkcjonuje w
|
|||||||
category.general.name = Ogólne
|
category.general.name = Ogólne
|
||||||
category.view.name = Wyświetl
|
category.view.name = Wyświetl
|
||||||
category.multiplayer.name = Wielu graczy
|
category.multiplayer.name = Wielu graczy
|
||||||
category.blocks.name = Block Select
|
category.blocks.name = Wybierz Blok
|
||||||
command.attack = Atakuj
|
command.attack = Atakuj
|
||||||
command.rally = Zbierz
|
command.rally = Zbierz
|
||||||
command.retreat = Wycofaj
|
command.retreat = Wycofaj
|
||||||
command.idle = Idle
|
command.idle = Nieaktywny
|
||||||
placement.blockselectkeys = \n[lightgray]Klawisz: [{0},
|
placement.blockselectkeys = \n[lightgray]Klawisz: [{0},
|
||||||
keybind.respawn.name = Respawn
|
keybind.respawn.name = Respawn
|
||||||
keybind.control.name = Control Unit
|
keybind.control.name = Control Unit
|
||||||
@@ -795,12 +795,12 @@ keybind.press = Naciśnij wybrany klawisz...
|
|||||||
keybind.press.axis = Naciśnij oś lub klawisz...
|
keybind.press.axis = Naciśnij oś lub klawisz...
|
||||||
keybind.screenshot.name = Zrzut ekranu mapy
|
keybind.screenshot.name = Zrzut ekranu mapy
|
||||||
keybind.toggle_power_lines.name = Zmień widoczność linii energetycznych
|
keybind.toggle_power_lines.name = Zmień widoczność linii energetycznych
|
||||||
keybind.toggle_block_status.name = Toggle Block Statuses
|
keybind.toggle_block_status.name = Przełączanie Między Statusami Bloków
|
||||||
keybind.move_x.name = Poruszanie w poziomie
|
keybind.move_x.name = Poruszanie w poziomie
|
||||||
keybind.move_y.name = Poruszanie w pionie
|
keybind.move_y.name = Poruszanie w pionie
|
||||||
keybind.mouse_move.name = Podążaj Za Myszą
|
keybind.mouse_move.name = Podążaj Za Myszą
|
||||||
keybind.pan.name = Pan View
|
keybind.pan.name = Widok Panoramiczny
|
||||||
keybind.boost.name = Boost
|
keybind.boost.name = Przyspiesz
|
||||||
keybind.schematic_select.name = Wybierz region
|
keybind.schematic_select.name = Wybierz region
|
||||||
keybind.schematic_menu.name = Menu schematów
|
keybind.schematic_menu.name = Menu schematów
|
||||||
keybind.schematic_flip_x.name = Obróć schemat horyzontalnie
|
keybind.schematic_flip_x.name = Obróć schemat horyzontalnie
|
||||||
@@ -827,8 +827,8 @@ keybind.diagonal_placement.name = Budowa po skosie
|
|||||||
keybind.pick.name = Wybierz Blok
|
keybind.pick.name = Wybierz Blok
|
||||||
keybind.break_block.name = Zniszcz Blok
|
keybind.break_block.name = Zniszcz Blok
|
||||||
keybind.deselect.name = Odznacz
|
keybind.deselect.name = Odznacz
|
||||||
keybind.pickupCargo.name = Pickup Cargo
|
keybind.pickupCargo.name = Podnieś Ładunek
|
||||||
keybind.dropCargo.name = Drop Cargo
|
keybind.dropCargo.name = Opuść Ładunek
|
||||||
keybind.command.name = Command
|
keybind.command.name = Command
|
||||||
keybind.shoot.name = Strzelanie
|
keybind.shoot.name = Strzelanie
|
||||||
keybind.zoom.name = Przybliżanie
|
keybind.zoom.name = Przybliżanie
|
||||||
@@ -857,29 +857,29 @@ mode.pvp.name = PvP
|
|||||||
mode.pvp.description = Walcz przeciwko innym graczom.\n[gray]Wymaga co najmniej dwóch rdzeni o róźnych kolorach na mapie, aby móc grać w tym trybie
|
mode.pvp.description = Walcz przeciwko innym graczom.\n[gray]Wymaga co najmniej dwóch rdzeni o róźnych kolorach na mapie, aby móc grać w tym trybie
|
||||||
mode.attack.name = Atak
|
mode.attack.name = Atak
|
||||||
mode.attack.description = Brak fal. Celem jest zniszczenie bazy przeciwnika.\n[gray]Wymaga czerwonego rdzenia na mapie, aby móc grać w tym trybie.
|
mode.attack.description = Brak fal. Celem jest zniszczenie bazy przeciwnika.\n[gray]Wymaga czerwonego rdzenia na mapie, aby móc grać w tym trybie.
|
||||||
mode.custom = Własny tryb
|
mode.custom = Własny Tryb
|
||||||
|
|
||||||
rules.infiniteresources = Nieskończone zasoby
|
rules.infiniteresources = Nieskończone Zasoby
|
||||||
rules.reactorexplosions = Eksplozje reaktorów
|
rules.reactorexplosions = Eksplozje Reaktorów
|
||||||
rules.schematic = Schematics Allowed
|
rules.schematic = Schematy Są Dozwolone
|
||||||
rules.wavetimer = Zegar fal
|
rules.wavetimer = Zegar Fal
|
||||||
rules.waves = Fale
|
rules.waves = Fale
|
||||||
rules.attack = Tryb ataku
|
rules.attack = Tryb Ataku
|
||||||
rules.buildai = AI Building
|
rules.buildai = SI Może Budować
|
||||||
rules.enemyCheat = Nieskończone zasoby komputera-przeciwnika (czerwonego zespołu)
|
rules.enemyCheat = Nieskończone Zasoby SI (czerwonego zespołu)
|
||||||
rules.blockhealthmultiplier = Mnożnik życia bloków
|
rules.blockhealthmultiplier = Mnożnik Życia Bloków
|
||||||
rules.blockdamagemultiplier = Block Damage Multiplier
|
rules.blockdamagemultiplier = Mnożnik Uszkodzeń Bloków
|
||||||
rules.unitbuildspeedmultiplier = Mnożnik prędkości tworzenia jednostek
|
rules.unitbuildspeedmultiplier = Mnożnik Prędkości Tworzenia Jednostek
|
||||||
rules.unithealthmultiplier = Mnożnik życia jednostek
|
rules.unithealthmultiplier = Mnożnik Życia Jednostek
|
||||||
rules.unitdamagemultiplier = Mnożnik obrażeń jednostek
|
rules.unitdamagemultiplier = Mnożnik Obrażeń jednostek
|
||||||
rules.enemycorebuildradius = Zasięg blokady budowy przy rdzeniu wroga:[lightgray] (kratki)
|
rules.enemycorebuildradius = Zasięg Blokady Budowy Przy Rdzeniu Wroga:[lightgray] (kratki)
|
||||||
rules.wavespacing = Odstępy między falami:[lightgray] (sek)
|
rules.wavespacing = Odstępy Między Falami:[lightgray] (sek)
|
||||||
rules.buildcostmultiplier = Mnożnik kosztów budowania
|
rules.buildcostmultiplier = Mnożnik Kosztów Budowania
|
||||||
rules.buildspeedmultiplier = Mnożnik prędkości budowania
|
rules.buildspeedmultiplier = Mnożnik Prędkości Budowania
|
||||||
rules.deconstructrefundmultiplier = Mnożnik Zwrotu Dekonstrukcji
|
rules.deconstructrefundmultiplier = Mnożnik Zwrotu Dekonstrukcji
|
||||||
rules.waitForWaveToEnd = Fale czekają na przeciwników
|
rules.waitForWaveToEnd = Fale Czekają Na Przeciwników
|
||||||
rules.dropzoneradius = Zasięg strefy zrzutu:[lightgray] (kratki)
|
rules.dropzoneradius = Zasięg Strefy Zrzutu:[lightgray] (kratki)
|
||||||
rules.unitammo = Units Require Ammo
|
rules.unitammo = Jednostki Potrzebują Amunicji
|
||||||
rules.title.waves = Fale
|
rules.title.waves = Fale
|
||||||
rules.title.resourcesbuilding = Zasoby i Budowanie
|
rules.title.resourcesbuilding = Zasoby i Budowanie
|
||||||
rules.title.enemy = Przeciwnicy
|
rules.title.enemy = Przeciwnicy
|
||||||
@@ -887,13 +887,13 @@ rules.title.unit = Jednostki
|
|||||||
rules.title.experimental = Eksperymentalne
|
rules.title.experimental = Eksperymentalne
|
||||||
rules.title.environment = Environment
|
rules.title.environment = Environment
|
||||||
rules.lighting = Oświetlenie
|
rules.lighting = Oświetlenie
|
||||||
rules.enemyLights = Enemy Lights
|
rules.enemyLights = Wrogowie Emitują Światło
|
||||||
rules.fire = Fire
|
rules.fire = Ogień
|
||||||
rules.explosions = Block/Unit Explosion Damage
|
rules.explosions = Uszkodzenia Wybuchu Klocka/Jednostki
|
||||||
rules.ambientlight = Otaczające Światło
|
rules.ambientlight = Otaczające Światło
|
||||||
rules.weather = Weather
|
rules.weather = Pogoda
|
||||||
rules.weather.frequency = Frequency:
|
rules.weather.frequency = Częstotliwość:
|
||||||
rules.weather.duration = Duration:
|
rules.weather.duration = Czas trwania:
|
||||||
|
|
||||||
content.item.name = Przedmioty
|
content.item.name = Przedmioty
|
||||||
content.liquid.name = Płyny
|
content.liquid.name = Płyny
|
||||||
@@ -955,7 +955,7 @@ unit.reign.name = Reign
|
|||||||
unit.vela.name = Vela
|
unit.vela.name = Vela
|
||||||
unit.corvus.name = Corvus
|
unit.corvus.name = Corvus
|
||||||
|
|
||||||
block.resupply-point.name = Resupply Point
|
block.resupply-point.name = Punkt Uzupełnienia
|
||||||
block.parallax.name = Parallax
|
block.parallax.name = Parallax
|
||||||
block.cliff.name = Klif
|
block.cliff.name = Klif
|
||||||
block.sand-boulder.name = Piaskowy Głaz
|
block.sand-boulder.name = Piaskowy Głaz
|
||||||
@@ -1147,28 +1147,28 @@ block.container.name = Kontener
|
|||||||
block.launch-pad.name = Wyrzutnia
|
block.launch-pad.name = Wyrzutnia
|
||||||
block.launch-pad-large.name = Duża Wyrzutnia
|
block.launch-pad-large.name = Duża Wyrzutnia
|
||||||
block.segment.name = Segment
|
block.segment.name = Segment
|
||||||
block.command-center.name = Command Center
|
block.command-center.name = Centrum Dowodzenia
|
||||||
block.ground-factory.name = Fabryka Naziemna
|
block.ground-factory.name = Fabryka Naziemna
|
||||||
block.air-factory.name = Fabryka Powietrzna
|
block.air-factory.name = Fabryka Powietrzna
|
||||||
block.naval-factory.name = Fabryka Morska
|
block.naval-factory.name = Fabryka Morska
|
||||||
block.additive-reconstructor.name = Rekonstruktor Addytywny
|
block.additive-reconstructor.name = Rekonstruktor Addytywny
|
||||||
block.multiplicative-reconstructor.name = Rekonstruktor Multiplikatywny
|
block.multiplicative-reconstructor.name = Rekonstruktor Multiplikatywny
|
||||||
block.exponential-reconstructor.name = Rekonstruktor Wykładniczy
|
block.exponential-reconstructor.name = Rekonstruktor Wykładniczy
|
||||||
block.tetrative-reconstructor.name = Tetrative Reconstructor
|
block.tetrative-reconstructor.name = Rekonstruktor Tetratywny
|
||||||
block.payload-conveyor.name = Przenośnik Masowy
|
block.payload-conveyor.name = Przenośnik Masowy
|
||||||
block.payload-router.name = Rozdzielacz Ładunku
|
block.payload-router.name = Rozdzielacz Ładunku
|
||||||
block.disassembler.name = Dezasembler
|
block.disassembler.name = Rozkładacz
|
||||||
block.silicon-crucible.name = Silicon Crucible
|
block.silicon-crucible.name = Tygiel Krzemu
|
||||||
block.overdrive-dome.name = Kopuła Pola Overdrive
|
block.overdrive-dome.name = Kopuła Pola Overdrive
|
||||||
|
|
||||||
block.switch.name = Switch
|
block.switch.name = Przełącznik
|
||||||
block.micro-processor.name = Micro Processor
|
block.micro-processor.name = Micro Procesor
|
||||||
block.logic-processor.name = Logic Processor
|
block.logic-processor.name = Logiczny Procesor
|
||||||
block.hyper-processor.name = Hyper Processor
|
block.hyper-processor.name = Hyper Procesor
|
||||||
block.logic-display.name = Logic Display
|
block.logic-display.name = Wyświetlacz Logiczny
|
||||||
block.large-logic-display.name = Large Logic Display
|
block.large-logic-display.name = Duży Wyświetlacz Logiczny
|
||||||
block.memory-cell.name = Memory Cell
|
block.memory-cell.name = Komórka Pamięci
|
||||||
block.memory-bank.name = Memory Bank
|
block.memory-bank.name = Bank Pamięci
|
||||||
|
|
||||||
team.blue.name = niebieski
|
team.blue.name = niebieski
|
||||||
team.crux.name = czerwony
|
team.crux.name = czerwony
|
||||||
@@ -1219,7 +1219,7 @@ item.pyratite.description = Niesamowicie palny związek używany w zbrojeniu. Ni
|
|||||||
liquid.water.description = Powszechnie używana do schładzania budowli i przetwarzania odpadów.
|
liquid.water.description = Powszechnie używana do schładzania budowli i przetwarzania odpadów.
|
||||||
liquid.slag.description = Wiele różnych metali stopionych i zmieszanych razem. Może zostać rozdzielony na jego metale składowe, albo wystrzelony w wrogie jednostki i użyty jako broń.
|
liquid.slag.description = Wiele różnych metali stopionych i zmieszanych razem. Może zostać rozdzielony na jego metale składowe, albo wystrzelony w wrogie jednostki i użyty jako broń.
|
||||||
liquid.oil.description = Używany w do produkcji złożonych materiałów. Może zostać przetworzony na węgiel, lub wystrzelony w wrogów przez wieżyczke.
|
liquid.oil.description = Używany w do produkcji złożonych materiałów. Może zostać przetworzony na węgiel, lub wystrzelony w wrogów przez wieżyczke.
|
||||||
liquid.cryofluid.description = Obojętna, niekorozyjna ciecz utworzona z wody i tytanu
|
liquid.cryofluid.description = Obojętna, niekorozyjna ciecz utworzona z wody i tytanu.
|
||||||
|
|
||||||
block.message.description = Przechowuje wiadomość. Wykorzystywane do komunikacji pomiędzy sojusznikami.
|
block.message.description = Przechowuje wiadomość. Wykorzystywane do komunikacji pomiędzy sojusznikami.
|
||||||
block.graphite-press.description = Kompresuje kawałki węgla w czyste blaszki grafitu.
|
block.graphite-press.description = Kompresuje kawałki węgla w czyste blaszki grafitu.
|
||||||
@@ -1278,7 +1278,7 @@ block.underflow-gate.description = Odwrotność bramy przepełnieniowej, który
|
|||||||
block.mass-driver.description = Najlepszy blok do transportu przedmiotów. Zbiera wiele przedmiotów naraz a potem wystrzeliwuje je do kolejnej katapulty masy na bardzo duże odległości.
|
block.mass-driver.description = Najlepszy blok do transportu przedmiotów. Zbiera wiele przedmiotów naraz a potem wystrzeliwuje je do kolejnej katapulty masy na bardzo duże odległości.
|
||||||
block.mechanical-pump.description = Tania pompa o niskiej wydajności. Nie wymaga prądu.
|
block.mechanical-pump.description = Tania pompa o niskiej wydajności. Nie wymaga prądu.
|
||||||
block.rotary-pump.description = Zaawansowana pompa. Pompuje więcej cieczy, ale wymaga zasilania.
|
block.rotary-pump.description = Zaawansowana pompa. Pompuje więcej cieczy, ale wymaga zasilania.
|
||||||
block.thermal-pump.description = Najlepsza pompa.
|
block.thermal-pump.description = Najlepsza pompa. Pompuje ogromne ilości cieczy, ale wymaga zasilaina.
|
||||||
block.conduit.description = Podstawowy blok do transportowania cieczy. Używany w połączeniu z pompami i innymi rurami.
|
block.conduit.description = Podstawowy blok do transportowania cieczy. Używany w połączeniu z pompami i innymi rurami.
|
||||||
block.pulse-conduit.description = Zaawansowany blok do transportowania cieczy. Transportuje je szybciej i magazynuje więcej niż standardowe rury.
|
block.pulse-conduit.description = Zaawansowany blok do transportowania cieczy. Transportuje je szybciej i magazynuje więcej niż standardowe rury.
|
||||||
block.plated-conduit.description = Przesyła ciecze z taką samą szybkością co rura tytanowa, ale jest bardziej odporna. Wejściami bocznymi mogą być tylko inne rury.\nWycieka z niej mniej cieczy.
|
block.plated-conduit.description = Przesyła ciecze z taką samą szybkością co rura tytanowa, ale jest bardziej odporna. Wejściami bocznymi mogą być tylko inne rury.\nWycieka z niej mniej cieczy.
|
||||||
@@ -1332,4 +1332,63 @@ block.cyclone.description = Duża szybkostrzelna wieża.
|
|||||||
block.spectre.description = Duże działo dwulufowe, które strzela potężnymi pociskami przebijającymi pancerz w jednostki naziemne i powietrzne.
|
block.spectre.description = Duże działo dwulufowe, które strzela potężnymi pociskami przebijającymi pancerz w jednostki naziemne i powietrzne.
|
||||||
block.meltdown.description = Duże działo laserowe, które strzela potężnymi wiązkami dalekiego zasięgu. Wymaga chłodzenia.
|
block.meltdown.description = Duże działo laserowe, które strzela potężnymi wiązkami dalekiego zasięgu. Wymaga chłodzenia.
|
||||||
block.repair-point.description = Bez przerw naprawia najbliższą uszkodzoną jednostkę w jego zasięgu.
|
block.repair-point.description = Bez przerw naprawia najbliższą uszkodzoną jednostkę w jego zasięgu.
|
||||||
block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
|
block.segment.description = Uszkadza i niszczy wrogie pociskiski poza laserami.
|
||||||
|
block.parallax.description = Wykorzystuje laser, który przyciąga do siebie wrogów, zadając im obrażenia.
|
||||||
|
block.tsunami.description = Strzela wielkim strumieniem cieczy we wrogów. Automatycznie gasi ogień, gdy jest podłączony do wody.
|
||||||
|
block.silicon-crucible.description = Oczyszcza krzem z węgla i piasku wykorzystując piratian. Bardziej efektywny w gorących miejscach.
|
||||||
|
block.disassembler.description = Oddziela egzotyczne materiały z mieszaniny jaką jest żużel z małą efektywnością. Może wyprodukować tor.
|
||||||
|
block.overdrive-dome.description = Zwiększa szybkość budynków w zasięgu. Wymaga włókna fazowego oraz krzemu by działać.
|
||||||
|
block.payload-conveyor.description = Przenosi duże ładunki, takie jak jednostki z fabryk.
|
||||||
|
block.payload-router.description = Dzieli wejście z przewoźnika masowego i dzieli je w 3 różne strony.
|
||||||
|
block.command-center.description = Kontroluje zachowanie jednostek paroma różnymi komendami.
|
||||||
|
block.ground-factory.description = Produkuje jednostki naziemne. Jednostki mogą być do razu wykorzystane lub przeniesone do rekonstrukota by je ulepszyć.
|
||||||
|
block.air-factory.description = Produkuje jednostki powietrzne. Jednostki mogą być do razu wykorzystane lub przeniesone do rekonstrukota by je ulepszyć.
|
||||||
|
block.naval-factory.description = Produkuje jednostki morskie. Jednostki mogą być do razu wykorzystane lub przeniesone do rekonstrukota by je ulepszyć.
|
||||||
|
block.additive-reconstructor.description = Ulepsza wsadzone jednostki do stopnia drugiego.
|
||||||
|
block.multiplicative-reconstructor.description = Ulepsza wsadzone jednostki do stopnia trzeciego.
|
||||||
|
block.exponential-reconstructor.description = Ulepsza wsadzone jednostki do stopnia czwartego.
|
||||||
|
block.tetrative-reconstructor.description = Ulepsza wsadzone jednostki do stopnia piątego i ostatniego.
|
||||||
|
block.switch.description = Jest Przełączalny. Stan jego może być odczytywany lub kontrolowany przez procesory.
|
||||||
|
block.micro-processor.description = Uruchamia sekwencję instrukcji logicznych w pętli. Może być wykorzystany do kontroli bloków lub jednostek.
|
||||||
|
block.logic-processor.description = Uruchamia sekwencję instrukcji logicznych w pętli. Może być wykorzystany do kontroli bloków lub jednostek. Szybszy niż mikro procesor.
|
||||||
|
block.hyper-processor.description = Uruchamia sekwencję instrukcji logicznych w pętli. Może być wykorzystany do kontroli bloków lub jednostek. Szybszy niż logiczny procesor.
|
||||||
|
block.memory-cell.description = Przechowuje informacje dla procesora.
|
||||||
|
block.memory-bank.description = Przechowuje informacje dla procesora. Duża pojemność.
|
||||||
|
block.logic-display.description = Wyświetla obraz z procesora.
|
||||||
|
block.large-logic-display.description = Wyświetla obraz z procesora.
|
||||||
|
block.interplanetary-accelerator.description = Masywna elektromagnetyczna wierza. Przyspiesza rdzeń do prędkości ucieczki by wylądować na innych planetach.
|
||||||
|
|
||||||
|
|
||||||
|
unit.dagger.description = Strzela standardowymi pociskami w najbliższych wrogów.
|
||||||
|
unit.mace.description = Strzela strumieniami ognia w najbliższych wrogów.
|
||||||
|
unit.fortress.description = Strzela artylerią dalekiego zasięgu we wrogie jednostki na ziemi.
|
||||||
|
unit.scepter.description = Strzela salwą naładowanych pocisków we wszystkich przeciwników.
|
||||||
|
unit.reign.description = Strzela salwą masywnych przebijających pocisków we wszystkich przeciwników.
|
||||||
|
unit.nova.description = Wystrzeliwuje pioruny, które uszkadzają przeciwników i leczą sojusznicze struktury. Może latać.
|
||||||
|
unit.pulsar.description = Wystrzeliwuje elektryczne pioruny, które uszkadzają przeciwników i leczą sojusznicze struktury. Może latać.
|
||||||
|
unit.quasar.description = Wystrzeliwuje wiązki laserowe, które uszkadzają przeciwników i leczą sojusznicze struktury. Może latać. Posiada tarcze.
|
||||||
|
unit.vela.description = Wystrzeliwuje masywny ciągły laser, który uszkadza przeciwników i leczy sojusznicze struktury. Może latać.
|
||||||
|
unit.corvus.description = Wystrzeliwuje masywny laserowy błysk, który uszkadza przeciwników i leczy sojusznicze struktury. Może przejść po większości terenu.
|
||||||
|
unit.crawler.description = Wbiega w przeciwników i dokonuje samozniszczenia powodując dużą eksplozje.
|
||||||
|
unit.atrax.description = Wystrzeliwuje wyniszczające kule żużlu w cele na ziemi. Może przejść po większości terenu.
|
||||||
|
unit.spiroct.description = Strzela wyczerpującymi życie laserami we wrogów, naprawiając siebie. Może przejść po większości terenu.
|
||||||
|
unit.arkyid.description = Strzela dużymi wyczerpującymi życie laserami we wrogów, naprawiając siebie. Może przejść po większości terenu.
|
||||||
|
unit.toxopid.description = Strzela wielkimi elektrycznymi skupionymi kulami i przebijającymi laserami we wrogów. Może przejść po większości terenu.
|
||||||
|
unit.flare.description = Strzela standardowymi pociskami we jednostki naziemne.
|
||||||
|
unit.horizon.description = Upuszcza stos bomb na jednostki naziemne.
|
||||||
|
unit.zenith.description = Strzela salwą rakiet w każdego pobliskiego wroga.
|
||||||
|
unit.antumbra.description = Strzela zaporą rakiet w każdego pobliskiego wroga.
|
||||||
|
unit.eclipse.description = Strzela dwoma przebijającymi laserami i pociskami przeciwlotniczymi we wrogów.
|
||||||
|
unit.mono.description = Automatycznie wykopuje miedź i ołów i odkłada je do rdzenia.
|
||||||
|
unit.poly.description = Automatycznie naprawia zniszczone struktury i asystuje w budowie.
|
||||||
|
unit.mega.description = Automatycznie naprawia zniszczone struktury. Może podnosić małe jednostki i bloki.
|
||||||
|
unit.quad.description = Upuszcza wielkie bomby na cele na ziemi, które uszkadzają przeciwników i leczą sojusznicze struktury. Może podnosić jednostki naziemne średniej wielkości.
|
||||||
|
unit.oct.description = Broni wszystkie jednostki tarczą regeneracyjną. Może podnosić większość jednostek naziemnych.
|
||||||
|
unit.risso.description = Strzela sporą ilością pocisków i rakiet w najbliższych przeciwników.
|
||||||
|
unit.minke.description = Strzela granatami i standardowymi pociskami w najbliższych przeciwników.
|
||||||
|
unit.bryde.description = Strzela granatami i rakietami na dużą odległość we wrogów.
|
||||||
|
unit.sei.description = Strzela dużą ilością rakiet oraz przebijających zbroje pocisków we wrogów
|
||||||
|
unit.omura.description = Strzela przebijającym superszybkim pociskiem we wrogów ze sporej odległości. Produkuje Błyski (jednostki)
|
||||||
|
unit.alpha.description = Chroni Rdzeń: Odłamek przed wrogami. Buduje struktury.
|
||||||
|
unit.beta.description = Chroni Rdzeń: Podstawa przed wrogami. Buduje struktury.
|
||||||
|
unit.gamma.description = Chroni Rdzeń: Jądro przed wrogami. Buduje struktury.
|
||||||
|
|||||||
@@ -17,11 +17,14 @@ linkfail = Linkul nu a putut fi deschis!\nAdresa URL a fost copiată.
|
|||||||
screenshot = Captură de ecran salvată la {0}
|
screenshot = Captură de ecran salvată la {0}
|
||||||
screenshot.invalid = Harta e prea mare. Se poate să nu existe suficientă memorie pentru captura de ecran.
|
screenshot.invalid = Harta e prea mare. Se poate să nu existe suficientă memorie pentru captura de ecran.
|
||||||
gameover = Jocul s-a încheiat
|
gameover = Jocul s-a încheiat
|
||||||
|
gameover.disconnect = Deconectare
|
||||||
gameover.pvp = Echipa [accent] {0}[] este câștigătoare!
|
gameover.pvp = Echipa [accent] {0}[] este câștigătoare!
|
||||||
|
gameover.waiting = [accent]Se așteaptă următoarea hartă...
|
||||||
highscore = [accent]Scor maxim nou!
|
highscore = [accent]Scor maxim nou!
|
||||||
copied = Copiat.
|
copied = Copiat.
|
||||||
indev.popup = [accent]v6[] este momentan în [accent]beta[].\n[lightgray]Asta înseamnă că:[]\n[scarlet]- Campania este neterminată[]\n- Efectele sonore și muzica sunt neterminate/lipsesc\n- Tot ce vedeți se poate schimba sau poate fi eliminat.\n\nPentru a raporta buguri și crashuri intrați pe [accent]Github[].
|
indev.popup = [accent]v6[] este momentan în [accent]beta[].\n[lightgray]Asta înseamnă că:[]\n[scarlet]- Campania este neterminată[]\n- Tot ce vedeți se poate schimba sau poate fi eliminat.\n\nPentru a raporta buguri și crashuri intrați pe [accent]Github[].
|
||||||
indev.notready = Această secțiune a jocului nu este gata încă.
|
indev.notready = Această secțiune a jocului nu este gata încă.
|
||||||
|
indev.campaign = [accent]Ai ajuns la finalul campaniei![]\n\nAi mers cât de departe se poate momentan. Călătoria interplanetară va fi adăugată într-un update viitor.
|
||||||
|
|
||||||
load.sound = Sunete
|
load.sound = Sunete
|
||||||
load.map = Hărți
|
load.map = Hărți
|
||||||
@@ -57,6 +60,7 @@ schematic.rename = Redenumește Schema
|
|||||||
schematic.info = {0}x{1}, {2} blocuri
|
schematic.info = {0}x{1}, {2} blocuri
|
||||||
schematic.disabled = [scarlet]Schemele sunt dezactivate[]\nNu ai voie să folosești scheme pe această [accent]hartă[] sau [accent]server.
|
schematic.disabled = [scarlet]Schemele sunt dezactivate[]\nNu ai voie să folosești scheme pe această [accent]hartă[] sau [accent]server.
|
||||||
|
|
||||||
|
stats = Informații
|
||||||
stat.wave = Valuri Învinse:[accent] {0}
|
stat.wave = Valuri Învinse:[accent] {0}
|
||||||
stat.enemiesDestroyed = Inamici Distruși:[accent] {0}
|
stat.enemiesDestroyed = Inamici Distruși:[accent] {0}
|
||||||
stat.built = Structuri Construite:[accent] {0}
|
stat.built = Structuri Construite:[accent] {0}
|
||||||
@@ -290,6 +294,7 @@ cancelbuilding = [accent][[{0}][] pt a curăța planul
|
|||||||
selectschematic = [accent][[{0}][] pt selectare+copiere
|
selectschematic = [accent][[{0}][] pt selectare+copiere
|
||||||
pausebuilding = [accent][[{0}][] pt a face o pauză de la construit
|
pausebuilding = [accent][[{0}][] pt a face o pauză de la construit
|
||||||
resumebuilding = [scarlet][[{0}][] pt a continua construitul
|
resumebuilding = [scarlet][[{0}][] pt a continua construitul
|
||||||
|
showui = Interfață ascunsă.\nApasă [accent][[{0}][] pt a vedea interfața.
|
||||||
wave = [accent]Valul {0}
|
wave = [accent]Valul {0}
|
||||||
wave.cap = [accent]Valul {0}/{1}
|
wave.cap = [accent]Valul {0}/{1}
|
||||||
wave.waiting = [lightgray]Val în {0}
|
wave.waiting = [lightgray]Val în {0}
|
||||||
@@ -297,6 +302,8 @@ wave.waveInProgress = [lightgray]Val în desfășurare
|
|||||||
waiting = [lightgray]În așteptare...
|
waiting = [lightgray]În așteptare...
|
||||||
waiting.players = Se așteaptă jucătorii...
|
waiting.players = Se așteaptă jucătorii...
|
||||||
wave.enemies = [lightgray]Mai sunt {0} inamici
|
wave.enemies = [lightgray]Mai sunt {0} inamici
|
||||||
|
wave.enemycores = [accent]{0}[lightgray] Nuclee Inamice
|
||||||
|
wave.enemycore = [accent]{0}[lightgray] Nucleu Inamic
|
||||||
wave.enemy = [lightgray]Mai e {0} inamic
|
wave.enemy = [lightgray]Mai e {0} inamic
|
||||||
wave.guardianwarn = Gardianul va veni în [accent]{0}[] valuri.
|
wave.guardianwarn = Gardianul va veni în [accent]{0}[] valuri.
|
||||||
wave.guardianwarn.one = Gardianul va veni într-[accent]un[] val.
|
wave.guardianwarn.one = Gardianul va veni într-[accent]un[] val.
|
||||||
@@ -483,13 +490,14 @@ abandon = Abandonează
|
|||||||
abandon.text = Zona aceasta și toate resursele ei vor fi cedate inamicului.
|
abandon.text = Zona aceasta și toate resursele ei vor fi cedate inamicului.
|
||||||
locked = Blocat
|
locked = Blocat
|
||||||
complete = [lightgray]Finalizat:
|
complete = [lightgray]Finalizat:
|
||||||
requirement.wave = Ajungi la valul {0} în {1}
|
requirement.wave = Treci de valul {0} în {1}
|
||||||
requirement.core = Distruge Nucleu Inamic în{0}
|
requirement.core = Distruge Nucleul Inamic din {0}
|
||||||
requirement.research = Cercetează {0}
|
requirement.research = Cercetează {0}
|
||||||
|
requirement.produce = Produ {0}
|
||||||
requirement.capture = Capturează {0}
|
requirement.capture = Capturează {0}
|
||||||
bestwave = [lightgray]Cel Mai Bun Val: {0}
|
|
||||||
launch.text = Lansează
|
launch.text = Lansează
|
||||||
research.multiplayer = Doar gazda poate cerceta noi tehnologii.
|
research.multiplayer = Doar gazda poate cerceta noi tehnologii.
|
||||||
|
map.multiplayer = Doar gazda poate vedea harta sectoarelor.
|
||||||
uncover = Descoperă
|
uncover = Descoperă
|
||||||
configure = Configurează Încărcarea
|
configure = Configurează Încărcarea
|
||||||
|
|
||||||
@@ -498,6 +506,7 @@ loadout = Încărcare
|
|||||||
resources = Resurse
|
resources = Resurse
|
||||||
bannedblocks = Blocuri Interzise
|
bannedblocks = Blocuri Interzise
|
||||||
addall = Adaugă-le pe toate
|
addall = Adaugă-le pe toate
|
||||||
|
launch.from = Lansează Din: [accent]{0}
|
||||||
launch.destination = Destinație: {0}
|
launch.destination = Destinație: {0}
|
||||||
configure.invalid = Cantitatea trebuie să fie un număr între 0 și {0}.
|
configure.invalid = Cantitatea trebuie să fie un număr între 0 și {0}.
|
||||||
zone.unlocked = [lightgray]{0} deblocat(ă).
|
zone.unlocked = [lightgray]{0} deblocat(ă).
|
||||||
@@ -529,45 +538,67 @@ weather.fog.name = Ceață
|
|||||||
sectors.unexplored = [lightgray]Neexplorat
|
sectors.unexplored = [lightgray]Neexplorat
|
||||||
sectors.resources = Resurse:
|
sectors.resources = Resurse:
|
||||||
sectors.production = Producție:
|
sectors.production = Producție:
|
||||||
|
sectors.export = Export:
|
||||||
|
sectors.time = Timp:
|
||||||
|
sectors.threat = Amenințare:
|
||||||
|
sectors.wave = Valul:
|
||||||
sectors.stored = Stocat:
|
sectors.stored = Stocat:
|
||||||
sectors.resume = Revino
|
sectors.resume = Revino
|
||||||
sectors.launch = Lansare
|
sectors.launch = Lansare
|
||||||
sectors.select = Selectează
|
sectors.select = Selectează
|
||||||
sectors.nonelaunch = [lightgray]nimic (soarele)
|
sectors.nonelaunch = [lightgray]nimic (soarele)
|
||||||
sectors.rename = Redenumește Sectorul
|
sectors.rename = Redenumește Sectorul
|
||||||
|
sectors.enemybase = [scarlet]Bază Inamică
|
||||||
|
sectors.vulnerable = [scarlet]Vulnerabil
|
||||||
|
sectors.underattack = [scarlet]Sectorul e atacat! [accent]{0}% deteriorat
|
||||||
|
sectors.survives = [accent]Supraviețuiește {0} valuri
|
||||||
|
|
||||||
|
sector.curcapture = Sector Capturat
|
||||||
|
sector.curlost = Sector Pierdut
|
||||||
sector.missingresources = [scarlet]Resurse din Nucleu Insuficiente
|
sector.missingresources = [scarlet]Resurse din Nucleu Insuficiente
|
||||||
|
sector.attacked = Sectorul [accent]{0}[white] este atacat!
|
||||||
|
sector.lost = Ai pierdut sectorul [accent]{0}[white]!
|
||||||
|
#spațiul lipsă de mai jos e intenționat
|
||||||
|
sector.captured = Ai capturat sectorul [accent]{0}[white]!
|
||||||
|
|
||||||
|
threat.low = Scăzută
|
||||||
|
threat.medium = Medie
|
||||||
|
threat.high = Mare
|
||||||
|
threat.extreme = Extremă
|
||||||
|
threat.eradication = Eradicare
|
||||||
|
|
||||||
|
planets = Planete
|
||||||
|
|
||||||
planet.serpulo.name = Serpulo
|
planet.serpulo.name = Serpulo
|
||||||
#Spațiu Necesar
|
|
||||||
planet.sun.name = Soare
|
planet.sun.name = Soare
|
||||||
|
|
||||||
#Spațiu Necesar
|
sector.impact0078.name = Impact 0078
|
||||||
sector.groundZero.name = Ground Zero
|
sector.groundZero.name = Punctul Zero
|
||||||
sector.craters.name = The Craters
|
sector.craters.name = Craterele
|
||||||
sector.frozenForest.name = Frozen Forest
|
sector.frozenForest.name = Pădurea Glacială
|
||||||
sector.ruinousShores.name = Ruinous Shores
|
sector.ruinousShores.name = Țărmurile Părăsite
|
||||||
sector.stainedMountains.name = Stained Mountains
|
sector.stainedMountains.name = Munții Pătați
|
||||||
sector.desolateRift.name = Desolate Rift
|
sector.desolateRift.name = Riftul Dezolat
|
||||||
sector.nuclearComplex.name = Nuclear Production Complex
|
sector.nuclearComplex.name = Complexul de Producție Nucleară
|
||||||
sector.overgrowth.name = Overgrowth
|
sector.overgrowth.name = Supracreșterea
|
||||||
sector.tarFields.name = Tar Fields
|
sector.tarFields.name = Câmpurile cu Păcură
|
||||||
sector.saltFlats.name = Salt Flats
|
sector.saltFlats.name = Podișurile Saline
|
||||||
sector.fungalPass.name = Fungal Pass
|
sector.fungalPass.name = Pasul Fungic
|
||||||
|
sector.biomassFacility.name = Facilitatea de Sinteză a Biomasei
|
||||||
#Spațiu
|
sector.windsweptIslands.name = Insulele Măturate de Vânt
|
||||||
#Absolut
|
sector.extractionOutpost.name = Avanpostul de Extracție
|
||||||
#Necesar
|
sector.planetaryTerminal.name = Terminalul de Lansare Planetară
|
||||||
|
|
||||||
sector.groundZero.description = Locația optimă pt a începe încă odată. Risc de inamici scăzut. Puține resurse.\nAdună cât de mult plumb și cupru se poate.\nMergi mai departe.
|
sector.groundZero.description = Locația optimă pt a începe încă odată. Risc de inamici scăzut. Puține resurse.\nAdună cât de mult plumb și cupru se poate.\nMergi mai departe.
|
||||||
sector.frozenForest.description = Chiar și aici, aproape de munți, sporii s-au împrăștiat. Temperaturile reci nu-i pot reține la infinit.\n\nÎncepe călătoria către electricitate. Construiește generatoare de combustie. Învață să folosești reparatoare.
|
sector.frozenForest.description = Chiar și aici, aproape de munți, sporii s-au împrăștiat. Temperaturile reci nu-i pot reține la infinit.\n\nÎncepe călătoria către electricitate. Construiește generatoare de combustie. Învață să folosești reparatoare.
|
||||||
sector.saltFlats.description = La periferia deșertului stau Salt Flats. Puține resurse pot fi găsite în această locație.\n\nInamicul a ridicat un complex-depozit aici. Distruge-le nucleul. Nu lăsa nimic în urmă.
|
sector.saltFlats.description = La periferia deșertului stau Podișurile Saline. Puține resurse pot fi găsite în această locație.\n\nInamicul a ridicat un complex-depozit aici. Distruge-le nucleul. Nu lăsa nimic în urmă.
|
||||||
sector.craters.description = Apa s-a acumulat în acest crater, rămășiță a vechilor războaie. Cucerește din nou zona. Adună nisip. Toarnă-l în metasticlă. Pompează apă pt a răci armele și burghiele.
|
sector.craters.description = Apa s-a acumulat în acest crater, rămășiță a vechilor războaie. Cucerește din nou zona. Adună nisip. Toarnă-l în metasticlă. Pompează apă pt a răci armele și burghiele.
|
||||||
sector.ruinousShores.description = După deșerturi vine țărmul. Odată, locația aceasta a avut un sistem de apărare de coastă. N-a rămas mult din el. Doar structurile de apărare cele mai de bază rămas în picioare, restul fiind redus la fier vechi.\nContinuă expansiunea în afară. Redescoperă tehnologia.
|
sector.ruinousShores.description = După deșerturi vine țărmul. Odată, locația aceasta a avut un sistem de apărare de coastă. N-a rămas mult din el. Doar structurile de apărare cele mai de bază rămas în picioare, restul fiind redus la fier vechi.\nContinuă expansiunea în afară. Redescoperă tehnologia.
|
||||||
sector.stainedMountains.description = Mai înspre continent sunt munții, încă neatinși de spori.\nExtrage abundentele resurse de titan din zonă. Învață cum să-l folosești.\n\nPrezența inamicului e mai mare aici. Nu le da timp să-și trimită cele mai puternice unități.
|
sector.stainedMountains.description = Mai înspre continent sunt munții, încă neatinși de spori.\nExtrage abundentele resurse de titan din zonă. Învață cum să-l folosești.\n\nPrezența inamicului e mai mare aici. Nu le da timp să-și trimită cele mai puternice unități.
|
||||||
sector.overgrowth.description = Zona asta e plină de buruieni, mai aproape de sursa sporilor.\nInamicul și-a stabilit un adăpost aici. Construiește unități Titan. Distruge-o. Cucerește din nou ce s-a pierdut.
|
sector.overgrowth.description = Această zonă este plină de buruieni, mai aproape de sursa sporilor.\nInamicul și-a stabilit un adăpost aici. Construiește unități Mace. Distruge-o. Cucerește din nou ce s-a pierdut.
|
||||||
sector.tarFields.description = O zonă aflată la periferia unei zone de producție petrolieră, între munți și deșert. Una din puținele zone cu resurse utilizabile de țiței.\nDeși abandonată, zona aceasta are niște forțe inamice periculoase înapropiere. Nu le subestima.\n\n[lightgray]Cercetează tehnologia de procesare a petrolului dacă se poate.
|
sector.tarFields.description = O zonă aflată la periferia unei zone de producție petrolieră, între munți și deșert. Una din puținele zone cu resurse utilizabile de țiței.\nDeși abandonată, zona aceasta are niște forțe inamice periculoase înapropiere. Nu le subestima.\n\n[lightgray]Cercetează tehnologia de procesare a petrolului dacă se poate.
|
||||||
sector.desolateRift.description = O zonă extrem de periculoasă. Multe resurse, dar puțin spațiu. Mare risc de distrugere. Pleacă cât mai curând. Nu te lăsa păcălit de timpul mare dintre atacurile inamice.
|
sector.desolateRift.description = O zonă extrem de periculoasă. Multe resurse, dar puțin spațiu. Mare risc de distrugere. Pleacă cât mai curând. Nu te lăsa păcălit de timpul mare dintre atacurile inamice.
|
||||||
sector.nuclearComplex.description = O fostă facilitate pt producerea și procesarea de torium, redusă la ruine.\n[lightgray]Cercetează toriul și multele sale utilizări.\n\nInamicul e prezent aici în mari numere, căutând constând atacatori.
|
sector.nuclearComplex.description = O fostă facilitate pt producerea și procesarea de toriu, redusă la ruine.\n[lightgray]Cercetează toriul și multele sale utilizări.\n\nInamicul e prezent aici în mari numere, căutând constând atacatori.
|
||||||
sector.fungalPass.description = O zonă de tranziție dintre munții înalți și zonele joase, pline cu spori. O mică bază de recunoaștere a inamicului este localizată aici.\nDistruge-o.\nFolosește unități Dagger și Crawler. Distruge cele 2 nuclee.
|
sector.fungalPass.description = O zonă de tranziție dintre munții înalți și zonele joase, pline cu spori. O mică bază de recunoaștere a inamicului este localizată aici.\nDistruge-o.\nFolosește unități Dagger și Crawler. Distruge cele 2 nuclee.
|
||||||
|
|
||||||
settings.language = Limbă
|
settings.language = Limbă
|
||||||
@@ -628,6 +659,8 @@ stat.memorycapacity = Capacitate Memorie
|
|||||||
stat.basepowergeneration = Generare Electricitate (Bază)
|
stat.basepowergeneration = Generare Electricitate (Bază)
|
||||||
stat.productiontime = Timp Producție
|
stat.productiontime = Timp Producție
|
||||||
stat.repairtime = Durată Reparare Bloc
|
stat.repairtime = Durată Reparare Bloc
|
||||||
|
stat.weapons = Arme
|
||||||
|
stat.bullet = Glonț
|
||||||
stat.speedincrease = Creștere Viteză
|
stat.speedincrease = Creștere Viteză
|
||||||
stat.range = Rază
|
stat.range = Rază
|
||||||
stat.drilltier = Minabile
|
stat.drilltier = Minabile
|
||||||
@@ -697,12 +730,14 @@ units.processorcontrol = [lightgray]Controlat de Procesor
|
|||||||
bullet.damage = [stat]{0}[lightgray] forță
|
bullet.damage = [stat]{0}[lightgray] forță
|
||||||
bullet.splashdamage = [stat]{0}[lightgray] forță explozivă ~[stat] {1}[lightgray] pătrate
|
bullet.splashdamage = [stat]{0}[lightgray] forță explozivă ~[stat] {1}[lightgray] pătrate
|
||||||
bullet.incendiary = [stat]incendiar
|
bullet.incendiary = [stat]incendiar
|
||||||
|
bullet.sapping = [stat]atragere inamici
|
||||||
bullet.homing = [stat]cu radar
|
bullet.homing = [stat]cu radar
|
||||||
bullet.shock = [stat]șoc
|
bullet.shock = [stat]șoc
|
||||||
bullet.frag = [stat]fragil
|
bullet.frag = [stat]fragil
|
||||||
bullet.knockback = [stat]{0} [lightgray]împingere
|
bullet.knockback = [stat]{0} [lightgray]împingere
|
||||||
bullet.pierce = [stat]{0}[lightgray]x penetrare
|
bullet.pierce = [stat]{0}[lightgray]x penetrare
|
||||||
bullet.infinitepierce = [stat]penetrare
|
bullet.infinitepierce = [stat]penetrare
|
||||||
|
bullet.healpercent = [stat]{0}[lightgray]% reparare
|
||||||
bullet.freezing = [stat]înghețat
|
bullet.freezing = [stat]înghețat
|
||||||
bullet.tarred = [stat]lipicios
|
bullet.tarred = [stat]lipicios
|
||||||
bullet.multiplier = [stat]{0}[lightgray]x multiplicator muniție
|
bullet.multiplier = [stat]{0}[lightgray]x multiplicator muniție
|
||||||
@@ -770,7 +805,6 @@ setting.conveyorpathfinding.name = Găsirea Drumului la Plasarea Benzii
|
|||||||
setting.sensitivity.name = Sensibilitatea Controlului
|
setting.sensitivity.name = Sensibilitatea Controlului
|
||||||
setting.saveinterval.name = Interval de Salvare
|
setting.saveinterval.name = Interval de Salvare
|
||||||
setting.seconds = {0} secunde
|
setting.seconds = {0} secunde
|
||||||
setting.blockselecttimeout.name = Selectarea Blocului a Întârziat
|
|
||||||
setting.milliseconds = {0} millisecunde
|
setting.milliseconds = {0} millisecunde
|
||||||
setting.fullscreen.name = Ecran Complet
|
setting.fullscreen.name = Ecran Complet
|
||||||
setting.borderlesswindow.name = Fereastră Fără Margine[lightgray] (repornirea poate fi necesară)
|
setting.borderlesswindow.name = Fereastră Fără Margine[lightgray] (repornirea poate fi necesară)
|
||||||
@@ -859,6 +893,7 @@ keybind.menu.name = Meniu
|
|||||||
keybind.pause.name = Pauză
|
keybind.pause.name = Pauză
|
||||||
keybind.pause_building.name = Pauză/Reia Construit
|
keybind.pause_building.name = Pauză/Reia Construit
|
||||||
keybind.minimap.name = Minihartă
|
keybind.minimap.name = Minihartă
|
||||||
|
keybind.planet_map.name = Harta Planetei
|
||||||
keybind.chat.name = Chat
|
keybind.chat.name = Chat
|
||||||
keybind.player_list.name = Listă Jucători
|
keybind.player_list.name = Listă Jucători
|
||||||
keybind.console.name = Consolă
|
keybind.console.name = Consolă
|
||||||
@@ -922,6 +957,7 @@ content.item.name = Materiale
|
|||||||
content.liquid.name = Lichide
|
content.liquid.name = Lichide
|
||||||
content.unit.name = Unități
|
content.unit.name = Unități
|
||||||
content.block.name = Blocuri
|
content.block.name = Blocuri
|
||||||
|
content.sector.name = Sectoare
|
||||||
|
|
||||||
item.copper.name = Cupru
|
item.copper.name = Cupru
|
||||||
item.lead.name = Plumb
|
item.lead.name = Plumb
|
||||||
@@ -1086,7 +1122,6 @@ block.distributor.name = Distributor
|
|||||||
block.block-forge.name = Forjă de Blocuri
|
block.block-forge.name = Forjă de Blocuri
|
||||||
block.block-loader.name = Încărcător de Blocuri
|
block.block-loader.name = Încărcător de Blocuri
|
||||||
block.block-unloader.name = Descărcător de Blocuri
|
block.block-unloader.name = Descărcător de Blocuri
|
||||||
|
|
||||||
block.sorter.name = Sortator
|
block.sorter.name = Sortator
|
||||||
block.inverted-sorter.name = Sortator Invers
|
block.inverted-sorter.name = Sortator Invers
|
||||||
block.message.name = Mesaj
|
block.message.name = Mesaj
|
||||||
@@ -1186,6 +1221,7 @@ block.payload-router.name = Router în Masă
|
|||||||
block.disassembler.name = Dezasamblator
|
block.disassembler.name = Dezasamblator
|
||||||
block.silicon-crucible.name = Creuzet de Silicon
|
block.silicon-crucible.name = Creuzet de Silicon
|
||||||
block.overdrive-dome.name = Dom de Suprasolicitare
|
block.overdrive-dome.name = Dom de Suprasolicitare
|
||||||
|
block.interplanetary-accelerator.name = Accelerator Interplanetar
|
||||||
|
|
||||||
block.switch.name = Întrerupător
|
block.switch.name = Întrerupător
|
||||||
block.micro-processor.name = Microprocesor
|
block.micro-processor.name = Microprocesor
|
||||||
@@ -1204,27 +1240,40 @@ team.derelict.name = abandonată
|
|||||||
team.green.name = verde
|
team.green.name = verde
|
||||||
team.purple.name = mov
|
team.purple.name = mov
|
||||||
|
|
||||||
tutorial.next = [lightgray]<Click pt a continua>
|
# A NU SE TRADUCE! NU SUNT GATA!
|
||||||
tutorial.intro = Bun venit în[scarlet] Tutorialul Mindustry.[]\nFolosește[accent] [[WASD][] ca să te miști.\n[accent]Cu rotița[] poți face harta mai mare sau mai mică.\nÎncepe prin[accent] a mina cupru[]. Apropie-te de el, Apoi apasă pe un minereu de cupru de lângă nucleul tău.\n\n[accent]{0}/{1} cupru
|
hint.skip = Skip
|
||||||
tutorial.intro.mobile = Bun venit în[scarlet] Tutorialul Mindustry.[]\nGlisează pe ecran pt a te mișca.\n[accent]Trage cu 2 degete[] pt face harta mai mare sau mai mică.\nÎncepe prin[accent] a mina cupru[]. Apropie-te de el, Apoi apasă pe un minereu de cupru de lângă nucleul tău.\n\n[accent]{0}/{1} cupru
|
hint.desktopMove = Use [accent][[WASD][] to move.
|
||||||
tutorial.drill = Mineritul manual este ineficient.\n[accent]Burghiele[] pot mina automat.\nDă click pe tabul burghie din colțul din dreapta-jos.\nSelectează[accent] burghiul mecanic[]. Plasează-l pe un minereu de cupru dând click.\nPoți selecta burghiul și apăsând [accent][[2][] apoi rapid [accent][[1][], indiferent de ce tab este deschis.\n[accent]Click-dreapta[] ca să te oprești din a construi.
|
hint.zoom = [accent]Scroll[] to zoom in or out.
|
||||||
tutorial.drill.mobile = Mineritul manual este ineficient.\n[accent]Burghiele[] pot mina automat.\nDă click pe tabul burghie din colțul din dreapta-jos.\nSelectează[accent] burghiul mecanic[]. Plasează-l pe un minereu de cupru dând click, apoi apasă pe[accent] bifa[] de mai jos pt a-ți confirma selecția.\nApasă pe[accent] butonul X[] pt a anula plasarea.
|
hint.mine = Move near the \uf8c4 copper ore and [accent]tap[] it to mine manually.
|
||||||
tutorial.blockinfo = Fiecare bloc are statistici diferite. Fiecare burghiu poate mina minereuri diferite.\nPt a verifica informațiile despre un bloc,[accent] dă click pe butonul "?" care apare când blocul este selectat din meniu.[]\n\n[accent]Accesează informații despre Burghiul Mecanic.[]
|
hint.desktopShoot = [accent][[Left-click][] to shoot.
|
||||||
tutorial.conveyor = [accent]Benzile[] se folosesc pt a transporta materiale la nucleu.\nConstruiește o bandă rulantă de la burghiu către nucleu.\n[accent]Ține apăsat pe mouse pt a desena o linie.[]\nȚine[accent] CTRL[] în timp se plasezi o line pt a o plasa diagonal.\nFolosește rotița pt a roti blocurile înainte să le plasezi.\n[accent]Plasează 2 benzi, apoi livrează un material la nucleu.
|
hint.depositItems = To transfer items, drag from your ship to the core.
|
||||||
tutorial.conveyor.mobile = [accent]Benzile[] se folosesc pt a transporta materiale la nucleu.\nConstruiește o bandă rulantă de la burghiu către nucleu.\n[accent] Construiește o linie ținând degetul pe ecran câteva secunde și apoi[] trage într-o direcție.\n\n[accent]Plasează 2 benzi, apoi livrează un material la nucleu.
|
hint.respawn = To respawn as a ship, press [accent][[V][].
|
||||||
tutorial.turret = Odată ce un material intră în nucleu, poate fi folosit pt a construi.\nDe reținut că nu toate materialele pot fi folosite pt construit.\nMaterialele care nu sunt folosite pt construit, cum ar fi[accent] cărbunele[] sau[accent] fierul vechi[], nu pot fi puse în nucleu.\nTrebuie să construiești structuri defensive ca să te aperi de[lightgray] inamici[].\nConstruiește [accent]o armă duo[] lângă baza ta.
|
hint.respawn.mobile = You have switched control a unit/structure. To respawn as a ship, [accent]tap the avatar in the top left.[]
|
||||||
tutorial.drillturret = Armele Duo au nevoie de[accent] muniție de cupru[] pt a trage.\nPlasează un burghiu lângă armă.\nConstruiește o bandă către armă pt a o alimenta cu muniție de cupru.\n\n[accent]Muniție livrată: 0/1
|
hint.desktopPause = Press [accent][[Space][] to pause and unpause the game.
|
||||||
tutorial.pause = În timpul luptei, poți[accent] da pauză la joc.[]\nPoți planifica construcții în timpul pauzei.\n\n[accent]Apasă pe space pt a da pauză.
|
hint.placeDrill = Select the \ue85e [accent]Drill[] tab in the menu at the bottom right, then select a \uf870 [accent]Drill[] and click on a copper patch to place it.
|
||||||
tutorial.pause.mobile = În timpul luptei, poți[accent] da pauză la joc.[]\nPoți planifica construcții în timpul pauzei.\n\n[accent]Apasă butonul din colțul din stânga sus pt a da pauză.
|
hint.placeDrill.mobile = Select the \ue85e[accent]Drill[] tab in the menu at the bottom right, then select a \uf870 [accent]Drill[] and tap on a copper patch to place it.\n\nPress the \ue800 [accent]checkmark[] at the bottom right to confirm.
|
||||||
tutorial.unpause = Acum apasă space din nou pt a continua.
|
hint.placeConveyor = Conveyors move items from drills into other blocks. Select a \uf896 [accent]Conveyor[] from the \ue814 [accent]Distribution[] tab.\n\nClick and drag to place multiple conveyors.\n[accent]Scroll[] to rotate.
|
||||||
tutorial.unpause.mobile = Acum apasă-l din nou pt a continua.
|
hint.placeConveyor.mobile = Conveyors move items from drills into other blocks. Select a \uf896 [accent]Conveyor[] from the \ue814 [accent]Distribution[] tab.\n\nHold down your finger for a second and drag to place multiple conveyors.
|
||||||
tutorial.breaking = Uneori, blocurile trebuie distruse.\n[accent]Ține apăsat pe click dreapta[] pt a distruge toate blocurile dintr-o selecție.[]\n\n[accent]Distruge toate blocurile de fier vechi din stânga nucleului.
|
hint.placeTurret = Place \uf861 [accent]Turrets[] to defend your base from enemies.\n\nTurrets require ammo - in this case, \uf838copper.\nUse conveyors and drills to supply them.
|
||||||
tutorial.breaking.mobile = Uneori, blocurile trebuie distruse.\n[accent]Selectează modul deconstrucție[], aopi dă click pe un bloc pt a-l distruge.\nDistruge o zonă ținând apăsat cu degetul pt câteva secunde[] și apoi trăgând într-o direcție.\nApasă bifa de mai jos pt a confirma distrugerea.\n\n[accent]Distruge toate blocurile de fier vechi din stânga nucleului.
|
hint.breaking = [accent]Right-click[] and drag to break blocks.
|
||||||
tutorial.withdraw = Câteodată a lua materiale direct din blocuri este necesar.\nPt a face asta, [accent]dă click pe un bloc[] cu materiale în el, apoi [accent]dă click pe materialul[] din inventar.\nMai multe materiale pot fi luate [accent]făcând click și ținând apăsat[].\n\n[accent]Ia niște cupru din nucleu.[]
|
hint.breaking.mobile = Activate the \ue817 [accent]hammer[] in the bottom right and tap to break blocks.\n\nHold down your finger for a second and drag to break in a selection.
|
||||||
tutorial.deposit = Depozitează materiale înapoi în blocuri trăgând din nava ta către blocul de destinație.\n\n[accent]Depozitează cuprul înapoi în nucleu.[]
|
hint.research = Use the \ue875 [accent]Research[] button to research new technology.
|
||||||
tutorial.waves = [lightgray]Inamicul[] se apropie.\n\nApără nucleul timp de 2 valuri.[accent] Click[] pt a trage cu arma.\nConstruiește mai multe arme și burghie. Minează mai mult cupru.
|
hint.research.mobile = Use the \ue875 [accent]Research[] button in the \ue88c [accent]Menu[] to research new technology.
|
||||||
tutorial.waves.mobile = [lightgray]Inamicul[] se apropie.\n\nApără nucleul timp de 2 valuri. Nava ta va trage automat către inamici.\nConstruiește mai multe arme și burghie. Minează mai mult cupru.
|
hint.unitControl = Hold [accent][[L-ctrl][] and [accent]click[] to control friendly units or turrets.
|
||||||
tutorial.launch = Odată ce ajungi la un anumit val, poți [accent]lansa nucleul[], lăsându-ți apărările în urmă și[accent] obținând toate resursele din nucleu.[]\nResursele obținute pot fi apoi folosite pt a cerceta noi tehnologii.\n\n[accent]Apasă butonul de lansare.
|
hint.unitControl.mobile = [accent][Double-tap[] to control friendly units or turrets.
|
||||||
|
hint.launch = Once enough resources are collected, you can [accent]Launch[] by selecting nearby sectors from the \ue827 [accent]Map[] in the bottom right.
|
||||||
|
hint.launch.mobile = Once enough resources are collected, you can [accent]Launch[] by selecting nearby sectors from the \ue827 [accent]Map[] in the \ue88c [accent]Menu[].
|
||||||
|
hint.schematicSelect = Hold [accent][[F][] and drag to select blocks to copy and paste.\n\n[accent][[Middle Click][] to copy a single block type.
|
||||||
|
hint.conveyorPathfind = Hold [accent][[L-Ctrl][] while dragging conveyors to automatically generate a path.
|
||||||
|
hint.conveyorPathfind.mobile = Enable \ue844 [accent]diagonal mode[] and drag conveyors to automatically generate a path.
|
||||||
|
hint.boost = Hold [accent][[L-Shift][] to fly over obstacles with your current unit.\n\nOnly a few ground units have boosters.
|
||||||
|
hint.command = Press [accent][[G][] to command nearby units into formation.
|
||||||
|
hint.command.mobile = [accent][[Double-tap][] your unit to command nearby units into formation.
|
||||||
|
hint.payloadPickup = Press [accent][[[] to pick up small blocks or units.
|
||||||
|
hint.payloadPickup.mobile = [accent]Tap and hold[] a small block or unit to pick it up.
|
||||||
|
hint.payloadDrop = Press [accent]][] to drop a payload.
|
||||||
|
hint.payloadDrop.mobile = [accent]Tap and hold[] an empty location to drop a payload there.
|
||||||
|
hint.waveFire = [accent]Wave[] turrets with water as ammunition will automatically put out nearby fires.
|
||||||
|
|
||||||
item.copper.description = Folosit în tot felul de construcții și muniție.
|
item.copper.description = Folosit în tot felul de construcții și muniție.
|
||||||
item.copper.details = Cupru. Metal anormal de abundent pe Serpulo. Structural slab dacă nu este consolidat.
|
item.copper.details = Cupru. Metal anormal de abundent pe Serpulo. Structural slab dacă nu este consolidat.
|
||||||
@@ -1237,7 +1286,7 @@ item.coal.description = Folosit extensiv ca combustibil și pt producerea de mat
|
|||||||
item.coal.details = Pare să fie materie vegetală fosilizată, formată cu mult înainte de evenimentul însămânțării.
|
item.coal.details = Pare să fie materie vegetală fosilizată, formată cu mult înainte de evenimentul însămânțării.
|
||||||
item.titanium.description = Folosit pt structuri transportatoare de lichid, burghie și aeronautică.
|
item.titanium.description = Folosit pt structuri transportatoare de lichid, burghie și aeronautică.
|
||||||
item.thorium.description = Folosit în structuri durabile și combustibil nuclear.
|
item.thorium.description = Folosit în structuri durabile și combustibil nuclear.
|
||||||
item.scrap.description = Topit și rafinat în alte materiale.
|
item.scrap.description = Folosit in topitoare și pulverizatoare pt a fi rafinat în alte materiale.
|
||||||
item.scrap.details = Rămășițe ale structurilor și unităților vechi..
|
item.scrap.details = Rămășițe ale structurilor și unităților vechi..
|
||||||
item.silicon.description = Folosit în producerea energiei solare, electronice complexe și muniție cu radar pt armament.
|
item.silicon.description = Folosit în producerea energiei solare, electronice complexe și muniție cu radar pt armament.
|
||||||
item.plastanium.description = Folosit pt unitățile militare avansate, ca izolator electric și muniție fragilă.
|
item.plastanium.description = Folosit pt unitățile militare avansate, ca izolator electric și muniție fragilă.
|
||||||
@@ -1247,11 +1296,13 @@ item.spore-pod.description = Folosită pt a fi convertită în petrol, explozibi
|
|||||||
item.spore-pod.details = Spori. Probabil o formă de viață sintetică. Emite gaze toxice altor forme de viață biologică. Nu că ar mai fi rămas prea multe aici.
|
item.spore-pod.details = Spori. Probabil o formă de viață sintetică. Emite gaze toxice altor forme de viață biologică. Nu că ar mai fi rămas prea multe aici.
|
||||||
item.blast-compound.description = Folosit în bombe și muniție explozibilă.
|
item.blast-compound.description = Folosit în bombe și muniție explozibilă.
|
||||||
item.pyratite.description = Folosită în armele incendiare și generatoare pe bază de procese de combustie.
|
item.pyratite.description = Folosită în armele incendiare și generatoare pe bază de procese de combustie.
|
||||||
|
|
||||||
liquid.water.description = Folosită pt răcirea mașinăriilor și procesarea deșeurilor.
|
liquid.water.description = Folosită pt răcirea mașinăriilor și procesarea deșeurilor.
|
||||||
liquid.slag.description = Rafinată în separatoare înapoi în materialele constituente, sau pulverizată înspre unitățile inamice ca armă.
|
liquid.slag.description = Rafinată în separatoare înapoi în materialele constituente, sau pulverizată înspre unitățile inamice ca armă.
|
||||||
liquid.oil.description = Folosit în producerea avansată de materialet și ca muniție incendiară.
|
liquid.oil.description = Folosit în producerea avansată de materialet și ca muniție incendiară.
|
||||||
liquid.cryofluid.description = Folosit ca răcitor în reactoare, arme și fabrici.
|
liquid.cryofluid.description = Folosit ca răcitor în reactoare, arme și fabrici.
|
||||||
|
|
||||||
|
block.resupply-point.description = Realimentează unitățile din apropiere cu muniție de cupru. Nu este compatibil cu unitățile care se încarcă din baterii.
|
||||||
block.armored-conveyor.description = Transportă materialele înainte. Nu acceptă materiale de pe lateral decât de la alte benzi.
|
block.armored-conveyor.description = Transportă materialele înainte. Nu acceptă materiale de pe lateral decât de la alte benzi.
|
||||||
block.illuminator.description = Emite lumină.
|
block.illuminator.description = Emite lumină.
|
||||||
block.message.description = Păstrează un mesaj. Folosit pt comunicarea dintre aliați.
|
block.message.description = Păstrează un mesaj. Folosit pt comunicarea dintre aliați.
|
||||||
@@ -1393,6 +1444,7 @@ block.memory-cell.description = Stochează informație pt un procesor.
|
|||||||
block.memory-bank.description = Stochează informație pt un procesor. Capacitate mare.
|
block.memory-bank.description = Stochează informație pt un procesor. Capacitate mare.
|
||||||
block.logic-display.description = Afișează grafica transmisă de un procesor logic.
|
block.logic-display.description = Afișează grafica transmisă de un procesor logic.
|
||||||
block.large-logic-display.description = Afișează grafica transmisă de un procesor logic.
|
block.large-logic-display.description = Afișează grafica transmisă de un procesor logic.
|
||||||
|
block.interplanetary-accelerator.description = Un turn masiv cu o armă railgun electromagnetică. Accelerează nucleele la viteză cosmică pt lansare interplanetară.
|
||||||
|
|
||||||
unit.dagger.description = Trage cu gloanțe standard către toți inamicii din apropiere.
|
unit.dagger.description = Trage cu gloanțe standard către toți inamicii din apropiere.
|
||||||
unit.mace.description = Trage cu jeturi de flacără aprinsă către toți inamicii din apropiere.
|
unit.mace.description = Trage cu jeturi de flacără aprinsă către toți inamicii din apropiere.
|
||||||
@@ -1420,7 +1472,7 @@ unit.mega.description = Repară automat structurile deteriorate. Capabilă să c
|
|||||||
unit.quad.description = Aruncă bombe mari peste artileria inamică, reparând structurile aliate și deteriorând inamicii. Capabilă să care unități de artilerie de dimensiuni medii.
|
unit.quad.description = Aruncă bombe mari peste artileria inamică, reparând structurile aliate și deteriorând inamicii. Capabilă să care unități de artilerie de dimensiuni medii.
|
||||||
unit.oct.description = Protejează aliații din apropiere cu scutul său care se regenerează. Capabilă să care majoritatea unităților de artilerie.
|
unit.oct.description = Protejează aliații din apropiere cu scutul său care se regenerează. Capabilă să care majoritatea unităților de artilerie.
|
||||||
unit.risso.description = Trage un baraj de rachete și gloanțe către toți inamicii din apropiere.
|
unit.risso.description = Trage un baraj de rachete și gloanțe către toți inamicii din apropiere.
|
||||||
unit.minke.description = Trage cu capsule incendiare și gloanțe standard către artileria inamică din apropiere.
|
unit.minke.description = Trage cu capsule și gloanțe standard către artileria inamică din apropiere.
|
||||||
unit.bryde.description = Trage cu capsule de artilerie și rachete către inamici pe distanțe lungi.
|
unit.bryde.description = Trage cu capsule de artilerie și rachete către inamici pe distanțe lungi.
|
||||||
unit.sei.description = Trage cu un baraj de rachete și gloanțe care penetrează scuturile inamicilor.
|
unit.sei.description = Trage cu un baraj de rachete și gloanțe care penetrează scuturile inamicilor.
|
||||||
unit.omura.description = Trage cu un railgun cu gloanțe care penetrează scuturile inamice pe distanțe lungi. Construiește unități Flare.
|
unit.omura.description = Trage cu un railgun cu gloanțe care penetrează scuturile inamice pe distanțe lungi. Construiește unități Flare.
|
||||||
|
|||||||
@@ -497,6 +497,7 @@ requirement.produce = Произведите {0}
|
|||||||
requirement.capture = Захватите {0}
|
requirement.capture = Захватите {0}
|
||||||
launch.text = Высадка
|
launch.text = Высадка
|
||||||
research.multiplayer = Только хост может исследовать предметы.
|
research.multiplayer = Только хост может исследовать предметы.
|
||||||
|
map.multiplayer = Только хост может просматривать секторы.
|
||||||
uncover = Раскрыть
|
uncover = Раскрыть
|
||||||
configure = Конфигурация выгрузки
|
configure = Конфигурация выгрузки
|
||||||
|
|
||||||
@@ -547,8 +548,13 @@ sectors.launch = Высадка
|
|||||||
sectors.select = Выбор
|
sectors.select = Выбор
|
||||||
sectors.nonelaunch = [lightgray]нет (солнце)
|
sectors.nonelaunch = [lightgray]нет (солнце)
|
||||||
sectors.rename = Переименовать сектор
|
sectors.rename = Переименовать сектор
|
||||||
|
sectors.enemybase = [scarlet]Вражеская база
|
||||||
|
sectors.vulnerable = [scarlet]Уязвим
|
||||||
|
sectors.underattack = [scarlet]Атакован! [accent]{0}% повреждений
|
||||||
|
sectors.survives = [accent]Продержиться {0} волн(ы)
|
||||||
|
|
||||||
sector.curcapture = Сектор захвачен
|
sector.curcapture = Сектор захвачен
|
||||||
|
sector.curlost = Сектор потерян
|
||||||
sector.missingresources = [scarlet]Недостаточно ресурсов для высадки
|
sector.missingresources = [scarlet]Недостаточно ресурсов для высадки
|
||||||
sector.attacked = Сектор [accent]{0}[white] атакован!
|
sector.attacked = Сектор [accent]{0}[white] атакован!
|
||||||
sector.lost = Сектор [accent]{0}[white] потерян!
|
sector.lost = Сектор [accent]{0}[white] потерян!
|
||||||
@@ -589,8 +595,8 @@ sector.saltFlats.description = На окраине пустыни лежат с
|
|||||||
sector.craters.description = Вода скопилась в этом кратере, реликвии времён старых войн. Восстановите область. Соберите песок. Выплавьте метастекло. Качайте воду для охлаждения турелей и буров.
|
sector.craters.description = Вода скопилась в этом кратере, реликвии времён старых войн. Восстановите область. Соберите песок. Выплавьте метастекло. Качайте воду для охлаждения турелей и буров.
|
||||||
sector.ruinousShores.description = Мимо пустошей проходит береговая линия. Когда-то здесь располагался массив береговой обороны. Не так много от него осталось. Только самые базовые оборонительные сооружения остались невредимыми, всё остальное превратилось в металлолом.\nПродолжайте экспансию вовне. Переоткройте для себя технологии.
|
sector.ruinousShores.description = Мимо пустошей проходит береговая линия. Когда-то здесь располагался массив береговой обороны. Не так много от него осталось. Только самые базовые оборонительные сооружения остались невредимыми, всё остальное превратилось в металлолом.\nПродолжайте экспансию вовне. Переоткройте для себя технологии.
|
||||||
sector.stainedMountains.description = Дальше, вглубь местности, лежат горы, еще не запятнанные спорами.\nИзвлеките изобилие титана в этой области. Научитесь им пользоваться.\n\nВражеское присутствие здесь сильнее. Не дайте им времени для отправки своих сильнейших боевых единиц.
|
sector.stainedMountains.description = Дальше, вглубь местности, лежат горы, еще не запятнанные спорами.\nИзвлеките изобилие титана в этой области. Научитесь им пользоваться.\n\nВражеское присутствие здесь сильнее. Не дайте им времени для отправки своих сильнейших боевых единиц.
|
||||||
sector.overgrowth.description = Эта заросшая область находится ближе к источнику спор.\nВраг организовал здесь форпост. Постройте боевые единицы «Титан». Уничтожьте его. Верните то, что было потеряно.
|
sector.overgrowth.description = Эта заросшая область находится ближе к источнику спор.\nВраг организовал здесь форпост. Постройте боевые единицы «Булава». Уничтожьте его. Верните то, что было потеряно.
|
||||||
sector.tarFields.description = Окраина зоны нефтедобычи, между горами и пустыней. Один из немногих районов с полезными запасами дёгтя.\nХотя эта область заброшенна, в ней поблизости присутствуют некоторые опасные вражеские силы. Не стоит их недооценивать.\n\n[lightgray]Исследуйте технологию переработки нефти, если возможно.
|
sector.tarFields.description = Окраина зоны нефтедобычи, между горами и пустыней. Один из немногих районов с полезными запасами дёгтя.\nХотя эта область заброшена, в ней поблизости присутствуют некоторые опасные вражеские силы. Не стоит их недооценивать.\n\n[lightgray]Исследуйте технологию переработки нефти, если возможно.
|
||||||
sector.desolateRift.description = Чрезвычайно опасная зона. Обилие ресурсов, но мало места. Высокий риск разрушения. Эвакуироваться нужно как можно скорее. Не расслабляйтесь во время больших перерывов между вражескими атаками.
|
sector.desolateRift.description = Чрезвычайно опасная зона. Обилие ресурсов, но мало места. Высокий риск разрушения. Эвакуироваться нужно как можно скорее. Не расслабляйтесь во время больших перерывов между вражескими атаками.
|
||||||
sector.nuclearComplex.description = Бывший завод по производству и переработке тория, превращенный в руины.\n[lightgray]Исследуйте торий и варианты его многочисленного применения.\n\nВраг присутствует здесь в большом числе, постоянно разведывая нападающих.
|
sector.nuclearComplex.description = Бывший завод по производству и переработке тория, превращенный в руины.\n[lightgray]Исследуйте торий и варианты его многочисленного применения.\n\nВраг присутствует здесь в большом числе, постоянно разведывая нападающих.
|
||||||
sector.fungalPass.description = Переходная область между высокими горами и более низкими, покрытыми спорами землями. Здесь расположена небольшая разведывательная база противника.\nУничтожьте ее.\nИспользуйте единицы «Кинжал» и «Ползун». Достаньте до обоих ядер.
|
sector.fungalPass.description = Переходная область между высокими горами и более низкими, покрытыми спорами землями. Здесь расположена небольшая разведывательная база противника.\nУничтожьте ее.\nИспользуйте единицы «Кинжал» и «Ползун». Достаньте до обоих ядер.
|
||||||
@@ -888,6 +894,7 @@ keybind.menu.name = Меню
|
|||||||
keybind.pause.name = Пауза
|
keybind.pause.name = Пауза
|
||||||
keybind.pause_building.name = Приостановить/возобновить строительство
|
keybind.pause_building.name = Приостановить/возобновить строительство
|
||||||
keybind.minimap.name = Мини-карта
|
keybind.minimap.name = Мини-карта
|
||||||
|
keybind.planet_map.name = Карта планеты
|
||||||
keybind.chat.name = Чат
|
keybind.chat.name = Чат
|
||||||
keybind.player_list.name = Список игроков
|
keybind.player_list.name = Список игроков
|
||||||
keybind.console.name = Консоль
|
keybind.console.name = Консоль
|
||||||
@@ -1234,27 +1241,40 @@ team.derelict.name = Покинутая
|
|||||||
team.green.name = Зелёная
|
team.green.name = Зелёная
|
||||||
team.purple.name = Фиолетовая
|
team.purple.name = Фиолетовая
|
||||||
|
|
||||||
tutorial.next = [lightgray]<Нажмите для продолжения>
|
# DO NOT TRANSLATE ANY OF THESE YET! THEY ARE UNFINISHED!
|
||||||
tutorial.intro = Вы начали[scarlet] обучение по Mindustry.[]\nИспользуйте кнопки [accent][[WASD][] для передвижения.\n[accent]Покрутите колесо мыши[] для приближения или отдаления камеры.\nНачните с [accent]добычи меди[]. Приблизьтесь к ней, затем нажмите на медную жилу возле вашего ядра, чтобы сделать это.\n\n[accent]{0}/{1} меди
|
# hint.skip = Skip
|
||||||
tutorial.intro.mobile = Вы начали[scarlet] обучение по Mindustry.[]\nПроведите по экрану, чтобы двигаться.\n[accent]Сведите или разведите 2 пальца[] для изменения масштаба.\nНачните с [accent]добычи меди[]. Приблизьтесь к ней, затем нажмите на медную жилу возле Ввашего ядра, чтобы сделать это.\n\n[accent]{0}/{1} меди
|
# hint.desktopMove = Use [accent][[WASD][] to move.
|
||||||
tutorial.drill = Ручная добыча не является эффективной.\n[accent]Буры[] могут добывать автоматически.\nНажмите на вкладку с изображением сверла снизу справа.\nВыберите[accent] механический бур[]. Разместите его на медной жиле нажатием.\n[accent]Нажатие по правой кнопке[] прервёт строительство.
|
# hint.zoom = [accent]Scroll[] to zoom in or out.
|
||||||
tutorial.drill.mobile = Ручная добыча не является эффективной.\n[accent]Буры []могут добывать автоматически.\nНажмите на вкладку с изображением сверла снизу справа.\nВыберите[accent] механический бур[].\nРазместите его на медной жиле нажатием, затем нажмите [accent] белую галку[] ниже, чтобы подтвердить построение выделенного.\nНажмите [accent] кнопку X[], чтобы отменить размещение.
|
# hint.mine = Move near the \uf8c4 copper ore and [accent]tap[] it to mine manually.
|
||||||
tutorial.blockinfo = Каждый блок имеет разные характеристики. Каждая дрель может добывать определенные руды.\nЧтобы узнать информацию о блоке и о его характеристиках,[accent] нажмите на «?», когда он выбран в меню строительства.[]\n\n[accent]Сейчас, узнайте характеристики механического бура.[]
|
# hint.desktopShoot = [accent][[Left-click][] to shoot.
|
||||||
tutorial.conveyor = [accent]Конвейеры[] используются для транспортировки ресуров в ядро.\nСделайте линию конвейеров от бура к ядру\n[accent]Удерживайте левую кнопку мыши, чтобы разместить в линию.[]\nУдерживайте[accent] CTRL[] при постройке линии блоков, чтобы сделать её диагональной\n\n[accent]Разместите 2 конвейера в линию и доставьте предметы в ядро.
|
# hint.depositItems = To transfer items, drag from your ship to the core.
|
||||||
tutorial.conveyor.mobile = [accent]Конвейеры[] используются для транспортировки ресурсов в ядро\nСделайте линию конвейеров от бура к ядру\n[accent]Сделайте линию, удерживая палец несколько секунд в том месте, в котором вы хотите начать линию,[] и перетяните его в нужном направлении. [accent]Разместите 2 конвейера в линию и доставьте предметы в ядро.
|
# hint.respawn = To respawn as a ship, press [accent][[V][].
|
||||||
tutorial.turret = Как только предмет попадает в ядро, его можно использовать в строительстве.\nИмейте в виду, что не все предметы могут быть использованы в строительстве.\nПредметы, которые нельзя использовать для стоительства, такие как[accent] уголь[] или[accent] металлолом[], не могут быть транспортированы в ядро.\nЗащитные структуры нужно строить для отражения[lightgray] противников[].\nПостройте[accent] двойную турель[] возле вашей базы.
|
# hint.respawn.mobile = You have switched control a unit/structure. To respawn as a ship, [accent]tap the avatar in the top left.[]
|
||||||
tutorial.drillturret = Двойным турелям нужна [accent]медные боеприпасы[] для стрельбы.\nРазместите бур рядом с турелью.\nПроведите конвейеры к турели, чтобы снабдить её медью.\n\n[accent]Боеприпасов доставлено: 0/1
|
# hint.desktopPause = Press [accent][[Space][] to pause and unpause the game.
|
||||||
tutorial.pause = Во время битвы, вы можете[accent] приостановить игру.[]\nВы можете планировать строительство, когда игра стоит на паузе.\n\n[accent]Нажмите ПРОБЕЛ для приостановки игры.
|
# hint.placeDrill = Select the \ue85e [accent]Drill[] tab in the menu at the bottom right, then select a \uf870 [accent]Drill[] and click on a copper patch to place it.
|
||||||
tutorial.pause.mobile = Во время битвы, вы можете[accent] приостановить игру.[]\nВы можете планировать строительство, когда игра стоит на паузе.\n\n[accent]Нажмите кнопку вверху слева, чтобы поставить игру на паузу.
|
# hint.placeDrill.mobile = Select the \ue85e[accent]Drill[] tab in the menu at the bottom right, then select a \uf870 [accent]Drill[] and tap on a copper patch to place it.\n\nPress the \ue800 [accent]checkmark[] at the bottom right to confirm.
|
||||||
tutorial.unpause = Снова нажмите пробел для снятия паузы.
|
# hint.placeConveyor = Conveyors move items from drills into other blocks. Select a \uf896 [accent]Conveyor[] from the \ue814 [accent]Distribution[] tab.\n\nClick and drag to place multiple conveyors.\n[accent]Scroll[] to rotate.
|
||||||
tutorial.unpause.mobile = Снова нажмите туда для снятия паузы.
|
# hint.placeConveyor.mobile = Conveyors move items from drills into other blocks. Select a \uf896 [accent]Conveyor[] from the \ue814 [accent]Distribution[] tab.\n\nHold down your finger for a second and drag to place multiple conveyors.
|
||||||
tutorial.breaking = Зачастую, блоки приходится разрушать\n[accent]Зажмите ПКМ[], чтобы разрушить блоки в выбранной зоне.[]\n\n[accent]Разрушьте все стены из металлолома слева от вашего ядра.
|
# hint.placeTurret = Place \uf861 [accent]Turrets[] to defend your base from enemies.\n\nTurrets require ammo - in this case, \uf838copper.\nUse conveyors and drills to supply them.
|
||||||
tutorial.breaking.mobile = Зачастую, блоки приходится разрушать.\n[accent]Выберите режим деконструкции[], после чего нажмите на нужный блок, чтобы разрушить его.\nРазрушьте блоки в выбранной зоне, зажав палец на несколько секунд[], и проведя его в нужном направлении.\nНажмите на галочку, чтобы подтвердить разрушение.\n\n[accent]Разрушьте все стены из металлолома слева от вашего ядра.
|
# hint.breaking = [accent]Right-click[] and drag to break blocks.
|
||||||
tutorial.withdraw = В некоторых ситуациях, необходимо забрать предметы из блоков вручную.\nЧтобы сделать это, [accent]нажмите на блок[], в котором находятся предметы, затем [accent]нажмите на предмет[] в инвентаре.\nМожно забрать несколько предметов [accent]нажатием с зажимом[].\n\n[accent]Заберите немного меди из ядра[]
|
# hint.breaking.mobile = Activate the \ue817 [accent]hammer[] in the bottom right and tap to break blocks.\n\nHold down your finger for a second and drag to break in a selection.
|
||||||
tutorial.deposit = Положите предметы в блок, перетащив их от своего корабля в нужный блок.\n\n[accent]Перенесите медь обратно в ядро[]
|
# hint.research = Use the \ue875 [accent]Research[] button to research new technology.
|
||||||
tutorial.waves = [lightgray]Противники[] приближаются.\n\nЗащитите ядро от двух волн. Используйте[accent] левую кнопку мыши[] для стрельбы.\nПостройте больше турелей и буров. Добудьте больше меди.
|
# hint.research.mobile = Use the \ue875 [accent]Research[] button in the \ue88c [accent]Menu[] to research new technology.
|
||||||
tutorial.waves.mobile = [lightgray]Противники[] приближаются.\n\nЗащитите ядро от двух волн. Ваш корабль будет автоматически атаковать противника.\nПостройте больше турелей и буров. Добудьте больше меди.
|
# hint.unitControl = Hold [accent][[L-ctrl][] and [accent]click[] to control friendly units or turrets.
|
||||||
tutorial.launch = Когда вы достигаете определенной волны, вы можете осуществить[accent] запуск ядра[], оставив базу и[accent] перенести ресурсы из ядра.[]\nЭти ресурсы могут быть использованы для изучения новых технологий.\n\n[accent]Нажмите кнопку запуска.
|
# hint.unitControl.mobile = [accent][Double-tap[] to control friendly units or turrets.
|
||||||
|
# hint.launch = Once enough resources are collected, you can [accent]Launch[] by selecting nearby sectors from the \ue827 [accent]Map[] in the bottom right.
|
||||||
|
# hint.launch.mobile = Once enough resources are collected, you can [accent]Launch[] by selecting nearby sectors from the \ue827 [accent]Map[] in the \ue88c [accent]Menu[].
|
||||||
|
# hint.schematicSelect = Hold [accent][[F][] and drag to select blocks to copy and paste.\n\n[accent][[Middle Click][] to copy a single block type.
|
||||||
|
# hint.conveyorPathfind = Hold [accent][[L-Ctrl][] while dragging conveyors to automatically generate a path.
|
||||||
|
# hint.conveyorPathfind.mobile = Enable \ue844 [accent]diagonal mode[] and drag conveyors to automatically generate a path.
|
||||||
|
# hint.boost = Hold [accent][[L-Shift][] to fly over obstacles with your current unit.\n\nOnly a few ground units have boosters.
|
||||||
|
# hint.command = Press [accent][[G][] to command nearby units into formation.
|
||||||
|
# hint.command.mobile = [accent][[Double-tap][] your unit to command nearby units into formation.
|
||||||
|
# hint.payloadPickup = Press [accent][[[] to pick up small blocks or units.
|
||||||
|
# hint.payloadPickup.mobile = [accent]Tap and hold[] a small block or unit to pick it up.
|
||||||
|
# hint.payloadDrop = Press [accent]][] to drop a payload.
|
||||||
|
# hint.payloadDrop.mobile = [accent]Tap and hold[] an empty location to drop a payload there.
|
||||||
|
# hint.waveFire = [accent]Wave[] turrets with water as ammunition will automatically put out nearby fires.
|
||||||
|
|
||||||
item.copper.description = Используется во всех типах построек и боеприпасов.
|
item.copper.description = Используется во всех типах построек и боеприпасов.
|
||||||
item.copper.details = Медь. Аномально широко распространённый металл на Серпуло. Структурно слабый, если не укреплён.
|
item.copper.details = Медь. Аномально широко распространённый металл на Серпуло. Структурно слабый, если не укреплён.
|
||||||
@@ -1268,7 +1288,7 @@ item.coal.details = Похоже, что это окаменевшее раст
|
|||||||
item.titanium.description = Широко используется в транспортировке жидкостей, бурах и авиации.
|
item.titanium.description = Широко используется в транспортировке жидкостей, бурах и авиации.
|
||||||
item.thorium.description = Используется в прочных постройках и как ядерного топлива.
|
item.thorium.description = Используется в прочных постройках и как ядерного топлива.
|
||||||
item.scrap.description = Используется в плавильнях и измельчителях для получения других материалов.
|
item.scrap.description = Используется в плавильнях и измельчителях для получения других материалов.
|
||||||
item.scrap.details = Остататки старых построек и единиц.
|
item.scrap.details = Остатки старых построек и единиц.
|
||||||
item.silicon.description = Используется в солнечных панелях, сложной электронике и самонаводящихся боеприпасах для турелей.
|
item.silicon.description = Используется в солнечных панелях, сложной электронике и самонаводящихся боеприпасах для турелей.
|
||||||
item.plastanium.description = Используется в продвинутой авиации, изоляции и осколочных боеприпасах.
|
item.plastanium.description = Используется в продвинутой авиации, изоляции и осколочных боеприпасах.
|
||||||
item.phase-fabric.description = Используется в продвинутой электронике и самовосстанавливающихся постройках.
|
item.phase-fabric.description = Используется в продвинутой электронике и самовосстанавливающихся постройках.
|
||||||
@@ -1283,7 +1303,7 @@ liquid.slag.description = Может быть переработан в разд
|
|||||||
liquid.oil.description = Используется в производстве продвинутых материалов и как зажигательный боеприпас.
|
liquid.oil.description = Используется в производстве продвинутых материалов и как зажигательный боеприпас.
|
||||||
liquid.cryofluid.description = Используется в качестве охлаждающей жидкости для реакторов, турелей и фабрик.
|
liquid.cryofluid.description = Используется в качестве охлаждающей жидкости для реакторов, турелей и фабрик.
|
||||||
|
|
||||||
block.resupply-point.description = Снаряжает медными боеприпасами ближайщие боевые единицы. Не совместим с единицами, требующими питания от батареи.
|
block.resupply-point.description = Снаряжает медными боеприпасами ближайшие боевые единицы. Не совместим с единицами, требующими питания от батареи.
|
||||||
block.armored-conveyor.description = Перемещает предметы вперёд. Не принимает вход по бокам.
|
block.armored-conveyor.description = Перемещает предметы вперёд. Не принимает вход по бокам.
|
||||||
block.illuminator.description = Излучает свет.
|
block.illuminator.description = Излучает свет.
|
||||||
block.message.description = Сохраняет сообщение для связи между союзниками.
|
block.message.description = Сохраняет сообщение для связи между союзниками.
|
||||||
@@ -1341,7 +1361,7 @@ block.router.details = Необходимое зло. Не рекомендуе
|
|||||||
block.distributor.description = Равномерно распределяет входящие предметы по 7 выходящим направлениям.
|
block.distributor.description = Равномерно распределяет входящие предметы по 7 выходящим направлениям.
|
||||||
block.overflow-gate.description = Выводит предметы по бокам, только если передний путь заблокирован. Нельзя использовать вплотную к другим затворам или шлюзам.
|
block.overflow-gate.description = Выводит предметы по бокам, только если передний путь заблокирован. Нельзя использовать вплотную к другим затворам или шлюзам.
|
||||||
block.underflow-gate.description = Противоположность избыточного затвора. Выводит предметы вперёд только в том случае, если боковые пути заблокированы. Нельзя использовать вплотную к другим шлюзам или затворам.
|
block.underflow-gate.description = Противоположность избыточного затвора. Выводит предметы вперёд только в том случае, если боковые пути заблокированы. Нельзя использовать вплотную к другим шлюзам или затворам.
|
||||||
block.mass-driver.description = Постройка для дальней транспортировки предметов. Собирает несколько предметов и затем стреляет ими в другуе катапульты.
|
block.mass-driver.description = Постройка для дальней транспортировки предметов. Собирает несколько предметов и затем стреляет ими в другие катапульты.
|
||||||
block.mechanical-pump.description = Перекачивает и выводит жидкости. Не требует энергию.
|
block.mechanical-pump.description = Перекачивает и выводит жидкости. Не требует энергию.
|
||||||
block.rotary-pump.description = Перекачивает и выводит жидкости. Требует энергию.
|
block.rotary-pump.description = Перекачивает и выводит жидкости. Требует энергию.
|
||||||
block.thermal-pump.description = Перекачивает и выводит жидкости.
|
block.thermal-pump.description = Перекачивает и выводит жидкости.
|
||||||
@@ -1368,7 +1388,7 @@ block.solar-panel.description = Обеспечивает небольшое ко
|
|||||||
block.solar-panel-large.description = Обеспечивает небольшое количество энергии от солнца. Более эффективный вариант стандартной солнечной панели.
|
block.solar-panel-large.description = Обеспечивает небольшое количество энергии от солнца. Более эффективный вариант стандартной солнечной панели.
|
||||||
block.thorium-reactor.description = Вырабатывает значительное количество энергии из тория. Требует постоянного охлаждения. Взорвётся с большой силой при недостаточном количестве охлаждающей жидкости.
|
block.thorium-reactor.description = Вырабатывает значительное количество энергии из тория. Требует постоянного охлаждения. Взорвётся с большой силой при недостаточном количестве охлаждающей жидкости.
|
||||||
block.impact-reactor.description = Создаёт огромное количество энергии на пике эффективности. Требуется значительное количество энергии для запуска процесса.
|
block.impact-reactor.description = Создаёт огромное количество энергии на пике эффективности. Требуется значительное количество энергии для запуска процесса.
|
||||||
block.mechanical-drill.description = При размещении на соответствующей руде, остоянно выводит предметы в медленном темпе. Способен добывать только базовые ресурсы.
|
block.mechanical-drill.description = При размещении на соответствующей руде, постоянно выводит предметы в медленном темпе. Способен добывать только базовые ресурсы.
|
||||||
block.pneumatic-drill.description = Улучшенный бур, способный добывать титан. Добывает быстрее, чем механический бур.
|
block.pneumatic-drill.description = Улучшенный бур, способный добывать титан. Добывает быстрее, чем механический бур.
|
||||||
block.laser-drill.description = Позволяет добывать еще быстрее с помощью лазерной технологии, но требует энергию. Способен добывать торий.
|
block.laser-drill.description = Позволяет добывать еще быстрее с помощью лазерной технологии, но требует энергию. Способен добывать торий.
|
||||||
block.blast-drill.description = Самый продвинутый бур. Требует большое количество энергии.
|
block.blast-drill.description = Самый продвинутый бур. Требует большое количество энергии.
|
||||||
@@ -1426,7 +1446,7 @@ block.memory-cell.description = Хранит информацию для лог
|
|||||||
block.memory-bank.description = Хранит информацию для логического процессора. Большая ёмкость.
|
block.memory-bank.description = Хранит информацию для логического процессора. Большая ёмкость.
|
||||||
block.logic-display.description = Отображает произвольную графику из логического процессора.
|
block.logic-display.description = Отображает произвольную графику из логического процессора.
|
||||||
block.large-logic-display.description = Отображает произвольную графику из логического процессора.
|
block.large-logic-display.description = Отображает произвольную графику из логического процессора.
|
||||||
block.interplanetary-accelerator.description = Массивный рельсотронный ускоритель. Разгоняет ядро до второй космической скорости для межпланетных размещений.
|
block.interplanetary-accelerator.description = Массивный рельсотронный ускоритель. Ускоряет ядро позволяя преодолеть гравитацию для межпланетного развёртывания
|
||||||
|
|
||||||
unit.dagger.description = Стреляет стандартными пулями по всем врагам поблизости.
|
unit.dagger.description = Стреляет стандартными пулями по всем врагам поблизости.
|
||||||
unit.mace.description = Стреляет потоками огня по всем врагам поблизости.
|
unit.mace.description = Стреляет потоками огня по всем врагам поблизости.
|
||||||
|
|||||||
@@ -17,11 +17,14 @@ linkfail = 打开链接失败!\n网址已复制到您的剪贴板。
|
|||||||
screenshot = 屏幕截图已保存到 {0}
|
screenshot = 屏幕截图已保存到 {0}
|
||||||
screenshot.invalid = 地图太大,可能没有足够的内存用于截图。
|
screenshot.invalid = 地图太大,可能没有足够的内存用于截图。
|
||||||
gameover = 游戏结束
|
gameover = 游戏结束
|
||||||
|
gameover.disconnect = 断开连接
|
||||||
gameover.pvp = [accent] {0}[]队获胜!
|
gameover.pvp = [accent] {0}[]队获胜!
|
||||||
|
gameover.waiting = [accent]正在等待下一张地图...
|
||||||
highscore = [accent]新纪录!
|
highscore = [accent]新纪录!
|
||||||
copied = 已复制。
|
copied = 已复制
|
||||||
indev.popup = [accent]6.0[]仍在[accent]测试版[].\n[lightgray]这意味着:[]\n[scarlet]- 战役玩法完全没有完成[]\n- 很多内容还没有做完\n - 大多[scarlet]单位AI[]无法正确地运行\n- 单位系统完全没有完成\n- 一切您所看到的内容都可能会移除或调整。\n\n在[accent]Github[]提交错误报告。\n[#66ccff]来自译者WinterUnderTheSnow的忠告:不建议新玩家游玩还在测试阶段的6.0!建议您先从[orange]v104.6[#66ccff]或[orange]v104.10[#66ccff]开始游玩!
|
indev.popup = [accent]6.0[]仍在[accent]测试版[].\n[lightgray]这意味着:[]\n[scarlet]- 战役玩法完全没有完成[]\n- 很多内容还没有做完\n - 大多[scarlet]单位AI[]无法正确地运行\n- 单位系统完全没有完成\n- 一切您所看到的内容都可能会移除或调整。\n\n在[accent]Github[]提交错误报告。\n[#66ccff]来自译者WinterUnderTheSnow的忠告:不建议新玩家游玩还在测试阶段的6.0!建议您先从[orange]v104.6[#66ccff]或[orange]v104.10[#66ccff]开始游玩!
|
||||||
indev.notready = 这部分玩法还未开发完成。
|
indev.notready = 这部分玩法还未开发完成。
|
||||||
|
indev.campaign = [accent]您已经到达战役模式的结尾![]\n\n这是内容所能做到的。 未来的更新中将添加行星际旅行。
|
||||||
|
|
||||||
load.sound = 音乐加载中
|
load.sound = 音乐加载中
|
||||||
load.map = 地图加载中
|
load.map = 地图加载中
|
||||||
@@ -57,6 +60,7 @@ schematic.rename = 重命名蓝图
|
|||||||
schematic.info = {0}x{1},{2} 个方块
|
schematic.info = {0}x{1},{2} 个方块
|
||||||
schematic.disabled = [scarlet]蓝图已禁用![]\n您不能在此[accent]地图[]或[accent]服务器[]上使用蓝图.
|
schematic.disabled = [scarlet]蓝图已禁用![]\n您不能在此[accent]地图[]或[accent]服务器[]上使用蓝图.
|
||||||
|
|
||||||
|
stats = 统计资料
|
||||||
stat.wave = 防守波数:[accent]{0}
|
stat.wave = 防守波数:[accent]{0}
|
||||||
stat.enemiesDestroyed = 消灭敌人:[accent]{0}
|
stat.enemiesDestroyed = 消灭敌人:[accent]{0}
|
||||||
stat.built = 建造建筑:[accent]{0}
|
stat.built = 建造建筑:[accent]{0}
|
||||||
@@ -189,6 +193,10 @@ servers.local = 本地服务器
|
|||||||
servers.remote = 远程服务器
|
servers.remote = 远程服务器
|
||||||
servers.global = 全球服务器
|
servers.global = 全球服务器
|
||||||
|
|
||||||
|
servers.showhidden = 显示隐藏的服务器
|
||||||
|
server.shown = 显示
|
||||||
|
server.hidden = 隐藏
|
||||||
|
|
||||||
trace = 跟踪玩家
|
trace = 跟踪玩家
|
||||||
trace.playername = 玩家名称:[accent]{0}
|
trace.playername = 玩家名称:[accent]{0}
|
||||||
trace.ip = IP 地址:[accent]{0}
|
trace.ip = IP 地址:[accent]{0}
|
||||||
@@ -267,6 +275,9 @@ cancel = 取消
|
|||||||
openlink = 打开链接
|
openlink = 打开链接
|
||||||
copylink = 复制链接
|
copylink = 复制链接
|
||||||
back = 返回
|
back = 返回
|
||||||
|
crash.export = 导出崩溃日志
|
||||||
|
crash.none = 找不到崩溃日志。
|
||||||
|
crash.exported = 崩溃日志已导出。
|
||||||
data.export = 导出数据
|
data.export = 导出数据
|
||||||
data.import = 导入数据
|
data.import = 导入数据
|
||||||
data.openfolder = 打开数据文件夹
|
data.openfolder = 打开数据文件夹
|
||||||
@@ -283,6 +294,7 @@ cancelbuilding = [accent][[{0}][]来清除规划
|
|||||||
selectschematic = [accent][[{0}][]来选择复制
|
selectschematic = [accent][[{0}][]来选择复制
|
||||||
pausebuilding = [accent][[{0}][]来暂停建造
|
pausebuilding = [accent][[{0}][]来暂停建造
|
||||||
resumebuilding = [scarlet][[{0}][]来恢复建造
|
resumebuilding = [scarlet][[{0}][]来恢复建造
|
||||||
|
showui = UI已隐藏\n按[accent][[{0}][]显示UI
|
||||||
wave = [accent]第{0}波
|
wave = [accent]第{0}波
|
||||||
wave.cap = [accent]Wave {0}/{1}
|
wave.cap = [accent]Wave {0}/{1}
|
||||||
wave.waiting = [lightgray]下一波倒计时:{0}秒
|
wave.waiting = [lightgray]下一波倒计时:{0}秒
|
||||||
@@ -290,6 +302,8 @@ wave.waveInProgress = [lightgray]波次袭来
|
|||||||
waiting = [lightgray]等待中…
|
waiting = [lightgray]等待中…
|
||||||
waiting.players = 等待玩家中…
|
waiting.players = 等待玩家中…
|
||||||
wave.enemies = [lightgray]剩余 {0} 个敌人
|
wave.enemies = [lightgray]剩余 {0} 个敌人
|
||||||
|
wave.enemycores = [accent]{0}[lightgray] 敌人核心(多个)
|
||||||
|
wave.enemycore = [accent]{0}[lightgray] 敌人核心
|
||||||
wave.enemy = [lightgray]剩余 {0} 个敌人
|
wave.enemy = [lightgray]剩余 {0} 个敌人
|
||||||
wave.guardianwarn = Boss 将在[accent]{0}[]波后到来。
|
wave.guardianwarn = Boss 将在[accent]{0}[]波后到来。
|
||||||
wave.guardianwarn.one = Boss 将在[accent]{0}[]波后到来。
|
wave.guardianwarn.one = Boss 将在[accent]{0}[]波后到来。
|
||||||
@@ -350,6 +364,7 @@ waves.invalid = 剪贴板中的波次信息无效。
|
|||||||
waves.copied = 波次信息已复制。
|
waves.copied = 波次信息已复制。
|
||||||
waves.none = 没有定义敌人。\n请注意,这将自动替换为默认的敌人列表。
|
waves.none = 没有定义敌人。\n请注意,这将自动替换为默认的敌人列表。
|
||||||
|
|
||||||
|
#these are intentionally in lower case
|
||||||
wavemode.counts = 数目
|
wavemode.counts = 数目
|
||||||
wavemode.totals = 总和
|
wavemode.totals = 总和
|
||||||
wavemode.health = 生命值
|
wavemode.health = 生命值
|
||||||
@@ -462,6 +477,8 @@ load = 载入游戏
|
|||||||
save = 保存
|
save = 保存
|
||||||
fps = 帧数:{0}
|
fps = 帧数:{0}
|
||||||
ping = 延迟:{0}毫秒
|
ping = 延迟:{0}毫秒
|
||||||
|
memory = 内存: {0}mb
|
||||||
|
memory2 = 内存:\n {0}mb +\n {1}mb
|
||||||
language.restart = 为了使语言设置生效请重启游戏。
|
language.restart = 为了使语言设置生效请重启游戏。
|
||||||
settings = 设置
|
settings = 设置
|
||||||
tutorial = 教程
|
tutorial = 教程
|
||||||
@@ -476,24 +493,21 @@ complete = [lightgray]完成:
|
|||||||
requirement.wave = {1}中的第{0}波次
|
requirement.wave = {1}中的第{0}波次
|
||||||
requirement.core = 在{0}中摧毁敌方核心
|
requirement.core = 在{0}中摧毁敌方核心
|
||||||
requirement.research = 研究 {0}
|
requirement.research = 研究 {0}
|
||||||
|
requirement.produce = 生产 {0}
|
||||||
requirement.capture = 占领 {0}
|
requirement.capture = 占领 {0}
|
||||||
bestwave = [lightgray]最高波次:{0}
|
|
||||||
launch.text = 发射
|
launch.text = 发射
|
||||||
research.multiplayer = 仅有服主可研究物品。
|
research.multiplayer = 仅有服主可研究物品。
|
||||||
|
map.multiplayer = 仅有服主可查看区域。
|
||||||
uncover = 解锁
|
uncover = 解锁
|
||||||
configure = 设定装运的数量
|
configure = 设定装运的数量
|
||||||
|
|
||||||
loadout = 装运
|
loadout = 装运
|
||||||
resources = 资源
|
resources = 资源
|
||||||
bannedblocks = 禁用建筑
|
bannedblocks = 禁用建筑
|
||||||
addall = 添加所有
|
addall = 添加所有
|
||||||
|
launch.from = 发射地: [accent]{0}
|
||||||
launch.destination = 目的地: {0}
|
launch.destination = 目的地: {0}
|
||||||
configure.invalid = 数量必须是0到{0}之间的数字。
|
configure.invalid = 数量必须是0到{0}之间的数字。
|
||||||
zone.unlocked = [lightgray]{0} 已解锁。
|
|
||||||
zone.requirement.complete = 完成{0}。\n已达成解锁{1}的要求。
|
|
||||||
zone.resources = 地图中的资源:
|
|
||||||
zone.objective = [lightgray]目标:[accent]{0}
|
|
||||||
zone.objective.survival = 生存
|
|
||||||
zone.objective.attack = 摧毁敌方核心
|
|
||||||
add = 添加…
|
add = 添加…
|
||||||
boss.health = Boss 生命值
|
boss.health = Boss 生命值
|
||||||
|
|
||||||
@@ -517,17 +531,41 @@ weather.fog.name = 雾
|
|||||||
sectors.unexplored = [lightgray]未探索
|
sectors.unexplored = [lightgray]未探索
|
||||||
sectors.resources = 资源:
|
sectors.resources = 资源:
|
||||||
sectors.production = 产出:
|
sectors.production = 产出:
|
||||||
|
sectors.export = 输出:
|
||||||
|
sectors.time = 时间:
|
||||||
|
sectors.threat = 威胁
|
||||||
|
sectors.wave = 进攻波:
|
||||||
sectors.stored = 贮存:
|
sectors.stored = 贮存:
|
||||||
sectors.resume = 继续
|
sectors.resume = 继续
|
||||||
sectors.launch = 发射
|
sectors.launch = 发射
|
||||||
sectors.select = 选择
|
sectors.select = 选择
|
||||||
sectors.nonelaunch = [lightgray]无 (太阳)
|
sectors.nonelaunch = [lightgray]无 (太阳)
|
||||||
sectors.rename = 重命名区块
|
sectors.rename = 重命名区块
|
||||||
|
sectors.enemybase = [scarlet]敌人基地
|
||||||
|
sectors.vulnerable = [scarlet]脆弱的
|
||||||
|
sectors.underattack = [scarlet]遭到攻击![accent]{0}% 被摧毁
|
||||||
|
sectors.survives = [accent]存活{0}波
|
||||||
|
sectors.go = 进入
|
||||||
|
sector.curcapture = 区域已占领
|
||||||
|
sector.curlost = 区域丢失
|
||||||
sector.missingresources = [scarlet]核心资源不足
|
sector.missingresources = [scarlet]核心资源不足
|
||||||
|
sector.attacked = 区域[accent]{0}[white]受到攻击!
|
||||||
|
sector.lost = 区域[accent]{0}[white]已丢失!
|
||||||
|
#note: the missing space in the line below is intentional
|
||||||
|
sector.captured = 区域[accent]{0}[white]已占领!
|
||||||
|
|
||||||
|
threat.low = 低
|
||||||
|
threat.medium = 中
|
||||||
|
threat.high = 高
|
||||||
|
threat.extreme = 极高
|
||||||
|
threat.eradication = 根除
|
||||||
|
|
||||||
|
planets = 行星
|
||||||
|
|
||||||
planet.serpulo.name = 塞普罗
|
planet.serpulo.name = 塞普罗
|
||||||
planet.sun.name = 太阳
|
planet.sun.name = 太阳
|
||||||
|
|
||||||
|
sector.impact0078.name = 影响0078
|
||||||
sector.groundZero.name = 零号地区
|
sector.groundZero.name = 零号地区
|
||||||
sector.craters.name = 陨石带
|
sector.craters.name = 陨石带
|
||||||
sector.frozenForest.name = 冰冻森林
|
sector.frozenForest.name = 冰冻森林
|
||||||
@@ -539,6 +577,10 @@ sector.overgrowth.name = 增生区
|
|||||||
sector.tarFields.name = 油田
|
sector.tarFields.name = 油田
|
||||||
sector.saltFlats.name = 盐碱荒滩
|
sector.saltFlats.name = 盐碱荒滩
|
||||||
sector.fungalPass.name = 真菌通道
|
sector.fungalPass.name = 真菌通道
|
||||||
|
sector.biomassFacility.name = 生物质合成设施
|
||||||
|
sector.windsweptIslands.name = 风吹群岛
|
||||||
|
sector.extractionOutpost.name = 萃取前哨
|
||||||
|
sector.planetaryTerminal.name = 行星发射终端
|
||||||
|
|
||||||
sector.groundZero.description = 踏上旅程的最佳位置。这儿的敌人威胁很小,但资源也少。\n收集尽可能多的铅和铜。\n出发吧!
|
sector.groundZero.description = 踏上旅程的最佳位置。这儿的敌人威胁很小,但资源也少。\n收集尽可能多的铅和铜。\n出发吧!
|
||||||
sector.frozenForest.description = 即使是靠近山脉的这里,孢子也已经扩散。他们不能长期停留在寒冷的温度中。\n\n开始运用电力。建造火力发电机并学会使用修理者。
|
sector.frozenForest.description = 即使是靠近山脉的这里,孢子也已经扩散。他们不能长期停留在寒冷的温度中。\n\n开始运用电力。建造火力发电机并学会使用修理者。
|
||||||
@@ -573,7 +615,6 @@ settings.clearcampaignsaves.confirm = 您确定要清除战役进度?
|
|||||||
paused = [accent]< 暂停 >
|
paused = [accent]< 暂停 >
|
||||||
clear = 清除
|
clear = 清除
|
||||||
banned = [scarlet]已禁止
|
banned = [scarlet]已禁止
|
||||||
unplaceable.sectorcaptured = [scarlet]需要占领区块
|
|
||||||
yes = 是
|
yes = 是
|
||||||
no = 否
|
no = 否
|
||||||
info.title = [accent]详情
|
info.title = [accent]详情
|
||||||
@@ -583,6 +624,7 @@ unit.nobuild = [scarlet]单位未能建造
|
|||||||
lastaccessed = [lightgray]上次操作: {0}
|
lastaccessed = [lightgray]上次操作: {0}
|
||||||
block.unknown = [lightgray]???
|
block.unknown = [lightgray]???
|
||||||
|
|
||||||
|
stat.description = 介绍
|
||||||
stat.input = 输入
|
stat.input = 输入
|
||||||
stat.output = 输出
|
stat.output = 输出
|
||||||
stat.booster = 增强物品/液体
|
stat.booster = 增强物品/液体
|
||||||
@@ -610,6 +652,8 @@ stat.memorycapacity = 内存容量
|
|||||||
stat.basepowergeneration = 基础能源输出
|
stat.basepowergeneration = 基础能源输出
|
||||||
stat.productiontime = 生产时间
|
stat.productiontime = 生产时间
|
||||||
stat.repairtime = 建筑完全修复时间
|
stat.repairtime = 建筑完全修复时间
|
||||||
|
stat.weapons = 武器
|
||||||
|
stat.bullet = 子弹
|
||||||
stat.speedincrease = 提速
|
stat.speedincrease = 提速
|
||||||
stat.range = 范围
|
stat.range = 范围
|
||||||
stat.drilltier = 可钻探矿物
|
stat.drilltier = 可钻探矿物
|
||||||
@@ -642,12 +686,15 @@ stat.minetier = 采矿等级
|
|||||||
stat.payloadcapacity = 载货容量
|
stat.payloadcapacity = 载货容量
|
||||||
stat.commandlimit = 指挥上限
|
stat.commandlimit = 指挥上限
|
||||||
stat.abilities = 能力
|
stat.abilities = 能力
|
||||||
|
stat.canboost = 助推器
|
||||||
|
stat.flying = 飞行
|
||||||
|
|
||||||
ability.forcefield = 力墙场
|
ability.forcefield = 力墙场
|
||||||
ability.repairfield = 修复场
|
ability.repairfield = 修复场
|
||||||
ability.statusfield = 状态场
|
ability.statusfield = 状态场
|
||||||
ability.unitspawn = {0} 工厂
|
ability.unitspawn = {0} 工厂
|
||||||
ability.shieldregenfield = 护盾再生场
|
ability.shieldregenfield = 护盾再生场
|
||||||
|
ability.movelightning = 闪电移动
|
||||||
|
|
||||||
bar.drilltierreq = 需要更好的钻头
|
bar.drilltierreq = 需要更好的钻头
|
||||||
bar.noresources = 缺失资源
|
bar.noresources = 缺失资源
|
||||||
@@ -676,12 +723,14 @@ units.processorcontrol = [lightgray]由处理器控制
|
|||||||
bullet.damage = [stat]{0}[lightgray] 伤害
|
bullet.damage = [stat]{0}[lightgray] 伤害
|
||||||
bullet.splashdamage = [stat]{0}[lightgray] 范围伤害 ~[stat] {1}[lightgray] 格
|
bullet.splashdamage = [stat]{0}[lightgray] 范围伤害 ~[stat] {1}[lightgray] 格
|
||||||
bullet.incendiary = [stat] 燃烧
|
bullet.incendiary = [stat] 燃烧
|
||||||
|
bullet.sapping = [stat]sapping
|
||||||
bullet.homing = [stat] 追踪
|
bullet.homing = [stat] 追踪
|
||||||
bullet.shock = [stat] 电击
|
bullet.shock = [stat] 电击
|
||||||
bullet.frag = [stat] 分裂
|
bullet.frag = [stat] 分裂
|
||||||
bullet.knockback = [stat]{0}[lightgray] 击退
|
bullet.knockback = [stat]{0}[lightgray] 击退
|
||||||
bullet.pierce = [stat]{0}[lightgray]x 穿透
|
bullet.pierce = [stat]{0}[lightgray]x 穿透
|
||||||
bullet.infinitepierce = [stat]pierce
|
bullet.infinitepierce = [stat]pierce
|
||||||
|
bullet.healpercent = [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 装弹数量
|
||||||
@@ -706,6 +755,7 @@ unit.items = 物品
|
|||||||
unit.thousands = K
|
unit.thousands = K
|
||||||
unit.millions = M
|
unit.millions = M
|
||||||
unit.billions = B
|
unit.billions = B
|
||||||
|
category.purpose = 介绍
|
||||||
category.general = 普通
|
category.general = 普通
|
||||||
category.power = 能量
|
category.power = 能量
|
||||||
category.liquids = 液体
|
category.liquids = 液体
|
||||||
@@ -719,6 +769,7 @@ setting.blockreplace.name = 自动推荐合适的建筑
|
|||||||
setting.linear.name = 抗锯齿
|
setting.linear.name = 抗锯齿
|
||||||
setting.hints.name = 提示
|
setting.hints.name = 提示
|
||||||
setting.flow.name = 显示资源传送速度[scarlet] (实验性)
|
setting.flow.name = 显示资源传送速度[scarlet] (实验性)
|
||||||
|
setting.backgroundpause.name = 在背景中暂停
|
||||||
setting.buildautopause.name = 自动暂停建造
|
setting.buildautopause.name = 自动暂停建造
|
||||||
setting.animatedwater.name = 流动的水
|
setting.animatedwater.name = 流动的水
|
||||||
setting.animatedshields.name = 动态画面
|
setting.animatedshields.name = 动态画面
|
||||||
@@ -747,7 +798,6 @@ setting.conveyorpathfinding.name = 传送带自动寻路
|
|||||||
setting.sensitivity.name = 控制器灵敏度
|
setting.sensitivity.name = 控制器灵敏度
|
||||||
setting.saveinterval.name = 自动保存间隔
|
setting.saveinterval.name = 自动保存间隔
|
||||||
setting.seconds = {0} 秒
|
setting.seconds = {0} 秒
|
||||||
setting.blockselecttimeout.name = 建筑选择超时
|
|
||||||
setting.milliseconds = {0} 毫秒
|
setting.milliseconds = {0} 毫秒
|
||||||
setting.fullscreen.name = 全屏
|
setting.fullscreen.name = 全屏
|
||||||
setting.borderlesswindow.name = 无边界窗口[lightgray](可能需要重启)
|
setting.borderlesswindow.name = 无边界窗口[lightgray](可能需要重启)
|
||||||
@@ -836,6 +886,8 @@ keybind.menu.name = 菜单
|
|||||||
keybind.pause.name = 暂停
|
keybind.pause.name = 暂停
|
||||||
keybind.pause_building.name = 暂停/继续建造
|
keybind.pause_building.name = 暂停/继续建造
|
||||||
keybind.minimap.name = 小地图
|
keybind.minimap.name = 小地图
|
||||||
|
keybind.planet_map.name = 行星地图
|
||||||
|
keybind.research.name = 研究
|
||||||
keybind.chat.name = 聊天
|
keybind.chat.name = 聊天
|
||||||
keybind.player_list.name = 玩家列表
|
keybind.player_list.name = 玩家列表
|
||||||
keybind.console.name = 控制台
|
keybind.console.name = 控制台
|
||||||
@@ -899,6 +951,7 @@ content.item.name = 物品
|
|||||||
content.liquid.name = 液体
|
content.liquid.name = 液体
|
||||||
content.unit.name = 部队
|
content.unit.name = 部队
|
||||||
content.block.name = 块
|
content.block.name = 块
|
||||||
|
content.sector.name = 区域
|
||||||
|
|
||||||
item.copper.name = 铜
|
item.copper.name = 铜
|
||||||
item.lead.name = 铅
|
item.lead.name = 铅
|
||||||
@@ -959,6 +1012,7 @@ block.resupply-point.name = 补给点
|
|||||||
block.parallax.name = 差扰光束
|
block.parallax.name = 差扰光束
|
||||||
block.cliff.name = 悬崖
|
block.cliff.name = 悬崖
|
||||||
block.sand-boulder.name = 砂岩
|
block.sand-boulder.name = 砂岩
|
||||||
|
block.basalt-boulder.name = 玄武岩巨石
|
||||||
block.grass.name = 草地
|
block.grass.name = 草地
|
||||||
block.slag.name = 矿渣
|
block.slag.name = 矿渣
|
||||||
block.space.name = 太空
|
block.space.name = 太空
|
||||||
@@ -1056,7 +1110,6 @@ block.conveyor.name = 传送带
|
|||||||
block.titanium-conveyor.name = 钛传送带
|
block.titanium-conveyor.name = 钛传送带
|
||||||
block.plastanium-conveyor.name = 塑钢传送带
|
block.plastanium-conveyor.name = 塑钢传送带
|
||||||
block.armored-conveyor.name = 装甲传送带
|
block.armored-conveyor.name = 装甲传送带
|
||||||
block.armored-conveyor.description = 运送物品,与钛传送带一样的速度,但有更强的装甲。除其他传送带,不接受任何边上的输入。
|
|
||||||
block.junction.name = 连接器
|
block.junction.name = 连接器
|
||||||
block.router.name = 路由器
|
block.router.name = 路由器
|
||||||
block.distributor.name = 分配器
|
block.distributor.name = 分配器
|
||||||
@@ -1064,7 +1117,6 @@ block.sorter.name = 分类器
|
|||||||
block.inverted-sorter.name = 反向分类器
|
block.inverted-sorter.name = 反向分类器
|
||||||
block.message.name = 信息板
|
block.message.name = 信息板
|
||||||
block.illuminator.name = 照明器
|
block.illuminator.name = 照明器
|
||||||
block.illuminator.description = 小型、紧凑、可配置的光源。需要能量运行。
|
|
||||||
block.overflow-gate.name = 溢流门
|
block.overflow-gate.name = 溢流门
|
||||||
block.underflow-gate.name = 反向溢流门
|
block.underflow-gate.name = 反向溢流门
|
||||||
block.silicon-smelter.name = 硅冶炼厂
|
block.silicon-smelter.name = 硅冶炼厂
|
||||||
@@ -1160,6 +1212,11 @@ block.payload-router.name = 载荷路由器
|
|||||||
block.disassembler.name = 解离机
|
block.disassembler.name = 解离机
|
||||||
block.silicon-crucible.name = 热能坩埚
|
block.silicon-crucible.name = 热能坩埚
|
||||||
block.overdrive-dome.name = 超速穹顶投射器
|
block.overdrive-dome.name = 超速穹顶投射器
|
||||||
|
#experimental, may be removed
|
||||||
|
block.block-forge.name = 方块熔炉
|
||||||
|
block.block-loader.name = 方块装载机
|
||||||
|
block.block-unloader.name = 方块卸载机
|
||||||
|
block.interplanetary-accelerator.name = 行星际加速器
|
||||||
|
|
||||||
block.switch.name = 开关
|
block.switch.name = 开关
|
||||||
block.micro-processor.name = 微型处理器
|
block.micro-processor.name = 微型处理器
|
||||||
@@ -1178,30 +1235,45 @@ team.derelict.name = 灰
|
|||||||
team.green.name = 绿
|
team.green.name = 绿
|
||||||
team.purple.name = 紫
|
team.purple.name = 紫
|
||||||
|
|
||||||
tutorial.next = [lightgray]<点击以继续>
|
hint.skip = 跳过
|
||||||
tutorial.intro = 您已进入[scarlet] Mindustry 教程[]。[]\n使用[accent][[WASD][]键移动机甲和视角。\n[accent]按住[[Ctrl]并转动鼠标滚轮[]缩放视野。\n让我们从[accent]采集铜矿[]开始。先移动到铜矿旁边,然后点按矿脉附近散落的矿物。\n\n[accent]{0}/{1} 铜
|
hint.desktopMove = 使用[accent][[WASD][]来移动.
|
||||||
tutorial.intro.mobile = 您已进入[scarlet] Mindustry 教程[]。\n在屏幕上滑动来继续。\n[accent]双指捏合[] 来缩小和放大。\n让我们从[accent]采集铜矿[]开始。先移动到铜矿旁边,然后点按矿脉附近散落的矿物。\n\n[accent]铜 {0}/{1}
|
hint.zoom = [accent]滚动[]放大或缩小.
|
||||||
tutorial.drill = 手动采矿效率不高。\n[accent]钻头[]可以自动采矿。\n让我们在在铜矿上放一个。\n点击右下角的钻头菜单。\n选择[accent]机械钻头[]。\n单击将其放置在铜矿上。\n[accent]右键单击[]来停止。
|
hint.mine = 移动到\uf8c4铜矿附近并点按[accent]tap[]进行手动开采
|
||||||
tutorial.drill.mobile = 手动采矿效率不高。\n[accent]钻头[]可以自动采矿。\n点右下角的钻头菜单。\n选择[accent]机械钻头[]。\n点一下将其放在铜矿上,点[accent]对号[]来确定。\n点[accent]叉号[]来取消。
|
hint.desktopShoot = [accent][[Left-click][]射击.
|
||||||
tutorial.blockinfo = 每种钻头都有其独特的数据。每个钻头只能开采部分矿石。\n若要查看建筑的详细信息,[accent]在菜单中点击问号。[]\n\n[accent]现在查看机械钻头的数据吧。[]
|
hint.depositItems = 要转移物品,请将其从飞船上拖到核心。
|
||||||
tutorial.conveyor = [accent]传送带[]可以把物资传送到核心。\n请在钻头到核心间建造一条传送带。
|
hint.respawn = 要重生飞船,请按[accent][[V][].
|
||||||
tutorial.conveyor.mobile = [accent]传送带[]可以把物资传送到核心。\n请在钻头到核心间建造一条传送带。\n[accent]长按数秒[]并向一个方向拖动来直线放置。\n\n[accent]{0}/{1} 条传送带\n[accent]0/1 物品
|
hint.respawn.mobile = 您已切换控制单元/结构. 如果要重生飞船请[accent]点击左上方的图标(那个和你长得一样的).[]
|
||||||
tutorial.turret = 必须建造防御建筑来击退[lightgray]敌人[]。\n请在核心附近造一个双管炮。
|
hint.desktopPause = 按[accent][[Space][]暂停和取消暂停游戏.
|
||||||
tutorial.drillturret = 双管炮需要[accent]铜[]作弹药来射击。\n可以放一个钻头在炮塔附近供应铜。
|
hint.placeDrill = 选择\ue85e[accent]钻头[]右下角菜单中的标签,然后选择一个\uf870 [accent]钻头[]然后单击铜矿将其放置.
|
||||||
tutorial.pause = 在战斗中,您可以[accent]暂停游戏[]。\n暂停时您可以规划建筑物。\n\n按[accent]空格[]暂停。
|
hint.placeDrill.mobile = 选择\ue85e[accent]钻头[]右下角菜单中的标签,然后选择一个\uf870 [accent]钻头[]然后点击铜矿将其放置.\n\n按下\ue800 [accent]复选标记[]在右下角按钮确认.
|
||||||
tutorial.pause.mobile = 在战斗中,您可以[accent]暂停游戏[]。\n暂停时您可以规划建筑物。\n\n[accent]点击左上角的按钮以暂停。
|
hint.placeConveyor = 传送带将物品从钻头移到其他块中。选择一个\uf896 [accent]传送带[]从\ue814 [accent]布局[]标签.\n\n单击并拖动以放置多个传送带.\n[accent]滚动[]旋转.
|
||||||
tutorial.unpause = 现在再次按空格以继续。
|
hint.placeConveyor.mobile = 传送带将物品从钻头移到其他块中。选择一个\uf896 [accent]传送带[]从\ue814 [accent]布局[]标签.\n\n按住手指一秒钟,然后拖动以放置多个传送带.
|
||||||
tutorial.unpause.mobile = 现在再次点按以继续。
|
hint.placeTurret = 放置\uf861 [accent]炮塔[]保卫你的基地从敌人手中.\n\n炮塔需要弹药-在这种情况下e, \uf838copper.\n使用传送带和钻头为它们供弹。
|
||||||
tutorial.breaking = 建筑经常需要拆除。\n[accent]按住鼠标右键[]来拆除选中的建筑。[]\n\n[accent]使用范围拆除来拆除核心左侧的废墙。
|
hint.breaking = [accent]右击[]并拖动以拆除方块.
|
||||||
tutorial.breaking.mobile = 建筑经常需要拆除。\n[accent]选择拆除模式[],点击建筑以拆除。\n[accent]长按几秒[]并拖动来范围拆除。\n点击对号来确定。\n\n[accent]使用范围拆除来拆除核心左侧的废墙。
|
hint.breaking.mobile = 激活\ue817 [accent]锤子[]在右下角点击以拆除方块.\n\n按住手指一秒钟,然后拖动以选择.
|
||||||
tutorial.withdraw = 有时,从建筑中取出物品是必要的。\n[accent]点击包含物品的建筑[],然后[accent]点击在方框中的物品[]。\n可以通过[accent]点击或长按[]来取出物品。\n\n[accent]从核心中取出一些铜[]。
|
hint.research = 使用\ue875 [accent]科技树[]按钮研究新技术.
|
||||||
tutorial.deposit = 将物品从机甲拖向建筑来放下物品。\n\n[accent]将铜放回核心[]。
|
hint.research.mobile = 使用\ue875 [accent]科技树[]按钮在\ue88c [accent]菜单[]去研究新技术.
|
||||||
tutorial.waves = [lightgray]敌人[]来了。\n\n保护核心,防御两波攻击。造更多的炮塔。[accent]点击[]以射击。\n建造更多的炮塔和钻头,并采更多的矿。
|
hint.unitControl = 按住[accent][[L-ctrl][]和[accent]点击[]控制友军单位或炮塔。
|
||||||
tutorial.waves.mobile = [lightgray]敌人[]来了。\n\n保护核心,防御两波攻击。造更多的炮塔。你的机甲将对敌人自动开火。\n建造更多的炮塔和钻头,并采更多的矿。
|
hint.unitControl.mobile = [accent][双击[]控制友军单位或炮塔(双击)。
|
||||||
tutorial.launch = 进入特定波次后,你可以[accent]发射核心(起飞)[],[accent]带走核心中的所有资源[]并抛下所有的建筑。\n装运的资源可用于研究科技。\n\n[accent]点击发射按钮。
|
hint.launch = 一旦收集到足够的资源,您就可以[accent]发射[]通过选择附近的区域从\ue827 [accent]地图[]在右下角.
|
||||||
|
hint.launch.mobile = 一旦收集到足够的资源,您就可以[accent]发射[]通过选择附近的区域从\ue827 [accent]地图[]在\ue88c [accent]菜单[].
|
||||||
|
hint.schematicSelect = 按住[accent][[F][]并拖动以选择要复制和粘贴的块.\n\n[accent][[Middle Click][]复制单个块类型.
|
||||||
|
hint.conveyorPathfind = 按住[accent][[L-Ctrl][]拖动,传送带会自动生成路径.
|
||||||
|
hint.conveyorPathfind.mobile = 启用\ue844 [accent]对角线模式[]并拖动,传送带会自动生成路径.
|
||||||
|
hint.boost = 按住[accent][[L-Shift][]用当前单位飞越障碍物.\n\n只有少数地面单位有助推器.(首先排除爬虫家族)
|
||||||
|
hint.command = 按accent][[G][]指挥附近的单位编队.
|
||||||
|
hint.command.mobile = [accent][双击][]您的部队指挥附近的部队编队.(双击)
|
||||||
|
hint.payloadPickup = 按[accent][[[]捡起小方块或单位.
|
||||||
|
hint.payloadPickup.mobile = [accent]点住]一个小方块或一个单位来捡起来.
|
||||||
|
hint.payloadDrop = 按[accent]][]放下有效载荷.
|
||||||
|
hint.payloadDrop.mobile = [accent]点住[]一个空的位置将有效载荷丢到那里.(不是很精准)
|
||||||
|
hint.waveFire = [accent]进攻波[]炮塔加水弹药会自动扑灭附近的大火.(浪涌和海啸)
|
||||||
|
hint.generator = \uf879 [accent]燃烧发电机[]燃烧煤炭并将电力传输到相邻方块.\n\n电力传输范围可以扩展,用\uf87f [accent]能量节点[].
|
||||||
|
|
||||||
item.copper.description = 一种最基本的的建筑材料。在各种类型的建筑中被广泛使用。
|
item.copper.description = 一种最基本的的建筑材料。在各种类型的建筑中被广泛使用。
|
||||||
|
item.copper.details = 铜. 在Serpulo上的金属异常丰富。 除非加固,否则结构较弱。
|
||||||
item.lead.description = 一种基本的电力材料。广泛用于电子设备和液体输送模块。
|
item.lead.description = 一种基本的电力材料。广泛用于电子设备和液体输送模块。
|
||||||
|
item.lead.details = Dense. Inert. Extensively used in batteries.\nNote: Likely toxic to biological life forms. Not that there are many left here.
|
||||||
item.metaglass.description = 一种致密坚硬的复合玻璃。广泛用于液体输送和存储。
|
item.metaglass.description = 一种致密坚硬的复合玻璃。广泛用于液体输送和存储。
|
||||||
item.graphite.description = 一种高密度的碳材料,用于弹药和电器元件。
|
item.graphite.description = 一种高密度的碳材料,用于弹药和电器元件。
|
||||||
item.sand.description = 一种常见的材料,广泛用于冶炼,包括制作合金和助熔剂。
|
item.sand.description = 一种常见的材料,广泛用于冶炼,包括制作合金和助熔剂。
|
||||||
|
|||||||
@@ -101,3 +101,5 @@ jalastram (freesound.org)
|
|||||||
newlocknew (freesound.org)
|
newlocknew (freesound.org)
|
||||||
dsmolenaers (freesound.org)
|
dsmolenaers (freesound.org)
|
||||||
Headphaze (freesound.org)
|
Headphaze (freesound.org)
|
||||||
|
VolasYouKnow
|
||||||
|
Ángel Rodríguez Aguilera
|
||||||
|
|||||||
@@ -317,3 +317,4 @@
|
|||||||
63419=legacy-unit-factory-air|block-legacy-unit-factory-air-medium
|
63419=legacy-unit-factory-air|block-legacy-unit-factory-air-medium
|
||||||
63418=legacy-unit-factory-ground|block-legacy-unit-factory-ground-medium
|
63418=legacy-unit-factory-ground|block-legacy-unit-factory-ground-medium
|
||||||
63417=interplanetary-accelerator|block-interplanetary-accelerator-medium
|
63417=interplanetary-accelerator|block-interplanetary-accelerator-medium
|
||||||
|
63416=basalt-boulder|block-basalt-boulder-medium
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
const log = function(context, obj){
|
function log(context, obj){
|
||||||
Vars.mods.scripts.log(context, String(obj))
|
Vars.mods.scripts.log(context, String(obj))
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -19,15 +19,28 @@ let modName = "none"
|
|||||||
|
|
||||||
const print = text => log(modName + "/" + scriptName, text);
|
const print = text => log(modName + "/" + scriptName, text);
|
||||||
|
|
||||||
const extendContent = function(classType, name, params){
|
//js 'extend(Base, ..., {})' = java 'new Base(...) {}'
|
||||||
return new JavaAdapter(classType, params, name)
|
function extend(/*Base, ..., def*/){
|
||||||
|
const Base = arguments[0]
|
||||||
|
const def = arguments[arguments.length - 1]
|
||||||
|
//swap order from Base, def, ... to Base, ..., def
|
||||||
|
const args = [Base, def].concat(Array.from(arguments).splice(1, arguments.length - 2))
|
||||||
|
|
||||||
|
//forward constructor arguments to new JavaAdapter
|
||||||
|
const instance = JavaAdapter.apply(null, args)
|
||||||
|
//JavaAdapter only overrides functions; set fields too
|
||||||
|
for(var i in def){
|
||||||
|
if(typeof(def[i]) != "function"){
|
||||||
|
instance[i] = def[i]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return instance
|
||||||
}
|
}
|
||||||
|
|
||||||
const extend = function(classType, params){
|
//For backwards compatibility, use extend instead
|
||||||
return new JavaAdapter(classType, params)
|
const extendContent = extend;
|
||||||
}
|
|
||||||
|
|
||||||
//these are not sctrictly necessary, but are kept for edge cases
|
//these are not strictly necessary, but are kept for edge cases
|
||||||
const run = method => new java.lang.Runnable(){run: method}
|
const run = method => new java.lang.Runnable(){run: method}
|
||||||
const boolf = method => new Boolf(){get: method}
|
const boolf = method => new Boolf(){get: method}
|
||||||
const boolp = method => new Boolp(){get: method}
|
const boolp = method => new Boolp(){get: method}
|
||||||
|
|||||||
@@ -2,14 +2,14 @@
|
|||||||
|
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
const log = function(context, obj){
|
function log(context, obj){
|
||||||
Vars.mods.getScripts().log(context, String(obj))
|
Vars.mods.scripts.log(context, String(obj))
|
||||||
}
|
}
|
||||||
|
|
||||||
const readString = path => Vars.mods.getScripts().readString(path)
|
const readString = path => Vars.mods.scripts.readString(path)
|
||||||
const readBytes = path => Vars.mods.getScripts().readBytes(path)
|
const readBytes = path => Vars.mods.scripts.readBytes(path)
|
||||||
const loadMusic = path => Vars.mods.getScripts().loadMusic(path)
|
const loadMusic = path => Vars.mods.scripts.loadMusic(path)
|
||||||
const loadSound = path => Vars.mods.getScripts().loadSound(path)
|
const loadSound = path => Vars.mods.scripts.loadSound(path)
|
||||||
|
|
||||||
const readFile = (purpose, ext, cons) => Vars.mods.scripts.readFile(purpose, ext, cons);
|
const readFile = (purpose, ext, cons) => Vars.mods.scripts.readFile(purpose, ext, cons);
|
||||||
const readBinFile = (purpose, ext, cons) => Vars.mods.scripts.readBinFile(purpose, ext, cons);
|
const readBinFile = (purpose, ext, cons) => Vars.mods.scripts.readBinFile(purpose, ext, cons);
|
||||||
@@ -21,15 +21,28 @@ let modName = "none"
|
|||||||
|
|
||||||
const print = text => log(modName + "/" + scriptName, text);
|
const print = text => log(modName + "/" + scriptName, text);
|
||||||
|
|
||||||
const extendContent = function(classType, name, params){
|
//js 'extend(Base, ..., {})' = java 'new Base(...) {}'
|
||||||
return new JavaAdapter(classType, params, name)
|
function extend(/*Base, ..., def*/){
|
||||||
|
const Base = arguments[0]
|
||||||
|
const def = arguments[arguments.length - 1]
|
||||||
|
//swap order from Base, def, ... to Base, ..., def
|
||||||
|
const args = [Base, def].concat(Array.from(arguments).splice(1, arguments.length - 2))
|
||||||
|
|
||||||
|
//forward constructor arguments to new JavaAdapter
|
||||||
|
const instance = JavaAdapter.apply(null, args)
|
||||||
|
//JavaAdapter only overrides functions; set fields too
|
||||||
|
for(var i in def){
|
||||||
|
if(typeof(def[i]) != "function"){
|
||||||
|
instance[i] = def[i]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return instance
|
||||||
}
|
}
|
||||||
|
|
||||||
const extend = function(classType, params){
|
//For backwards compatibility, use extend instead
|
||||||
return new JavaAdapter(classType, params)
|
const extendContent = extend;
|
||||||
}
|
|
||||||
|
|
||||||
//these are not sctrictly necessary, but are kept for edge cases
|
//these are not strictly necessary, but are kept for edge cases
|
||||||
const run = method => new java.lang.Runnable(){run: method}
|
const run = method => new java.lang.Runnable(){run: method}
|
||||||
const boolf = method => new Boolf(){get: method}
|
const boolf = method => new Boolf(){get: method}
|
||||||
const boolp = method => new Boolp(){get: method}
|
const boolp = method => new Boolp(){get: method}
|
||||||
@@ -73,6 +86,7 @@ importPackage(Packages.mindustry.entities)
|
|||||||
importPackage(Packages.mindustry.entities.abilities)
|
importPackage(Packages.mindustry.entities.abilities)
|
||||||
importPackage(Packages.mindustry.entities.bullet)
|
importPackage(Packages.mindustry.entities.bullet)
|
||||||
importPackage(Packages.mindustry.entities.comp)
|
importPackage(Packages.mindustry.entities.comp)
|
||||||
|
importPackage(Packages.mindustry.entities.effect)
|
||||||
importPackage(Packages.mindustry.entities.units)
|
importPackage(Packages.mindustry.entities.units)
|
||||||
importPackage(Packages.mindustry.game)
|
importPackage(Packages.mindustry.game)
|
||||||
importPackage(Packages.mindustry.gen)
|
importPackage(Packages.mindustry.gen)
|
||||||
@@ -134,6 +148,8 @@ const UnlockEvent = Packages.mindustry.game.EventType.UnlockEvent
|
|||||||
const StateChangeEvent = Packages.mindustry.game.EventType.StateChangeEvent
|
const StateChangeEvent = Packages.mindustry.game.EventType.StateChangeEvent
|
||||||
const TileChangeEvent = Packages.mindustry.game.EventType.TileChangeEvent
|
const TileChangeEvent = Packages.mindustry.game.EventType.TileChangeEvent
|
||||||
const GameOverEvent = Packages.mindustry.game.EventType.GameOverEvent
|
const GameOverEvent = Packages.mindustry.game.EventType.GameOverEvent
|
||||||
|
const UnitControlEvent = Packages.mindustry.game.EventType.UnitControlEvent
|
||||||
|
const PickupEvent = Packages.mindustry.game.EventType.PickupEvent
|
||||||
const TapEvent = Packages.mindustry.game.EventType.TapEvent
|
const TapEvent = Packages.mindustry.game.EventType.TapEvent
|
||||||
const ConfigEvent = Packages.mindustry.game.EventType.ConfigEvent
|
const ConfigEvent = Packages.mindustry.game.EventType.ConfigEvent
|
||||||
const DepositEvent = Packages.mindustry.game.EventType.DepositEvent
|
const DepositEvent = Packages.mindustry.game.EventType.DepositEvent
|
||||||
@@ -142,6 +158,8 @@ const SectorCaptureEvent = Packages.mindustry.game.EventType.SectorCaptureEvent
|
|||||||
const PlayerChatEvent = Packages.mindustry.game.EventType.PlayerChatEvent
|
const PlayerChatEvent = Packages.mindustry.game.EventType.PlayerChatEvent
|
||||||
const ClientPreConnectEvent = Packages.mindustry.game.EventType.ClientPreConnectEvent
|
const ClientPreConnectEvent = Packages.mindustry.game.EventType.ClientPreConnectEvent
|
||||||
const CommandIssueEvent = Packages.mindustry.game.EventType.CommandIssueEvent
|
const CommandIssueEvent = Packages.mindustry.game.EventType.CommandIssueEvent
|
||||||
|
const SchematicCreateEvent = Packages.mindustry.game.EventType.SchematicCreateEvent
|
||||||
|
const SectorLaunchEvent = Packages.mindustry.game.EventType.SectorLaunchEvent
|
||||||
const LaunchItemEvent = Packages.mindustry.game.EventType.LaunchItemEvent
|
const LaunchItemEvent = Packages.mindustry.game.EventType.LaunchItemEvent
|
||||||
const SectorInvasionEvent = Packages.mindustry.game.EventType.SectorInvasionEvent
|
const SectorInvasionEvent = Packages.mindustry.game.EventType.SectorInvasionEvent
|
||||||
const SectorLoseEvent = Packages.mindustry.game.EventType.SectorLoseEvent
|
const SectorLoseEvent = Packages.mindustry.game.EventType.SectorLoseEvent
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 828 B After Width: | Height: | Size: 831 B |
|
Before Width: | Height: | Size: 675 KiB After Width: | Height: | Size: 667 KiB |
|
Before Width: | Height: | Size: 186 KiB After Width: | Height: | Size: 186 KiB |
|
Before Width: | Height: | Size: 437 KiB After Width: | Height: | Size: 440 KiB |
|
Before Width: | Height: | Size: 1.4 MiB After Width: | Height: | Size: 1.4 MiB |
|
Before Width: | Height: | Size: 3.0 MiB After Width: | Height: | Size: 3.0 MiB |
|
Before Width: | Height: | Size: 187 KiB After Width: | Height: | Size: 187 KiB |
|
Before Width: | Height: | Size: 438 KiB After Width: | Height: | Size: 438 KiB |
|
Before Width: | Height: | Size: 1.4 MiB After Width: | Height: | Size: 1.4 MiB |
@@ -112,8 +112,8 @@ public abstract class ClientLauncher extends ApplicationCore implements Platform
|
|||||||
super.add(module);
|
super.add(module);
|
||||||
|
|
||||||
//autoload modules when necessary
|
//autoload modules when necessary
|
||||||
if(module instanceof Loadable){
|
if(module instanceof Loadable l){
|
||||||
assets.load((Loadable)module);
|
assets.load(l);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ public class Vars implements Loadable{
|
|||||||
/** URL for sending crash reports to */
|
/** URL for sending crash reports to */
|
||||||
public static final String crashReportURL = "http://192.99.169.18/report";
|
public static final String crashReportURL = "http://192.99.169.18/report";
|
||||||
/** URL the links to the wiki's modding guide.*/
|
/** URL the links to the wiki's modding guide.*/
|
||||||
public static final String modGuideURL = "https://mindustrygame.github.io/wiki/modding/";
|
public static final String modGuideURL = "https://mindustrygame.github.io/wiki/modding/1-modding/";
|
||||||
/** URL to the JSON file containing all the global, public servers. Not queried in BE. */
|
/** URL to the JSON file containing all the global, public servers. Not queried in BE. */
|
||||||
public static final String serverJsonURL = "https://raw.githubusercontent.com/Anuken/Mindustry/master/servers.json";
|
public static final String serverJsonURL = "https://raw.githubusercontent.com/Anuken/Mindustry/master/servers.json";
|
||||||
/** URL to the JSON file containing all the BE servers. Only queried in BE. */
|
/** URL to the JSON file containing all the BE servers. Only queried in BE. */
|
||||||
@@ -88,7 +88,7 @@ public class Vars implements Loadable{
|
|||||||
/** duration of time between turns in ticks */
|
/** duration of time between turns in ticks */
|
||||||
public static final float turnDuration = 2 * Time.toMinutes;
|
public static final float turnDuration = 2 * Time.toMinutes;
|
||||||
/** chance of an invasion per turn, 1 = 100% */
|
/** chance of an invasion per turn, 1 = 100% */
|
||||||
public static final float baseInvasionChance = 1f / 30f;
|
public static final float baseInvasionChance = 1f / 100f;
|
||||||
/** how many turns have to pass before invasions start */
|
/** how many turns have to pass before invasions start */
|
||||||
public static final int invasionGracePeriod = 20;
|
public static final int invasionGracePeriod = 20;
|
||||||
/** min armor fraction damage; e.g. 0.05 = at least 5% damage */
|
/** min armor fraction damage; e.g. 0.05 = at least 5% damage */
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
package mindustry.ai;
|
package mindustry.ai;
|
||||||
|
|
||||||
|
import arc.*;
|
||||||
|
import arc.input.*;
|
||||||
import arc.math.*;
|
import arc.math.*;
|
||||||
import arc.math.geom.*;
|
import arc.math.geom.*;
|
||||||
import arc.struct.*;
|
import arc.struct.*;
|
||||||
@@ -15,18 +17,21 @@ import mindustry.gen.*;
|
|||||||
import mindustry.type.*;
|
import mindustry.type.*;
|
||||||
import mindustry.world.*;
|
import mindustry.world.*;
|
||||||
import mindustry.world.blocks.defense.*;
|
import mindustry.world.blocks.defense.*;
|
||||||
|
import mindustry.world.blocks.distribution.*;
|
||||||
import mindustry.world.blocks.production.*;
|
import mindustry.world.blocks.production.*;
|
||||||
import mindustry.world.blocks.storage.*;
|
import mindustry.world.blocks.storage.*;
|
||||||
|
import mindustry.world.blocks.storage.CoreBlock.*;
|
||||||
|
|
||||||
import static mindustry.Vars.*;
|
import static mindustry.Vars.*;
|
||||||
|
|
||||||
public class BaseAI{
|
public class BaseAI{
|
||||||
private static final Vec2 axis = new Vec2(), rotator = new Vec2();
|
private static final Vec2 axis = new Vec2(), rotator = new Vec2();
|
||||||
private static final float correctPercent = 0.5f;
|
private static final float correctPercent = 0.5f;
|
||||||
private static final float step = 5;
|
|
||||||
private static final int attempts = 4;
|
private static final int attempts = 4;
|
||||||
private static final float emptyChance = 0.01f;
|
private static final float emptyChance = 0.01f;
|
||||||
private static final int timerStep = 0, timerSpawn = 1;
|
private static final int timerStep = 0, timerSpawn = 1, timerRefreshPath = 2;
|
||||||
|
private static final int pathStep = 50;
|
||||||
|
private static final Seq<Tile> tmpTiles = new Seq<>();
|
||||||
|
|
||||||
private static int correct = 0, incorrect = 0;
|
private static int correct = 0, incorrect = 0;
|
||||||
|
|
||||||
@@ -36,6 +41,13 @@ public class BaseAI{
|
|||||||
TeamData data;
|
TeamData data;
|
||||||
Interval timer = new Interval(4);
|
Interval timer = new Interval(4);
|
||||||
|
|
||||||
|
IntSet path = new IntSet();
|
||||||
|
IntSet calcPath = new IntSet();
|
||||||
|
@Nullable Tile calcTile;
|
||||||
|
boolean calculating, startedCalculating;
|
||||||
|
int calcCount = 0;
|
||||||
|
int totalCalcs = 0;
|
||||||
|
|
||||||
public BaseAI(TeamData data){
|
public BaseAI(TeamData data){
|
||||||
this.data = data;
|
this.data = data;
|
||||||
}
|
}
|
||||||
@@ -43,18 +55,87 @@ public class BaseAI{
|
|||||||
public void update(){
|
public void update(){
|
||||||
if(data.team.rules().aiCoreSpawn && timer.get(timerSpawn, 60 * 2.5f) && data.hasCore()){
|
if(data.team.rules().aiCoreSpawn && timer.get(timerSpawn, 60 * 2.5f) && data.hasCore()){
|
||||||
CoreBlock block = (CoreBlock)data.core().block;
|
CoreBlock block = (CoreBlock)data.core().block;
|
||||||
|
int coreUnits = Groups.unit.count(u -> u.team == data.team && u.type == block.unitType);
|
||||||
|
|
||||||
//create AI core unit
|
//create AI core unit(s)
|
||||||
if(!state.isEditor() && !Groups.unit.contains(u -> u.team() == data.team && u.type == block.unitType)){
|
if(!state.isEditor() && coreUnits < data.cores.size){
|
||||||
Unit unit = block.unitType.create(data.team);
|
Unit unit = block.unitType.create(data.team);
|
||||||
unit.set(data.core());
|
unit.set(data.cores.random());
|
||||||
unit.add();
|
unit.add();
|
||||||
Fx.spawn.at(unit);
|
Fx.spawn.at(unit);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//refresh path
|
||||||
|
if(!calculating && (timer.get(timerRefreshPath, 3f * Time.toMinutes) || !startedCalculating) && data.hasCore()){
|
||||||
|
calculating = true;
|
||||||
|
startedCalculating = true;
|
||||||
|
calcPath.clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
//didn't find tile in time
|
||||||
|
if(calculating && calcCount >= world.width() * world.height()){
|
||||||
|
calculating = false;
|
||||||
|
calcCount = 0;
|
||||||
|
calcPath.clear();
|
||||||
|
totalCalcs ++;
|
||||||
|
}
|
||||||
|
|
||||||
|
//calculate path for units so schematics are not placed on it
|
||||||
|
if(calculating){
|
||||||
|
if(calcTile == null){
|
||||||
|
Vars.spawner.eachGroundSpawn((x, y) -> calcTile = world.tile(x, y));
|
||||||
|
if(calcTile == null){
|
||||||
|
calculating = false;
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
var field = pathfinder.getField(state.rules.waveTeam, Pathfinder.costGround, Pathfinder.fieldCore);
|
||||||
|
|
||||||
|
int[][] weights = field.weights;
|
||||||
|
for(int i = 0; i < pathStep; i++){
|
||||||
|
int minCost = Integer.MAX_VALUE;
|
||||||
|
int cx = calcTile.x, cy = calcTile.y;
|
||||||
|
boolean foundAny = false;
|
||||||
|
for(Point2 p : Geometry.d4){
|
||||||
|
int nx = cx + p.x, ny = cy + p.y;
|
||||||
|
|
||||||
|
Tile other = world.tile(nx, ny);
|
||||||
|
if(other != null && weights[nx][ny] < minCost && weights[nx][ny] != -1){
|
||||||
|
minCost = weights[nx][ny];
|
||||||
|
calcTile = other;
|
||||||
|
foundAny = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//didn't find anything, break out of loop, this will trigger a clear later
|
||||||
|
if(!foundAny){
|
||||||
|
calcCount = Integer.MAX_VALUE;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
calcPath.add(calcTile.pos());
|
||||||
|
|
||||||
|
//found the end.
|
||||||
|
if(calcTile.build instanceof CoreBuild b && b.team == state.rules.defaultTeam){
|
||||||
|
//clean up calculations and flush results
|
||||||
|
calculating = false;
|
||||||
|
calcCount = 0;
|
||||||
|
path.clear();
|
||||||
|
path.addAll(calcPath);
|
||||||
|
calcPath.clear();
|
||||||
|
calcTile = null;
|
||||||
|
totalCalcs ++;
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
calcCount ++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//only schedule when there's something to build.
|
//only schedule when there's something to build.
|
||||||
if(data.blocks.isEmpty() && timer.get(timerStep, Mathf.lerp(20f, 4f, data.team.rules().aiTier))){
|
if(totalCalcs > 0 && data.blocks.isEmpty() && timer.get(timerStep, Mathf.lerp(20f, 4f, data.team.rules().aiTier))){
|
||||||
if(!triedWalls){
|
if(!triedWalls){
|
||||||
tryWalls();
|
tryWalls();
|
||||||
triedWalls = true;
|
triedWalls = true;
|
||||||
@@ -123,6 +204,13 @@ public class BaseAI{
|
|||||||
if(!Build.validPlace(tile.block, data.team, realX, realY, tile.rotation)){
|
if(!Build.validPlace(tile.block, data.team, realX, realY, tile.rotation)){
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
Tile wtile = world.tile(realX, realY);
|
||||||
|
|
||||||
|
//may intersect AI path
|
||||||
|
tmpTiles.clear();
|
||||||
|
if(tile.block.solid && wtile != null && wtile.getLinkedTilesAs(tile.block, tmpTiles).contains(t -> path.contains(t.pos()))){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//make sure at least X% of resource requirements are met
|
//make sure at least X% of resource requirements are met
|
||||||
@@ -185,13 +273,18 @@ public class BaseAI{
|
|||||||
}
|
}
|
||||||
|
|
||||||
Tile o = world.tile(tile.x + p.x, tile.y + p.y);
|
Tile o = world.tile(tile.x + p.x, tile.y + p.y);
|
||||||
|
if(o != null && (o.block() instanceof PayloadAcceptor || o.block() instanceof PayloadConveyor)){
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
if(o != null && o.team() == data.team && !(o.block() instanceof Wall)){
|
if(o != null && o.team() == data.team && !(o.block() instanceof Wall)){
|
||||||
any = true;
|
any = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(any && Build.validPlace(wall, data.team, tile.x, tile.y, 0)){
|
tmpTiles.clear();
|
||||||
|
if(any && Build.validPlace(wall, data.team, tile.x, tile.y, 0) && !tile.getLinkedTilesAs(wall, tmpTiles).contains(t -> path.contains(t.pos()))){
|
||||||
data.blocks.add(new BlockPlan(tile.x, tile.y, (short)0, wall.id, null));
|
data.blocks.add(new BlockPlan(tile.x, tile.y, (short)0, wall.id, null));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -87,6 +87,8 @@ public class Pathfinder implements Runnable{
|
|||||||
tiles[tile.x][tile.y] = packTile(tile);
|
tiles[tile.x][tile.y] = packTile(tile);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
preloadPath(getField(state.rules.waveTeam, costGround, fieldCore));
|
||||||
|
|
||||||
start();
|
start();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package mindustry.ai.types;
|
package mindustry.ai.types;
|
||||||
|
|
||||||
|
import arc.math.*;
|
||||||
import arc.struct.*;
|
import arc.struct.*;
|
||||||
import arc.util.*;
|
import arc.util.*;
|
||||||
import mindustry.entities.*;
|
import mindustry.entities.*;
|
||||||
@@ -19,10 +20,6 @@ public class BuilderAI extends AIController{
|
|||||||
@Override
|
@Override
|
||||||
public void updateMovement(){
|
public void updateMovement(){
|
||||||
|
|
||||||
if(unit.moving()){
|
|
||||||
unit.lookAt(unit.vel.angle());
|
|
||||||
}
|
|
||||||
|
|
||||||
if(target != null && shouldShoot()){
|
if(target != null && shouldShoot()){
|
||||||
unit.lookAt(target);
|
unit.lookAt(target);
|
||||||
}
|
}
|
||||||
@@ -49,7 +46,7 @@ public class BuilderAI extends AIController{
|
|||||||
BuildPlan req = unit.buildPlan();
|
BuildPlan req = unit.buildPlan();
|
||||||
|
|
||||||
boolean valid =
|
boolean valid =
|
||||||
(req.tile().build instanceof ConstructBuild && req.tile().<ConstructBuild>bc().cblock == req.block) ||
|
(req.tile() != null && req.tile().build instanceof ConstructBuild && req.tile().<ConstructBuild>bc().cblock == req.block) ||
|
||||||
(req.breaking ?
|
(req.breaking ?
|
||||||
Build.validBreak(unit.team(), req.x, req.y) :
|
Build.validBreak(unit.team(), req.x, req.y) :
|
||||||
Build.validPlace(req.block, unit.team(), req.x, req.y, req.rotation));
|
Build.validPlace(req.block, unit.team(), req.x, req.y, req.rotation));
|
||||||
@@ -87,8 +84,10 @@ public class BuilderAI extends AIController{
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
float rebuildTime = (unit.team.rules().ai ? Mathf.lerp(15f, 2f, unit.team.rules().aiTier) : 2f) * 60f;
|
||||||
|
|
||||||
//find new request
|
//find new request
|
||||||
if(!unit.team.data().blocks.isEmpty() && following == null && timer.get(timerTarget3, 60 * 2f)){
|
if(!unit.team.data().blocks.isEmpty() && following == null && timer.get(timerTarget3, rebuildTime)){
|
||||||
Queue<BlockPlan> blocks = unit.team.data().blocks;
|
Queue<BlockPlan> blocks = unit.team.data().blocks;
|
||||||
BlockPlan block = blocks.first();
|
BlockPlan block = blocks.first();
|
||||||
|
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ public class FormationAI extends AIController implements FormationMember{
|
|||||||
|
|
||||||
if(core != null && leader.mineTile.drop() != null && unit.within(core, unit.type.range) && !unit.acceptsItem(leader.mineTile.drop())){
|
if(core != null && leader.mineTile.drop() != null && unit.within(core, unit.type.range) && !unit.acceptsItem(leader.mineTile.drop())){
|
||||||
if(core.acceptStack(unit.stack.item, unit.stack.amount, unit) > 0){
|
if(core.acceptStack(unit.stack.item, unit.stack.amount, unit) > 0){
|
||||||
Call.transferItemTo(unit.stack.item, unit.stack.amount, unit.x, unit.y, core);
|
Call.transferItemTo(unit, unit.stack.item, unit.stack.amount, unit.x, unit.y, core);
|
||||||
|
|
||||||
unit.clearItem();
|
unit.clearItem();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ public class MinerAI extends AIController{
|
|||||||
|
|
||||||
if(unit.within(core, unit.type.range)){
|
if(unit.within(core, unit.type.range)){
|
||||||
if(core.acceptStack(unit.stack.item, unit.stack.amount, unit) > 0){
|
if(core.acceptStack(unit.stack.item, unit.stack.amount, unit) > 0){
|
||||||
Call.transferItemTo(unit.stack.item, unit.stack.amount, unit.x, unit.y, core);
|
Call.transferItemTo(unit, unit.stack.item, unit.stack.amount, unit.x, unit.y, core);
|
||||||
}
|
}
|
||||||
|
|
||||||
unit.clearItem();
|
unit.clearItem();
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ public class RepairAI extends AIController{
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(target != null){
|
if(target != null){
|
||||||
if(!target.within(unit, unit.type.range * 0.65f) && target instanceof Building){
|
if(!target.within(unit, unit.type.range * 0.65f) && target instanceof Building b && b.team == unit.team){
|
||||||
moveTo(target, unit.type.range * 0.65f);
|
moveTo(target, unit.type.range * 0.65f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -14,8 +14,6 @@ import mindustry.world.blocks.*;
|
|||||||
import mindustry.world.blocks.campaign.*;
|
import mindustry.world.blocks.campaign.*;
|
||||||
import mindustry.world.blocks.defense.*;
|
import mindustry.world.blocks.defense.*;
|
||||||
import mindustry.world.blocks.defense.turrets.*;
|
import mindustry.world.blocks.defense.turrets.*;
|
||||||
import mindustry.world.blocks.defense.turrets.PointDefenseTurret;
|
|
||||||
import mindustry.world.blocks.defense.turrets.TractorBeamTurret;
|
|
||||||
import mindustry.world.blocks.distribution.*;
|
import mindustry.world.blocks.distribution.*;
|
||||||
import mindustry.world.blocks.environment.*;
|
import mindustry.world.blocks.environment.*;
|
||||||
import mindustry.world.blocks.experimental.*;
|
import mindustry.world.blocks.experimental.*;
|
||||||
@@ -39,7 +37,7 @@ public class Blocks implements ContentList{
|
|||||||
//environment
|
//environment
|
||||||
air, spawn, cliff, deepwater, water, taintedWater, tar, slag, stone, craters, charr, sand, darksand, dirt, mud, ice, snow, darksandTaintedWater, space,
|
air, spawn, cliff, deepwater, water, taintedWater, tar, slag, stone, craters, charr, sand, darksand, dirt, mud, ice, snow, darksandTaintedWater, space,
|
||||||
dacite, stoneWall, dirtWall, sporeWall, iceWall, daciteWall, sporePine, snowPine, pine, shrubs, whiteTree, whiteTreeDead, sporeCluster,
|
dacite, stoneWall, dirtWall, sporeWall, iceWall, daciteWall, sporePine, snowPine, pine, shrubs, whiteTree, whiteTreeDead, sporeCluster,
|
||||||
iceSnow, sandWater, darksandWater, duneWall, sandWall, moss, sporeMoss, shale, shaleWall, shaleBoulder, sandBoulder, daciteBoulder, boulder, snowBoulder, grass, salt,
|
iceSnow, sandWater, darksandWater, duneWall, sandWall, moss, sporeMoss, shale, shaleWall, shaleBoulder, sandBoulder, daciteBoulder, boulder, snowBoulder, basaltBoulder, grass, salt,
|
||||||
metalFloor, metalFloorDamaged, metalFloor2, metalFloor3, metalFloor5, basalt, magmarock, hotrock, snowWall, saltWall,
|
metalFloor, metalFloorDamaged, metalFloor2, metalFloor3, metalFloor5, basalt, magmarock, hotrock, snowWall, saltWall,
|
||||||
darkPanel1, darkPanel2, darkPanel3, darkPanel4, darkPanel5, darkPanel6, darkMetal,
|
darkPanel1, darkPanel2, darkPanel3, darkPanel4, darkPanel5, darkPanel6, darkMetal,
|
||||||
pebbles, tendrils,
|
pebbles, tendrils,
|
||||||
@@ -363,7 +361,7 @@ public class Blocks implements ContentList{
|
|||||||
|
|
||||||
sandWall = new StaticWall("sand-wall"){{
|
sandWall = new StaticWall("sand-wall"){{
|
||||||
variants = 2;
|
variants = 2;
|
||||||
sandWater.asFloor().wall = this;
|
sandWater.asFloor().wall = water.asFloor().wall = deepwater.asFloor().wall = this;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
saltWall = new StaticWall("salt-wall");
|
saltWall = new StaticWall("salt-wall");
|
||||||
@@ -415,6 +413,10 @@ public class Blocks implements ContentList{
|
|||||||
variants = 2;
|
variants = 2;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
|
basaltBoulder = new Boulder("basalt-boulder"){{
|
||||||
|
variants = 2;
|
||||||
|
}};
|
||||||
|
|
||||||
moss = new Floor("moss"){{
|
moss = new Floor("moss"){{
|
||||||
variants = 3;
|
variants = 3;
|
||||||
attributes.set(Attribute.spores, 0.15f);
|
attributes.set(Attribute.spores, 0.15f);
|
||||||
@@ -1153,7 +1155,7 @@ public class Blocks implements ContentList{
|
|||||||
}};
|
}};
|
||||||
|
|
||||||
battery = new Battery("battery"){{
|
battery = new Battery("battery"){{
|
||||||
requirements(Category.power, with(Items.copper, 4, Items.lead, 20));
|
requirements(Category.power, with(Items.copper, 5, Items.lead, 20));
|
||||||
consumes.powerBuffered(4000f);
|
consumes.powerBuffered(4000f);
|
||||||
}};
|
}};
|
||||||
|
|
||||||
@@ -1191,7 +1193,7 @@ public class Blocks implements ContentList{
|
|||||||
size = 2;
|
size = 2;
|
||||||
|
|
||||||
ambientSound = Sounds.smelter;
|
ambientSound = Sounds.smelter;
|
||||||
ambientSoundVolume = 0.05f;
|
ambientSoundVolume = 0.06f;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
differentialGenerator = new SingleTypeGenerator("differential-generator"){{
|
differentialGenerator = new SingleTypeGenerator("differential-generator"){{
|
||||||
@@ -1212,18 +1214,18 @@ public class Blocks implements ContentList{
|
|||||||
requirements(Category.power, with(Items.lead, 100, Items.silicon, 75, Items.phaseFabric, 25, Items.plastanium, 75, Items.thorium, 50));
|
requirements(Category.power, with(Items.lead, 100, Items.silicon, 75, Items.phaseFabric, 25, Items.plastanium, 75, Items.thorium, 50));
|
||||||
size = 2;
|
size = 2;
|
||||||
powerProduction = 4.5f;
|
powerProduction = 4.5f;
|
||||||
itemDuration = 60 * 15f;
|
itemDuration = 60 * 14f;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
solarPanel = new SolarGenerator("solar-panel"){{
|
solarPanel = new SolarGenerator("solar-panel"){{
|
||||||
requirements(Category.power, with(Items.lead, 10, Items.silicon, 15));
|
requirements(Category.power, with(Items.lead, 10, Items.silicon, 15));
|
||||||
powerProduction = 0.08f;
|
powerProduction = 0.1f;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
largeSolarPanel = new SolarGenerator("solar-panel-large"){{
|
largeSolarPanel = new SolarGenerator("solar-panel-large"){{
|
||||||
requirements(Category.power, with(Items.lead, 100, Items.silicon, 145, Items.phaseFabric, 15));
|
requirements(Category.power, with(Items.lead, 80, Items.silicon, 110, Items.phaseFabric, 15));
|
||||||
size = 3;
|
size = 3;
|
||||||
powerProduction = 1f;
|
powerProduction = 1.3f;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
thoriumReactor = new NuclearReactor("thorium-reactor"){{
|
thoriumReactor = new NuclearReactor("thorium-reactor"){{
|
||||||
@@ -1354,7 +1356,7 @@ public class Blocks implements ContentList{
|
|||||||
//region storage
|
//region storage
|
||||||
|
|
||||||
coreShard = new CoreBlock("core-shard"){{
|
coreShard = new CoreBlock("core-shard"){{
|
||||||
requirements(Category.effect, BuildVisibility.editorOnly, with(Items.copper, 1000, Items.lead, 1000));
|
requirements(Category.effect, BuildVisibility.editorOnly, with(Items.copper, 1000, Items.lead, 800));
|
||||||
alwaysUnlocked = true;
|
alwaysUnlocked = true;
|
||||||
|
|
||||||
unitType = UnitTypes.alpha;
|
unitType = UnitTypes.alpha;
|
||||||
@@ -1373,7 +1375,7 @@ public class Blocks implements ContentList{
|
|||||||
itemCapacity = 9000;
|
itemCapacity = 9000;
|
||||||
size = 4;
|
size = 4;
|
||||||
|
|
||||||
unitCapModifier = 14;
|
unitCapModifier = 16;
|
||||||
researchCostMultiplier = 0.04f;
|
researchCostMultiplier = 0.04f;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
@@ -1385,8 +1387,8 @@ public class Blocks implements ContentList{
|
|||||||
itemCapacity = 13000;
|
itemCapacity = 13000;
|
||||||
size = 5;
|
size = 5;
|
||||||
|
|
||||||
unitCapModifier = 20;
|
unitCapModifier = 24;
|
||||||
researchCostMultiplier = 0.05f;
|
researchCostMultiplier = 0.06f;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
vault = new StorageBlock("vault"){{
|
vault = new StorageBlock("vault"){{
|
||||||
@@ -1508,16 +1510,17 @@ public class Blocks implements ContentList{
|
|||||||
shootEffect = Fx.shootLiquid;
|
shootEffect = Fx.shootLiquid;
|
||||||
range = 110f;
|
range = 110f;
|
||||||
health = 250 * size * size;
|
health = 250 * size * size;
|
||||||
|
flags = EnumSet.of(BlockFlag.turret, BlockFlag.extinguisher);
|
||||||
}};
|
}};
|
||||||
|
|
||||||
lancer = new ChargeTurret("lancer"){{
|
lancer = new PowerTurret("lancer"){{
|
||||||
requirements(Category.turret, with(Items.copper, 25, Items.lead, 50, Items.silicon, 45));
|
requirements(Category.turret, with(Items.copper, 25, Items.lead, 50, Items.silicon, 45));
|
||||||
range = 155f;
|
range = 165f;
|
||||||
chargeTime = 50f;
|
chargeTime = 40f;
|
||||||
chargeMaxDelay = 30f;
|
chargeMaxDelay = 30f;
|
||||||
chargeEffects = 7;
|
chargeEffects = 7;
|
||||||
recoilAmount = 2f;
|
recoilAmount = 2f;
|
||||||
reloadTime = 90f;
|
reloadTime = 80f;
|
||||||
cooldown = 0.03f;
|
cooldown = 0.03f;
|
||||||
powerUse = 6f;
|
powerUse = 6f;
|
||||||
shootShake = 2f;
|
shootShake = 2f;
|
||||||
@@ -1539,6 +1542,7 @@ public class Blocks implements ContentList{
|
|||||||
lifetime = 16f;
|
lifetime = 16f;
|
||||||
drawSize = 400f;
|
drawSize = 400f;
|
||||||
collidesAir = false;
|
collidesAir = false;
|
||||||
|
length = 173f;
|
||||||
}};
|
}};
|
||||||
}};
|
}};
|
||||||
|
|
||||||
@@ -1552,7 +1556,7 @@ public class Blocks implements ContentList{
|
|||||||
reloadTime = 35f;
|
reloadTime = 35f;
|
||||||
shootCone = 40f;
|
shootCone = 40f;
|
||||||
rotateSpeed = 8f;
|
rotateSpeed = 8f;
|
||||||
powerUse = 3f;
|
powerUse = 3.3f;
|
||||||
targetAir = false;
|
targetAir = false;
|
||||||
range = 90f;
|
range = 90f;
|
||||||
shootEffect = Fx.lightningShoot;
|
shootEffect = Fx.lightningShoot;
|
||||||
@@ -2054,11 +2058,12 @@ public class Blocks implements ContentList{
|
|||||||
}};
|
}};
|
||||||
|
|
||||||
interplanetaryAccelerator = new Accelerator("interplanetary-accelerator"){{
|
interplanetaryAccelerator = new Accelerator("interplanetary-accelerator"){{
|
||||||
requirements(Category.effect, BuildVisibility.campaignOnly, with(Items.copper, 9000, Items.silicon, 9000, Items.thorium, 9000, Items.titanium, 9000, Items.surgeAlloy, 5000, Items.phaseFabric, 4000));
|
requirements(Category.effect, BuildVisibility.campaignOnly, with(Items.copper, 16000, Items.silicon, 11000, Items.thorium, 13000, Items.titanium, 12000, Items.surgeAlloy, 6000, Items.phaseFabric, 5000));
|
||||||
researchCostMultiplier = 0.1f;
|
researchCostMultiplier = 0.1f;
|
||||||
size = 7;
|
size = 7;
|
||||||
hasPower = true;
|
hasPower = true;
|
||||||
consumes.power(10f);
|
consumes.power(10f);
|
||||||
|
buildCostMultiplier = 0.5f;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
//endregion campaign
|
//endregion campaign
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ public class Bullets implements ContentList{
|
|||||||
waterShot, cryoShot, slagShot, oilShot, heavyWaterShot, heavyCryoShot, heavySlagShot, heavyOilShot,
|
waterShot, cryoShot, slagShot, oilShot, heavyWaterShot, heavyCryoShot, heavySlagShot, heavyOilShot,
|
||||||
|
|
||||||
//environment, misc.
|
//environment, misc.
|
||||||
damageLightning, damageLightningGround, fireball, basicFlame, pyraFlame, driverBolt, healBullet, healBulletBig;
|
damageLightning, damageLightningGround, fireball, basicFlame, pyraFlame, driverBolt;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void load(){
|
public void load(){
|
||||||
@@ -374,20 +374,6 @@ public class Bullets implements ContentList{
|
|||||||
knockback = 0.7f;
|
knockback = 0.7f;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
healBullet = new LaserBoltBulletType(5.2f, 13){{
|
|
||||||
healPercent = 3f;
|
|
||||||
collidesTeam = true;
|
|
||||||
backColor = Pal.heal;
|
|
||||||
frontColor = Color.white;
|
|
||||||
}};
|
|
||||||
|
|
||||||
healBulletBig = new LaserBoltBulletType(5.2f, 15){{
|
|
||||||
healPercent = 5.5f;
|
|
||||||
collidesTeam = true;
|
|
||||||
backColor = Pal.heal;
|
|
||||||
frontColor = Color.white;
|
|
||||||
}};
|
|
||||||
|
|
||||||
fireball = new BulletType(1f, 4){
|
fireball = new BulletType(1f, 4){
|
||||||
{
|
{
|
||||||
pierce = true;
|
pierce = true;
|
||||||
|
|||||||
@@ -72,6 +72,7 @@ public class Items implements ContentList{
|
|||||||
}};
|
}};
|
||||||
|
|
||||||
surgeAlloy = new Item("surge-alloy", Color.valueOf("f3e979")){{
|
surgeAlloy = new Item("surge-alloy", Color.valueOf("f3e979")){{
|
||||||
|
cost = 1.2f;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
sporePod = new Item("spore-pod", Color.valueOf("7457ce")){{
|
sporePod = new Item("spore-pod", Color.valueOf("7457ce")){{
|
||||||
|
|||||||
@@ -40,8 +40,6 @@ public class Planets implements ContentList{
|
|||||||
startSector = 10;
|
startSector = 10;
|
||||||
atmosphereRadIn = -0.01f;
|
atmosphereRadIn = -0.01f;
|
||||||
atmosphereRadOut = 0.3f;
|
atmosphereRadOut = 0.3f;
|
||||||
accessible = false;
|
|
||||||
visible = false;
|
|
||||||
}};*/
|
}};*/
|
||||||
|
|
||||||
serpulo = new Planet("serpulo", sun, 3, 1){{
|
serpulo = new Planet("serpulo", sun, 3, 1){{
|
||||||
|
|||||||
@@ -24,10 +24,11 @@ public class SectorPresets implements ContentList{
|
|||||||
|
|
||||||
saltFlats = new SectorPreset("saltFlats", serpulo, 101){{
|
saltFlats = new SectorPreset("saltFlats", serpulo, 101){{
|
||||||
difficulty = 5;
|
difficulty = 5;
|
||||||
|
useAI = false;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
frozenForest = new SectorPreset("frozenForest", serpulo, 86){{
|
frozenForest = new SectorPreset("frozenForest", serpulo, 86){{
|
||||||
captureWave = 20;
|
captureWave = 15;
|
||||||
difficulty = 2;
|
difficulty = 2;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
@@ -82,7 +83,7 @@ public class SectorPresets implements ContentList{
|
|||||||
}};
|
}};
|
||||||
|
|
||||||
desolateRift = new SectorPreset("desolateRift", serpulo, 123){{
|
desolateRift = new SectorPreset("desolateRift", serpulo, 123){{
|
||||||
captureWave = 30;
|
captureWave = 18;
|
||||||
difficulty = 8;
|
difficulty = 8;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ public class TechTree implements ContentList{
|
|||||||
node(router, () -> {
|
node(router, () -> {
|
||||||
node(launchPad, Seq.with(new SectorComplete(extractionOutpost)), () -> {
|
node(launchPad, Seq.with(new SectorComplete(extractionOutpost)), () -> {
|
||||||
node(interplanetaryAccelerator, Seq.with(new SectorComplete(planetaryTerminal)), () -> {
|
node(interplanetaryAccelerator, Seq.with(new SectorComplete(planetaryTerminal)), () -> {
|
||||||
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -97,7 +98,6 @@ public class TechTree implements ContentList{
|
|||||||
node(platedConduit, () -> {
|
node(platedConduit, () -> {
|
||||||
|
|
||||||
});
|
});
|
||||||
});
|
|
||||||
|
|
||||||
node(rotaryPump, () -> {
|
node(rotaryPump, () -> {
|
||||||
node(thermalPump, () -> {
|
node(thermalPump, () -> {
|
||||||
@@ -108,6 +108,7 @@ public class TechTree implements ContentList{
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
});
|
||||||
|
|
||||||
node(graphitePress, () -> {
|
node(graphitePress, () -> {
|
||||||
node(pneumaticDrill, Seq.with(new SectorComplete(frozenForest)), () -> {
|
node(pneumaticDrill, Seq.with(new SectorComplete(frozenForest)), () -> {
|
||||||
@@ -120,7 +121,7 @@ public class TechTree implements ContentList{
|
|||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
node(waterExtractor, () -> {
|
node(waterExtractor, Seq.with(new SectorComplete(saltFlats)), () -> {
|
||||||
node(oilExtractor, () -> {
|
node(oilExtractor, () -> {
|
||||||
|
|
||||||
});
|
});
|
||||||
@@ -197,9 +198,10 @@ public class TechTree implements ContentList{
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
|
||||||
|
|
||||||
node(illuminator, () -> {
|
node(illuminator, () -> {
|
||||||
|
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -419,9 +421,10 @@ public class TechTree implements ContentList{
|
|||||||
});
|
});
|
||||||
|
|
||||||
node(additiveReconstructor, Seq.with(new SectorComplete(biomassFacility)), () -> {
|
node(additiveReconstructor, Seq.with(new SectorComplete(biomassFacility)), () -> {
|
||||||
node(multiplicativeReconstructor, Seq.with(new SectorComplete(overgrowth)), () -> {
|
node(multiplicativeReconstructor, () -> {
|
||||||
node(exponentialReconstructor, () -> {
|
node(exponentialReconstructor, Seq.with(new SectorComplete(overgrowth)), () -> {
|
||||||
node(tetrativeReconstructor, () -> {
|
node(tetrativeReconstructor, () -> {
|
||||||
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -463,12 +466,13 @@ public class TechTree implements ContentList{
|
|||||||
node(impact0078, Seq.with(
|
node(impact0078, Seq.with(
|
||||||
new SectorComplete(tarFields),
|
new SectorComplete(tarFields),
|
||||||
new Research(Items.thorium),
|
new Research(Items.thorium),
|
||||||
new Research(overdriveProjector)
|
new Research(coreFoundation)
|
||||||
), () -> {
|
), () -> {
|
||||||
node(desolateRift, Seq.with(
|
node(desolateRift, Seq.with(
|
||||||
new SectorComplete(impact0078),
|
new SectorComplete(impact0078),
|
||||||
new Research(thermalGenerator),
|
new Research(thermalGenerator),
|
||||||
new Research(thoriumReactor)
|
new Research(thoriumReactor),
|
||||||
|
new Research(coreNucleus)
|
||||||
), () -> {
|
), () -> {
|
||||||
node(planetaryTerminal, Seq.with(
|
node(planetaryTerminal, Seq.with(
|
||||||
new SectorComplete(desolateRift),
|
new SectorComplete(desolateRift),
|
||||||
@@ -481,6 +485,7 @@ public class TechTree implements ContentList{
|
|||||||
new Research(bryde),
|
new Research(bryde),
|
||||||
new Research(spectre),
|
new Research(spectre),
|
||||||
new Research(launchPad),
|
new Research(launchPad),
|
||||||
|
new Research(massDriver),
|
||||||
new Research(impactReactor),
|
new Research(impactReactor),
|
||||||
new Research(additiveReconstructor),
|
new Research(additiveReconstructor),
|
||||||
new Research(exponentialReconstructor)
|
new Research(exponentialReconstructor)
|
||||||
@@ -504,10 +509,11 @@ public class TechTree implements ContentList{
|
|||||||
|
|
||||||
node(saltFlats, Seq.with(
|
node(saltFlats, Seq.with(
|
||||||
new SectorComplete(windsweptIslands),
|
new SectorComplete(windsweptIslands),
|
||||||
|
new Research(commandCenter),
|
||||||
new Research(groundFactory),
|
new Research(groundFactory),
|
||||||
|
new Research(additiveReconstructor),
|
||||||
new Research(airFactory),
|
new Research(airFactory),
|
||||||
new Research(door),
|
new Research(door)
|
||||||
new Research(waterExtractor)
|
|
||||||
), () -> {
|
), () -> {
|
||||||
|
|
||||||
});
|
});
|
||||||
@@ -548,7 +554,9 @@ public class TechTree implements ContentList{
|
|||||||
node(nuclearComplex, Seq.with(
|
node(nuclearComplex, Seq.with(
|
||||||
new SectorComplete(fungalPass),
|
new SectorComplete(fungalPass),
|
||||||
new Research(thermalGenerator),
|
new Research(thermalGenerator),
|
||||||
new Research(laserDrill)
|
new Research(laserDrill),
|
||||||
|
new Research(Items.plastanium),
|
||||||
|
new Research(swarmer)
|
||||||
), () -> {
|
), () -> {
|
||||||
|
|
||||||
});
|
});
|
||||||
@@ -610,12 +618,14 @@ public class TechTree implements ContentList{
|
|||||||
});
|
});
|
||||||
|
|
||||||
nodeProduce(Liquids.oil, () -> {
|
nodeProduce(Liquids.oil, () -> {
|
||||||
|
nodeProduce(Items.plastanium, () -> {
|
||||||
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void setup(){
|
public static void setup(){
|
||||||
@@ -638,7 +648,7 @@ public class TechTree implements ContentList{
|
|||||||
static TechNode node(UnlockableContent content, ItemStack[] requirements, Seq<Objective> objectives, Runnable children){
|
static TechNode node(UnlockableContent content, ItemStack[] requirements, Seq<Objective> objectives, Runnable children){
|
||||||
TechNode node = new TechNode(context, content, requirements);
|
TechNode node = new TechNode(context, content, requirements);
|
||||||
if(objectives != null){
|
if(objectives != null){
|
||||||
node.objectives = objectives;
|
node.objectives.addAll(objectives);
|
||||||
}
|
}
|
||||||
|
|
||||||
TechNode prev = context;
|
TechNode prev = context;
|
||||||
|
|||||||
@@ -292,6 +292,7 @@ public class UnitTypes implements ContentList{
|
|||||||
shootSound = Sounds.lasershoot;
|
shootSound = Sounds.lasershoot;
|
||||||
|
|
||||||
bullet = new LaserBoltBulletType(5.2f, 14){{
|
bullet = new LaserBoltBulletType(5.2f, 14){{
|
||||||
|
lifetime = 37f;
|
||||||
healPercent = 5f;
|
healPercent = 5f;
|
||||||
collidesTeam = true;
|
collidesTeam = true;
|
||||||
backColor = Pal.heal;
|
backColor = Pal.heal;
|
||||||
@@ -311,7 +312,7 @@ public class UnitTypes implements ContentList{
|
|||||||
|
|
||||||
mineTier = 2;
|
mineTier = 2;
|
||||||
mineSpeed = 5f;
|
mineSpeed = 5f;
|
||||||
commandLimit = 8;
|
commandLimit = 9;
|
||||||
|
|
||||||
abilities.add(new ShieldRegenFieldAbility(20f, 40f, 60f * 5, 60f));
|
abilities.add(new ShieldRegenFieldAbility(20f, 40f, 60f * 5, 60f));
|
||||||
ammoType = AmmoTypes.power;
|
ammoType = AmmoTypes.power;
|
||||||
@@ -556,7 +557,7 @@ public class UnitTypes implements ContentList{
|
|||||||
range = 40f;
|
range = 40f;
|
||||||
|
|
||||||
weapons.add(new Weapon(){{
|
weapons.add(new Weapon(){{
|
||||||
reload = 12f;
|
reload = 24f;
|
||||||
shootCone = 180f;
|
shootCone = 180f;
|
||||||
ejectEffect = Fx.none;
|
ejectEffect = Fx.none;
|
||||||
shootSound = Sounds.explosion;
|
shootSound = Sounds.explosion;
|
||||||
@@ -619,7 +620,7 @@ public class UnitTypes implements ContentList{
|
|||||||
drag = 0.4f;
|
drag = 0.4f;
|
||||||
hitSize = 12f;
|
hitSize = 12f;
|
||||||
rotateSpeed = 3f;
|
rotateSpeed = 3f;
|
||||||
health = 800;
|
health = 900;
|
||||||
immunities = ObjectSet.with(StatusEffects.burning, StatusEffects.melting);
|
immunities = ObjectSet.with(StatusEffects.burning, StatusEffects.melting);
|
||||||
legCount = 6;
|
legCount = 6;
|
||||||
legLength = 13f;
|
legLength = 13f;
|
||||||
@@ -650,7 +651,7 @@ public class UnitTypes implements ContentList{
|
|||||||
bullet = new SapBulletType(){{
|
bullet = new SapBulletType(){{
|
||||||
sapStrength = 0.4f;
|
sapStrength = 0.4f;
|
||||||
length = 75f;
|
length = 75f;
|
||||||
damage = 18;
|
damage = 20;
|
||||||
shootEffect = Fx.shootSmall;
|
shootEffect = Fx.shootSmall;
|
||||||
hitColor = color = Color.valueOf("bf92f9");
|
hitColor = color = Color.valueOf("bf92f9");
|
||||||
despawnEffect = Fx.none;
|
despawnEffect = Fx.none;
|
||||||
@@ -670,7 +671,7 @@ public class UnitTypes implements ContentList{
|
|||||||
bullet = new SapBulletType(){{
|
bullet = new SapBulletType(){{
|
||||||
sapStrength = 0.8f;
|
sapStrength = 0.8f;
|
||||||
length = 40f;
|
length = 40f;
|
||||||
damage = 15;
|
damage = 16;
|
||||||
shootEffect = Fx.shootSmall;
|
shootEffect = Fx.shootSmall;
|
||||||
hitColor = color = Color.valueOf("bf92f9");
|
hitColor = color = Color.valueOf("bf92f9");
|
||||||
despawnEffect = Fx.none;
|
despawnEffect = Fx.none;
|
||||||
@@ -975,7 +976,7 @@ public class UnitTypes implements ContentList{
|
|||||||
|
|
||||||
zenith = new UnitType("zenith"){{
|
zenith = new UnitType("zenith"){{
|
||||||
health = 700;
|
health = 700;
|
||||||
speed = 1.7f;
|
speed = 1.8f;
|
||||||
accel = 0.04f;
|
accel = 0.04f;
|
||||||
drag = 0.016f;
|
drag = 0.016f;
|
||||||
flying = true;
|
flying = true;
|
||||||
@@ -995,8 +996,9 @@ public class UnitTypes implements ContentList{
|
|||||||
shots = 2;
|
shots = 2;
|
||||||
inaccuracy = 5f;
|
inaccuracy = 5f;
|
||||||
velocityRnd = 0.2f;
|
velocityRnd = 0.2f;
|
||||||
|
shootSound = Sounds.missile;
|
||||||
|
|
||||||
bullet = new MissileBulletType(3f, 12){{
|
bullet = new MissileBulletType(3f, 14){{
|
||||||
width = 8f;
|
width = 8f;
|
||||||
height = 8f;
|
height = 8f;
|
||||||
shrinkY = 0f;
|
shrinkY = 0f;
|
||||||
@@ -1004,7 +1006,7 @@ public class UnitTypes implements ContentList{
|
|||||||
homingRange = 60f;
|
homingRange = 60f;
|
||||||
keepVelocity = false;
|
keepVelocity = false;
|
||||||
splashDamageRadius = 25f;
|
splashDamageRadius = 25f;
|
||||||
splashDamage = 10f;
|
splashDamage = 14f;
|
||||||
lifetime = 60f;
|
lifetime = 60f;
|
||||||
trailColor = Pal.unitBack;
|
trailColor = Pal.unitBack;
|
||||||
backColor = Pal.unitBack;
|
backColor = Pal.unitBack;
|
||||||
@@ -1055,7 +1057,7 @@ public class UnitTypes implements ContentList{
|
|||||||
ejectEffect = Fx.casing1;
|
ejectEffect = Fx.casing1;
|
||||||
rotateSpeed = 8f;
|
rotateSpeed = 8f;
|
||||||
bullet = missiles;
|
bullet = missiles;
|
||||||
shootSound = Sounds.shoot;
|
shootSound = Sounds.missile;
|
||||||
rotate = true;
|
rotate = true;
|
||||||
occlusion = 6f;
|
occlusion = 6f;
|
||||||
}},
|
}},
|
||||||
@@ -1066,7 +1068,7 @@ public class UnitTypes implements ContentList{
|
|||||||
rotateSpeed = 8f;
|
rotateSpeed = 8f;
|
||||||
ejectEffect = Fx.casing1;
|
ejectEffect = Fx.casing1;
|
||||||
bullet = missiles;
|
bullet = missiles;
|
||||||
shootSound = Sounds.shoot;
|
shootSound = Sounds.missile;
|
||||||
rotate = true;
|
rotate = true;
|
||||||
occlusion = 6f;
|
occlusion = 6f;
|
||||||
}},
|
}},
|
||||||
@@ -1147,7 +1149,7 @@ public class UnitTypes implements ContentList{
|
|||||||
y = 27f;
|
y = 27f;
|
||||||
rotateSpeed = 2f;
|
rotateSpeed = 2f;
|
||||||
reload = 9f;
|
reload = 9f;
|
||||||
shootSound = Sounds.flame;
|
shootSound = Sounds.shoot;
|
||||||
occlusion = 7f;
|
occlusion = 7f;
|
||||||
rotate = true;
|
rotate = true;
|
||||||
recoil = 0.5f;
|
recoil = 0.5f;
|
||||||
@@ -1249,8 +1251,9 @@ public class UnitTypes implements ContentList{
|
|||||||
defaultController = RepairAI::new;
|
defaultController = RepairAI::new;
|
||||||
|
|
||||||
mineTier = 3;
|
mineTier = 3;
|
||||||
health = 500;
|
mineSpeed = 4f;
|
||||||
armor = 5f;
|
health = 460;
|
||||||
|
armor = 3f;
|
||||||
speed = 2.5f;
|
speed = 2.5f;
|
||||||
accel = 0.06f;
|
accel = 0.06f;
|
||||||
drag = 0.017f;
|
drag = 0.017f;
|
||||||
@@ -1262,6 +1265,7 @@ public class UnitTypes implements ContentList{
|
|||||||
engineSize = 3f;
|
engineSize = 3f;
|
||||||
payloadCapacity = (2 * 2) * tilePayload;
|
payloadCapacity = (2 * 2) * tilePayload;
|
||||||
buildSpeed = 2.6f;
|
buildSpeed = 2.6f;
|
||||||
|
isCounted = false;
|
||||||
|
|
||||||
ammoType = AmmoTypes.power;
|
ammoType = AmmoTypes.power;
|
||||||
|
|
||||||
@@ -1272,7 +1276,13 @@ public class UnitTypes implements ContentList{
|
|||||||
x = 8f;
|
x = 8f;
|
||||||
y = -6f;
|
y = -6f;
|
||||||
rotate = true;
|
rotate = true;
|
||||||
bullet = Bullets.healBulletBig;
|
bullet = new LaserBoltBulletType(5.2f, 10){{
|
||||||
|
lifetime = 35f;
|
||||||
|
healPercent = 5.5f;
|
||||||
|
collidesTeam = true;
|
||||||
|
backColor = Pal.heal;
|
||||||
|
frontColor = Color.white;
|
||||||
|
}};
|
||||||
}},
|
}},
|
||||||
new Weapon("heal-weapon-mount"){{
|
new Weapon("heal-weapon-mount"){{
|
||||||
shootSound = Sounds.lasershoot;
|
shootSound = Sounds.lasershoot;
|
||||||
@@ -1280,7 +1290,13 @@ public class UnitTypes implements ContentList{
|
|||||||
x = 4f;
|
x = 4f;
|
||||||
y = 5f;
|
y = 5f;
|
||||||
rotate = true;
|
rotate = true;
|
||||||
bullet = Bullets.healBullet;
|
bullet = new LaserBoltBulletType(5.2f, 8){{
|
||||||
|
lifetime = 35f;
|
||||||
|
healPercent = 3f;
|
||||||
|
collidesTeam = true;
|
||||||
|
backColor = Pal.heal;
|
||||||
|
frontColor = Color.white;
|
||||||
|
}};
|
||||||
}});
|
}});
|
||||||
}};
|
}};
|
||||||
|
|
||||||
@@ -1319,7 +1335,7 @@ public class UnitTypes implements ContentList{
|
|||||||
sprite = "large-bomb";
|
sprite = "large-bomb";
|
||||||
width = height = 120/4f;
|
width = height = 120/4f;
|
||||||
|
|
||||||
range = 30f;
|
maxRange = 30f;
|
||||||
ignoreRotation = true;
|
ignoreRotation = true;
|
||||||
|
|
||||||
backColor = Pal.heal;
|
backColor = Pal.heal;
|
||||||
@@ -1347,7 +1363,7 @@ public class UnitTypes implements ContentList{
|
|||||||
collides = false;
|
collides = false;
|
||||||
|
|
||||||
healPercent = 15f;
|
healPercent = 15f;
|
||||||
splashDamage = 240f;
|
splashDamage = 230f;
|
||||||
splashDamageRadius = 120f;
|
splashDamageRadius = 120f;
|
||||||
}};
|
}};
|
||||||
}});
|
}});
|
||||||
@@ -1411,12 +1427,12 @@ public class UnitTypes implements ContentList{
|
|||||||
ejectEffect = Fx.casing1;
|
ejectEffect = Fx.casing1;
|
||||||
shootSound = Sounds.missile;
|
shootSound = Sounds.missile;
|
||||||
bullet = new MissileBulletType(2.7f, 12, "missile"){{
|
bullet = new MissileBulletType(2.7f, 12, "missile"){{
|
||||||
|
keepVelocity = true;
|
||||||
width = 8f;
|
width = 8f;
|
||||||
height = 8f;
|
height = 8f;
|
||||||
shrinkY = 0f;
|
shrinkY = 0f;
|
||||||
drag = -0.003f;
|
drag = -0.003f;
|
||||||
homingRange = 60f;
|
homingRange = 60f;
|
||||||
keepVelocity = false;
|
|
||||||
splashDamageRadius = 25f;
|
splashDamageRadius = 25f;
|
||||||
splashDamage = 10f;
|
splashDamage = 10f;
|
||||||
lifetime = 80f;
|
lifetime = 80f;
|
||||||
@@ -1692,8 +1708,8 @@ public class UnitTypes implements ContentList{
|
|||||||
|
|
||||||
bullet = new RailBulletType(){{
|
bullet = new RailBulletType(){{
|
||||||
shootEffect = Fx.railShoot;
|
shootEffect = Fx.railShoot;
|
||||||
speed = 67f;
|
length = 500;
|
||||||
lifetime = 8f;
|
updateEffectSeg = 60f;
|
||||||
pierceEffect = Fx.railHit;
|
pierceEffect = Fx.railHit;
|
||||||
updateEffect = Fx.railTrail;
|
updateEffect = Fx.railTrail;
|
||||||
hitEffect = Fx.massiveExplosion;
|
hitEffect = Fx.massiveExplosion;
|
||||||
@@ -1731,6 +1747,7 @@ public class UnitTypes implements ContentList{
|
|||||||
x = 2.75f;
|
x = 2.75f;
|
||||||
y = 1f;
|
y = 1f;
|
||||||
top = false;
|
top = false;
|
||||||
|
ejectEffect = Fx.casing1;
|
||||||
|
|
||||||
bullet = new BasicBulletType(2.5f, 10){{
|
bullet = new BasicBulletType(2.5f, 10){{
|
||||||
width = 7f;
|
width = 7f;
|
||||||
@@ -1738,7 +1755,7 @@ public class UnitTypes implements ContentList{
|
|||||||
lifetime = 60f;
|
lifetime = 60f;
|
||||||
shootEffect = Fx.shootSmall;
|
shootEffect = Fx.shootSmall;
|
||||||
smokeEffect = Fx.shootSmallSmoke;
|
smokeEffect = Fx.shootSmallSmoke;
|
||||||
tileDamageMultiplier = 0.03f;
|
tileDamageMultiplier = 0.02f;
|
||||||
}};
|
}};
|
||||||
}});
|
}});
|
||||||
}};
|
}};
|
||||||
@@ -1772,6 +1789,7 @@ public class UnitTypes implements ContentList{
|
|||||||
shots = 2;
|
shots = 2;
|
||||||
shotDelay = 4f;
|
shotDelay = 4f;
|
||||||
spacing = 0f;
|
spacing = 0f;
|
||||||
|
ejectEffect = Fx.casing1;
|
||||||
|
|
||||||
bullet = new BasicBulletType(3f, 10){{
|
bullet = new BasicBulletType(3f, 10){{
|
||||||
width = 7f;
|
width = 7f;
|
||||||
@@ -1779,7 +1797,7 @@ public class UnitTypes implements ContentList{
|
|||||||
lifetime = 60f;
|
lifetime = 60f;
|
||||||
shootEffect = Fx.shootSmall;
|
shootEffect = Fx.shootSmall;
|
||||||
smokeEffect = Fx.shootSmallSmoke;
|
smokeEffect = Fx.shootSmallSmoke;
|
||||||
tileDamageMultiplier = 0.03f;
|
tileDamageMultiplier = 0.02f;
|
||||||
}};
|
}};
|
||||||
}});
|
}});
|
||||||
}};
|
}};
|
||||||
@@ -1811,6 +1829,7 @@ public class UnitTypes implements ContentList{
|
|||||||
spacing = 2f;
|
spacing = 2f;
|
||||||
inaccuracy = 3f;
|
inaccuracy = 3f;
|
||||||
shotDelay = 3f;
|
shotDelay = 3f;
|
||||||
|
ejectEffect = Fx.casing1;
|
||||||
|
|
||||||
bullet = new BasicBulletType(3.5f, 10){{
|
bullet = new BasicBulletType(3.5f, 10){{
|
||||||
width = 6.5f;
|
width = 6.5f;
|
||||||
@@ -1818,7 +1837,7 @@ public class UnitTypes implements ContentList{
|
|||||||
lifetime = 70f;
|
lifetime = 70f;
|
||||||
shootEffect = Fx.shootSmall;
|
shootEffect = Fx.shootSmall;
|
||||||
smokeEffect = Fx.shootSmallSmoke;
|
smokeEffect = Fx.shootSmallSmoke;
|
||||||
tileDamageMultiplier = 0.03f;
|
tileDamageMultiplier = 0.02f;
|
||||||
homingPower = 0.04f;
|
homingPower = 0.04f;
|
||||||
}};
|
}};
|
||||||
}});
|
}});
|
||||||
|
|||||||
@@ -53,10 +53,11 @@ public class Weathers implements ContentList{
|
|||||||
baseSpeed = 5.4f;
|
baseSpeed = 5.4f;
|
||||||
attrs.set(Attribute.light, -0.1f);
|
attrs.set(Attribute.light, -0.1f);
|
||||||
attrs.set(Attribute.water, -0.1f);
|
attrs.set(Attribute.water, -0.1f);
|
||||||
opacityMultiplier = 0.5f;
|
opacityMultiplier = 0.35f;
|
||||||
force = 0.1f;
|
force = 0.1f;
|
||||||
sound = Sounds.wind;
|
sound = Sounds.wind;
|
||||||
soundVol = 0.3f;
|
soundVol = 0.8f;
|
||||||
|
duration = 7f * Time.toMinutes;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
sporestorm = new ParticleWeather("sporestorm"){{
|
sporestorm = new ParticleWeather("sporestorm"){{
|
||||||
@@ -77,7 +78,8 @@ public class Weathers implements ContentList{
|
|||||||
opacityMultiplier = 0.75f;
|
opacityMultiplier = 0.75f;
|
||||||
force = 0.1f;
|
force = 0.1f;
|
||||||
sound = Sounds.wind;
|
sound = Sounds.wind;
|
||||||
soundVol = 0.3f;
|
soundVol = 0.7f;
|
||||||
|
duration = 7f * Time.toMinutes;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
fog = new ParticleWeather("fog"){{
|
fog = new ParticleWeather("fog"){{
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import arc.audio.*;
|
|||||||
import arc.graphics.g2d.*;
|
import arc.graphics.g2d.*;
|
||||||
import arc.input.*;
|
import arc.input.*;
|
||||||
import arc.math.*;
|
import arc.math.*;
|
||||||
|
import arc.scene.style.*;
|
||||||
import arc.scene.ui.*;
|
import arc.scene.ui.*;
|
||||||
import arc.struct.*;
|
import arc.struct.*;
|
||||||
import arc.util.*;
|
import arc.util.*;
|
||||||
@@ -16,14 +17,17 @@ import mindustry.core.GameState.*;
|
|||||||
import mindustry.entities.*;
|
import mindustry.entities.*;
|
||||||
import mindustry.game.EventType.*;
|
import mindustry.game.EventType.*;
|
||||||
import mindustry.game.*;
|
import mindustry.game.*;
|
||||||
|
import mindustry.game.Objectives.*;
|
||||||
import mindustry.game.Saves.*;
|
import mindustry.game.Saves.*;
|
||||||
import mindustry.gen.*;
|
import mindustry.gen.*;
|
||||||
import mindustry.input.*;
|
import mindustry.input.*;
|
||||||
import mindustry.io.*;
|
import mindustry.io.*;
|
||||||
import mindustry.io.SaveIO.*;
|
import mindustry.io.SaveIO.*;
|
||||||
|
import mindustry.maps.*;
|
||||||
import mindustry.maps.Map;
|
import mindustry.maps.Map;
|
||||||
import mindustry.net.*;
|
import mindustry.net.*;
|
||||||
import mindustry.type.*;
|
import mindustry.type.*;
|
||||||
|
import mindustry.ui.*;
|
||||||
import mindustry.ui.dialogs.*;
|
import mindustry.ui.dialogs.*;
|
||||||
import mindustry.world.*;
|
import mindustry.world.*;
|
||||||
|
|
||||||
@@ -44,7 +48,6 @@ import static mindustry.Vars.*;
|
|||||||
public class Control implements ApplicationListener, Loadable{
|
public class Control implements ApplicationListener, Loadable{
|
||||||
public Saves saves;
|
public Saves saves;
|
||||||
public SoundControl sound;
|
public SoundControl sound;
|
||||||
public Tutorial tutorial;
|
|
||||||
public InputHandler input;
|
public InputHandler input;
|
||||||
|
|
||||||
private Interval timer = new Interval(2);
|
private Interval timer = new Interval(2);
|
||||||
@@ -53,7 +56,6 @@ public class Control implements ApplicationListener, Loadable{
|
|||||||
|
|
||||||
public Control(){
|
public Control(){
|
||||||
saves = new Saves();
|
saves = new Saves();
|
||||||
tutorial = new Tutorial();
|
|
||||||
sound = new SoundControl();
|
sound = new SoundControl();
|
||||||
|
|
||||||
Events.on(StateChangeEvent.class, event -> {
|
Events.on(StateChangeEvent.class, event -> {
|
||||||
@@ -87,7 +89,6 @@ public class Control implements ApplicationListener, Loadable{
|
|||||||
|
|
||||||
Events.on(ResetEvent.class, event -> {
|
Events.on(ResetEvent.class, event -> {
|
||||||
player.reset();
|
player.reset();
|
||||||
tutorial.reset();
|
|
||||||
|
|
||||||
hiscore = false;
|
hiscore = false;
|
||||||
saves.resetSave();
|
saves.resetSave();
|
||||||
@@ -127,10 +128,18 @@ public class Control implements ApplicationListener, Loadable{
|
|||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
|
|
||||||
Events.on(UnlockEvent.class, e -> ui.hudfrag.showUnlock(e.content));
|
|
||||||
|
|
||||||
Events.on(UnlockEvent.class, e -> {
|
Events.on(UnlockEvent.class, e -> {
|
||||||
|
ui.hudfrag.showUnlock(e.content);
|
||||||
|
|
||||||
checkAutoUnlocks();
|
checkAutoUnlocks();
|
||||||
|
|
||||||
|
if(e.content instanceof SectorPreset){
|
||||||
|
for(TechNode node : TechTree.all){
|
||||||
|
if(!node.content.unlocked() && node.objectives.contains(o -> o instanceof SectorComplete sec && sec.preset == e.content) && !node.objectives.contains(o -> !o.complete())){
|
||||||
|
ui.hudfrag.showToast(new TextureRegionDrawable(node.content.icon(Cicon.large)), bundle.get("available"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
Events.on(SectorCaptureEvent.class, e -> {
|
Events.on(SectorCaptureEvent.class, e -> {
|
||||||
@@ -164,7 +173,7 @@ public class Control implements ApplicationListener, Loadable{
|
|||||||
if(state.isCampaign() && !net.client() && !headless){
|
if(state.isCampaign() && !net.client() && !headless){
|
||||||
|
|
||||||
//save gameover sate immediately
|
//save gameover sate immediately
|
||||||
if(saves.getCurrent() != null && !state.rules.tutorial){
|
if(saves.getCurrent() != null){
|
||||||
saves.getCurrent().save();
|
saves.getCurrent().save();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -226,7 +235,7 @@ public class Control implements ApplicationListener, Loadable{
|
|||||||
|
|
||||||
for(TechNode node : TechTree.all){
|
for(TechNode node : TechTree.all){
|
||||||
if(!node.content.unlocked() && node.requirements.length == 0 && !node.objectives.contains(o -> !o.complete())){
|
if(!node.content.unlocked() && node.requirements.length == 0 && !node.objectives.contains(o -> !o.complete())){
|
||||||
node.content.unlocked();
|
node.content.unlock();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -314,17 +323,45 @@ public class Control implements ApplicationListener, Loadable{
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//set spawn for sector damage to use
|
||||||
|
Tile spawn = world.tile(sector.info.spawnPosition);
|
||||||
|
spawn.setBlock(Blocks.coreShard, state.rules.defaultTeam);
|
||||||
|
|
||||||
|
//add extra damage.
|
||||||
|
SectorDamage.apply(1f);
|
||||||
|
|
||||||
//reset wave so things are more fair
|
//reset wave so things are more fair
|
||||||
state.wave = 1;
|
state.wave = 1;
|
||||||
|
//set up default wave time
|
||||||
|
state.wavetime = state.rules.waveSpacing * 2f;
|
||||||
|
//reset captured state
|
||||||
|
sector.info.wasCaptured = false;
|
||||||
|
//re-enable waves
|
||||||
|
state.rules.waves = true;
|
||||||
|
|
||||||
//reset win wave??
|
//reset win wave??
|
||||||
state.rules.winWave = state.rules.attackMode ? -1 : sector.preset != null ? sector.preset.captureWave : 40;
|
state.rules.winWave = state.rules.attackMode ? -1 : sector.preset != null ? sector.preset.captureWave : 40;
|
||||||
|
|
||||||
|
//if there's still an enemy base left, fix it
|
||||||
|
if(state.rules.attackMode){
|
||||||
|
//replace all broken blocks
|
||||||
|
for(var plan : state.rules.waveTeam.data().blocks){
|
||||||
|
Tile tile = world.tile(plan.x, plan.y);
|
||||||
|
if(tile != null){
|
||||||
|
tile.setBlock(content.block(plan.block), state.rules.waveTeam, plan.rotation);
|
||||||
|
if(plan.config != null && tile.build != null){
|
||||||
|
tile.build.configure(plan.config);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
state.rules.waveTeam.data().blocks.clear();
|
||||||
|
}
|
||||||
|
|
||||||
//kill all units, since they should be dead anyway
|
//kill all units, since they should be dead anyway
|
||||||
Groups.unit.clear();
|
Groups.unit.clear();
|
||||||
Groups.fire.clear();
|
Groups.fire.clear();
|
||||||
|
Groups.puddle.clear();
|
||||||
|
|
||||||
Tile spawn = world.tile(sector.info.spawnPosition);
|
|
||||||
Schematics.placeLaunchLoadout(spawn.x, spawn.y);
|
Schematics.placeLaunchLoadout(spawn.x, spawn.y);
|
||||||
|
|
||||||
//set up camera/player locations
|
//set up camera/player locations
|
||||||
@@ -408,13 +445,6 @@ public class Control implements ApplicationListener, Loadable{
|
|||||||
public void init(){
|
public void init(){
|
||||||
platform.updateRPC();
|
platform.updateRPC();
|
||||||
|
|
||||||
//just a regular reminder
|
|
||||||
if(!OS.prop("user.name").equals("anuke") && !OS.hasEnv("iknowwhatimdoing")){
|
|
||||||
app.post(() -> app.post(() -> {
|
|
||||||
ui.showStartupInfo("@indev.popup");
|
|
||||||
}));
|
|
||||||
}
|
|
||||||
|
|
||||||
//display UI scale changed dialog
|
//display UI scale changed dialog
|
||||||
if(Core.settings.getBool("uiscalechanged", false)){
|
if(Core.settings.getBool("uiscalechanged", false)){
|
||||||
Core.app.post(() -> Core.app.post(() -> {
|
Core.app.post(() -> Core.app.post(() -> {
|
||||||
@@ -479,10 +509,6 @@ public class Control implements ApplicationListener, Loadable{
|
|||||||
if(state.isGame()){
|
if(state.isGame()){
|
||||||
input.update();
|
input.update();
|
||||||
|
|
||||||
if(state.rules.tutorial){
|
|
||||||
tutorial.update();
|
|
||||||
}
|
|
||||||
|
|
||||||
//auto-update rpc every 5 seconds
|
//auto-update rpc every 5 seconds
|
||||||
if(timer.get(0, 60 * 5)){
|
if(timer.get(0, 60 * 5)){
|
||||||
platform.updateRPC();
|
platform.updateRPC();
|
||||||
|
|||||||
@@ -33,9 +33,8 @@ public class GameState{
|
|||||||
/** Current game state. */
|
/** Current game state. */
|
||||||
private State state = State.menu;
|
private State state = State.menu;
|
||||||
|
|
||||||
//TODO optimize
|
|
||||||
public Unit boss(){
|
public Unit boss(){
|
||||||
return Groups.unit.find(u -> u.isBoss() && u.team == rules.waveTeam);
|
return teams.boss;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void set(State astate){
|
public void set(State astate){
|
||||||
@@ -69,7 +68,7 @@ public class GameState{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean isPaused(){
|
public boolean isPaused(){
|
||||||
return (is(State.paused) && !net.active()) || (gameOver && !net.active()) || (serverPaused && !isMenu());
|
return (is(State.paused) && !net.active()) || (gameOver && (!net.active() || isCampaign())) || (serverPaused && !isMenu());
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isPlaying(){
|
public boolean isPlaying(){
|
||||||
|
|||||||
@@ -107,8 +107,15 @@ public class Logic implements ApplicationListener{
|
|||||||
if(!(state.getSector().preset != null && !state.getSector().preset.useAI)){
|
if(!(state.getSector().preset != null && !state.getSector().preset.useAI)){
|
||||||
state.rules.waveTeam.rules().ai = true;
|
state.rules.waveTeam.rules().ai = true;
|
||||||
}
|
}
|
||||||
state.rules.waveTeam.rules().aiTier = state.getSector().threat;
|
state.rules.waveTeam.rules().aiTier = state.getSector().threat * 0.8f;
|
||||||
state.rules.waveTeam.rules().infiniteResources = true;
|
state.rules.waveTeam.rules().infiniteResources = true;
|
||||||
|
|
||||||
|
//fill enemy cores by default.
|
||||||
|
for(var core : state.rules.waveTeam.cores()){
|
||||||
|
for(Item item : content.items()){
|
||||||
|
core.items.set(item, core.block.itemCapacity);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//save settings
|
//save settings
|
||||||
@@ -128,8 +135,8 @@ public class Logic implements ApplicationListener{
|
|||||||
//convert all blocks to neutral, randomly killing them
|
//convert all blocks to neutral, randomly killing them
|
||||||
if(tile.isCenter() && tile.build != null && tile.build.team == state.rules.waveTeam){
|
if(tile.isCenter() && tile.build != null && tile.build.team == state.rules.waveTeam){
|
||||||
Building b = tile.build;
|
Building b = tile.build;
|
||||||
Time.run(Mathf.random(0f, 60f * 6f), () -> {
|
|
||||||
Call.setTeam(b, Team.derelict);
|
Call.setTeam(b, Team.derelict);
|
||||||
|
Time.run(Mathf.random(0f, 60f * 6f), () -> {
|
||||||
if(Mathf.chance(0.25)){
|
if(Mathf.chance(0.25)){
|
||||||
b.kill();
|
b.kill();
|
||||||
}
|
}
|
||||||
@@ -260,11 +267,13 @@ public class Logic implements ApplicationListener{
|
|||||||
|
|
||||||
if(state.rules.sector == null) return;
|
if(state.rules.sector == null) return;
|
||||||
|
|
||||||
|
state.rules.sector.info.wasCaptured = true;
|
||||||
|
|
||||||
//fire capture event
|
//fire capture event
|
||||||
Events.fire(new SectorCaptureEvent(state.rules.sector));
|
Events.fire(new SectorCaptureEvent(state.rules.sector));
|
||||||
|
|
||||||
//save, just in case
|
//save, just in case
|
||||||
if(!headless){
|
if(!headless && !net.client()){
|
||||||
control.saves.saveSector(state.rules.sector);
|
control.saves.saveSector(state.rules.sector);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ import mindustry.net.Administration.*;
|
|||||||
import mindustry.net.Net.*;
|
import mindustry.net.Net.*;
|
||||||
import mindustry.net.*;
|
import mindustry.net.*;
|
||||||
import mindustry.net.Packets.*;
|
import mindustry.net.Packets.*;
|
||||||
|
import mindustry.ui.*;
|
||||||
import mindustry.world.*;
|
import mindustry.world.*;
|
||||||
import mindustry.world.modules.*;
|
import mindustry.world.modules.*;
|
||||||
|
|
||||||
@@ -40,7 +41,7 @@ public class NetClient implements ApplicationListener{
|
|||||||
private boolean connecting = false;
|
private boolean connecting = false;
|
||||||
/** If true, no message will be shown on disconnect. */
|
/** If true, no message will be shown on disconnect. */
|
||||||
private boolean quiet = false;
|
private boolean quiet = false;
|
||||||
/** Whether to supress disconnect events completely.*/
|
/** Whether to suppress disconnect events completely.*/
|
||||||
private boolean quietReset = false;
|
private boolean quietReset = false;
|
||||||
/** Counter for data timeout. */
|
/** Counter for data timeout. */
|
||||||
private float timeoutTime = 0f;
|
private float timeoutTime = 0f;
|
||||||
@@ -257,6 +258,11 @@ public class NetClient implements ApplicationListener{
|
|||||||
netClient.disconnectQuietly();
|
netClient.disconnectQuietly();
|
||||||
logic.reset();
|
logic.reset();
|
||||||
|
|
||||||
|
if(reason == KickReason.serverRestarting){
|
||||||
|
ui.join.reconnect();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if(!reason.quiet){
|
if(!reason.quiet){
|
||||||
if(reason.extraText() != null){
|
if(reason.extraText() != null){
|
||||||
ui.showText(reason.toString(), reason.extraText());
|
ui.showText(reason.toString(), reason.extraText());
|
||||||
@@ -340,6 +346,13 @@ public class NetClient implements ApplicationListener{
|
|||||||
ui.showInfoToast(message, duration);
|
ui.showInfoToast(message, duration);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Remote(variants = Variant.both)
|
||||||
|
public static void warningToast(int unicode, String text){
|
||||||
|
if(text == null || Fonts.icon.getData().getGlyph((char)unicode) == null) return;
|
||||||
|
|
||||||
|
ui.hudfrag.showToast(Fonts.getGlyph(Fonts.icon, (char)unicode), text);
|
||||||
|
}
|
||||||
|
|
||||||
@Remote(variants = Variant.both)
|
@Remote(variants = Variant.both)
|
||||||
public static void setRules(Rules rules){
|
public static void setRules(Rules rules){
|
||||||
state.rules = rules;
|
state.rules = rules;
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ public class NetServer implements ApplicationListener{
|
|||||||
private static final Vec2 vector = new Vec2();
|
private static final Vec2 vector = new Vec2();
|
||||||
private static final Rect viewport = new Rect();
|
private static final Rect viewport = new Rect();
|
||||||
/** If a player goes away of their server-side coordinates by this distance, they get teleported back. */
|
/** If a player goes away of their server-side coordinates by this distance, they get teleported back. */
|
||||||
private static final float correctDist = 16f;
|
private static final float correctDist = tilesize * 8f;
|
||||||
|
|
||||||
public final Administration admins = new Administration();
|
public final Administration admins = new Administration();
|
||||||
public final CommandHandler clientCommands = new CommandHandler("/");
|
public final CommandHandler clientCommands = new CommandHandler("/");
|
||||||
@@ -422,7 +422,7 @@ public class NetServer implements ApplicationListener{
|
|||||||
currentlyKicking[0] = session;
|
currentlyKicking[0] = session;
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
player.sendMessage("[scarlet]No player[orange]'" + args[0] + "'[scarlet] found.");
|
player.sendMessage("[scarlet]No player [orange]'" + args[0] + "'[scarlet] found.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -447,6 +447,11 @@ public class NetServer implements ApplicationListener{
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(currentlyKicking[0].target.team() != player.team()){
|
||||||
|
player.sendMessage("[scarlet]You can't vote for other teams.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if(!arg[0].toLowerCase().equals("y") && !arg[0].toLowerCase().equals("n")){
|
if(!arg[0].toLowerCase().equals("y") && !arg[0].toLowerCase().equals("n")){
|
||||||
player.sendMessage("[scarlet]Vote either 'y' (yes) or 'n' (no).");
|
player.sendMessage("[scarlet]Vote either 'y' (yes) or 'n' (no).");
|
||||||
return;
|
return;
|
||||||
@@ -638,12 +643,12 @@ public class NetServer implements ApplicationListener{
|
|||||||
Unit unit = player.unit();
|
Unit unit = player.unit();
|
||||||
|
|
||||||
long elapsed = Time.timeSinceMillis(con.lastReceivedClientTime);
|
long elapsed = Time.timeSinceMillis(con.lastReceivedClientTime);
|
||||||
float maxSpeed = ((player.unit().type.canBoost && player.unit().isFlying()) ? player.unit().type.boostMultiplier : 1f) * player.unit().speed();
|
float maxSpeed = unit.realSpeed();
|
||||||
if(unit.isGrounded()){
|
if(unit.isGrounded()){
|
||||||
maxSpeed *= unit.floorSpeedMultiplier();
|
maxSpeed *= unit.floorSpeedMultiplier();
|
||||||
}
|
}
|
||||||
|
|
||||||
float maxMove = elapsed / 1000f * 60f * maxSpeed * 1.1f;
|
float maxMove = elapsed / 1000f * 60f * maxSpeed * 1.2f;
|
||||||
|
|
||||||
//ignore the position if the player thinks they're dead, or the unit is wrong
|
//ignore the position if the player thinks they're dead, or the unit is wrong
|
||||||
boolean ignorePosition = dead || unit.id != unitID;
|
boolean ignorePosition = dead || unit.id != unitID;
|
||||||
|
|||||||
@@ -42,6 +42,7 @@ public class UI implements ApplicationListener, Loadable{
|
|||||||
public MinimapFragment minimapfrag;
|
public MinimapFragment minimapfrag;
|
||||||
public PlayerListFragment listfrag;
|
public PlayerListFragment listfrag;
|
||||||
public LoadingFragment loadfrag;
|
public LoadingFragment loadfrag;
|
||||||
|
public HintsFragment hints;
|
||||||
|
|
||||||
public WidgetGroup menuGroup, hudGroup;
|
public WidgetGroup menuGroup, hudGroup;
|
||||||
|
|
||||||
@@ -140,12 +141,6 @@ public class UI implements ApplicationListener, Loadable{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//draw overlay for buttons
|
|
||||||
if(state.rules.tutorial){
|
|
||||||
control.tutorial.draw();
|
|
||||||
Draw.flush();
|
|
||||||
}
|
|
||||||
|
|
||||||
Events.fire(Trigger.uiDrawEnd);
|
Events.fire(Trigger.uiDrawEnd);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -156,6 +151,7 @@ public class UI implements ApplicationListener, Loadable{
|
|||||||
|
|
||||||
menufrag = new MenuFragment();
|
menufrag = new MenuFragment();
|
||||||
hudfrag = new HudFragment();
|
hudfrag = new HudFragment();
|
||||||
|
hints = new HintsFragment();
|
||||||
chatfrag = new ChatFragment();
|
chatfrag = new ChatFragment();
|
||||||
minimapfrag = new MinimapFragment();
|
minimapfrag = new MinimapFragment();
|
||||||
listfrag = new PlayerListFragment();
|
listfrag = new PlayerListFragment();
|
||||||
@@ -526,7 +522,7 @@ public class UI implements ApplicationListener, Loadable{
|
|||||||
|
|
||||||
//TODO move?
|
//TODO move?
|
||||||
|
|
||||||
public static String formatAmount(long number){
|
public static String formatAmount(int number){
|
||||||
if(number >= 1_000_000_000){
|
if(number >= 1_000_000_000){
|
||||||
return Strings.fixed(number / 1_000_000_000f, 1) + "[gray]" + Core.bundle.get("unit.billions") + "[]";
|
return Strings.fixed(number / 1_000_000_000f, 1) + "[gray]" + Core.bundle.get("unit.billions") + "[]";
|
||||||
}else if(number >= 1_000_000){
|
}else if(number >= 1_000_000){
|
||||||
|
|||||||
@@ -311,7 +311,7 @@ public class World{
|
|||||||
//TODO bad code
|
//TODO bad code
|
||||||
boolean hasSnow = floors[0].name.contains("ice") || floors[0].name.contains("snow");
|
boolean hasSnow = floors[0].name.contains("ice") || floors[0].name.contains("snow");
|
||||||
boolean hasRain = !hasSnow && content.contains(Liquids.water) && !floors[0].name.contains("sand");
|
boolean hasRain = !hasSnow && content.contains(Liquids.water) && !floors[0].name.contains("sand");
|
||||||
boolean hasDesert = !hasSnow && !hasRain && floors[0].name.contains("sand");
|
boolean hasDesert = !hasSnow && !hasRain && floors[0] == Blocks.sand;
|
||||||
boolean hasSpores = floors[0].name.contains("spore") || floors[0].name.contains("moss") || floors[0].name.contains("tainted");
|
boolean hasSpores = floors[0].name.contains("spore") || floors[0].name.contains("moss") || floors[0].name.contains("tainted");
|
||||||
|
|
||||||
if(hasSnow){
|
if(hasSnow){
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ public abstract class Content implements Comparable<Content>, Disposable{
|
|||||||
*/
|
*/
|
||||||
public void load(){}
|
public void load(){}
|
||||||
|
|
||||||
/** @return whether an error ocurred during mod loading. */
|
/** @return whether an error occurred during mod loading. */
|
||||||
public boolean hasErrored(){
|
public boolean hasErrored(){
|
||||||
return minfo.error != null;
|
return minfo.error != null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -110,7 +110,7 @@ public abstract class UnlockableContent extends MappableContent{
|
|||||||
|
|
||||||
/** Makes this piece of content unlocked; if it already unlocked, nothing happens. */
|
/** Makes this piece of content unlocked; if it already unlocked, nothing happens. */
|
||||||
public void unlock(){
|
public void unlock(){
|
||||||
if(!unlocked()){
|
if(!net.client() && !unlocked()){
|
||||||
unlocked = true;
|
unlocked = true;
|
||||||
Core.settings.put(name + "-unlocked", true);
|
Core.settings.put(name + "-unlocked", true);
|
||||||
|
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ import mindustry.ui.*;
|
|||||||
|
|
||||||
public class WaveGraph extends Table{
|
public class WaveGraph extends Table{
|
||||||
public Seq<SpawnGroup> groups = new Seq<>();
|
public Seq<SpawnGroup> groups = new Seq<>();
|
||||||
public int from, to = 20;
|
public int from = 0, to = 20;
|
||||||
|
|
||||||
private Mode mode = Mode.counts;
|
private Mode mode = Mode.counts;
|
||||||
private int[][] values;
|
private int[][] values;
|
||||||
@@ -114,7 +114,7 @@ public class WaveGraph extends Table{
|
|||||||
|
|
||||||
Lines.line(cx, cy, cx, cy + len);
|
Lines.line(cx, cy, cx, cy + len);
|
||||||
if(i == values.length/2){
|
if(i == values.length/2){
|
||||||
font.draw("" + (i + from), cx, cy - 2f, Align.center);
|
font.draw("" + (i + from + 1), cx, cy - 2f, Align.center);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
font.setColor(Color.white);
|
font.setColor(Color.white);
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ package mindustry.entities;
|
|||||||
|
|
||||||
import arc.*;
|
import arc.*;
|
||||||
import arc.func.*;
|
import arc.func.*;
|
||||||
import arc.graphics.*;
|
|
||||||
import arc.math.*;
|
import arc.math.*;
|
||||||
import arc.math.geom.*;
|
import arc.math.geom.*;
|
||||||
import arc.struct.*;
|
import arc.struct.*;
|
||||||
@@ -25,6 +24,7 @@ public class Damage{
|
|||||||
private static Rect rect = new Rect();
|
private static Rect rect = new Rect();
|
||||||
private static Rect hitrect = new Rect();
|
private static Rect hitrect = new Rect();
|
||||||
private static Vec2 tr = new Vec2();
|
private static Vec2 tr = new Vec2();
|
||||||
|
private static Seq<Unit> units = new Seq<>();
|
||||||
private static GridBits bits = new GridBits(30, 30);
|
private static GridBits bits = new GridBits(30, 30);
|
||||||
private static IntQueue propagation = new IntQueue();
|
private static IntQueue propagation = new IntQueue();
|
||||||
private static IntSet collidedBlocks = new IntSet();
|
private static IntSet collidedBlocks = new IntSet();
|
||||||
@@ -32,23 +32,30 @@ public class Damage{
|
|||||||
private static Unit tmpUnit;
|
private static Unit tmpUnit;
|
||||||
|
|
||||||
/** 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, boolean damage){
|
public static void dynamicExplosion(float x, float y, float flammability, float explosiveness, float power, float radius, boolean damage){
|
||||||
|
dynamicExplosion(x, y, flammability, explosiveness, power, radius, damage, true, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Creates a dynamic explosion based on specified parameters. */
|
||||||
|
public static void dynamicExplosion(float x, float y, float flammability, float explosiveness, float power, float radius, boolean damage, boolean fire, @Nullable Team ignoreTeam){
|
||||||
if(damage){
|
if(damage){
|
||||||
for(int i = 0; i < Mathf.clamp(power / 20, 0, 6); i++){
|
for(int i = 0; i < Mathf.clamp(power / 20, 0, 6); i++){
|
||||||
int branches = 5 + Mathf.clamp((int)(power / 30), 1, 20);
|
int branches = 5 + Mathf.clamp((int)(power / 30), 1, 20);
|
||||||
Time.run(i * 2f + Mathf.random(4f), () -> Lightning.create(Team.derelict, Pal.power, 3, x, y, Mathf.random(360f), branches + Mathf.range(2)));
|
Time.run(i * 2f + Mathf.random(4f), () -> Lightning.create(Team.derelict, Pal.power, 3, x, y, Mathf.random(360f), branches + Mathf.range(2)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(fire){
|
||||||
for(int i = 0; i < Mathf.clamp(flammability / 4, 0, 30); i++){
|
for(int i = 0; i < Mathf.clamp(flammability / 4, 0, 30); i++){
|
||||||
Time.run(i / 2f, () -> Call.createBullet(Bullets.fireball, Team.derelict, x, y, Mathf.random(360f), Bullets.fireball.damage, 1, 1));
|
Time.run(i / 2f, () -> Call.createBullet(Bullets.fireball, Team.derelict, x, y, Mathf.random(360f), Bullets.fireball.damage, 1, 1));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int waves = Mathf.clamp((int)(explosiveness / 4), 0, 30);
|
int waves = Mathf.clamp((int)(explosiveness / 4), 0, 30);
|
||||||
|
|
||||||
for(int i = 0; i < waves; i++){
|
for(int i = 0; i < waves; i++){
|
||||||
int f = i;
|
int f = i;
|
||||||
Time.run(i * 2f, () -> {
|
Time.run(i * 2f, () -> {
|
||||||
Damage.damage(x, y, Mathf.clamp(radius + explosiveness, 0, 50f) * ((f + 1f) / waves), explosiveness / 2f);
|
Damage.damage(ignoreTeam, x, y, Mathf.clamp(radius + explosiveness, 0, 50f) * ((f + 1f) / waves), explosiveness / 2f, false);
|
||||||
Fx.blockExplosionSmoke.at(x + Mathf.range(radius), y + Mathf.range(radius));
|
Fx.blockExplosionSmoke.at(x + Mathf.range(radius), y + Mathf.range(radius));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -117,6 +124,7 @@ public class Damage{
|
|||||||
Building tile = world.build(cx, cy);
|
Building tile = world.build(cx, cy);
|
||||||
boolean collide = tile != null && collidedBlocks.add(tile.pos());
|
boolean collide = tile != null && collidedBlocks.add(tile.pos());
|
||||||
|
|
||||||
|
if(hitter.damage > 0){
|
||||||
if(collide && tile.team != team && tile.collide(hitter)){
|
if(collide && tile.team != team && tile.collide(hitter)){
|
||||||
tile.collision(hitter);
|
tile.collision(hitter);
|
||||||
hitter.type.hit(hitter, tile.x, tile.y);
|
hitter.type.hit(hitter, tile.x, tile.y);
|
||||||
@@ -124,7 +132,8 @@ public class Damage{
|
|||||||
|
|
||||||
//try to heal the tile
|
//try to heal the tile
|
||||||
if(collide && hitter.type.collides(hitter, tile)){
|
if(collide && hitter.type.collides(hitter, tile)){
|
||||||
hitter.type.hitTile(hitter, tile, 0f, false);
|
hitter.type.hitTile(hitter, tile, tile.health, false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -161,20 +170,27 @@ public class Damage{
|
|||||||
rect.height += expand * 2;
|
rect.height += expand * 2;
|
||||||
|
|
||||||
Cons<Unit> cons = e -> {
|
Cons<Unit> cons = e -> {
|
||||||
if(!e.checkTarget(hitter.type.collidesAir, hitter.type.collidesGround)) return;
|
|
||||||
|
|
||||||
e.hitbox(hitrect);
|
e.hitbox(hitrect);
|
||||||
|
|
||||||
Vec2 vec = Geometry.raycastRect(x, y, x2, y2, hitrect.grow(expand * 2));
|
Vec2 vec = Geometry.raycastRect(x, y, x2, y2, hitrect.grow(expand * 2));
|
||||||
|
|
||||||
if(vec != null){
|
if(vec != null && hitter.damage > 0){
|
||||||
effect.at(vec.x, vec.y);
|
effect.at(vec.x, vec.y);
|
||||||
e.collision(hitter, vec.x, vec.y);
|
e.collision(hitter, vec.x, vec.y);
|
||||||
hitter.collision(e, vec.x, vec.y);
|
hitter.collision(e, vec.x, vec.y);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
Units.nearbyEnemies(team, rect, cons);
|
units.clear();
|
||||||
|
|
||||||
|
Units.nearbyEnemies(team, rect, u -> {
|
||||||
|
if(u.checkTarget(hitter.type.collidesAir, hitter.type.collidesGround)){
|
||||||
|
units.add(u);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
units.sort(u -> u.dst2(hitter));
|
||||||
|
units.each(cons);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import arc.*;
|
|||||||
import arc.func.*;
|
import arc.func.*;
|
||||||
import arc.math.geom.*;
|
import arc.math.geom.*;
|
||||||
import arc.struct.*;
|
import arc.struct.*;
|
||||||
|
import arc.util.*;
|
||||||
import mindustry.gen.*;
|
import mindustry.gen.*;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
@@ -93,6 +94,7 @@ public class EntityGroup<T extends Entityc> implements Iterable<T>{
|
|||||||
return map != null;
|
return map != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
public T getByID(int id){
|
public T getByID(int id){
|
||||||
if(map == null) throw new RuntimeException("Mapping is not enabled for group " + id + "!");
|
if(map == null) throw new RuntimeException("Mapping is not enabled for group " + id + "!");
|
||||||
return map.get(id);
|
return map.get(id);
|
||||||
@@ -188,10 +190,16 @@ public class EntityGroup<T extends Entityc> implements Iterable<T>{
|
|||||||
clearing = false;
|
clearing = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
public T find(Boolf<T> pred){
|
public T find(Boolf<T> pred){
|
||||||
return array.find(pred);
|
return array.find(pred);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
public T first(){
|
||||||
|
return array.first();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Iterator<T> iterator(){
|
public Iterator<T> iterator(){
|
||||||
return array.iterator();
|
return array.iterator();
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ public class Fires{
|
|||||||
private static final float baseLifetime = 1000f;
|
private static final float baseLifetime = 1000f;
|
||||||
private static final IntMap<Fire> map = new IntMap<>();
|
private static final IntMap<Fire> map = new IntMap<>();
|
||||||
|
|
||||||
/** Start a fire on the tile. If there already is a file there, refreshes its lifetime. */
|
/** Start a fire on the tile. If there already is a fire there, refreshes its lifetime. */
|
||||||
public static void create(Tile tile){
|
public static void create(Tile tile){
|
||||||
if(net.client() || tile == null || !state.rules.fire) return; //not clientside.
|
if(net.client() || tile == null || !state.rules.fire) return; //not clientside.
|
||||||
|
|
||||||
|
|||||||