Compare commits

..

127 Commits
v142 ... v143.1

Author SHA1 Message Date
Anuken
34b22f292c PR cleanup 2023-04-08 10:52:53 -04:00
Anuken
11ad5a0373 Reset UI scale to 100% when broken 2023-04-08 10:29:42 -04:00
Anuken
f4fabecce7 Fixed #8483 (meep why did you make the minimum 5%) 2023-04-07 11:05:26 -04:00
Anuken
60fc2fb5cd Doubled server object buffer size 2023-04-07 10:43:59 -04:00
Anuken
04eba618d2 Merge remote-tracking branch 'origin/master' 2023-04-06 19:13:41 -04:00
Anuken
ac7b694e91 Better item display rates 2023-04-06 19:13:36 -04:00
Github Actions
4fcb338d94 Automatic bundle update 2023-04-06 23:08:17 +00:00
JniTrRny
6dc3b7e729 More Dark UI in stats display (#8473)
* The Dark UI Menace

* Attack of the Dark UI
2023-04-06 19:07:24 -04:00
code-explorer786
cdb9fa0d7d Add PlayerChatEvent on clients (#8432)
* Add PlayerChatEvent on clients

d32dd01097

Co-authored-by: buthed010203 <naguiar010203@gmail.com>

* Only fire when valid. (Currently deciding on whether or not to add ChatEvent without the player.)

---------

Co-authored-by: buthed010203 <naguiar010203@gmail.com>
2023-04-06 18:16:04 -04:00
Anuken
2b11e1fb1e Fixed #8480 2023-04-06 12:15:12 -04:00
Anuken
697c6a927a Merge remote-tracking branch 'origin/master' 2023-04-06 10:46:57 -04:00
Anuken
72b456fca2 Optimized imports 2023-04-06 10:46:52 -04:00
Github Actions
f67e2c71e7 Automatic bundle update 2023-04-06 13:56:07 +00:00
Nunting
bee977cadc Update bundle_ko.properties (#8479) 2023-04-06 09:55:06 -04:00
MonoDx
183ebb33b7 Update bundle_be.properties (#8478)
Update logical translate.

Work monoDx.
Thanks
2023-04-06 09:54:48 -04:00
Anuken
f6665de2e6 Update push.yml 2023-04-05 20:06:45 -04:00
Anuken
97390d25c0 Removed pointless code 2023-04-05 19:51:16 -04:00
Anuken
3f1d957e28 New duo animation 2023-04-04 11:02:47 -04:00
Anuken
e62a5888ef Fixed some possible crashes 2023-04-03 16:40:12 -04:00
MEEPofFaith
6d71bcd2eb Multi shotgun fix (#8460)
* Multi-barrel shotgun fix

* multi-recoil support

* @Nullable for everything
2023-04-03 16:38:10 -04:00
buthed010203
2075a226e1 Fix multiline messages being cut off (#8471)
I'm not fixing this properly
2023-04-03 15:37:09 -04:00
MEEPofFaith
f55363a932 Fix janky sublimate ammo display (#8469) 2023-04-03 10:03:24 -04:00
DikHalz
76f151789a Update servers_v7.json (#8468) 2023-04-02 23:21:23 -04:00
Anuken
1413b479ef Classmap auto-update 2023-04-02 22:44:44 -04:00
MEEPofFaith
b322b1165f Parse singular consumes (#8466)
* Parse singular `Consume`s

* Proper coolant parsing

* Temporary manual update of ClassMap

Does not include all consume types.

I don't know what gradle command to run to update `ClassMap`. I've tried `tools:updateScripts` but that just cleared everything.
2023-04-02 19:53:19 -04:00
Anuken
fa02d8d280 Merge remote-tracking branch 'origin/master' 2023-04-02 13:28:53 -04:00
Anuken
251e10b000 Fixed #8465 2023-04-02 13:28:49 -04:00
Joan Josep
6630f88613 Update bundle_ca.properties (#8464) 2023-04-02 11:00:27 -04:00
Anuken
c5c65d4475 Fixed #8462 2023-04-02 10:54:42 -04:00
Anuken
c267743874 Fixed #8463 2023-04-02 10:38:19 -04:00
Anuken
45ce8c8dec Merge remote-tracking branch 'origin/master' 2023-04-02 10:36:31 -04:00
Anuken
25c65e80cd Fixed team write error 2023-04-02 10:36:26 -04:00
MEEPofFaith
e51ab514a8 Proper speedup amount (#8461) 2023-04-02 00:19:33 -04:00
Anuken
21d64157a0 Merge remote-tracking branch 'origin/master' 2023-04-01 17:30:08 -04:00
Anuken
fff8f567d0 Hide weapon sprites for certain units 2023-04-01 17:30:05 -04:00
Bernd Ritter
1e2e0a48a1 Update bundle_de.properties (#8452)
Fixed two typos of fordere -> vordere
2023-04-01 10:39:00 -04:00
Anuken
affa30730a Fixed #8458 2023-04-01 10:04:22 -04:00
Anuken
b326bdf0e8 Merge remote-tracking branch 'origin/master' 2023-04-01 09:55:59 -04:00
Anuken
cc3694ce4a battery fix 2023-04-01 09:55:54 -04:00
Xasmedy
3048e38bff Fixing menu not hiding on click. (#8455) 2023-04-01 09:54:01 -04:00
Anuken
b88a215dc5 Merge remote-tracking branch 'origin/master' 2023-03-31 23:05:00 -04:00
Anuken
36e5522694 JSON planet cloudMesh/HexSkyMesh support 2023-03-31 23:04:55 -04:00
Github Actions
226e8b8a20 Automatic bundle update 2023-04-01 02:45:47 +00:00
Anuken
43424547f2 Setprop description 2023-03-31 22:44:54 -04:00
Anuken
d2f2189441 Merge remote-tracking branch 'origin/master' 2023-03-31 22:03:02 -04:00
Anuken
e81cd5b68e Better impl of #8451 2023-03-31 22:02:57 -04:00
Xasmedy
c30cbc0f20 Update contributors (#8450) 2023-03-31 16:30:14 -04:00
Xasmedy
e79a97ed92 Adding a new menu type. (#8449)
* Added a new type of menu.

* Renamed the methods and fixed buttons not selecting.

* Fixed followUpMenu and menu having different dialogs.

* Applying review changes.
- Refactored the menu dialog instantiation.
- Fixed the single-line else statement.
2023-03-31 14:21:41 -04:00
MEEPofFaith
ac19c3f160 bridgeReplacement for ducts (#8447) 2023-03-30 21:23:53 -04:00
Phinner
375837eef5 Update Xpdustry servers (#8446)
* Update Xpdustry servers

* Add warning about SRV records

* Remove default port

* And now... Dik is gone too
2023-03-30 18:26:05 -04:00
Volas171
c59d3d5279 Update servers_v7.json (#8443) 2023-03-28 18:04:35 -04:00
Suportik-GFX
d1c506330b Update servers_v7.json (#8441)
adding one more server under the Exploding Cowards.
2023-03-28 14:04:07 -04:00
Anuken
b81e942479 Fixed RadialEffect + MultiEffect 2023-03-27 10:40:16 -04:00
Anuken
e36a70749c might as well blacklist it in the game too 2023-03-27 10:19:35 -04:00
Anuken
4db085bd07 Fixed #8435 2023-03-27 10:07:41 -04:00
Anuken
cd7088d241 Closes Anuken/Mindustry-Suggestions/issues/4353 2023-03-26 23:17:08 -04:00
Anuken
821569aafb Merge remote-tracking branch 'origin/master' 2023-03-26 22:46:35 -04:00
Anuken
83a059b2da Multi-line server list 2023-03-26 22:46:30 -04:00
MEEPofFaith
0de2c95f6e (Optionally) Scale efficiency of attribute crafters (#8433)
* Scale efficiency of attribute crafters

* Make it optional :D

* Call super
2023-03-26 14:53:14 -04:00
MEEPofFaith
fcb44e4952 Fix frags in frags creating a large empty space (#8430)
* Fix frags in frags creating a large empty space

* Change suppression message

Consistency with status duration

* Too little space between boxes
2023-03-26 11:53:46 -04:00
Github Actions
af26e60a4f Automatic bundle update 2023-03-26 02:45:57 +00:00
MEEPofFaith
6b936aa7f6 Better Ammo Stats Display (#8429)
* Cleaner ammo stats based on unit factory recipe stats

* Display suppression in bullet stats

Also reword from "regen" to "repair" to more accurately convey that build towers are affected as well.

* PointLaserBulletTypes don't display damage in dps

* Display preview region instead of region

* autoFixed
2023-03-25 22:45:07 -04:00
MEEPofFaith
f6a8c7509d Include int[] in readObject/writeObject (#8400)
* Include int[] in readObject/writeObject

* The almighty Object[]

* Order
2023-03-25 14:31:14 -04:00
Anuken
deb814ce58 Merge remote-tracking branch 'origin/master' 2023-03-25 14:26:50 -04:00
Anuken
da4371baf8 Removed pointless CRC check 2023-03-25 14:26:46 -04:00
MEEPofFaith
47a2afd294 More specific ui scaling options (#8356)
Increments of 5 instead of 25
2023-03-25 14:24:09 -04:00
MEEPofFaith
0122b735a0 Pierce damage decay (#8416) 2023-03-25 14:06:14 -04:00
MEEPofFaith
9c3ddc398c Battery Graphical Updates (#8323)
* Battery Graphical Updates

* Add the vanilla fields back

* Add back topRegion and depricate it
2023-03-25 14:00:08 -04:00
HamzaGSopp
0ccbe68a65 new server v7 (#8426)
new server Tamazia
2023-03-25 13:58:10 -04:00
Suportik-GFX
30cd6a7de6 Update servers_v7.json (#8421) 2023-03-25 13:57:50 -04:00
Brandons404
23a2596e29 added pvp server to fish (#8413) 2023-03-25 13:57:20 -04:00
TheRadioactiveBanana
b88422b17e Add eradication mindustry HexPvP && Hub server (#8380) 2023-03-25 13:57:11 -04:00
thedimas
09a9b68331 [thedimas] Use IP instead of domain (#8393) 2023-03-25 13:56:48 -04:00
BalaM314
08f63122ba Set controller after setting spawnedByCore (fix UnitChangeEvent) (#8428)
* CoreBlock.playerSpawn: Set spawnedByCore first
* The call to unit.controller() calls player.unit(unit)
* That function fires UnitChangeEvent
* The unit in UnitChangeEvent has spawnedByCore incorrectly set to false
* This caused me to waste an hour of my life while making a plugin

* Might as well improve code readability
2023-03-25 13:55:26 -04:00
phoskee
355f33b0a4 Update bundle_it.properties (#8411)
Fixed errors
Translated some sentences
2023-03-25 13:52:04 -04:00
MEEPofFaith
90f7bbae65 Make an interface for blocks that spawn tethered units (#8395) 2023-03-25 13:51:43 -04:00
Даркнесс#3729
4be7cf5c0e Call.textInput (#8355)
* Update Menus.java

* Update EventType.java

* Update UI.java

* WHY

* WHY x2

* fix

* 💀
2023-03-25 13:50:25 -04:00
Pasu4
58eef49284 Scale planet grid to planet radius (#8381)
* Scale planet grid to planet radius

* Fix skewed sector icons on small planets
2023-03-25 13:50:06 -04:00
MEEPofFaith
b030a51485 If it don't collide, don't collide (#8388) 2023-03-25 13:49:22 -04:00
MEEPofFaith
aec3e178f5 Fix armor piercing ignoring status effect health multiplier (#8387)
* Make rawDamage protected

* pierceArmor ignores status effect health multiplier

* This is no longer the case
2023-03-25 13:47:53 -04:00
gorodmi
ee47d8a20a Allow 0 items (#8389) 2023-03-25 13:46:55 -04:00
南门阳德
5c05c9f1d1 Fix memory leak in pools (#8415) 2023-03-25 13:46:11 -04:00
Anuken
172f47cad6 Fixed #8418 2023-03-25 13:36:45 -04:00
Anuken
a8b3350d61 Fixed #8401 2023-03-25 13:20:04 -04:00
Anuken
b324194295 Merge remote-tracking branch 'origin/master' 2023-03-25 13:16:15 -04:00
Anuken
663fa2bd3f Fixed #8399 2023-03-25 13:16:12 -04:00
SITUVNgcd
4ddb78e8d5 Add Events.fire(Trigger.unitCommandChange) in select/remove unit by type (#8406)
* Added `Events.fire(Trigger.unitCommandChange)` and `boolean fireInRebuildCommand`

Added `Events.fire(Trigger.unitCommandChange)` to **left click - select** and **right click - remove**.
Added `boolean fireInRebuildCommand` to prevent infinite event loop with `rebuildCommand`.

* Remove useless `fireInRebuildCommand` flag.
2023-03-25 13:10:21 -04:00
Anuken
f23d203095 Merge remote-tracking branch 'origin/master' 2023-03-25 13:01:16 -04:00
Anuken
dfce361afc Fixed #8423 2023-03-25 13:01:12 -04:00
Github Actions
2553891c25 Automatic bundle update 2023-03-25 16:43:28 +00:00
Anuken
e4bef567b5 Fixed Steam public lobby hosting / Misc Steam bugfixes 2023-03-25 12:42:29 -04:00
Anuken
0daafc5ff3 Steam kick bugfixes 2023-03-25 11:11:06 -04:00
Anuken
d07706e039 Pathfinder bugfixes 2023-03-18 16:18:16 -04:00
Anuken
ca2b51d4fe Merge remote-tracking branch 'origin/master' 2023-03-09 05:25:41 -05:00
Anuken
bae3884d96 Basic setProp implementation 2023-03-09 05:25:35 -05:00
MEEPofFaith
515a6f9c8d json-able attributes (#8334) 2023-03-08 13:11:53 -05:00
Joan Josep
d937af7497 Update bundle_ca.properties (#8341)
Missatge reforçat->Missatge destacat
Unir->Uneix (use imperative in buttons)
2023-03-08 09:25:56 -05:00
Github Actions
a216c9c56e Automatic bundle update 2023-03-08 14:21:36 +00:00
Ngọc Lam
0e9f250e93 Vietnamese translation for mindustry v7 update (Phase 1) (#7843)
* Update bundle_vi.properties

* Update bundle_vi.properties

* Alot of todo ...

* More...

* REEEEEEEE

* Alot of descriptions

* re-translate sectors desc

* fck VSC

* update sector descriptions

* Sector hints

* Block description

---------

Co-authored-by: Arckyn Nightingale <86044974+Kynarc@users.noreply.github.com>
Co-authored-by: Anuken <arnukren@gmail.com>
2023-03-08 09:20:48 -05:00
MEEPofFaith
10e0be9d68 Drill multipliers for regular drills and beam drills (#8339)
* Drill multipliers for other drills

* h
2023-03-08 09:19:57 -05:00
Github Actions
29d4246019 Automatic bundle update 2023-03-08 14:19:41 +00:00
OSP
65c5d206a8 [XCore] new server (#8372) 2023-03-08 09:18:46 -05:00
MonoDx
3a73a97746 Update bundle_be.properties. (#8374)
Worked Dima Pozniac and monodx.

Thanks.
2023-03-08 09:18:17 -05:00
MEEPofFaith
a3f8ca9ca5 Shield flash on top (#8373)
Co-authored-by: Anuken <arnukren@gmail.com>
2023-03-08 09:17:39 -05:00
MEEPofFaith
a046f0f11b Non-hexagonal force projectors (#8358) 2023-03-08 09:16:07 -05:00
Github Actions
2cc486febc Automatic bundle update 2023-03-08 14:11:55 +00:00
MEEPofFaith
3c9b3680bc Interval Bullet Delay (#8365)
Like homing delay
2023-03-08 09:11:07 -05:00
MEEPofFaith
0a1957eb13 Display Interval Bullet in Stats + Collapsers (#8366)
* Display interval bullets in stats

* Collapsers for sub-bullets

* highlight /sec as well

* top
2023-03-08 09:10:34 -05:00
MEEPofFaith
75e1e6f166 Player unit spawns before core animation finishes (#8375)
* Player unit spawns before core animation finishes

* the

* Shouldn't the landing particles also be aimed at the tile's world pos?
2023-03-08 08:26:11 -05:00
Sunky.MPEG
327a8fc61b Clearer translations (#8364)
* Clearer translations

* Small changes
2023-03-08 07:12:04 -05:00
Anuken
a857eaed74 Fixed #8368 2023-03-08 07:06:59 -05:00
Anuken
028c189dc8 Merge remote-tracking branch 'origin/master' 2023-03-08 06:56:49 -05:00
Anuken
11f8e06708 Fixed #8340 / Reverted #8220 2023-03-08 06:56:44 -05:00
MEEPofFaith
0760923943 overRegion (#8337) 2023-02-27 11:26:47 -05:00
MEEPofFaith
219084fe3c Don't generate edges if edges already exist (#8338) 2023-02-27 11:26:26 -05:00
Evgenij
4f314afe21 [RU] Small translation update (#8342)
* [RU] Small translation update

* Update bundle_ru.properties
2023-02-27 11:25:29 -05:00
OGalaxy
6750cfead8 Update servers_v7.json (#8349)
* Update servers_v7.json

* Update servers_v7.json

* Update servers_v7.json
2023-02-27 11:25:12 -05:00
Anuken
b569646310 fixed ignoreLiquidFullness 2023-02-26 23:03:03 -05:00
Anuken
cc207d3d7c a 2023-02-26 15:36:28 -05:00
Anuken
e234ac43a6 Fixed keybind names 2023-02-25 11:38:18 -05:00
Anuken
2388091ed6 Merge remote-tracking branch 'origin/master' 2023-02-23 16:12:57 -05:00
Anuken
a38351d41f isLogicControllable 2023-02-23 16:12:52 -05:00
Tentyanuk
4d8de72a8e Update servers_v7.json (#8332) 2023-02-23 09:06:07 -05:00
Github Actions
ab2138d8e7 Automatic bundle update 2023-02-22 18:03:15 +00:00
MonoDx
46c75af9e4 Updated and improved belarusian translation. (#8331)
Edited by monodx.
2023-02-22 13:02:09 -05:00
Gureumi
8eb3c16c50 Fix server always paused (#8330) 2023-02-22 13:02:04 -05:00
Anuken
39e88ae614 Fixed #8328 2023-02-21 18:15:20 -05:00
174 changed files with 3185 additions and 2093 deletions

View File

@@ -40,6 +40,8 @@ jobs:
- name: Update JITpack repo - name: Update JITpack repo
if: ${{ github.repository == 'Anuken/Mindustry' }} if: ${{ github.repository == 'Anuken/Mindustry' }}
run: | run: |
git config --global user.name "Github Actions"
git config --global user.email "cli@github.com"
cd ../ cd ../
cp -r ./Mindustry ./MindustryJitpack cp -r ./Mindustry ./MindustryJitpack
cd MindustryJitpack cd MindustryJitpack

View File

@@ -25,6 +25,6 @@ For example, if your server address is `example.com:6000`, you would add a comma
"address": "example.com:6000" "address": "example.com:6000"
} }
``` ```
> Note that Mindustry also support SRV records. This allows you to use a subdomain for your server address instead of specifying the port. For example, if you want to use `play.example.com` instead of `example.com:6000`, in the dns settings of your domain, add an SRV record with `_mindustry` as the service, `tcp` as the protocol, `play` as the target and `6000` as the port. You can also setup fallback servers by modifing the weight or priority of the record. > Note that Mindustry also support SRV records. This allows you to use a subdomain for your server address instead of specifying the port. For example, if you want to use `play.example.com` instead of `example.com:6000`, in the dns settings of your domain, add an SRV record with `_mindustry` as the service, `tcp` as the protocol, `play` as the target and `6000` as the port. You can also setup fallback servers by modifying the weight or priority of the record. Although SRV records are very convenient, keep in mind they are slower than regular addresses. Avoid using them in the server list, but rather as an easy way to share your server address.
Then, press the *'submit pull request'* button and I'll take a look at your server. If I have any issues with it, I'll let you know in the PR comments. Then, press the *'submit pull request'* button and I'll take a look at your server. If I have any issues with it, I'll let you know in the PR comments.

View File

@@ -1,18 +1,17 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg <svg
xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#" xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-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="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="12"
width="12" height="12"
height="12" version="1.1"
version="1.1" id="svg380"
id="svg380" sodipodi:docname="admin.svg"
sodipodi:docname="admin.svg" inkscape:version="1.0.1 (0767f8302a, 2020-10-17)">
inkscape:version="1.0.1 (0767f8302a, 2020-10-17)">
<metadata <metadata
id="metadata386"> id="metadata386">
<rdf:RDF> <rdf:RDF>

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@@ -1,18 +1,17 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg <svg
xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#" xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-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="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="10"
width="10" height="10"
height="10" version="1.1"
version="1.1" id="svg192"
id="svg192" sodipodi:docname="distribution.svg"
sodipodi:docname="distribution.svg" inkscape:version="1.0.1 (0767f8302a, 2020-10-17)">
inkscape:version="1.0.1 (0767f8302a, 2020-10-17)">
<metadata <metadata
id="metadata198"> id="metadata198">
<rdf:RDF> <rdf:RDF>

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -1,18 +1,17 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg <svg
xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#" xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-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="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="10"
width="10" height="10"
height="10" version="1.1"
version="1.1" id="svg252"
id="svg252" sodipodi:docname="effect.svg"
sodipodi:docname="effect.svg" inkscape:version="1.0.1 (0767f8302a, 2020-10-17)">
inkscape:version="1.0.1 (0767f8302a, 2020-10-17)">
<metadata <metadata
id="metadata258"> id="metadata258">
<rdf:RDF> <rdf:RDF>

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -1,18 +1,17 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg <svg
xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#" xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-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="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="10"
width="10" height="13"
height="13" version="1.1"
version="1.1" id="svg310"
id="svg310" sodipodi:docname="file-image.svg"
sodipodi:docname="file-image.svg" inkscape:version="1.0.1 (0767f8302a, 2020-10-17)">
inkscape:version="1.0.1 (0767f8302a, 2020-10-17)">
<metadata <metadata
id="metadata316"> id="metadata316">
<rdf:RDF> <rdf:RDF>

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@@ -1,18 +1,17 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg <svg
xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#" xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-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="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="12"
width="12" height="12"
height="12" version="1.1"
version="1.1" id="svg300"
id="svg300" sodipodi:docname="info.svg"
sodipodi:docname="info.svg" inkscape:version="1.0.1 (0767f8302a, 2020-10-17)">
inkscape:version="1.0.1 (0767f8302a, 2020-10-17)">
<metadata <metadata
id="metadata306"> id="metadata306">
<rdf:RDF> <rdf:RDF>

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@@ -1,17 +1,16 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg <svg
xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#" xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-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="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" sodipodi:docname="logic.svg"
sodipodi:docname="logic.svg" inkscape:version="1.0 (9f2f71dc58, 2020-08-02)"
inkscape:version="1.0 (9f2f71dc58, 2020-08-02)" id="svg8"
id="svg8" version="1.1"
version="1.1" viewBox="0 0 128 128">
viewBox="0 0 128 128">
<defs <defs
id="defs2" /> id="defs2" />
<sodipodi:namedview <sodipodi:namedview

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@@ -1,18 +1,17 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg <svg
xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#" xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-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="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="16"
width="16" height="16"
height="16" version="1.1"
version="1.1" id="svg542"
id="svg542" sodipodi:docname="planet.svg"
sodipodi:docname="planet.svg" inkscape:version="1.0.1 (0767f8302a, 2020-10-17)">
inkscape:version="1.0.1 (0767f8302a, 2020-10-17)">
<metadata <metadata
id="metadata548"> id="metadata548">
<rdf:RDF> <rdf:RDF>

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 203 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 209 B

View File

Before

Width:  |  Height:  |  Size: 373 B

After

Width:  |  Height:  |  Size: 373 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 367 B

View File

@@ -900,6 +900,7 @@ stat.repairspeed = Repair Speed
stat.weapons = Weapons stat.weapons = Weapons
stat.bullet = Bullet stat.bullet = Bullet
stat.moduletier = Module Tier stat.moduletier = Module Tier
stat.unittype = Unit Type
stat.speedincrease = Speed Increase stat.speedincrease = Speed Increase
stat.range = Range stat.range = Range
stat.drilltier = Drillables stat.drilltier = Drillables
@@ -952,7 +953,7 @@ ability.unitspawn = {0} Factory
ability.shieldregenfield = Shield Regen Field ability.shieldregenfield = Shield Regen Field
ability.movelightning = Movement Lightning ability.movelightning = Movement Lightning
ability.shieldarc = Shield Arc ability.shieldarc = Shield Arc
ability.suppressionfield = Regen Suppression Field ability.suppressionfield = Repair Suppression Field
ability.energyfield = Energy Field: [accent]{0}[] damage ~ [accent]{1}[] blocks / [accent]{2}[] targets ability.energyfield = Energy Field: [accent]{0}[] damage ~ [accent]{1}[] blocks / [accent]{2}[] targets
bar.onlycoredeposit = Only Core Depositing Allowed bar.onlycoredeposit = Only Core Depositing Allowed
@@ -989,10 +990,12 @@ bar.strength = [stat]{0}[lightgray]x strength
units.processorcontrol = [lightgray]Processor Controlled units.processorcontrol = [lightgray]Processor Controlled
bullet.damage = [stat]{0}[lightgray] damage bullet.damage = [stat]{0}[lightgray] damage
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles bullet.splashdamage = [stat]{0}[lightgray] area dmg ~ [stat]{1}[lightgray] tiles
bullet.incendiary = [stat]incendiary bullet.incendiary = [stat]incendiary
bullet.homing = [stat]homing bullet.homing = [stat]homing
bullet.armorpierce = [stat]armor piercing bullet.armorpierce = [stat]armor piercing
bullet.suppression = [stat]{0}[lightgray] seconds of repair suppression ~ [stat]{1}[lightgray] tiles
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
bullet.frags = [stat]{0}[lightgray]x frag bullets: bullet.frags = [stat]{0}[lightgray]x frag bullets:
bullet.lightning = [stat]{0}[lightgray]x lightning ~ [stat]{1}[lightgray] damage bullet.lightning = [stat]{0}[lightgray]x lightning ~ [stat]{1}[lightgray] damage
bullet.buildingdamage = [stat]{0}%[lightgray] building damage bullet.buildingdamage = [stat]{0}%[lightgray] building damage
@@ -1106,8 +1109,8 @@ setting.bridgeopacity.name = Bridge Opacity
setting.playerchat.name = Display Player Bubble Chat setting.playerchat.name = Display Player Bubble Chat
setting.showweather.name = Show Weather Graphics setting.showweather.name = Show Weather Graphics
setting.hidedisplays.name = Hide Logic Displays setting.hidedisplays.name = Hide Logic Displays
public.confirm = Do you want to make your game public?\n[accent]Anyone will be able to join your games.\n[lightgray]This can be changed later in Settings->Game->Public Game Visibility. steam.friendsonly = Friends Only
public.confirm.really = If you want to play with friends, use [green]Invite Friend[] instead of a [scarlet]Public server[]!\nAre you sure you want to make your game [scarlet]public[]? steam.friendsonly.tooltip = Whether only Steam friends will be able to join your game.\nUnchecking this box will make your game public - anyone can join.
public.beta = Note that beta versions of the game cannot make public lobbies. public.beta = Note that beta versions of the game cannot make public lobbies.
uiscale.reset = UI scale has been changed.\nPress "OK" to confirm this scale.\n[scarlet]Reverting and exiting in[accent] {0}[] seconds... uiscale.reset = UI scale has been changed.\nPress "OK" to confirm this scale.\n[scarlet]Reverting and exiting in[accent] {0}[] seconds...
uiscale.cancel = Cancel & Exit uiscale.cancel = Cancel & Exit
@@ -1159,8 +1162,8 @@ keybind.select.name = Select/Shoot
keybind.diagonal_placement.name = Diagonal Placement keybind.diagonal_placement.name = Diagonal Placement
keybind.pick.name = Pick Block keybind.pick.name = Pick Block
keybind.break_block.name = Break Block keybind.break_block.name = Break Block
keybind.select_all_units = Select All Units keybind.select_all_units.name = Select All Units
keybind.select_all_unit_factories = Select All Unit Factories keybind.select_all_unit_factories.name = Select All Unit Factories
keybind.deselect.name = Deselect keybind.deselect.name = Deselect
keybind.pickupCargo.name = Pickup Cargo keybind.pickupCargo.name = Pickup Cargo
keybind.dropCargo.name = Drop Cargo keybind.dropCargo.name = Drop Cargo
@@ -1794,54 +1797,54 @@ hint.payloadDrop.mobile = [accent]Tap and hold[] an empty location to drop a pay
hint.waveFire = [accent]Wave[] turrets with water as ammunition will automatically put out nearby fires. 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.generator = \uF879 [accent]Combustion Generators[] burn coal and transmit power to adjacent blocks.\n\nPower transmission range can be extended with \uF87F [accent]Power Nodes[].
hint.guardian = [accent]Guardian[] units are armored. Weak ammo such as [accent]Copper[] and [accent]Lead[] is [scarlet]not effective[].\n\nUse higher tier turrets or \uF835 [accent]Graphite[] \uF861Duo/\uF859Salvo ammunition to take Guardians down. hint.guardian = [accent]Guardian[] units are armored. Weak ammo such as [accent]Copper[] and [accent]Lead[] is [scarlet]not effective[].\n\nUse higher tier turrets or \uF835 [accent]Graphite[] \uF861Duo/\uF859Salvo ammunition to take Guardians down.
hint.coreUpgrade = Cores can be upgraded by [accent]placing higher-tier cores over them[].\n\nPlace a \uf868 [accent]Foundation[] core over the \uf869 [accent]Shard[] core. Make sure it is free from nearby obstructions. hint.coreUpgrade = Cores can be upgraded by [accent]placing higher-tier cores over them[].\n\nPlace a \uF868 [accent]Foundation[] core over the \uF869 [accent]Shard[] core. Make sure it is free from nearby obstructions.
hint.presetLaunch = Gray [accent]landing zone sectors[], such as [accent]Frozen Forest[], can be launched to from anywhere. They do not require capture of nearby territory.\n\n[accent]Numbered sectors[], such as this one, are [accent]optional[]. hint.presetLaunch = Gray [accent]landing zone sectors[], such as [accent]Frozen Forest[], can be launched to from anywhere. They do not require capture of nearby territory.\n\n[accent]Numbered sectors[], such as this one, are [accent]optional[].
hint.presetDifficulty = This sector has a [scarlet]high enemy threat level[].\nLaunching to such sectors is [accent]not recommended[] without proper technology and preparation. hint.presetDifficulty = This sector has a [scarlet]high enemy threat level[].\nLaunching to such sectors is [accent]not recommended[] without proper technology and preparation.
hint.coreIncinerate = After the core is filled to capacity with an item, any extra items of that type it receives will be [accent]incinerated[]. hint.coreIncinerate = After the core is filled to capacity with an item, any extra items of that type it receives will be [accent]incinerated[].
hint.factoryControl = To set a unit factory's [accent]output destination[], click a factory block while in command mode, then right-click a location.\nUnits produced by it will automatically move there. hint.factoryControl = To set a unit factory's [accent]output destination[], click a factory block while in command mode, then right-click a location.\nUnits produced by it will automatically move there.
hint.factoryControl.mobile = To set a unit factory's [accent]output destination[], tap a factory block while in command mode, then tap a location.\nUnits produced by it will automatically move there. hint.factoryControl.mobile = To set a unit factory's [accent]output destination[], tap a factory block while in command mode, then tap a location.\nUnits produced by it will automatically move there.
gz.mine = Move near the \uf8c4 [accent]copper ore[] on the ground and click to begin mining. gz.mine = Move near the \uF8C4 [accent]copper ore[] on the ground and click to begin mining.
gz.mine.mobile = Move near the \uf8c4 [accent]copper ore[] on the ground and tap it to begin mining. gz.mine.mobile = Move near the \uF8C4 [accent]copper ore[] on the ground and tap it to begin mining.
gz.research = Open the \ue875 tech tree.\nResearch the \uf870 [accent]Mechanical Drill[], then select it from the menu in the bottom right.\nClick on a copper patch to place it. gz.research = Open the \uE875 tech tree.\nResearch the \uF870 [accent]Mechanical Drill[], then select it from the menu in the bottom right.\nClick on a copper patch to place it.
gz.research.mobile = Open the \ue875 tech tree.\nResearch the \uf870 [accent]Mechanical Drill[], then select it from the menu in the bottom right.\nTap on a copper patch to place it.\n\nPress the \uE800 [accent]checkmark[] at the bottom right to confirm. gz.research.mobile = Open the \uE875 tech tree.\nResearch the \uF870 [accent]Mechanical Drill[], then select it from the menu in the bottom right.\nTap on a copper patch to place it.\n\nPress the \uE800 [accent]checkmark[] at the bottom right to confirm.
gz.conveyors = Research and place \uf896 [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nClick and drag to place multiple conveyors.\n[accent]Scroll[] to rotate. gz.conveyors = Research and place \uF896 [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nClick and drag to place multiple conveyors.\n[accent]Scroll[] to rotate.
gz.conveyors.mobile = Research and place \uf896 [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nHold down your finger for a second and drag to place multiple conveyors. gz.conveyors.mobile = Research and place \uF896 [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nHold down your finger for a second and drag to place multiple conveyors.
gz.drills = Expand the mining operation.\nPlace more Mechanical Drills.\nMine 100 copper. gz.drills = Expand the mining operation.\nPlace more Mechanical Drills.\nMine 100 copper.
gz.lead = \uf837 [accent]Lead[] is another commonly used resource.\nSet up drills to mine lead. gz.lead = \uF837 [accent]Lead[] is another commonly used resource.\nSet up drills to mine lead.
gz.moveup = \ue804 Move up for further objectives. gz.moveup = \uE804 Move up for further objectives.
gz.turrets = Research and place 2 \uf861 [accent]Duo[] turrets to defend the core.\nDuo turrets require \uf838 [accent]ammo[] from conveyors. gz.turrets = Research and place 2 \uF861 [accent]Duo[] turrets to defend the core.\nDuo turrets require \uF838 [accent]ammo[] from conveyors.
gz.duoammo = Supply the Duo turrets with [accent]copper[], using conveyors. gz.duoammo = Supply the Duo turrets with [accent]copper[], using conveyors.
gz.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace \uf8ae [accent]copper walls[] around the turrets. gz.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace \uF8AE [accent]copper walls[] around the turrets.
gz.defend = Enemy incoming, prepare to defend. gz.defend = Enemy incoming, prepare to defend.
gz.aa = Flying units cannot easily be dispatched with standard turrets.\n\uf860 [accent]Scatter[] turrets provide excellent anti-air, but require \uf837 [accent]lead[] as ammo. gz.aa = Flying units cannot easily be dispatched with standard turrets.\n\uF860 [accent]Scatter[] turrets provide excellent anti-air, but require \uF837 [accent]lead[] as ammo.
gz.scatterammo = Supply the Scatter turret with \uf837 [accent]lead[], using conveyors. gz.scatterammo = Supply the Scatter turret with \uF837 [accent]lead[], using conveyors.
gz.supplyturret = [accent]Supply Turret gz.supplyturret = [accent]Supply Turret
gz.zone1 = This is the enemy drop zone. gz.zone1 = This is the enemy drop zone.
gz.zone2 = Anything built in the radius is destroyed when a wave starts. gz.zone2 = Anything built in the radius is destroyed when a wave starts.
gz.zone3 = A wave will begin now.\nGet ready. gz.zone3 = A wave will begin now.\nGet ready.
gz.finish = Build more turrets, mine more resources,\nand defend against all the waves to [accent]capture the sector[]. gz.finish = Build more turrets, mine more resources,\nand defend against all the waves to [accent]capture the sector[].
onset.mine = Click to mine \uf748 [accent]beryllium[] from walls.\n\nUse [accent][[WASD] to move. onset.mine = Click to mine \uF748 [accent]beryllium[] from walls.\n\nUse [accent][[WASD] to move.
onset.mine.mobile = Tap to mine \uf748 [accent]beryllium[] from walls. onset.mine.mobile = Tap to mine \uF748 [accent]beryllium[] from walls.
onset.research = Open the \ue875 tech tree.\nResearch, then place a \uf73e [accent]turbine condenser[] on the vent.\nThis will generate [accent]power[]. onset.research = Open the \uE875 tech tree.\nResearch, then place a \uF73E [accent]turbine condenser[] on the vent.\nThis will generate [accent]power[].
onset.bore = Research and place a \uf741 [accent]plasma bore[].\nThis automatically mines resources from walls. onset.bore = Research and place a \uF741 [accent]plasma bore[].\nThis automatically mines resources from walls.
onset.power = To [accent]power[] the plasma bore, research and place a \uf73d [accent]beam node[].\nConnect the turbine condenser to the plasma bore. onset.power = To [accent]power[] the plasma bore, research and place a \uF73D [accent]beam node[].\nConnect the turbine condenser to the plasma bore.
onset.ducts = Research and place \uf799 [accent]ducts[] to move the mined resources from the plasma bore to the core.\nClick and drag to place multiple ducts.\n[accent]Scroll[] to rotate. onset.ducts = Research and place \uF799 [accent]ducts[] to move the mined resources from the plasma bore to the core.\nClick and drag to place multiple ducts.\n[accent]Scroll[] to rotate.
onset.ducts.mobile = Research and place \uf799 [accent]ducts[] to move the mined resources from the plasma bore to the core.\n\nHold down your finger for a second and drag to place multiple ducts. onset.ducts.mobile = Research and place \uF799 [accent]ducts[] to move the mined resources from the plasma bore to the core.\n\nHold down your finger for a second and drag to place multiple ducts.
onset.moremine = Expand the mining operation.\nPlace more Plasma Bores and use beam nodes and ducts to support them.\nMine 200 beryllium. onset.moremine = Expand the mining operation.\nPlace more Plasma Bores and use beam nodes and ducts to support them.\nMine 200 beryllium.
onset.graphite = More complex blocks require \uf835 [accent]graphite[].\nSet up plasma bores to mine graphite. onset.graphite = More complex blocks require \uF835 [accent]graphite[].\nSet up plasma bores to mine graphite.
onset.research2 = Begin researching [accent]factories[].\nResearch the \uf74d [accent]cliff crusher[] and \uf779 [accent]silicon arc furnace[]. onset.research2 = Begin researching [accent]factories[].\nResearch the \uF74D [accent]cliff crusher[] and \uF779 [accent]silicon arc furnace[].
onset.arcfurnace = The arc furnace needs \uf834 [accent]sand[] and \uf835 [accent]graphite[] to create \uf82f [accent]silicon[].\n[accent]Power[] is also required. onset.arcfurnace = The arc furnace needs \uF834 [accent]sand[] and \uF835 [accent]graphite[] to create \uF82F [accent]silicon[].\n[accent]Power[] is also required.
onset.crusher = Use \uf74d [accent]cliff crushers[] to mine sand. onset.crusher = Use \uF74D [accent]cliff crushers[] to mine sand.
onset.fabricator = Use [accent]units[] to explore the map, defend buildings, and attack the enemy. Research and place a \uf6a2 [accent]tank fabricator[]. onset.fabricator = Use [accent]units[] to explore the map, defend buildings, and attack the enemy. Research and place a \uF6A2 [accent]tank fabricator[].
onset.makeunit = Produce a unit.\nUse the "?" button to see selected factory requirements. onset.makeunit = Produce a unit.\nUse the "?" button to see selected factory requirements.
onset.turrets = Units are effective, but [accent]turrets[] provide better defensive capabilities if used effectively.\nPlace a \uf6eb [accent]Breach[] turret.\nTurrets require \uf748 [accent]ammo[]. onset.turrets = Units are effective, but [accent]turrets[] provide better defensive capabilities if used effectively.\nPlace a \uF6EB [accent]Breach[] turret.\nTurrets require \uF748 [accent]ammo[].
onset.turretammo = Supply the turret with [accent]beryllium ammo.[] onset.turretammo = Supply the turret with [accent]beryllium ammo.[]
onset.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace some \uf6ee [accent]beryllium walls[] around the turret. onset.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace some \uF6EE [accent]beryllium walls[] around the turret.
onset.enemies = Enemy incoming, prepare to defend. onset.enemies = Enemy incoming, prepare to defend.
onset.attack = The enemy is vulnerable. Counter-attack. onset.attack = The enemy is vulnerable. Counter-attack.
onset.cores = New cores can be placed on [accent]core tiles[].\nNew cores function as forward bases and share a resource inventory with other cores.\nPlace a \uf725 core. onset.cores = New cores can be placed on [accent]core tiles[].\nNew cores function as forward bases and share a resource inventory with other cores.\nPlace a \uF725 core.
onset.detect = The enemy will be able to detect you in 2 minutes.\nSet up defenses, mining, and production. onset.detect = The enemy will be able to detect you in 2 minutes.\nSet up defenses, mining, and production.
split.pickup = Some blocks can be picked up by the core unit.\nPick up this [accent]container[] and place it onto the [accent]payload loader[].\n(Default keys are [[ and ] to pick up and drop) split.pickup = Some blocks can be picked up by the core unit.\nPick up this [accent]container[] and place it onto the [accent]payload loader[].\n(Default keys are [[ and ] to pick up and drop)
@@ -2233,6 +2236,7 @@ lst.flushmessage = Display a message on the screen from the text buffer.\nWill w
lst.cutscene = Manipulate the player camera. lst.cutscene = Manipulate the player camera.
lst.setflag = Set a global flag that can be read by all processors. lst.setflag = Set a global flag that can be read by all processors.
lst.getflag = Check if a global flag is set. lst.getflag = Check if a global flag is set.
lst.setprop = Sets a property of a unit or building.
logic.nounitbuild = [red]Unit building logic is not allowed here. logic.nounitbuild = [red]Unit building logic is not allowed here.

File diff suppressed because it is too large Load Diff

View File

@@ -886,6 +886,7 @@ stat.repairspeed = Repair Speed
stat.weapons = Оръжия stat.weapons = Оръжия
stat.bullet = Муниции stat.bullet = Муниции
stat.moduletier = Module Tier stat.moduletier = Module Tier
stat.unittype = Unit Type
stat.speedincrease = Ускорение stat.speedincrease = Ускорение
stat.range = Обхват stat.range = Обхват
stat.drilltier = Изкопаеми ресурси stat.drilltier = Изкопаеми ресурси
@@ -979,6 +980,8 @@ bullet.splashdamage = [stat]{0}[lightgray] щети на площ ~[stat] {1}[li
bullet.incendiary = [stat]Подпалване bullet.incendiary = [stat]Подпалване
bullet.homing = [stat]Самонасочване bullet.homing = [stat]Самонасочване
bullet.armorpierce = [stat]armor piercing bullet.armorpierce = [stat]armor piercing
bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
bullet.frags = [stat]{0}[lightgray]x frag bullets: bullet.frags = [stat]{0}[lightgray]x frag bullets:
bullet.lightning = [stat]{0}[lightgray]x светкавица ~ [stat]{1}[lightgray] щети bullet.lightning = [stat]{0}[lightgray]x светкавица ~ [stat]{1}[lightgray] щети
bullet.buildingdamage = [stat]{0}%[lightgray] щети на сгради bullet.buildingdamage = [stat]{0}%[lightgray] щети на сгради
@@ -1092,8 +1095,8 @@ setting.bridgeopacity.name = Плътност на Мостовете
setting.playerchat.name = Показвай Мехурчета с Чат setting.playerchat.name = Показвай Мехурчета с Чат
setting.showweather.name = Показвай Графики за Климата setting.showweather.name = Показвай Графики за Климата
setting.hidedisplays.name = Hide Logic Displays setting.hidedisplays.name = Hide Logic Displays
public.confirm = Искате ли да направите вашата игра публична?\n[accent]Всеки ще може да се присъедини към вашата игра.\n[lightgray]Това може да бъде променено по-късно в Настройки->Игри->Видимост на Публичните Игри. steam.friendsonly = Friends Only
public.confirm.really = Ако искате да играете с приятел, използвате [green]Покани Приятел[] вместо [scarlet]Публикувай Сървър[]!\nСигурни ли сте, че искате да направите вашата игра [scarlet]публична[]? steam.friendsonly.tooltip = Whether only Steam friends will be able to join your game.\nUnchecking this box will make your game public - anyone can join.
public.beta = Имайте в предвид, че бета версии на играта не могат да стартират публични игри. public.beta = Имайте в предвид, че бета версии на играта не могат да стартират публични игри.
uiscale.reset = Размерът на интерфейса беше променен.\nНатиснете "ОК" за да потвърдите този размер.\n[scarlet]Възстановяване и рестартиране след[accent] {0}[] секунди... uiscale.reset = Размерът на интерфейса беше променен.\nНатиснете "ОК" за да потвърдите този размер.\n[scarlet]Възстановяване и рестартиране след[accent] {0}[] секунди...
uiscale.cancel = Отакз & Изход uiscale.cancel = Отакз & Изход
@@ -1145,8 +1148,8 @@ keybind.select.name = Избери/Стреляй
keybind.diagonal_placement.name = Диагонално Поставяне keybind.diagonal_placement.name = Диагонално Поставяне
keybind.pick.name = Вземи Блок keybind.pick.name = Вземи Блок
keybind.break_block.name = Унищожи Блок keybind.break_block.name = Унищожи Блок
keybind.select_all_units = Select All Units keybind.select_all_units.name = Select All Units
keybind.select_all_unit_factories = Select All Unit Factories keybind.select_all_unit_factories.name = Select All Unit Factories
keybind.deselect.name = Премахни избора keybind.deselect.name = Премахни избора
keybind.pickupCargo.name = Вземи Товар keybind.pickupCargo.name = Вземи Товар
keybind.dropCargo.name = Остави Товар keybind.dropCargo.name = Остави Товар
@@ -2200,6 +2203,7 @@ lst.flushmessage = Display a message on the screen from the text buffer.\nWill w
lst.cutscene = Manipulate the player camera. lst.cutscene = Manipulate the player camera.
lst.setflag = Set a global flag that can be read by all processors. lst.setflag = Set a global flag that can be read by all processors.
lst.getflag = Check if a global flag is set. lst.getflag = Check if a global flag is set.
lst.setprop = Sets a property of a unit or building.
logic.nounitbuild = [red]Действия за строене на единици не са позволени тук. logic.nounitbuild = [red]Действия за строене на единици не са позволени тук.

View File

@@ -101,7 +101,7 @@ database = Base de dades del nucli
database.button = Base de dades database.button = Base de dades
savegame = Desa la partida savegame = Desa la partida
loadgame = Carrega una partida loadgame = Carrega una partida
joingame = Unir-se a una partida joingame = Uneix-me a una partida
customgame = Partida personalitzada customgame = Partida personalitzada
newgame = Partida nova newgame = Partida nova
none = <cap> none = <cap>
@@ -149,15 +149,15 @@ mod.incompatiblemod = [red]Incompatible
mod.blacklisted = [red]Unsupported mod.blacklisted = [red]Unsupported
mod.unmetdependencies = [red]Depèndencies sense resoldre mod.unmetdependencies = [red]Depèndencies sense resoldre
mod.erroredcontent = [scarlet]Errors del contingut mod.erroredcontent = [scarlet]Errors del contingut
mod.circulardependencies = [red]Circular Dependencies mod.circulardependencies = [red]Dependències circulars
mod.incompletedependencies = [red]Incomplete Dependencies mod.incompletedependencies = [red]Dependències incompletes
mod.requiresversion.details = Requereix la versió: [accent]{0}[]\nCal actualitzar la vostra versió del joc. El mod necessita una versió nova (potser una distribució alfa o beta) per a funcionar. mod.requiresversion.details = Requereix la versió: [accent]{0}[]\nCal actualitzar la vostra versió del joc. El mod necessita una versió nova (potser una distribució alfa o beta) per a funcionar.
mod.outdatedv7.details = Aquest mod és incompatible amb lúltima versió del joc. Lautor lha dactualitzar i afegir [accent]minGameVersion: 136[] al seu fitxer [accent]mod.json[]. mod.outdatedv7.details = Aquest mod és incompatible amb lúltima versió del joc. Lautor lha dactualitzar i afegir [accent]minGameVersion: 136[] al seu fitxer [accent]mod.json[].
mod.blacklisted.details = Aquest mod sha afegit manualment a la llista negra perquè causa problemes amb aquesta versió del joc. No el feu servir. mod.blacklisted.details = Aquest mod sha afegit manualment a la llista negra perquè causa problemes amb aquesta versió del joc. No el feu servir.
mod.missingdependencies.details = A aquest mod li falten dependències: {0} mod.missingdependencies.details = A aquest mod li falten dependències: {0}
mod.erroredcontent.details = Aquesta partida ha causat errors mentre es carregava. Pregunteu a lautor del mod si pot arreglar-ho. mod.erroredcontent.details = Aquesta partida ha causat errors mentre es carregava. Pregunteu a lautor del mod si pot arreglar-ho.
mod.circulardependencies.details = This mod has dependencies that depends on each other. mod.circulardependencies.details = Aquest mod depèn dun segon mod que, al seu torn, depèn del mod anterior. No es permeten dependències circulars.
mod.incompletedependencies.details = This mod is unable to be loaded due to invalid or missing dependencies: {0}. mod.incompletedependencies.details = Aquest mod no es pot carregar perquè té una dependència no vàlida o que no es pot trobar: {0}.
mod.requiresversion = Cal la versió [red]{0}[] del joc. mod.requiresversion = Cal la versió [red]{0}[] del joc.
mod.errors = Shan produït errors quan es carregava el contingut. mod.errors = Shan produït errors quan es carregava el contingut.
mod.noerrorplay = [scarlet]Sexecuten mods amb errors.[] Desactiveu els mods afectats o arregleu les errades abans de jugar. mod.noerrorplay = [scarlet]Sexecuten mods amb errors.[] Desactiveu els mods afectats o arregleu les errades abans de jugar.
@@ -335,7 +335,7 @@ command.repair = Repara
command.rebuild = Reconstrueix command.rebuild = Reconstrueix
command.assist = Assisteix al jugador command.assist = Assisteix al jugador
command.move = Mou command.move = Mou
command.boost = Boost command.boost = Sobrevola
openlink = Obre lenllaç openlink = Obre lenllaç
copylink = Copia lenllaç copylink = Copia lenllaç
back = Enrere back = Enrere
@@ -890,6 +890,7 @@ stat.repairspeed = Velocitat de reparació
stat.weapons = Armes stat.weapons = Armes
stat.bullet = Bala stat.bullet = Bala
stat.moduletier = Nivell del mòdul stat.moduletier = Nivell del mòdul
stat.unittype = Unit Type
stat.speedincrease = Augment de velocitat stat.speedincrease = Augment de velocitat
stat.range = Abast stat.range = Abast
stat.drilltier = Perforables stat.drilltier = Perforables
@@ -983,6 +984,8 @@ bullet.splashdamage = [stat]{0}[lightgray] de dany a làrea ~[stat] {1}[light
bullet.incendiary = [stat]incendiari bullet.incendiary = [stat]incendiari
bullet.homing = [stat]munició guiada bullet.homing = [stat]munició guiada
bullet.armorpierce = [stat]perforador darmadures bullet.armorpierce = [stat]perforador darmadures
bullet.suppression = [stat]Supressió de reparacions cada {0} s[lightgray] ~ [stat]{1}[lightgray] caselles
bullet.interval = [stat]Interval de bales de {0}/s[lightgray]:
bullet.frags = [stat]{0}[lightgray]× de bales de fragmentació: bullet.frags = [stat]{0}[lightgray]× de bales de fragmentació:
bullet.lightning = [stat]{0}[lightgray]× llampec ~ [stat]{1}[lightgray] de dany bullet.lightning = [stat]{0}[lightgray]× llampec ~ [stat]{1}[lightgray] de dany
bullet.buildingdamage = [stat]{0}%[lightgray] de dany a les estructures bullet.buildingdamage = [stat]{0}%[lightgray] de dany a les estructures
@@ -1096,8 +1099,8 @@ setting.bridgeopacity.name = Opacitat de cintes i canonades subterrànies
setting.playerchat.name = Mostra el xat bombolla de jugadors setting.playerchat.name = Mostra el xat bombolla de jugadors
setting.showweather.name = Mostra lestat meteorològic setting.showweather.name = Mostra lestat meteorològic
setting.hidedisplays.name = Amaga els monitors lògics setting.hidedisplays.name = Amaga els monitors lògics
public.confirm = Voleu que la vostra partida sigui pública?\n[accent]Qualsevol jugador shi podrà unir.\n[lightgray]Després es pot canviar a Configuració→Partida→Visibilitat de la partida pública. steam.friendsonly = Només amics
public.confirm.really = Si voleu jugar amb els vostres amics, feu servir [green]Invita un amic[] en lloc demprar un [scarlet]servidor públic[]!\nEsteu segur que voleu que la partida sigui [scarlet]pública[]? steam.friendsonly.tooltip = Indica si només els amics de Steam podran unir-se a la vostra partida.\nSi no es selecciona aquesta opció, la vostra partida serà pública i shi podrà unir qualsevol jugador.
public.beta = Tingueu en compte que les versions beta no disposen de sales despera. public.beta = Tingueu en compte que les versions beta no disposen de sales despera.
uiscale.reset = Lescala de la interfície ha canviat.\nPremeu «Dacord» per a confirmar-ho.\n[scarlet]Es revertiran els canvis en [accent]{0}[] segons. uiscale.reset = Lescala de la interfície ha canviat.\nPremeu «Dacord» per a confirmar-ho.\n[scarlet]Es revertiran els canvis en [accent]{0}[] segons.
uiscale.cancel = Cancel·la i surt uiscale.cancel = Cancel·la i surt
@@ -1149,8 +1152,8 @@ keybind.select.name = Selecciona/Dispara
keybind.diagonal_placement.name = Construcció diagonal keybind.diagonal_placement.name = Construcció diagonal
keybind.pick.name = Selecciona un tipus de bloc des del mapa keybind.pick.name = Selecciona un tipus de bloc des del mapa
keybind.break_block.name = Desmunta un bloc keybind.break_block.name = Desmunta un bloc
keybind.select_all_units = Selecciona totes les unitats keybind.select_all_units.name = Selecciona totes les unitats
keybind.select_all_unit_factories = Selecciona totes les unitats fabricadores keybind.select_all_unit_factories.name = Selecciona totes les unitats fabricadores
keybind.deselect.name = Cancel·la la selecció keybind.deselect.name = Cancel·la la selecció
keybind.pickupCargo.name = Recull càrrega keybind.pickupCargo.name = Recull càrrega
keybind.dropCargo.name = Deixa la càrrega keybind.dropCargo.name = Deixa la càrrega
@@ -1465,7 +1468,7 @@ block.distributor.name = Distrïbudor
block.sorter.name = Classificador block.sorter.name = Classificador
block.inverted-sorter.name = Classificador invers block.inverted-sorter.name = Classificador invers
block.message.name = Missatge block.message.name = Missatge
block.reinforced-message.name = Missatge reforçat block.reinforced-message.name = Missatge destacat
block.world-message.name = Missatge mundial block.world-message.name = Missatge mundial
block.illuminator.name = Il·luminador block.illuminator.name = Il·luminador
block.overflow-gate.name = Porta de desbordament block.overflow-gate.name = Porta de desbordament
@@ -1877,7 +1880,7 @@ liquid.neoplasm.details = Neoplasma. Una massa incontrolable de cèl·lules sint
block.derelict = \uf77e [lightgray]En ruïnes block.derelict = \uf77e [lightgray]En ruïnes
block.armored-conveyor.description = Mou objectes. Pels laterals només accepta entrades des daltres cintes transportadores. block.armored-conveyor.description = Mou objectes. Pels laterals només accepta entrades des daltres cintes transportadores.
block.illuminator.description = Emet llum. block.illuminator.description = Emet llum.
block.message.description = Emmagatzema un missatge. Els aliats ho poden fer servir per a comunicar-se. block.message.description = Emmagatzema un missatge. Els aliats el poden fer servir per a comunicar-se.
block.reinforced-message.description = Emmagatzema un missatge que serveix per a què els aliats es puguin comunicar. block.reinforced-message.description = Emmagatzema un missatge que serveix per a què els aliats es puguin comunicar.
block.world-message.description = Un bloc de missatge que es far servir per a fer mapes. No es pot destruir. block.world-message.description = Un bloc de missatge que es far servir per a fer mapes. No es pot destruir.
block.graphite-press.description = Comprimeix carbó fins obtenir-ne grafit. block.graphite-press.description = Comprimeix carbó fins obtenir-ne grafit.
@@ -2211,6 +2214,7 @@ lst.flushmessage = Mostra un missatge a la pantalla a partir dels continguts de
lst.cutscene = Manipula la càmera del jugador. lst.cutscene = Manipula la càmera del jugador.
lst.setflag = Estableix un senyal global que es podrà llegir en tots els processadors. lst.setflag = Estableix un senyal global que es podrà llegir en tots els processadors.
lst.getflag = Obtén un senyal global. lst.getflag = Obtén un senyal global.
lst.setprop = Estableix una propietat duna unitat o estructura.
logic.nounitbuild = [red]Aquí no es permet construir blocs de tipus lògic. logic.nounitbuild = [red]Aquí no es permet construir blocs de tipus lògic.

View File

@@ -888,6 +888,7 @@ stat.repairspeed = Rychlost Opravy
stat.weapons = Zbraně stat.weapons = Zbraně
stat.bullet = Střela stat.bullet = Střela
stat.moduletier = Module Tier stat.moduletier = Module Tier
stat.unittype = Unit Type
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
@@ -981,6 +982,8 @@ bullet.splashdamage = [stat]{0}[lightgray] plošného poškození ~[stat] {1}[li
bullet.incendiary = [stat]zápalný bullet.incendiary = [stat]zápalný
bullet.homing = [stat]samonaváděcí bullet.homing = [stat]samonaváděcí
bullet.armorpierce = [stat]armor piercing bullet.armorpierce = [stat]armor piercing
bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
bullet.frags = [stat]{0}[lightgray]x frag střel: bullet.frags = [stat]{0}[lightgray]x frag střel:
bullet.lightning = [stat]{0}[lightgray]x jiskření ~ [stat]{1}[lightgray] poškození bullet.lightning = [stat]{0}[lightgray]x jiskření ~ [stat]{1}[lightgray] poškození
bullet.buildingdamage = [stat]{0}%[lightgray] poškození budov bullet.buildingdamage = [stat]{0}%[lightgray] poškození budov
@@ -1094,8 +1097,8 @@ setting.bridgeopacity.name = Průsvitnost přemostění
setting.playerchat.name = Zobrazit bublinu se zprávami hráče setting.playerchat.name = Zobrazit bublinu se zprávami hráče
setting.showweather.name = Zobrazit Grafiku Počasí setting.showweather.name = Zobrazit Grafiku Počasí
setting.hidedisplays.name = Hide Logic Displays setting.hidedisplays.name = Hide Logic Displays
public.confirm = Chceš Tvoji hru zpřístupnit veřejnosti?\n[accent]Kdokoli se bude moci připojit ke tvé hře.[]\n[lightgray]Toto se dá později změnit v nabídce Volby->Hra->Veřejná viditelnost hry. steam.friendsonly = Friends Only
public.confirm.really = Pokud chceš hrát s přáteli, použij [green]Pozvat Přítele[] místo [scarlet]Zvěřejnit server[]!\nJseš si jist, že chceš udělat svou hru [scarlet]veřejnou[]? steam.friendsonly.tooltip = Whether only Steam friends will be able to join your game.\nUnchecking this box will make your game public - anyone can join.
public.beta = Poznámka: nevydané verze her nemůžou být veřejné. public.beta = Poznámka: nevydané verze her nemůžou být veřejné.
uiscale.reset = Škálování uživatelskho rozhraní se změnilo.\nZmáčkni "OK", abys potvrdil toto nastavení.\n[scarlet]Návrat k původním hodnotám proběhne za [accent]{0}[] vteřin...[] uiscale.reset = Škálování uživatelskho rozhraní se změnilo.\nZmáčkni "OK", abys potvrdil toto nastavení.\n[scarlet]Návrat k původním hodnotám proběhne za [accent]{0}[] vteřin...[]
uiscale.cancel = Ukončit a odejít uiscale.cancel = Ukončit a odejít
@@ -1147,8 +1150,8 @@ keybind.select.name = Vybrat/Střílet
keybind.diagonal_placement.name = Umisťovat úhlopříčně keybind.diagonal_placement.name = Umisťovat úhlopříčně
keybind.pick.name = Vybrat blok keybind.pick.name = Vybrat blok
keybind.break_block.name = Rozbít blok keybind.break_block.name = Rozbít blok
keybind.select_all_units = Select All Units keybind.select_all_units.name = Select All Units
keybind.select_all_unit_factories = Select All Unit Factories keybind.select_all_unit_factories.name = Select All Unit Factories
keybind.deselect.name = Odznačit keybind.deselect.name = Odznačit
keybind.pickupCargo.name = Vyzvednout náklad keybind.pickupCargo.name = Vyzvednout náklad
keybind.dropCargo.name = Položit náklad keybind.dropCargo.name = Položit náklad
@@ -2205,6 +2208,7 @@ lst.flushmessage = Display a message on the screen from the text buffer.\nWill w
lst.cutscene = Manipulate the player camera. lst.cutscene = Manipulate the player camera.
lst.setflag = Set a global flag that can be read by all processors. lst.setflag = Set a global flag that can be read by all processors.
lst.getflag = Check if a global flag is set. lst.getflag = Check if a global flag is set.
lst.setprop = Sets a property of a unit or building.
logic.nounitbuild = [red]Stavba budov pomoci jednotek kontrolované procesorem neni povolené. logic.nounitbuild = [red]Stavba budov pomoci jednotek kontrolované procesorem neni povolené.

View File

@@ -876,6 +876,7 @@ stat.repairspeed = Repair Speed
stat.weapons = Weapons stat.weapons = Weapons
stat.bullet = Bullet stat.bullet = Bullet
stat.moduletier = Module Tier stat.moduletier = Module Tier
stat.unittype = Unit Type
stat.speedincrease = Hastigheds-forøgelse stat.speedincrease = Hastigheds-forøgelse
stat.range = Rækkevidde stat.range = Rækkevidde
stat.drilltier = Kan bores stat.drilltier = Kan bores
@@ -969,6 +970,8 @@ bullet.splashdamage = [stat]{0}[lightgray] områdeskade ~[stat] {1}[lightgray] f
bullet.incendiary = [stat]brændfarlig bullet.incendiary = [stat]brændfarlig
bullet.homing = [stat]målsøgende bullet.homing = [stat]målsøgende
bullet.armorpierce = [stat]armor piercing bullet.armorpierce = [stat]armor piercing
bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
bullet.frags = [stat]{0}[lightgray]x frag bullets: bullet.frags = [stat]{0}[lightgray]x frag bullets:
bullet.lightning = [stat]{0}[lightgray]x lightning ~ [stat]{1}[lightgray] damage bullet.lightning = [stat]{0}[lightgray]x lightning ~ [stat]{1}[lightgray] damage
bullet.buildingdamage = [stat]{0}%[lightgray] building damage bullet.buildingdamage = [stat]{0}%[lightgray] building damage
@@ -1082,8 +1085,8 @@ setting.bridgeopacity.name = Bro-gennemsigtighed
setting.playerchat.name = Vis spillers bobbel-chat setting.playerchat.name = Vis spillers bobbel-chat
setting.showweather.name = Show Weather Graphics setting.showweather.name = Show Weather Graphics
setting.hidedisplays.name = Hide Logic Displays setting.hidedisplays.name = Hide Logic Displays
public.confirm = Vil du gøre dit spil offentligt?\n[accent]Alle og enhver vil kunne tilslutte.\n[lightgray]Dette kan ændres senere i Indstillinger->Spil->Synlighed af offentlige spil. steam.friendsonly = Friends Only
public.confirm.really = If you want to play with friends, use [green]Invite Friend[] instead of a [scarlet]Public server[]!\nAre you sure you want to make your game [scarlet]public[]? steam.friendsonly.tooltip = Whether only Steam friends will be able to join your game.\nUnchecking this box will make your game public - anyone can join.
public.beta = Bemærk at beta-versioner af spillet ikke kan tilslutte sig offentlige spil. public.beta = Bemærk at beta-versioner af spillet ikke kan tilslutte sig offentlige spil.
uiscale.reset = UI-størrelsen har ændret sig.\nTryk "OK" for at bekræfte størrelsen.\n[scarlet]Omgør og afslutter om[accent] {0}[] sekunder... uiscale.reset = UI-størrelsen har ændret sig.\nTryk "OK" for at bekræfte størrelsen.\n[scarlet]Omgør og afslutter om[accent] {0}[] sekunder...
uiscale.cancel = Afblæs & Afslut uiscale.cancel = Afblæs & Afslut
@@ -1135,8 +1138,8 @@ keybind.select.name = Vælg/Skyd
keybind.diagonal_placement.name = Diagonal placering keybind.diagonal_placement.name = Diagonal placering
keybind.pick.name = Tag blok keybind.pick.name = Tag blok
keybind.break_block.name = Ødelæg blok keybind.break_block.name = Ødelæg blok
keybind.select_all_units = Select All Units keybind.select_all_units.name = Select All Units
keybind.select_all_unit_factories = Select All Unit Factories keybind.select_all_unit_factories.name = Select All Unit Factories
keybind.deselect.name = Fravælg keybind.deselect.name = Fravælg
keybind.pickupCargo.name = Saml last op keybind.pickupCargo.name = Saml last op
keybind.dropCargo.name = Smid last keybind.dropCargo.name = Smid last
@@ -2185,6 +2188,7 @@ lst.flushmessage = Display a message on the screen from the text buffer.\nWill w
lst.cutscene = Manipulate the player camera. lst.cutscene = Manipulate the player camera.
lst.setflag = Set a global flag that can be read by all processors. lst.setflag = Set a global flag that can be read by all processors.
lst.getflag = Check if a global flag is set. lst.getflag = Check if a global flag is set.
lst.setprop = Sets a property of a unit or building.
logic.nounitbuild = [red]Unit building logic is not allowed here. logic.nounitbuild = [red]Unit building logic is not allowed here.
lenum.type = Type of building/unit.\ne.g. for any router, this will return [accent]@router[].\nNot a string. lenum.type = Type of building/unit.\ne.g. for any router, this will return [accent]@router[].\nNot a string.
lenum.shoot = Shoot at a position. lenum.shoot = Shoot at a position.

View File

@@ -899,6 +899,7 @@ stat.repairspeed = Heilungsgeschwindigkeit
stat.weapons = Waffen stat.weapons = Waffen
stat.bullet = Geschoss stat.bullet = Geschoss
stat.moduletier = Modulstufe stat.moduletier = Modulstufe
stat.unittype = Unit Type
stat.speedincrease = Geschwindigkeitserhöhung stat.speedincrease = Geschwindigkeitserhöhung
stat.range = Reichweite stat.range = Reichweite
stat.drilltier = Abbaubare Erze stat.drilltier = Abbaubare Erze
@@ -992,6 +993,8 @@ bullet.splashdamage = [stat]{0}[lightgray] Flächenschaden ~[stat] {1}[lightgray
bullet.incendiary = [stat]entzündend bullet.incendiary = [stat]entzündend
bullet.homing = [stat]zielsuchend bullet.homing = [stat]zielsuchend
bullet.armorpierce = [stat]panzerbrechend bullet.armorpierce = [stat]panzerbrechend
bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
bullet.frags = [stat]{0}[lightgray]x Splittergeschosse: bullet.frags = [stat]{0}[lightgray]x Splittergeschosse:
bullet.lightning = [stat]{0}[lightgray]x Blitz ~ [stat]{1}[lightgray] Schaden bullet.lightning = [stat]{0}[lightgray]x Blitz ~ [stat]{1}[lightgray] Schaden
bullet.buildingdamage = [stat]{0}%[lightgray]Blockschaden bullet.buildingdamage = [stat]{0}%[lightgray]Blockschaden
@@ -1105,8 +1108,8 @@ setting.bridgeopacity.name = Brücken-Deckkraft
setting.playerchat.name = Chat im Spiel anzeigen setting.playerchat.name = Chat im Spiel anzeigen
setting.showweather.name = Wetter anzeigen setting.showweather.name = Wetter anzeigen
setting.hidedisplays.name = Logik-Bildschirme verdecken setting.hidedisplays.name = Logik-Bildschirme verdecken
public.confirm = Willst du dein Spiel öffentlich zugänglich machen?\n[accent]Jeder kann deinem Spiel beitreten.\n[lightgray]Dies kann später in den Einstellungen->Spiel->Öffentliches Spiel geändert werden. steam.friendsonly = Friends Only
public.confirm.really = Wenn du mit Freunden spielen willst, drücke [green]Freunde einladen[] statt einen [scarlet]öffentlichen Server[] zu erstellen!\nBist du dir sicher, dass du dein Spiel [scarlet]öffentlich[] machen möchtest? steam.friendsonly.tooltip = Whether only Steam friends will be able to join your game.\nUnchecking this box will make your game public - anyone can join.
public.beta = Bemerke: Beta-Versionen des Spiels können keine öffentlichen Spiele machen. public.beta = Bemerke: Beta-Versionen des Spiels können keine öffentlichen Spiele machen.
uiscale.reset = UI-Skalierung wurde geändert.\nDrücke "OK", um diese Skalierung zu bestätigen.\n[scarlet]Zurückkehren und Beenden in[accent] {0}[] Einstellungen... uiscale.reset = UI-Skalierung wurde geändert.\nDrücke "OK", um diese Skalierung zu bestätigen.\n[scarlet]Zurückkehren und Beenden in[accent] {0}[] Einstellungen...
uiscale.cancel = Abbrechen & Beenden uiscale.cancel = Abbrechen & Beenden
@@ -1158,8 +1161,8 @@ keybind.select.name = Auswählen/Schießen
keybind.diagonal_placement.name = Diagonal platzieren keybind.diagonal_placement.name = Diagonal platzieren
keybind.pick.name = Block auswählen keybind.pick.name = Block auswählen
keybind.break_block.name = Block zerstören keybind.break_block.name = Block zerstören
keybind.select_all_units = Alle Einheiten auswählen keybind.select_all_units.name = Alle Einheiten auswählen
keybind.select_all_unit_factories = Alle Einheitenfabriken auswählen keybind.select_all_unit_factories.name = Alle Einheitenfabriken auswählen
keybind.deselect.name = Auswahl aufheben keybind.deselect.name = Auswahl aufheben
keybind.pickupCargo.name = Block aufheben keybind.pickupCargo.name = Block aufheben
keybind.dropCargo.name = Block fallen lassen keybind.dropCargo.name = Block fallen lassen
@@ -1952,7 +1955,7 @@ block.inverted-sorter.description = Wie ein normaler Sortierer, aber gibt das au
block.router.description = Verteilt Materialien auf bis zu drei Richtungen. block.router.description = Verteilt Materialien auf bis zu drei Richtungen.
block.router.details = Ein nötiges Übel. Es ist nicht empfehlenswert, ihn neben Fabriken zu setzen, da er sich dort verstopfen kann. block.router.details = Ein nötiges Übel. Es ist nicht empfehlenswert, ihn neben Fabriken zu setzen, da er sich dort verstopfen kann.
block.distributor.description = Verteilt Materialien auf bis zu sieben Richtungen. block.distributor.description = Verteilt Materialien auf bis zu sieben Richtungen.
block.overflow-gate.description = Gibt Materialien nur zu den Seiten heraus, wenn der fordere Ausgang blockiert ist. block.overflow-gate.description = Gibt Materialien nur zu den Seiten heraus, wenn der vordere Ausgang blockiert ist.
block.underflow-gate.description = Das Gegenteil eines Überlauftors. Gibt Materialien nur nach vorne heraus, wenn die Seiten blockiert sind. block.underflow-gate.description = Das Gegenteil eines Überlauftors. Gibt Materialien nur nach vorne heraus, wenn die Seiten blockiert sind.
block.mass-driver.description = Ein Transportblock mit sehr hoher Reichweite. Sammelt mehrere Materialien und schießt sie zu einem verbundenen Massenbeschleuniger. block.mass-driver.description = Ein Transportblock mit sehr hoher Reichweite. Sammelt mehrere Materialien und schießt sie zu einem verbundenen Massenbeschleuniger.
block.mechanical-pump.description = Eine Pumpe, die keinen Strom benötigt. block.mechanical-pump.description = Eine Pumpe, die keinen Strom benötigt.
@@ -2098,7 +2101,7 @@ block.blast-door.description = Eine Mauer, die verbündete Bodeneinheiten durchl
block.duct.description = Bewegt Materialien vorwärts. Kann nur ein einziges Item lagern. block.duct.description = Bewegt Materialien vorwärts. Kann nur ein einziges Item lagern.
block.armored-duct.description = Bewegt Materialien vorwärts. Materialen können von der Seite nur aus Rohrleitugnen herein. block.armored-duct.description = Bewegt Materialien vorwärts. Materialen können von der Seite nur aus Rohrleitugnen herein.
block.duct-router.description = Verteilt Materialien gleichmäßig auf bis zu drei Richtungen. Nimmt Materialien nur aus einer Richtung an. Kann als Sortierer verwendet werden. block.duct-router.description = Verteilt Materialien gleichmäßig auf bis zu drei Richtungen. Nimmt Materialien nur aus einer Richtung an. Kann als Sortierer verwendet werden.
block.overflow-duct.description = Gibt Materialien nur zu den Seiten heraus, wenn der fordere Ausgang blockiert ist. block.overflow-duct.description = Gibt Materialien nur zu den Seiten heraus, wenn der vordere Ausgang blockiert ist.
block.duct-bridge.description = Transportierrt Materialen über Blöcke und Terrain. block.duct-bridge.description = Transportierrt Materialen über Blöcke und Terrain.
block.duct-unloader.description = Entlädt Materialen aus dem Block dahinter. Kann nicht aus Kernen entladen. block.duct-unloader.description = Entlädt Materialen aus dem Block dahinter. Kann nicht aus Kernen entladen.
block.underflow-duct.description = Das Gegenteil eines Überlauftors. Gibt Materialien nur nach vorne heraus, wenn die Seiten blockiert sind. block.underflow-duct.description = Das Gegenteil eines Überlauftors. Gibt Materialien nur nach vorne heraus, wenn die Seiten blockiert sind.
@@ -2233,6 +2236,7 @@ lst.flushmessage = Zeige eine Nachricht aus dem Textspeicher auf dem Bildschirm.
lst.cutscene = Verschiebe die Spielerkamera. lst.cutscene = Verschiebe die Spielerkamera.
lst.setflag = Setze eine Flag, die von allen Prozessoren gelesen werden kann. lst.setflag = Setze eine Flag, die von allen Prozessoren gelesen werden kann.
lst.getflag = Überprüfe, ob eine Flag gesetzt ist. lst.getflag = Überprüfe, ob eine Flag gesetzt ist.
lst.setprop = Sets a property of a unit or building.
logic.nounitbuild = [red]Logik, die Blöcke baut, ist hier nicht erlaubt. logic.nounitbuild = [red]Logik, die Blöcke baut, ist hier nicht erlaubt.

View File

@@ -896,6 +896,7 @@ stat.repairspeed = Velocidad de reparación
stat.weapons = Armas stat.weapons = Armas
stat.bullet = Proyectil stat.bullet = Proyectil
stat.moduletier = Categoría de módulo stat.moduletier = Categoría de módulo
stat.unittype = Unit Type
stat.speedincrease = Aumento de velocidad stat.speedincrease = Aumento de velocidad
stat.range = Alcance stat.range = Alcance
stat.drilltier = Taladrables stat.drilltier = Taladrables
@@ -989,6 +990,8 @@ bullet.splashdamage = [stat]{0}[lightgray] daño en área ~[stat] {1}[lightgray]
bullet.incendiary = [stat]incendiaria bullet.incendiary = [stat]incendiaria
bullet.homing = [stat]rastreadora bullet.homing = [stat]rastreadora
bullet.armorpierce = [stat]perforación de armadura bullet.armorpierce = [stat]perforación de armadura
bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
bullet.frags = [stat]{0}[lightgray]x proyectiles fragmentados: bullet.frags = [stat]{0}[lightgray]x proyectiles fragmentados:
bullet.lightning = [stat]{0}[lightgray]x rayos ~ [stat]{1}[lightgray] daño bullet.lightning = [stat]{0}[lightgray]x rayos ~ [stat]{1}[lightgray] daño
bullet.buildingdamage = [stat]{0}%[lightgray] daño a estructuras bullet.buildingdamage = [stat]{0}%[lightgray] daño a estructuras
@@ -1102,8 +1105,8 @@ setting.bridgeopacity.name = Opacidad de puentes
setting.playerchat.name = Mostrar chat de burbuja de jugadores setting.playerchat.name = Mostrar chat de burbuja de jugadores
setting.showweather.name = Efectos visuales climáticos setting.showweather.name = Efectos visuales climáticos
setting.hidedisplays.name = Ocultar monitores lógicos setting.hidedisplays.name = Ocultar monitores lógicos
public.confirm = ¿Quieres hacer pública tu partida?\n[lightgray]Esto se puede cambiar más tarde en "Configuración->Juego->Visibilidad pública de la partida". steam.friendsonly = Friends Only
public.confirm.really = ¡Si quieres jugar con amigos, usa [green]Invitar a Amigos[] en lugar de un [scarlet]Servidor Público[]!\n¿De verdad quieres hacer [scarlet]pública[] tu partida? steam.friendsonly.tooltip = Whether only Steam friends will be able to join your game.\nUnchecking this box will make your game public - anyone can join.
public.beta = Recuerda que no puedes crear partidas públicas en las versiones beta del juego. public.beta = Recuerda que no puedes crear partidas públicas en las versiones beta del juego.
uiscale.reset = La escala de interfaz ha sido modificada.\nPulsa "OK" para conservar esta escala.\n[scarlet]Se desharán los cambios automáticamente en [accent] {0}[] segundos... uiscale.reset = La escala de interfaz ha sido modificada.\nPulsa "OK" para conservar esta escala.\n[scarlet]Se desharán los cambios automáticamente en [accent] {0}[] segundos...
uiscale.cancel = Cancelar y salir uiscale.cancel = Cancelar y salir
@@ -1155,8 +1158,8 @@ keybind.select.name = Seleccionar/Disparar
keybind.diagonal_placement.name = Construcción diagonal keybind.diagonal_placement.name = Construcción diagonal
keybind.pick.name = Copiar bloque keybind.pick.name = Copiar bloque
keybind.break_block.name = Deconstruir bloque keybind.break_block.name = Deconstruir bloque
keybind.select_all_units = Seleccionar todas las unidades keybind.select_all_units.name = Seleccionar todas las unidades
keybind.select_all_unit_factories = Seleccionar todas las fábricas de unidades keybind.select_all_unit_factories.name = Seleccionar todas las fábricas de unidades
keybind.deselect.name = Deseleccionar keybind.deselect.name = Deseleccionar
keybind.pickupCargo.name = Cargar bloque/unidad keybind.pickupCargo.name = Cargar bloque/unidad
keybind.dropCargo.name = Soltar bloque/unidad keybind.dropCargo.name = Soltar bloque/unidad
@@ -2227,6 +2230,7 @@ lst.flushmessage = Muestra un mensaje en pantalla desde la lista de espera de te
lst.cutscene = Manipula la cámara del jugador. lst.cutscene = Manipula la cámara del jugador.
lst.setflag = Establece una etiqueta global que se puede leer desde todos los procesadores. lst.setflag = Establece una etiqueta global que se puede leer desde todos los procesadores.
lst.getflag = Comprueba si se ha establecido una etiqueta global. lst.getflag = Comprueba si se ha establecido una etiqueta global.
lst.setprop = Sets a property of a unit or building.
logic.nounitbuild = [red]No se permite construir bloques de categoría lógica. logic.nounitbuild = [red]No se permite construir bloques de categoría lógica.

View File

@@ -876,6 +876,7 @@ stat.repairspeed = Repair Speed
stat.weapons = Weapons stat.weapons = Weapons
stat.bullet = Bullet stat.bullet = Bullet
stat.moduletier = Module Tier stat.moduletier = Module Tier
stat.unittype = Unit Type
stat.speedincrease = Kiiruse suurenemine stat.speedincrease = Kiiruse suurenemine
stat.range = Ulatus stat.range = Ulatus
stat.drilltier = Kaevandatav stat.drilltier = Kaevandatav
@@ -969,6 +970,8 @@ bullet.splashdamage = [stat]{0}[lightgray] hävituspunkti ~[stat] {1}[lightgray]
bullet.incendiary = [stat]süttiv bullet.incendiary = [stat]süttiv
bullet.homing = [stat]isesihtiv bullet.homing = [stat]isesihtiv
bullet.armorpierce = [stat]armor piercing bullet.armorpierce = [stat]armor piercing
bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
bullet.frags = [stat]{0}[lightgray]x frag bullets: bullet.frags = [stat]{0}[lightgray]x frag bullets:
bullet.lightning = [stat]{0}[lightgray]x lightning ~ [stat]{1}[lightgray] damage bullet.lightning = [stat]{0}[lightgray]x lightning ~ [stat]{1}[lightgray] damage
bullet.buildingdamage = [stat]{0}%[lightgray] building damage bullet.buildingdamage = [stat]{0}%[lightgray] building damage
@@ -1082,8 +1085,8 @@ setting.bridgeopacity.name = Bridge Opacity
setting.playerchat.name = Näita mängusisest vestlusakent setting.playerchat.name = Näita mängusisest vestlusakent
setting.showweather.name = Show Weather Graphics setting.showweather.name = Show Weather Graphics
setting.hidedisplays.name = Hide Logic Displays setting.hidedisplays.name = Hide Logic Displays
public.confirm = Do you want to make your game public?\n[accent]Anyone will be able to join your games.\n[lightgray]This can be changed later in Settings->Game->Public Game Visibility. steam.friendsonly = Friends Only
public.confirm.really = If you want to play with friends, use [green]Invite Friend[] instead of a [scarlet]Public server[]!\nAre you sure you want to make your game [scarlet]public[]? steam.friendsonly.tooltip = Whether only Steam friends will be able to join your game.\nUnchecking this box will make your game public - anyone can join.
public.beta = Note that beta versions of the game cannot make public lobbies. public.beta = Note that beta versions of the game cannot make public lobbies.
uiscale.reset = Kasutajaliidese suurust on muudetud.\nVajuta nupule "OK", et uus suurus kinnitada.\n[scarlet]Esialgne suurus taastatakse[accent] {0}[] sekundi pärast... uiscale.reset = Kasutajaliidese suurust on muudetud.\nVajuta nupule "OK", et uus suurus kinnitada.\n[scarlet]Esialgne suurus taastatakse[accent] {0}[] sekundi pärast...
uiscale.cancel = Tühista ja välju uiscale.cancel = Tühista ja välju
@@ -1135,8 +1138,8 @@ keybind.select.name = Vali/Tulista
keybind.diagonal_placement.name = Diagonaalne paigutamine keybind.diagonal_placement.name = Diagonaalne paigutamine
keybind.pick.name = Vali blokk keybind.pick.name = Vali blokk
keybind.break_block.name = Hävita blokk keybind.break_block.name = Hävita blokk
keybind.select_all_units = Select All Units keybind.select_all_units.name = Select All Units
keybind.select_all_unit_factories = Select All Unit Factories keybind.select_all_unit_factories.name = Select All Unit Factories
keybind.deselect.name = Tühista valik keybind.deselect.name = Tühista valik
keybind.pickupCargo.name = Pickup Cargo keybind.pickupCargo.name = Pickup Cargo
keybind.dropCargo.name = Drop Cargo keybind.dropCargo.name = Drop Cargo
@@ -2187,6 +2190,7 @@ lst.flushmessage = Display a message on the screen from the text buffer.\nWill w
lst.cutscene = Manipulate the player camera. lst.cutscene = Manipulate the player camera.
lst.setflag = Set a global flag that can be read by all processors. lst.setflag = Set a global flag that can be read by all processors.
lst.getflag = Check if a global flag is set. lst.getflag = Check if a global flag is set.
lst.setprop = Sets a property of a unit or building.
logic.nounitbuild = [red]Unit building logic is not allowed here. logic.nounitbuild = [red]Unit building logic is not allowed here.
lenum.type = Type of building/unit.\ne.g. for any router, this will return [accent]@router[].\nNot a string. lenum.type = Type of building/unit.\ne.g. for any router, this will return [accent]@router[].\nNot a string.
lenum.shoot = Shoot at a position. lenum.shoot = Shoot at a position.

View File

@@ -878,6 +878,7 @@ stat.repairspeed = Repair Speed
stat.weapons = Weapons stat.weapons = Weapons
stat.bullet = Bullet stat.bullet = Bullet
stat.moduletier = Module Tier stat.moduletier = Module Tier
stat.unittype = Unit Type
stat.speedincrease = Abiadura areagotzea stat.speedincrease = Abiadura areagotzea
stat.range = Irismena stat.range = Irismena
stat.drilltier = Ustiagarriak stat.drilltier = Ustiagarriak
@@ -971,6 +972,8 @@ bullet.splashdamage = [stat]{0}[lightgray] ingurune-kaltea ~[stat] {1}[lightgray
bullet.incendiary = [stat]su-eragilea bullet.incendiary = [stat]su-eragilea
bullet.homing = [stat]gidatua bullet.homing = [stat]gidatua
bullet.armorpierce = [stat]armor piercing bullet.armorpierce = [stat]armor piercing
bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
bullet.frags = [stat]{0}[lightgray]x frag bullets: bullet.frags = [stat]{0}[lightgray]x frag bullets:
bullet.lightning = [stat]{0}[lightgray]x lightning ~ [stat]{1}[lightgray] damage bullet.lightning = [stat]{0}[lightgray]x lightning ~ [stat]{1}[lightgray] damage
bullet.buildingdamage = [stat]{0}%[lightgray] building damage bullet.buildingdamage = [stat]{0}%[lightgray] building damage
@@ -1084,8 +1087,8 @@ setting.bridgeopacity.name = Bridge Opacity
setting.playerchat.name = Erakutsi jolas barneko txata setting.playerchat.name = Erakutsi jolas barneko txata
setting.showweather.name = Show Weather Graphics setting.showweather.name = Show Weather Graphics
setting.hidedisplays.name = Hide Logic Displays setting.hidedisplays.name = Hide Logic Displays
public.confirm = Zure jolasa publikoa egin nahi duzu?\n[accent]Edonor elkartu ahal izango da zure partidetara.\n[lightgray]Hau gero ere aldatu dauteke, Ezarpenak->Partida->Partida publikoaren ikusgaitasuna. steam.friendsonly = Friends Only
public.confirm.really = If you want to play with friends, use [green]Invite Friend[] instead of a [scarlet]Public server[]!\nAre you sure you want to make your game [scarlet]public[]? steam.friendsonly.tooltip = Whether only Steam friends will be able to join your game.\nUnchecking this box will make your game public - anyone can join.
public.beta = Kontuan izan jolasaren beta bertsioek ezin dituztela jokalarien gela publokoak sortu. public.beta = Kontuan izan jolasaren beta bertsioek ezin dituztela jokalarien gela publokoak sortu.
uiscale.reset = Interfazearen eskala aldatu da.\nSakatu "Ados" eskala hau berresteko.\n[scarlet][accent] {0}[] segundo atzera egin eta irteteko... uiscale.reset = Interfazearen eskala aldatu da.\nSakatu "Ados" eskala hau berresteko.\n[scarlet][accent] {0}[] segundo atzera egin eta irteteko...
uiscale.cancel = Utzi eta irten uiscale.cancel = Utzi eta irten
@@ -1137,8 +1140,8 @@ keybind.select.name = Hautatu/Tirokatu
keybind.diagonal_placement.name = Kokatze diagonala keybind.diagonal_placement.name = Kokatze diagonala
keybind.pick.name = Jaso blokea keybind.pick.name = Jaso blokea
keybind.break_block.name = Apurtu blokea keybind.break_block.name = Apurtu blokea
keybind.select_all_units = Select All Units keybind.select_all_units.name = Select All Units
keybind.select_all_unit_factories = Select All Unit Factories keybind.select_all_unit_factories.name = Select All Unit Factories
keybind.deselect.name = Deshautatu keybind.deselect.name = Deshautatu
keybind.pickupCargo.name = Pickup Cargo keybind.pickupCargo.name = Pickup Cargo
keybind.dropCargo.name = Drop Cargo keybind.dropCargo.name = Drop Cargo
@@ -2189,6 +2192,7 @@ lst.flushmessage = Display a message on the screen from the text buffer.\nWill w
lst.cutscene = Manipulate the player camera. lst.cutscene = Manipulate the player camera.
lst.setflag = Set a global flag that can be read by all processors. lst.setflag = Set a global flag that can be read by all processors.
lst.getflag = Check if a global flag is set. lst.getflag = Check if a global flag is set.
lst.setprop = Sets a property of a unit or building.
logic.nounitbuild = [red]Unit building logic is not allowed here. logic.nounitbuild = [red]Unit building logic is not allowed here.
lenum.type = Type of building/unit.\ne.g. for any router, this will return [accent]@router[].\nNot a string. lenum.type = Type of building/unit.\ne.g. for any router, this will return [accent]@router[].\nNot a string.
lenum.shoot = Shoot at a position. lenum.shoot = Shoot at a position.

View File

@@ -875,6 +875,7 @@ stat.repairspeed = Korjausnopeus
stat.weapons = Aseet stat.weapons = Aseet
stat.bullet = Ammus stat.bullet = Ammus
stat.moduletier = Moduulin taso stat.moduletier = Moduulin taso
stat.unittype = Unit Type
stat.speedincrease = Nopeuden kasvu stat.speedincrease = Nopeuden kasvu
stat.range = Etäisyys stat.range = Etäisyys
stat.drilltier = Porattavat stat.drilltier = Porattavat
@@ -968,6 +969,8 @@ bullet.splashdamage = [stat]{0}[lightgray] Aluevahinko ~[stat] {1}[lightgray] pa
bullet.incendiary = [stat]sytyttävä bullet.incendiary = [stat]sytyttävä
bullet.homing = [stat]itseohjautuva bullet.homing = [stat]itseohjautuva
bullet.armorpierce = [stat]haarniskan läpäisevä bullet.armorpierce = [stat]haarniskan läpäisevä
bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
bullet.frags = [stat]{0}[lightgray]x sirpaleammuksia: bullet.frags = [stat]{0}[lightgray]x sirpaleammuksia:
bullet.lightning = [stat]{0}[lightgray]x salama ~ [stat]{1}[lightgray] vahinkoa bullet.lightning = [stat]{0}[lightgray]x salama ~ [stat]{1}[lightgray] vahinkoa
bullet.buildingdamage = [stat]{0}%[lightgray] vahinko rakennuksiin bullet.buildingdamage = [stat]{0}%[lightgray] vahinko rakennuksiin
@@ -1081,8 +1084,8 @@ setting.bridgeopacity.name = Siltojen läpinäkyvyys
setting.playerchat.name = Näytä pelinsisäinen keskustelu setting.playerchat.name = Näytä pelinsisäinen keskustelu
setting.showweather.name = Näytä säägrafiikat setting.showweather.name = Näytä säägrafiikat
setting.hidedisplays.name = Piilota logiikkanäytöt setting.hidedisplays.name = Piilota logiikkanäytöt
public.confirm = Haluatko tehdä pelistäsi julkisen?\n[accent]Kuka tahansa voi liittyä peliisi.\n[lightgray]Tämä voidaan muuttaa myöhemmin: Asetukset->Peli->Julkisen pelin näkyvyys steam.friendsonly = Friends Only
public.confirm.really = Jos halat pelata kaverien kanssa, käytä [green]Kutsu kaveri[] -toimintoa, älä [scarlet]Julkinen palvelin[] -toimintoa!\nOletko varma, että haluat tehdä pelistäsi [scarlet]julkisen[]? steam.friendsonly.tooltip = Whether only Steam friends will be able to join your game.\nUnchecking this box will make your game public - anyone can join.
public.beta = Huomaa, että pelin betaversiot eivät voi luoda julkisia auloja. public.beta = Huomaa, että pelin betaversiot eivät voi luoda julkisia auloja.
uiscale.reset = UI:n skaalaa on muutettu.\nPaina "OK" hyväksyäksesi tämän skaalan.\n[scarlet]Palautetaan ja poistutaan[accent] {0}[] sekunnissa... uiscale.reset = UI:n skaalaa on muutettu.\nPaina "OK" hyväksyäksesi tämän skaalan.\n[scarlet]Palautetaan ja poistutaan[accent] {0}[] sekunnissa...
uiscale.cancel = Peruuta ja poistu uiscale.cancel = Peruuta ja poistu
@@ -1134,8 +1137,8 @@ keybind.select.name = Valitse/Ammu
keybind.diagonal_placement.name = Vino sijoitus keybind.diagonal_placement.name = Vino sijoitus
keybind.pick.name = Ota palikka keybind.pick.name = Ota palikka
keybind.break_block.name = Riko palikka keybind.break_block.name = Riko palikka
keybind.select_all_units = Select All Units keybind.select_all_units.name = Select All Units
keybind.select_all_unit_factories = Select All Unit Factories keybind.select_all_unit_factories.name = Select All Unit Factories
keybind.deselect.name = Poista valinta keybind.deselect.name = Poista valinta
keybind.pickupCargo.name = Nosta lastia keybind.pickupCargo.name = Nosta lastia
keybind.dropCargo.name = Pudota lastia keybind.dropCargo.name = Pudota lastia
@@ -2190,6 +2193,7 @@ lst.flushmessage = Näytä näytöllä viesti tekstipuskurista.\nOdottaa, kunnes
lst.cutscene = Hallitse pelaajan kameraa. lst.cutscene = Hallitse pelaajan kameraa.
lst.setflag = Aseta globaali tunniste, jonka kaikki prosessorit voivat lukea. lst.setflag = Aseta globaali tunniste, jonka kaikki prosessorit voivat lukea.
lst.getflag = Tarkista, onko globaali tunniste asetettu. lst.getflag = Tarkista, onko globaali tunniste asetettu.
lst.setprop = Sets a property of a unit or building.
logic.nounitbuild = [red]Logiikan käyttö ei täällä ole sallittu yksikköjen tuottamisessa. logic.nounitbuild = [red]Logiikan käyttö ei täällä ole sallittu yksikköjen tuottamisessa.
lenum.type = Rakennuksen/Yksikön tyyppi.\nEsim. jokaisesta reitittimestä tämä palauttaa [accent]@router[].\nEi ole merkkijono. lenum.type = Rakennuksen/Yksikön tyyppi.\nEsim. jokaisesta reitittimestä tämä palauttaa [accent]@router[].\nEi ole merkkijono.
lenum.shoot = Ammu tiettyä sijaintia. lenum.shoot = Ammu tiettyä sijaintia.

View File

@@ -875,6 +875,7 @@ stat.repairspeed = Repair Speed
stat.weapons = Weapons stat.weapons = Weapons
stat.bullet = Bullet stat.bullet = Bullet
stat.moduletier = Module Tier stat.moduletier = Module Tier
stat.unittype = Unit Type
stat.speedincrease = Speed Increase stat.speedincrease = Speed Increase
stat.range = Range stat.range = Range
stat.drilltier = Drillables stat.drilltier = Drillables
@@ -968,6 +969,8 @@ bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
bullet.incendiary = [stat]incendiary bullet.incendiary = [stat]incendiary
bullet.homing = [stat]homing bullet.homing = [stat]homing
bullet.armorpierce = [stat]armor piercing bullet.armorpierce = [stat]armor piercing
bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
bullet.frags = [stat]{0}[lightgray]x frag bullets: bullet.frags = [stat]{0}[lightgray]x frag bullets:
bullet.lightning = [stat]{0}[lightgray]x lightning ~ [stat]{1}[lightgray] damage bullet.lightning = [stat]{0}[lightgray]x lightning ~ [stat]{1}[lightgray] damage
bullet.buildingdamage = [stat]{0}%[lightgray] building damage bullet.buildingdamage = [stat]{0}%[lightgray] building damage
@@ -1081,8 +1084,8 @@ setting.bridgeopacity.name = Bridge Opacity
setting.playerchat.name = Ipakita Player Bubble Chat setting.playerchat.name = Ipakita Player Bubble Chat
setting.showweather.name = Show Weather Graphics setting.showweather.name = Show Weather Graphics
setting.hidedisplays.name = Hide Logic Displays setting.hidedisplays.name = Hide Logic Displays
public.confirm = Do you want to make your game public?\n[accent]Anyone will be able to join your games.\n[lightgray]This can be changed later in Settings->Game->Public Game Visibility. steam.friendsonly = Friends Only
public.confirm.really = If you want to play with friends, use [green]Invite Friend[] instead of a [scarlet]Public server[]!\nAre you sure you want to make your game [scarlet]public[]? steam.friendsonly.tooltip = Whether only Steam friends will be able to join your game.\nUnchecking this box will make your game public - anyone can join.
public.beta = Tandaan na ang mga beta na bersyon ng laro ay hindi maaaring gumawa ng mga pampublikong lobby. public.beta = Tandaan na ang mga beta na bersyon ng laro ay hindi maaaring gumawa ng mga pampublikong lobby.
uiscale.reset = Nabago ang sukat ng UI.\nPindutin ang "OK" upang kumpirmahin ang sukat na ito.\n[scarlet]Binabalik at lalabas sa dating anyo ng[accent] {0}[] segundo... uiscale.reset = Nabago ang sukat ng UI.\nPindutin ang "OK" upang kumpirmahin ang sukat na ito.\n[scarlet]Binabalik at lalabas sa dating anyo ng[accent] {0}[] segundo...
uiscale.cancel = I-Cancel & Exit uiscale.cancel = I-Cancel & Exit
@@ -1134,8 +1137,8 @@ keybind.select.name = Select/Shoot
keybind.diagonal_placement.name = Diagonal Placement keybind.diagonal_placement.name = Diagonal Placement
keybind.pick.name = Pick Block keybind.pick.name = Pick Block
keybind.break_block.name = Break Block keybind.break_block.name = Break Block
keybind.select_all_units = Select All Units keybind.select_all_units.name = Select All Units
keybind.select_all_unit_factories = Select All Unit Factories keybind.select_all_unit_factories.name = Select All Unit Factories
keybind.deselect.name = Deselect keybind.deselect.name = Deselect
keybind.pickupCargo.name = Pickup Cargo keybind.pickupCargo.name = Pickup Cargo
keybind.dropCargo.name = Drop Cargo keybind.dropCargo.name = Drop Cargo
@@ -2186,6 +2189,7 @@ lst.flushmessage = Display a message on the screen from the text buffer.\nWill w
lst.cutscene = Manipulate the player camera. lst.cutscene = Manipulate the player camera.
lst.setflag = Set a global flag that can be read by all processors. lst.setflag = Set a global flag that can be read by all processors.
lst.getflag = Check if a global flag is set. lst.getflag = Check if a global flag is set.
lst.setprop = Sets a property of a unit or building.
logic.nounitbuild = [red]Unit building logic is not allowed here. logic.nounitbuild = [red]Unit building logic is not allowed here.
lenum.type = Type of building/unit.\ne.g. for any router, this will return [accent]@router[].\nNot a string. lenum.type = Type of building/unit.\ne.g. for any router, this will return [accent]@router[].\nNot a string.
lenum.shoot = Shoot at a position. lenum.shoot = Shoot at a position.

View File

@@ -900,6 +900,7 @@ stat.repairspeed = Vitesse de réparation
stat.weapons = Armes stat.weapons = Armes
stat.bullet = Balles stat.bullet = Balles
stat.moduletier = Tier stat.moduletier = Tier
stat.unittype = Unit Type
stat.speedincrease = Accélération stat.speedincrease = Accélération
stat.range = Portée stat.range = Portée
stat.drilltier = Blocs forables stat.drilltier = Blocs forables
@@ -993,6 +994,8 @@ bullet.splashdamage = [stat]{0}[lightgray] dégâts de zone ~[stat] {1}[lightgra
bullet.incendiary = [stat]incendiaire bullet.incendiary = [stat]incendiaire
bullet.homing = [stat]autoguidé bullet.homing = [stat]autoguidé
bullet.armorpierce = [stat]perceur d'armure bullet.armorpierce = [stat]perceur d'armure
bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
bullet.frags = [stat]{0}[lightgray]x Balle à fragmentation : bullet.frags = [stat]{0}[lightgray]x Balle à fragmentation :
bullet.lightning = [stat]{0}[lightgray]x foudre ~ [stat]{1}[lightgray] dégâts bullet.lightning = [stat]{0}[lightgray]x foudre ~ [stat]{1}[lightgray] dégâts
bullet.buildingdamage = [stat]{0}%[lightgray] des dégâts aux bâtiments bullet.buildingdamage = [stat]{0}%[lightgray] des dégâts aux bâtiments
@@ -1106,8 +1109,8 @@ setting.bridgeopacity.name = Opacité des ponts
setting.playerchat.name = Montrer les bulles de discussion des joueurs setting.playerchat.name = Montrer les bulles de discussion des joueurs
setting.showweather.name = Montrer les Effets météo setting.showweather.name = Montrer les Effets météo
setting.hidedisplays.name = Cacher les Écrans setting.hidedisplays.name = Cacher les Écrans
public.confirm = Voulez-vous rendre votre partie publique ?\n[accent]N'importe qui pourra rejoindre vos parties.\n[lightgray]Ce paramètre peut être changé plus tard dans Paramètres->Jeu->Visibilité de la Partie Publique steam.friendsonly = Friends Only
public.confirm.really = Si vous voulez jouer avec des amis, utilisez [green]Inviter un Ami[] Au lieu [scarlet]d'un Serveur Public[] !\nÊtes-vous sûrs de vouloir rendre votre partie [scarlet]publique[] ? steam.friendsonly.tooltip = Whether only Steam friends will be able to join your game.\nUnchecking this box will make your game public - anyone can join.
public.beta = Notez que les versions bêta du jeu ne peuvent pas créer de salons publics. public.beta = Notez que les versions bêta du jeu ne peuvent pas créer de salons publics.
uiscale.reset = L'échelle de l'interface a été modifiée.\nAppuyez sur "OK" pour confirmer.\n[scarlet]Rétablissement des anciens paramètres et fermeture du jeu dans [accent] {0}[] secondes... uiscale.reset = L'échelle de l'interface a été modifiée.\nAppuyez sur "OK" pour confirmer.\n[scarlet]Rétablissement des anciens paramètres et fermeture du jeu dans [accent] {0}[] secondes...
uiscale.cancel = Annuler & Quitter uiscale.cancel = Annuler & Quitter
@@ -1159,8 +1162,8 @@ keybind.select.name = Sélectionner/Tirer
keybind.diagonal_placement.name = Placement en diagonale keybind.diagonal_placement.name = Placement en diagonale
keybind.pick.name = Choisir un bloc keybind.pick.name = Choisir un bloc
keybind.break_block.name = Supprimer un bloc keybind.break_block.name = Supprimer un bloc
keybind.select_all_units = Sélectionner toutes les Unités keybind.select_all_units.name = Sélectionner toutes les Unités
keybind.select_all_unit_factories = Sélectionner toutes les Usines d'Unités keybind.select_all_unit_factories.name = Sélectionner toutes les Usines d'Unités
keybind.deselect.name = Désélectionner keybind.deselect.name = Désélectionner
keybind.pickupCargo.name = Prendre un Chargement keybind.pickupCargo.name = Prendre un Chargement
keybind.dropCargo.name = Lâcher un Chargement keybind.dropCargo.name = Lâcher un Chargement
@@ -2233,6 +2236,7 @@ lst.flushmessage = Affiche un message sur l'écran depuis la mémoire tampon de
lst.cutscene = Manipule la caméra du joueur. lst.cutscene = Manipule la caméra du joueur.
lst.setflag = Définit un drapeau global qui peut être lu par tous les processeurs. lst.setflag = Définit un drapeau global qui peut être lu par tous les processeurs.
lst.getflag = Vérifie si un drapeau global est présent. lst.getflag = Vérifie si un drapeau global est présent.
lst.setprop = Sets a property of a unit or building.
logic.nounitbuild = [red]Les unités contrôlées par des processeurs ne peuvent pas construire ici. logic.nounitbuild = [red]Les unités contrôlées par des processeurs ne peuvent pas construire ici.

View File

@@ -885,6 +885,7 @@ stat.repairspeed = Repair Speed
stat.weapons = Fegyverek stat.weapons = Fegyverek
stat.bullet = Töltény stat.bullet = Töltény
stat.moduletier = Module Tier stat.moduletier = Module Tier
stat.unittype = Unit Type
stat.speedincrease = Gyorsítás stat.speedincrease = Gyorsítás
stat.range = Hatótáv stat.range = Hatótáv
stat.drilltier = Kitermelhető stat.drilltier = Kitermelhető
@@ -978,6 +979,8 @@ bullet.splashdamage = [stat]{0}[lightgray] területi sebzés ~[stat] {1}[lightgr
bullet.incendiary = [stat]gyújtó bullet.incendiary = [stat]gyújtó
bullet.homing = [stat]nyomkövető bullet.homing = [stat]nyomkövető
bullet.armorpierce = [stat]armor piercing bullet.armorpierce = [stat]armor piercing
bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
bullet.frags = [stat]{0}[lightgray]x frag bullets: bullet.frags = [stat]{0}[lightgray]x frag bullets:
bullet.lightning = [stat]{0}[lightgray]x lightning ~ [stat]{1}[lightgray] damage bullet.lightning = [stat]{0}[lightgray]x lightning ~ [stat]{1}[lightgray] damage
bullet.buildingdamage = [stat]{0}%[lightgray] épület sebzés bullet.buildingdamage = [stat]{0}%[lightgray] épület sebzés
@@ -1091,8 +1094,8 @@ setting.bridgeopacity.name = Híd átlátszatlansága
setting.playerchat.name = Játékos szóbuborékok megjelenítése setting.playerchat.name = Játékos szóbuborékok megjelenítése
setting.showweather.name = Időjárás grafika megjelenítése setting.showweather.name = Időjárás grafika megjelenítése
setting.hidedisplays.name = Hide Logic Displays setting.hidedisplays.name = Hide Logic Displays
public.confirm = Szeretnéd a játékot nyilvánossá tenni?\n[accent]Bárki beléphet a játékaidba.\n[lightgray]Ezt később megváltoztathatod a Beállítások->Játék->Nyilvános játék láthatósága menüpontban. steam.friendsonly = Friends Only
public.confirm.really = Ha a barátaiddal szeretnél játszani, használd a [green]Barátok meghívása[] funkciót [scarlet]Nyilvános szerver[] helyett!\nBiztosan szeretnéd, hogy a játékod [scarlet]nyilvános[] legyen? steam.friendsonly.tooltip = Whether only Steam friends will be able to join your game.\nUnchecking this box will make your game public - anyone can join.
public.beta = Ne feledd, hogy a játék béta verziójában nem tudsz nyilvános szobát nyitni. public.beta = Ne feledd, hogy a játék béta verziójában nem tudsz nyilvános szobát nyitni.
uiscale.reset = Az UI mérete megváltozott.\nAz "OK" gombbal megerősítheted ezt a méretet.\n[scarlet]Visszavonás és kilépés [accent] {0}[] másodperc múlva... uiscale.reset = Az UI mérete megváltozott.\nAz "OK" gombbal megerősítheted ezt a méretet.\n[scarlet]Visszavonás és kilépés [accent] {0}[] másodperc múlva...
uiscale.cancel = Mégse és Kilépés uiscale.cancel = Mégse és Kilépés
@@ -1144,8 +1147,8 @@ keybind.select.name = Kiválasztás/Lövés
keybind.diagonal_placement.name = Átlós elhelyezés keybind.diagonal_placement.name = Átlós elhelyezés
keybind.pick.name = Blokk másolása keybind.pick.name = Blokk másolása
keybind.break_block.name = Blokk törlése keybind.break_block.name = Blokk törlése
keybind.select_all_units = Select All Units keybind.select_all_units.name = Select All Units
keybind.select_all_unit_factories = Select All Unit Factories keybind.select_all_unit_factories.name = Select All Unit Factories
keybind.deselect.name = Blokk választás törlése keybind.deselect.name = Blokk választás törlése
keybind.pickupCargo.name = Rakomány felvétele keybind.pickupCargo.name = Rakomány felvétele
keybind.dropCargo.name = Rakomány lerakása keybind.dropCargo.name = Rakomány lerakása
@@ -2198,6 +2201,7 @@ lst.flushmessage = Display a message on the screen from the text buffer.\nWill w
lst.cutscene = Manipulate the player camera. lst.cutscene = Manipulate the player camera.
lst.setflag = Set a global flag that can be read by all processors. lst.setflag = Set a global flag that can be read by all processors.
lst.getflag = Check if a global flag is set. lst.getflag = Check if a global flag is set.
lst.setprop = Sets a property of a unit or building.
logic.nounitbuild = [red]Unit building logic is not allowed here. logic.nounitbuild = [red]Unit building logic is not allowed here.
lenum.type = Type of building/unit.\ne.g. for any router, this will return [accent]@router[].\nNot a string. lenum.type = Type of building/unit.\ne.g. for any router, this will return [accent]@router[].\nNot a string.
lenum.shoot = Shoot at a position. lenum.shoot = Shoot at a position.

View File

@@ -896,6 +896,7 @@ stat.repairspeed = Kecepatan Memperbaiki
stat.weapons = Senjata stat.weapons = Senjata
stat.bullet = Peluru stat.bullet = Peluru
stat.moduletier = Tingkatan Modul stat.moduletier = Tingkatan Modul
stat.unittype = Unit Type
stat.speedincrease = Tambahan Kecepatan stat.speedincrease = Tambahan Kecepatan
stat.range = Jarak stat.range = Jarak
stat.drilltier = Sumber Daya yang Ditambang stat.drilltier = Sumber Daya yang Ditambang
@@ -989,6 +990,8 @@ bullet.splashdamage = [stat]{0}[lightgray] kekuatan percikan~[stat] {1}[lightgra
bullet.incendiary = [stat]membakar bullet.incendiary = [stat]membakar
bullet.homing = [stat]mengejar bullet.homing = [stat]mengejar
bullet.armorpierce = [stat]menembus baju besi bullet.armorpierce = [stat]menembus baju besi
bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
bullet.frags = [stat]{0}[lightgray]x pecahan: bullet.frags = [stat]{0}[lightgray]x pecahan:
bullet.lightning = [stat]{0}[lightgray]x petir ~ [stat]{1}[lightgray] kerusakan bullet.lightning = [stat]{0}[lightgray]x petir ~ [stat]{1}[lightgray] kerusakan
bullet.buildingdamage = [stat]{0}%[lightgray] kerusakan bangunan bullet.buildingdamage = [stat]{0}%[lightgray] kerusakan bangunan
@@ -1102,8 +1105,8 @@ setting.bridgeopacity.name = Jelas-Beningnya Jembatan
setting.playerchat.name = Tunjukkan Pesan dalam Permainan setting.playerchat.name = Tunjukkan Pesan dalam Permainan
setting.showweather.name = Perlihatkan Cuaca setting.showweather.name = Perlihatkan Cuaca
setting.hidedisplays.name = Sembunyikan Tampilan Logika setting.hidedisplays.name = Sembunyikan Tampilan Logika
public.confirm = Apakah kamu ingin mempublikasi permainanmu?\n[accent]Siapa saja bisa masuk ke permainanmu.\n[lightgray]Ini bisa diganti di Peraturan->Permainan->Visibilitas Game Publik. steam.friendsonly = Friends Only
public.confirm.really = Jika kamu ingin bermain dengan temanmu, gunakan [green]Undang Teman[] daripada [scarlet]server publik[]!\nApakah kamu yakin ingin membuat permainanmu [scarlet]publik[]? steam.friendsonly.tooltip = Whether only Steam friends will be able to join your game.\nUnchecking this box will make your game public - anyone can join.
public.beta = Ingat bahwa game versi beta tidak dapat membuat lobi publik. public.beta = Ingat bahwa game versi beta tidak dapat membuat lobi publik.
uiscale.reset = Skala UI telah diubah.\nTekan "OK" untuk mengonfirmasi.\n[scarlet]Kembali dan keluar di[accent] {0}[] pengaturan... uiscale.reset = Skala UI telah diubah.\nTekan "OK" untuk mengonfirmasi.\n[scarlet]Kembali dan keluar di[accent] {0}[] pengaturan...
uiscale.cancel = Batal & Keluar uiscale.cancel = Batal & Keluar
@@ -1155,8 +1158,8 @@ keybind.select.name = Pilih/Tembak
keybind.diagonal_placement.name = Penaruhan Diagonal keybind.diagonal_placement.name = Penaruhan Diagonal
keybind.pick.name = Memilih Blok keybind.pick.name = Memilih Blok
keybind.break_block.name = Menghancurkan Blok keybind.break_block.name = Menghancurkan Blok
keybind.select_all_units = Select All Units keybind.select_all_units.name = Select All Units
keybind.select_all_unit_factories = Select All Unit Factories keybind.select_all_unit_factories.name = Select All Unit Factories
keybind.deselect.name = Batal Memilih keybind.deselect.name = Batal Memilih
keybind.pickupCargo.name = Angkat Muatan keybind.pickupCargo.name = Angkat Muatan
keybind.dropCargo.name = Turunkan Muatan keybind.dropCargo.name = Turunkan Muatan
@@ -2225,6 +2228,7 @@ lst.flushmessage = Tampilkan sebuah pesan di layar dari antrian teks.\nAkan menu
lst.cutscene = Mengendalikan kamera pemain. lst.cutscene = Mengendalikan kamera pemain.
lst.setflag = Menentukan global flag yang dapat dibaca oleh semua prosesor. lst.setflag = Menentukan global flag yang dapat dibaca oleh semua prosesor.
lst.getflag = Periksa apakah ada global flag yang ditentukan. lst.getflag = Periksa apakah ada global flag yang ditentukan.
lst.setprop = Sets a property of a unit or building.
logic.nounitbuild = [red]Logika unit membangun tidak diperbolehkan di sini. logic.nounitbuild = [red]Logika unit membangun tidak diperbolehkan di sini.

View File

@@ -149,7 +149,7 @@ mod.unmetdependencies = [red]Unmet Dependencies
mod.erroredcontent = [scarlet]Errori di Contenuto mod.erroredcontent = [scarlet]Errori di Contenuto
mod.circulardependencies = [red]Circular Dependencies mod.circulardependencies = [red]Circular Dependencies
mod.incompletedependencies = [red]Incomplete Dependencies mod.incompletedependencies = [red]Incomplete Dependencies
mod.requiresversion.details = Requires game version: [accent]{0}[]\nYour game is outdated. This mod requires a newer version of the game (possibly a beta/alpha release) to function. mod.requiresversion.details = Richiede la versione del gioco: [accent]{0}[]\nIl tuo gioco è obsoleto. Questa mod richiede una versione più recente del gioco (possibilmente una versione beta/alpha) per funzionare.
mod.outdatedv7.details = This mod is incompatible with the latest version of the game. The author must update it, and add [accent]minGameVersion: 136[] to its [accent]mod.json[] file. mod.outdatedv7.details = This mod is incompatible with the latest version of the game. The author must update it, and add [accent]minGameVersion: 136[] to its [accent]mod.json[] file.
mod.blacklisted.details = This mod has been manually blacklisted for causing crashes or other issues with this version of the game. Do not use it. mod.blacklisted.details = This mod has been manually blacklisted for causing crashes or other issues with this version of the game. Do not use it.
mod.missingdependencies.details = This mod is missing dependencies: {0} mod.missingdependencies.details = This mod is missing dependencies: {0}
@@ -328,7 +328,7 @@ open = Apri
customize = Personalizza customize = Personalizza
cancel = Annulla cancel = Annulla
command = Comando command = Comando
command.mine = Mine command.mine = Mina
command.repair = Ripara command.repair = Ripara
command.rebuild = Ricostruisci command.rebuild = Ricostruisci
command.assist = Aiuta giocatore command.assist = Aiuta giocatore
@@ -763,8 +763,8 @@ sector.windsweptIslands.description = Oltre la fascia costiera si trova questo r
sector.extractionOutpost.description = Un avamposto remoto, costruito dai nemici con l'obiettivo di lanciare risorse in altri settori.\n\nLa tecnologia di trasposto a settori-incrociati è essenziale per un ulteriore conquista. Distruggi la base. scopri la loro Rampa di Lancio. sector.extractionOutpost.description = Un avamposto remoto, costruito dai nemici con l'obiettivo di lanciare risorse in altri settori.\n\nLa tecnologia di trasposto a settori-incrociati è essenziale per un ulteriore conquista. Distruggi la base. scopri la loro Rampa di Lancio.
sector.impact0078.description = Qui giaciono i resti della nave da trasporto interstellare che fu la prima ad entrare in questo sistema.\n\nRecupera per quanto possibile dal relitto. Scopri qualsiasi tecnologia intatta. sector.impact0078.description = Qui giaciono i resti della nave da trasporto interstellare che fu la prima ad entrare in questo sistema.\n\nRecupera per quanto possibile dal relitto. Scopri qualsiasi tecnologia intatta.
sector.planetaryTerminal.description = Il bersaglio finale.\n\nQuesta base costiera contiene una struttura capace di lanciare Nuclei ai pianeti locali. È estremamente protetto.\n\nProduci unità navali. Elimina il nemico il più rapidamente possibile. Scopri la struttura di lancio. sector.planetaryTerminal.description = Il bersaglio finale.\n\nQuesta base costiera contiene una struttura capace di lanciare Nuclei ai pianeti locali. È estremamente protetto.\n\nProduci unità navali. Elimina il nemico il più rapidamente possibile. Scopri la struttura di lancio.
sector.coastline.description = Remnants of naval unit technology have been detected at this location. Repel the enemy attacks, capture this sector, and acquire the technology. sector.coastline.description = In questo settore sono stati rilevati resti di tecnologia di unità navali. Respingi gli attacchi nemici, cattura il settore e acquisisci la tecnologia.
sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. sector.navalFortress.description = Il nemico ha stabilito una base su un'isola remota e fortificata naturalmente. Distruggi questo avamposto. Acquisisci la loro tecnologia navale avanzata e fate ricerche.
sector.onset.name = The Onset sector.onset.name = The Onset
sector.aegis.name = Aegis sector.aegis.name = Aegis
sector.lake.name = Nome sector.lake.name = Nome
@@ -882,6 +882,7 @@ stat.repairspeed = Velocità di riparazione
stat.weapons = Armi stat.weapons = Armi
stat.bullet = Proiettile stat.bullet = Proiettile
stat.moduletier = Grado del modulo stat.moduletier = Grado del modulo
stat.unittype = Unit Type
stat.speedincrease = Potenziamento Velocità stat.speedincrease = Potenziamento Velocità
stat.range = Raggio stat.range = Raggio
stat.drilltier = Scavabili stat.drilltier = Scavabili
@@ -975,6 +976,8 @@ bullet.splashdamage = [stat]{0}[lightgray] danno ad area ~[stat] {1}[lightgray]
bullet.incendiary = [stat]incendiario bullet.incendiary = [stat]incendiario
bullet.homing = [stat]autoguidato bullet.homing = [stat]autoguidato
bullet.armorpierce = [stat]perforazione alle armature bullet.armorpierce = [stat]perforazione alle armature
bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
bullet.frags = [stat]{0}[lightgray]x frammentazione: bullet.frags = [stat]{0}[lightgray]x frammentazione:
bullet.lightning = [stat]{0}[lightgray]x fulmine ~ [stat]{1}[lightgray] danno bullet.lightning = [stat]{0}[lightgray]x fulmine ~ [stat]{1}[lightgray] danno
bullet.buildingdamage = [stat]{0}%[lightgray] danno alle costruzioni bullet.buildingdamage = [stat]{0}%[lightgray] danno alle costruzioni
@@ -1017,7 +1020,7 @@ category.items = Oggetti
category.crafting = Produzione category.crafting = Produzione
category.function = Funzione category.function = Funzione
category.optional = Miglioramenti Opzionali category.optional = Miglioramenti Opzionali
setting.skipcoreanimation.name = Salta il lancio del nucleo/Animazionw setting.skipcoreanimation.name = Salta il lancio del nucleo/Animazione
setting.landscape.name = Visuale Orizontale setting.landscape.name = Visuale Orizontale
setting.shadows.name = Ombre setting.shadows.name = Ombre
setting.blockreplace.name = Suggerimento Blocchi Automatico setting.blockreplace.name = Suggerimento Blocchi Automatico
@@ -1088,8 +1091,8 @@ setting.bridgeopacity.name = Opacità Nastri e Condotti Sopraelevati
setting.playerchat.name = Mostra Chat setting.playerchat.name = Mostra Chat
setting.showweather.name = Mostra grafica del meteo setting.showweather.name = Mostra grafica del meteo
setting.hidedisplays.name = Nascondi display logici setting.hidedisplays.name = Nascondi display logici
public.confirm = Vuoi rendere la tua partita pubblica?\n[accent]Chiunque sarà in grado di accedere alle tue partite.\n[lightgray]Questo può essere modificato più tardi in Impostazioni->Gioco->Partite Pubbliche. steam.friendsonly = Friends Only
public.confirm.really = Se vuoi giocare con gli amici, usa [green]Invita Amico[] Al posto di un [scarlet]server pubblico[]!\nSicuro di voler rendere [scarlet]pubblica[] la tua partita? steam.friendsonly.tooltip = Whether only Steam friends will be able to join your game.\nUnchecking this box will make your game public - anyone can join.
public.beta = Nota che le versioni beta del gioco non possono creare lobby pubbliche. public.beta = Nota che le versioni beta del gioco non possono creare lobby pubbliche.
uiscale.reset = La scala dell'interfaccia utente è stata modificata.\nPremere 'OK' per confermare questa scala.\n[scarlet]Ripristina ed esci in [accent] {0}[] secondi... uiscale.reset = La scala dell'interfaccia utente è stata modificata.\nPremere 'OK' per confermare questa scala.\n[scarlet]Ripristina ed esci in [accent] {0}[] secondi...
uiscale.cancel = Annulla ed Esci uiscale.cancel = Annulla ed Esci
@@ -1141,8 +1144,8 @@ keybind.select.name = Seleziona/Spara
keybind.diagonal_placement.name = Posiziona Diagonalmente keybind.diagonal_placement.name = Posiziona Diagonalmente
keybind.pick.name = Scegli Blocco keybind.pick.name = Scegli Blocco
keybind.break_block.name = Rompi Blocco keybind.break_block.name = Rompi Blocco
keybind.select_all_units = Select All Units keybind.select_all_units.name = Select All Units
keybind.select_all_unit_factories = Select All Unit Factories keybind.select_all_unit_factories.name = Select All Unit Factories
keybind.deselect.name = Deseleziona keybind.deselect.name = Deseleziona
keybind.pickupCargo.name = Raccogli Carico keybind.pickupCargo.name = Raccogli Carico
keybind.dropCargo.name = Rilascia Carico keybind.dropCargo.name = Rilascia Carico
@@ -2142,31 +2145,31 @@ unit.omura.description = Utilizza un bullone sparatato grazie a due binari a sco
unit.alpha.description = Difende il nucleo Frammento dai nemici. Costruisce strutture. unit.alpha.description = Difende il nucleo Frammento dai nemici. Costruisce strutture.
unit.beta.description = Difende il nucleo Fondamento dai nemici. Costruisce strutture. unit.beta.description = Difende il nucleo Fondamento dai nemici. Costruisce strutture.
unit.gamma.description = Difende il nucleo Kernel dai nemici. Costruisce strutture. unit.gamma.description = Difende il nucleo Kernel dai nemici. Costruisce strutture.
unit.retusa.description = Fires homing torpedoes at nearby enemies. Repairs allied units. unit.retusa.description = Lancia siluri di puntamento contro i nemici vicini. Ripara le unità alleate.
unit.oxynoe.description = Fires structure-repairing streams of flame at nearby enemies. Targets nearby enemy projectiles with a point defense turret. unit.oxynoe.description = Spara flussi di fiamme che riparano le strutture ai nemici vicini. Bersaglia i proiettili nemici nelle vicinanze con una torretta di difesa.
unit.cyerce.description = Fires seeking cluster-missiles at enemies. Repairs allied units. unit.cyerce.description = Spara missili a grappolo contro i nemici. Ripara le unità alleate.
unit.aegires.description = Shocks all enemy units and structures that enter its energy field. Repairs all allies. unit.aegires.description = Scuote tutte le unità e le strutture nemiche che entrano nel suo campo energetico. Ripara tutti gli alleati.
unit.navanax.description = Fires explosive EMP projectiles, dealing significant damage to enemy power networks and repairing allied structures. Melts nearby enemies with 4 autonomous laser turrets. unit.navanax.description = Spara proiettili EMP esplosivi, infliggendo danni significativi alle reti elettriche nemiche e riparando le strutture alleate. Scioglie i nemici vicini con 4 torrette laser autonome.
unit.stell.description = Fires standard bullets at enemy targets. unit.stell.description = Spara proiettili standard contro i bersagli nemici.
unit.locus.description = Fires alternating bullets at enemy targets. unit.locus.description = Spara proiettili alternati contro i bersagli nemici.
unit.precept.description = Fires piercing cluster bullets at enemy targets. unit.precept.description = Spara proiettili a grappolo perforanti contro i bersagli nemici.
unit.vanquish.description = Fires large piercing splitting bullets at enemy targets. unit.vanquish.description = Spara grandi proiettili perforanti contro i bersagli nemici.
unit.conquer.description = Fires large piercing cascades of bullets at enemy targets. unit.conquer.description = Spara grandi cascate di proiettili perforanti contro i bersagli nemici.
unit.merui.description = Fires long-range artillery at enemy ground targets. Can step over most terrain. unit.merui.description = Spara con l'artiglieria a lungo raggio contro bersagli terrestri nemici. Può superare la maggior parte dei terreni.
unit.cleroi.description = Fires dual shells at enemy targets. Targets enemy projectiles with point defense turrets. Can step over most terrain. unit.cleroi.description = Spara proiettili doppi contro i bersagli nemici. Bersaglia i proiettili nemici con le torrette di difesa. Può superare la maggior parte dei terreni.
unit.anthicus.description = Fires long-range homing missiles at enemy targets. Can step over most terrain. unit.anthicus.description = Spara missili a lunga gittata contro i bersagli nemici. Può superare la maggior parte dei terreni.
unit.tecta.description = Fires homing plasma missiles at enemy targets. Protects itself with a directional shield. Can step over most terrain. unit.tecta.description = Spara missili al plasma a puntamento interno contro i bersagli nemici. Si protegge con uno scudo direzionale. Può superare la maggior parte dei terreni.
unit.collaris.description = Fires long-range fragmenting artillery at enemy targets. Can step over most terrain. unit.collaris.description = Spara con l'artiglieria a frammentazione a lungo raggio contro gli obiettivi nemici. Può superare la maggior parte dei terreni.
unit.elude.description = Fires pairs of homing bullets at enemy targets. Can float over bodies of liquid. unit.elude.description = Spara coppie di proiettili di puntamento contro i bersagli nemici. Può galleggiare su corpi liquidi.
unit.avert.description = Fires twisting pairs of bullets at enemy targets. unit.avert.description = Spara coppie di proiettili a spirale contro i bersagli nemici.
unit.obviate.description = Fires twisting pairs of lightning orbs at enemy targets. unit.obviate.description = Spara coppie di fulmini a spirale contro i bersagli nemici.
unit.quell.description = Fires long-range homing missiles at enemy targets. Suppresses enemy structure repair blocks. unit.quell.description = Spara missili di puntamento a lungo raggio contro gli obiettivi nemici. Sopprime i blocchi di riparazione delle strutture nemiche.
unit.disrupt.description = Fires long-range homing suppression missiles at enemy targets. Suppresses enemy structure repair blocks. unit.disrupt.description = Spara missili di soppressione a lungo raggio contro gli obiettivi nemici. Sopprime i blocchi di riparazione delle strutture nemiche.
unit.evoke.description = Builds structures to defend the Bastion core. Repairs structures with a beam. unit.evoke.description = Costruisce strutture per difendere il nucleo del Bastione. Ripara le strutture con un raggio.
unit.incite.description = Builds structures to defend the Citadel core. Repairs structures with a beam. unit.incite.description = Costruisce strutture per difendere il nucleo della Cittadella. Ripara le strutture con un raggio.
unit.emanate.description = Builds structures to defend the Acropolis core. Repairs structures with beams. unit.emanate.description = Costruisce strutture per difendere il nucleo dell'Acropoli. Ripara le strutture con le travi.
lst.read = Read a number from a linked memory cell. lst.read = Leggi un numero da una cella di memoria collegata.
lst.write = Write a number to a linked memory cell. lst.write = Scrivi un numero in una cella di memoria collegata.
lst.print = Add text to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used. lst.print = Add text to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used.
lst.draw = Add an operation to the drawing buffer.\nDoes not display anything until [accent]Draw Flush[] is used. lst.draw = Add an operation to the drawing buffer.\nDoes not display anything until [accent]Draw Flush[] is used.
lst.drawflush = Flush queued [accent]Draw[] operations to a display. lst.drawflush = Flush queued [accent]Draw[] operations to a display.
@@ -2200,6 +2203,7 @@ lst.flushmessage = Display a message on the screen from the text buffer.\nWill w
lst.cutscene = Manipulate the player camera. lst.cutscene = Manipulate the player camera.
lst.setflag = Set a global flag that can be read by all processors. lst.setflag = Set a global flag that can be read by all processors.
lst.getflag = Check if a global flag is set. lst.getflag = Check if a global flag is set.
lst.setprop = Sets a property of a unit or building.
logic.nounitbuild = [red]Unit building logic is not allowed here. logic.nounitbuild = [red]Unit building logic is not allowed here.
lenum.type = Type of building/unit.\ne.g. for any router, this will return [accent]@router[].\nNot a string. lenum.type = Type of building/unit.\ne.g. for any router, this will return [accent]@router[].\nNot a string.
lenum.shoot = Shoot at a position. lenum.shoot = Shoot at a position.

View File

@@ -888,6 +888,7 @@ stat.repairspeed = 修復速度
stat.weapons = 武器 stat.weapons = 武器
stat.bullet = 弾丸 stat.bullet = 弾丸
stat.moduletier = モジュールレベル stat.moduletier = モジュールレベル
stat.unittype = Unit Type
stat.speedincrease = 速度向上 stat.speedincrease = 速度向上
stat.range = 範囲 stat.range = 範囲
stat.drilltier = ドリル stat.drilltier = ドリル
@@ -981,6 +982,8 @@ bullet.splashdamage = [stat]{0}[lightgray] 範囲ダメージ 約[stat] {1}[ligh
bullet.incendiary = [stat]焼夷弾 bullet.incendiary = [stat]焼夷弾
bullet.homing = [stat]追尾弾 bullet.homing = [stat]追尾弾
bullet.armorpierce = [stat]アーマー貫通 bullet.armorpierce = [stat]アーマー貫通
bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
bullet.frags = [stat]{0}[lightgray]x frag bullets: bullet.frags = [stat]{0}[lightgray]x frag bullets:
bullet.lightning = [stat]{0}[lightgray]x ライトニング ~ [stat]{1}[lightgray] ダメージ bullet.lightning = [stat]{0}[lightgray]x ライトニング ~ [stat]{1}[lightgray] ダメージ
bullet.buildingdamage = [stat]{0}%[lightgray] 対物ダメージ bullet.buildingdamage = [stat]{0}%[lightgray] 対物ダメージ
@@ -1094,8 +1097,8 @@ setting.bridgeopacity.name = ブリッジの透明度
setting.playerchat.name = ゲーム内にチャットを表示 setting.playerchat.name = ゲーム内にチャットを表示
setting.showweather.name = 天気のグラフィックを表示 setting.showweather.name = 天気のグラフィックを表示
setting.hidedisplays.name = 描画されているロジックディスプレイを非表示 setting.hidedisplays.name = 描画されているロジックディスプレイを非表示
public.confirm = ゲームを公開しますか?\n[accent]誰でもゲームに参加できるようになります。\n[lightgray]あとから設定で変更できます。 steam.friendsonly = Friends Only
public.confirm.really = フレンドと遊びたい場合は、[scarlet]公開サーバー[] ではなく [green]フレンド招待[] を使おう!\nゲームを [scarlet]公開[]してもよろしいですか? steam.friendsonly.tooltip = Whether only Steam friends will be able to join your game.\nUnchecking this box will make your game public - anyone can join.
public.beta = ベータ版では使用できません。 public.beta = ベータ版では使用できません。
uiscale.reset = UIサイズが変更されました。\nこのままでよければ「OK」を押してください。\n[scarlet][accent]{0}[] 秒で元の設定に戻ります... uiscale.reset = UIサイズが変更されました。\nこのままでよければ「OK」を押してください。\n[scarlet][accent]{0}[] 秒で元の設定に戻ります...
uiscale.cancel = キャンセル & 終了 uiscale.cancel = キャンセル & 終了
@@ -1147,8 +1150,8 @@ keybind.select.name = 選択/ショット
keybind.diagonal_placement.name = 斜め設置 keybind.diagonal_placement.name = 斜め設置
keybind.pick.name = ブロックの選択 keybind.pick.name = ブロックの選択
keybind.break_block.name = ブロックの破壊 keybind.break_block.name = ブロックの破壊
keybind.select_all_units = すべてのユニットを選択 keybind.select_all_units.name = すべてのユニットを選択
keybind.select_all_unit_factories = すべてのユニット工場を選択 keybind.select_all_unit_factories.name = すべてのユニット工場を選択
keybind.deselect.name = 選択解除 keybind.deselect.name = 選択解除
keybind.pickupCargo.name = 貨物を拾う keybind.pickupCargo.name = 貨物を拾う
keybind.dropCargo.name = 貨物を降ろす keybind.dropCargo.name = 貨物を降ろす
@@ -2204,6 +2207,7 @@ lst.flushmessage = テキストバッファから画面にメッセージを表
lst.cutscene = プレイヤーのカメラを操作します。 lst.cutscene = プレイヤーのカメラを操作します。
lst.setflag = 全プロセッサーから読み取れるグローバルフラグを設定します。 lst.setflag = 全プロセッサーから読み取れるグローバルフラグを設定します。
lst.getflag = グローバルフラグが設定されているかどうかを確認します。 lst.getflag = グローバルフラグが設定されているかどうかを確認します。
lst.setprop = Sets a property of a unit or building.
logic.nounitbuild = [red]ここではユニット構築ロジックは使用できません。 logic.nounitbuild = [red]ここではユニット構築ロジックは使用できません。
lenum.type = ユニットや建物の種類を取得します。\n例任意のルーターに対して、 [accent]@router[] を返します。\n文字列ではありません。 lenum.type = ユニットや建物の種類を取得します。\n例任意のルーターに対して、 [accent]@router[] を返します。\n文字列ではありません。
lenum.shoot = 指定した座標に向かって撃ちます。 lenum.shoot = 指定した座標に向かって撃ちます。

View File

@@ -149,15 +149,15 @@ mod.incompatiblemod = [red]호환되지 않음
mod.blacklisted = [red]지원하지 않음 mod.blacklisted = [red]지원하지 않음
mod.unmetdependencies = [red]충촉되지 않은 종속성 mod.unmetdependencies = [red]충촉되지 않은 종속성
mod.erroredcontent = [scarlet]콘텐츠 오류 mod.erroredcontent = [scarlet]콘텐츠 오류
mod.circulardependencies = [red]Circular Dependencies mod.circulardependencies = [red]순환 의존성
mod.incompletedependencies = [red]Incomplete Dependencies mod.incompletedependencies = [red]불완전한 의존성
mod.requiresversion.details = 게임 버전 요구: [accent]{0}[]\n당신의 게임은 구버전입니다. 이 모드가 작동하려면 최신 버전의 게임이 필요합니다. (베타/알파 릴리즈일 가능성이 있음). mod.requiresversion.details = 게임 버전 요구: [accent]{0}[]\n당신의 게임은 구버전입니다. 이 모드가 작동하려면 최신 버전의 게임이 필요합니다. (베타/알파 릴리즈일 가능성이 있음).
mod.outdatedv7.details = 이 모드는 최신 버전의 게임과 호환되지 않습니다. 반드시 작성자가 업데이트해야 하고, [accent]mod.json[] 파일에 [accent]최소게임버전: 136[]을 추가해야 합니다. mod.outdatedv7.details = 이 모드는 최신 버전의 게임과 호환되지 않습니다. 반드시 작성자가 업데이트해야 하고, [accent]mod.json[] 파일에 [accent]최소게임버전: 136[]을 추가해야 합니다.
mod.blacklisted.details = 이 모드는 이 버전의 게임에서 충돌 또는 기타 문제를 일으키는 것으로 인해 수동으로 블랙리스트에 올라와 있습니다. 사용하지 마세요. mod.blacklisted.details = 이 모드는 이 버전의 게임에서 충돌 또는 기타 문제를 일으키는 것으로 인해 수동으로 블랙리스트에 올라와 있습니다. 사용하지 마세요.
mod.missingdependencies.details = 이 모드에는 종속성이 없음: {0} mod.missingdependencies.details = 이 모드에는 종속성이 없음: {0}
mod.erroredcontent.details = 이 게임은 로딩하는 동안 오류가 발생했습니다. 모드 작성자에게 수정하도록 요청하세요. mod.erroredcontent.details = 이 게임은 로딩하는 동안 오류가 발생했습니다. 모드 작성자에게 수정하도록 요청하세요.
mod.circulardependencies.details = This mod has dependencies that depends on each other. mod.circulardependencies.details = 이 모드는 서로 의존하는 의존성을 지니고 있습니다.
mod.incompletedependencies.details = This mod is unable to be loaded due to invalid or missing dependencies: {0}. mod.incompletedependencies.details = 잘못되었거나 누락한 종속성으로 인해 이 모드를 불러올 수 없습니다: {0}.
mod.requiresversion = 필요한 게임 버전: [red]{0} mod.requiresversion = 필요한 게임 버전: [red]{0}
mod.errors = 콘텐츠를 불러오는 중에 오류가 발생함 mod.errors = 콘텐츠를 불러오는 중에 오류가 발생함
mod.noerrorplay = [scarlet]오류가 있는 모드가 있습니다.[] 영향을 받는 모드를 비활성화하거나 플레이하기 전에 오류를 수정하세요. mod.noerrorplay = [scarlet]오류가 있는 모드가 있습니다.[] 영향을 받는 모드를 비활성화하거나 플레이하기 전에 오류를 수정하세요.
@@ -335,7 +335,7 @@ command.repair = 수리
command.rebuild = 재건 command.rebuild = 재건
command.assist = 플레이어 지원 command.assist = 플레이어 지원
command.move = 이동 command.move = 이동
command.boost = Boost command.boost = 비행
openlink = 링크 열기 openlink = 링크 열기
copylink = 링크 복사 copylink = 링크 복사
back = 뒤로가기 back = 뒤로가기
@@ -411,11 +411,11 @@ editor.mapinfo = 맵 정보
editor.author = 제작자: editor.author = 제작자:
editor.description = 설명: editor.description = 설명:
editor.nodescription = 맵을 공유하려면 최소 4자 이상의 설명이 있어야 합니다. editor.nodescription = 맵을 공유하려면 최소 4자 이상의 설명이 있어야 합니다.
editor.waves = 단계: editor.waves = 단계
editor.rules = 규칙: editor.rules = 규칙
editor.generation = 지형 생성: editor.generation = 지형 생성
editor.objectives = 목표 editor.objectives = 목표
editor.ingame = 게임 편집 editor.ingame = 인게임 편집
editor.playtest = 맵 테스트 editor.playtest = 맵 테스트
editor.publish.workshop = 창작마당 게시 editor.publish.workshop = 창작마당 게시
editor.newmap = 맵 만들기 editor.newmap = 맵 만들기
@@ -795,7 +795,7 @@ sector.atlas.description = 이 지역은 각기 다른 지형을 포함하고
sector.split.description = 이 지역에 최소한으로 존재하는 적 주둔군은 새로운 운송 기술을 시험하기에 완벽합니다. sector.split.description = 이 지역에 최소한으로 존재하는 적 주둔군은 새로운 운송 기술을 시험하기에 완벽합니다.
sector.basin.description = {임시}\n\n현재의 마지막 지역. 이 지역은 도전 레벨입니다 - 이후 릴리즈에서 많은 지역이 더 추가될 예정입니다. sector.basin.description = {임시}\n\n현재의 마지막 지역. 이 지역은 도전 레벨입니다 - 이후 릴리즈에서 많은 지역이 더 추가될 예정입니다.
sector.marsh.description = 이 지역은 아르키사이트가 풍부하지만 분출구의 수는 한정적입니다.\n[accent]화학적 연소실[]을 건설하여 전력을 생산하시오. sector.marsh.description = 이 지역은 아르키사이트가 풍부하지만 분출구의 수는 한정적입니다.\n[accent]화학적 연소실[]을 건설하여 전력을 생산하시오.
sector.peaks.description = 이 지역의 산악 지형은 대부분의 기체를 무용지물로 만들었습니다. 비행 기체가 필요합니다.\n적의 방공망에 유의하십시오. 일부 시설은 지원 건물을 공격하여 무력화시킬 수 있습니다. sector.peaks.description = 이 지역의 산악 지형은 대부분의 기체를 무용지물로 만들었습니다. 비행 가능한 기체가 필요합니다.\n적의 방공망에 유의하십시오. 일부 시설은 지원 건물을 공격하여 무력화시킬 수 있습니다.
sector.ravine.description = 적의 중요한 이동 경로이긴 하지만, 해당 구역에선 적의 코어가 감지되지 않았습니다. 다양한 적군을 맞닥뜨릴 것으로 예상됩니다.\n[accent]설금[]을 생산하십시오. 포탑 [accent]어플릭트[]를 건설하십시오. sector.ravine.description = 적의 중요한 이동 경로이긴 하지만, 해당 구역에선 적의 코어가 감지되지 않았습니다. 다양한 적군을 맞닥뜨릴 것으로 예상됩니다.\n[accent]설금[]을 생산하십시오. 포탑 [accent]어플릭트[]를 건설하십시오.
sector.caldera-erekir.description = 이 지역에서 탐지된 자원은 여러 섬에 분산되어 있습니다 .\n드론을 기반으로 한 운송수단을 연구하고 활용하시오. sector.caldera-erekir.description = 이 지역에서 탐지된 자원은 여러 섬에 분산되어 있습니다 .\n드론을 기반으로 한 운송수단을 연구하고 활용하시오.
sector.stronghold.description = 이 지역의 대규모 적 야영지에는 적들이 지키고 있는 상당한 양의 [accent]토륨[] 매장지가 있습니다.\n더 높은 등급의 기체와 포탑을 연구할 때 사용합니다. sector.stronghold.description = 이 지역의 대규모 적 야영지에는 적들이 지키고 있는 상당한 양의 [accent]토륨[] 매장지가 있습니다.\n더 높은 등급의 기체와 포탑을 연구할 때 사용합니다.
@@ -888,6 +888,7 @@ stat.repairspeed = 수리 속도
stat.weapons = 무기 stat.weapons = 무기
stat.bullet = 탄환 stat.bullet = 탄환
stat.moduletier = 모듈 등급 stat.moduletier = 모듈 등급
stat.unittype = Unit Type
stat.speedincrease = 속도 증가 stat.speedincrease = 속도 증가
stat.range = 사거리 stat.range = 사거리
stat.drilltier = 채굴 가능 stat.drilltier = 채굴 가능
@@ -981,6 +982,8 @@ bullet.splashdamage = [stat]{0}[lightgray] 범위 피해량 ~ [stat]{1}[lightgra
bullet.incendiary = [stat]방화[] bullet.incendiary = [stat]방화[]
bullet.homing = [stat]유도[] bullet.homing = [stat]유도[]
bullet.armorpierce = [stat]방어 관통 bullet.armorpierce = [stat]방어 관통
bullet.suppression = [stat]{0} sec[lightgray] 수리 억제 ~ [stat]{1}[lightgray] 타일
bullet.interval = [stat]{0}/sec[lightgray] 간격 탄환:
bullet.frags = [stat]{0}[lightgray]개 파편 탄환:[][] bullet.frags = [stat]{0}[lightgray]개 파편 탄환:[][]
bullet.lightning = [stat]{0}[lightgray]x 전격 ~ [stat]{1}[lightgray] 피해량[][][][] bullet.lightning = [stat]{0}[lightgray]x 전격 ~ [stat]{1}[lightgray] 피해량[][][][]
bullet.buildingdamage = [stat]{0}%[lightgray] 건물 피해량[][] bullet.buildingdamage = [stat]{0}%[lightgray] 건물 피해량[][]
@@ -1094,8 +1097,8 @@ setting.bridgeopacity.name = 터널 투명도
setting.playerchat.name = 채팅 말풍선 표시 setting.playerchat.name = 채팅 말풍선 표시
setting.showweather.name = 날씨 그래픽 표시 setting.showweather.name = 날씨 그래픽 표시
setting.hidedisplays.name = 로직 디스플레이 숨김 setting.hidedisplays.name = 로직 디스플레이 숨김
public.confirm = 게임을 모두에게 공개하시겠습니까?\n[accent]모든 플레이어가 게임에 참여할 수 있습니다.\n[lightgray]설정->게임->멀티플레이 공용 서버로 표시에서 나중에 변경할 수 있습니다.\n\n[sky]번역자 추가[]\n[accent]친구끼리 하려고 이 기능을 활성화 한 뒤에, 친구 외에 다른 플레이어가 들어왔을 때\n해당 플레이어를 차단하는 행위는 비매너를 넘어서는 얌체 행위 그 자체입니다.\n정말로 [scarlet]많은 다른 플레이어들이 오길 원한다[]면 확인하세요. steam.friendsonly = 친구 전용
public.confirm.really = [red]친구하고 플레이 하고 싶으면 [scarlet]공용 서버[] 대신에 [green]친구 초대[] 를 사용하세요. 정말로 [scarlet]공용 서버[] 를 열겠습니까?[] steam.friendsonly.tooltip = 게임에 스팀 친구만 접속할 수 있는가에 대한 여부입니다.체크를 해제하면, 누구나 접속할 수 있습니다.
public.beta = 베타 버전의 게임은 공개 서버를 만들 수 없습니다. public.beta = 베타 버전의 게임은 공개 서버를 만들 수 없습니다.
uiscale.reset = UI 스케일이 변경되었습니다.\n"확인"버튼을 눌러 저장하세요.\n[accent] {0}[][scarlet]초 후에 예전 설정으로 되돌리고 게임을 종료합니다... uiscale.reset = UI 스케일이 변경되었습니다.\n"확인"버튼을 눌러 저장하세요.\n[accent] {0}[][scarlet]초 후에 예전 설정으로 되돌리고 게임을 종료합니다...
uiscale.cancel = 취소 후 나가기 uiscale.cancel = 취소 후 나가기
@@ -1147,8 +1150,8 @@ keybind.select.name = 선택/공격
keybind.diagonal_placement.name = 대각선 설치 keybind.diagonal_placement.name = 대각선 설치
keybind.pick.name = 블록 선택 keybind.pick.name = 블록 선택
keybind.break_block.name = 블록 파괴 keybind.break_block.name = 블록 파괴
keybind.select_all_units = 전체 기체 선택 keybind.select_all_units.name = 전체 기체 선택
keybind.select_all_unit_factories = 전체 기체 공장 선택 keybind.select_all_unit_factories.name = 전체 기체 공장 선택
keybind.deselect.name = 선택해제 keybind.deselect.name = 선택해제
keybind.pickupCargo.name = 화물 집기 keybind.pickupCargo.name = 화물 집기
keybind.dropCargo.name = 화물 내려놓기 keybind.dropCargo.name = 화물 내려놓기
@@ -1224,7 +1227,7 @@ rules.deconstructrefundmultiplier = 철거 환불 배수
rules.waitForWaveToEnd = 한 단계가 끝날때까지 대기 rules.waitForWaveToEnd = 한 단계가 끝날때까지 대기
rules.dropzoneradius = 스폰 구역 범위: [lightgray] (타일) rules.dropzoneradius = 스폰 구역 범위: [lightgray] (타일)
rules.unitammo = 기체 탄약 필요 rules.unitammo = 기체 탄약 필요
rules.enemyteam = 상대 rules.enemyteam =
rules.playerteam = 플레이어 팀 rules.playerteam = 플레이어 팀
rules.title.waves = 단계 rules.title.waves = 단계
rules.title.resourcesbuilding = 자원 & 건물 rules.title.resourcesbuilding = 자원 & 건물
@@ -1237,9 +1240,9 @@ rules.title.planet = 행성
rules.lighting = 조명 표시 rules.lighting = 조명 표시
rules.fog = 전장의 안개 rules.fog = 전장의 안개
rules.fire = 방화 허용 rules.fire = 방화 허용
rules.anyenv = <상관없음> rules.anyenv = <모두>
rules.explosions = 블록/기체 폭발 피해 rules.explosions = 블록/기체 폭발 피해
rules.ambientlight = 자연 조명 표시 rules.ambientlight = 주변광
rules.weather = 날씨 추가 rules.weather = 날씨 추가
rules.weather.frequency = 빈도: rules.weather.frequency = 빈도:
rules.weather.always = 항상 rules.weather.always = 항상
@@ -1780,8 +1783,8 @@ hint.coreUpgrade = 코어는 [accent]상위 코어를 위에 설치[]하여 업
hint.presetLaunch = [accent]얼어붙은 숲[]과 같은 회색[accent]캠페인 지역[]은 어디에서나 출격해서 올 수 있습니다. 주변 지역을 점령하지 않아도 됩니다.\n\n이와 같은 [accent]네임드 지역[]들은 [accent]선택적[]입니다. hint.presetLaunch = [accent]얼어붙은 숲[]과 같은 회색[accent]캠페인 지역[]은 어디에서나 출격해서 올 수 있습니다. 주변 지역을 점령하지 않아도 됩니다.\n\n이와 같은 [accent]네임드 지역[]들은 [accent]선택적[]입니다.
hint.presetDifficulty = 이 지역은 [scarlet]위험도가 높은[] 지역입니다.\n적절한 기술과 준비 없이 이런 지역들로 출격하는건 [accent]추천하지 않습니다[]. hint.presetDifficulty = 이 지역은 [scarlet]위험도가 높은[] 지역입니다.\n적절한 기술과 준비 없이 이런 지역들로 출격하는건 [accent]추천하지 않습니다[].
hint.coreIncinerate = 코어가 자원으로 가득 찬 후에 받는 모든 자원들은 [accent]소각[]될 것입니다. hint.coreIncinerate = 코어가 자원으로 가득 찬 후에 받는 모든 자원들은 [accent]소각[]될 것입니다.
hint.factoryControl = 기체 공장의 [accent]출력 위치[]를 설정하려면, 명령 모드에서 공장 블록을 클릭한 다음, 마우스 오른쪽 버튼으로 위치를 지정합니다.\n생산된 유닛은 자동으로 그곳으로 이동합니다. hint.factoryControl = 기체 공장의 [accent]출력 목적지[]를 설정하려면, 명령 모드에서 공장 블록을 클릭한 다음, 마우스 오른쪽 버튼으로 위치를 지정합니다.\n생산된 유닛은 자동으로 그곳으로 이동합니다.
hint.factoryControl.mobile = 기체 공장의 [accent]출력 위치[]를 설정하려면, 명령 모드에서 공장 블록을 클릭한 다음, 눌러서 위치를 지정합니다.\n생산된 유닛은 자동으로 그곳으로 이동합니다. hint.factoryControl.mobile = 기체 공장의 [accent]출력 목적지[]를 설정하려면, 명령 모드에서 공장 블록을 클릭한 다음, 눌러서 위치를 지정합니다.\n생산된 유닛은 자동으로 그곳으로 이동합니다.
gz.mine = 주변 바닥에 있는 \uf8c4 [accent]구리 광석[]으로 이동하고, 광석을 눌러서 채굴을 시작하세요. gz.mine = 주변 바닥에 있는 \uf8c4 [accent]구리 광석[]으로 이동하고, 광석을 눌러서 채굴을 시작하세요.
gz.mine.mobile = 주변 바닥에 있는 \uf8c4 [accent]구리 광석[]으로 이동하고, 광석을 눌러서 채굴을 시작하세요. gz.mine.mobile = 주변 바닥에 있는 \uf8c4 [accent]구리 광석[]으로 이동하고, 광석을 눌러서 채굴을 시작하세요.
gz.research = \ue875 연구 기록을 여세요.\n\uf870 [accent]기계식 드릴[]을 연구하고, 그 후 오른쪽 아래에 있는 메뉴에서 선택하세요.\n구리조각 위를 눌러서 배치합니다. gz.research = \ue875 연구 기록을 여세요.\n\uf870 [accent]기계식 드릴[]을 연구하고, 그 후 오른쪽 아래에 있는 메뉴에서 선택하세요.\n구리조각 위를 눌러서 배치합니다.
@@ -2117,10 +2120,10 @@ unit.mace.description = 주변의 모든 적을 향해 화염 줄기를 발사
unit.fortress.description = 지상 목표물을 향해 장거리 포탄을 발사합니다. unit.fortress.description = 지상 목표물을 향해 장거리 포탄을 발사합니다.
unit.scepter.description = 주변의 모든 적을 향해 장전된 탄환을 일제히 발사합니다. unit.scepter.description = 주변의 모든 적을 향해 장전된 탄환을 일제히 발사합니다.
unit.reign.description = 주변의 모든 적을 향해 거대한 관통 탄환을 일제히 발사합니다. unit.reign.description = 주변의 모든 적을 향해 거대한 관통 탄환을 일제히 발사합니다.
unit.nova.description = 적에게 피해를 주고, 아군 구조물을 수리하는 레이저 볼트를 발사합니다. 비행할 수 있습니다. unit.nova.description = 적에게 피해를 주고, 아군 구조물을 수리하는 레이저 볼트를 발사합니다. 이륙할 수 있습니다.
unit.pulsar.description = 적에게 피해를 주고, 아군 구조물을 수리하는 전격을 발사합니다. 비행할 수 있습니다. unit.pulsar.description = 적에게 피해를 주고, 아군 구조물을 수리하는 전격을 발사합니다. 이륙할 수 있습니다.
unit.quasar.description = 적에게 피해를 주고, 아군 구조물을 수리하는 관통 레이저 빔을 발사합니다. 비행할 수 있습니다. 역장을 가지고 있습니다. unit.quasar.description = 적에게 피해를 주고, 아군 구조물을 수리하는 관통 레이저 빔을 발사합니다. 이륙할 수 있습니다. 역장을 가지고 있습니다.
unit.vela.description = 적에게 피해를 주고, 아군 구조물을 수리하는 거대한 지속적인 레이저 빔을 발사합니다. 비행할 수 있습니다. unit.vela.description = 적에게 피해를 주고, 아군 구조물을 수리하는 거대한 지속적인 레이저 빔을 발사합니다. 이륙할 수 있습니다.
unit.corvus.description = 적에게 피해를 주고, 아군 구조물을 수리하는 거대한 레이저 블레스트를 발사합니다. 대부분의 지형 위를 밟을 수 있습니다. unit.corvus.description = 적에게 피해를 주고, 아군 구조물을 수리하는 거대한 레이저 블레스트를 발사합니다. 대부분의 지형 위를 밟을 수 있습니다.
unit.crawler.description = 적을 향해 달려가 자폭하며, 큰 폭발을 일으킵니다. unit.crawler.description = 적을 향해 달려가 자폭하며, 큰 폭발을 일으킵니다.
unit.atrax.description = 지상 목표물을 향해 광재 구체를 발사합니다. 대부분의 지형 위를 밟을 수 있습니다. unit.atrax.description = 지상 목표물을 향해 광재 구체를 발사합니다. 대부분의 지형 위를 밟을 수 있습니다.
@@ -2204,6 +2207,7 @@ lst.flushmessage = 텍스트 버퍼로부터 화면에 메세지를 표시\n이
lst.cutscene = 플레이어 카메라 조작 lst.cutscene = 플레이어 카메라 조작
lst.setflag = 모든 프로세서가 읽을 수 있는 전역 플래그 설정 lst.setflag = 모든 프로세서가 읽을 수 있는 전역 플래그 설정
lst.getflag = 전역 플래그가 설정되어 있는지 확인 lst.getflag = 전역 플래그가 설정되어 있는지 확인
lst.setprop = 기체 혹은 건물의 속성을 설정합니다.
logic.nounitbuild = [red]기체의 건설 로직은 여기서 허용되지 않습니다. logic.nounitbuild = [red]기체의 건설 로직은 여기서 허용되지 않습니다.

View File

@@ -876,6 +876,7 @@ stat.repairspeed = Repair Speed
stat.weapons = Weapons stat.weapons = Weapons
stat.bullet = Bullet stat.bullet = Bullet
stat.moduletier = Module Tier stat.moduletier = Module Tier
stat.unittype = Unit Type
stat.speedincrease = Greičio Padidėjimas stat.speedincrease = Greičio Padidėjimas
stat.range = Atstumas stat.range = Atstumas
stat.drilltier = Gręžiama stat.drilltier = Gręžiama
@@ -969,6 +970,8 @@ bullet.splashdamage = [stat]{0}[lightgray] zonos žalos ~[stat] {1}[lightgray] b
bullet.incendiary = [stat]uždegantis bullet.incendiary = [stat]uždegantis
bullet.homing = [stat]sekimas bullet.homing = [stat]sekimas
bullet.armorpierce = [stat]armor piercing bullet.armorpierce = [stat]armor piercing
bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
bullet.frags = [stat]{0}[lightgray]x frag bullets: bullet.frags = [stat]{0}[lightgray]x frag bullets:
bullet.lightning = [stat]{0}[lightgray]x lightning ~ [stat]{1}[lightgray] damage bullet.lightning = [stat]{0}[lightgray]x lightning ~ [stat]{1}[lightgray] damage
bullet.buildingdamage = [stat]{0}%[lightgray] building damage bullet.buildingdamage = [stat]{0}%[lightgray] building damage
@@ -1082,8 +1085,8 @@ setting.bridgeopacity.name = Tilto Nepermatomumas
setting.playerchat.name = Rodyti Pokalbių Teksto Burbulus Virš Žaidėjų setting.playerchat.name = Rodyti Pokalbių Teksto Burbulus Virš Žaidėjų
setting.showweather.name = Show Weather Graphics setting.showweather.name = Show Weather Graphics
setting.hidedisplays.name = Hide Logic Displays setting.hidedisplays.name = Hide Logic Displays
public.confirm = Ar norite savo žaidimą paversti viešu?\n[accent]Bet kas galės įeiti į jūsų žaidimą.\n[lightgray]Tai gali būti pakeista nuėjus į Nustatymai->Žaidimas->Viešojo Žaidimo Matomumas. steam.friendsonly = Friends Only
public.confirm.really = If you want to play with friends, use [green]Invite Friend[] instead of a [scarlet]Public server[]!\nAre you sure you want to make your game [scarlet]public[]? steam.friendsonly.tooltip = Whether only Steam friends will be able to join your game.\nUnchecking this box will make your game public - anyone can join.
public.beta = Įsiminkite, jog beta versijoje negalima sukrti viešų kambarių. public.beta = Įsiminkite, jog beta versijoje negalima sukrti viešų kambarių.
uiscale.reset = UI mastelis buvo pakeistas.\nSpauskite "GERAI", norėdami palikti šį mastelį.\n[scarlet]Atšaukiama ir išeinama po[accent] {0}[] sekundžių... uiscale.reset = UI mastelis buvo pakeistas.\nSpauskite "GERAI", norėdami palikti šį mastelį.\n[scarlet]Atšaukiama ir išeinama po[accent] {0}[] sekundžių...
uiscale.cancel = Atšaukti ir Išeiti uiscale.cancel = Atšaukti ir Išeiti
@@ -1135,8 +1138,8 @@ keybind.select.name = Pasirinkti/Šauti
keybind.diagonal_placement.name = Įstrižas Padėjimas keybind.diagonal_placement.name = Įstrižas Padėjimas
keybind.pick.name = Pasirinkti Bloką keybind.pick.name = Pasirinkti Bloką
keybind.break_block.name = Išgriauti Bloką keybind.break_block.name = Išgriauti Bloką
keybind.select_all_units = Select All Units keybind.select_all_units.name = Select All Units
keybind.select_all_unit_factories = Select All Unit Factories keybind.select_all_unit_factories.name = Select All Unit Factories
keybind.deselect.name = Panaikinti Pasirinkimą keybind.deselect.name = Panaikinti Pasirinkimą
keybind.pickupCargo.name = Pickup Cargo keybind.pickupCargo.name = Pickup Cargo
keybind.dropCargo.name = Drop Cargo keybind.dropCargo.name = Drop Cargo
@@ -2187,6 +2190,7 @@ lst.flushmessage = Display a message on the screen from the text buffer.\nWill w
lst.cutscene = Manipulate the player camera. lst.cutscene = Manipulate the player camera.
lst.setflag = Set a global flag that can be read by all processors. lst.setflag = Set a global flag that can be read by all processors.
lst.getflag = Check if a global flag is set. lst.getflag = Check if a global flag is set.
lst.setprop = Sets a property of a unit or building.
logic.nounitbuild = [red]Unit building logic is not allowed here. logic.nounitbuild = [red]Unit building logic is not allowed here.
lenum.type = Type of building/unit.\ne.g. for any router, this will return [accent]@router[].\nNot a string. lenum.type = Type of building/unit.\ne.g. for any router, this will return [accent]@router[].\nNot a string.
lenum.shoot = Shoot at a position. lenum.shoot = Shoot at a position.

View File

@@ -888,6 +888,7 @@ stat.repairspeed = Repareersnelheid
stat.weapons = Wapens stat.weapons = Wapens
stat.bullet = Kogel stat.bullet = Kogel
stat.moduletier = Module Niveau stat.moduletier = Module Niveau
stat.unittype = Unit Type
stat.speedincrease = Snelheidsverhoging stat.speedincrease = Snelheidsverhoging
stat.range = Bereik stat.range = Bereik
stat.drilltier = Valt te delven stat.drilltier = Valt te delven
@@ -981,6 +982,8 @@ bullet.splashdamage = [stat]{0}[lightgray] gebied scade ~[stat] {1}[lightgray] t
bullet.incendiary = [stat]brandstichtend bullet.incendiary = [stat]brandstichtend
bullet.homing = [stat]doelzoekend bullet.homing = [stat]doelzoekend
bullet.armorpierce = [stat]pantserdoorborend bullet.armorpierce = [stat]pantserdoorborend
bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
bullet.frags = [stat]{0}[lightgray]x fragment kogels: bullet.frags = [stat]{0}[lightgray]x fragment kogels:
bullet.lightning = [stat]{0}[lightgray]x bliksem ~ [stat]{1}[lightgray] schade bullet.lightning = [stat]{0}[lightgray]x bliksem ~ [stat]{1}[lightgray] schade
bullet.buildingdamage = [stat]{0}%[lightgray] gebouwschade bullet.buildingdamage = [stat]{0}%[lightgray] gebouwschade
@@ -1094,8 +1097,8 @@ setting.bridgeopacity.name = Brug Transparantie
setting.playerchat.name = Toon Chat setting.playerchat.name = Toon Chat
setting.showweather.name = Toon Weer Graphics setting.showweather.name = Toon Weer Graphics
setting.hidedisplays.name = Verberg Logische Displays setting.hidedisplays.name = Verberg Logische Displays
public.confirm = Wil je je game publiek maken?\n[accent]Iedereen kan je spel dan joinen.\n[lightgray]Dit kan je later veranderen in Instellingen->Spel->Publieke Server Zichtbaarheid. steam.friendsonly = Friends Only
public.confirm.really = Als je met een vriend wilt spelen, gebruik dan de optie [green]Nodig Vriend Uit[] in plaats van [scarlet]Publieke Server[]!\nWeet je zeker dat je je server [scarlet]public[] wilt maken? steam.friendsonly.tooltip = Whether only Steam friends will be able to join your game.\nUnchecking this box will make your game public - anyone can join.
public.beta = Onthoud dat b<>ta versies geen publieke lobby's kunnen maken. public.beta = Onthoud dat b<>ta versies geen publieke lobby's kunnen maken.
uiscale.reset = UI formaat is geweizigd.\nKlik op "OK" om het te bevestigen.\n[scarlet]Anders word het in[accent] {0}[] seconden ongedaan gemaakt... uiscale.reset = UI formaat is geweizigd.\nKlik op "OK" om het te bevestigen.\n[scarlet]Anders word het in[accent] {0}[] seconden ongedaan gemaakt...
uiscale.cancel = Annuleer & Sluit uiscale.cancel = Annuleer & Sluit
@@ -1147,8 +1150,8 @@ keybind.select.name = Selecteer/Schiet
keybind.diagonal_placement.name = Plaats Diagonaal keybind.diagonal_placement.name = Plaats Diagonaal
keybind.pick.name = Kies Blok keybind.pick.name = Kies Blok
keybind.break_block.name = Breek Blok keybind.break_block.name = Breek Blok
keybind.select_all_units = Selecteer Alle Eenheden keybind.select_all_units.name = Selecteer Alle Eenheden
keybind.select_all_unit_factories = Selecteer Alle Eenheidsfabrieken keybind.select_all_unit_factories.name = Selecteer Alle Eenheidsfabrieken
keybind.deselect.name = Deselecteer keybind.deselect.name = Deselecteer
keybind.pickupCargo.name = Pak Vracht Op keybind.pickupCargo.name = Pak Vracht Op
keybind.dropCargo.name = Laat Vracht Vallen keybind.dropCargo.name = Laat Vracht Vallen
@@ -2200,6 +2203,7 @@ lst.flushmessage = Display a message on the screen from the text buffer.\nWill w
lst.cutscene = Manipulate the player camera. lst.cutscene = Manipulate the player camera.
lst.setflag = Set a global flag that can be read by all processors. lst.setflag = Set a global flag that can be read by all processors.
lst.getflag = Check if a global flag is set. lst.getflag = Check if a global flag is set.
lst.setprop = Sets a property of a unit or building.
logic.nounitbuild = [red]Unit building logic is not allowed here. logic.nounitbuild = [red]Unit building logic is not allowed here.
lenum.type = Type of building/unit.\ne.g. for any router, this will return [accent]@router[].\nNot a string. lenum.type = Type of building/unit.\ne.g. for any router, this will return [accent]@router[].\nNot a string.
lenum.shoot = Shoot at a position. lenum.shoot = Shoot at a position.

View File

@@ -876,6 +876,7 @@ stat.repairspeed = Repair Speed
stat.weapons = Weapons stat.weapons = Weapons
stat.bullet = Bullet stat.bullet = Bullet
stat.moduletier = Module Tier stat.moduletier = Module Tier
stat.unittype = Unit Type
stat.speedincrease = Speed Increase stat.speedincrease = Speed Increase
stat.range = Range stat.range = Range
stat.drilltier = Drillables stat.drilltier = Drillables
@@ -969,6 +970,8 @@ bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
bullet.incendiary = [stat]incendiary bullet.incendiary = [stat]incendiary
bullet.homing = [stat]homing bullet.homing = [stat]homing
bullet.armorpierce = [stat]armor piercing bullet.armorpierce = [stat]armor piercing
bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
bullet.frags = [stat]{0}[lightgray]x frag bullets: bullet.frags = [stat]{0}[lightgray]x frag bullets:
bullet.lightning = [stat]{0}[lightgray]x lightning ~ [stat]{1}[lightgray] damage bullet.lightning = [stat]{0}[lightgray]x lightning ~ [stat]{1}[lightgray] damage
bullet.buildingdamage = [stat]{0}%[lightgray] building damage bullet.buildingdamage = [stat]{0}%[lightgray] building damage
@@ -1082,8 +1085,8 @@ setting.bridgeopacity.name = Bridge Opacity
setting.playerchat.name = Display In-Game Chat setting.playerchat.name = Display In-Game Chat
setting.showweather.name = Show Weather Graphics setting.showweather.name = Show Weather Graphics
setting.hidedisplays.name = Hide Logic Displays setting.hidedisplays.name = Hide Logic Displays
public.confirm = Do you want to make your game public?\n[accent]Anyone will be able to join your games.\n[lightgray]This can be changed later in Settings->Game->Public Game Visibility. steam.friendsonly = Friends Only
public.confirm.really = If you want to play with friends, use [green]Invite Friend[] instead of a [scarlet]Public server[]!\nAre you sure you want to make your game [scarlet]public[]? steam.friendsonly.tooltip = Whether only Steam friends will be able to join your game.\nUnchecking this box will make your game public - anyone can join.
public.beta = Note that beta versions of the game cannot make public lobbies. public.beta = Note that beta versions of the game cannot make public lobbies.
uiscale.reset = UI scale has been changed.\nPress "OK" to confirm this scale.\n[scarlet]Reverting and exiting in[accent] {0}[] settings... uiscale.reset = UI scale has been changed.\nPress "OK" to confirm this scale.\n[scarlet]Reverting and exiting in[accent] {0}[] settings...
uiscale.cancel = Cancel & Exit uiscale.cancel = Cancel & Exit
@@ -1135,8 +1138,8 @@ keybind.select.name = Select/Shoot
keybind.diagonal_placement.name = Diagonal Placement keybind.diagonal_placement.name = Diagonal Placement
keybind.pick.name = Pick Block keybind.pick.name = Pick Block
keybind.break_block.name = Break Block keybind.break_block.name = Break Block
keybind.select_all_units = Select All Units keybind.select_all_units.name = Select All Units
keybind.select_all_unit_factories = Select All Unit Factories keybind.select_all_unit_factories.name = Select All Unit Factories
keybind.deselect.name = Deselect keybind.deselect.name = Deselect
keybind.pickupCargo.name = Pickup Cargo keybind.pickupCargo.name = Pickup Cargo
keybind.dropCargo.name = Drop Cargo keybind.dropCargo.name = Drop Cargo
@@ -2187,6 +2190,7 @@ lst.flushmessage = Display a message on the screen from the text buffer.\nWill w
lst.cutscene = Manipulate the player camera. lst.cutscene = Manipulate the player camera.
lst.setflag = Set a global flag that can be read by all processors. lst.setflag = Set a global flag that can be read by all processors.
lst.getflag = Check if a global flag is set. lst.getflag = Check if a global flag is set.
lst.setprop = Sets a property of a unit or building.
logic.nounitbuild = [red]Unit building logic is not allowed here. logic.nounitbuild = [red]Unit building logic is not allowed here.
lenum.type = Type of building/unit.\ne.g. for any router, this will return [accent]@router[].\nNot a string. lenum.type = Type of building/unit.\ne.g. for any router, this will return [accent]@router[].\nNot a string.
lenum.shoot = Shoot at a position. lenum.shoot = Shoot at a position.

View File

@@ -886,6 +886,7 @@ stat.repairspeed = Prędkość napraw
stat.weapons = Bronie stat.weapons = Bronie
stat.bullet = Pocisk stat.bullet = Pocisk
stat.moduletier = Stopień Modułu stat.moduletier = Stopień Modułu
stat.unittype = Unit Type
stat.speedincrease = Zwiększenie prędkości stat.speedincrease = Zwiększenie prędkości
stat.range = Zasięg stat.range = Zasięg
stat.drilltier = Co może wykopać stat.drilltier = Co może wykopać
@@ -979,6 +980,8 @@ bullet.splashdamage = [stat]{0}[lightgray] Obrażenia obszarowe ~[stat] {1}[ligh
bullet.incendiary = [stat]zapalający bullet.incendiary = [stat]zapalający
bullet.homing = [stat]naprowadzający bullet.homing = [stat]naprowadzający
bullet.armorpierce = [stat]przebijający pancerz bullet.armorpierce = [stat]przebijający pancerz
bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
bullet.frags = [stat]{0}[lightgray]x pociski odłamkowe: bullet.frags = [stat]{0}[lightgray]x pociski odłamkowe:
bullet.lightning = [stat]{0}[lightgray]x błyskawice ~ [stat]{1}[lightgray] Obrażenia bullet.lightning = [stat]{0}[lightgray]x błyskawice ~ [stat]{1}[lightgray] Obrażenia
bullet.buildingdamage = [stat]{0}%[lightgray] obrażeń budynkom bullet.buildingdamage = [stat]{0}%[lightgray] obrażeń budynkom
@@ -1092,8 +1095,8 @@ setting.bridgeopacity.name = Przezroczystość mostów
setting.playerchat.name = Wyświetlaj dymek czatu w grze setting.playerchat.name = Wyświetlaj dymek czatu w grze
setting.showweather.name = Pokaż pogodę setting.showweather.name = Pokaż pogodę
setting.hidedisplays.name = Ukryj wyświetlacze logiczne setting.hidedisplays.name = Ukryj wyświetlacze logiczne
public.confirm = Czy chcesz ustawić swoją grę jako publiczną?\n[accent]Każdy będzie mógł dołączyć do Twojej gry.\n[lightgray]Można to później zmienić w Ustawienia->Gra->Widoczność Gry Publicznej. steam.friendsonly = Friends Only
public.confirm.really = Jeśli chcesz zagrać ze znajomymi, użyj opcji [green]Zaproś Znajomych[] zamiast [scarlet]Publiczny serwer[]!\nJesteś pewny że chcesz rozpocząć grę [scarlet]publiczną[]? steam.friendsonly.tooltip = Whether only Steam friends will be able to join your game.\nUnchecking this box will make your game public - anyone can join.
public.beta = Wersje beta gry nie mogą tworzyć publicznych pokoi. public.beta = Wersje beta gry nie mogą tworzyć publicznych pokoi.
uiscale.reset = Skala interfejsu uległa zmianie.\nNaciśnij "OK" by potwierdzić zmiany.\n[scarlet]Cofanie zmian i wyjście z gry za[accent] {0}[] uiscale.reset = Skala interfejsu uległa zmianie.\nNaciśnij "OK" by potwierdzić zmiany.\n[scarlet]Cofanie zmian i wyjście z gry za[accent] {0}[]
uiscale.cancel = Anuluj i wyjdź uiscale.cancel = Anuluj i wyjdź
@@ -1145,8 +1148,8 @@ keybind.select.name = Zaznacz
keybind.diagonal_placement.name = Budowa po skosie 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.select_all_units = Wybierz Wszystkie Jednostki keybind.select_all_units.name = Wybierz Wszystkie Jednostki
keybind.select_all_unit_factories = Wybierz Wszystkie Fabryki Jednostek keybind.select_all_unit_factories.name = Wybierz Wszystkie Fabryki Jednostek
keybind.deselect.name = Odznacz keybind.deselect.name = Odznacz
keybind.pickupCargo.name = Podnieś Ładunek keybind.pickupCargo.name = Podnieś Ładunek
keybind.dropCargo.name = Opuść Ładunek keybind.dropCargo.name = Opuść Ładunek
@@ -2222,6 +2225,7 @@ lst.flushmessage = Wyświetl wiadomość na ekranie z bufora tekstowego.\nPoczek
lst.cutscene = Manipuluj kamerą gracza. lst.cutscene = Manipuluj kamerą gracza.
lst.setflag = Ustaw globalną flagę, którą mogą odczytać wszystkie procesory. lst.setflag = Ustaw globalną flagę, którą mogą odczytać wszystkie procesory.
lst.getflag = Sprawdź, czy ustawiona jest flaga globalna. lst.getflag = Sprawdź, czy ustawiona jest flaga globalna.
lst.setprop = Sets a property of a unit or building.
logic.nounitbuild = [red]Logika budowania jednostek nie jest tu dozwolona. logic.nounitbuild = [red]Logika budowania jednostek nie jest tu dozwolona.

View File

@@ -896,6 +896,7 @@ stat.repairspeed = Taxa de Reparo
stat.weapons = Armas stat.weapons = Armas
stat.bullet = Projétil stat.bullet = Projétil
stat.moduletier = Tier do Módulo stat.moduletier = Tier do Módulo
stat.unittype = Unit Type
stat.speedincrease = Aumento de velocidade stat.speedincrease = Aumento de velocidade
stat.range = Distância stat.range = Distância
stat.drilltier = Brocas stat.drilltier = Brocas
@@ -990,6 +991,8 @@ bullet.splashdamage = [stat]{0}[lightgray] de dano em área ~[stat] {1}[lightgra
bullet.incendiary = [stat]Incendiário bullet.incendiary = [stat]Incendiário
bullet.homing = [stat]Guiado bullet.homing = [stat]Guiado
bullet.armorpierce = [stat]pentração de armadura bullet.armorpierce = [stat]pentração de armadura
bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
bullet.frags = [stat]{0}[lightgray]x balas de fragmentação: bullet.frags = [stat]{0}[lightgray]x balas de fragmentação:
bullet.lightning = [stat]{0}[lightgray]x raio ~ [stat]{1}[lightgray] dano bullet.lightning = [stat]{0}[lightgray]x raio ~ [stat]{1}[lightgray] dano
bullet.buildingdamage = [stat]{0}%[lightgray] dano em construção bullet.buildingdamage = [stat]{0}%[lightgray] dano em construção
@@ -1103,8 +1106,8 @@ setting.bridgeopacity.name = Opacidade da ponte
setting.playerchat.name = Mostrar chat em jogo setting.playerchat.name = Mostrar chat em jogo
setting.showweather.name = Mostrar Gráficos do Clima setting.showweather.name = Mostrar Gráficos do Clima
setting.hidedisplays.name = Ocultar Displays de Lógicos setting.hidedisplays.name = Ocultar Displays de Lógicos
public.confirm = Você quer fazer sua partida pública?\n[accent]Qualquer um será capaz de entrar na sua partida.\n[lightgray]Isso pode ser mudado depois em Configurações->Jogo->Visibilidade da partida pública. steam.friendsonly = Friends Only
public.confirm.really = Se você quer jogar com amigos, use [green]Convidar Amigos[] ao invés de um [scarlet]Server Público[]!\nTem certeza que quer tornar seu jogo[scarlet]público[]? steam.friendsonly.tooltip = Whether only Steam friends will be able to join your game.\nUnchecking this box will make your game public - anyone can join.
public.beta = Note que as versões beta do jogo não podem fazer salas públicas. public.beta = Note que as versões beta do jogo não podem fazer salas públicas.
uiscale.reset = A escala da interface foi mudada.\nPressione "OK" para confirmar esta escala.\n[scarlet]Revertendo e saindo em[accent] {0}[] segundos... uiscale.reset = A escala da interface foi mudada.\nPressione "OK" para confirmar esta escala.\n[scarlet]Revertendo e saindo em[accent] {0}[] segundos...
uiscale.cancel = Cancelar e sair uiscale.cancel = Cancelar e sair
@@ -1156,8 +1159,8 @@ keybind.select.name = Selecionar
keybind.diagonal_placement.name = Posicionamento Diagonal keybind.diagonal_placement.name = Posicionamento Diagonal
keybind.pick.name = Pegar bloco keybind.pick.name = Pegar bloco
keybind.break_block.name = Quebrar bloco keybind.break_block.name = Quebrar bloco
keybind.select_all_units = Select All Units keybind.select_all_units.name = Select All Units
keybind.select_all_unit_factories = Select All Unit Factories keybind.select_all_unit_factories.name = Select All Unit Factories
keybind.deselect.name = Desmarcar keybind.deselect.name = Desmarcar
keybind.pickupCargo.name = Pegar Carga keybind.pickupCargo.name = Pegar Carga
keybind.dropCargo.name = Soltar Carga keybind.dropCargo.name = Soltar Carga
@@ -2220,6 +2223,7 @@ lst.flushmessage = Display a message on the screen from the text buffer.\nWill w
lst.cutscene = Manipulate the player camera. lst.cutscene = Manipulate the player camera.
lst.setflag = Set a global flag that can be read by all processors. lst.setflag = Set a global flag that can be read by all processors.
lst.getflag = Check if a global flag is set. lst.getflag = Check if a global flag is set.
lst.setprop = Sets a property of a unit or building.
logic.nounitbuild = [red]Unit building logic is not allowed here. logic.nounitbuild = [red]Unit building logic is not allowed here.

View File

@@ -876,6 +876,7 @@ stat.repairspeed = Repair Speed
stat.weapons = Weapons stat.weapons = Weapons
stat.bullet = Bullet stat.bullet = Bullet
stat.moduletier = Module Tier stat.moduletier = Module Tier
stat.unittype = Unit Type
stat.speedincrease = Aumento de velocidade stat.speedincrease = Aumento de velocidade
stat.range = Distância stat.range = Distância
stat.drilltier = Furáveis stat.drilltier = Furáveis
@@ -969,6 +970,8 @@ bullet.splashdamage = [stat]{0}[lightgray] Dano em área ~[stat] {1}[lightgray]
bullet.incendiary = [stat]Incendiário bullet.incendiary = [stat]Incendiário
bullet.homing = [stat]Guiado bullet.homing = [stat]Guiado
bullet.armorpierce = [stat]armor piercing bullet.armorpierce = [stat]armor piercing
bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
bullet.frags = [stat]{0}[lightgray]x frag bullets: bullet.frags = [stat]{0}[lightgray]x frag bullets:
bullet.lightning = [stat]{0}[lightgray]x lightning ~ [stat]{1}[lightgray] damage bullet.lightning = [stat]{0}[lightgray]x lightning ~ [stat]{1}[lightgray] damage
bullet.buildingdamage = [stat]{0}%[lightgray] building damage bullet.buildingdamage = [stat]{0}%[lightgray] building damage
@@ -1082,8 +1085,8 @@ setting.bridgeopacity.name = Opacidade da Ponte
setting.playerchat.name = Mostrar chat em jogo setting.playerchat.name = Mostrar chat em jogo
setting.showweather.name = Show Weather Graphics setting.showweather.name = Show Weather Graphics
setting.hidedisplays.name = Hide Logic Displays setting.hidedisplays.name = Hide Logic Displays
public.confirm = Queres que o teu jogo fique publico?\n[accent]Qualquer jogador vai conseguir juntar-se ao teu jogo.\n[lightgray]Isto pode ser alterado mais tarde in Settings->Game->Public Game Visibility. steam.friendsonly = Friends Only
public.confirm.really = If you want to play with friends, use [green]Invite Friend[] instead of a [scarlet]Public server[]!\nAre you sure you want to make your game [scarlet]public[]? steam.friendsonly.tooltip = Whether only Steam friends will be able to join your game.\nUnchecking this box will make your game public - anyone can join.
public.beta = Observe que as versões beta do jogo não podem criar lobbies públicos. public.beta = Observe que as versões beta do jogo não podem criar lobbies públicos.
uiscale.reset = A escala da IU foi mudada.\nPressione "OK" para confirmar esta escala.\n[scarlet]Revertendo e saindo em[accent] {0}[] settings... uiscale.reset = A escala da IU foi mudada.\nPressione "OK" para confirmar esta escala.\n[scarlet]Revertendo e saindo em[accent] {0}[] settings...
uiscale.cancel = Cancelar e sair uiscale.cancel = Cancelar e sair
@@ -1135,8 +1138,8 @@ keybind.select.name = Selecionar
keybind.diagonal_placement.name = Colocação diagonal keybind.diagonal_placement.name = Colocação diagonal
keybind.pick.name = Pegar bloco keybind.pick.name = Pegar bloco
keybind.break_block.name = Quebrar bloco keybind.break_block.name = Quebrar bloco
keybind.select_all_units = Select All Units keybind.select_all_units.name = Select All Units
keybind.select_all_unit_factories = Select All Unit Factories keybind.select_all_unit_factories.name = Select All Unit Factories
keybind.deselect.name = Deselecionar keybind.deselect.name = Deselecionar
keybind.pickupCargo.name = Pickup Cargo keybind.pickupCargo.name = Pickup Cargo
keybind.dropCargo.name = Drop Cargo keybind.dropCargo.name = Drop Cargo
@@ -2187,6 +2190,7 @@ lst.flushmessage = Display a message on the screen from the text buffer.\nWill w
lst.cutscene = Manipulate the player camera. lst.cutscene = Manipulate the player camera.
lst.setflag = Set a global flag that can be read by all processors. lst.setflag = Set a global flag that can be read by all processors.
lst.getflag = Check if a global flag is set. lst.getflag = Check if a global flag is set.
lst.setprop = Sets a property of a unit or building.
logic.nounitbuild = [red]Unit building logic is not allowed here. logic.nounitbuild = [red]Unit building logic is not allowed here.
lenum.type = Type of building/unit.\ne.g. for any router, this will return [accent]@router[].\nNot a string. lenum.type = Type of building/unit.\ne.g. for any router, this will return [accent]@router[].\nNot a string.
lenum.shoot = Shoot at a position. lenum.shoot = Shoot at a position.

View File

@@ -888,6 +888,7 @@ stat.repairspeed = Viteză Reparare
stat.weapons = Arme stat.weapons = Arme
stat.bullet = Glonț stat.bullet = Glonț
stat.moduletier = Module Tier stat.moduletier = Module Tier
stat.unittype = Unit Type
stat.speedincrease = Creștere Viteză stat.speedincrease = Creștere Viteză
stat.range = Rază stat.range = Rază
stat.drilltier = Minabile stat.drilltier = Minabile
@@ -981,6 +982,8 @@ bullet.splashdamage = [stat]{0}[lightgray] forță pe raza ~[stat] {1}[lightgray
bullet.incendiary = [stat]incendiar bullet.incendiary = [stat]incendiar
bullet.homing = [stat]cu radar bullet.homing = [stat]cu radar
bullet.armorpierce = [stat]armor piercing bullet.armorpierce = [stat]armor piercing
bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
bullet.frags = [stat]{0}[lightgray]x fragmente: bullet.frags = [stat]{0}[lightgray]x fragmente:
bullet.lightning = [stat]{0}[lightgray]x fulgere ~ [stat]{1}[lightgray] forță bullet.lightning = [stat]{0}[lightgray]x fulgere ~ [stat]{1}[lightgray] forță
bullet.buildingdamage = [stat]{0}%[lightgray] forță/clădire bullet.buildingdamage = [stat]{0}%[lightgray] forță/clădire
@@ -1094,8 +1097,8 @@ setting.bridgeopacity.name = Opacitate Poduri
setting.playerchat.name = Vezi Chat Temporar setting.playerchat.name = Vezi Chat Temporar
setting.showweather.name = Vezi Vremea setting.showweather.name = Vezi Vremea
setting.hidedisplays.name = Hide Logic Displays setting.hidedisplays.name = Hide Logic Displays
public.confirm = Vrei să îți faci jocul public?\n[accent]Oricine va putea intra în jocurile tale.\n[lightgray]Poți schimba asta mai târziu din Setări->Joc->Vizibilitatea Jocurilor Publice. steam.friendsonly = Friends Only
public.confirm.really = Dacă vrei să joci cu prietenii, folosește butonul [green]Invită Prieteni[] în loc de un [scarlet]Server Public[]!\nSigur vrei să-ți faci jocul [scarlet]public[]? steam.friendsonly.tooltip = Whether only Steam friends will be able to join your game.\nUnchecking this box will make your game public - anyone can join.
public.beta = De reținut că versiunile beta ale jocului nu poate face servere publice. public.beta = De reținut că versiunile beta ale jocului nu poate face servere publice.
uiscale.reset = Scara interfeței a fost schimbată.\nApasă "OK" pt a confirma această scară.\n[scarlet]Revin setările și se iese în [accent] {0}[] secunde... uiscale.reset = Scara interfeței a fost schimbată.\nApasă "OK" pt a confirma această scară.\n[scarlet]Revin setările și se iese în [accent] {0}[] secunde...
uiscale.cancel = Anulare și ieșire uiscale.cancel = Anulare și ieșire
@@ -1147,8 +1150,8 @@ keybind.select.name = Selectează/Trage
keybind.diagonal_placement.name = Plasare Diagonală keybind.diagonal_placement.name = Plasare Diagonală
keybind.pick.name = Ia Bloc keybind.pick.name = Ia Bloc
keybind.break_block.name = Distruge Bloc keybind.break_block.name = Distruge Bloc
keybind.select_all_units = Select All Units keybind.select_all_units.name = Select All Units
keybind.select_all_unit_factories = Select All Unit Factories keybind.select_all_unit_factories.name = Select All Unit Factories
keybind.deselect.name = Deselectează keybind.deselect.name = Deselectează
keybind.pickupCargo.name = Ridică Încărcătura keybind.pickupCargo.name = Ridică Încărcătura
keybind.dropCargo.name = Aruncă Încărcătura keybind.dropCargo.name = Aruncă Încărcătura
@@ -2205,6 +2208,7 @@ lst.flushmessage = Display a message on the screen from the text buffer.\nWill w
lst.cutscene = Manipulate the player camera. lst.cutscene = Manipulate the player camera.
lst.setflag = Set a global flag that can be read by all processors. lst.setflag = Set a global flag that can be read by all processors.
lst.getflag = Check if a global flag is set. lst.getflag = Check if a global flag is set.
lst.setprop = Sets a property of a unit or building.
logic.nounitbuild = [red]Nu ai voie să construiești cu unitățile folosind procesoare. logic.nounitbuild = [red]Nu ai voie să construiești cu unitățile folosind procesoare.

View File

@@ -149,15 +149,15 @@ mod.incompatiblemod = [red]Несовместимый
mod.blacklisted = [red]Неподдерживаемый mod.blacklisted = [red]Неподдерживаемый
mod.unmetdependencies = [red]Не найдены зависимости mod.unmetdependencies = [red]Не найдены зависимости
mod.erroredcontent = [scarlet]Ошибки содержимого mod.erroredcontent = [scarlet]Ошибки содержимого
mod.circulardependencies = [red]Circular Dependencies mod.circulardependencies = [red]Цикличные зависимости
mod.incompletedependencies = [red]Incomplete Dependencies mod.incompletedependencies = [red]Недопустимые или отсутствующие зависимости
mod.requiresversion.details = Требуется версия игры: [accent]{0}[]\nВаша игра устарела. Для работы этого мода требуется более новая версия игры (возможно, альфа/бета-версия). mod.requiresversion.details = Требуется версия игры: [accent]{0}[]\nВаша игра устарела. Для работы этого мода требуется более новая версия игры (возможно, альфа/бета-версия).
mod.outdatedv7.details = Этот мод несовместим с последней версией игры. Автор должен обновить его и добавить [accent]minGameVersion: 136[] в файл [accent]mod.json[]. mod.outdatedv7.details = Этот мод несовместим с последней версией игры. Автор должен обновить его и добавить [accent]minGameVersion: 136[] в файл [accent]mod.json[].
mod.blacklisted.details = Этот мод был вручную занесен в черный список из-за того, что он вызывал сбои или другие проблемы с текущей версией игры. Не используйте его. mod.blacklisted.details = Этот мод был вручную занесен в черный список из-за того, что он вызывал сбои или другие проблемы с текущей версией игры. Не используйте его.
mod.missingdependencies.details = Для этого мода отсутствуют зависимости: {0} mod.missingdependencies.details = Для этого мода отсутствуют зависимости: {0}
mod.erroredcontent.details = Этот мод вызвал ошибки при загрузке. Попросите автора мода исправить их. mod.erroredcontent.details = Этот мод вызвал ошибки при загрузке. Попросите автора мода исправить их.
mod.circulardependencies.details = This mod has dependencies that depends on each other. mod.circulardependencies.details = Этот мод имеет зависимости, которые зависят друг от друга.
mod.incompletedependencies.details = This mod is unable to be loaded due to invalid or missing dependencies: {0}. mod.incompletedependencies.details = Этот мод не может быть загружен из-за недопустимых или отсутствующих зависимостей: {0}.
mod.requiresversion = Требуется версия игры: [red]{0} mod.requiresversion = Требуется версия игры: [red]{0}
mod.errors = Ошибки были вызваны загружаемым содержимым. mod.errors = Ошибки были вызваны загружаемым содержимым.
@@ -335,7 +335,7 @@ command.repair = Ремонтировать
command.rebuild = Восстанавливать command.rebuild = Восстанавливать
command.assist = Помогать игроку command.assist = Помогать игроку
command.move = Двигаться command.move = Двигаться
command.boost = Boost command.boost = Лететь
openlink = Открыть ссылку openlink = Открыть ссылку
copylink = Скопировать ссылку copylink = Скопировать ссылку
back = Назад back = Назад
@@ -889,6 +889,7 @@ stat.repairspeed = Скорость ремонта
stat.weapons = Орудия stat.weapons = Орудия
stat.bullet = Снаряд stat.bullet = Снаряд
stat.moduletier = Уровень модуля stat.moduletier = Уровень модуля
stat.unittype = Unit Type
stat.speedincrease = Увеличение скорости stat.speedincrease = Увеличение скорости
stat.range = Радиус действия stat.range = Радиус действия
stat.drilltier = Бурит stat.drilltier = Бурит
@@ -982,6 +983,8 @@ bullet.splashdamage = [stat]{0}[lightgray] урона в радиусе ~[stat]
bullet.incendiary = [stat]зажигательный bullet.incendiary = [stat]зажигательный
bullet.homing = [stat]самонаводящийся bullet.homing = [stat]самонаводящийся
bullet.armorpierce = [stat]бронебойный bullet.armorpierce = [stat]бронебойный
bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
bullet.frags = [stat]{0}[lightgray]x осколочный(ых) снаряд(ов): bullet.frags = [stat]{0}[lightgray]x осколочный(ых) снаряд(ов):
bullet.lightning = [stat]{0}[lightgray]x молнии ~ [stat]{1}[lightgray] урона bullet.lightning = [stat]{0}[lightgray]x молнии ~ [stat]{1}[lightgray] урона
bullet.buildingdamage = [stat]{0}%[lightgray] урона по постройкам bullet.buildingdamage = [stat]{0}%[lightgray] урона по постройкам
@@ -1095,8 +1098,8 @@ setting.bridgeopacity.name = Непрозрачность мостов
setting.playerchat.name = Отображать облака чата над игроками setting.playerchat.name = Отображать облака чата над игроками
setting.showweather.name = Отображать погоду setting.showweather.name = Отображать погоду
setting.hidedisplays.name = Скрыть логические дисплеи setting.hidedisplays.name = Скрыть логические дисплеи
public.confirm = Вы хотите, чтобы ваша игра стала публичной?\n[accent] Любой игрок сможет присоединиться к вашим играм.\n[lightgray]Позже, это можно будет изменить в Настройки->Игра->Общедоступность игры. steam.friendsonly = Friends Only
public.confirm.really = Если вы хотите поиграть с друзьями, то используйте кнопку «[green]Пригласить друзей[]» вместо создания [scarlet]публичного сервера[]!\nВы уверены, что хотите сделать свою игру [scarlet]публичной[]? steam.friendsonly.tooltip = Whether only Steam friends will be able to join your game.\nUnchecking this box will make your game public - anyone can join.
public.beta = Имейте в виду, что бета-версия игры не может делать игры публичными. public.beta = Имейте в виду, что бета-версия игры не может делать игры публичными.
uiscale.reset = Масштаб пользовательского интерфейса был изменён.\nНажмите «ОК» для подтверждения этого масштаба.\n[scarlet]Возврат настроек и выход через[accent] {0}[] секунд… uiscale.reset = Масштаб пользовательского интерфейса был изменён.\nНажмите «ОК» для подтверждения этого масштаба.\n[scarlet]Возврат настроек и выход через[accent] {0}[] секунд…
uiscale.cancel = Отменить & Выйти uiscale.cancel = Отменить & Выйти
@@ -1148,8 +1151,8 @@ keybind.select.name = Выбор/выстрел
keybind.diagonal_placement.name = Диагональное размещение keybind.diagonal_placement.name = Диагональное размещение
keybind.pick.name = Выбрать блок keybind.pick.name = Выбрать блок
keybind.break_block.name = Разрушить блок keybind.break_block.name = Разрушить блок
keybind.select_all_units = Выбрать все единицы keybind.select_all_units.name = Выбрать все единицы
keybind.select_all_unit_factories = Выбрать все заводы единиц keybind.select_all_unit_factories.name = Выбрать все заводы единиц
keybind.deselect.name = Снять выделение keybind.deselect.name = Снять выделение
keybind.pickupCargo.name = Взять груз keybind.pickupCargo.name = Взять груз
keybind.dropCargo.name = Сбросить груз keybind.dropCargo.name = Сбросить груз
@@ -1183,14 +1186,14 @@ mode.editor.name = Редактор
mode.pvp.name = PvP mode.pvp.name = PvP
mode.pvp.description = Сражайтесь против других игроков.\n[gray]Для игры требуется как минимум 2 ядра разного цвета на карте. mode.pvp.description = Сражайтесь против других игроков.\n[gray]Для игры требуется как минимум 2 ядра разного цвета на карте.
mode.attack.name = Атака mode.attack.name = Атака
mode.attack.description = Уничтожьте вражескую базу.\n[gray]Для игры требуется красное ядро на карте. mode.attack.description = Уничтожьте вражескую базу.\n[gray]Для игры требуется вражеское ядро на карте.
mode.custom = Пользовательские правила mode.custom = Пользовательские правила
rules.infiniteresources = Бесконечные ресурсы rules.infiniteresources = Бесконечные ресурсы
rules.onlydepositcore = Разрешен перенос только в ядро rules.onlydepositcore = Разрешен перенос только в ядро
rules.reactorexplosions = Взрывы реакторов rules.reactorexplosions = Взрывы реакторов
rules.coreincinerates = Ядро сжигает избыток ресурсов rules.coreincinerates = Ядро сжигает избыток ресурсов
rules.disableworldprocessors = Отключить мировые процессоры rules.disableworldprocessors = Отключить мировые процессоры
rules.schematic = Схемы разрешены rules.schematic = Разрешить схемы
rules.wavetimer = Интервал волн rules.wavetimer = Интервал волн
rules.wavesending = Отправка волн rules.wavesending = Отправка волн
rules.waves = Волны rules.waves = Волны
@@ -1203,7 +1206,7 @@ rules.rtsminattackweight = Минимальный вес для атаки
rules.cleanupdeadteams = Очистка строений побежденных команд (PvP) rules.cleanupdeadteams = Очистка строений побежденных команд (PvP)
rules.corecapture = Захват ядра после уничтожения rules.corecapture = Захват ядра после уничтожения
rules.polygoncoreprotection = Полигональная защита ядер rules.polygoncoreprotection = Полигональная защита ядер
rules.placerangecheck = Проверка диапазона размещения rules.placerangecheck = Запретить размещение турелей возле вражеских построек
rules.enemyCheat = Бесконечные ресурсы ИИ rules.enemyCheat = Бесконечные ресурсы ИИ
rules.blockhealthmultiplier = Множитель прочности блоков rules.blockhealthmultiplier = Множитель прочности блоков
rules.blockdamagemultiplier = Множитель урона блоков rules.blockdamagemultiplier = Множитель урона блоков
@@ -1218,7 +1221,7 @@ rules.unitcap = Начальный лимит единиц
rules.limitarea = Ограничить область карты rules.limitarea = Ограничить область карты
rules.enemycorebuildradius = Радиус защиты враж. ядер:[lightgray] (блок.) rules.enemycorebuildradius = Радиус защиты враж. ядер:[lightgray] (блок.)
rules.wavespacing = Интервал волн:[lightgray] (сек) rules.wavespacing = Интервал волн:[lightgray] (сек)
rules.initialwavespacing = Начальное расстояние между волнами:[lightgray] (сек) rules.initialwavespacing = Время до первой волны:[lightgray] (сек)
rules.buildcostmultiplier = Множитель затрат на строительство rules.buildcostmultiplier = Множитель затрат на строительство
rules.buildspeedmultiplier = Множитель скорости строительства rules.buildspeedmultiplier = Множитель скорости строительства
rules.deconstructrefundmultiplier = Множитель возврата ресурсов при разборке rules.deconstructrefundmultiplier = Множитель возврата ресурсов при разборке
@@ -2180,7 +2183,7 @@ lst.getlink = Получает соединение процессора по и
lst.control = Контролирует блок. lst.control = Контролирует блок.
lst.radar = Обнаруживает единицы вокруг постройки с заданным радиусом. lst.radar = Обнаруживает единицы вокруг постройки с заданным радиусом.
lst.sensor = Получает данные из постройки или единицы. lst.sensor = Получает данные из постройки или единицы.
lst.set = Устанавливает переменную. lst.set = Задаёт значение переменной.
lst.operation = Совершает операцию над 1-2 переменными. lst.operation = Совершает операцию над 1-2 переменными.
lst.end = Переходит к началу стека операций. lst.end = Переходит к началу стека операций.
lst.wait = Ждёт определённое количество секунд. lst.wait = Ждёт определённое количество секунд.
@@ -2201,10 +2204,11 @@ lst.setrate = Устанавливает скорость выполнения
lst.fetch = Ищет единицы, ядра, игроков или зданий по индексу.\nИндексы начинаются с 0 и заканчиваются возвращаемым числом. lst.fetch = Ищет единицы, ядра, игроков или зданий по индексу.\nИндексы начинаются с 0 и заканчиваются возвращаемым числом.
lst.packcolor = Упаковывает компоненты RGBA [0, 1] в один номер для рисования или установки правил. lst.packcolor = Упаковывает компоненты RGBA [0, 1] в один номер для рисования или установки правил.
lst.setrule = Устанавливает игровое правило. lst.setrule = Устанавливает игровое правило.
lst.flushmessage = Отображает сообщение на экране из текстового буфера.\nБудет ожидать окончание предыдущего сообщения. lst.flushmessage = Отображает сообщение из текстового буфера на экране игрока.\nБудет ожидать окончание предыдущего сообщения.
lst.cutscene = Управляет камерой игрока. lst.cutscene = Управляет камерой игрока.
lst.setflag = Устанавливает глобальный флаг, который может быть прочитан всеми процессорами. lst.setflag = Устанавливает глобальный флаг, который может быть прочитан всеми процессорами.
lst.getflag = Проверяет, установлен ли глобальный флаг. lst.getflag = Проверяет, установлен ли глобальный флаг.
lst.setprop = Sets a property of a unit or building.
logic.nounitbuild = [red]Строительство с помощью процессоров здесь запрещено. logic.nounitbuild = [red]Строительство с помощью процессоров здесь запрещено.

View File

@@ -890,6 +890,7 @@ stat.repairspeed = Brzina popravke
stat.weapons = Oružja stat.weapons = Oružja
stat.bullet = Metak stat.bullet = Metak
stat.moduletier = Nivo modula stat.moduletier = Nivo modula
stat.unittype = Unit Type
stat.speedincrease = Povećanje brzine stat.speedincrease = Povećanje brzine
stat.range = Domet stat.range = Domet
stat.drilltier = Materijali koje je moguće kopati stat.drilltier = Materijali koje je moguće kopati
@@ -983,6 +984,8 @@ bullet.splashdamage = [stat]{0}[lightgray] oblasna šteta ~[stat] {1}[lightgray]
bullet.incendiary = [stat]zapaljiv bullet.incendiary = [stat]zapaljiv
bullet.homing = [stat]samonavođenje bullet.homing = [stat]samonavođenje
bullet.armorpierce = [stat]proboj oklopa bullet.armorpierce = [stat]proboj oklopa
bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
bullet.frags = [stat]{0}[lightgray]x šrapnela: bullet.frags = [stat]{0}[lightgray]x šrapnela:
bullet.lightning = [stat]{0}[lightgray]x munja ~ [stat]{1}[lightgray] štete bullet.lightning = [stat]{0}[lightgray]x munja ~ [stat]{1}[lightgray] štete
bullet.buildingdamage = [stat]{0}%[lightgray] šteta za strukture bullet.buildingdamage = [stat]{0}%[lightgray] šteta za strukture
@@ -1096,8 +1099,8 @@ setting.bridgeopacity.name = Prozirnost Mostova
setting.playerchat.name = Prikazuj Čet Mehure Igrača setting.playerchat.name = Prikazuj Čet Mehure Igrača
setting.showweather.name = Prikazuj Grafiku Vremena setting.showweather.name = Prikazuj Grafiku Vremena
setting.hidedisplays.name = Sakrij Logičke Displeje setting.hidedisplays.name = Sakrij Logičke Displeje
public.confirm = Da li ste sigurni da želite da vam igra bude javna?\n[accent]Svako će moći se pridruži vašoj igri.\n[lightgray]Ovo se može posle promeniti u Podešavanja->Igra->Vidljivost Javne Igre. steam.friendsonly = Friends Only
public.confirm.really = Ako hoćete da igrate sa prijateljima, koristite [green]Pozovi Prijatelje[] umesto [scarlet]Javnog servera[]!\nDa li ste sigurni da želite da vam igra bude [scarlet]javna[]? steam.friendsonly.tooltip = Whether only Steam friends will be able to join your game.\nUnchecking this box will make your game public - anyone can join.
public.beta = Note that beta versions of the game cannot make public lobbies. public.beta = Note that beta versions of the game cannot make public lobbies.
uiscale.reset = UI skala se promenija.\nPritisnite "OK" da porvdite ovu skali.\n[scarlet]Vraćanje i izlazak za[accent] {0}[] sekundi... uiscale.reset = UI skala se promenija.\nPritisnite "OK" da porvdite ovu skali.\n[scarlet]Vraćanje i izlazak za[accent] {0}[] sekundi...
uiscale.cancel = Obustavi i Izađi uiscale.cancel = Obustavi i Izađi
@@ -1149,8 +1152,8 @@ keybind.select.name = Izaberi/Pucaj
keybind.diagonal_placement.name = Diagonalo Postavljanje keybind.diagonal_placement.name = Diagonalo Postavljanje
keybind.pick.name = Izaberi Blok keybind.pick.name = Izaberi Blok
keybind.break_block.name = Razori Blok keybind.break_block.name = Razori Blok
keybind.select_all_units = Izaberi Sve Jedinice keybind.select_all_units.name = Izaberi Sve Jedinice
keybind.select_all_unit_factories = Izaberi Sve Fabrike Jedinica keybind.select_all_unit_factories.name = Izaberi Sve Fabrike Jedinica
keybind.deselect.name = Deselect keybind.deselect.name = Deselect
keybind.pickupCargo.name = Uzmi Tovar keybind.pickupCargo.name = Uzmi Tovar
keybind.dropCargo.name = Spusti Tovar keybind.dropCargo.name = Spusti Tovar
@@ -2208,6 +2211,7 @@ lst.flushmessage = Display a message on the screen from the text buffer.\nWill w
lst.cutscene = Manipulate the player camera. lst.cutscene = Manipulate the player camera.
lst.setflag = Set a global flag that can be read by all processors. lst.setflag = Set a global flag that can be read by all processors.
lst.getflag = Check if a global flag is set. lst.getflag = Check if a global flag is set.
lst.setprop = Sets a property of a unit or building.
logic.nounitbuild = [red]Unit building logic is not allowed here. logic.nounitbuild = [red]Unit building logic is not allowed here.

View File

@@ -876,6 +876,7 @@ stat.repairspeed = Repair Speed
stat.weapons = Weapons stat.weapons = Weapons
stat.bullet = Bullet stat.bullet = Bullet
stat.moduletier = Module Tier stat.moduletier = Module Tier
stat.unittype = Unit Type
stat.speedincrease = Speed Increase stat.speedincrease = Speed Increase
stat.range = Range stat.range = Range
stat.drilltier = Drillables stat.drilltier = Drillables
@@ -969,6 +970,8 @@ bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
bullet.incendiary = [stat]incendiary bullet.incendiary = [stat]incendiary
bullet.homing = [stat]homing bullet.homing = [stat]homing
bullet.armorpierce = [stat]armor piercing bullet.armorpierce = [stat]armor piercing
bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
bullet.frags = [stat]{0}[lightgray]x frag bullets: bullet.frags = [stat]{0}[lightgray]x frag bullets:
bullet.lightning = [stat]{0}[lightgray]x lightning ~ [stat]{1}[lightgray] damage bullet.lightning = [stat]{0}[lightgray]x lightning ~ [stat]{1}[lightgray] damage
bullet.buildingdamage = [stat]{0}%[lightgray] building damage bullet.buildingdamage = [stat]{0}%[lightgray] building damage
@@ -1082,8 +1085,8 @@ setting.bridgeopacity.name = Bridge Opacity
setting.playerchat.name = Visa setting.playerchat.name = Visa
setting.showweather.name = Show Weather Graphics setting.showweather.name = Show Weather Graphics
setting.hidedisplays.name = Hide Logic Displays setting.hidedisplays.name = Hide Logic Displays
public.confirm = Do you want to make your game public?\n[accent]Anyone will be able to join your games.\n[lightgray]This can be changed later in Settings->Game->Public Game Visibility. steam.friendsonly = Friends Only
public.confirm.really = If you want to play with friends, use [green]Invite Friend[] instead of a [scarlet]Public server[]!\nAre you sure you want to make your game [scarlet]public[]? steam.friendsonly.tooltip = Whether only Steam friends will be able to join your game.\nUnchecking this box will make your game public - anyone can join.
public.beta = Note that beta versions of the game cannot make public lobbies. public.beta = Note that beta versions of the game cannot make public lobbies.
uiscale.reset = UI-skalan har ändrats.\nTryck "OK" för att använda den här skalan.\n[scarlet]Avslutar och återställer om[accent] {0}[] sekunder... uiscale.reset = UI-skalan har ändrats.\nTryck "OK" för att använda den här skalan.\n[scarlet]Avslutar och återställer om[accent] {0}[] sekunder...
uiscale.cancel = Avbryt och Avsluta uiscale.cancel = Avbryt och Avsluta
@@ -1135,8 +1138,8 @@ keybind.select.name = Select/Shoot
keybind.diagonal_placement.name = Diagonal Placement keybind.diagonal_placement.name = Diagonal Placement
keybind.pick.name = Pick Block keybind.pick.name = Pick Block
keybind.break_block.name = Break Block keybind.break_block.name = Break Block
keybind.select_all_units = Select All Units keybind.select_all_units.name = Select All Units
keybind.select_all_unit_factories = Select All Unit Factories keybind.select_all_unit_factories.name = Select All Unit Factories
keybind.deselect.name = Deselect keybind.deselect.name = Deselect
keybind.pickupCargo.name = Pickup Cargo keybind.pickupCargo.name = Pickup Cargo
keybind.dropCargo.name = Drop Cargo keybind.dropCargo.name = Drop Cargo
@@ -2187,6 +2190,7 @@ lst.flushmessage = Display a message on the screen from the text buffer.\nWill w
lst.cutscene = Manipulate the player camera. lst.cutscene = Manipulate the player camera.
lst.setflag = Set a global flag that can be read by all processors. lst.setflag = Set a global flag that can be read by all processors.
lst.getflag = Check if a global flag is set. lst.getflag = Check if a global flag is set.
lst.setprop = Sets a property of a unit or building.
logic.nounitbuild = [red]Unit building logic is not allowed here. logic.nounitbuild = [red]Unit building logic is not allowed here.
lenum.type = Type of building/unit.\ne.g. for any router, this will return [accent]@router[].\nNot a string. lenum.type = Type of building/unit.\ne.g. for any router, this will return [accent]@router[].\nNot a string.
lenum.shoot = Shoot at a position. lenum.shoot = Shoot at a position.

View File

@@ -889,6 +889,7 @@ stat.repairspeed = ความเร็วการซ่อม
stat.weapons = อาวุธ stat.weapons = อาวุธ
stat.bullet = กระสุน stat.bullet = กระสุน
stat.moduletier = ระดับหน่วยประกอบ stat.moduletier = ระดับหน่วยประกอบ
stat.unittype = Unit Type
stat.speedincrease = เพิ่มความเร็ว stat.speedincrease = เพิ่มความเร็ว
stat.range = ระยะ stat.range = ระยะ
stat.drilltier = แร่ที่ขุดได้ stat.drilltier = แร่ที่ขุดได้
@@ -982,6 +983,8 @@ bullet.splashdamage = [stat]{0}[lightgray] ดาเมจกระจาย ~[s
bullet.incendiary = [stat]ติดไฟ bullet.incendiary = [stat]ติดไฟ
bullet.homing = [stat]ติดตามตัว bullet.homing = [stat]ติดตามตัว
bullet.armorpierce = [stat]เจาะเกราะ bullet.armorpierce = [stat]เจาะเกราะ
bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
bullet.frags = [stat]{0}[lightgray]x กระจาย กระสุน: bullet.frags = [stat]{0}[lightgray]x กระจาย กระสุน:
bullet.lightning = [stat]{0}[lightgray]x สายฟ้า ~ [stat]{1}[lightgray] ดาเมจ bullet.lightning = [stat]{0}[lightgray]x สายฟ้า ~ [stat]{1}[lightgray] ดาเมจ
bullet.buildingdamage = [lightgray]ดาเมจต่อสิ่งก่อสร้าง [stat]{0}%[lightgray] bullet.buildingdamage = [lightgray]ดาเมจต่อสิ่งก่อสร้าง [stat]{0}%[lightgray]
@@ -1095,8 +1098,8 @@ setting.bridgeopacity.name = ความโปร่งแสงของสะ
setting.playerchat.name = แสดงบับเบิ้ลแชทของผู้เล่น setting.playerchat.name = แสดงบับเบิ้ลแชทของผู้เล่น
setting.showweather.name = แสดงแกรฟฟิกสภาพอากาศ setting.showweather.name = แสดงแกรฟฟิกสภาพอากาศ
setting.hidedisplays.name = ซ่อนหน้าจอลอจิก setting.hidedisplays.name = ซ่อนหน้าจอลอจิก
public.confirm = คุณต้องการให้เกมของคุณเปิดเป็นสาธารณะหรือไม่?\n[accent]ทุกคนจะสามารถเข้าร่วมเกมของคุณได้\n[lightgray]คุณสามารถเปลี่ยนการตั้งค่านี้ได้ที่ ตั้งค่า->เกม->การมองเห็นเซิร์ฟเวอร์สาธารณะ steam.friendsonly = Friends Only
public.confirm.really = หากคุณอยากเล่นกับเล่นกับเพื่อน ใช้[green]ชวนเพื่อน[]ดีกว่า แทนที่จะใช้[scarlet]เซิร์ฟเวอร์สาธารณะ[]!\nคุณแน่ใจนะว่าจะเปลี่ยนเกมคุณเป็น[scarlet]สาธารณะ[]? steam.friendsonly.tooltip = Whether only Steam friends will be able to join your game.\nUnchecking this box will make your game public - anyone can join.
public.beta = เกมเวอร์ชั่นเบต้าไม่สามารถเปิดเซิร์ฟเวอร์สาธารณะได้ public.beta = เกมเวอร์ชั่นเบต้าไม่สามารถเปิดเซิร์ฟเวอร์สาธารณะได้
uiscale.reset = อัตราขนาดของ UI ได้มีการเปลี่ยนแปลง\nกด "โอเค" เพื่อยืนยันขนาด UI นี้\n[scarlet]จะเปลี่ยนกลับไปเป็นขนาดเดิมและออกในอีก[accent] {0}[] วินาที... uiscale.reset = อัตราขนาดของ UI ได้มีการเปลี่ยนแปลง\nกด "โอเค" เพื่อยืนยันขนาด UI นี้\n[scarlet]จะเปลี่ยนกลับไปเป็นขนาดเดิมและออกในอีก[accent] {0}[] วินาที...
uiscale.cancel = ยกเลิกและออก uiscale.cancel = ยกเลิกและออก
@@ -1148,8 +1151,8 @@ keybind.select.name = เลือก/ยิง
keybind.diagonal_placement.name = วางเป็นแนวทแยง keybind.diagonal_placement.name = วางเป็นแนวทแยง
keybind.pick.name = เลือกบล็อก keybind.pick.name = เลือกบล็อก
keybind.break_block.name = ทุบบล็อก keybind.break_block.name = ทุบบล็อก
keybind.select_all_units = Select All Units keybind.select_all_units.name = Select All Units
keybind.select_all_unit_factories = Select All Unit Factories keybind.select_all_unit_factories.name = Select All Unit Factories
keybind.deselect.name = ยกเลิกการเลือก keybind.deselect.name = ยกเลิกการเลือก
keybind.pickupCargo.name = ยกสิ่งบรรทุกขึ้น keybind.pickupCargo.name = ยกสิ่งบรรทุกขึ้น
keybind.dropCargo.name = วางสิ่งบรรทุกลง keybind.dropCargo.name = วางสิ่งบรรทุกลง
@@ -2206,6 +2209,7 @@ lst.flushmessage = แสดงข้อความบนหน้าจอจ
lst.cutscene = ควบคุมมุมกล้องของผู้เล่น lst.cutscene = ควบคุมมุมกล้องของผู้เล่น
lst.setflag = เซ็ตธงทั่วโลกที่ตัวประมวลผลทุกตัวสามารถอ่านค่าได้ lst.setflag = เซ็ตธงทั่วโลกที่ตัวประมวลผลทุกตัวสามารถอ่านค่าได้
lst.getflag = เช็กว่าธงทั่วโลกนั้นเซ็ตอยู่รึเปล่า lst.getflag = เช็กว่าธงทั่วโลกนั้นเซ็ตอยู่รึเปล่า
lst.setprop = Sets a property of a unit or building.
logic.nounitbuild = [red]ไม่อนุญาตให้ใช้ลอจิกควบคุมให้ยูนิตสร้างที่นี่ logic.nounitbuild = [red]ไม่อนุญาตให้ใช้ลอจิกควบคุมให้ยูนิตสร้างที่นี่

View File

@@ -876,6 +876,7 @@ stat.repairspeed = Repair Speed
stat.weapons = Weapons stat.weapons = Weapons
stat.bullet = Bullet stat.bullet = Bullet
stat.moduletier = Module Tier stat.moduletier = Module Tier
stat.unittype = Unit Type
stat.speedincrease = Speed Increase stat.speedincrease = Speed Increase
stat.range = Range stat.range = Range
stat.drilltier = Kazilabilirler stat.drilltier = Kazilabilirler
@@ -969,6 +970,8 @@ bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
bullet.incendiary = [stat]incendiary bullet.incendiary = [stat]incendiary
bullet.homing = [stat]homing bullet.homing = [stat]homing
bullet.armorpierce = [stat]armor piercing bullet.armorpierce = [stat]armor piercing
bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
bullet.frags = [stat]{0}[lightgray]x frag bullets: bullet.frags = [stat]{0}[lightgray]x frag bullets:
bullet.lightning = [stat]{0}[lightgray]x lightning ~ [stat]{1}[lightgray] damage bullet.lightning = [stat]{0}[lightgray]x lightning ~ [stat]{1}[lightgray] damage
bullet.buildingdamage = [stat]{0}%[lightgray] building damage bullet.buildingdamage = [stat]{0}%[lightgray] building damage
@@ -1082,8 +1085,8 @@ setting.bridgeopacity.name = Bridge Opacity
setting.playerchat.name = Display In-Game Chat setting.playerchat.name = Display In-Game Chat
setting.showweather.name = Show Weather Graphics setting.showweather.name = Show Weather Graphics
setting.hidedisplays.name = Hide Logic Displays setting.hidedisplays.name = Hide Logic Displays
public.confirm = Do you want to make your game public?\n[accent]Anyone will be able to join your games.\n[lightgray]This can be changed later in Settings->Game->Public Game Visibility. steam.friendsonly = Friends Only
public.confirm.really = If you want to play with friends, use [green]Invite Friend[] instead of a [scarlet]Public server[]!\nAre you sure you want to make your game [scarlet]public[]? steam.friendsonly.tooltip = Whether only Steam friends will be able to join your game.\nUnchecking this box will make your game public - anyone can join.
public.beta = Note that beta versions of the game cannot make public lobbies. public.beta = Note that beta versions of the game cannot make public lobbies.
uiscale.reset = UI scale has been changed.\nPress "OK" to confirm this scale.\n[scarlet]Reverting and exiting in[accent] {0}[] settings... uiscale.reset = UI scale has been changed.\nPress "OK" to confirm this scale.\n[scarlet]Reverting and exiting in[accent] {0}[] settings...
uiscale.cancel = Cancel & Exit uiscale.cancel = Cancel & Exit
@@ -1135,8 +1138,8 @@ keybind.select.name = Sec/silahi sik
keybind.diagonal_placement.name = Diagonal Placement keybind.diagonal_placement.name = Diagonal Placement
keybind.pick.name = Pick Block keybind.pick.name = Pick Block
keybind.break_block.name = Break Block keybind.break_block.name = Break Block
keybind.select_all_units = Select All Units keybind.select_all_units.name = Select All Units
keybind.select_all_unit_factories = Select All Unit Factories keybind.select_all_unit_factories.name = Select All Unit Factories
keybind.deselect.name = Eldeki yapiyi birak keybind.deselect.name = Eldeki yapiyi birak
keybind.pickupCargo.name = Pickup Cargo keybind.pickupCargo.name = Pickup Cargo
keybind.dropCargo.name = Drop Cargo keybind.dropCargo.name = Drop Cargo
@@ -2187,6 +2190,7 @@ lst.flushmessage = Display a message on the screen from the text buffer.\nWill w
lst.cutscene = Manipulate the player camera. lst.cutscene = Manipulate the player camera.
lst.setflag = Set a global flag that can be read by all processors. lst.setflag = Set a global flag that can be read by all processors.
lst.getflag = Check if a global flag is set. lst.getflag = Check if a global flag is set.
lst.setprop = Sets a property of a unit or building.
logic.nounitbuild = [red]Unit building logic is not allowed here. logic.nounitbuild = [red]Unit building logic is not allowed here.
lenum.type = Type of building/unit.\ne.g. for any router, this will return [accent]@router[].\nNot a string. lenum.type = Type of building/unit.\ne.g. for any router, this will return [accent]@router[].\nNot a string.
lenum.shoot = Shoot at a position. lenum.shoot = Shoot at a position.

View File

@@ -887,6 +887,7 @@ stat.repairspeed = Tamir Hızı
stat.weapons = Silahlar stat.weapons = Silahlar
stat.bullet = Mermi stat.bullet = Mermi
stat.moduletier = Modül Seviyesi stat.moduletier = Modül Seviyesi
stat.unittype = Unit Type
stat.speedincrease = Hız Artışı stat.speedincrease = Hız Artışı
stat.range = Menzil stat.range = Menzil
stat.drilltier = Kazılabilenler stat.drilltier = Kazılabilenler
@@ -980,6 +981,8 @@ bullet.splashdamage = [stat]{0} [lightgray]alan hasarı ~[stat] {1} [lightgray]k
bullet.incendiary = [stat]yakıcı bullet.incendiary = [stat]yakıcı
bullet.homing = [stat]güdümlü bullet.homing = [stat]güdümlü
bullet.armorpierce = [stat]zırh delici bullet.armorpierce = [stat]zırh delici
bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
bullet.frags = [stat]{0}[lightgray]x parçalı mermiler: bullet.frags = [stat]{0}[lightgray]x parçalı mermiler:
bullet.lightning = [stat]{0}[lightgray]x elektrik ~ [stat]{1}[lightgray] hasarı bullet.lightning = [stat]{0}[lightgray]x elektrik ~ [stat]{1}[lightgray] hasarı
bullet.buildingdamage = [stat]{0}%[lightgray] inşaa hasarı bullet.buildingdamage = [stat]{0}%[lightgray] inşaa hasarı
@@ -1093,8 +1096,8 @@ setting.bridgeopacity.name = Köprü Opaklığı
setting.playerchat.name = Oyun-içi Konuşmayı Göster setting.playerchat.name = Oyun-içi Konuşmayı Göster
setting.showweather.name = Hava Durmu Grafiklerini Göster setting.showweather.name = Hava Durmu Grafiklerini Göster
setting.hidedisplays.name = İşlemci İpuçlarını Gizle setting.hidedisplays.name = İşlemci İpuçlarını Gizle
public.confirm = Oyununuzu halka açık yapmak ister misiniz?\n[accent]Oyunlarınıza herkes katılabilecektir.\n[lightgray]Bu seçenek daha sonra Ayarlar->Oyun->Halka Açık Oyunlar'dan değiştirilebilir. steam.friendsonly = Friends Only
public.confirm.really = Eğer Arkadaşlarınla oynamak istiyorsan [green]Arkadaş Davet Et[] e bas. [scarlet]Halka Açık Sunucuya Değil[]!\nOyununu Gerçekten Halka açık yapmak istediğine [scarlet]Emin Misin[]? steam.friendsonly.tooltip = Whether only Steam friends will be able to join your game.\nUnchecking this box will make your game public - anyone can join.
public.beta = Oyunun beta sürümlerinin halka açık lobiler yapamayacağını unutmayın. public.beta = Oyunun beta sürümlerinin halka açık lobiler yapamayacağını unutmayın.
uiscale.reset = Arayüz ölçeği değiştirildi.\nBu ölçeği onaylamak için "Tamam" butonuna basın.\n[accent] {0}[] [scarlet]saniye içinde eski ayarlara geri dönülüp oyundan çıkılıyor…[] uiscale.reset = Arayüz ölçeği değiştirildi.\nBu ölçeği onaylamak için "Tamam" butonuna basın.\n[accent] {0}[] [scarlet]saniye içinde eski ayarlara geri dönülüp oyundan çıkılıyor…[]
uiscale.cancel = İptal Et ve Çık uiscale.cancel = İptal Et ve Çık
@@ -1146,8 +1149,8 @@ keybind.select.name = Seç/Ateş Et
keybind.diagonal_placement.name = Çapraz Yerleştirme keybind.diagonal_placement.name = Çapraz Yerleştirme
keybind.pick.name = Blok Seç keybind.pick.name = Blok Seç
keybind.break_block.name = Blok Kır keybind.break_block.name = Blok Kır
keybind.select_all_units = Tüm Birimleri Seç keybind.select_all_units.name = Tüm Birimleri Seç
keybind.select_all_unit_factories = Select All Unit Factories keybind.select_all_unit_factories.name = Select All Unit Factories
keybind.deselect.name = Seçimleri Kaldır keybind.deselect.name = Seçimleri Kaldır
keybind.pickupCargo.name = Kargoyu Al keybind.pickupCargo.name = Kargoyu Al
keybind.dropCargo.name = Kargoyu Bırak keybind.dropCargo.name = Kargoyu Bırak
@@ -2206,6 +2209,7 @@ lst.flushmessage = Ekranda bir yazı göster.\nBir önceki yazı kaybolana kadar
lst.cutscene = Oyuncu Kamerasını hareket ettir. lst.cutscene = Oyuncu Kamerasını hareket ettir.
lst.setflag = Tüm İşlemciler tarafından okunabilen bir Numara İşaretle. lst.setflag = Tüm İşlemciler tarafından okunabilen bir Numara İşaretle.
lst.getflag = Evrensel İşaretli Numara Oku. lst.getflag = Evrensel İşaretli Numara Oku.
lst.setprop = Sets a property of a unit or building.
logic.nounitbuild = [red]Birim İnşası Yasak! logic.nounitbuild = [red]Birim İnşası Yasak!

View File

@@ -897,6 +897,7 @@ stat.repairspeed = Швидкість відновлення
stat.weapons = Зброя stat.weapons = Зброя
stat.bullet = Кулі stat.bullet = Кулі
stat.moduletier = Рівень модуля stat.moduletier = Рівень модуля
stat.unittype = Unit Type
stat.speedincrease = Збільшення швидкості stat.speedincrease = Збільшення швидкості
stat.range = Радіус дії stat.range = Радіус дії
stat.drilltier = Видобуває stat.drilltier = Видобуває
@@ -990,6 +991,8 @@ bullet.splashdamage = [stat]{0}[lightgray] шкода по ділянці ~[stat
bullet.incendiary = [stat]запальний bullet.incendiary = [stat]запальний
bullet.homing = [stat]самонаведення bullet.homing = [stat]самонаведення
bullet.armorpierce = [stat]бронебійність bullet.armorpierce = [stat]бронебійність
bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
bullet.frags = [stat]{0}[lightgray]x шкода по ділянці від снарядів: bullet.frags = [stat]{0}[lightgray]x шкода по ділянці від снарядів:
bullet.lightning = [stat]{0}[lightgray]x блискавки ~ [stat]{1}[lightgray] шкоди bullet.lightning = [stat]{0}[lightgray]x блискавки ~ [stat]{1}[lightgray] шкоди
bullet.buildingdamage = [stat]{0}%[lightgray] шкода по будівлям bullet.buildingdamage = [stat]{0}%[lightgray] шкода по будівлям
@@ -1103,8 +1106,8 @@ setting.bridgeopacity.name = Непрозорість мостів
setting.playerchat.name = Показувати хмару чата над гравцями setting.playerchat.name = Показувати хмару чата над гравцями
setting.showweather.name = Показувати погоду setting.showweather.name = Показувати погоду
setting.hidedisplays.name = Приховувати логічні дисплеї setting.hidedisplays.name = Приховувати логічні дисплеї
public.confirm = Ви хочете зробити цю гру загальнодоступною?\n[accent]Будь-хто може приєднатися до вашої гри.\n[lightgray]Це можна змінити в Налаштування->Гра->Загальнодоступність гри. steam.friendsonly = Friends Only
public.confirm.really = Якщо ви хочете грати з друзями, використовуйте [green]Запросити друзів[] замість [scarlet]Публічного сервера[]!\nВи справді хочете зробити свою гру [scarlet]публічною[]? steam.friendsonly.tooltip = Whether only Steam friends will be able to join your game.\nUnchecking this box will make your game public - anyone can join.
public.beta = Зауважте, що в бета-версії гри ви не можете робити публічні ігри. public.beta = Зауважте, що в бета-версії гри ви не можете робити публічні ігри.
uiscale.reset = Масштаб користувацького інтерфейсу було змінено.\nНатисніть «Гаразд» для підтвердження цього масштабу.\n[scarlet]Повернення налаштувань і вихід через[accent] {0}[] секунд… uiscale.reset = Масштаб користувацького інтерфейсу було змінено.\nНатисніть «Гаразд» для підтвердження цього масштабу.\n[scarlet]Повернення налаштувань і вихід через[accent] {0}[] секунд…
uiscale.cancel = Скасувати й вийти uiscale.cancel = Скасувати й вийти
@@ -1156,8 +1159,8 @@ keybind.select.name = Вибір/Постріл
keybind.diagonal_placement.name = Діагональне розміщення keybind.diagonal_placement.name = Діагональне розміщення
keybind.pick.name = Вибрати блок keybind.pick.name = Вибрати блок
keybind.break_block.name = Зламати блок keybind.break_block.name = Зламати блок
keybind.select_all_units = Вибрати всі одиниці keybind.select_all_units.name = Вибрати всі одиниці
keybind.select_all_unit_factories = Вибрати всі заводи зі створення одиниць keybind.select_all_unit_factories.name = Вибрати всі заводи зі створення одиниць
keybind.deselect.name = Скасувати keybind.deselect.name = Скасувати
keybind.pickupCargo.name = Взяти вантаж keybind.pickupCargo.name = Взяти вантаж
keybind.dropCargo.name = Скинути вантаж keybind.dropCargo.name = Скинути вантаж
@@ -2230,6 +2233,7 @@ lst.flushmessage = Показує повідомлення на екрані з
lst.cutscene = Керує камерою гравця. lst.cutscene = Керує камерою гравця.
lst.setflag = Установлює глобальний прапорець, який можуть прочитати усі процесори. lst.setflag = Установлює глобальний прапорець, який можуть прочитати усі процесори.
lst.getflag = Перевіряє, чи встановлено глобальний прапорець. lst.getflag = Перевіряє, чи встановлено глобальний прапорець.
lst.setprop = Sets a property of a unit or building.
logic.nounitbuild = [red]Будування за допомогою процесорів заборено. logic.nounitbuild = [red]Будування за допомогою процесорів заборено.

File diff suppressed because it is too large Load Diff

View File

@@ -899,6 +899,7 @@ stat.repairspeed = 修理速度
stat.weapons = 武器 stat.weapons = 武器
stat.bullet = 子弹 stat.bullet = 子弹
stat.moduletier = 模块等级 stat.moduletier = 模块等级
stat.unittype = Unit Type
stat.speedincrease = 提速 stat.speedincrease = 提速
stat.range = 范围 stat.range = 范围
stat.drilltier = 可钻探矿物 stat.drilltier = 可钻探矿物
@@ -992,6 +993,8 @@ bullet.splashdamage = [stat]{0}[lightgray]范围伤害~[stat] {1}[lightgray]格
bullet.incendiary = [stat]燃烧 bullet.incendiary = [stat]燃烧
bullet.homing = [stat]追踪 bullet.homing = [stat]追踪
bullet.armorpierce = [stat]穿甲 bullet.armorpierce = [stat]穿甲
bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
bullet.frags = [stat]{0}[lightgray]x分裂子弹 bullet.frags = [stat]{0}[lightgray]x分裂子弹
bullet.lightning = [stat]{0}[lightgray]x闪电~[stat]{1}[lightgray]伤害 bullet.lightning = [stat]{0}[lightgray]x闪电~[stat]{1}[lightgray]伤害
bullet.buildingdamage = [stat]{0}%[lightgray]对建筑伤害 bullet.buildingdamage = [stat]{0}%[lightgray]对建筑伤害
@@ -1105,8 +1108,8 @@ setting.bridgeopacity.name = 桥梁不透明度
setting.playerchat.name = 显示玩家聊天气泡 setting.playerchat.name = 显示玩家聊天气泡
setting.showweather.name = 显示天气效果 setting.showweather.name = 显示天气效果
setting.hidedisplays.name = 不显示逻辑绘图 setting.hidedisplays.name = 不显示逻辑绘图
public.confirm = 确定使您的游戏公开可见?\n[accent]其他人将可以加入到您的游戏。 \n[lightgray]此后可以在 设置->游戏->游戏公开可见 里面更改。 steam.friendsonly = Friends Only
public.confirm.really = 如果您想与好友一起游戏,可以使用[green]邀请好友[]而不是[scarlet]公开游戏[]\n您确定要使游戏[scarlet]公开可见[]吗? steam.friendsonly.tooltip = Whether only Steam friends will be able to join your game.\nUnchecking this box will make your game public - anyone can join.
public.beta = 请注意,测试版的游戏不能公开可见。 public.beta = 请注意,测试版的游戏不能公开可见。
uiscale.reset = UI缩放比例已更改。\n点击“确定”接受更改。\n[accent]{0}[]秒后[scarlet]将自动退出并还原设置。 uiscale.reset = UI缩放比例已更改。\n点击“确定”接受更改。\n[accent]{0}[]秒后[scarlet]将自动退出并还原设置。
uiscale.cancel = 取消并退出 uiscale.cancel = 取消并退出
@@ -1158,8 +1161,8 @@ keybind.select.name = 选择/射击
keybind.diagonal_placement.name = 斜线建造 keybind.diagonal_placement.name = 斜线建造
keybind.pick.name = 选择建筑 keybind.pick.name = 选择建筑
keybind.break_block.name = 拆除建筑 keybind.break_block.name = 拆除建筑
keybind.select_all_units = 选择所有单位 keybind.select_all_units.name = 选择所有单位
keybind.select_all_unit_factories = 选择所有单位工厂 keybind.select_all_unit_factories.name = 选择所有单位工厂
keybind.deselect.name = 取消选择 keybind.deselect.name = 取消选择
keybind.pickupCargo.name = 拾取载荷 keybind.pickupCargo.name = 拾取载荷
keybind.dropCargo.name = 释放载荷 keybind.dropCargo.name = 释放载荷
@@ -2232,6 +2235,7 @@ lst.flushmessage = 在屏幕中央投影文字缓存区的内容\n会等待上
lst.cutscene = 控制玩家游戏视角 lst.cutscene = 控制玩家游戏视角
lst.setflag = 设置一个可以被所有处理器读取的全局flag lst.setflag = 设置一个可以被所有处理器读取的全局flag
lst.getflag = 检查是否设置了全局flag lst.getflag = 检查是否设置了全局flag
lst.setprop = Sets a property of a unit or building.
logic.nounitbuild = [red]此处不允许处理器操控单位去建设 logic.nounitbuild = [red]此处不允许处理器操控单位去建设

View File

@@ -895,6 +895,7 @@ stat.repairspeed = 修復速度
stat.weapons = 武器 stat.weapons = 武器
stat.bullet = 子彈 stat.bullet = 子彈
stat.moduletier = 模組等級 stat.moduletier = 模組等級
stat.unittype = Unit Type
stat.speedincrease = 速度提升 stat.speedincrease = 速度提升
stat.range = 範圍 stat.range = 範圍
stat.drilltier = 可鑽取礦物 stat.drilltier = 可鑽取礦物
@@ -988,6 +989,8 @@ bullet.splashdamage = [stat]{0}[lightgray]範圍傷害 ~[stat] {1}[lightgray]格
bullet.incendiary = [stat]燃燒 bullet.incendiary = [stat]燃燒
bullet.homing = [stat]追蹤 bullet.homing = [stat]追蹤
bullet.armorpierce = [stat]穿甲 bullet.armorpierce = [stat]穿甲
bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles
bullet.interval = [stat]{0}/sec[lightgray] interval bullets:
bullet.frags = [stat]{0}[lightgray]x 集束子彈: bullet.frags = [stat]{0}[lightgray]x 集束子彈:
bullet.lightning = [stat]{0}[lightgray]x 電弧 ~ [stat]{1}[lightgray] 傷害 bullet.lightning = [stat]{0}[lightgray]x 電弧 ~ [stat]{1}[lightgray] 傷害
bullet.buildingdamage = [stat]{0}%[lightgray] 建築傷害 bullet.buildingdamage = [stat]{0}%[lightgray] 建築傷害
@@ -1101,8 +1104,8 @@ setting.bridgeopacity.name = 橋透明度
setting.playerchat.name = 在遊戲中顯示聊天視窗 setting.playerchat.name = 在遊戲中顯示聊天視窗
setting.showweather.name = 顯示天氣動畫 setting.showweather.name = 顯示天氣動畫
setting.hidedisplays.name = 隱藏邏輯顯示 setting.hidedisplays.name = 隱藏邏輯顯示
public.confirm = 您想公開遊戲嗎?\n[accent]任何人都可以加入您的遊戲。\n[lightgray]之後可以在「設定」→「遊戲」→「公開遊戲可見度」中進行更改。 steam.friendsonly = Friends Only
public.confirm.really = 如果你想和朋友一起遊玩,可利用[green]邀請好友[]而不是[scarlet]公開伺服器[]\n你確定要將伺服設為[scarlet]公開[] steam.friendsonly.tooltip = Whether only Steam friends will be able to join your game.\nUnchecking this box will make your game public - anyone can join.
public.beta = 請注意該遊戲的Beta版本無法公開遊戲大廳。 public.beta = 請注意該遊戲的Beta版本無法公開遊戲大廳。
uiscale.reset = 使用者介面縮放已變更\n按下「確定」確認這個比例\n[scarlet][accent] {0}[] 秒後退出並還原設定 uiscale.reset = 使用者介面縮放已變更\n按下「確定」確認這個比例\n[scarlet][accent] {0}[] 秒後退出並還原設定
uiscale.cancel = 取消並退出 uiscale.cancel = 取消並退出
@@ -1154,8 +1157,8 @@ keybind.select.name = 選取
keybind.diagonal_placement.name = 對角線放置 keybind.diagonal_placement.name = 對角線放置
keybind.pick.name = 選擇方塊 keybind.pick.name = 選擇方塊
keybind.break_block.name = 移除方塊 keybind.break_block.name = 移除方塊
keybind.select_all_units = Select All Units keybind.select_all_units.name = Select All Units
keybind.select_all_unit_factories = Select All Unit Factories keybind.select_all_unit_factories.name = Select All Unit Factories
keybind.deselect.name = 取消選取 keybind.deselect.name = 取消選取
keybind.pickupCargo.name = 撿起貨物 keybind.pickupCargo.name = 撿起貨物
keybind.dropCargo.name = 丟棄貨物 keybind.dropCargo.name = 丟棄貨物
@@ -2216,6 +2219,7 @@ lst.flushmessage = 从文本緩存中讀取並於屏幕上顯示一條消息\n
lst.cutscene = 控制玩家鏡頭 lst.cutscene = 控制玩家鏡頭
lst.setflag = 設置一個全局flag可被所有處理器讀取 lst.setflag = 設置一個全局flag可被所有處理器讀取
lst.getflag = 檢查某一全局flag是否存在 lst.getflag = 檢查某一全局flag是否存在
lst.setprop = Sets a property of a unit or building.
logic.nounitbuild = [red]單位建造邏輯已被禁止。 logic.nounitbuild = [red]單位建造邏輯已被禁止。

View File

@@ -153,3 +153,4 @@ BlackDeluxeCat
zenonet zenonet
AyuKo-o AyuKo-o
JojoFR1 JojoFR1
Xasmedy

View File

@@ -44,6 +44,7 @@ function extend(/*Base, ..., def*/){
importPackage(Packages.arc) importPackage(Packages.arc)
importPackage(Packages.arc.audio) importPackage(Packages.arc.audio)
importPackage(Packages.arc.files)
importPackage(Packages.arc.func) importPackage(Packages.arc.func)
importPackage(Packages.arc.flabel) importPackage(Packages.arc.flabel)
importPackage(Packages.arc.graphics) importPackage(Packages.arc.graphics)

View File

@@ -431,7 +431,12 @@ public class Vars implements Loadable{
settings.setAutosave(false); settings.setAutosave(false);
settings.load(); settings.load();
Scl.setProduct(settings.getInt("uiscale", 100) / 100f); //https://github.com/Anuken/Mindustry/issues/8483
if(settings.getInt("uiscale") == 5){
settings.put("uiscale", 100);
}
Scl.setProduct(Math.max(settings.getInt("uiscale", 100), 25) / 100f);
if(!loadLocales) return; if(!loadLocales) return;

View File

@@ -8,8 +8,8 @@ import arc.math.geom.*;
import arc.struct.*; import arc.struct.*;
import arc.util.*; import arc.util.*;
import mindustry.core.*; import mindustry.core.*;
import mindustry.game.*;
import mindustry.game.EventType.*; import mindustry.game.EventType.*;
import mindustry.game.*;
import mindustry.gen.*; import mindustry.gen.*;
import mindustry.graphics.*; import mindustry.graphics.*;
import mindustry.world.*; import mindustry.world.*;
@@ -273,7 +273,7 @@ public class ControlPathfinder{
req.raycastTimer = 0; req.raycastTimer = 0;
} }
if(req.rayPathIndex < len){ if(req.rayPathIndex < len && req.rayPathIndex >= 0){
Tile tile = tile(items[req.rayPathIndex]); Tile tile = tile(items[req.rayPathIndex]);
out.set(tile); out.set(tile);

View File

@@ -19,7 +19,7 @@ import mindustry.world.meta.*;
import static mindustry.Vars.*; import static mindustry.Vars.*;
public class Pathfinder implements Runnable{ public class Pathfinder implements Runnable{
private static final long maxUpdate = Time.millisToNanos(7); private static final long maxUpdate = Time.millisToNanos(8);
private static final int updateFPS = 60; private static final int updateFPS = 60;
private static final int updateInterval = 1000 / updateFPS; private static final int updateInterval = 1000 / updateFPS;
@@ -219,8 +219,6 @@ public class Pathfinder implements Runnable{
public void updateTile(Tile tile){ public void updateTile(Tile tile){
if(net.client()) return; if(net.client()) return;
int x = tile.x, y = tile.y;
tile.getLinkedTiles(t -> { tile.getLinkedTiles(t -> {
int pos = t.array(); int pos = t.array();
if(pos < tiles.length){ if(pos < tiles.length){
@@ -232,15 +230,15 @@ public class Pathfinder implements Runnable{
for(Flowfield path : mainList){ for(Flowfield path : mainList){
if(path != null){ if(path != null){
synchronized(path.targets){ synchronized(path.targets){
path.targets.clear(); path.updateTargetPositions();
path.getPositions(path.targets);
} }
} }
} }
//mark every flow field as dirty, so it updates when it's done
queue.post(() -> { queue.post(() -> {
for(Flowfield data : threadList){ for(Flowfield data : threadList){
updateTargets(data, x, y); data.dirty = true;
} }
}); });
} }
@@ -257,6 +255,13 @@ public class Pathfinder implements Runnable{
//each update time (not total!) no longer than maxUpdate //each update time (not total!) no longer than maxUpdate
for(Flowfield data : threadList){ for(Flowfield data : threadList){
//if it's dirty and there is nothing to update, begin updating once more
if(data.dirty && data.frontier.size == 0){
updateTargets(data);
data.dirty = false;
}
updateFrontier(data, maxUpdate); updateFrontier(data, maxUpdate);
} }
} }
@@ -306,8 +311,7 @@ public class Pathfinder implements Runnable{
synchronized(path.targets){ synchronized(path.targets){
//make sure the position actually changed //make sure the position actually changed
if(!(path.targets.size == 1 && tmpArray.size == 1 && path.targets.first() == tmpArray.first())){ if(!(path.targets.size == 1 && tmpArray.size == 1 && path.targets.first() == tmpArray.first())){
path.targets.clear(); path.updateTargetPositions();
path.getPositions(path.targets);
//queue an update //queue an update
queue.post(() -> updateTargets(path)); queue.post(() -> updateTargets(path));
@@ -315,7 +319,8 @@ public class Pathfinder implements Runnable{
} }
} }
int[] values = path.weights; //use complete weights if possible; these contain a complete flow field that is not being updated
int[] values = path.hasComplete ? path.completeWeights : path.weights;
int apos = tile.array(); int apos = tile.array();
int value = values[apos]; int value = values[apos];
@@ -341,32 +346,6 @@ public class Pathfinder implements Runnable{
return current; return current;
} }
/**
* Clears the frontier, increments the search and sets up all flow sources.
* This only occurs for active teams.
*/
private void updateTargets(Flowfield path, int x, int y){
int packed = world.packArray(x, y);
if(packed > path.weights.length) return;
if(path.weights[packed] == 0){
//this was a previous target
path.frontier.clear();
}else if(!path.frontier.isEmpty()){
//skip if this path is processing
return;
}
//update cost of the tile TODO maybe only update the cost when it's not passable
path.weights[packed] = path.cost.getCost(path.team.id, tiles[packed]);
//clear frontier to prevent contamination
path.frontier.clear();
updateTargets(path);
}
/** Increments the search and sets up flow sources. Does not change the frontier. */ /** Increments the search and sets up flow sources. Does not change the frontier. */
private void updateTargets(Flowfield path){ private void updateTargets(Flowfield path){
@@ -386,8 +365,7 @@ public class Pathfinder implements Runnable{
} }
private void preloadPath(Flowfield path){ private void preloadPath(Flowfield path){
path.targets.clear(); path.updateTargetPositions();
path.getPositions(path.targets);
registerPath(path); registerPath(path);
updateFrontier(path, -1); updateFrontier(path, -1);
} }
@@ -421,6 +399,7 @@ public class Pathfinder implements Runnable{
/** Update the frontier for a path. Pathfinding thread only. */ /** Update the frontier for a path. Pathfinding thread only. */
private void updateFrontier(Flowfield path, long nsToRun){ private void updateFrontier(Flowfield path, long nsToRun){
boolean hadAny = path.frontier.size > 0;
long start = Time.nanos(); long start = Time.nanos();
int counter = 0; int counter = 0;
@@ -462,6 +441,12 @@ public class Pathfinder implements Runnable{
} }
} }
} }
//there WERE some things in the frontier, but now they are gone, so the path is done; copy over latest data
if(hadAny && path.frontier.size == 0){
System.arraycopy(path.weights, 0, path.completeWeights, 0, path.weights.length);
path.hasComplete = true;
}
} }
public static class EnemyCoreField extends Flowfield{ public static class EnemyCoreField extends Flowfield{
@@ -505,11 +490,18 @@ public class Pathfinder implements Runnable{
protected Team team = Team.derelict; protected Team team = Team.derelict;
/** Function for calculating path cost. Set before using. */ /** Function for calculating path cost. Set before using. */
protected PathCost cost = costTypes.get(costGround); protected PathCost cost = costTypes.get(costGround);
/** Whether there are valid weights in the complete array. */
protected volatile boolean hasComplete;
/** If true, this flow field needs updating. This flag is only set to false once the flow field finishes and the weights are copied over. */
protected boolean dirty = false;
/** costs of getting to a specific tile */ /** costs of getting to a specific tile */
public int[] weights; public int[] weights;
/** search IDs of each position - the highest, most recent search is prioritized and overwritten */ /** search IDs of each position - the highest, most recent search is prioritized and overwritten */
public int[] searches; public int[] searches;
/** the last "complete" weights of this tilemap. */
public int[] completeWeights;
/** search frontier, these are Pos objects */ /** search frontier, these are Pos objects */
IntQueue frontier = new IntQueue(); IntQueue frontier = new IntQueue();
/** all target positions; these positions have a cost of 0, and must be synchronized on! */ /** all target positions; these positions have a cost of 0, and must be synchronized on! */
@@ -524,10 +516,16 @@ public class Pathfinder implements Runnable{
void setup(int length){ void setup(int length){
this.weights = new int[length]; this.weights = new int[length];
this.searches = new int[length]; this.searches = new int[length];
this.completeWeights = new int[length];
this.frontier.ensureCapacity((length) / 4); this.frontier.ensureCapacity((length) / 4);
this.initialized = true; this.initialized = true;
} }
public void updateTargetPositions(){
targets.clear();
getPositions(targets);
}
protected boolean passable(int pos){ protected boolean passable(int pos){
return cost.getCost(team.id, pathfinder.tiles[pos]) != impassable; return cost.getCost(team.id, pathfinder.tiles[pos]) != impassable;
} }

View File

@@ -19,7 +19,7 @@ public class BuilderAI extends AIController{
public @Nullable Teamc enemy; public @Nullable Teamc enemy;
public @Nullable BlockPlan lastPlan; public @Nullable BlockPlan lastPlan;
public float fleeRange = 370f; public float fleeRange = 370f, rebuildPeriod = 60f * 2f;
public boolean alwaysFlee; public boolean alwaysFlee;
public boolean onlyAssist; public boolean onlyAssist;
@@ -119,7 +119,7 @@ public class BuilderAI extends AIController{
} }
//follow someone and help them build //follow someone and help them build
if(timer.get(timerTarget2, 60f)){ if(timer.get(timerTarget2, 20f)){
found = false; found = false;
Units.nearby(unit.team, unit.x, unit.y, buildRadius, u -> { Units.nearby(unit.team, unit.x, unit.y, buildRadius, u -> {
@@ -158,10 +158,8 @@ public class BuilderAI extends AIController{
} }
} }
float rebuildTime = 2f * 60f;
//find new plan //find new plan
if(!onlyAssist && !unit.team.data().plans.isEmpty() && following == null && timer.get(timerTarget3, rebuildTime)){ if(!onlyAssist && !unit.team.data().plans.isEmpty() && following == null && timer.get(timerTarget3, rebuildPeriod)){
Queue<BlockPlan> blocks = unit.team.data().plans; Queue<BlockPlan> blocks = unit.team.data().plans;
BlockPlan block = blocks.first(); BlockPlan block = blocks.first();

View File

@@ -49,6 +49,11 @@ public class CommandAI extends AIController{
} }
} }
@Override
public boolean isLogicControllable(){
return !hasCommand();
}
public boolean isAttacking(){ public boolean isAttacking(){
return target != null && unit.within(target, unit.range() + 10f); return target != null && unit.within(target, unit.range() + 10f);
} }

View File

@@ -1494,9 +1494,10 @@ public class Blocks{
craftEffect = new RadialEffect(Fx.heatReactorSmoke, 4, 90f, 7f); craftEffect = new RadialEffect(Fx.heatReactorSmoke, 4, 90f, 7f);
itemCapacity = 20; itemCapacity = 20;
outputItem = new ItemStack(Items.fissileMatter, 1);
consumeItem(Items.thorium, 3); consumeItem(Items.thorium, 3);
consumeLiquid(Liquids.nitrogen, 1f / 60f); consumeLiquid(Liquids.nitrogen, 1f / 60f);
outputItem = new ItemStack(Items.fissileMatter, 1);
}}; }};
//endregion //endregion
@@ -3046,6 +3047,20 @@ public class Blocks{
shoot = new ShootAlternate(3.5f); shoot = new ShootAlternate(3.5f);
recoils = 2;
drawer = new DrawTurret(){{
for(int i = 0; i < 2; i ++){
int f = i;
parts.add(new RegionPart("-barrel-" + (i == 0 ? "l" : "r")){{
progress = PartProgress.recoil;
recoilIndex = f;
under = true;
moves.add(new PartMove(PartProgress.recoil, 0f, -1.5f, 0f));
}});
}
}};
recoil = 0.5f;
shootY = 3f; shootY = 3f;
reload = 20f; reload = 20f;
range = 110; range = 110;

View File

@@ -2,8 +2,6 @@ package mindustry.content;
import arc.graphics.*; import arc.graphics.*;
import mindustry.entities.bullet.*; import mindustry.entities.bullet.*;
import mindustry.entities.effect.*;
import mindustry.graphics.*;
/** /**
* Class for holding special internal bullets. * Class for holding special internal bullets.

View File

@@ -4,8 +4,8 @@ import arc.struct.*;
import mindustry.game.Objectives.*; import mindustry.game.Objectives.*;
import static mindustry.content.Blocks.*; import static mindustry.content.Blocks.*;
import static mindustry.content.SectorPresets.*;
import static mindustry.content.SectorPresets.craters; import static mindustry.content.SectorPresets.craters;
import static mindustry.content.SectorPresets.*;
import static mindustry.content.TechTree.*; import static mindustry.content.TechTree.*;
import static mindustry.content.UnitTypes.*; import static mindustry.content.UnitTypes.*;

View File

@@ -2948,6 +2948,7 @@ public class UnitTypes{
weapons.add(new Weapon("merui-weapon"){{ weapons.add(new Weapon("merui-weapon"){{
shootSound = Sounds.missile; shootSound = Sounds.missile;
mirror = false; mirror = false;
showStatSprite = false;
x = 0f; x = 0f;
y = 1f; y = 1f;
shootY = 4f; shootY = 4f;
@@ -3151,6 +3152,7 @@ public class UnitTypes{
x = 29f / 4f; x = 29f / 4f;
y = -11f / 4f; y = -11f / 4f;
shootY = 1.5f; shootY = 1.5f;
showStatSprite = false;
reload = 130f; reload = 130f;
layerOffset = 0.01f; layerOffset = 0.01f;
heatColor = Color.red; heatColor = Color.red;

View File

@@ -193,7 +193,7 @@ public class Control implements ApplicationListener, Loadable{
if(!settings.getBool("skipcoreanimation") && !state.rules.pvp){ if(!settings.getBool("skipcoreanimation") && !state.rules.pvp){
coreDelay = coreLandDuration; coreDelay = coreLandDuration;
//delay player respawn so animation can play. //delay player respawn so animation can play.
player.deathTimer = -80f; player.deathTimer = Player.deathDelay - coreLandDuration;
//TODO this sounds pretty bad due to conflict //TODO this sounds pretty bad due to conflict
if(settings.getInt("musicvol") > 0){ if(settings.getInt("musicvol") > 0){
Musics.land.stop(); Musics.land.stop();

View File

@@ -201,10 +201,12 @@ public class NetClient implements ApplicationListener{
Sounds.chatMessage.play(); Sounds.chatMessage.play();
} }
//display raw unformatted text above player head
if(playersender != null && unformatted != null){ if(playersender != null && unformatted != null){
//display raw unformatted text above player head
playersender.lastText(unformatted); playersender.lastText(unformatted);
playersender.textFadeTime(1f); playersender.textFadeTime(1f);
Events.fire(new PlayerChatEvent(playersender, unformatted));
} }
} }
@@ -435,8 +437,9 @@ public class NetClient implements ApplicationListener{
for(int j = 0; j < amount; j++){ for(int j = 0; j < amount; j++){
readSyncEntity(input, Reads.get(input)); readSyncEntity(input, Reads.get(input));
} }
}catch(IOException e){ }catch(Exception e){
throw new RuntimeException(e); //don't disconnect, just log it
Log.err("Error reading entity snapshot", e);
} }
} }

View File

@@ -9,7 +9,6 @@ import arc.struct.*;
import arc.util.*; import arc.util.*;
import arc.util.CommandHandler.*; import arc.util.CommandHandler.*;
import arc.util.io.*; import arc.util.io.*;
import arc.util.serialization.*;
import mindustry.annotations.Annotations.*; import mindustry.annotations.Annotations.*;
import mindustry.content.*; import mindustry.content.*;
import mindustry.core.GameState.*; import mindustry.core.GameState.*;
@@ -138,15 +137,6 @@ public class NetServer implements ApplicationListener{
con.connectTime = Time.millis(); con.connectTime = Time.millis();
String uuid = packet.uuid; String uuid = packet.uuid;
byte[] buuid = Base64Coder.decode(uuid);
CRC32 crc = new CRC32();
crc.update(buuid, 0, 8);
ByteBuffer buff = ByteBuffer.allocate(8);
buff.put(buuid, 8, 8);
if(crc.getValue() != buff.getLong(0)){
con.kick(KickReason.clientOutdated);
return;
}
if(admins.isIPBanned(con.address) || admins.isSubnetBanned(con.address)) return; if(admins.isIPBanned(con.address) || admins.isSubnetBanned(con.address)) return;
@@ -195,6 +185,7 @@ public class NetServer implements ApplicationListener{
result.append("Unnecessary mods:[lightgray]\n").append("> ").append(extraMods.toString("\n> ")); result.append("Unnecessary mods:[lightgray]\n").append("> ").append(extraMods.toString("\n> "));
} }
con.kick(result.toString(), 0); con.kick(result.toString(), 0);
return;
} }
if(!admins.isWhitelisted(packet.uuid, packet.usid)){ if(!admins.isWhitelisted(packet.uuid, packet.usid)){

View File

@@ -75,6 +75,8 @@ public class UI implements ApplicationListener, Loadable{
public FullTextDialog fullText; public FullTextDialog fullText;
public CampaignCompleteDialog campaignComplete; public CampaignCompleteDialog campaignComplete;
public IntMap<Dialog> followUpMenus;
public Cursor drillCursor, unloadCursor, targetCursor; public Cursor drillCursor, unloadCursor, targetCursor;
private @Nullable Element lastAnnouncement; private @Nullable Element lastAnnouncement;
@@ -202,6 +204,7 @@ public class UI implements ApplicationListener, Loadable{
logic = new LogicDialog(); logic = new LogicDialog();
fullText = new FullTextDialog(); fullText = new FullTextDialog();
campaignComplete = new CampaignCompleteDialog(); campaignComplete = new CampaignCompleteDialog();
followUpMenus = new IntMap<>();
Group group = Core.scene.root; Group group = Core.scene.root;
@@ -261,28 +264,32 @@ public class UI implements ApplicationListener, Loadable{
}); });
} }
public void showTextInput(String titleText, String dtext, int textLength, String def, boolean inumeric, Cons<String> confirmed){ public void showTextInput(String titleText, String text, int textLength, String def, boolean numbers, Cons<String> confirmed, Runnable closed){
if(mobile){ if(mobile){
Core.input.getTextInput(new TextInput(){{ Core.input.getTextInput(new TextInput(){{
this.title = (titleText.startsWith("@") ? Core.bundle.get(titleText.substring(1)) : titleText); this.title = (titleText.startsWith("@") ? Core.bundle.get(titleText.substring(1)) : titleText);
this.text = def; this.text = def;
this.numeric = inumeric; this.numeric = numbers;
this.maxLength = textLength; this.maxLength = textLength;
this.accepted = confirmed; this.accepted = confirmed;
this.allowEmpty = false; this.allowEmpty = false;
}}); }});
}else{ }else{
new Dialog(titleText){{ new Dialog(titleText){{
cont.margin(30).add(dtext).padRight(6f); cont.margin(30).add(text).padRight(6f);
TextFieldFilter filter = inumeric ? TextFieldFilter.digitsOnly : (f, c) -> true; TextFieldFilter filter = numbers ? TextFieldFilter.digitsOnly : (f, c) -> true;
TextField field = cont.field(def, t -> {}).size(330f, 50f).get(); TextField field = cont.field(def, t -> {}).size(330f, 50f).get();
field.setFilter((f, c) -> field.getText().length() < textLength && filter.acceptChar(f, c)); field.setFilter((f, c) -> field.getText().length() < textLength && filter.acceptChar(f, c));
buttons.defaults().size(120, 54).pad(4); buttons.defaults().size(120, 54).pad(4);
buttons.button("@cancel", this::hide); buttons.button("@cancel", () -> {
closed.run();
hide();
});
buttons.button("@ok", () -> { buttons.button("@ok", () -> {
confirmed.get(field.getText()); confirmed.get(field.getText());
hide(); hide();
}).disabled(b -> field.getText().isEmpty()); }).disabled(b -> field.getText().isEmpty());
keyDown(KeyCode.enter, () -> { keyDown(KeyCode.enter, () -> {
String text = field.getText(); String text = field.getText();
if(!text.isEmpty()){ if(!text.isEmpty()){
@@ -290,9 +297,10 @@ public class UI implements ApplicationListener, Loadable{
hide(); hide();
} }
}); });
keyDown(KeyCode.escape, this::hide);
keyDown(KeyCode.back, this::hide); closeOnBack(closed);
show(); show();
Core.scene.setKeyboardFocus(field); Core.scene.setKeyboardFocus(field);
field.setCursorPosition(def.length()); field.setCursorPosition(def.length());
}}; }};
@@ -303,8 +311,12 @@ public class UI implements ApplicationListener, Loadable{
showTextInput(title, text, 32, def, confirmed); showTextInput(title, text, 32, def, confirmed);
} }
public void showTextInput(String titleText, String text, int textLength, String def, Cons<String> confirmed){ public void showTextInput(String title, String text, int textLength, String def, Cons<String> confirmed){
showTextInput(titleText, text, textLength, def, false, confirmed); showTextInput(title, text, textLength, def, false, confirmed);
}
public void showTextInput(String title, String text, int textLength, String def, boolean numeric, Cons<String> confirmed){
showTextInput(title, text, textLength, def, numeric, confirmed, () -> {});
} }
public void showInfoFade(String info){ public void showInfoFade(String info){
@@ -322,6 +334,24 @@ public class UI implements ApplicationListener, Loadable{
Core.scene.add(table); Core.scene.add(table);
} }
public void addDescTooltip(Element elem, String description){
if(description == null) return;
elem.addListener(new Tooltip(t -> t.background(Styles.black8).margin(4f).add(description).color(Color.lightGray)){
{
allowMobile = true;
}
@Override
protected void setContainerPosition(Element element, float x, float y){
this.targetActor = element;
Vec2 pos = element.localToStageCoordinates(Tmp.v1.set(0, 0));
container.pack();
container.setPosition(pos.x, pos.y, Align.topLeft);
container.setOrigin(0, element.getHeight());
}
});
}
/** Shows a fading label at the top of the screen. */ /** Shows a fading label at the top of the screen. */
public void showInfoToast(String info, float duration){ public void showInfoToast(String info, float duration){
var cinfo = Core.scene.find("coreinfo"); var cinfo = Core.scene.find("coreinfo");
@@ -419,6 +449,8 @@ public class UI implements ApplicationListener, Loadable{
} }
public void showException(String text, Throwable exc){ public void showException(String text, Throwable exc){
if(loadfrag == null) return;
loadfrag.hide(); loadfrag.hide();
new Dialog(""){{ new Dialog(""){{
String message = Strings.getFinalMessage(exc); String message = Strings.getFinalMessage(exc);
@@ -562,17 +594,13 @@ public class UI implements ApplicationListener, Loadable{
dialog.show(); dialog.show();
} }
/** Shows a menu that fires a callback when an option is selected. If nothing is selected, -1 is returned. */ // TODO REPLACE INTEGER WITH arc.fun.IntCons(int, T) or something like that.
public void showMenu(String title, String message, String[][] options, Intc callback){ public Dialog newMenuDialog(String title, String message, String[][] options, Cons2<Integer, Dialog> buttonListener){
new Dialog("[accent]" + title){{ return new Dialog(title){{
setFillParent(true); setFillParent(true);
removeChild(titleTable); removeChild(titleTable);
cont.add(titleTable).width(400f); cont.add(titleTable).width(400f);
getStyle().titleFontColor = Color.white;
title.getStyle().fontColor = Color.white;
title.setStyle(title.getStyle());
cont.row(); cont.row();
cont.image().width(400f).pad(2).colspan(2).height(4f).color(Pal.accent).bottom(); cont.image().width(400f).pad(2).colspan(2).height(4f).color(Pal.accent).bottom();
cont.row(); cont.row();
@@ -592,16 +620,47 @@ public class UI implements ApplicationListener, Loadable{
String optionName = optionsRow[i]; String optionName = optionsRow[i];
int finalOption = option; int finalOption = option;
buttonRow.button(optionName, () -> { buttonRow.button(optionName, () -> buttonListener.get(finalOption, this))
callback.get(finalOption); .size(i == optionsRow.length - 1 ? lastWidth : width, 50).pad(4);
hide();
}).size(i == optionsRow.length - 1 ? lastWidth : width, 50).pad(4);
option++; option++;
} }
} }
}).growX(); }).growX();
closeOnBack(() -> callback.get(-1)); }};
}}.show(); }
/** Shows a menu that fires a callback when an option is selected. If nothing is selected, -1 is returned. */
public void showMenu(String title, String message, String[][] options, Intc callback){
Dialog dialog = newMenuDialog(title, message, options, (option, myself) -> {
callback.get(option);
myself.hide();
});
dialog.closeOnBack(() -> callback.get(-1));
dialog.show();
}
/** Shows a menu that hides when another followUp-menu is shown or when nothing is selected.
* @see UI#showMenu(String, String, String[][], Intc) */
public void showFollowUpMenu(int menuId, String title, String message, String[][] options, Intc callback) {
Dialog dialog = newMenuDialog(title, message, options, (option, myself) -> callback.get(option));
dialog.closeOnBack(() -> {
followUpMenus.remove(menuId);
callback.get(-1);
});
Dialog oldDialog = followUpMenus.remove(menuId);
if(oldDialog != null){
dialog.show(Core.scene, null);
oldDialog.hide(null);
}else{
dialog.show();
}
followUpMenus.put(menuId, dialog);
}
public void hideFollowUpMenu(int menuId) {
if(!followUpMenus.containsKey(menuId)) return;
followUpMenus.remove(menuId).hide();
} }
/** Formats time with hours:minutes:seconds. */ /** Formats time with hours:minutes:seconds. */

View File

@@ -9,6 +9,7 @@ import arc.util.*;
import mindustry.content.*; import mindustry.content.*;
import mindustry.game.*; import mindustry.game.*;
import mindustry.world.*; import mindustry.world.*;
import static mindustry.Vars.*; import static mindustry.Vars.*;
public enum EditorTool{ public enum EditorTool{

View File

@@ -160,7 +160,7 @@ public class Damage{
//add distance to list so it can be processed //add distance to list so it can be processed
var build = world.build(x, y); var build = world.build(x, y);
if(build != null && build.team != b.team && b.checkUnderBuild(build, x * tilesize, y * tilesize)){ if(build != null && build.team != b.team && build.collide(b) && b.checkUnderBuild(build, x * tilesize, y * tilesize)){
distances.add(b.dst(build)); distances.add(b.dst(build));
if(b.type.laserAbsorb && build.absorbLasers()){ if(b.type.laserAbsorb && build.absorbLasers()){
@@ -237,7 +237,7 @@ public class Damage{
seg2.set(seg1).add(vec); seg2.set(seg1).add(vec);
World.raycastEachWorld(x, y, seg2.x, seg2.y, (cx, cy) -> { World.raycastEachWorld(x, y, seg2.x, seg2.y, (cx, cy) -> {
Building tile = world.build(cx, cy); Building tile = world.build(cx, cy);
boolean collide = tile != null && hitter.checkUnderBuild(tile, cx * tilesize, cy * tilesize) boolean collide = tile != null && tile.collide(hitter) && hitter.checkUnderBuild(tile, cx * tilesize, cy * tilesize)
&& ((tile.team != team && tile.collide(hitter)) || hitter.type.testCollision(hitter, tile)) && collidedBlocks.add(tile.pos()); && ((tile.team != team && tile.collide(hitter)) || hitter.type.testCollision(hitter, tile)) && collidedBlocks.add(tile.pos());
if(collide){ if(collide){
collided.add(collidePool.obtain().set(cx * tilesize, cy * tilesize, tile)); collided.add(collidePool.obtain().set(cx * tilesize, cy * tilesize, tile));
@@ -618,7 +618,7 @@ public class Damage{
return Math.max(damage - armor, minArmorDamage * damage); return Math.max(damage - armor, minArmorDamage * damage);
} }
public static class Collided{ public static class Collided implements Pool.Poolable{
public float x, y; public float x, y;
public Teamc target; public Teamc target;
@@ -628,5 +628,10 @@ public class Damage{
this.target = target; this.target = target;
return this; return this;
} }
@Override
public void reset(){
target = null;
}
} }
} }

View File

@@ -93,13 +93,13 @@ public class ForceFieldAbility extends Ability{
checkRadius(unit); checkRadius(unit);
if(unit.shield > 0){ if(unit.shield > 0){
Draw.z(Layer.shields);
Draw.color(unit.team.color, Color.white, Mathf.clamp(alpha)); Draw.color(unit.team.color, Color.white, Mathf.clamp(alpha));
if(Vars.renderer.animateShields){ if(Vars.renderer.animateShields){
Draw.z(Layer.shields + 0.001f * alpha);
Fill.poly(unit.x, unit.y, sides, realRad, rotation); Fill.poly(unit.x, unit.y, sides, realRad, rotation);
}else{ }else{
Draw.z(Layer.shields);
Lines.stroke(1.5f); Lines.stroke(1.5f);
Draw.alpha(0.09f); Draw.alpha(0.09f);
Fill.poly(unit.x, unit.y, sides, radius, rotation); Fill.poly(unit.x, unit.y, sides, radius, rotation);

View File

@@ -46,6 +46,8 @@ public class BulletType extends Content implements Cloneable{
public boolean pierceBuilding; public boolean pierceBuilding;
/** Maximum # of pierced objects. */ /** Maximum # of pierced objects. */
public int pierceCap = -1; public int pierceCap = -1;
/** Multiplier of damage decreased per health pierced. */
public float pierceDamageFactor = 0f;
/** If false, this bullet isn't removed after pierceCap is exceeded. Expert usage only. */ /** If false, this bullet isn't removed after pierceCap is exceeded. Expert usage only. */
public boolean removeAfterPierce = true; public boolean removeAfterPierce = true;
/** For piercing lasers, setting this to true makes it get absorbed by plastanium walls. */ /** For piercing lasers, setting this to true makes it get absorbed by plastanium walls. */
@@ -143,7 +145,7 @@ public class BulletType extends Content implements Cloneable{
public boolean fragOnHit = true; public boolean fragOnHit = true;
/** If false, this bullet will not create fraags when absorbed by a shield. */ /** If false, this bullet will not create fraags when absorbed by a shield. */
public boolean fragOnAbsorb = true; public boolean fragOnAbsorb = true;
/** If true, unit armor is ignored in damage calculations. Ignored for building armor. */ /** If true, unit armor is ignored in damage calculations. */
public boolean pierceArmor = false; public boolean pierceArmor = false;
/** Whether status and despawnHit should automatically be set. */ /** Whether status and despawnHit should automatically be set. */
public boolean setDefaults = true; public boolean setDefaults = true;
@@ -177,6 +179,8 @@ public class BulletType extends Content implements Cloneable{
public float intervalSpread = 0f; public float intervalSpread = 0f;
/** Angle offset for interval bullets. */ /** Angle offset for interval bullets. */
public float intervalAngle = 0f; public float intervalAngle = 0f;
/** Use a negative value to disable interval bullet delay. */
public float intervalDelay = -1f;
/** Color used for hit/despawn effects. */ /** Color used for hit/despawn effects. */
public Color hitColor = Color.white; public Color hitColor = Color.white;
@@ -358,6 +362,8 @@ public class BulletType extends Content implements Cloneable{
}else if(build.team != b.team && direct){ }else if(build.team != b.team && direct){
hit(b); hit(b);
} }
handlePierce(b, initialHealth, x, y);
} }
public void hitEntity(Bullet b, Hitboxc entity, float health){ public void hitEntity(Bullet b, Hitboxc entity, float health){
@@ -383,6 +389,19 @@ public class BulletType extends Content implements Cloneable{
if(!wasDead && entity instanceof Unit unit && unit.dead){ if(!wasDead && entity instanceof Unit unit && unit.dead){
Events.fire(new UnitBulletDestroyEvent(unit, b)); Events.fire(new UnitBulletDestroyEvent(unit, b));
} }
handlePierce(b, health, entity.x(), entity.y());
}
public void handlePierce(Bullet b, float initialHealth, float x, float y){
float sub = Math.max(initialHealth*pierceDamageFactor, 0);
//subtract health from each consecutive pierce
b.damage -= Math.min(b.damage, sub);
if(removeAfterPierce && b.damage <= 0){
b.hit = true;
b.remove();
}
} }
public float damageMultiplier(Bullet b){ public float damageMultiplier(Bullet b){
@@ -557,7 +576,7 @@ public class BulletType extends Content implements Cloneable{
} }
public void updateBulletInterval(Bullet b){ public void updateBulletInterval(Bullet b){
if(intervalBullet != null && b.timer.get(2, bulletInterval)){ if(intervalBullet != null && b.time >= intervalDelay && b.timer.get(2, bulletInterval)){
float ang = b.rotation(); float ang = b.rotation();
for(int i = 0; i < intervalBullets; i++){ for(int i = 0; i < intervalBullets; i++){
intervalBullet.create(b, b.x, b.y, ang + Mathf.range(intervalRandomSpread) + intervalAngle + ((i - (intervalBullets - 1f)/2f) * intervalSpread)); intervalBullet.create(b, b.x, b.y, ang + Mathf.range(intervalRandomSpread) + intervalAngle + ((i - (intervalBullets - 1f)/2f) * intervalSpread));

View File

@@ -1,8 +1,8 @@
package mindustry.entities.bullet; package mindustry.entities.bullet;
import arc.graphics.g2d.*; import arc.graphics.g2d.*;
import mindustry.gen.*;
import mindustry.content.*; import mindustry.content.*;
import mindustry.gen.*;
import mindustry.graphics.*; import mindustry.graphics.*;
public class LaserBoltBulletType extends BasicBulletType{ public class LaserBoltBulletType extends BasicBulletType{

View File

@@ -45,6 +45,11 @@ public class PointLaserBulletType extends BulletType{
drawSize = 1000f; drawSize = 1000f;
} }
@Override
public float continuousDamage(){
return damage / damageInterval * 60f;
}
@Override @Override
public float estimateDPS(){ public float estimateDPS(){
return damage * 100f / damageInterval * 3f; return damage * 100f / damageInterval * 3f;

View File

@@ -13,8 +13,6 @@ public class RailBulletType extends BulletType{
public Effect pierceEffect = Fx.hitBulletSmall, pointEffect = Fx.none, lineEffect = Fx.none; public Effect pierceEffect = Fx.hitBulletSmall, pointEffect = Fx.none, lineEffect = Fx.none;
public Effect endEffect = Fx.none; public Effect endEffect = Fx.none;
/** Multiplier of damage decreased per health pierced. */
public float pierceDamageFactor = 1f;
public float length = 100f; public float length = 100f;
@@ -37,8 +35,9 @@ public class RailBulletType extends BulletType{
return length; return length;
} }
void handle(Bullet b, float initialHealth, float x, float y){ @Override
float sub = Math.max(initialHealth*pierceDamageFactor, 0); public void handlePierce(Bullet b, float initialHealth, float x, float y){
float sub = Math.max(initialHealth * pierceDamageFactor, 0);
if(b.damage <= 0){ if(b.damage <= 0){
b.fdata = Math.min(b.fdata, b.dst(x, y)); b.fdata = Math.min(b.fdata, b.dst(x, y));
@@ -93,14 +92,8 @@ public class RailBulletType extends BulletType{
return bullet.team != tile.team; return bullet.team != tile.team;
} }
@Override
public void hitEntity(Bullet b, Hitboxc entity, float health){
super.hitEntity(b, entity, health);
handle(b, health, entity.getX(), entity.getY());
}
@Override @Override
public void hitTile(Bullet b, Building build, float x, float y, float initialHealth, boolean direct){ public void hitTile(Bullet b, Building build, float x, float y, float initialHealth, boolean direct){
handle(b, initialHealth, x, y); handlePierce(b, initialHealth, x, y);
} }
} }

View File

@@ -48,7 +48,7 @@ import static mindustry.Vars.*;
@EntityDef(value = {Buildingc.class}, isFinal = false, genio = false, serialize = false) @EntityDef(value = {Buildingc.class}, isFinal = false, genio = false, serialize = false)
@Component(base = true) @Component(base = true)
abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, QuadTreeObject, Displayable, Senseable, Controllable, Sized{ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, QuadTreeObject, Displayable, Sized, Senseable, Controllable, Settable{
//region vars and initialization //region vars and initialization
static final float timeToSleep = 60f * 1, recentDamageTime = 60f * 5f; static final float timeToSleep = 60f * 1, recentDamageTime = 60f * 5f;
static final ObjectSet<Building> tmpTiles = new ObjectSet<>(); static final ObjectSet<Building> tmpTiles = new ObjectSet<>();
@@ -1433,7 +1433,7 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
l.left(); l.left();
for(Item item : content.items()){ for(Item item : content.items()){
if(flowItems.hasFlowItem(item)){ if(flowItems.hasFlowItem(item)){
l.image(item.uiIcon).padRight(3f); l.image(item.uiIcon).scaling(Scaling.fit).padRight(3f);
l.label(() -> flowItems.getFlowRate(item) < 0 ? "..." : Strings.fixed(flowItems.getFlowRate(item), 1) + ps).color(Color.lightGray); l.label(() -> flowItems.getFlowRate(item) < 0 ? "..." : Strings.fixed(flowItems.getFlowRate(item), 1) + ps).color(Color.lightGray);
l.row(); l.row();
} }
@@ -1463,7 +1463,7 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
l.left(); l.left();
for(var liquid : content.liquids()){ for(var liquid : content.liquids()){
if(liquids.hasFlowLiquid(liquid)){ if(liquids.hasFlowLiquid(liquid)){
l.image(liquid.uiIcon).padRight(3f); l.image(liquid.uiIcon).scaling(Scaling.fit).size(32f).padRight(3f);
l.label(() -> liquids.getFlowRate(liquid) < 0 ? "..." : Strings.fixed(liquids.getFlowRate(liquid), 1) + ps).color(Color.lightGray); l.label(() -> liquids.getFlowRate(liquid) < 0 ? "..." : Strings.fixed(liquids.getFlowRate(liquid), 1) + ps).color(Color.lightGray);
l.row(); l.row();
} }
@@ -1951,6 +1951,58 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
} }
} }
@Override
public void setProp(LAccess prop, double value){
switch(prop){
case health -> {
health = (float)Mathf.clamp(value, 0, maxHealth);
healthChanged();
}
case team -> {
Team team = Team.get((int)value);
if(this.team != team){
changeTeam(team);
}
}
case totalPower -> {
if(power != null && block.consPower != null && block.consPower.buffered){
power.status = Mathf.clamp((float)(value / block.consPower.capacity));
}
}
}
}
@Override
public void setProp(LAccess prop, Object value){
switch(prop){
case team -> {
if(value instanceof Team team && this.team != team){
changeTeam(team);
}
}
}
}
@Override
public void setProp(UnlockableContent content, double value){
if(content instanceof Item item && items != null){
int amount = (int)value;
if(items.get(item) != amount){
if(items.get(item) < amount){
handleStack(item, acceptStack(item, amount - items.get(item), null), null);
}else if(amount >= 0){
removeStack(item, items.get(item) - amount);
}
}
}else if(content instanceof Liquid liquid && liquids != null){
float amount = Mathf.clamp((float)value, 0f, block.liquidCapacity);
//decreasing amount is always allowed
if(amount < liquids.get(liquid) || (acceptLiquid(self(), liquid) && (liquids.current() == liquid || liquids.currentAmount() <= 0.1f))){
liquids.set(liquid, amount);
}
}
}
@Replace @Replace
@Override @Override
public boolean inFogTo(Team viewer){ public boolean inFogTo(Team viewer){

View File

@@ -2,7 +2,6 @@ package mindustry.entities.comp;
import arc.math.*; import arc.math.*;
import arc.math.geom.*; import arc.math.geom.*;
import arc.util.*;
import mindustry.annotations.Annotations.*; import mindustry.annotations.Annotations.*;
import mindustry.async.PhysicsProcess.*; import mindustry.async.PhysicsProcess.*;
import mindustry.gen.*; import mindustry.gen.*;

View File

@@ -93,6 +93,11 @@ abstract class PlayerComp implements UnitController, Entityc, Syncc, Timerc, Dra
return isAdded(); return isAdded();
} }
@Override
public boolean isLogicControllable(){
return false;
}
@Replace @Replace
public float clipSize(){ public float clipSize(){
return unit.isNull() ? 20 : unit.type.hitSize * 2f; return unit.isNull() ? 20 : unit.type.hitSize * 2f;

View File

@@ -127,7 +127,7 @@ abstract class PuddleComp implements Posc, Puddlec, Drawc, Syncc{
@Replace @Replace
public float clipSize(){ public float clipSize(){
return 20; return 50; //high for light drawing
} }
@Override @Override

View File

@@ -34,14 +34,14 @@ abstract class ShieldComp implements Healthc, Posc{
public void damagePierce(float amount, boolean withEffect){ public void damagePierce(float amount, boolean withEffect){
float pre = hitTime; float pre = hitTime;
rawDamage(amount); rawDamage(amount / healthMultiplier);
if(!withEffect){ if(!withEffect){
hitTime = pre; hitTime = pre;
} }
} }
private void rawDamage(float amount){ protected void rawDamage(float amount){
boolean hadShields = shield > 0.0001f; boolean hadShields = shield > 0.0001f;
if(hadShields){ if(hadShields){

View File

@@ -31,7 +31,7 @@ import static mindustry.Vars.*;
import static mindustry.logic.GlobalVars.*; import static mindustry.logic.GlobalVars.*;
@Component(base = true) @Component(base = true)
abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, Itemsc, Rotc, Unitc, Weaponsc, Drawc, Boundedc, Syncc, Shieldc, Displayable, Senseable, Ranged, Minerc, Builderc{ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, Itemsc, Rotc, Unitc, Weaponsc, Drawc, Boundedc, Syncc, Shieldc, Displayable, Ranged, Minerc, Builderc, Senseable, Settable{
@Import boolean hovering, dead, disarmed; @Import boolean hovering, dead, disarmed;
@Import float x, y, rotation, elevation, maxHealth, drag, armor, hitSize, health, ammo, dragMultiplier; @Import float x, y, rotation, elevation, maxHealth, drag, armor, hitSize, health, ammo, dragMultiplier;
@@ -40,6 +40,7 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I
@Import @Nullable Tile mineTile; @Import @Nullable Tile mineTile;
@Import Vec2 vel; @Import Vec2 vel;
@Import WeaponMount[] mounts; @Import WeaponMount[] mounts;
@Import ItemStack stack;
private UnitController controller; private UnitController controller;
Ability[] abilities = {}; Ability[] abilities = {};
@@ -257,6 +258,60 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I
return Float.NaN; return Float.NaN;
} }
@Override
public void setProp(LAccess prop, double value){
switch(prop){
case health -> health = (float)Mathf.clamp(value, 0, maxHealth);
case x -> x = World.unconv((float)value);
case y -> y = World.unconv((float)value);
case rotation -> rotation = (float)value;
case team -> {
if(!net.client()){
Team team = Team.get((int)value);
if(controller instanceof Player p){
p.team(team);
}
this.team = team;
}
}
case flag -> flag = value;
}
}
@Override
public void setProp(LAccess prop, Object value){
switch(prop){
case team -> {
if(value instanceof Team t && !net.client()){
if(controller instanceof Player p) p.team(t);
team = t;
}
}
case payloadType -> {
//only serverside
if(((Object)this) instanceof Payloadc pay && !net.client()){
if(value instanceof Block b){
Building build = b.newBuilding().create(b, team());
if(pay.canPickup(build)) pay.addPayload(new BuildPayload(build));
}else if(value instanceof UnitType ut){
Unit unit = ut.create(team());
if(pay.canPickup(unit)) pay.addPayload(new UnitPayload(unit));
}else if(value == null && pay.payloads().size > 0){
pay.dropLastPayload();
}
}
}
}
}
@Override
public void setProp(UnlockableContent content, double value){
if(content instanceof Item item){
stack.item = item;
stack.amount = Mathf.clamp((int)value, 0, type.itemCapacity);
}
}
@Override @Override
@Replace @Replace
public boolean canDrown(){ public boolean canDrown(){

View File

@@ -1,5 +1,6 @@
package mindustry.entities.effect; package mindustry.entities.effect;
import arc.graphics.*;
import arc.math.*; import arc.math.*;
import mindustry.content.*; import mindustry.content.*;
import mindustry.entities.*; import mindustry.entities.*;
@@ -24,26 +25,14 @@ public class RadialEffect extends Effect{
} }
@Override @Override
public void init(){ public void create(float x, float y, float rotation, Color color, Object data){
effect.init(); if(!shouldCreate()) return;
clip = Math.max(clip, effect.clip);
lifetime = effect.lifetime;
}
@Override rotation += rotationOffset;
public void render(EffectContainer e){
float x = e.x, y = e.y;
e.rotation += rotationOffset;
for(int i = 0; i < amount; i++){ for(int i = 0; i < amount; i++){
e.x = x + Angles.trnsx(e.rotation, lengthOffset); effect.create(x + Angles.trnsx(rotation, lengthOffset), y + Angles.trnsy(rotation, lengthOffset), rotation, color, data);
e.y = y + Angles.trnsy(e.rotation, lengthOffset); rotation += rotationSpacing;
effect.render(e);
e.rotation += rotationSpacing;
e.id ++;
} }
clip = Math.max(clip, effect.clip);
} }
} }

View File

@@ -14,6 +14,8 @@ public abstract class DrawPart{
public boolean under = false; public boolean under = false;
/** For units, this is the index of the weapon this part gets its progress for. */ /** For units, this is the index of the weapon this part gets its progress for. */
public int weaponIndex = 0; public int weaponIndex = 0;
/** Which recoil counter to use. < 0 to use base recoil. */
public int recoilIndex = -1;
public abstract void draw(PartParams params); public abstract void draw(PartParams params);
public abstract void load(String name); public abstract void load(String name);
@@ -41,6 +43,11 @@ public abstract class DrawPart{
this.sideMultiplier = 1; this.sideMultiplier = 1;
return this; return this;
} }
public PartParams setRecoil(float recoils){
this.recoil = recoils;
return this;
}
} }
public static class PartMove{ public static class PartMove{

View File

@@ -1,5 +1,7 @@
package mindustry.entities.pattern; package mindustry.entities.pattern;
import arc.util.*;
public class ShootAlternate extends ShootPattern{ public class ShootAlternate extends ShootPattern{
/** number of barrels used for shooting. */ /** number of barrels used for shooting. */
public int barrels = 2; public int barrels = 2;
@@ -16,10 +18,11 @@ public class ShootAlternate extends ShootPattern{
} }
@Override @Override
public void shoot(int totalShots, BulletHandler handler){ public void shoot(int totalShots, BulletHandler handler, @Nullable Runnable barrelIncrementer){
for(int i = 0; i < shots; i++){ for(int i = 0; i < shots; i++){
float index = ((totalShots + i + barrelOffset) % barrels) - (barrels-1)/2f; float index = ((totalShots + i + barrelOffset) % barrels) - (barrels-1)/2f;
handler.shoot(index * spread, 0, 0f, firstShotDelay + shotDelay * i); handler.shoot(index * spread, 0, 0f, firstShotDelay + shotDelay * i);
if(barrelIncrementer != null) barrelIncrementer.run();
} }
} }
} }

View File

@@ -1,5 +1,7 @@
package mindustry.entities.pattern; package mindustry.entities.pattern;
import arc.util.*;
public class ShootBarrel extends ShootPattern{ public class ShootBarrel extends ShootPattern{
/** barrels [in x, y, rotation] format. */ /** barrels [in x, y, rotation] format. */
public float[] barrels = {0f, 0f, 0f}; public float[] barrels = {0f, 0f, 0f};
@@ -16,10 +18,11 @@ public class ShootBarrel extends ShootPattern{
} }
@Override @Override
public void shoot(int totalShots, BulletHandler handler){ public void shoot(int totalShots, BulletHandler handler, @Nullable Runnable barrelIncrementer){
for(int i = 0; i < shots; i++){ for(int i = 0; i < shots; i++){
int index = ((i + totalShots + barrelOffset) % (barrels.length / 3)) * 3; int index = ((i + totalShots + barrelOffset) % (barrels.length / 3)) * 3;
handler.shoot(barrels[index], barrels[index + 1], barrels[index + 2], firstShotDelay + shotDelay * i); handler.shoot(barrels[index], barrels[index + 1], barrels[index + 2], firstShotDelay + shotDelay * i);
if(barrelIncrementer != null) barrelIncrementer.run();
} }
} }
} }

View File

@@ -1,12 +1,13 @@
package mindustry.entities.pattern; package mindustry.entities.pattern;
import arc.math.*; import arc.math.*;
import arc.util.*;
public class ShootHelix extends ShootPattern{ public class ShootHelix extends ShootPattern{
public float scl = 2f, mag = 1.5f, offset = Mathf.PI * 1.25f; public float scl = 2f, mag = 1.5f, offset = Mathf.PI * 1.25f;
@Override @Override
public void shoot(int totalShots, BulletHandler handler){ public void shoot(int totalShots, BulletHandler handler, @Nullable Runnable barrelIncrementer){
for(int i = 0; i < shots; i++){ for(int i = 0; i < shots; i++){
for(int sign : Mathf.signs){ for(int sign : Mathf.signs){
handler.shoot(0, 0, 0, firstShotDelay + shotDelay * i, handler.shoot(0, 0, 0, firstShotDelay + shotDelay * i,

View File

@@ -1,5 +1,7 @@
package mindustry.entities.pattern; package mindustry.entities.pattern;
import arc.util.*;
public class ShootMulti extends ShootPattern{ public class ShootMulti extends ShootPattern{
public ShootPattern source; public ShootPattern source;
public ShootPattern[] dest = {}; public ShootPattern[] dest = {};
@@ -25,7 +27,7 @@ public class ShootMulti extends ShootPattern{
} }
@Override @Override
public void shoot(int totalShots, BulletHandler handler){ public void shoot(int totalShots, BulletHandler handler, @Nullable Runnable barrelIncrementer){
source.shoot(totalShots, (x, y, rotation, delay, move) -> { source.shoot(totalShots, (x, y, rotation, delay, move) -> {
for(var pattern : dest){ for(var pattern : dest){
pattern.shoot(totalShots, (x2, y2, rot2, delay2, mover) -> { pattern.shoot(totalShots, (x2, y2, rot2, delay2, mover) -> {
@@ -35,6 +37,6 @@ public class ShootMulti extends ShootPattern{
}); });
}); });
} }
}); }, barrelIncrementer);
} }
} }

View File

@@ -1,5 +1,6 @@
package mindustry.entities.pattern; package mindustry.entities.pattern;
import arc.util.*;
import mindustry.entities.*; import mindustry.entities.*;
/** Handles different types of bullet patterns for shooting. */ /** Handles different types of bullet patterns for shooting. */
@@ -12,12 +13,17 @@ public class ShootPattern implements Cloneable{
public float shotDelay = 0; public float shotDelay = 0;
/** Called on a single "trigger pull". This function should call the handler with any bullets that result. */ /** Called on a single "trigger pull". This function should call the handler with any bullets that result. */
public void shoot(int totalShots, BulletHandler handler){ public void shoot(int totalShots, BulletHandler handler, @Nullable Runnable barrelIncrementer){
for(int i = 0; i < shots; i++){ for(int i = 0; i < shots; i++){
handler.shoot(0, 0, 0, firstShotDelay + shotDelay * i); handler.shoot(0, 0, 0, firstShotDelay + shotDelay * i);
} }
} }
/** Called on a single "trigger pull". This function should call the handler with any bullets that result. */
public void shoot(int totalShots, BulletHandler handler){
shoot(totalShots, handler, null);
}
/** Subclasses should override this to flip its sides. */ /** Subclasses should override this to flip its sides. */
public void flip(){ public void flip(){

View File

@@ -1,6 +1,7 @@
package mindustry.entities.pattern; package mindustry.entities.pattern;
import arc.math.*; import arc.math.*;
import arc.util.*;
public class ShootSine extends ShootPattern{ public class ShootSine extends ShootPattern{
/** scaling applied to bullet index */ /** scaling applied to bullet index */
@@ -17,7 +18,7 @@ public class ShootSine extends ShootPattern{
} }
@Override @Override
public void shoot(int totalShots, BulletHandler handler){ public void shoot(int totalShots, BulletHandler handler, @Nullable Runnable barrelIncrementer){
for(int i = 0; i < shots; i++){ for(int i = 0; i < shots; i++){
float angleOffset = Mathf.sin(i + totalShots, scl, mag); float angleOffset = Mathf.sin(i + totalShots, scl, mag);
handler.shoot(0, 0, angleOffset, firstShotDelay + shotDelay * i); handler.shoot(0, 0, angleOffset, firstShotDelay + shotDelay * i);

View File

@@ -1,5 +1,7 @@
package mindustry.entities.pattern; package mindustry.entities.pattern;
import arc.util.*;
public class ShootSpread extends ShootPattern{ public class ShootSpread extends ShootPattern{
/** spread between bullets, in degrees. */ /** spread between bullets, in degrees. */
public float spread = 5f; public float spread = 5f;
@@ -13,7 +15,7 @@ public class ShootSpread extends ShootPattern{
} }
@Override @Override
public void shoot(int totalShots, BulletHandler handler){ public void shoot(int totalShots, BulletHandler handler, @Nullable Runnable barrelIncrementer){
for(int i = 0; i < shots; i++){ for(int i = 0; i < shots; i++){
float angleOffset = i * spread - (shots - 1) * spread / 2f; float angleOffset = i * spread - (shots - 1) * spread / 2f;
handler.shoot(0, 0, angleOffset, firstShotDelay + shotDelay * i); handler.shoot(0, 0, angleOffset, firstShotDelay + shotDelay * i);

View File

@@ -14,9 +14,7 @@ public class ShootSummon extends ShootPattern{
} }
@Override @Override
public void shoot(int totalShots, BulletHandler handler){ public void shoot(int totalShots, BulletHandler handler, @Nullable Runnable barrelIncrementer){
for(int i = 0; i < shots; i++){ for(int i = 0; i < shots; i++){
Tmp.v1.trns(Mathf.random(360f), Mathf.random(radius)); Tmp.v1.trns(Mathf.random(360f), Mathf.random(radius));

View File

@@ -55,6 +55,11 @@ public class AIController implements UnitController{
return false; return false;
} }
@Override
public boolean isLogicControllable(){
return true;
}
public void stopShooting(){ public void stopShooting(){
for(var mount : unit.mounts){ for(var mount : unit.mounts){
//ignore mount controllable stats too, they should not shoot either //ignore mount controllable stats too, they should not shoot either

View File

@@ -14,6 +14,11 @@ public interface UnitController{
return true; return true;
} }
/** @return whether logic AI can take over */
default boolean isLogicControllable(){
return false;
}
default void updateUnit(){ default void updateUnit(){
} }

View File

@@ -14,6 +14,8 @@ public class WeaponMount{
public float rotation; public float rotation;
/** weapon recoil */ /** weapon recoil */
public float recoil; public float recoil;
/** weapon barrel recoil */
public @Nullable float[] recoils;
/** destination rotation; do not modify! */ /** destination rotation; do not modify! */
public float targetRotation; public float targetRotation;
/** current heat, 0 to 1*/ /** current heat, 0 to 1*/
@@ -34,8 +36,10 @@ public class WeaponMount{
public boolean rotate = false; public boolean rotate = false;
/** extra state for alternating weapons */ /** extra state for alternating weapons */
public boolean side; public boolean side;
/** total bullets fired from this mount; used for alternating patterns */ /** total bullets fired from this mount */
public int totalShots; public int totalShots;
/** counter for which barrel bullets have been fired from; used for alternating patterns */
public int barrelCounter;
/** current bullet for continuous weapons */ /** current bullet for continuous weapons */
public @Nullable Bullet bullet; public @Nullable Bullet bullet;
/** sound loop for continuous weapons */ /** sound loop for continuous weapons */

View File

@@ -179,8 +179,21 @@ public class EventType{
public MenuOptionChooseEvent(Player player, int menuId, int option){ public MenuOptionChooseEvent(Player player, int menuId, int option){
this.player = player; this.player = player;
this.option = option;
this.menuId = menuId; this.menuId = menuId;
this.option = option;
}
}
/** Consider using Menus.registerTextInput instead. */
public static class TextInputEvent{
public final Player player;
public final int textInputId;
public final @Nullable String text;
public TextInputEvent(Player player, int textInputId, String text){
this.player = player;
this.textInputId = textInputId;
this.text = text;
} }
} }

View File

@@ -10,7 +10,7 @@ import mindustry.type.*;
import static mindustry.content.UnitTypes.*; import static mindustry.content.UnitTypes.*;
public class Waves{ public class Waves{
public static final int waveVersion = 5; public static final int waveVersion = 6;
private Seq<SpawnGroup> spawns; private Seq<SpawnGroup> spawns;

View File

@@ -12,6 +12,19 @@ public class InverseKinematics{
return solve(lengthA, lengthB, end, at1, result); return solve(lengthA, lengthB, end, at1, result);
} }
/**
inputs:
@param lengthA first line segment length
@param lengthB second line segment length
@param end length of the endpoint you want to reach
@param attractor direction you want the result to be closer to (since there are usually 2 solutions)
output:
@param result a point in-between (0, 0) and (end) such that (0, 0).dst(result) == lengthA and result.dst(end) == lengthB - or in basic terms, the position of a joint between (0, 0) and end where the two lengths of segments are lengthA and lengthB
@return whether IK succeeded (this can fail if end is too far, for example)
*/
public static boolean solve(float lengthA, float lengthB, Vec2 end, Vec2 attractor, Vec2 result){ public static boolean solve(float lengthA, float lengthB, Vec2 end, Vec2 attractor, Vec2 result){
Vec2 axis = mat2[0].set(end).nor(); Vec2 axis = mat2[0].set(end).nor();
mat2[1].set(attractor).sub(temp2.set(axis).scl(attractor.dot(axis))).nor(); mat2[1].set(attractor).sub(temp2.set(axis).scl(attractor.dot(axis))).nor();

View File

@@ -188,9 +188,10 @@ public class PlanetRenderer implements Disposable{
} }
//render sector grid //render sector grid
Mesh mesh = outline(planet.grid.size); float scaledOutlineRad = outlineRad * planet.radius;
Mesh mesh = outline(planet.grid.size, planet.radius);
Shader shader = Shaders.planetGrid; Shader shader = Shaders.planetGrid;
Vec3 tile = planet.intersect(cam.getMouseRay(), outlineRad); Vec3 tile = planet.intersect(cam.getMouseRay(), scaledOutlineRad);
Shaders.planetGrid.mouse.lerp(tile == null ? Vec3.Zero : tile.sub(planet.position).rotate(Vec3.Y, planet.getRotation()), 0.2f); Shaders.planetGrid.mouse.lerp(tile == null ? Vec3.Zero : tile.sub(planet.position).rotate(Vec3.Y, planet.getRotation()), 0.2f);
shader.bind(); shader.bind();
@@ -210,13 +211,14 @@ public class PlanetRenderer implements Disposable{
public void drawArc(Planet planet, Vec3 a, Vec3 b, Color from, Color to, float length, float timeScale, int pointCount){ public void drawArc(Planet planet, Vec3 a, Vec3 b, Color from, Color to, float length, float timeScale, int pointCount){
//increase curve height when on opposite side of planet, so it doesn't tunnel through //increase curve height when on opposite side of planet, so it doesn't tunnel through
float scaledOutlineRad = outlineRad * planet.radius;
float dot = 1f - (Tmp.v32.set(a).nor().dot(Tmp.v33.set(b).nor()) + 1f)/2f; float dot = 1f - (Tmp.v32.set(a).nor().dot(Tmp.v33.set(b).nor()) + 1f)/2f;
Vec3 avg = Tmp.v31.set(b).add(a).scl(0.5f); Vec3 avg = Tmp.v31.set(b).add(a).scl(0.5f);
avg.setLength(planet.radius*(1f+length) + dot * 1.35f); avg.setLength(planet.radius*(1f+length) + dot * 1.35f);
points.clear(); points.clear();
points.addAll(Tmp.v33.set(b).setLength(outlineRad), Tmp.v31, Tmp.v34.set(a).setLength(outlineRad)); points.addAll(Tmp.v33.set(b).setLength(scaledOutlineRad), Tmp.v31, Tmp.v34.set(a).setLength(scaledOutlineRad));
Tmp.bz3.set(points); Tmp.bz3.set(points);
for(int i = 0; i < pointCount + 1; i++){ for(int i = 0; i < pointCount + 1; i++){
@@ -231,8 +233,8 @@ public class PlanetRenderer implements Disposable{
public void drawBorders(Sector sector, Color base, float alpha){ public void drawBorders(Sector sector, Color base, float alpha){
Color color = Tmp.c1.set(base).a((base.a + 0.3f + Mathf.absin(Time.globalTime, 5f, 0.3f)) * alpha); Color color = Tmp.c1.set(base).a((base.a + 0.3f + Mathf.absin(Time.globalTime, 5f, 0.3f)) * alpha);
float r1 = 1f; float r1 = 1f * sector.planet.radius;
float r2 = outlineRad + 0.001f; float r2 = outlineRad * sector.planet.radius + 0.001f;
for(int i = 0; i < sector.tile.corners.length; i++){ for(int i = 0; i < sector.tile.corners.length; i++){
Corner c = sector.tile.corners[i], next = sector.tile.corners[(i+1) % sector.tile.corners.length]; Corner c = sector.tile.corners[i], next = sector.tile.corners[(i+1) % sector.tile.corners.length];
@@ -268,16 +270,16 @@ public class PlanetRenderer implements Disposable{
projector.setPlane( projector.setPlane(
//origin on sector position //origin on sector position
Tmp.v33.set(sector.tile.v).setLength(outlineRad + length).rotate(Vec3.Y, rotation).add(sector.planet.position), Tmp.v33.set(sector.tile.v).setLength((outlineRad + length) * sector.planet.radius).rotate(Vec3.Y, rotation).add(sector.planet.position),
//face up //face up
sector.plane.project(Tmp.v32.set(sector.tile.v).add(Vec3.Y)).sub(sector.tile.v).rotate(Vec3.Y, rotation).nor(), sector.plane.project(Tmp.v32.set(sector.tile.v).add(Vec3.Y)).sub(sector.tile.v, sector.planet.radius).rotate(Vec3.Y, rotation).nor(),
//right vector //right vector
Tmp.v31.set(Tmp.v32).rotate(Vec3.Y, -rotation).add(sector.tile.v).rotate(sector.tile.v, 90).sub(sector.tile.v).rotate(Vec3.Y, rotation).nor() Tmp.v31.set(Tmp.v32).rotate(Vec3.Y, -rotation).add(sector.tile.v).rotate(sector.tile.v, 90).sub(sector.tile.v).rotate(Vec3.Y, rotation).nor()
); );
} }
public void fill(Sector sector, Color color, float offset){ public void fill(Sector sector, Color color, float offset){
float rr = outlineRad + offset; float rr = outlineRad * sector.planet.radius + offset;
for(int i = 0; i < sector.tile.corners.length; i++){ for(int i = 0; i < sector.tile.corners.length; i++){
Corner c = sector.tile.corners[i], next = sector.tile.corners[(i+1) % sector.tile.corners.length]; Corner c = sector.tile.corners[i], next = sector.tile.corners[(i+1) % sector.tile.corners.length];
batch.tri(Tmp.v31.set(c.v).setLength(rr), Tmp.v32.set(next.v).setLength(rr), Tmp.v33.set(sector.tile.v).setLength(rr), color); batch.tri(Tmp.v31.set(c.v).setLength(rr), Tmp.v32.set(next.v).setLength(rr), Tmp.v33.set(sector.tile.v).setLength(rr), color);
@@ -289,7 +291,7 @@ public class PlanetRenderer implements Disposable{
} }
public void drawSelection(Sector sector, Color color, float stroke, float length){ public void drawSelection(Sector sector, Color color, float stroke, float length){
float arad = outlineRad + length; float arad = (outlineRad + length) * sector.planet.radius;
for(int i = 0; i < sector.tile.corners.length; i++){ for(int i = 0; i < sector.tile.corners.length; i++){
Corner next = sector.tile.corners[(i + 1) % sector.tile.corners.length]; Corner next = sector.tile.corners[(i + 1) % sector.tile.corners.length];
@@ -311,7 +313,7 @@ public class PlanetRenderer implements Disposable{
} }
} }
public Mesh outline(int size){ public Mesh outline(int size, float radiusScale){
if(outlines[size] == null){ if(outlines[size] == null){
outlines[size] = MeshBuilder.buildHex(new HexMesher(){ outlines[size] = MeshBuilder.buildHex(new HexMesher(){
@Override @Override
@@ -323,7 +325,7 @@ public class PlanetRenderer implements Disposable{
public Color getColor(Vec3 position){ public Color getColor(Vec3 position){
return outlineColor; return outlineColor;
} }
}, size, true, outlineRad, 0.2f); }, size, true, outlineRad * radiusScale, 0.2f);
} }
return outlines[size]; return outlines[size];
} }

View File

@@ -262,7 +262,7 @@ public class DesktopInput extends InputHandler{
shouldShoot = !scene.hasMouse() && !locked; shouldShoot = !scene.hasMouse() && !locked;
if(!locked && block == null && !scene.hasField() && if(!locked && block == null && !scene.hasField() && !scene.hasDialog() &&
//disable command mode when player unit can boost and command mode binding is the same //disable command mode when player unit can boost and command mode binding is the same
!(!player.dead() && player.unit().type.canBoost && keybinds.get(Binding.command_mode).key == keybinds.get(Binding.boost).key)){ !(!player.dead() && player.unit().type.canBoost && keybinds.get(Binding.command_mode).key == keybinds.get(Binding.boost).key)){
if(settings.getBool("commandmodehold")){ if(settings.getBool("commandmodehold")){

View File

@@ -119,6 +119,15 @@ public class TypeIO{
}else if(object instanceof Team t){ }else if(object instanceof Team t){
write.b((byte)20); write.b((byte)20);
write.b(t.id); write.b(t.id);
}else if(object instanceof int[] i){
write.b((byte)21);
writeInts(write, i);
}else if(object instanceof Object[] objs){
write.b((byte)22);
write.i(objs.length);
for(Object obj : objs){
writeObject(write, obj);
}
}else{ }else{
throw new IllegalArgumentException("Unknown object type: " + object.getClass()); throw new IllegalArgumentException("Unknown object type: " + object.getClass());
} }
@@ -184,6 +193,13 @@ public class TypeIO{
} }
case 19 -> new Vec2(read.f(), read.f()); case 19 -> new Vec2(read.f(), read.f());
case 20 -> Team.all[read.ub()]; case 20 -> Team.all[read.ub()];
case 21 -> readInts(read);
case 22 -> {
int objlen = read.i();
Object[] objs = new Object[objlen];
for(int i = 0; i < objlen; i++) objs[i] = readObjectBoxed(read, box);
yield objs;
}
default -> throw new IllegalArgumentException("Unknown object type: " + type); default -> throw new IllegalArgumentException("Unknown object type: " + type);
}; };
} }
@@ -631,8 +647,8 @@ public class TypeIO{
return new ItemStack(readItem(read), read.i()); return new ItemStack(readItem(read), read.i());
} }
public static void writeTeam(Writes write, Team reason){ public static void writeTeam(Writes write, Team team){
write.b(reason.id); write.b(team == null ? 0 : team.id);
} }
public static Team readTeam(Reads read){ public static Team readTeam(Reads read){

View File

@@ -1,7 +1,6 @@
package mindustry.io.versions; package mindustry.io.versions;
import arc.func.*; import arc.func.*;
import arc.util.*;
import arc.util.io.*; import arc.util.io.*;
import mindustry.gen.*; import mindustry.gen.*;

View File

@@ -59,7 +59,8 @@ public enum LAccess{
public static final LAccess[] public static final LAccess[]
all = values(), all = values(),
senseable = Seq.select(all, t -> t.params.length <= 1).toArray(LAccess.class), senseable = Seq.select(all, t -> t.params.length <= 1).toArray(LAccess.class),
controls = Seq.select(all, t -> t.params.length > 0).toArray(LAccess.class); controls = Seq.select(all, t -> t.params.length > 0).toArray(LAccess.class),
settable = {x, y, rotation, team, flag, health, totalPower, payloadType};
LAccess(String... params){ LAccess(String... params){
this.params = params; this.params = params;

View File

@@ -361,7 +361,7 @@ public class LExecutor{
/** Checks is a unit is valid for logic AI control, and returns the controller. */ /** Checks is a unit is valid for logic AI control, and returns the controller. */
@Nullable @Nullable
public static LogicAI checkLogicAI(LExecutor exec, Object unitObj){ public static LogicAI checkLogicAI(LExecutor exec, Object unitObj){
if(unitObj instanceof Unit unit && unit.isValid() && exec.obj(varUnit) == unit && (unit.team == exec.team || exec.privileged) && !unit.isPlayer() && !(unit.isCommandable() && unit.command().hasCommand())){ if(unitObj instanceof Unit unit && unit.isValid() && exec.obj(varUnit) == unit && (unit.team == exec.team || exec.privileged) && unit.controller().isLogicControllable()){
if(unit.controller() instanceof LogicAI la){ if(unit.controller() instanceof LogicAI la){
la.controller = exec.building(varThis); la.controller = exec.building(varThis);
return la; return la;
@@ -1695,5 +1695,37 @@ public class LExecutor{
} }
} }
public static class SetPropI implements LInstruction{
public int type, of, value;
public SetPropI(int type, int of, int value){
this.type = type;
this.of = of;
this.value = value;
}
public SetPropI(){
}
@Override
public void run(LExecutor exec){
Object target = exec.obj(of);
Object key = exec.obj(type);
if(target instanceof Settable sp){
if(key instanceof LAccess property){
Var var = exec.var(value);
if(var.isobj){
sp.setProp(property, var.objval);
}else{
sp.setProp(property, var.numval);
}
}else if(key instanceof UnlockableContent content){
sp.setProp(content, exec.num(value));
}
}
}
}
//endregion //endregion
} }

View File

@@ -2,7 +2,6 @@ package mindustry.logic;
import arc.*; import arc.*;
import arc.func.*; import arc.func.*;
import arc.graphics.*;
import arc.math.*; import arc.math.*;
import arc.scene.*; import arc.scene.*;
import arc.scene.actions.*; import arc.scene.actions.*;

View File

@@ -1683,4 +1683,113 @@ public class LStatements{
return LCategory.world; return LCategory.world;
} }
} }
@RegisterStatement("setprop")
public static class SetPropStatement extends LStatement{
public String type = "@copper", of = "block1", value = "0";
private transient int selected = 0;
private transient TextField tfield;
@Override
public void build(Table table){
table.add(" set ");
tfield = field(table, type, str -> type = str).padRight(0f).get();
table.button(b -> {
b.image(Icon.pencilSmall);
//240
b.clicked(() -> showSelectTable(b, (t, hide) -> {
Table[] tables = {
//items
new Table(i -> {
i.left();
int c = 0;
for(Item item : Vars.content.items()){
if(item.hidden) continue;
i.button(new TextureRegionDrawable(item.uiIcon), Styles.flati, iconSmall, () -> {
stype("@" + item.name);
hide.run();
}).size(40f);
if(++c % 6 == 0) i.row();
}
}),
//liquids
new Table(i -> {
i.left();
int c = 0;
for(Liquid item : Vars.content.liquids()){
if(!item.unlockedNow() || item.hidden) continue;
i.button(new TextureRegionDrawable(item.uiIcon), Styles.flati, iconSmall, () -> {
stype("@" + item.name);
hide.run();
}).size(40f);
if(++c % 6 == 0) i.row();
}
}),
//sensors
new Table(i -> {
for(LAccess property : LAccess.settable){
i.button(property.name(), Styles.flatt, () -> {
stype("@" + property.name());
hide.run();
}).size(240f, 40f).self(c -> tooltip(c, property)).row();
}
})
};
Drawable[] icons = {Icon.box, Icon.liquid, Icon.tree};
Stack stack = new Stack(tables[selected]);
ButtonGroup<Button> group = new ButtonGroup<>();
for(int i = 0; i < tables.length; i++){
int fi = i;
t.button(icons[i], Styles.squareTogglei, () -> {
selected = fi;
stack.clearChildren();
stack.addChild(tables[selected]);
t.parent.parent.pack();
t.parent.parent.invalidateHierarchy();
}).height(50f).growX().checked(selected == fi).group(group);
}
t.row();
t.add(stack).colspan(3).width(240f).left();
}));
}, Styles.logict, () -> {}).size(40f).padLeft(-1).color(table.color);
table.add(" of ").self(this::param);
field(table, of, str -> of = str);
table.add(" to ");
field(table, value, str -> value = str);
}
private void stype(String text){
tfield.setText(text);
this.type = text;
}
@Override
public boolean privileged(){
return true;
}
@Override
public LInstruction build(LAssembler builder){
return new SetPropI(builder.var(type), builder.var(of), builder.var(value));
}
@Override
public LCategory category(){
return LCategory.world;
}
}
} }

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