Compare commits

...

282 Commits
v127 ... v129

Author SHA1 Message Date
Anuken
bdb4ae2f85 Typo fix 2021-07-28 17:28:01 -04:00
Anuken
850b0d0210 Merge remote-tracking branch 'origin/master' 2021-07-28 17:08:56 -04:00
Anuken
fa0f161106 Minor swarmer range buff 2021-07-28 17:08:48 -04:00
Prosta4okua
59aff44a55 Update bundle_uk_UA.properties (#5540) 2021-07-28 16:58:06 -04:00
YellOw139
aa74679998 [Bundle][RO] Update (#5573)
* [Bundle][RO] Update

Changelog:

- New strings/changes up to commit 8041c305ad
- Typo fixes & various other improvements

* Update bundle_ro.properties

* Update bundle_ro.properties

* settings

* Update bundle_ro.properties

* new blocks

* new units I

* new units II

* Update bundle_ro.properties

* Update bundle_ro.properties
2021-07-28 16:57:54 -04:00
Anuken
61db253d4a Merge remote-tracking branch 'origin/master' 2021-07-28 11:51:25 -04:00
Anuken
fef8ee925b Potential fix for #5660 2021-07-28 11:51:20 -04:00
Ksawi
5cb5434ffe Update bundle_pl.properties (#5572)
* Update bundle_pl.properties

Added translation of statuses and processor functions. Changed few translations.

* content.status.name

* Update bundle_pl.properties

* Update bundle_pl.properties

* Flares in omura.description

* Update bundle_pl.properties

* Now better?

* Update bundle_pl.properties

* Better names

* Update bundle_pl.properties

* bullet.lightning

* mods.browser

* Badania -> Zbadaj

* Final statuses names (I think)

* Ready to merge

* Tutorial (as in #5206)

* Research

* Final changes
2021-07-28 10:45:49 -04:00
Catchears
2f71a4092f german v7 update (#5631) 2021-07-28 10:45:15 -04:00
VizardAlpha
a97573c5a9 Updates bundle_fr.properties (#5611)
* Updates bundle_fr.properties

Add and translate.
Commits on Jul 13, 2021
Commits on Jul 17, 2021 
Commits on Jul 18, 2021

* Minor. Correcting translation errors

* Add commit

* Add commit

* Add new commit

Translation not finish;
unit.oxynoe.description = Fires structure-repairing streams of flame at nearby enemies. Targets nearby enemy projectiles with a point defense turret.

* Translation finish

* Added hint & tooltip for derelict structures

* Correction of an error

hint.placeTurret = Placez des \fuf861 -> hint.placeTurret = Placez des \uf861

* Fixed #5645

servers.local.steam = Open Games & Serveurs Locaux 

Not finish

* Removed flow rate option
2021-07-28 10:45:02 -04:00
Sharlotte
108baa467d Update bundle_ko.properties (#5604)
* Update bundle_ko.properties

* Update bundle_ko.properties

* Update bundle_ko.properties

* halha

* Update bundle_ko.properties
2021-07-28 10:44:44 -04:00
JrTRinny
193015f1cd update bundle_th.properties (#5591)
* separated from `#5491`

* follow latest changes

like settings tooltips, large launch pad removal and clean up team PvP

* follow latest changes

* descriptions for new content

* line spacings and edit errors

* derelict tooltips

* open games

* remove resource flow rate
2021-07-28 10:44:35 -04:00
Anuken
b64432dafd Allow placing blocks with 0 requirements of an item 2021-07-28 08:38:45 -04:00
buthed010203
d66bb3a539 Better Plan Skipping 2: Electric Boogaloo (#5659)
Fixing a problem that I created. Just allows for plan switching when items are low when the player isnt in range of the building they were previously building.
Before: ![](https://aethex.is-a.fail/55tN9oFIC.png)
After: ![](https://extremely.questionable.link/55tNBlX8h.png)
2021-07-27 20:20:27 -04:00
Anuken
5ca5025fb1 Final core launch animation / Added option to skip core animations 2021-07-27 19:02:04 -04:00
Anuken
497a68e792 Merge remote-tracking branch 'origin/master' 2021-07-27 17:43:19 -04:00
Anuken
737fa4fa69 WIP launch animation progress 2021-07-27 17:43:12 -04:00
Volas171
3d3e33912e Mindustry Reborn CAMS (update servers_v7.json) (#5651)
* CAMS

* space
2021-07-27 17:09:50 -04:00
Sunny Kim
235fee091e keep v6 mod compatibility (#5655) 2021-07-27 17:08:29 -04:00
Anuken
00e3a59463 Land animation progress / IntelliJ android plugin hack 2021-07-27 16:26:13 -04:00
Anuken
269c48b65b AmmoType refactoring 2021-07-27 12:42:50 -04:00
Anuken
adbe55b0db Minor cloud bugfixes / Removed flow rate option 2021-07-27 09:08:09 -04:00
Anuken
f5222674ff Unused sprite cleanup 2021-07-26 19:54:22 -04:00
Anuken
c19a7e8452 New core landing animation 2021-07-26 19:29:14 -04:00
Anuken
aab79a90fb Fixed #5648 2021-07-25 20:55:59 -04:00
Anuken
f3b6f0a29b Fixed #5647 2021-07-25 20:17:18 -04:00
Anuken
d1fb436d6d Further bridge cleanup 2021-07-25 19:55:07 -04:00
Anuken
1734d02291 Bridge code cleanup 2021-07-25 19:21:13 -04:00
Anuken
f8c7739d5a Removed unitModifier flag 2021-07-25 17:17:07 -04:00
Anuken
7a1f332731 Ammo system redesign 2021-07-25 17:15:39 -04:00
Anuken
9cd19c0470 Fixed generator time not saving / 128 compat break 2021-07-25 14:35:56 -04:00
Anuken
c9ca08ff1c Merge remote-tracking branch 'origin/master' 2021-07-25 12:04:52 -04:00
Anuken
c14532ecae Fixed #5645 2021-07-25 12:04:17 -04:00
EnderquakeYT
b66cc8d8d7 Fixed stuff and added translation (#5440)
Fixed wave.enemy and added a translation for stat.charge
2021-07-25 09:08:16 -04:00
Anuken
b6ed5fbd6f Disable keyboard option on iOS 2021-07-25 08:41:06 -04:00
Anuken
2fec2156f6 Fixed #5642 2021-07-24 23:14:28 -04:00
Anuken
35b3231b84 Merge remote-tracking branch 'origin/master' 2021-07-24 21:10:46 -04:00
Anuken
f77c32cbb2 New flying unit targeting system 2021-07-24 21:10:39 -04:00
MEEP of Faith
7ec5aa28b3 Include time in status effect draw (#5640) 2021-07-24 20:10:41 -04:00
Anuken
373d004752 Merge remote-tracking branch 'origin/master' 2021-07-24 12:48:29 -04:00
Anuken
0ee137fe05 Added hint & tooltip for derelict structures 2021-07-24 12:48:25 -04:00
buthed010203
9c5d75c439 Typo Fix (#5639)
do
2021-07-24 10:41:01 -04:00
Anuken
adbfcdf16a Reverted vault/container health buff due to "damaged" appearance in saves 2021-07-24 09:14:38 -04:00
Anuken
0716ecad55 Merge remote-tracking branch 'origin/master' 2021-07-24 08:44:47 -04:00
Anuken
9160ee546c Allow derelict block pickup / Fixed derelict blocks being targeted 2021-07-24 08:44:43 -04:00
SoMall-dumpling
7897d2858c Update bundle_zh_CN.properties (#5530)
* Update bundle_zh_CN.properties

* Update bundle_zh_CN.properties

* Update bundle_zh_CN.properties

* Update bundle_zh_CN.properties

* Update bundle_zh_CN.properties

* Update bundle_zh_CN.properties

* Update bundle_zh_CN.properties

* Update bundle_zh_CN.properties

* Create bundle_zh_CN.properties

* Create bundle_zh_CN.properties

* Update bundle_zh_CN.properties

* Update bundle_zh_CN.properties

* Update bundle_zh_CN.properties

* Update bundle_zh_CN.properties

* Update bundle_zh_CN.properties

* Update bundle_zh_CN.properties

* Update bundle_zh_CN.properties

Updates the latest Navy Support Units description.

* Update bundle_zh_CN.properties

Perfectly matches.
2021-07-24 08:40:23 -04:00
Anuken
b88364ab48 Fixed #5638 2021-07-24 08:36:20 -04:00
Anuken
7727da40b4 Merge remote-tracking branch 'origin/master' 2021-07-23 19:40:08 -04:00
Anuken
17e68f7a93 Fixed additive reconstructor center sprite 2021-07-23 19:39:52 -04:00
Anuken
120aa7c12a Cleanup 2021-07-23 17:56:13 -04:00
buthed010203
53214f0ddc Enable mining of sand when double click to mine is enabled (#4788)
* Sand mineable with double click to mine enabled

Since the only reason sand is un-mineable in the first place is because accidentally mining it is annoying, it should be enabled for double click to mine.

* only show sand as mineable when double click mine is enabled

Co-authored-by: Anuken <arnukren@gmail.com>
2021-07-23 15:51:26 -04:00
Anuken
d89a1fac70 Update pull_request_template.md 2021-07-23 15:50:09 -04:00
Semetrix
0c00000910 Add a second Hungarian server (#5636) 2021-07-23 15:49:42 -04:00
buthed010203
f4f46eb924 Better plan skipping (#5634)
This prevents the plans being skipped when there is a large number of items entering the core yet the core is still starved of that item.
2021-07-23 13:45:48 -04:00
Anuken
b873adf5fc docs 2021-07-23 10:25:12 -04:00
Anuken
72fb66e5b2 Anuken/Mindustry-Suggestions/issues/2730 2021-07-22 11:21:23 -04:00
Anuken
af691c980d Merge remote-tracking branch 'origin/master' 2021-07-21 21:03:30 -04:00
Anuken
b3be906e28 Removed MendProjector phase coloration 2021-07-21 21:03:26 -04:00
buthed010203
1c22e2ed28 Update StatValues.java (#5629)
Why is this number 0? The default amount should be 1, the timeperiod is already set to 0 everywhere anyways.
2021-07-21 15:50:35 -04:00
Anuken
95fd073432 Merge remote-tracking branch 'origin/master' 2021-07-21 09:02:13 -04:00
Anuken
fcb9ebb8c3 Thermal generator effect tweaks 2021-07-21 09:02:08 -04:00
VizardAlpha
4ab063679b Update short_description.txt for android (#5401) 2021-07-21 08:37:14 -04:00
Anuken
db13bffad6 Descriptions for new content 2021-07-21 07:58:50 -04:00
Anuken
b719a0cd35 Merge remote-tracking branch 'origin/master' 2021-07-20 19:56:59 -04:00
Anuken
d506685bba Stacked map editor brush slider 2021-07-20 19:56:55 -04:00
Anuken
8cf2068a70 Create pull_request_template.md 2021-07-20 19:15:50 -04:00
Anuken
14e4203ee7 #4912 2021-07-20 17:59:47 -04:00
Anuken
447562b2f1 Turret accurateDelay parameter 2021-07-20 17:55:00 -04:00
Anuken
02c03e9c67 Cleanup & minor layout bugfixes 2021-07-20 17:38:09 -04:00
Anuken
f8ddf952ca Improved coal centrifuge update effect 2021-07-20 15:22:57 -04:00
Anuken
8436599c79 #5050 2021-07-20 14:12:48 -04:00
Anuken
4c51519b8a #4886 2021-07-20 13:59:19 -04:00
Anuken
0f199fa4b4 Partial impl of #2923 2021-07-20 13:17:18 -04:00
Anuken
b28aff4a7b Sector items display fixes 2021-07-20 12:05:10 -04:00
Anuken
ba227d64fb #5224 2021-07-20 11:42:11 -04:00
MEEP of Faith
7656aedb6b Drawf.Laser with different ends (#5301)
* Laser with different ends

* Allow usage of different ended TractorBeamTurret lasers

* oops

* aaaa

* too. many. commits.

* Remove rotation

* I shouldn't be allowed to edit from the browser.
2021-07-20 11:22:17 -04:00
Phinner
6e967dce70 Add xpdustry.fr to server_v6.json (#5625)
A server for my dear french Mindustry players, dedicated for plugin testing and survival maps.
2021-07-20 11:19:03 -04:00
Patrick 'Quezler' Mounier
232415f1d7 Move capping code from armored to normal conduits (#4979) 2021-07-20 11:05:35 -04:00
Anuken
b2ed0ee884 #4440 2021-07-20 10:56:58 -04:00
Anuken
6ffc8ba3c5 #4874 2021-07-20 10:45:15 -04:00
Anuken
82f0d6a542 Fixed core capture crash 2021-07-20 10:28:58 -04:00
Anuken
40e0303786 Merge remote-tracking branch 'origin/master' 2021-07-20 10:20:11 -04:00
Anuken
0e3bb40eb4 More mobile input targeting fixes 2021-07-20 10:20:06 -04:00
notrealn
730cb14f6a Fix turret shooting priority when there are multiple teams (#5299) 2021-07-20 09:00:19 -04:00
Anuken
c18ab184b7 Merge remote-tracking branch 'origin/master' 2021-07-20 08:49:10 -04:00
Anuken
b85cbe515e Fixed #5621 2021-07-20 08:49:02 -04:00
buthed010203
b58f202e9e Allow hiding of steam servers (#5618)
* Allow hiding of steam servers

Theres no way to hide them while keeping them public in the steam api so instead this jank is needed. This wont do anything on a vanilla install but will allow people hosting headless steam servers to hide them if they only use the server to verify if players are on steam or not.

* Hide only when hidden = true
2021-07-19 20:57:36 -04:00
Sunny Kim
fde23ceea0 SpinSprite DrawRotator for json mods (#5619) 2021-07-19 19:11:53 -04:00
buthed010203
aab2437c4c Dont disconnect when connecting to steam servers on non steam (#5617)
This will allow sending steam players to steam servers while completely ignoring non steam ones.
2021-07-19 18:42:03 -04:00
Ilya246
b7f7be839d Update .pl servers (#5599)
* Update .pl servers

* Update servers_v7.json
2021-07-19 18:34:14 -04:00
Anuken
6b7a63aba5 Cleanup 2021-07-19 15:20:53 -04:00
Anuken
0c46d5088c Better laser/blast drill rotators 2021-07-19 14:11:07 -04:00
Anuken
254425d9ad Merge branch 'sk7725-cool-drills' 2021-07-19 09:00:54 -04:00
Anuken
c7ff20d47d Fracker + SolidPump spinner lighting 2021-07-19 09:00:35 -04:00
Anuken
1db5a9f3c2 Merge branch 'cool-drills' of git://github.com/sk7725/Mindustry into sk7725-cool-drills 2021-07-19 08:55:10 -04:00
Anuken
34cf8466d6 Added default value for mass driver bullet 2021-07-19 08:44:19 -04:00
Sunny Kim
8c20203084 formatting 2021-07-19 17:09:17 +09:00
Sunny Kim
a7ed7a71d5 drawSpinSprite 2021-07-19 16:40:57 +09:00
Sunny Kim
2583541c0f spinSprite 2021-07-19 16:36:58 +09:00
Anuken
1674b2dfd6 Fixed #5609 2021-07-18 16:31:13 -04:00
Anuken
96de7c8321 Merge remote-tracking branch 'origin/master' 2021-07-18 14:41:05 -04:00
Anuken
7879648090 Suppress invalid save meta errors 2021-07-18 14:40:59 -04:00
Darkness6030
5772f5e7da So now Mindurka => Darkdustry (#5608)
I've changed the server name cuz mindurka sounds strange
Now we are DarkDustry
2021-07-18 14:39:12 -04:00
Anuken
54db6bda85 Merge remote-tracking branch 'origin/master' 2021-07-18 12:49:02 -04:00
Anuken
4ffcf252b7 Fixed bullet heal percent being displayed as 0 when <1 2021-07-18 12:48:57 -04:00
Anuken
b3b44214e0 No need to run own server with so many alternatives 2021-07-18 12:45:26 -04:00
Anuken
89942416ac Core containers/vaults no longer explode violently 2021-07-18 12:12:04 -04:00
Anuken
974d3498c1 Settings tooltips 2021-07-18 11:11:28 -04:00
Mina Her
1804111f88 Add spacing between name and value in slider (#5601) 2021-07-18 09:15:04 -04:00
Anuken
5b2dc021a6 Prevent concurrent modification in BlockIndexer#eachBlock 2021-07-18 08:56:48 -04:00
Anuken
37d7b3d7fb Fixed screen shake moving camera pan position 2021-07-17 20:45:53 -04:00
Anuken
33d4ab9edb Fixed block plans not being deleted locally 2021-07-17 19:17:47 -04:00
Anuken
f7f2b3438c Use short filter names in JSON 2021-07-17 16:46:35 -04:00
Anuken
0ed7934df0 arc 2021-07-17 15:33:19 -04:00
Anuken
55920e6242 Cleanup 2021-07-17 15:18:51 -04:00
Anuken
820920e5f9 Redundant cast cleanup 2021-07-17 09:30:31 -04:00
Anuken
8e21c627a7 Improved Serpulo sector path generation 2021-07-17 09:22:02 -04:00
Anuken
6973ed7d55 PvP defeated team cleanup 2021-07-17 08:52:24 -04:00
Anuken
0980495a28 (commented) support for Call server-to-client sounds 2021-07-16 15:39:03 -04:00
Anuken
5c6b659ce3 Possible rare crash fix 2021-07-16 12:59:50 -04:00
Anuken
35e263223d Merge remote-tracking branch 'origin/master' 2021-07-16 12:37:36 -04:00
Anuken
07ba378095 Hide construct/legacy blocks 2021-07-16 12:37:31 -04:00
buthed010203
6e10f86546 Display item rates on reconstructors (#5581)
Display the rates here because why not
![]https://mee6.is-terrible.com/54feDAY76.png
2021-07-16 12:21:58 -04:00
RebornTrack970
fc6ee11ffe Some more servers are back (#5594)
* Servers Back

* Update servers_v7.json
2021-07-16 12:19:56 -04:00
Anuken
84cd87370f Merge remote-tracking branch 'origin/master' 2021-07-16 10:06:07 -04:00
Anuken
822fe9ab7a Fixed inaccessible gaps in Serpulo generator 2021-07-16 10:05:59 -04:00
Sharlotte
57b22a9cab Update bundle_ko.properties (#5590) 2021-07-16 08:56:23 -04:00
Anuken
278c4f17e5 Why was this class even created 2021-07-15 20:19:51 -04:00
Anuken
b0d4607798 Fixed #5588 2021-07-15 20:08:05 -04:00
Anuken
3f7dc66ac0 Fixed #5587 2021-07-15 14:55:32 -04:00
Anuken
1c2b1fb757 System property cleanup 2021-07-15 11:27:21 -04:00
Anuken
eb31483a15 Fixed #5585 2021-07-15 10:18:08 -04:00
Anuken
8fb7cdaba6 Fixed #5584 2021-07-15 10:10:36 -04:00
Anuken
61d81046ae Fixed #5583 2021-07-15 08:46:56 -04:00
Anuken
0c3d7e09e0 Don't crash when font glyphs are missing 2021-07-14 21:40:47 -04:00
Anuken
a9f9ddcacf AnnotationProxyMaker workaround cleanup 2021-07-14 19:52:43 -04:00
Anuken
a559c3581e Fixed continuous weapon sounds / Improved naval support audio 2021-07-14 18:46:51 -04:00
Anuken
dd5389c738 New sound for rock/plant breaking 2021-07-14 17:22:21 -04:00
Anuken
ac25e17286 Unused property cleanup 2021-07-14 16:06:03 -04:00
Anuken
9de4c89e76 Fixed #5582 2021-07-14 15:55:40 -04:00
Anuken
2f6846d8c3 Conveyor tweaks 2021-07-14 15:12:00 -04:00
Anuken
c3e60531c4 Merge remote-tracking branch 'origin/master' 2021-07-14 09:28:05 -04:00
Anuken
44aff82a6c "Fixed" #5580 2021-07-14 09:27:59 -04:00
alex
7619e7643d Update v6 servers for alex servers (#5576) 2021-07-14 09:23:53 -04:00
RebornTrack970
353ef05b93 OmegaHub is back (kinda) (#5578) 2021-07-14 09:23:41 -04:00
Anuken
2801e4ed80 Fixed #5579 2021-07-14 09:14:19 -04:00
Anuken
173dd0a90e Fixed #5577 2021-07-14 09:07:17 -04:00
Anuken
e5412aeb1b Inventory constant cleanup 2021-07-13 17:38:42 -04:00
Anuken
0eec955a3d #5563 2021-07-13 10:42:00 -04:00
Anuken
47038ac06d Longer mod test timeout 2021-07-13 10:33:44 -04:00
Anuken
8041c305ad Misc bugfixes 2021-07-13 10:28:35 -04:00
Anuken
e0d249898e Fixed mod dialog width... again. 2021-07-12 16:18:29 -04:00
Anuken
a1f5982a85 Fixed loading bar stroke not scaling correctly 2021-07-12 15:36:43 -04:00
Anuken
3c688d3fec arc 2021-07-12 15:35:08 -04:00
Anuken
889a9a7a05 Merge remote-tracking branch 'origin/master' 2021-07-12 15:06:46 -04:00
Anuken
ce6c39b7aa Reorganized settings 2021-07-12 15:06:41 -04:00
VizardAlpha
2a1fdded72 bundle_fr.properties Updates (#5558)
* bundle_fr.properties Updates

Add new commits

* Update Bundle
2021-07-12 14:49:24 -04:00
Angel-24
2b757fe107 Update bundle_es.properties (#5526)
Updated Spanish trasnlations to the 1 - Jul - 2021 changes in "bundle.properties".
2021-07-12 14:47:17 -04:00
Sharlotte
a8d78453ff Update bundle_ko.properties (#5527) 2021-07-12 14:47:05 -04:00
Antsiferov Andrew
2b88396aac [Bundle][RU] Update (#5531)
* double newline fix

hint.guardian

* 13 changed lines

mod.enabled
mod.disabled
status.burning.name
status.freezing.name
status.wet.name
status.melting.name
status.sapped.name
status.spore-slowed.name
status.tarred.name
status.overclock.name
status.shocked.name
status.blasted.name
status.unmoving.name

* yon't

* x'nt

* Update bundle_ru.properties

* 1 new, 1 changed

New:
stat.healing

Changed:
bullet.healpercent

* Inverse trig logic functions

See 00ca247d0f

* new v7 stuff, long list

New:
schematic.tags
schematic.edittags
schematic.addtag
schematic.texttag
schematic.icontag
schematic.renametag
schematic.tagdelconfirm
schematic.tagexists
tps
guardian
sector.changeicon
status.electrified.name
unsupported.environment
stat.repairspeed
ability.energyfield
bar.strength
rules.corecapture
block.rhyolite.name
block.repair-turret.name
hint.blockInfo
lenum.config
laccess.progress
unit.retusa.name
unit.oxynoe.name
unit.cyerce.name
unit.aegires.name
unit.navanax.name
block.duct.name
block.duct-router.name
block.duct-bridge.name
block.payload-propulsion-tower.name
block.payload-void.name
block.payload-source.name
filter.option.rotate

Changed:
stat.repairtime
bullet.pierce
team.crux.name
team.sharded.name
item.titanium.description

Deleted:
quit.confirm.tutorial
boss.health
team.orange.name
lenum.configure

* Update bundle_ru.properties

* 1 line changed

unit.oxynoe.name

* роутер-marshrutizator

ibglish

* 2 lines changed

block.surge-wall.name
block.surge-wall-large.name

* 3 new, 2 changed

New:
stat.showinmap
block.metal-floor-4.name
block.metal-floor-5.name

Changed:
stat.affinities
stat.opposites

* undone the dumb

* 1 new line

filter.option.replacement

* 1 new, 1 changed

New:
rules.polygoncoreprotection

Changed:
hint.respawn

* Fixed outdated minke description

unit.minke.description: "зажигательными" -> "артиллерийскими"

* 3 new lines

unit.tilessecond (ec59cb602c)
lst.wait, lst.lookup (0949852758)

* typo

еденицы -> единицы

Co-authored-by: Vanguard <55051135+XEN0PHIL@users.noreply.github.com>
2021-07-12 14:46:46 -04:00
Antsiferov Andrew
f856ad16ba Fixed a typo (#5532) 2021-07-12 14:46:36 -04:00
Anuken
f36d47c13f Merge branch 'master' of https://github.com/Anuken/Mindustry 2021-07-12 12:36:48 -04:00
Anuken
4f98bc95a2 Better sliders 2021-07-12 12:36:45 -04:00
Arik
ec3dc867c1 Always increment launchpad counter (#5569) 2021-07-12 12:33:17 -04:00
Antsiferov Andrew
7fea7e91aa Correct comment (#5568)
This is `UI.packer`, not `Fonts.packer`.
2021-07-12 09:23:36 -04:00
TranquillyUnpleasant
1ea545ccb2 fix (#5567) 2021-07-12 09:23:20 -04:00
buthed010203
e5e2d0ab03 Fix payload driver crash (#5565)
Similar to the mass driver one, https://i-dont.go-outsi.de/53ZwBY_YS.png
2021-07-11 14:39:33 -04:00
Anuken
c94e7aa031 Mod bugfixes 2021-07-11 12:03:10 -04:00
Anuken
5d1af6fb76 Android release debuggable; fixes default interfaces 2021-07-11 11:54:07 -04:00
Anuken
3b400ac3f3 just in case 2021-07-11 10:15:53 -04:00
Anuken
308176ee81 Revert theme removal / Android jar import bugfixes 2021-07-11 10:13:34 -04:00
Anuken
8a84ebb58d Fixed server IO errors / Fixed kick IP tracing 2021-07-10 22:18:58 -04:00
Anuken
158d11d3ba arc 2021-07-10 18:54:22 -04:00
Anuken
beec1eeaba Fixed #5561 2021-07-10 12:32:29 -04:00
Anuken
63a1f4e2de Merge branch 'master' of https://github.com/Anuken/Mindustry 2021-07-10 11:33:09 -04:00
Anuken
7d845951e9 Fixed #5560 2021-07-10 11:33:05 -04:00
Anuken
48d9ea6aa1 Deleted all v6 servers with incorrect versions 2021-07-10 08:39:32 -04:00
RebornTrack970
ae83e604ba Added Rush V7 (#5557)
* Added Rush V7

Hosted by Red.

* Fixed

* Update servers_v7.json
2021-07-10 08:32:57 -04:00
키에르
c156968be6 update kr server list & Fix json format (#5559) 2021-07-10 08:32:05 -04:00
Anuken
effe2312e0 no 2021-07-09 16:51:12 -04:00
Anuken
1c389dc7f8 Fixed #5553 2021-07-08 13:42:30 -04:00
Anuken
972ca71978 Team-colored force projectors 2021-07-08 12:14:20 -04:00
Anuken
fb35adb494 Added AttributeCrafter env calculation 2021-07-08 11:06:46 -04:00
Anuken
22813b71ff Ignore all future changelogs 2021-07-08 09:47:01 -04:00
Anuken
02243d1f5c Merge remote-tracking branch 'origin/master' 2021-07-08 09:46:21 -04:00
Anuken
e2b2e8fb4e Deleted all Android changelogs - see below for details
Android changelogs are practically use due to their character limit; GitHub changelogs should be used instead. Translations always arrive a few days after an update, so they are seldom read.
2021-07-08 09:46:10 -04:00
Anuken
390ceb8887 FileChooser cleanup 2021-07-08 09:33:44 -04:00
Patrick 'Quezler' Mounier
2167a3d7fe Remove double space (#5551) 2021-07-08 09:32:53 -04:00
Anuken
6f2033a455 arc 2021-07-07 19:28:34 -04:00
Anuken
2ae7863cae arc.util.Http migration 2021-07-07 19:00:32 -04:00
Anuken
02b42c51da Fixed #5549 2021-07-07 13:38:39 -04:00
Anuken
0ba26b22c0 Fixed #5548 2021-07-06 16:32:42 -04:00
Anuken
017552f573 Fixed crash caused by invalid NinePatch sprites 2021-07-06 15:23:37 -04:00
Anuken
01a3c772e7 Sync unit velocity / Sync separator seed / 127.x Compat break 2021-07-06 11:41:05 -04:00
Anuken
5693605f31 Correct Bullet#scaleVelocity documentation 2021-07-06 11:10:11 -04:00
Anuken
481881aa8b Prop cleanup / Optimization of large skybox PNG 2021-07-05 21:18:40 -04:00
Anuken
544660c4bb Fixed #5545 2021-07-05 15:11:53 -04:00
Anuken
3d8d84177b Map listing improvements 2021-07-04 21:30:47 -04:00
TranquillyUnpleasant
789e354400 Server qol (#5534) 2021-07-04 21:18:41 -04:00
TranquillyUnpleasant
4fdb817d4a move domains (#5542) 2021-07-04 21:16:47 -04:00
Anuken
4055361501 Merge remote-tracking branch 'origin/master' 2021-07-04 19:14:16 -04:00
Anuken
416007593f convert_sounds.sh is no longer needed 2021-07-04 19:14:11 -04:00
Anuken
4ed9f10c1b Cleanup 2021-07-04 09:51:39 -04:00
GaviTSRA
178cb12f85 Change ip of TSR Server (#5539)
* Change ip of TSR Server

* Ip changed again - should be final
2021-07-04 09:28:40 -04:00
Vajda Simon
c0582cd527 Update servers_v6.json (#5538) 2021-07-04 09:28:25 -04:00
Anuken
39e47db8c7 Merge remote-tracking branch 'origin/master' 2021-07-03 23:21:35 -04:00
Anuken
ed4156850b Cached ping executor 2021-07-03 23:21:29 -04:00
Anuken
5364522a5a Update deployment.yml 2021-07-03 21:42:19 -04:00
Anuken
3382d56590 Fixed tests 2021-07-03 21:17:38 -04:00
Anuken
1e30c46322 Merge remote-tracking branch 'origin/master' 2021-07-03 20:27:09 -04:00
Anuken
3eb72d6d86 Updated to new Arc net 2021-07-03 20:27:04 -04:00
KotMilkMeoW
2d01c41159 Update servers_v7.json (#5533)
* Update servers_v7.json

* Fix
2021-07-03 10:53:19 -04:00
Anuken
0b3dddcc9e Minor reformatting 2021-07-01 17:06:35 -04:00
Anuken
bc7085826e Re-generated ClassMap 2021-07-01 11:44:29 -04:00
Anuken
f78ee66049 Deployment script fixes 2021-07-01 11:36:51 -04:00
Anuken
fecaf768ab Allow 3x3 blocks on payload conveyors 2021-07-01 11:24:23 -04:00
Anuken
ec59cb602c Crash fix / tilesSecond speed unit 2021-07-01 11:17:42 -04:00
Anuken
2ea1671739 Fixed #5519 2021-07-01 10:22:28 -04:00
Anuken
f7e4936445 Merge remote-tracking branch 'origin/master' 2021-06-30 22:22:57 -04:00
Anuken
d37e8c2e75 why 2021-06-30 22:22:53 -04:00
Sahrea
fb8dcc5f86 Update servers_v6.json (#5518)
A server for German players. See history in #deutsch on the io Discord. https://discord.com/channels/391020510269669376/464914764066324500/859754657134936134
2021-06-30 22:22:16 -04:00
Anuken
4c4c361093 #5517 2021-06-30 22:18:57 -04:00
Anuken
9c29706297 Only draw status for player's team blocks 2021-06-30 19:09:48 -04:00
RebornTrack970
4dcac119d8 Updated TR Bundle to the latest V7 prealpha (#5505)
* Updated TR Bundle to the latest V7 prealpha

* Update bundle_tr.properties
2021-06-30 13:24:52 -04:00
Anuken
f9dfd5b0b5 Commented out separator revision until 128 release 2021-06-30 13:08:19 -04:00
Patrick 'Quezler' Mounier
10dcd9cb2d outlaw separator desycning (#5516)
* Seed separators

* Sync separators

* Seed from tile position
2021-06-30 12:59:09 -04:00
Anuken
c80e800ac9 Merge remote-tracking branch 'origin/master' 2021-06-30 10:49:29 -04:00
Anuken
eafcbf0914 Minor unit balancing 2021-06-30 10:28:05 -04:00
ulwepo
4f561a3875 Update servers_v6.json (#5515)
Sakura is a Japanese server.
I add attack mode.
Thank you.
2021-06-30 08:34:18 -04:00
Thomas Widyantoko
5cc92506c9 [ID] Updates Indonesian V7 translation (#5513)
* Indonesian bundle update

lenum.controller description and Tar Fields map

* translation bundle sync

* Indonesian translation standardization

* healing status effect

* Indonesian translation for V7

bit confused on line 1611

* [ID] WIP polygonal core protection

* [ID] Updates Indonesian V7 translation

Logic wait & content look up instructions
2021-06-30 08:34:08 -04:00
Arik
2c8eb1e5b8 Conveyor Upgrade End Rotation (#5512) 2021-06-30 08:29:35 -04:00
Anuken
6c18634b0d Minor logic unit rotation fix / Core capture unit derelict tareting 2021-06-29 16:26:02 -04:00
Anuken
c7bd9dd0fa Merge remote-tracking branch 'origin/master' 2021-06-29 12:21:56 -04:00
Anuken
d8ec231a5e Fixed #5508 2021-06-29 12:21:42 -04:00
Arik
5c803594fb Fix WaveGraph Lineup (#5503) 2021-06-29 09:03:56 -04:00
Minxyzgo
cececa190a Update WaterMoveComp.java (#5504) 2021-06-29 08:54:10 -04:00
OSP
38a3f1839e Change ip XCore, and add new server (#5502) 2021-06-28 18:58:39 -04:00
Anuken
2eb57ab680 Minor repair turret nerf 2021-06-28 18:57:13 -04:00
Anuken
f6f1ddb826 Fixed non-existent fire being targeted 2021-06-28 13:30:54 -04:00
Anuken
fcdbd4b117 Fixed liquid turrets not targeting closest fire 2021-06-28 11:35:46 -04:00
Anuken
a5c44e7998 #5055 2021-06-28 10:50:04 -04:00
Anuken
8afea88023 Fixed #5500 2021-06-28 10:15:54 -04:00
Anuken
75443e4dfc Clear commanding units on sync 2021-06-28 09:56:49 -04:00
Anuken
fbfb491dca Merge remote-tracking branch 'origin/master' 2021-06-28 09:25:48 -04:00
Anuken
082c17da85 Fixed #5498 2021-06-28 09:25:38 -04:00
thedimas3007
88ebf4f9db Updated (#5497) 2021-06-28 09:12:25 -04:00
OSP
18825b1697 Change IP XCore (#5494)
the old hosting is broken.
2021-06-27 18:47:11 -04:00
BasedUser
551b11877d CRAPPY DDNS IS GONE 🦀🦀🦀 (#5495) 2021-06-27 18:47:01 -04:00
Anuken
0bd1b4eedc Skip loading team regions for teams without palettes 2021-06-27 12:28:40 -04:00
Anuken
d401d7838c Gradle 7.1 2021-06-27 11:10:07 -04:00
Anuken
8b2e273d41 Merge remote-tracking branch 'origin/master' 2021-06-27 09:34:59 -04:00
Anuken
bdff6f9560 Repair turret nerf 2021-06-27 09:34:54 -04:00
Fatonndev
bb500a53ef Add attack v7 server (#5490) 2021-06-27 09:13:22 -04:00
Volas171
7ff0811764 retire mindustry reborn from v6 (#5487) 2021-06-27 09:13:03 -04:00
Anuken
36b49b6d8b Fixed #5488 / Fixed #5489 2021-06-27 09:12:35 -04:00
Anuken
e8edfb1170 Merge remote-tracking branch 'origin/master' 2021-06-26 20:55:59 -04:00
Anuken
bc6fcbc86d Fixed more flaky tests 2021-06-26 20:55:52 -04:00
OSP
8853ca303e Add XCore server to the v7 global list (#5486)
My server, 1 mode - the siege.There will be more servers in the future.
2021-06-26 15:46:19 -04:00
L0615T1C5-216AC-9437
914a6fc89b Add Chaotic Neutral to the V7 Server List (#5484) 2021-06-26 14:07:02 -04:00
UnCaughT
028be85468 Add HexPvP to V7 (#5483) 2021-06-26 14:06:56 -04:00
Darkness6030
5ffc285e1c Add mindurka to V7 list (#5471)
* Add mindurka to V7 list

* Update servers_v7.json

Co-authored-by: Patrick 'Quezler' Mounier <Quezler@me.com>

* Update servers_v7.json

Co-authored-by: Patrick 'Quezler' Mounier <Quezler@me.com>
Co-authored-by: Anuken <arnukren@gmail.com>
2021-06-26 12:29:56 -04:00
Anuken
604e6f8c47 Catch NoClassDefFoundErrors on ClientLoad 2021-06-26 11:11:27 -04:00
Anuken
4ac4f10ea0 Log mismatch errors for net buffers 2021-06-26 11:08:45 -04:00
Anuken
4c07733857 Fixed #5481 2021-06-26 11:04:03 -04:00
Anuken
7dc0f4dbc5 Merge remote-tracking branch 'origin/master' 2021-06-26 10:12:04 -04:00
Anuken
22f64fa2a5 Revert naval balance changes for now 2021-06-26 10:11:59 -04:00
KotMilkMeoW
5b0f1b5c03 Server upgrade to v7 (#5480) 2021-06-26 09:54:18 -04:00
Anuken
c6e0292d03 Fixed clientside physics jitter 2021-06-26 09:52:03 -04:00
Anuken
17eee61a93 Fixed #5478 2021-06-26 09:34:25 -04:00
Anuken
3817b159cf Reduced jittery interpolation 2021-06-26 00:19:23 -04:00
Anuken
331cf2e269 arc 2021-06-25 22:58:30 -04:00
Anuken
96622848d9 Hide outdated lobbies on Steam 2021-06-25 19:49:53 -04:00
Anuken
bcdc8867e6 Merge remote-tracking branch 'origin/master' 2021-06-25 19:36:07 -04:00
Anuken
eaeb67b91f Fixed #5474 2021-06-25 19:35:34 -04:00
Catchears
ebd444cc5f final v7 german translation (#5473) 2021-06-25 16:57:20 -04:00
L0615T1C5-216AC-9437
ff1ab9dd42 Add Chaotic Neutral Survival to BE Server List (#5435)
Co-authored-by: Anuken <arnukren@gmail.com>
2021-06-25 16:22:11 -04:00
Ilya246
7e2c830f9c Add .pl to 7.0 serverlist (#5466)
* Add .pl to 7.0 serverlist

.pl will move to 7.0 once b127 is out
Somka currently can't make a PR by himself so i asked him whether i should and, after a positive answer, did it for him

* Update servers_v7.json
2021-06-25 16:01:38 -04:00
Volas171
0cc2214951 Add Mindustry Reborn to V7 Alpha list (#5470)
* v7

* be removal

* formatting

Co-authored-by: Anuken <arnukren@gmail.com>
2021-06-25 14:41:24 -04:00
Anuken
47443d5ae7 Merge remote-tracking branch 'origin/master' 2021-06-25 14:37:36 -04:00
Anuken
cd2c605036 Suppress certain mod errors on client load 2021-06-25 14:37:32 -04:00
RebornTrack970
847e46d270 Add Beta 2r2t to V7 (#5468)
* Add Beta 2r2t to V7

Other Omega Servers will likely get updated to V7 too, for now, only 2r2t has a Beta.

* Update servers_v7.json

* Update servers_v7.json

Co-authored-by: Patrick 'Quezler' Mounier <Quezler@me.com>

* Update servers_be.json

Co-authored-by: Patrick 'Quezler' Mounier <Quezler@me.com>
2021-06-25 14:26:54 -04:00
Anuken
3d6cfcafd0 Don't assign players to derelict 2021-06-25 14:11:36 -04:00
416 changed files with 3239 additions and 3235 deletions

5
.github/pull_request_template.md vendored Normal file
View File

@@ -0,0 +1,5 @@
If your pull request is **not** translation or serverlist-related, read the list of requirements below and check each box:
- [ ] I have read the [contribution guidelines](https://github.com/Anuken/Mindustry/blob/master/CONTRIBUTING.md).
- [ ] I have ensured that my code compiles, if applicable.
- [ ] I have ensured that any new features in this PR function correctly in-game, if applicable.

View File

@@ -47,7 +47,8 @@ jobs:
git clone --depth=1 --branch=master https://github.com/Anuken/MindustryBuilds ../MindustryBuilds git clone --depth=1 --branch=master https://github.com/Anuken/MindustryBuilds ../MindustryBuilds
cd ../MindustryBuilds cd ../MindustryBuilds
echo "Updating version to ${RELEASE_VERSION:1}" echo "Updating version to ${RELEASE_VERSION:1}"
echo versionName=7-fdroid-${RELEASE_VERSION:1}$'\n'versionCode=${GITHUB_RUN_NUMBER} > version_fdroid.txt BNUM=$(($GITHUB_RUN_NUMBER + 1000))
echo versionName=7-fdroid-${RELEASE_VERSION:1}$'\n'versionCode=${BNUM} > version_fdroid.txt
git add . git add .
git commit -m "Updating to build ${RELEASE_VERSION:1}" git commit -m "Updating to build ${RELEASE_VERSION:1}"
git push https://Anuken:${{ secrets.API_TOKEN_GITHUB }}@github.com/Anuken/MindustryBuilds git push https://Anuken:${{ secrets.API_TOKEN_GITHUB }}@github.com/Anuken/MindustryBuilds

1
.gitignore vendored
View File

@@ -1,4 +1,5 @@
logs/ logs/
/fastlane/metadata/android/en-US/changelogs/
/core/assets/mindustry-saves/ /core/assets/mindustry-saves/
/core/assets/mindustry-maps/ /core/assets/mindustry-maps/
/core/assets/bundles/output/ /core/assets/bundles/output/

View File

@@ -14,6 +14,7 @@
android:icon="@mipmap/ic_launcher" android:icon="@mipmap/ic_launcher"
android:roundIcon="@mipmap/ic_launcher_round" android:roundIcon="@mipmap/ic_launcher_round"
android:isGame="true" android:isGame="true"
android:theme="@style/ArcTheme"
android:usesCleartextTraffic="true" android:usesCleartextTraffic="true"
android:appCategory="game" android:appCategory="game"
android:label="@string/app_name" android:label="@string/app_name"

View File

@@ -7,6 +7,7 @@ buildscript{
} }
dependencies{ dependencies{
//note that later versions, like alpha05, fail to work correctly
classpath 'com.android.tools.build:gradle:7.1.0-alpha02' classpath 'com.android.tools.build:gradle:7.1.0-alpha02'
} }
} }
@@ -18,7 +19,6 @@ configurations{ natives }
repositories{ repositories{
mavenCentral() mavenCentral()
maven{ url "https://maven.google.com" } maven{ url "https://maven.google.com" }
jcenter() //remove later once google/JetBrains fixes the dependency
} }
task deploy(type: Copy){ task deploy(type: Copy){
@@ -100,6 +100,9 @@ android{
all{ all{
minifyEnabled = true minifyEnabled = true
shrinkResources = true shrinkResources = true
//this is the ONLY WAY I could find to force r8 to keep its filthy hands off of my default interfaces.
//may have undesirable side effects
debuggable = true
proguardFiles("proguard-rules.pro") proguardFiles("proguard-rules.pro")
} }
} }

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="ArcTheme" parent="android:Theme.Material.NoActionBar">
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:colorBackgroundCacheHint">@null</item>
<item name="android:windowAnimationStyle">@android:style/Animation</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowFullscreen">true</item>
</style>
</resources>

View File

@@ -0,0 +1,10 @@
<resources>
<style name="ArcTheme" parent="android:Theme">
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:colorBackgroundCacheHint">@null</item>
<item name="android:windowAnimationStyle">@android:style/Animation</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowFullscreen">true</item>
</style>
</resources>

View File

@@ -84,9 +84,9 @@ public class AndroidLauncher extends AndroidApplication{
try{ try{
//try to load own class first //try to load own class first
loadedClass = findClass(name); loadedClass = findClass(name);
}catch(ClassNotFoundException e){ }catch(ClassNotFoundException | NoClassDefFoundError e){
//use parent if not found //use parent if not found
loadedClass = super.loadClass(name, resolve); return parent.loadClass(name);
} }
} }

View File

@@ -143,7 +143,8 @@ public class EntityIO{
if(sl) cont("if(!islocal)"); if(sl) cont("if(!islocal)");
if(sf){ if(sf){
st(field.name + lastSuf + " = this." + field.name + targetSuf); //TODO adding + targetSuf to the assignment fixes units being interpolated incorrectly during physics, but makes interpolation snap instead.
st(field.name + lastSuf + " = this." + field.name);
} }
io(field.type, "this." + (sf ? field.name + targetSuf : field.name) + " = "); io(field.type, "this." + (sf ? field.name + targetSuf : field.name) + " = ");

View File

@@ -1,5 +1,7 @@
package mindustry.annotations.impl; package mindustry.annotations.impl;
import arc.*;
import arc.audio.*;
import arc.files.*; import arc.files.*;
import arc.scene.style.*; import arc.scene.style.*;
import arc.struct.*; import arc.struct.*;
@@ -87,18 +89,18 @@ public class AssetsProcess extends BaseProcessor{
filename = filename.substring(0, filename.indexOf(".")); filename = filename.substring(0, filename.indexOf("."));
String sfilen = filename; String sfilen = filename;
String dtype = p.name().endsWith(".9.png") ? "arc.scene.style.NinePatchDrawable" : "arc.scene.style.TextureRegionDrawable"; String dtype = "arc.scene.style.Drawable";
String varname = capitalize(sfilen); String varname = capitalize(sfilen);
if(SourceVersion.isKeyword(varname)) varname += "s"; if(SourceVersion.isKeyword(varname)) varname += "s";
type.addField(ClassName.bestGuess(dtype), varname, Modifier.STATIC, Modifier.PUBLIC); type.addField(ClassName.bestGuess(dtype), varname, Modifier.STATIC, Modifier.PUBLIC);
load.addStatement(varname + " = (" + dtype + ")arc.Core.atlas.drawable($S)", sfilen); load.addStatement(varname + " = arc.Core.atlas.drawable($S)", sfilen);
}); });
for(Element elem : elements){ for(Element elem : elements){
Seq.with(((TypeElement)elem).getEnclosedElements()).each(e -> e.getKind() == ElementKind.FIELD, field -> { Seq.with(elem.getEnclosedElements()).each(e -> e.getKind() == ElementKind.FIELD, field -> {
String fname = field.getSimpleName().toString(); String fname = field.getSimpleName().toString();
if(fname.startsWith("default")){ if(fname.startsWith("default")){
loadStyles.addStatement("arc.Core.scene.addStyle(" + field.asType().toString() + ".class, mindustry.ui.Styles." + fname + ")"); loadStyles.addStatement("arc.Core.scene.addStyle(" + field.asType().toString() + ".class, mindustry.ui.Styles." + fname + ")");
@@ -118,13 +120,35 @@ public class AssetsProcess extends BaseProcessor{
void processSounds(String classname, String path, String rtype) throws Exception{ void processSounds(String classname, String path, String rtype) throws Exception{
TypeSpec.Builder type = TypeSpec.classBuilder(classname).addModifiers(Modifier.PUBLIC); TypeSpec.Builder type = TypeSpec.classBuilder(classname).addModifiers(Modifier.PUBLIC);
MethodSpec.Builder loadBegin = MethodSpec.methodBuilder("load").addModifiers(Modifier.PUBLIC, Modifier.STATIC); MethodSpec.Builder loadBegin = MethodSpec.methodBuilder("load").addModifiers(Modifier.PUBLIC, Modifier.STATIC);
CodeBlock.Builder staticb = CodeBlock.builder();
type.addField(FieldSpec.builder(IntMap.class, "idToSound", Modifier.STATIC, Modifier.PRIVATE).initializer("new IntMap()").build());
type.addField(FieldSpec.builder(ObjectIntMap.class, "soundToId", Modifier.STATIC, Modifier.PRIVATE).initializer("new ObjectIntMap()").build());
type.addMethod(MethodSpec.methodBuilder("getSoundId")
.addModifiers(Modifier.PUBLIC, Modifier.STATIC)
.addParameter(Sound.class, "sound")
.returns(int.class)
.addStatement("return soundToId.get(sound, -1)").build());
type.addMethod(MethodSpec.methodBuilder("getSound")
.addModifiers(Modifier.PUBLIC, Modifier.STATIC)
.addParameter(int.class, "id")
.returns(Sound.class)
.addStatement("return (Sound)idToSound.get(id, () -> Sounds.none)").build());
HashSet<String> names = new HashSet<>(); HashSet<String> names = new HashSet<>();
Fi.get(path).walk(p -> { Seq<Fi> files = new Seq<>();
Fi.get(path).walk(files::add);
files.sortComparing(Fi::name);
int id = 0;
for(Fi p : files){
String name = p.nameWithoutExtension(); String name = p.nameWithoutExtension();
if(names.contains(name)){ if(names.contains(name)){
BaseProcessor.err("Duplicate file name: " + p.toString() + "!"); BaseProcessor.err("Duplicate file name: " + p + "!");
}else{ }else{
names.add(name); names.add(name);
} }
@@ -133,14 +157,20 @@ public class AssetsProcess extends BaseProcessor{
String filepath = path.substring(path.lastIndexOf("/") + 1) + p.path().substring(p.path().lastIndexOf(path) + path.length()); String filepath = path.substring(path.lastIndexOf("/") + 1) + p.path().substring(p.path().lastIndexOf(path) + path.length());
String filename = "\"" + filepath + "\""; staticb.addStatement("soundToId.put($L, $L)", name, id);
loadBegin.addStatement("arc.Core.assets.load(" + filename + ", " + rtype + ".class).loaded = a -> " + name + " = (" + rtype + ")a", filepath, filepath.replace(".ogg", ".mp3"));
type.addField(FieldSpec.builder(ClassName.bestGuess(rtype), name, Modifier.STATIC, Modifier.PUBLIC).initializer("new arc.audio." + rtype.substring(rtype.lastIndexOf(".") + 1) + "()").build()); loadBegin.addStatement("$T.assets.load($S, $L.class).loaded = a -> { $L = ($L)a; soundToId.put(a, $L); idToSound.put($L, a); }",
}); Core.class, filepath, rtype, name, rtype, id, id);
type.addField(FieldSpec.builder(ClassName.bestGuess(rtype), name, Modifier.STATIC, Modifier.PUBLIC).initializer("new " + rtype + "()").build());
id ++;
}
type.addStaticBlock(staticb.build());
if(classname.equals("Sounds")){ if(classname.equals("Sounds")){
type.addField(FieldSpec.builder(ClassName.bestGuess(rtype), "none", Modifier.STATIC, Modifier.PUBLIC).initializer("new arc.audio." + rtype.substring(rtype.lastIndexOf(".") + 1) + "()").build()); type.addField(FieldSpec.builder(ClassName.bestGuess(rtype), "none", Modifier.STATIC, Modifier.PUBLIC).initializer("new " + rtype + "()").build());
} }
type.addMethod(loadBegin.build()); type.addMethod(loadBegin.build());

View File

@@ -7,6 +7,7 @@ import com.sun.tools.javac.code.Attribute.Enum;
import com.sun.tools.javac.code.Attribute.Error; import com.sun.tools.javac.code.Attribute.Error;
import com.sun.tools.javac.code.Attribute.Visitor; import com.sun.tools.javac.code.Attribute.Visitor;
import com.sun.tools.javac.code.Attribute.*; import com.sun.tools.javac.code.Attribute.*;
import com.sun.tools.javac.code.Scope.*;
import com.sun.tools.javac.code.Type; import com.sun.tools.javac.code.Type;
import com.sun.tools.javac.code.Symbol.*; import com.sun.tools.javac.code.Symbol.*;
import com.sun.tools.javac.code.Type.ArrayType; import com.sun.tools.javac.code.Type.ArrayType;
@@ -64,36 +65,13 @@ public class AnnotationProxyMaker{
LinkedHashMap map = new LinkedHashMap(); LinkedHashMap map = new LinkedHashMap();
ClassSymbol cl = (ClassSymbol)this.anno.type.tsym; ClassSymbol cl = (ClassSymbol)this.anno.type.tsym;
//try to use Java 8 API for this if possible for(Symbol s : cl.members().getSymbols(LookupKind.NON_RECURSIVE)){
try{ if(s.getKind() == ElementKind.METHOD){
Class entryClass = Class.forName("com.sun.tools.javac.code.Scope$Entry"); MethodSymbol var4 = (MethodSymbol)s;
Object members = cl.members(); Attribute var5 = var4.getDefaultValue();
Field field = members.getClass().getField("elems"); if(var5 != null){
Object elems = field.get(members); map.put(var4, var5);
Field siblingField = entryClass.getField("sibling");
Field symField = entryClass.getField("sym");
for(Object currEntry = elems; currEntry != null; currEntry = siblingField.get(currEntry)){
handleSymbol((Symbol)symField.get(currEntry), map);
} }
}catch(Throwable e){
//otherwise try other API
try{
Class lookupClass = Class.forName("com.sun.tools.javac.code.Scope$LookupKind");
Field nonRecField = lookupClass.getField("NON_RECURSIVE");
Object nonRec = nonRecField.get(null);
Scope scope = cl.members();
Method getSyms = scope.getClass().getMethod("getSymbols", lookupClass);
Iterable<Symbol> it = (Iterable<Symbol>)getSyms.invoke(scope, nonRec);
Iterator<Symbol> i = it.iterator();
while(i.hasNext()){
handleSymbol(i.next(), map);
}
}catch(Throwable death){
//I tried
throw new RuntimeException(death);
} }
} }
@@ -104,17 +82,6 @@ public class AnnotationProxyMaker{
return map; return map;
} }
private void handleSymbol(Symbol sym, LinkedHashMap map){
if(sym.getKind() == ElementKind.METHOD){
MethodSymbol var4 = (MethodSymbol)sym;
Attribute var5 = var4.getDefaultValue();
if(var5 != null){
map.put(var4, var5);
}
}
}
private Object generateValue(MethodSymbol var1, Attribute var2){ private Object generateValue(MethodSymbol var1, Attribute var2){
AnnotationProxyMaker.ValueVisitor var3 = new AnnotationProxyMaker.ValueVisitor(var1); AnnotationProxyMaker.ValueVisitor var3 = new AnnotationProxyMaker.ValueVisitor(var1);
return var3.getValue(var2); return var3.getValue(var2);

View File

@@ -12,6 +12,10 @@ import java.lang.Class;
import java.lang.annotation.*; import java.lang.annotation.*;
import java.lang.reflect.*; import java.lang.reflect.*;
/**
* Wrapper over Element with added utility functions.
* I would have preferred to use extension methods for this, but Java doesn't have any.
* */
public class Selement<T extends Element>{ public class Selement<T extends Element>{
public final T e; public final T e;

View File

@@ -0,0 +1 @@
{version:2,fields:[{name:collided,type:arc.struct.IntSeq},{name:damage,type:float},{name:data,type:java.lang.Object},{name:fdata,type:float},{name:lifetime,type:float},{name:owner,type:mindustry.gen.Entityc},{name:rotation,type:float},{name:team,type:mindustry.game.Team},{name:time,type:float},{name:type,type:mindustry.entities.bullet.BulletType},{name:vel,type:arc.math.geom.Vec2},{name:x,type:float},{name:y,type:float}]}

View File

@@ -0,0 +1 @@
{version:2,fields:[{name:ammo,type:float},{name:controller,type:mindustry.entities.units.UnitController},{name:elevation,type:float},{name:flag,type:double},{name:health,type:float},{name:isShooting,type:boolean},{name:mineTile,type:mindustry.world.Tile},{name:mounts,type:"mindustry.entities.units.WeaponMount[]"},{name:plans,type:arc.struct.Queue<mindustry.entities.units.BuildPlan>},{name:rotation,type:float},{name:shield,type:float},{name:spawnedByCore,type:boolean},{name:stack,type:mindustry.type.ItemStack},{name:statuses,type:arc.struct.Seq<mindustry.entities.units.StatusEntry>},{name:team,type:mindustry.game.Team},{name:type,type:mindustry.type.UnitType},{name:updateBuilding,type:boolean},{name:vel,type:arc.math.geom.Vec2},{name:x,type:float},{name:y,type:float}]}

View File

@@ -0,0 +1 @@
{version:2,fields:[{name:ammo,type:float},{name:controller,type:mindustry.entities.units.UnitController},{name:elevation,type:float},{name:flag,type:double},{name:health,type:float},{name:isShooting,type:boolean},{name:mineTile,type:mindustry.world.Tile},{name:mounts,type:"mindustry.entities.units.WeaponMount[]"},{name:plans,type:arc.struct.Queue<mindustry.entities.units.BuildPlan>},{name:rotation,type:float},{name:shield,type:float},{name:spawnedByCore,type:boolean},{name:stack,type:mindustry.type.ItemStack},{name:statuses,type:arc.struct.Seq<mindustry.entities.units.StatusEntry>},{name:team,type:mindustry.game.Team},{name:type,type:mindustry.type.UnitType},{name:updateBuilding,type:boolean},{name:vel,type:arc.math.geom.Vec2},{name:x,type:float},{name:y,type:float}]}

View File

@@ -0,0 +1 @@
{version:2,fields:[{name:ammo,type:float},{name:controller,type:mindustry.entities.units.UnitController},{name:elevation,type:float},{name:flag,type:double},{name:health,type:float},{name:isShooting,type:boolean},{name:mineTile,type:mindustry.world.Tile},{name:mounts,type:"mindustry.entities.units.WeaponMount[]"},{name:plans,type:arc.struct.Queue<mindustry.entities.units.BuildPlan>},{name:rotation,type:float},{name:shield,type:float},{name:spawnedByCore,type:boolean},{name:stack,type:mindustry.type.ItemStack},{name:statuses,type:arc.struct.Seq<mindustry.entities.units.StatusEntry>},{name:team,type:mindustry.game.Team},{name:type,type:mindustry.type.UnitType},{name:updateBuilding,type:boolean},{name:vel,type:arc.math.geom.Vec2},{name:x,type:float},{name:y,type:float}]}

View File

@@ -0,0 +1 @@
{version:6,fields:[{name:ammo,type:float},{name:controller,type:mindustry.entities.units.UnitController},{name:elevation,type:float},{name:flag,type:double},{name:health,type:float},{name:isShooting,type:boolean},{name:mineTile,type:mindustry.world.Tile},{name:mounts,type:"mindustry.entities.units.WeaponMount[]"},{name:plans,type:arc.struct.Queue<mindustry.entities.units.BuildPlan>},{name:rotation,type:float},{name:shield,type:float},{name:spawnedByCore,type:boolean},{name:stack,type:mindustry.type.ItemStack},{name:statuses,type:arc.struct.Seq<mindustry.entities.units.StatusEntry>},{name:team,type:mindustry.game.Team},{name:type,type:mindustry.type.UnitType},{name:updateBuilding,type:boolean},{name:vel,type:arc.math.geom.Vec2},{name:x,type:float},{name:y,type:float}]}

View File

@@ -0,0 +1 @@
{version:6,fields:[{name:ammo,type:float},{name:controller,type:mindustry.entities.units.UnitController},{name:elevation,type:float},{name:flag,type:double},{name:health,type:float},{name:isShooting,type:boolean},{name:mineTile,type:mindustry.world.Tile},{name:mounts,type:"mindustry.entities.units.WeaponMount[]"},{name:plans,type:arc.struct.Queue<mindustry.entities.units.BuildPlan>},{name:rotation,type:float},{name:shield,type:float},{name:spawnedByCore,type:boolean},{name:stack,type:mindustry.type.ItemStack},{name:statuses,type:arc.struct.Seq<mindustry.entities.units.StatusEntry>},{name:team,type:mindustry.game.Team},{name:type,type:mindustry.type.UnitType},{name:updateBuilding,type:boolean},{name:vel,type:arc.math.geom.Vec2},{name:x,type:float},{name:y,type:float}]}

View File

@@ -0,0 +1 @@
{version:6,fields:[{name:ammo,type:float},{name:controller,type:mindustry.entities.units.UnitController},{name:elevation,type:float},{name:flag,type:double},{name:health,type:float},{name:isShooting,type:boolean},{name:mineTile,type:mindustry.world.Tile},{name:mounts,type:"mindustry.entities.units.WeaponMount[]"},{name:plans,type:arc.struct.Queue<mindustry.entities.units.BuildPlan>},{name:rotation,type:float},{name:shield,type:float},{name:spawnedByCore,type:boolean},{name:stack,type:mindustry.type.ItemStack},{name:statuses,type:arc.struct.Seq<mindustry.entities.units.StatusEntry>},{name:team,type:mindustry.game.Team},{name:type,type:mindustry.type.UnitType},{name:updateBuilding,type:boolean},{name:vel,type:arc.math.geom.Vec2},{name:x,type:float},{name:y,type:float}]}

View File

@@ -0,0 +1 @@
{version:2,fields:[{name:ammo,type:float},{name:controller,type:mindustry.entities.units.UnitController},{name:elevation,type:float},{name:flag,type:double},{name:health,type:float},{name:isShooting,type:boolean},{name:mineTile,type:mindustry.world.Tile},{name:mounts,type:"mindustry.entities.units.WeaponMount[]"},{name:plans,type:arc.struct.Queue<mindustry.entities.units.BuildPlan>},{name:rotation,type:float},{name:shield,type:float},{name:spawnedByCore,type:boolean},{name:stack,type:mindustry.type.ItemStack},{name:statuses,type:arc.struct.Seq<mindustry.entities.units.StatusEntry>},{name:team,type:mindustry.game.Team},{name:type,type:mindustry.type.UnitType},{name:updateBuilding,type:boolean},{name:vel,type:arc.math.geom.Vec2},{name:x,type:float},{name:y,type:float}]}

View File

@@ -0,0 +1 @@
{version:6,fields:[{name:ammo,type:float},{name:baseRotation,type:float},{name:controller,type:mindustry.entities.units.UnitController},{name:elevation,type:float},{name:flag,type:double},{name:health,type:float},{name:isShooting,type:boolean},{name:mineTile,type:mindustry.world.Tile},{name:mounts,type:"mindustry.entities.units.WeaponMount[]"},{name:plans,type:arc.struct.Queue<mindustry.entities.units.BuildPlan>},{name:rotation,type:float},{name:shield,type:float},{name:spawnedByCore,type:boolean},{name:stack,type:mindustry.type.ItemStack},{name:statuses,type:arc.struct.Seq<mindustry.entities.units.StatusEntry>},{name:team,type:mindustry.game.Team},{name:type,type:mindustry.type.UnitType},{name:updateBuilding,type:boolean},{name:vel,type:arc.math.geom.Vec2},{name:x,type:float},{name:y,type:float}]}

View File

@@ -0,0 +1 @@
{version:4,fields:[{name:ammo,type:float},{name:controller,type:mindustry.entities.units.UnitController},{name:elevation,type:float},{name:flag,type:double},{name:health,type:float},{name:isShooting,type:boolean},{name:mineTile,type:mindustry.world.Tile},{name:mounts,type:"mindustry.entities.units.WeaponMount[]"},{name:payloads,type:arc.struct.Seq<mindustry.world.blocks.payloads.Payload>},{name:plans,type:arc.struct.Queue<mindustry.entities.units.BuildPlan>},{name:rotation,type:float},{name:shield,type:float},{name:spawnedByCore,type:boolean},{name:stack,type:mindustry.type.ItemStack},{name:statuses,type:arc.struct.Seq<mindustry.entities.units.StatusEntry>},{name:team,type:mindustry.game.Team},{name:type,type:mindustry.type.UnitType},{name:updateBuilding,type:boolean},{name:vel,type:arc.math.geom.Vec2},{name:x,type:float},{name:y,type:float}]}

View File

@@ -0,0 +1 @@
{version:5,fields:[{name:ammo,type:float},{name:controller,type:mindustry.entities.units.UnitController},{name:elevation,type:float},{name:flag,type:double},{name:health,type:float},{name:isShooting,type:boolean},{name:mineTile,type:mindustry.world.Tile},{name:mounts,type:"mindustry.entities.units.WeaponMount[]"},{name:plans,type:arc.struct.Queue<mindustry.entities.units.BuildPlan>},{name:rotation,type:float},{name:shield,type:float},{name:spawnedByCore,type:boolean},{name:stack,type:mindustry.type.ItemStack},{name:statuses,type:arc.struct.Seq<mindustry.entities.units.StatusEntry>},{name:team,type:mindustry.game.Team},{name:type,type:mindustry.type.UnitType},{name:updateBuilding,type:boolean},{name:vel,type:arc.math.geom.Vec2},{name:x,type:float},{name:y,type:float}]}

View File

@@ -0,0 +1 @@
{version:4,fields:[{name:ammo,type:float},{name:baseRotation,type:float},{name:controller,type:mindustry.entities.units.UnitController},{name:elevation,type:float},{name:flag,type:double},{name:health,type:float},{name:isShooting,type:boolean},{name:mineTile,type:mindustry.world.Tile},{name:mounts,type:"mindustry.entities.units.WeaponMount[]"},{name:plans,type:arc.struct.Queue<mindustry.entities.units.BuildPlan>},{name:rotation,type:float},{name:shield,type:float},{name:spawnedByCore,type:boolean},{name:stack,type:mindustry.type.ItemStack},{name:statuses,type:arc.struct.Seq<mindustry.entities.units.StatusEntry>},{name:team,type:mindustry.game.Team},{name:type,type:mindustry.type.UnitType},{name:updateBuilding,type:boolean},{name:vel,type:arc.math.geom.Vec2},{name:x,type:float},{name:y,type:float}]}

View File

@@ -0,0 +1 @@
{version:4,fields:[{name:ammo,type:float},{name:controller,type:mindustry.entities.units.UnitController},{name:elevation,type:float},{name:flag,type:double},{name:health,type:float},{name:isShooting,type:boolean},{name:mineTile,type:mindustry.world.Tile},{name:mounts,type:"mindustry.entities.units.WeaponMount[]"},{name:payloads,type:arc.struct.Seq<mindustry.world.blocks.payloads.Payload>},{name:plans,type:arc.struct.Queue<mindustry.entities.units.BuildPlan>},{name:rotation,type:float},{name:shield,type:float},{name:spawnedByCore,type:boolean},{name:stack,type:mindustry.type.ItemStack},{name:statuses,type:arc.struct.Seq<mindustry.entities.units.StatusEntry>},{name:team,type:mindustry.game.Team},{name:type,type:mindustry.type.UnitType},{name:updateBuilding,type:boolean},{name:vel,type:arc.math.geom.Vec2},{name:x,type:float},{name:y,type:float}]}

View File

@@ -0,0 +1 @@
{version:4,fields:[{name:ammo,type:float},{name:controller,type:mindustry.entities.units.UnitController},{name:elevation,type:float},{name:flag,type:double},{name:health,type:float},{name:isShooting,type:boolean},{name:mineTile,type:mindustry.world.Tile},{name:mounts,type:"mindustry.entities.units.WeaponMount[]"},{name:plans,type:arc.struct.Queue<mindustry.entities.units.BuildPlan>},{name:rotation,type:float},{name:shield,type:float},{name:spawnedByCore,type:boolean},{name:stack,type:mindustry.type.ItemStack},{name:statuses,type:arc.struct.Seq<mindustry.entities.units.StatusEntry>},{name:team,type:mindustry.game.Team},{name:type,type:mindustry.type.UnitType},{name:updateBuilding,type:boolean},{name:vel,type:arc.math.geom.Vec2},{name:x,type:float},{name:y,type:float}]}

View File

@@ -0,0 +1 @@
{version:2,fields:[{name:ammo,type:float},{name:baseRotation,type:float},{name:controller,type:mindustry.entities.units.UnitController},{name:elevation,type:float},{name:flag,type:double},{name:health,type:float},{name:isShooting,type:boolean},{name:mineTile,type:mindustry.world.Tile},{name:mounts,type:"mindustry.entities.units.WeaponMount[]"},{name:plans,type:arc.struct.Queue<mindustry.entities.units.BuildPlan>},{name:rotation,type:float},{name:shield,type:float},{name:spawnedByCore,type:boolean},{name:stack,type:mindustry.type.ItemStack},{name:statuses,type:arc.struct.Seq<mindustry.entities.units.StatusEntry>},{name:team,type:mindustry.game.Team},{name:type,type:mindustry.type.UnitType},{name:updateBuilding,type:boolean},{name:vel,type:arc.math.geom.Vec2},{name:x,type:float},{name:y,type:float}]}

View File

@@ -0,0 +1 @@
{version:5,fields:[{name:ammo,type:float},{name:controller,type:mindustry.entities.units.UnitController},{name:elevation,type:float},{name:flag,type:double},{name:health,type:float},{name:isShooting,type:boolean},{name:mineTile,type:mindustry.world.Tile},{name:mounts,type:"mindustry.entities.units.WeaponMount[]"},{name:payloads,type:arc.struct.Seq<mindustry.world.blocks.payloads.Payload>},{name:plans,type:arc.struct.Queue<mindustry.entities.units.BuildPlan>},{name:rotation,type:float},{name:shield,type:float},{name:spawnedByCore,type:boolean},{name:stack,type:mindustry.type.ItemStack},{name:statuses,type:arc.struct.Seq<mindustry.entities.units.StatusEntry>},{name:team,type:mindustry.game.Team},{name:type,type:mindustry.type.UnitType},{name:updateBuilding,type:boolean},{name:vel,type:arc.math.geom.Vec2},{name:x,type:float},{name:y,type:float}]}

View File

@@ -0,0 +1 @@
{version:2,fields:[{name:ammo,type:float},{name:baseRotation,type:float},{name:controller,type:mindustry.entities.units.UnitController},{name:elevation,type:float},{name:flag,type:double},{name:health,type:float},{name:isShooting,type:boolean},{name:mineTile,type:mindustry.world.Tile},{name:mounts,type:"mindustry.entities.units.WeaponMount[]"},{name:plans,type:arc.struct.Queue<mindustry.entities.units.BuildPlan>},{name:rotation,type:float},{name:shield,type:float},{name:spawnedByCore,type:boolean},{name:stack,type:mindustry.type.ItemStack},{name:statuses,type:arc.struct.Seq<mindustry.entities.units.StatusEntry>},{name:team,type:mindustry.game.Team},{name:type,type:mindustry.type.UnitType},{name:updateBuilding,type:boolean},{name:vel,type:arc.math.geom.Vec2},{name:x,type:float},{name:y,type:float}]}

View File

@@ -0,0 +1 @@
{version:6,fields:[{name:ammo,type:float},{name:controller,type:mindustry.entities.units.UnitController},{name:elevation,type:float},{name:flag,type:double},{name:health,type:float},{name:isShooting,type:boolean},{name:mineTile,type:mindustry.world.Tile},{name:mounts,type:"mindustry.entities.units.WeaponMount[]"},{name:plans,type:arc.struct.Queue<mindustry.entities.units.BuildPlan>},{name:rotation,type:float},{name:shield,type:float},{name:spawnedByCore,type:boolean},{name:stack,type:mindustry.type.ItemStack},{name:statuses,type:arc.struct.Seq<mindustry.entities.units.StatusEntry>},{name:team,type:mindustry.game.Team},{name:type,type:mindustry.type.UnitType},{name:updateBuilding,type:boolean},{name:vel,type:arc.math.geom.Vec2},{name:x,type:float},{name:y,type:float}]}

View File

@@ -0,0 +1 @@
{version:5,fields:[{name:ammo,type:float},{name:controller,type:mindustry.entities.units.UnitController},{name:elevation,type:float},{name:flag,type:double},{name:health,type:float},{name:isShooting,type:boolean},{name:mineTile,type:mindustry.world.Tile},{name:mounts,type:"mindustry.entities.units.WeaponMount[]"},{name:plans,type:arc.struct.Queue<mindustry.entities.units.BuildPlan>},{name:rotation,type:float},{name:shield,type:float},{name:spawnedByCore,type:boolean},{name:stack,type:mindustry.type.ItemStack},{name:statuses,type:arc.struct.Seq<mindustry.entities.units.StatusEntry>},{name:team,type:mindustry.game.Team},{name:type,type:mindustry.type.UnitType},{name:updateBuilding,type:boolean},{name:vel,type:arc.math.geom.Vec2},{name:x,type:float},{name:y,type:float}]}

View File

@@ -0,0 +1 @@
{version:2,fields:[{name:ammo,type:float},{name:controller,type:mindustry.entities.units.UnitController},{name:elevation,type:float},{name:flag,type:double},{name:health,type:float},{name:isShooting,type:boolean},{name:mineTile,type:mindustry.world.Tile},{name:mounts,type:"mindustry.entities.units.WeaponMount[]"},{name:plans,type:arc.struct.Queue<mindustry.entities.units.BuildPlan>},{name:rotation,type:float},{name:shield,type:float},{name:spawnedByCore,type:boolean},{name:stack,type:mindustry.type.ItemStack},{name:statuses,type:arc.struct.Seq<mindustry.entities.units.StatusEntry>},{name:team,type:mindustry.game.Team},{name:type,type:mindustry.type.UnitType},{name:updateBuilding,type:boolean},{name:vel,type:arc.math.geom.Vec2},{name:x,type:float},{name:y,type:float}]}

View File

@@ -57,7 +57,7 @@ allprojects{
if(!project.hasProperty("versionType")) versionType = 'official' if(!project.hasProperty("versionType")) versionType = 'official'
appName = 'Mindustry' appName = 'Mindustry'
steamworksVersion = '0b86023401880bb5e586bc404bedbaae9b1f1c94' steamworksVersion = '0b86023401880bb5e586bc404bedbaae9b1f1c94'
rhinoVersion = '55bf0dac1cfa7770672fd26112512c733ca9d5dc' rhinoVersion = '9f792d202471fb3789eab7bb261fec13d67287e2'
loadVersionProps = { loadVersionProps = {
return new Properties().with{p -> p.load(file('../core/assets/version.properties').newReader()); return p } return new Properties().with{p -> p.load(file('../core/assets/version.properties').newReader()); return p }
@@ -501,8 +501,10 @@ task deployAll{
dependsOn "desktop:packrWindows64" dependsOn "desktop:packrWindows64"
dependsOn "desktop:packrWindows32" dependsOn "desktop:packrWindows32"
dependsOn "desktop:packrMacOS" dependsOn "desktop:packrMacOS"
if(versionModifier != "steam"){
dependsOn "server:deploy" dependsOn "server:deploy"
dependsOn "android:deploy" dependsOn "android:deploy"
}
} }
task resolveDependencies{ task resolveDependencies{

Binary file not shown.

After

Width:  |  Height:  |  Size: 751 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1012 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 558 B

After

Width:  |  Height:  |  Size: 685 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 874 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 871 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 528 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 512 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 197 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 118 B

After

Width:  |  Height:  |  Size: 117 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 123 B

After

Width:  |  Height:  |  Size: 120 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 122 B

After

Width:  |  Height:  |  Size: 120 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 B

View File

@@ -101,6 +101,7 @@ customgame = Custom Game
newgame = New Game newgame = New Game
none = <none> none = <none>
none.found = [lightgray]<none found> none.found = [lightgray]<none found>
none.inmap = [lightgray]<none in map>
minimap = Minimap minimap = Minimap
position = Position position = Position
close = Close close = Close
@@ -214,6 +215,7 @@ hosts.none = [lightgray]No local games found!
host.invalid = [scarlet]Can't connect to host. host.invalid = [scarlet]Can't connect to host.
servers.local = Local Servers servers.local = Local Servers
servers.local.steam = Open Games & Local Servers
servers.remote = Remote Servers servers.remote = Remote Servers
servers.global = Community Servers servers.global = Community Servers
@@ -565,6 +567,7 @@ sectors.unexplored = [lightgray]Unexplored
sectors.resources = Resources: sectors.resources = Resources:
sectors.production = Production: sectors.production = Production:
sectors.export = Export: sectors.export = Export:
sectors.import = Import:
sectors.time = Time: sectors.time = Time:
sectors.threat = Threat: sectors.threat = Threat:
sectors.wave = Wave: sectors.wave = Wave:
@@ -724,7 +727,7 @@ stat.maxconsecutive = Max Consecutive
stat.buildcost = Build Cost stat.buildcost = Build Cost
stat.inaccuracy = Inaccuracy stat.inaccuracy = Inaccuracy
stat.shots = Shots stat.shots = Shots
stat.reload = Shots/Second stat.reload = Firing Rate
stat.ammo = Ammo stat.ammo = Ammo
stat.shieldhealth = Shield Health stat.shieldhealth = Shield Health
stat.cooldowntime = Cooldown Time stat.cooldowntime = Cooldown Time
@@ -793,7 +796,7 @@ 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.frag = [stat]frag 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
bullet.knockback = [stat]{0}[lightgray] knockback bullet.knockback = [stat]{0}[lightgray] knockback
@@ -806,6 +809,7 @@ bullet.reload = [stat]{0}[lightgray]x fire rate
unit.blocks = blocks unit.blocks = blocks
unit.blockssquared = blocks² unit.blockssquared = blocks²
unit.powersecond = power units/second unit.powersecond = power units/second
unit.tilessecond = tiles/second
unit.liquidsecond = liquid units/second unit.liquidsecond = liquid units/second
unit.itemssecond = items/second unit.itemssecond = items/second
unit.liquidunits = liquid units unit.liquidunits = liquid units
@@ -831,20 +835,19 @@ category.items = Items
category.crafting = Input/Output category.crafting = Input/Output
category.function = Function category.function = Function
category.optional = Optional Enhancements category.optional = Optional Enhancements
setting.skipcoreanimation.name = Skip Core Launch/Land Animation
setting.landscape.name = Lock Landscape setting.landscape.name = Lock Landscape
setting.shadows.name = Shadows setting.shadows.name = Shadows
setting.blockreplace.name = Automatic Block Suggestions setting.blockreplace.name = Automatic Block Suggestions
setting.linear.name = Linear Filtering setting.linear.name = Linear Filtering
setting.hints.name = Hints setting.hints.name = Hints
setting.logichints.name = Logic Hints setting.logichints.name = Logic Hints
setting.flow.name = Display Resource Flow Rate
setting.backgroundpause.name = Pause In Background setting.backgroundpause.name = Pause In Background
setting.buildautopause.name = Auto-Pause Building setting.buildautopause.name = Auto-Pause Building
setting.doubletapmine.name = Double-Tap to Mine setting.doubletapmine.name = Double-Tap to Mine
setting.modcrashdisable.name = Disable Mods On Startup Crash setting.modcrashdisable.name = Disable Mods On Startup Crash
setting.animatedwater.name = Animated Surfaces setting.animatedwater.name = Animated Surfaces
setting.animatedshields.name = Animated Shields setting.animatedshields.name = Animated Shields
setting.antialias.name = Antialias[lightgray] (requires restart)[]
setting.playerindicators.name = Player Indicators setting.playerindicators.name = Player Indicators
setting.indicators.name = Enemy Indicators setting.indicators.name = Enemy Indicators
setting.autotarget.name = Auto-Target setting.autotarget.name = Auto-Target
@@ -853,7 +856,8 @@ setting.touchscreen.name = Touchscreen Controls
setting.fpscap.name = Max FPS setting.fpscap.name = Max FPS
setting.fpscap.none = None setting.fpscap.none = None
setting.fpscap.text = {0} FPS setting.fpscap.text = {0} FPS
setting.uiscale.name = UI Scaling[lightgray] (restart required)[] setting.uiscale.name = UI Scaling
setting.uiscale.description = Restart required to apply changes.
setting.swapdiagonal.name = Always Diagonal Placement setting.swapdiagonal.name = Always Diagonal Placement
setting.difficulty.training = Training setting.difficulty.training = Training
setting.difficulty.easy = Easy setting.difficulty.easy = Easy
@@ -871,7 +875,8 @@ setting.saveinterval.name = Save Interval
setting.seconds = {0} seconds setting.seconds = {0} seconds
setting.milliseconds = {0} milliseconds setting.milliseconds = {0} milliseconds
setting.fullscreen.name = Fullscreen setting.fullscreen.name = Fullscreen
setting.borderlesswindow.name = Borderless Window[lightgray] (restart may be required) setting.borderlesswindow.name = Borderless Window
setting.borderlesswindow.description = Restart may be required to apply changes.
setting.fps.name = Show FPS & Ping setting.fps.name = Show FPS & Ping
setting.smoothcamera.name = Smooth Camera setting.smoothcamera.name = Smooth Camera
setting.vsync.name = VSync setting.vsync.name = VSync
@@ -994,6 +999,7 @@ rules.wavetimer = Wave Timer
rules.waves = Waves rules.waves = Waves
rules.attack = Attack Mode rules.attack = Attack Mode
rules.buildai = AI Building rules.buildai = AI Building
rules.cleanupdeadteams = Clean Up Defeated Team Buildings (PvP)
rules.corecapture = Capture Core On Destruction rules.corecapture = Capture Core On Destruction
rules.polygoncoreprotection = Polygonal Core Protection rules.polygoncoreprotection = Polygonal Core Protection
rules.enemyCheat = Infinite AI (Red Team) Resources rules.enemyCheat = Infinite AI (Red Team) Resources
@@ -1288,7 +1294,6 @@ block.meltdown.name = Meltdown
block.foreshadow.name = Foreshadow block.foreshadow.name = Foreshadow
block.container.name = Container block.container.name = Container
block.launch-pad.name = Launch Pad block.launch-pad.name = Launch Pad
block.launch-pad-large.name = Large Launch Pad
block.segment.name = Segment block.segment.name = Segment
block.command-center.name = Command Center block.command-center.name = Command Center
block.ground-factory.name = Ground Factory block.ground-factory.name = Ground Factory
@@ -1309,11 +1314,11 @@ block.payload-source.name = Payload Source
block.disassembler.name = Disassembler block.disassembler.name = Disassembler
block.silicon-crucible.name = Silicon Crucible block.silicon-crucible.name = Silicon Crucible
block.overdrive-dome.name = Overdrive Dome block.overdrive-dome.name = Overdrive Dome
block.interplanetary-accelerator.name = Interplanetary Accelerator
#experimental, may be removed #experimental, may be removed
block.block-forge.name = Block Forge block.block-forge.name = Block Forge
block.block-loader.name = Block Loader block.block-loader.name = Block Loader
block.block-unloader.name = Block Unloader block.block-unloader.name = Block Unloader
block.interplanetary-accelerator.name = Interplanetary Accelerator
block.switch.name = Switch block.switch.name = Switch
block.micro-processor.name = Micro Processor block.micro-processor.name = Micro Processor
@@ -1348,6 +1353,7 @@ hint.placeTurret = Place \uf861 [accent]Turrets[] to defend your base from enemi
hint.breaking = [accent]Right-click[] and drag to break blocks. hint.breaking = [accent]Right-click[] and drag to break blocks.
hint.breaking.mobile = Activate the \ue817 [accent]hammer[] in the bottom right and tap to break blocks.\n\nHold down your finger for a second and drag to break in a selection. hint.breaking.mobile = Activate the \ue817 [accent]hammer[] in the bottom right and tap to break blocks.\n\nHold down your finger for a second and drag to break in a selection.
hint.blockInfo = View information of a block by selecting it in the [accent]build menu[], then selecting the [accent][[?][] button at the right. hint.blockInfo = View information of a block by selecting it in the [accent]build menu[], then selecting the [accent][[?][] button at the right.
hint.derelict = [accent]Derelict[] structures are broken remnants of old bases that no longer function.\n\nThese structures can be [accent]deconstructed[] for resources.
hint.research = Use the \ue875 [accent]Research[] button to research new technology. hint.research = Use the \ue875 [accent]Research[] button to research new technology.
hint.research.mobile = Use the \ue875 [accent]Research[] button in the \ue88c [accent]Menu[] to research new technology. hint.research.mobile = Use the \ue875 [accent]Research[] button in the \ue88c [accent]Menu[] to research new technology.
hint.unitControl = Hold [accent][[L-ctrl][] and [accent]click[] to control friendly units or turrets. hint.unitControl = Hold [accent][[L-ctrl][] and [accent]click[] to control friendly units or turrets.
@@ -1399,6 +1405,7 @@ liquid.slag.description = Refined in separators into constituent metals, or spra
liquid.oil.description = Used in advanced material production and as incendiary ammunition. liquid.oil.description = Used in advanced material production and as incendiary ammunition.
liquid.cryofluid.description = Used as coolant in reactors, turrets and factories. liquid.cryofluid.description = Used as coolant in reactors, turrets and factories.
block.derelict = [lightgray] Derelict
block.resupply-point.description = Resupplies nearby units with copper ammunition. Not compatible with units that require battery power. block.resupply-point.description = Resupplies nearby units with copper ammunition. Not compatible with units that require battery power.
block.armored-conveyor.description = Moves items forward. Does not accept inputs from the sides. block.armored-conveyor.description = Moves items forward. Does not accept inputs from the sides.
block.illuminator.description = Emits light. block.illuminator.description = Emits light.
@@ -1543,6 +1550,8 @@ block.memory-bank.description = Stores information for a logic processor. High c
block.logic-display.description = Displays arbitrary graphics from a logic processor. block.logic-display.description = Displays arbitrary graphics from a logic processor.
block.large-logic-display.description = Displays arbitrary graphics from a logic processor. block.large-logic-display.description = Displays arbitrary graphics from a logic processor.
block.interplanetary-accelerator.description = A massive electromagnetic railgun tower. Accelerates cores to escape velocity for interplanetary deployment. block.interplanetary-accelerator.description = A massive electromagnetic railgun tower. Accelerates cores to escape velocity for interplanetary deployment.
block.repair-turret.description = Continuously repairs the closest damaged unit in its vicinity. Optionally accepts coolant.
block.payload-propulsion-tower.description = Long-range payload transport structure. Shoots payloads to other linked payload propulsion towers.
unit.dagger.description = Fires standard bullets at all nearby enemies. unit.dagger.description = Fires standard bullets at all nearby enemies.
unit.mace.description = Fires streams of flame at all nearby enemies. unit.mace.description = Fires streams of flame at all nearby enemies.
@@ -1577,6 +1586,11 @@ unit.omura.description = Fires a long-range piercing railgun bolt at enemies. Co
unit.alpha.description = Defends the Shard core from enemies. Builds structures. unit.alpha.description = Defends the Shard core from enemies. Builds structures.
unit.beta.description = Defends the Foundation core from enemies. Builds structures. unit.beta.description = Defends the Foundation core from enemies. Builds structures.
unit.gamma.description = Defends the Nucleus core from enemies. Builds structures. unit.gamma.description = Defends the Nucleus core from enemies. Builds structures.
unit.retusa.description = Places proximity mines. Repairs allied units.
unit.oxynoe.description = Fires structure-repairing streams of flame at nearby enemies. Targets nearby enemy projectiles with a point defense turret.
unit.cyerce.description = Fires seeking cluster-missiles at enemies. Repairs allied units.
unit.aegires.description = Shocks all enemy units and structures that enter its energy field. Repairs all allies.
unit.navanax.description = Fires explosive EMP projectiles, dealing significant damage to enemy power networks and repairing allied structures. Melts nearby enemies with 4 autonomous laser turrets.
lst.read = Read a number from a linked memory cell. lst.read = Read a number from a linked memory cell.
lst.write = Write a number to a linked memory cell. lst.write = Write a number to a linked memory cell.
@@ -1592,7 +1606,7 @@ lst.set = Set a variable.
lst.operation = Perform an operation on 1-2 variables. lst.operation = Perform an operation on 1-2 variables.
lst.end = Jump to the top of the instruction stack. lst.end = Jump to the top of the instruction stack.
lst.wait = Wait a certain number of seconds. lst.wait = Wait a certain number of seconds.
lst.lookup = Look up a item/liquid/unit/block type by ID.\nTotal counts of each type can be accessed with:\n[accent]@unitCount[] / [accent]@itemCount[] / [accent]@liquidCount[] / [accent]@blockCount[] lst.lookup = Look up an item/liquid/unit/block type by ID.\nTotal counts of each type can be accessed with:\n[accent]@unitCount[] / [accent]@itemCount[] / [accent]@liquidCount[] / [accent]@blockCount[]
lst.jump = Conditionally jump to another statement. lst.jump = Conditionally jump to another statement.
lst.unitbind = Bind to the next unit of a type, and store it in [accent]@unit[]. lst.unitbind = Bind to the next unit of a type, and store it in [accent]@unit[].
lst.unitcontrol = Control the currently bound unit. lst.unitcontrol = Control the currently bound unit.

View File

@@ -307,7 +307,7 @@ waiting.players = Čekání na hráče...
wave.enemies = [lightgray]{0} zbývajících nepřátel wave.enemies = [lightgray]{0} zbývajících nepřátel
wave.enemycores = [accent]{0}[lightgray] nepřátelská jádra wave.enemycores = [accent]{0}[lightgray] nepřátelská jádra
wave.enemycore = [accent]{0}[lightgray] nepřátelské jádro wave.enemycore = [accent]{0}[lightgray] nepřátelské jádro
wave.enemy = [lightgray]{0} zbývající nepřátel wave.enemy = [lightgray]{0} zbývající nepřítel
wave.guardianwarn = Počet vln do příchodu strážce: [accent]{0}[]. wave.guardianwarn = Počet vln do příchodu strážce: [accent]{0}[].
wave.guardianwarn.one = [accent]Strážce přijde již příští vlnu![] wave.guardianwarn.one = [accent]Strážce přijde již příští vlnu![]
loadimage = Nahrát obrázek loadimage = Nahrát obrázek
@@ -323,16 +323,16 @@ map.nospawn.attack = Tato mapa nemá nepřátelská jádra, která by mohla být
map.invalid = Chyba v načítání mapy: poškozený nebo neplatný soubor mapy. map.invalid = Chyba v načítání mapy: poškozený nebo neplatný soubor mapy.
workshop.update = Aktualizovat položku workshop.update = Aktualizovat položku
workshop.error = Chyba při načítání podrobností z Workshopu na Steamu: {0} workshop.error = Chyba při načítání podrobností z Workshopu na Steamu: {0}
map.publish.confirm = Jsi si jistý, že chceš vystavit tuto mapu?\n\n[lightgray]Ujisti se nejprve, že souhlasíš se smluvními podmínkami Workshopu na Steamu (EULA), jinak se Tvoje mapa nezobrazí.[] map.publish.confirm = Jsi si jistý, že chceš publikovat tuto mapu?\n\n[lightgray]Ujisti se nejprve, že souhlasíš se smluvními podmínkami Workshopu na Steamu (EULA), jinak se Tvoje mapa nezobrazí.[]
workshop.menu = Vyber si, co bys chtěl dělat s touto položkou. workshop.menu = Vyber si, co bys chtěl dělat s touto položkou.
workshop.info = Informace o položce workshop.info = Informace o položce
changelog = Seznam změn (volitelně): changelog = Seznam změn (volitelně):
eula = Smluvní podmínky platformy Steam eula = Smluvní podmínky platformy Steam
missing = Tato položka byla smazána nebo přesunuta.\n[lightgray]Položka bude automaticky odebrána ze seznamu Workshopu na Steamu. missing = Tato položka byla smazána nebo přesunuta.\n[lightgray]Položka bude automaticky odebrána ze seznamu Workshopu na Steamu.
publishing = [accent]Publikuji... publishing = [accent]Publikuji...
publish.confirm = Opravdu chceš toto vystavit?\n\n[lightgray]Ujisti se nejprve, že souhlasíš se smluvními podmínkami Workshopu na Steamu (EULA), jinak se Tvoje položky nezobrazí.[] publish.confirm = Opravdu chceš toto publikovat?\n\n[lightgray]Ujisti se nejprve, že souhlasíš se smluvními podmínkami Workshopu na Steamu (EULA), jinak se Tvoje položky nezobrazí.[]
publish.error = Chyba při vystavování položky: {0} publish.error = Chyba při publikování položky: {0}
steam.error = Nepodařilo se inicializovat služby platformy Steam.Chyba: {0} steam.error = Nepodařilo se inicializovat služby platformy Steam. Chyba: {0}
editor.brush = Štětec editor.brush = Štětec
editor.openin = Otevřít v editoru editor.openin = Otevřít v editoru
@@ -341,12 +341,12 @@ editor.oregen.info = Generování rud:
editor.mapinfo = Informace o mapě editor.mapinfo = Informace o mapě
editor.author = Autor: editor.author = Autor:
editor.description = Popis: editor.description = Popis:
editor.nodescription = Než může být mapa publikována, musí mít popisek dlouhý nejméně 4 znaky. editor.nodescription = Než může být mapa publikována, musí mít popis dlouhý nejméně 4 znaky.
editor.waves = Vln: editor.waves = Vln:
editor.rules = Pravidla: editor.rules = Pravidla:
editor.generation = Generace: editor.generation = Generace:
editor.ingame = Upravit ve hře editor.ingame = Upravit ve hře
editor.publish.workshop = Vystavit ve Workshopu na Steamu editor.publish.workshop = Publikovat do Workshopu na Steamu
editor.newmap = Nová mapa editor.newmap = Nová mapa
editor.center = Vycentrovat editor.center = Vycentrovat
workshop = Workshop na Steamu workshop = Workshop na Steamu
@@ -684,6 +684,7 @@ stat.lightningchance = Pravděpodobnost blesku
stat.lightningdamage = Poškození bleskem stat.lightningdamage = Poškození bleskem
stat.flammability = Hořlavost stat.flammability = Hořlavost
stat.radioactivity = Radioaktivita stat.radioactivity = Radioaktivita
stat.charge = Nabití
stat.heatcapacity = Tepelná kapacita stat.heatcapacity = Tepelná kapacita
stat.viscosity = Vazkost stat.viscosity = Vazkost
stat.temperature = Teplota stat.temperature = Teplota

View File

@@ -101,6 +101,7 @@ customgame = Benutzerdefiniertes Spiel
newgame = Neues Spiel newgame = Neues Spiel
none = <nichts> none = <nichts>
none.found = [lightgray]<keine gefunden> none.found = [lightgray]<keine gefunden>
none.inmap = [lightgray]<keine auf der Karte>
minimap = Minimap minimap = Minimap
position = Position position = Position
close = Schließen close = Schließen
@@ -460,6 +461,7 @@ toolmode.drawteams = Teams zeichnen
toolmode.drawteams.description = Zeichnet Teams statt Blöcke. toolmode.drawteams.description = Zeichnet Teams statt Blöcke.
filters.empty = [lightgray]Keine Filter! Füge einen mit dem unteren Knopf hinzu. filters.empty = [lightgray]Keine Filter! Füge einen mit dem unteren Knopf hinzu.
filter.distort = Verzerren filter.distort = Verzerren
filter.noise = Rauschen filter.noise = Rauschen
filter.enemyspawn = Gegnerischer Spawn Auswahl filter.enemyspawn = Gegnerischer Spawn Auswahl
@@ -476,6 +478,7 @@ filter.clear = Löschen
filter.option.ignore = Ignorieren filter.option.ignore = Ignorieren
filter.scatter = Streuen filter.scatter = Streuen
filter.terrain = Landschaft filter.terrain = Landschaft
filter.option.scale = Skalierung filter.option.scale = Skalierung
filter.option.chance = Wahrscheinlichkeit filter.option.chance = Wahrscheinlichkeit
filter.option.mag = Größe filter.option.mag = Größe
@@ -490,6 +493,7 @@ filter.option.block = Block
filter.option.floor = Boden filter.option.floor = Boden
filter.option.flooronto = Zielboden filter.option.flooronto = Zielboden
filter.option.target = Ziel filter.option.target = Ziel
filter.option.replacement = Ersatz
filter.option.wall = Wand filter.option.wall = Wand
filter.option.ore = Erz filter.option.ore = Erz
filter.option.floor2 = Sekundärer Boden filter.option.floor2 = Sekundärer Boden
@@ -562,6 +566,7 @@ sectors.unexplored = [lightgray]Unentdeckt
sectors.resources = Ressourcen: sectors.resources = Ressourcen:
sectors.production = Produktion: sectors.production = Produktion:
sectors.export = Export: sectors.export = Export:
sectors.import = Import:
sectors.time = Zeit: sectors.time = Zeit:
sectors.threat = Gefahr: sectors.threat = Gefahr:
sectors.wave = Welle: sectors.wave = Welle:
@@ -675,6 +680,7 @@ unit.nobuild = [scarlet]Einheit kann nicht bauen!
lastaccessed = [lightgray]Zuletzt konfiguriert: {0} lastaccessed = [lightgray]Zuletzt konfiguriert: {0}
block.unknown = [lightgray]??? block.unknown = [lightgray]???
stat.showinmap = <öffne Spiel um zu zeigen>
stat.description = Beschreibung stat.description = Beschreibung
stat.input = Eingang stat.input = Eingang
stat.output = Ausgang stat.output = Ausgang
@@ -720,7 +726,7 @@ stat.maxconsecutive = Max. Konsekutive
stat.buildcost = Baukosten stat.buildcost = Baukosten
stat.inaccuracy = Ungenauigkeit stat.inaccuracy = Ungenauigkeit
stat.shots = Schüsse stat.shots = Schüsse
stat.reload = Schüsse/Sekunde stat.reload = Schussrate
stat.ammo = Munition stat.ammo = Munition
stat.shieldhealth = Schildlebenspunkte stat.shieldhealth = Schildlebenspunkte
stat.cooldowntime = Cooldown-Zeit stat.cooldowntime = Cooldown-Zeit
@@ -789,7 +795,7 @@ bullet.damage = [stat]{0}[lightgray] Schaden
bullet.splashdamage = [stat]{0}[lightgray] Flächenschaden ~[stat] {1}[lightgray] Kacheln bullet.splashdamage = [stat]{0}[lightgray] Flächenschaden ~[stat] {1}[lightgray] Kacheln
bullet.incendiary = [stat]entzündend bullet.incendiary = [stat]entzündend
bullet.homing = [stat]zielsuchend bullet.homing = [stat]zielsuchend
bullet.frag = [stat]explosiv bullet.frag = [stat]{0}[lightgray]x explosive Projektile:
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
bullet.knockback = [stat]{0}[lightgray] zurückstoßend bullet.knockback = [stat]{0}[lightgray] zurückstoßend
@@ -802,6 +808,7 @@ bullet.reload = [stat]{0}[lightgray]x Feuerrate
unit.blocks = Blöcke unit.blocks = Blöcke
unit.blockssquared = Blöcke² unit.blockssquared = Blöcke²
unit.powersecond = Stromeinheiten/Sekunde unit.powersecond = Stromeinheiten/Sekunde
unit.tilessecond = Blöcke/Sekunde
unit.liquidsecond = Flüssigkeitseinheiten/Sekunde unit.liquidsecond = Flüssigkeitseinheiten/Sekunde
unit.itemssecond = Materialeinheiten/Sekunde unit.itemssecond = Materialeinheiten/Sekunde
unit.liquidunits = Flüssigkeitseinheiten unit.liquidunits = Flüssigkeitseinheiten
@@ -840,7 +847,6 @@ setting.doubletapmine.name = Doppeltippen zum Abbauen
setting.modcrashdisable.name = Mods bei Absturz deaktivieren setting.modcrashdisable.name = Mods bei Absturz deaktivieren
setting.animatedwater.name = Animiertes Wasser setting.animatedwater.name = Animiertes Wasser
setting.animatedshields.name = Animierte Schilde setting.animatedshields.name = Animierte Schilde
setting.antialias.name = Antialias[lightgray] (Neustart erforderlich)[]
setting.playerindicators.name = Spieler-Indikatoren setting.playerindicators.name = Spieler-Indikatoren
setting.indicators.name = Verbündeten-Indikatoren setting.indicators.name = Verbündeten-Indikatoren
setting.autotarget.name = Auto-Zielauswahl setting.autotarget.name = Auto-Zielauswahl
@@ -849,7 +855,8 @@ setting.touchscreen.name = Touchscreen-Steuerung
setting.fpscap.name = Max. FPS setting.fpscap.name = Max. FPS
setting.fpscap.none = Kein(e) setting.fpscap.none = Kein(e)
setting.fpscap.text = {0} FPS setting.fpscap.text = {0} FPS
setting.uiscale.name = UI-Skalierung[lightgray] (Neustart erforderlich)[] setting.uiscale.name = UI-Skalierung
setting.uiscale.description = Neustart erforderlich.
setting.swapdiagonal.name = Immer diagonale Platzierung setting.swapdiagonal.name = Immer diagonale Platzierung
setting.difficulty.training = Training setting.difficulty.training = Training
setting.difficulty.easy = Leicht setting.difficulty.easy = Leicht
@@ -867,7 +874,8 @@ setting.saveinterval.name = Autosave-Häufigkeit
setting.seconds = {0} Sekunden setting.seconds = {0} Sekunden
setting.milliseconds = {0} Millisekunden setting.milliseconds = {0} Millisekunden
setting.fullscreen.name = Vollbild setting.fullscreen.name = Vollbild
setting.borderlesswindow.name = Randloses Fenster [lightgray](Neustart vielleicht erforderlich) setting.borderlesswindow.name = Randloses Fenster
setting.borderlesswindow.description = Neustart vielleicht erforderlich.
setting.fps.name = FPS anzeigen setting.fps.name = FPS anzeigen
setting.smoothcamera.name = Sanfte Kamerabewegungen setting.smoothcamera.name = Sanfte Kamerabewegungen
setting.vsync.name = VSync setting.vsync.name = VSync
@@ -990,7 +998,9 @@ rules.wavetimer = Wellen-Timer
rules.waves = Wellen rules.waves = Wellen
rules.attack = Angriff-Modus rules.attack = Angriff-Modus
rules.buildai = KI kann bauen rules.buildai = KI kann bauen
rules.cleanupdeadteams = Blöcke von erorberten Teams zerstören (PvP)
rules.corecapture = Kern nach Zerstörung einnehmen rules.corecapture = Kern nach Zerstörung einnehmen
rules.polygoncoreprotection = Polygonaler Kernschutz
rules.enemyCheat = Unbegrenzte Ressourcen für die KI (Rotes Team) rules.enemyCheat = Unbegrenzte Ressourcen für die KI (Rotes Team)
rules.blockhealthmultiplier = Block-Lebenspunkte-Multiplikator rules.blockhealthmultiplier = Block-Lebenspunkte-Multiplikator
rules.blockdamagemultiplier = Block-Schaden-Multiplikator rules.blockdamagemultiplier = Block-Schaden-Multiplikator
@@ -1161,6 +1171,7 @@ block.spore-cluster.name = Sporen-Cluster
block.metal-floor.name = Metallboden 1 block.metal-floor.name = Metallboden 1
block.metal-floor-2.name = Metallboden 2 block.metal-floor-2.name = Metallboden 2
block.metal-floor-3.name = Metallboden 3 block.metal-floor-3.name = Metallboden 3
block.metal-floor-4.name = Metallboden 4
block.metal-floor-5.name = Metallboden 5 block.metal-floor-5.name = Metallboden 5
block.metal-floor-damaged.name = beschädigter Metallboden block.metal-floor-damaged.name = beschädigter Metallboden
block.dark-panel-1.name = Dunkles Panel 1 block.dark-panel-1.name = Dunkles Panel 1
@@ -1282,7 +1293,6 @@ block.meltdown.name = Meltdown
block.foreshadow.name = Foreshadow block.foreshadow.name = Foreshadow
block.container.name = Behälter block.container.name = Behälter
block.launch-pad.name = Launchpad block.launch-pad.name = Launchpad
block.launch-pad-large.name = Großes Launchpad
block.segment.name = Segment block.segment.name = Segment
block.command-center.name = Kommandozentrale block.command-center.name = Kommandozentrale
block.ground-factory.name = Bodenfabrik block.ground-factory.name = Bodenfabrik
@@ -1303,11 +1313,11 @@ block.payload-source.name = Frachtquelle
block.disassembler.name = Großer Trenner block.disassembler.name = Großer Trenner
block.silicon-crucible.name = Silizium Schmelztiegel block.silicon-crucible.name = Silizium Schmelztiegel
block.overdrive-dome.name = Beschleunigungs-Maschine block.overdrive-dome.name = Beschleunigungs-Maschine
block.interplanetary-accelerator.name = Interplanetarischer Beschleuniger
#experimental, may be removed #experimental, may be removed
block.block-forge.name = Block-Fabrik block.block-forge.name = Block-Fabrik
block.block-loader.name = Block-Lader block.block-loader.name = Block-Lader
block.block-unloader.name = Block-Entlader block.block-unloader.name = Block-Entlader
block.interplanetary-accelerator.name = Interplanetarischer Beschleuniger
block.switch.name = Schalter block.switch.name = Schalter
block.micro-processor.name = Mikroprozessor block.micro-processor.name = Mikroprozessor
@@ -1537,6 +1547,8 @@ block.memory-bank.description = Speichert Informationen für einen Prozessor. Ho
block.logic-display.description = Zeigt mithilfe eines Prozessors Beliebiges an. block.logic-display.description = Zeigt mithilfe eines Prozessors Beliebiges an.
block.large-logic-display.description = Zeigt mithilfe eines Prozessors Beliebiges an. block.large-logic-display.description = Zeigt mithilfe eines Prozessors Beliebiges an.
block.interplanetary-accelerator.description = Ein Riesen-Railgun-Turm, der mithilfe des Elektromagnetismus Kerne auf die nötige Geschwindigkeit bringt, um interplanetarisches Reisen zu ermöglichen. block.interplanetary-accelerator.description = Ein Riesen-Railgun-Turm, der mithilfe des Elektromagnetismus Kerne auf die nötige Geschwindigkeit bringt, um interplanetarisches Reisen zu ermöglichen.
block.repair-turret.description = Heilt durchgehend die nächste befreundete, beschädigte Einheit in der Umgebung. Verwendet optional Kühlung.
block.payload-propulsion-tower.description = Frachttransportationsturm mit hoher Reichweite. Schießt Fracht zu verbundenen Türmen.
unit.dagger.description = Schießt normale Kugeln auf alle Feinde in der Nähe. unit.dagger.description = Schießt normale Kugeln auf alle Feinde in der Nähe.
unit.mace.description = Schießt Feuer auf alle Gegner in der Nähe. unit.mace.description = Schießt Feuer auf alle Gegner in der Nähe.
@@ -1571,6 +1583,11 @@ unit.omura.description = Schießt eine Railgun mit hoher Reichweite, um Gegner z
unit.alpha.description = Beschützt den Scherbenkern vor Feinden. Baut Blöcke. unit.alpha.description = Beschützt den Scherbenkern vor Feinden. Baut Blöcke.
unit.beta.description = Beschützt den Fundamentkern vor Feinden. Baut Blöcke. unit.beta.description = Beschützt den Fundamentkern vor Feinden. Baut Blöcke.
unit.gamma.description = Beschützt den Nukleuskern vor Feinden. Baut Blöcke. unit.gamma.description = Beschützt den Nukleuskern vor Feinden. Baut Blöcke.
unit.retusa.description = Platziert Minen und heilt verbündete Einheiten.
unit.oxynoe.description = Schießt Block-heilendes Feuer auf Gegner und zerstört gegnerische Projektile.
unit.cyerce.description = Schießt zielsuchende Cluster-Raketen auf Gegner und heilt verbündete Einheiten.
unit.aegires.description = Schockt alle gegnerische Einheiten und Blöcke, die das Energiefeld betreten. Heilt alle verbündete.
unit.navanax.description = Schießt explosive EMP-Projektile, die gegnerische Stromnetze zerstören und eigene Blöcke heilen. Zerschmilzt Gegner mit 4 autonomen Laserstrahlen.
lst.read = Liest einen Wert aus einer verbundenen Spiecherzelle. lst.read = Liest einen Wert aus einer verbundenen Spiecherzelle.
lst.write = Schreibt eine Zahl in einer verbundene Speicherzelle. lst.write = Schreibt eine Zahl in einer verbundene Speicherzelle.
@@ -1585,6 +1602,8 @@ lst.sensor = Gibt Daten über einen Block oder eine Einheit wieder.
lst.set = Setzt eine Variable fest. lst.set = Setzt eine Variable fest.
lst.operation = Verändert eine Variable. lst.operation = Verändert eine Variable.
lst.end = Springt wieder nach oben. lst.end = Springt wieder nach oben.
lst.wait = Wartet eine bestimmte Zeit.
lst.lookup = Sucht ein Item, eine Flüssigkeit, eine Einheit oder einen Block.\nGesamtmengen von jeder Sache können mit \n[accent]@unitCount[] / [accent]@itemCount[] / [accent]@liquidCount[] / [accent]@blockCount[]\nabgerufen werden.
lst.jump = Falls die Bedingung erfüllt ist, wird woanders weitergemacht. lst.jump = Falls die Bedingung erfüllt ist, wird woanders weitergemacht.
lst.unitbind = Speichert eine Einheit einer Sorte als [accent]@unit[]. lst.unitbind = Speichert eine Einheit einer Sorte als [accent]@unit[].
lst.unitcontrol = Steuert [accent]@unit[]. lst.unitcontrol = Steuert [accent]@unit[].

View File

@@ -41,11 +41,13 @@ be.ignore = Ignorar
be.noupdates = No se encontraron actualizaciones. be.noupdates = No se encontraron actualizaciones.
be.check = Buscar actualizaciones be.check = Buscar actualizaciones
mod.featured.title = Explorador de mods mods.browser = Explorador de Mods
mod.featured.dialog.title = Explorador de Mods
mods.browser.selected = Mod seleccionado mods.browser.selected = Mod seleccionado
mods.browser.add = Installar Mod mods.browser.add = Instalar
mods.github.open = Abrir en Github mods.browser.reinstall = Reinstalar
mods.github.open = Repositorio
mods.browser.sortdate = Más recientes
mods.browser.sortstars = Mejor valorados
schematic = Plantilla schematic = Plantilla
schematic.add = Guardar plantilla... schematic.add = Guardar plantilla...
@@ -55,16 +57,24 @@ schematic.exists = Ya existe una plantilla con ese nombre.
schematic.import = Importar plantilla... schematic.import = Importar plantilla...
schematic.exportfile = Exportar archivo schematic.exportfile = Exportar archivo
schematic.importfile = Importar archivo schematic.importfile = Importar archivo
schematic.browseworkshop = Buscar en el Steam Workshop schematic.browseworkshop = Buscar en Steam Workshop
schematic.copy = Copiar al portapapeles. schematic.copy = Copiar al portapapeles.
schematic.copy.import = Importar desde el portapapeles. schematic.copy.import = Importar desde el portapapeles.
schematic.shareworkshop = Compartir en el Steam Workshop schematic.shareworkshop = Compartir en Steam Workshop
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Girar plantilla schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Girar plantilla
schematic.saved = Plantilla guardada. schematic.saved = Plantilla guardada.
schematic.delete.confirm = Se borrará ésta plantilla. schematic.delete.confirm = Se borrará ésta plantilla.
schematic.rename = Renombrar plantilla schematic.rename = Renombrar plantilla
schematic.info = {0}x{1}, {2} bloques schematic.info = {0}x{1}, {2} bloques
schematic.disabled = [scarlet]Plantillas desactivadas.[]\nNo puedes usar plantillas en este [accent]mapa[] o [accent]servidor. schematic.disabled = [scarlet]Plantillas desactivadas.[]\nNo puedes usar plantillas en este [accent]mapa[] o [accent]servidor.
schematic.tags = Etiquetas:
schematic.edittags = Editar Etiquetas
schematic.addtag = Añadir Etiqueta
schematic.texttag = Texto de Etiqueta
schematic.icontag = Icono de Etiqueta
schematic.renametag = Renombrar Etiqueta
schematic.tagdelconfirm = ¿Eliminar ésta etiqueta?
schematic.tagexists = Esa etiqueta ya existe.
stats = Estadísticas stats = Estadísticas
stat.wave = Oleadas Derrotadas:[accent] {0} stat.wave = Oleadas Derrotadas:[accent] {0}
@@ -77,12 +87,12 @@ stat.playtime = Tiempo jugado:[accent] {0}
stat.rank = Rango final: [accent]{0} stat.rank = Rango final: [accent]{0}
globalitems = [accent]Recursos Totales globalitems = [accent]Recursos Totales
map.delete = ¿Estás seguro de que quieres borrar el mapa "[accent]{0}[]"? map.delete = ¿Quieres borrar el mapa "[accent]{0}[]"?
level.highscore = Puntuación más alta: [accent]{0} level.highscore = Puntuación más alta: [accent]{0}
level.select = Selección de nivel level.select = Selección de Nivel
level.mode = Modo de juego: level.mode = Modo de juego:
coreattack = < ¡El núcleo está bajo ataque! > coreattack = < ¡El núcleo está bajo ataque! >
nearpoint = [[ [scarlet]ABANDONA EL PUNTO DE APARICIÓN INMEDIATAMENTE[] ]\nRiesgo de aniquilación inminente nearpoint = [[ [scarlet]ABANDONA EL PUNTO DE ATERRIZAJE INMEDIATAMENTE[] ]\nRiesgo de aniquilación inminente
database = Base de datos database = Base de datos
savegame = Guardar Partida savegame = Guardar Partida
loadgame = Cargar Partida loadgame = Cargar Partida
@@ -90,6 +100,7 @@ joingame = Unirse a Partida
customgame = Crear Partida customgame = Crear Partida
newgame = Nueva Partida newgame = Nueva Partida
none = <no hay> none = <no hay>
none.found = [lightgray]<no hay coincidencias>
minimap = Minimapa minimap = Minimapa
position = Posición position = Posición
close = Cerrar close = Cerrar
@@ -110,17 +121,20 @@ committingchanges = Confirmando Cambios
done = Hecho done = Hecho
feature.unsupported = Tu dispositivo no es compatible con esta función. feature.unsupported = Tu dispositivo no es compatible con esta función.
mods.alphainfo = Ten en cuenta que los mods estan en fase Alpha, y[scarlet] pueden tener varios errores[].\nReporta cualquier error que encuentres en la página de GitHub de Mindustry. mods.initfailed = [red]⚠[] La anterior ejecución de Mindustry encontró un fallo al inicializarse. Seguramente fue causado por algún mod erróneo.\n\nPara evitar un bucle de erroes al iniciar el juego, [red]se han desactivado todos los mods.[]\n\nPuedes desactivar ésta medida de seguridad desde [accent]Opciones->Juego->Desactivar mods si el juego encuentra un error al iniciarse.[].
mods = Mods mods = Mods
mods.none = [lightgray]¡No se encontraron Mods! mods.none = [lightgray]¡No se encontraron Mods!
mods.guide = Guía de Modding mods.guide = Guía sobre Mods
mods.report = Reportar Error mods.report = Reportar Error
mods.openfolder = Abrir carpeta de mods mods.openfolder = Abrir carpeta de mods
mods.viewcontent = Ver Contenido
mods.reload = Recargar mods.reload = Recargar
mods.reloadexit = A continuación se cerrará el juego para recargar los mods. mods.reloadexit = A continuación se cerrará el juego para recargar los mods.
mod.installed = [[Instalado]
mod.display = [gray]Mod:[orange] {0} mod.display = [gray]Mod:[orange] {0}
mod.enabled = [lightgray]Activado mod.enabled = [lightgray]Activado
mod.disabled = [scarlet]Desactivado mod.disabled = [scarlet]Desactivado
mod.multiplayer.compatible = [gray]Compatible con Multijugador
mod.disable = Desactivar mod.disable = Desactivar
mod.content = Contenido: mod.content = Contenido:
mod.delete.error = No se pudo elminar el mod. Tal vez esté en uso por el juego. mod.delete.error = No se pudo elminar el mod. Tal vez esté en uso por el juego.
@@ -130,20 +144,20 @@ mod.missingdependencies = [scarlet]Dependencias faltantes: {0}
mod.erroredcontent = [scarlet]Contenido erróneo mod.erroredcontent = [scarlet]Contenido erróneo
mod.errors = Ha ocurrido un fallo al cargar el contenido. mod.errors = Ha ocurrido un fallo al cargar el contenido.
mod.noerrorplay = [scarlet]Se están ejecutando algunos mods con fallos.[]Deshabilítalos o arregla los errores antes de jugar. mod.noerrorplay = [scarlet]Se están ejecutando algunos mods con fallos.[]Deshabilítalos o arregla los errores antes de jugar.
mod.nowdisabled = [scarlet]Al/Los Mod/s '{0}'le esta/n faltando dependencias:[accent] {1}\n[lightgray]Estos mods necesitan descargarse primero.\nEste mod será automaticamente desactivado. mod.nowdisabled = [scarlet]El mod '{0}' necesita ejecutarse junto a otros mods de los que depende:[accent] {1}\n[lightgray]Es necesario descargar primero estos mods.\nEste mod será automaticamente desactivado.
mod.enable = Activar mod.enable = Activar
mod.requiresrestart = El juego se cerrará para aplicar los mods. mod.requiresrestart = El juego se cerrará para aplicar los mods.
mod.reloadrequired = [scarlet]Se requiere volver a cargar mod.reloadrequired = [scarlet]Es necesario Reiniciar
mod.import = Importar mod mod.import = Importar mod
mod.import.file = Importar archivo mod.import.file = Importar archivo
mod.import.github = Importar Mod de Github mod.import.github = Importar desde Github
mod.jarwarn = [scarlet]Los mods JAR pueden no ser seguros.[]\n¡Asegúrate de haberlos descargado de una fuente en la que confíes! mod.jarwarn = [scarlet]Los mods JAR pueden no ser seguros.[]\n¡Asegúrate de haberlos descargado de una fuente en la que confíes!
mod.item.remove = Este objeto es parte del[accent] '{0}'[] mod. Para eliminarlo, desinstala ese mod. mod.item.remove = Este objeto es parte del[accent] '{0}'[] mod. Para eliminarlo, desinstala ese mod.
mod.remove.confirm = Este mod va a ser eliminado.\n¿Quieres continuar? mod.remove.confirm = Este mod va a ser eliminado.\n¿Quieres continuar?
mod.author = [lightgray]Autor:[] {0} mod.author = [lightgray]Autor:[] {0}
mod.missing = Esta partida guardada usa mods que has actualizado recientemente o que no tienes instalados. Se puede corromper la partida guardada. ¿Quieres cargarla a pesar de ello?\n[lightgray]Mods:\n{0} mod.missing = Esta partida guardada usa mods que has actualizado recientemente o que no tienes instalados. Se puede corromper la partida guardada. ¿Quieres cargarla a pesar de ello?\n[lightgray]Mods:\n{0}
mod.preview.missing = Antes de publicar este mod en el Steam Workshop, debe añadir una imagen de vista previa.\nAñada una imagen con nombre[accent] preview.png[] en la carpeta del mod e intente nuevamente. mod.preview.missing = Antes de publicar este mod en Steam Workshop, debes añadir una imagen de vista previa.\nAñade una imagen llamada[accent] preview.png[] en la carpeta del mod e inténtalo de nuevo.
mod.folder.missing = Solo los mods en forma de carpeta se pueden publicar en el Steam Workshop.\nPara convertir cualquier mod en una carpeta, simplemente descomprima su archivo a una carpeta y elimine el zip anterior, luego reinicie su juego o vuelva a cargar sus mods. mod.folder.missing = Sólo los mods en forma de carpeta se pueden publicar en Steam Workshop.\nPara convertir cualquier mod en una carpeta, descomprime su archivo a una carpeta y elimina el zip anterior, luego reinicia el juego o vuelve a cargar tus mods.
mod.scripts.disable = Tu dispositivo no es compatible con mods con scripts. Debes deshabilitar esos mods para jugar. mod.scripts.disable = Tu dispositivo no es compatible con mods con scripts. Debes deshabilitar esos mods para jugar.
about.button = Acerca de... about.button = Acerca de...
@@ -214,6 +228,8 @@ trace.ip = IP: [accent]{0}
trace.id = ID Única: [accent]{0} trace.id = ID Única: [accent]{0}
trace.mobile = Cliente de móvil: [accent]{0} trace.mobile = Cliente de móvil: [accent]{0}
trace.modclient = Cliente Personalizado: [accent]{0} trace.modclient = Cliente Personalizado: [accent]{0}
trace.times.joined = Se ha unido [accent]{0} []veces
trace.times.kicked = Fue expulsado [accent]{0} []veces
invalidid = ¡ID de cliente inválida! Por favor, envía un informe del error. invalidid = ¡ID de cliente inválida! Por favor, envía un informe del error.
server.bans = Expulsiones server.bans = Expulsiones
server.bans.none = No se ha baneado a ningún usuario aún server.bans.none = No se ha baneado a ningún usuario aún
@@ -222,16 +238,16 @@ server.admins.none = ¡No hay ningún administrador!
server.add = Agregar Servidor server.add = Agregar Servidor
server.delete = ¿Estás seguro de querer borrar este servidor? server.delete = ¿Estás seguro de querer borrar este servidor?
server.edit = Editar Servidor server.edit = Editar Servidor
server.outdated = [crimson]¡Servidor desactualizado![] server.outdated = [scarlet]¡Servidor Desactualizado![]
server.outdated.client = [crimson]¡Cliente desactualizado![] server.outdated.client = [scarlet]¡Cliente Desactualizado![]
server.version = [lightgray]Versión: {0} server.version = [gray]v{0} {1}
server.custombuild = [accent]Versión personalizada server.custombuild = [accent]Versión Personalizada
confirmban = ¿Quieres banear a este jugador? confirmban = ¿Quieres banear a "{0}[white]"?
confirmkick = ¿Estás seguro de querer expulsar este jugador? confirmkick = ¿Quieres expulsar a "{0}[white]"?
confirmvotekick = ¿Estás de acuerdo en expulsar este jugador? confirmvotekick = ¿Estás a favor de expulsar a "{0}[white]"?
confirmunban = ¿Quieres desbanear a este jugador? confirmunban = ¿Quieres desbanear a este jugador?
confirmadmin = ¿Quieres hacer administrador a este jugador? confirmadmin = ¿Quieres hacer administrador a "{0}[white]"?
confirmunadmin = ¿Quieres quitar los permisos de administrador a este jugador? confirmunadmin = ¿Quieres quitarle los permisos de administrador a "{0}[white]"?
joingame.title = Unirse a Partida joingame.title = Unirse a Partida
joingame.ip = IP: joingame.ip = IP:
disconnect = Desconectado. disconnect = Desconectado.
@@ -287,6 +303,7 @@ cancel = Cancelar
openlink = Abrir Enlace openlink = Abrir Enlace
copylink = Copiar Enlace copylink = Copiar Enlace
back = Atrás back = Atrás
max = Máximo
crash.export = Exportar Registros de errores crash.export = Exportar Registros de errores
crash.none = No se encontraron Registros de errores. crash.none = No se encontraron Registros de errores.
crash.exported = Registros de errores exportados. crash.exported = Registros de errores exportados.
@@ -361,7 +378,6 @@ editor.center = Centrar
workshop = Steam Workshop workshop = Steam Workshop
waves.title = Oleadas waves.title = Oleadas
waves.remove = Borrar waves.remove = Borrar
waves.never = <nunca>
waves.every = cada waves.every = cada
waves.waves = oleada(s) waves.waves = oleada(s)
waves.perspawn = por lugar de aparición waves.perspawn = por lugar de aparición
@@ -444,6 +460,7 @@ toolmode.drawteams = Dibujar Equipos
toolmode.drawteams.description = Dibuja equipos en lugar de bloques. toolmode.drawteams.description = Dibuja equipos en lugar de bloques.
filters.empty = [lightgray]¡No hay filtros! Añade uno con el botón de abajo. filters.empty = [lightgray]¡No hay filtros! Añade uno con el botón de abajo.
filter.distort = Distorsionar filter.distort = Distorsionar
filter.noise = Ruido filter.noise = Ruido
filter.enemyspawn = Punto de aparición enemigo filter.enemyspawn = Punto de aparición enemigo
@@ -460,19 +477,22 @@ filter.clear = Despejar
filter.option.ignore = Ignorar filter.option.ignore = Ignorar
filter.scatter = Dispersar filter.scatter = Dispersar
filter.terrain = Terreno filter.terrain = Terreno
filter.option.scale = Escala filter.option.scale = Escala
filter.option.chance = Probabilidad filter.option.chance = Probabilidad
filter.option.mag = Magnitud filter.option.mag = Magnitud
filter.option.threshold = Umbral filter.option.threshold = Umbral
filter.option.circle-scale = Escala del círculo filter.option.circle-scale = Escala del círculo
filter.option.octaves = Continuidad filter.option.octaves = Continuidad
filter.option.falloff = Aterrizaje filter.option.falloff = Caída
filter.option.angle = Ángulo filter.option.angle = Ángulo
filter.option.rotate = Rotación
filter.option.amount = Cantidad filter.option.amount = Cantidad
filter.option.block = Bloque filter.option.block = Bloque
filter.option.floor = Suelo filter.option.floor = Suelo
filter.option.flooronto = Suelo objetivo filter.option.flooronto = Suelo objetivo
filter.option.target = Target filter.option.target = Objetivo
filter.option.replacement = Reemplazo
filter.option.wall = Muro filter.option.wall = Muro
filter.option.ore = Veta filter.option.ore = Veta
filter.option.floor2 = Terreno secundario filter.option.floor2 = Terreno secundario
@@ -484,11 +504,12 @@ width = Ancho:
height = Alto: height = Alto:
menu = Menú menu = Menú
play = Jugar play = Jugar
campaign = Continuar Campaña campaign = Campaña
load = Cargar load = Cargar
save = Guardar save = Guardar
fps = FPS: {0} fps = FPS: {0}
ping = Ping: {0} ms ping = Ping: {0}ms
tps = TPS: {0}
memory = Mem: {0}mb memory = Mem: {0}mb
memory2 = Mem:\n {0}mb +\n {1}mb memory2 = Mem:\n {0}mb +\n {1}mb
language.restart = Reinicia el juego para que los cambios en el idioma tengan efecto. language.restart = Reinicia el juego para que los cambios en el idioma tengan efecto.
@@ -565,6 +586,7 @@ sector.attacked = Sector [accent]{0}[white] bajo ataque[]!
sector.lost = ¡Sector [accent]{0}[white] perdido[]! sector.lost = ¡Sector [accent]{0}[white] perdido[]!
#nota: el espacio en blanco en la línea siguiente es intencionado #nota: el espacio en blanco en la línea siguiente es intencionado
sector.captured = ¡Sector [accent]{0}[white] capturado[]! sector.captured = ¡Sector [accent]{0}[white] capturado[]!
sector.changeicon = Cambiar Icono
threat.low = Baja threat.low = Baja
threat.medium = Media threat.medium = Media
@@ -611,6 +633,20 @@ sector.extractionOutpost.description = Una base remota, construida por el enemig
sector.impact0078.description = Aquí yacen las ruinas de la primera estación de transporte interestelar en estar operativa del sistema.\n\nRecupera todo lo posible de los escombros. Investiga cualquier tecnología intacta. sector.impact0078.description = Aquí yacen las ruinas de la primera estación de transporte interestelar en estar operativa del sistema.\n\nRecupera todo lo posible de los escombros. Investiga cualquier tecnología intacta.
sector.planetaryTerminal.description = El objetivo final.\n\nÉsta base costera alberga una estructura capaz de lanzar Núcleos a planeteas locales. Está extremadamente bien protegida.\n\nProduce unidades navales. Acaba con el enemigo lo antes posible. Analiza la estructura de lanzamiento. sector.planetaryTerminal.description = El objetivo final.\n\nÉsta base costera alberga una estructura capaz de lanzar Núcleos a planeteas locales. Está extremadamente bien protegida.\n\nProduce unidades navales. Acaba con el enemigo lo antes posible. Analiza la estructura de lanzamiento.
status.burning.name = En llamas
status.freezing.name = Congelado
status.wet.name = Húmedo
status.muddy.name = Fangoso
status.melting.name = Fundido
status.sapped.name = Debilitado
status.electrified.name = Electrificado
status.spore-slowed.name = Ralentizado
status.tarred.name = Alquitranado
status.overclock.name = Sobrecargado
status.shocked.name = Aturdido
status.blasted.name = Explotado
status.unmoving.name = Inmóvil
settings.language = Idioma settings.language = Idioma
settings.data = Datos del Juego settings.data = Datos del Juego
settings.reset = Reiniciar a los valores por defecto settings.reset = Reiniciar a los valores por defecto
@@ -632,6 +668,7 @@ settings.clearcampaignsaves.confirm = ¿Quieres borrar tus partidas guardadas en
paused = [accent] < Pausado > paused = [accent] < Pausado >
clear = Vaciar clear = Vaciar
banned = [scarlet]Baneado banned = [scarlet]Baneado
unsupported.environment = [scarlet]Entorno no válido
yes = yes =
no = No no = No
info.title = Información info.title = Información
@@ -641,12 +678,14 @@ unit.nobuild = [scarlet]Esta unidad no puede construir
lastaccessed = [lightgray]Último usado: {0} lastaccessed = [lightgray]Último usado: {0}
block.unknown = [lightgray]??? block.unknown = [lightgray]???
stat.showinmap = <cargar mapa para mostrar>
stat.description = Objetivo stat.description = Objetivo
stat.input = Entrada stat.input = Entrada
stat.output = Salida stat.output = Salida
stat.booster = Potenciador stat.booster = Potenciador
stat.tiles = Terreno requerido stat.tiles = Terreno requerido
stat.affinities = Afinidades stat.affinities = Afinidades
stat.opposites = Opuestos
stat.powercapacity = Capacidad de Energía stat.powercapacity = Capacidad de Energía
stat.powershot = Energía/Disparo stat.powershot = Energía/Disparo
stat.damage = Daño stat.damage = Daño
@@ -669,6 +708,7 @@ stat.memorycapacity = Capacidad de memoria
stat.basepowergeneration = Generación de energía stat.basepowergeneration = Generación de energía
stat.productiontime = Tiempo de producción stat.productiontime = Tiempo de producción
stat.repairtime = Tiempo para Reparar Bloque Completamente stat.repairtime = Tiempo para Reparar Bloque Completamente
stat.repairspeed = Velocidad de Reparación
stat.weapons = Armas stat.weapons = Armas
stat.bullet = Proyectil stat.bullet = Proyectil
stat.speedincrease = Aumento de Velocidad stat.speedincrease = Aumento de Velocidad
@@ -705,15 +745,24 @@ stat.minetier = Nivel de taladro
stat.payloadcapacity = Capacidad de carga stat.payloadcapacity = Capacidad de carga
stat.commandlimit = Límite de comando stat.commandlimit = Límite de comando
stat.abilities = Habilidades stat.abilities = Habilidades
stat.canboost = Tiene Propulsores stat.canboost = Potenciador
stat.flying = Aéreo stat.flying = Aéreo
stat.ammouse = Usa Munición
stat.damagemultiplier = Multiplicador de Daño
stat.healthmultiplier = Multiplicador de Vida
stat.speedmultiplier = Multiplicador de Velocidad
stat.reloadmultiplier = Multiplicador de Recarga
stat.buildspeedmultiplier = Multiplicador de Velocidad de Construcción
stat.reactive = Reacciona
stat.healing = Sanador
ability.forcefield = Campo de Fuerza ability.forcefield = Campo de Escudo
ability.repairfield = Campo de Reparación ability.repairfield = Campo de Reparación
ability.statusfield = Campo de Estado ability.statusfield = {0} Campo de aceleración
ability.unitspawn = {0} Fábrica de Drones ability.unitspawn = {0} Fábrica
ability.shieldregenfield = Campo de Regeneración de Escudos ability.shieldregenfield = Regeneración de Armaduras
ability.movelightning = Movimiento Relámpago ability.movelightning = Movimiento Relámpago
ability.energyfield = Campo de Energía: [accent]{0}[] daño ~ [accent]{1}[] bloques / [accent]{2}[] objetivos
bar.drilltierreq = Requiere un taladro mejor bar.drilltierreq = Requiere un taladro mejor
bar.noresources = Recursos insuficientes bar.noresources = Recursos insuficientes
@@ -736,29 +785,28 @@ bar.power = Energía
bar.progress = Progreso de construcción bar.progress = Progreso de construcción
bar.input = Entrada bar.input = Entrada
bar.output = Salida bar.output = Salida
bar.strength = [stat]{0}[lightgray]x fuerza
units.processorcontrol = [lightgray]Controlado por Procesador units.processorcontrol = [lightgray]Controlado por Procesador
bullet.damage = [stat]{0}[lightgray] Daño bullet.damage = [stat]{0}[lightgray] Daño
bullet.splashdamage = [stat]{0}[lightgray] daño de área ~[stat] {1}[lightgray] casillas bullet.splashdamage = [stat]{0}[lightgray] área daño ~[stat] {1}[lightgray] bloques
bullet.incendiary = [stat]Incendiaria bullet.incendiary = [stat]Incendiaria
bullet.sapping = [stat]Oxidante
bullet.homing = [stat]Rastreadora bullet.homing = [stat]Rastreadora
bullet.shock = [stat]Electrizante
bullet.frag = [stat]De fragmentación bullet.frag = [stat]De fragmentación
bullet.buildingdamage = [stat]{0}%[lightgray]daño a estructuras bullet.lightning = [stat]{0}[lightgray]x rayo ~ [stat]{1}[lightgray] daño
bullet.knockback = [stat]{0}[lightgray] Empuje bullet.buildingdamage = [stat]{0}%[lightgray] daño a estructuras
bullet.pierce = [stat]{0}[lightgray]x penetración bullet.knockback = [stat]{0}[lightgray] empuje
bullet.infinitepierce = [stat]Penetrante bullet.pierce = [stat]{0}[lightgray]x perforación
bullet.infinitepierce = [stat]Perforante
bullet.healpercent = [stat]{0}[lightgray]% reparación bullet.healpercent = [stat]{0}[lightgray]% reparación
bullet.freezing = [stat]Congelación
bullet.tarred = [stat]Ralentizado
bullet.multiplier = [stat]{0}[lightgray]x multiplicador de munición bullet.multiplier = [stat]{0}[lightgray]x multiplicador de munición
bullet.reload = [stat]{0}[lightgray]x cadencia de fuego bullet.reload = [stat]{0}[lightgray]x cadencia de fuego
unit.blocks = bloques unit.blocks = bloques
unit.blockssquared = bloques² unit.blockssquared = bloques²
unit.powersecond = unidades de energía/segundo unit.powersecond = unidades de energía/segundo
unit.tilessecond = bloques/segundo
unit.liquidsecond = unidades de líquido/segundo unit.liquidsecond = unidades de líquido/segundo
unit.itemssecond = objetos/segundo unit.itemssecond = objetos/segundo
unit.liquidunits = unidades de líquido unit.liquidunits = unidades de líquido
@@ -775,6 +823,7 @@ unit.items = objetos
unit.thousands = k unit.thousands = k
unit.millions = M unit.millions = M
unit.billions = b unit.billions = b
unit.pershot = /disparo
category.purpose = Objetivo category.purpose = Objetivo
category.general = General category.general = General
category.power = Energía category.power = Energía
@@ -788,10 +837,13 @@ setting.shadows.name = Sombras
setting.blockreplace.name = Sugerir bloques al construir setting.blockreplace.name = Sugerir bloques al construir
setting.linear.name = Filtrado Lineal setting.linear.name = Filtrado Lineal
setting.hints.name = Consejos setting.hints.name = Consejos
setting.logichints.name = Consejos sobre "Bloques Lógicos"
setting.flow.name = Mostrar tasa de flujo de recursos setting.flow.name = Mostrar tasa de flujo de recursos
setting.backgroundpause.name = Pausar en segundo plano setting.backgroundpause.name = Pausar en segundo plano
setting.buildautopause.name = Auto-pausar construcción setting.buildautopause.name = Auto-pausar construcción
setting.animatedwater.name = Animaciones de Terreno setting.doubletapmine.name = Doble-Click para Extraer minerales
setting.modcrashdisable.name = Desactivar Mods si se cuelga el juego
setting.animatedwater.name = Animación de Terreno
setting.animatedshields.name = Animación de Escudos setting.animatedshields.name = Animación de Escudos
setting.antialias.name = Antialias[lightgray] (necesita un reinicio)[] setting.antialias.name = Antialias[lightgray] (necesita un reinicio)[]
setting.playerindicators.name = Indicadores de Jugadores setting.playerindicators.name = Indicadores de Jugadores
@@ -844,6 +896,7 @@ setting.bridgeopacity.name = Opacidad de Puentes Transportadores
setting.playerchat.name = Mostrar el chat de burbuja setting.playerchat.name = Mostrar el chat de burbuja
setting.showweather.name = Efectos visuales climáticos setting.showweather.name = Efectos visuales climáticos
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". 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".
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?
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 la 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 la 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
@@ -908,7 +961,8 @@ keybind.pause.name = Pausa
keybind.pause_building.name = Pausar/Reanudar construcción keybind.pause_building.name = Pausar/Reanudar construcción
keybind.minimap.name = Minimapa keybind.minimap.name = Minimapa
keybind.planet_map.name = Mapa del Planeta keybind.planet_map.name = Mapa del Planeta
keybind.research.name = Investigaciones keybind.research.name = Investigar
keybind.block_info.name = Información del Bloque
keybind.chat.name = Chat keybind.chat.name = Chat
keybind.player_list.name = Lista de jugadores keybind.player_list.name = Lista de jugadores
keybind.console.name = Consola keybind.console.name = Consola
@@ -935,18 +989,23 @@ mode.custom = Normas personalizadas
rules.infiniteresources = Recursos infinitos rules.infiniteresources = Recursos infinitos
rules.reactorexplosions = Los reactores pueden explotar rules.reactorexplosions = Los reactores pueden explotar
rules.coreincinerates = Núcleos inceran exceso de recursos
rules.schematic = Permitir Plantillas rules.schematic = Permitir Plantillas
rules.wavetimer = Temporizador de Oleadas rules.wavetimer = Temporizador de Oleadas
rules.waves = Oleadas rules.waves = Oleadas
rules.attack = Ataque rules.attack = Asalto
rules.buildai = La IA enemiga puede construir rules.buildai = Contrucción de IA
rules.enemyCheat = La IA enemiga tiene recursos infinitos rules.corecapture = Capturar Núcleo al Destruirlo
rules.blockhealthmultiplier = Multiplicador de salud de bloque rules.polygoncoreprotection = Protección de Núcleo Poligonal
rules.blockdamagemultiplier = Multiplicador de daño de bloque rules.enemyCheat = La IA (Equipo Rojo) tiene recursos infinitos
rules.blockhealthmultiplier = Multiplicador de Salud de Bloque
rules.blockdamagemultiplier = Multiplicador de Daño de Bloque
rules.unitbuildspeedmultiplier = Multiplicador de velocidad de creación de unidades rules.unitbuildspeedmultiplier = Multiplicador de velocidad de creación de unidades
rules.unithealthmultiplier = Multiplicador de la vida de las unidades rules.unithealthmultiplier = Multiplicador de Vida de Unidades
rules.unitdamagemultiplier = Multiplicador del daño de unidades rules.unitdamagemultiplier = Multiplicador de Daño de Unidades
rules.enemycorebuildradius = Radio de No-Construcción del Núcleo Enemigo:[lightgray] (casillas) rules.unitcapvariable = Núcleos alteran el Límite de Unidades
rules.unitcap = Límite Base de Unidades
rules.enemycorebuildradius = Radio de No-Construcción del Núcleo Enemigo:[lightgray] (bloques)
rules.wavespacing = Tiempo entre oleadas:[lightgray] (seg) rules.wavespacing = Tiempo entre oleadas:[lightgray] (seg)
rules.buildcostmultiplier = Multiplicador de coste de construcción rules.buildcostmultiplier = Multiplicador de coste de construcción
rules.buildspeedmultiplier = Multiplicador de velocidad de construcción rules.buildspeedmultiplier = Multiplicador de velocidad de construcción
@@ -967,12 +1026,14 @@ rules.explosions = Daño de explosiones de Bloques/Unidades
rules.ambientlight = Iluminación ambiental rules.ambientlight = Iluminación ambiental
rules.weather = Clima rules.weather = Clima
rules.weather.frequency = Frequencia: rules.weather.frequency = Frequencia:
rules.weather.always = Siempre
rules.weather.duration = Duracion: rules.weather.duration = Duracion:
content.item.name = Objetos content.item.name = Objetos
content.liquid.name = Líquidos content.liquid.name = Líquidos
content.unit.name = Unidades content.unit.name = Unidades
content.block.name = Bloques content.block.name = Bloques
content.status.name = Alteraciones de Estado
content.sector.name = Sectores content.sector.name = Sectores
item.copper.name = Cobre item.copper.name = Cobre
@@ -983,7 +1044,7 @@ item.titanium.name = Titanio
item.thorium.name = Torio item.thorium.name = Torio
item.silicon.name = Silicio item.silicon.name = Silicio
item.plastanium.name = Plastanio item.plastanium.name = Plastanio
item.phase-fabric.name = Tejido de fase item.phase-fabric.name = Tejido de Fase
item.surge-alloy.name = Aleación Eléctrica item.surge-alloy.name = Aleación Eléctrica
item.spore-pod.name = Vaina de Esporas item.spore-pod.name = Vaina de Esporas
item.sand.name = Arena item.sand.name = Arena
@@ -991,11 +1052,12 @@ item.blast-compound.name = Compuesto Explosivo
item.pyratite.name = Pirotita item.pyratite.name = Pirotita
item.metaglass.name = Metacristal item.metaglass.name = Metacristal
item.scrap.name = Chatarra item.scrap.name = Chatarra
liquid.water.name = Agua liquid.water.name = Agua
liquid.slag.name = Magma liquid.slag.name = Magma
liquid.oil.name = Petróleo liquid.oil.name = Petróleo
liquid.cryofluid.name = Líquido criogénico liquid.cryofluid.name = Líquido criogénico
#Names of Units and Turrets look better untranslated, since they are propper/own names #Names of Units and Turrets looks better untranslated, since they are propper/own names
unit.dagger.name = Dagger unit.dagger.name = Dagger
unit.mace.name = Mace unit.mace.name = Mace
unit.fortress.name = Fortress unit.fortress.name = Fortress
@@ -1022,6 +1084,11 @@ unit.minke.name = Minke
unit.bryde.name = Bryde unit.bryde.name = Bryde
unit.sei.name = Sei unit.sei.name = Sei
unit.omura.name = Omura unit.omura.name = Omura
unit.retusa.name = Retusa
unit.oxynoe.name = Oxynoe
unit.cyerce.name = Cyerce
unit.aegires.name = Aegires
unit.navanax.name = Navanax
unit.alpha.name = Alpha unit.alpha.name = Alpha
unit.beta.name = Beta unit.beta.name = Beta
unit.gamma.name = Gamma unit.gamma.name = Gamma
@@ -1082,23 +1149,25 @@ block.sand-water.name = Agua con arena
block.darksand-water.name = Agua con arena oscura block.darksand-water.name = Agua con arena oscura
block.char.name = Cenizas block.char.name = Cenizas
block.dacite.name = Dacita block.dacite.name = Dacita
block.dacite-wall.name = Bloque de dacita block.rhyolite.name = Riolita
block.dacite-boulder.name = Roca de dacita block.dacite-wall.name = Bloque de Dacita
block.dacite-boulder.name = Roca de Dacita
block.ice-snow.name = Hielo-Nieve block.ice-snow.name = Hielo-Nieve
block.stone-wall.name = Bloque de piedra block.stone-wall.name = Bloque de Piedra
block.ice-wall.name = Bloque de hielo block.ice-wall.name = Bloque de Hielo
block.snow-wall.name = Bloque de nieve block.snow-wall.name = Bloque de Nieve
block.dune-wall.name = Bloque de arena block.dune-wall.name = Bloque de Arena
block.pine.name = Pino block.pine.name = Pino
block.dirt.name = Tierra block.dirt.name = Tierra
block.dirt-wall.name = Bloque de tierra block.dirt-wall.name = Bloque de tierra
block.mud.name = Lodo block.mud.name = Lodo
block.white-tree-dead.name = Árbol Blanco Muerto block.white-tree-dead.name = Árbol Blanco Muerto
block.white-tree.name = Árbol Blanco block.white-tree.name = Árbol Blanco
block.spore-cluster.name = Concentración de Esporas block.spore-cluster.name = Esporas
block.metal-floor.name = Suelo de Metal block.metal-floor.name = Suelo de Metal 1
block.metal-floor-2.name = Suelo de Metal 2 block.metal-floor-2.name = Suelo de Metal 2
block.metal-floor-3.name = Suelo de Metal 3 block.metal-floor-3.name = Suelo de Metal 3
block.metal-floor-4.name = Suelo de Metal 4
block.metal-floor-5.name = Suelo de Metal 5 block.metal-floor-5.name = Suelo de Metal 5
block.metal-floor-damaged.name = Suelo de Metal dañado block.metal-floor-damaged.name = Suelo de Metal dañado
block.dark-panel-1.name = Panel Oscuro 1 block.dark-panel-1.name = Panel Oscuro 1
@@ -1189,6 +1258,7 @@ block.solar-panel.name = Panel Solar
block.solar-panel-large.name = Panel Solar Grande block.solar-panel-large.name = Panel Solar Grande
block.oil-extractor.name = Extractor de Petróleo block.oil-extractor.name = Extractor de Petróleo
block.repair-point.name = Punto de Reparación de Unidades block.repair-point.name = Punto de Reparación de Unidades
block.repair-turret.name = Torreta Reparadora
block.pulse-conduit.name = Conducto de Pulso block.pulse-conduit.name = Conducto de Pulso
block.plated-conduit.name = Conducto Acorazado block.plated-conduit.name = Conducto Acorazado
block.phase-conduit.name = Conducto de Fase block.phase-conduit.name = Conducto de Fase
@@ -1221,16 +1291,22 @@ block.container.name = Contenedor
block.launch-pad.name = Plataforma de Lanzamiento block.launch-pad.name = Plataforma de Lanzamiento
block.launch-pad-large.name = Plataforma de Lanzamiento Grande block.launch-pad-large.name = Plataforma de Lanzamiento Grande
block.segment.name = Segment block.segment.name = Segment
block.command-center.name = Centro de comando block.command-center.name = Centro de Comando
block.ground-factory.name = Fábrica terrestre block.ground-factory.name = Fábrica Terrestre
block.air-factory.name = Fábrica aérea block.air-factory.name = Fábrica Aérea
block.naval-factory.name = Fábrica naval block.naval-factory.name = Fábrica naval
block.additive-reconstructor.name = Reconstructor aditivo block.additive-reconstructor.name = Reconstructor Aditivo
block.multiplicative-reconstructor.name = Reconstructor multiplicativo block.multiplicative-reconstructor.name = Reconstructor Multiplicativo
block.exponential-reconstructor.name = Reconstructor exponencial block.exponential-reconstructor.name = Reconstructor Exponencial
block.tetrative-reconstructor.name = Reconstructor tetrativo block.tetrative-reconstructor.name = Reconstructor Tetrativo
block.payload-conveyor.name = Transportador de carga block.payload-conveyor.name = Cinta Transportadora de Carga
block.payload-router.name = Enrutador de carga block.payload-router.name = Enrutador de Carga
block.duct.name = Túnel
block.duct-router.name = Túnel Enrutador
block.duct-bridge.name = Túnel Puente
block.payload-propulsion-tower.name = Torre de Propulsión de Bloques
block.payload-void.name = Vacío de Bloques
block.payload-source.name = Fuente de Bloques
block.disassembler.name = Desensamblador block.disassembler.name = Desensamblador
block.silicon-crucible.name = Crisol de silicio block.silicon-crucible.name = Crisol de silicio
block.overdrive-dome.name = Campo de Aceleración block.overdrive-dome.name = Campo de Aceleración
@@ -1252,7 +1328,6 @@ block.memory-bank.name = Servidor de memoria
team.blue.name = azul team.blue.name = azul
team.crux.name = crux team.crux.name = crux
team.sharded.name = sharded team.sharded.name = sharded
team.orange.name = naranja
team.derelict.name = delerict team.derelict.name = delerict
team.green.name = verde team.green.name = verde
team.purple.name = morado team.purple.name = morado
@@ -1273,6 +1348,7 @@ hint.placeConveyor.mobile = Las cintas transportadoras pueden mover objetos de l
hint.placeTurret = Construye \uf861 [accent]Torretas[] para defender tu base de los enemigos.\n\nLas torretas necesitan munición - en este caso, \uf838cobre.\nUsa cintas transportadoras y taladros para abastecerlas con cobre. hint.placeTurret = Construye \uf861 [accent]Torretas[] para defender tu base de los enemigos.\n\nLas torretas necesitan munición - en este caso, \uf838cobre.\nUsa cintas transportadoras y taladros para abastecerlas con cobre.
hint.breaking = Pulsa [accent]Clic-derecho[] y arrastra para destruir bloques. hint.breaking = Pulsa [accent]Clic-derecho[] y arrastra para destruir bloques.
hint.breaking.mobile = Activa el botón con el \ue817 [accent]martillo[] situado abajo a la derecha y selecciona bloques para eliminarlos.\n\nMantén el dedo un segundo y arrastra para eliminar bloques directamente en esa selección. hint.breaking.mobile = Activa el botón con el \ue817 [accent]martillo[] situado abajo a la derecha y selecciona bloques para eliminarlos.\n\nMantén el dedo un segundo y arrastra para eliminar bloques directamente en esa selección.
hint.blockInfo = Puedes visualizar información de un bloque seleccionándolo en el [accent]menú de construcción[], mediante el botón [accent][[?][] en la derecha.
hint.research = Usa el botón \ue875 [accent]Investigación[] para acceder al menú de descubrimientos tecnológicos. hint.research = Usa el botón \ue875 [accent]Investigación[] para acceder al menú de descubrimientos tecnológicos.
hint.research.mobile = Usa el botón \ue875 [accent]Investigación[] para acceder al menú de descubrimientos tecnológicos. hint.research.mobile = Usa el botón \ue875 [accent]Investigación[] para acceder al menú de descubrimientos tecnológicos.
hint.unitControl = Mantén [accent][[L-ctrl][] y [accent]haz clic[] sobre unidades o torretas aliadas para controlarlas manualmente. hint.unitControl = Mantén [accent][[L-ctrl][] y [accent]haz clic[] sobre unidades o torretas aliadas para controlarlas manualmente.
@@ -1319,7 +1395,7 @@ item.spore-pod.details = Esporas. Es algo parecido a una forma de vida sintétic
item.blast-compound.description = Usado en bombas y munición explosiva. item.blast-compound.description = Usado en bombas y munición explosiva.
item.pyratite.description = Usado en armas incendiarias y generadores de combustión. item.pyratite.description = Usado en armas incendiarias y generadores de combustión.
liquid.water.description = Usada comúnmente para enfriar máquinas y para procesar residuos. liquid.water.description = Usada para enfriar máquinas y para procesar residuos.
liquid.slag.description = Diferentes tipos de metales fundidos mezclados. Puede ser separado en sus minerales constituyentes, o disparado a unidades enemigas como arma. liquid.slag.description = Diferentes tipos de metales fundidos mezclados. Puede ser separado en sus minerales constituyentes, o disparado a unidades enemigas como arma.
liquid.oil.description = Se utiliza en producción de materiales avanzados, y en munición incendiaria. liquid.oil.description = Se utiliza en producción de materiales avanzados, y en munición incendiaria.
liquid.cryofluid.description = Usado como refrigerante para reactores, torretas, y fábricas. liquid.cryofluid.description = Usado como refrigerante para reactores, torretas, y fábricas.
@@ -1502,3 +1578,155 @@ unit.omura.description = Dispara rayos contínuos perforantes. Construye unidade
unit.alpha.description = Defiende el núcleo Shard de los enemigos. Construye estructuras. unit.alpha.description = Defiende el núcleo Shard de los enemigos. Construye estructuras.
unit.beta.description = Defiende el núcleo Foundation de los enemigos. Construye estructuras. unit.beta.description = Defiende el núcleo Foundation de los enemigos. Construye estructuras.
unit.gamma.description = Defiende el núcleo Nucleus de los enemigos. Construye estructuras. unit.gamma.description = Defiende el núcleo Nucleus de los enemigos. Construye estructuras.
lst.read = Lee un número desde una unidad de memoria conectada.
lst.write = Escribe un número en una unidad de memoria conectada.
lst.print = Añade texto a la cola para impresión.\nNo mostrará nada hasta que se use [accent]Ejecutar Imprimir[].
lst.draw = Añade una operación a la cola de gráfico.\nNo mostrará nada hasta que se use [accent]Ejecutar Gráfico[].
lst.drawflush = Ejecución en cola de operaciones [accent]Gráfico[] a un monitor gráfico.
lst.printflush = Ejecución en cola de operaciones [accent]Imprimir[] a un bloque de mensaje.
lst.getlink = Obtiene el número de enlace de procesador. Inicia en 0.
lst.control = Controla el estado de un bloque.
lst.radar = Localiza unidades alrededor de un bloque con rango.
lst.sensor = Recopila datos de un bloque o unidad.
lst.set = Establece una variable.
lst.operation = Realiza una operación sobre 1-2 variables.
lst.end = Salta al inicio de la lista de instrucciones.
lst.wait = Espera unos segundos.
lst.lookup = Busca un objeto/líquido/unidad/tipo de bloque por ID.\nSe puede acceder al número total de cada tipo con:\n[accent]@unitCount[] / [accent]@itemCount[] / [accent]@liquidCount[] / [accent]@blockCount[]
lst.jump = Salta a otra instrucción.
lst.unitbind = Se enlaza a la siguiente unidad de un tipo, y la almacena en [accent]@unit[].
lst.unitcontrol = Controla la unidad actualmente enlazada.
lst.unitradar = Localiza unidades alrededor de la unidad actualmente enlazada.
lst.unitlocate = Localiza un tipo específico de posición/bloque en cualquier lugar del mapa.\nRequiere una unidad enlazada.
logic.nounitbuild = [red]No se permite la construcción de bloques de categoría lógica.
lenum.type = El tipo de bloque/unidad\nEjemplo: "para cualquier enrutador", devolverá [accent]@router[].\nNo es una cadena de texto.
lenum.shoot = Dispara a una posición.
lenum.shootp = Dispara a una unidad/bloque con predicción de velocidad.
lenum.config = Configuración de bloque, por ejemplo: clasificador.
lenum.enabled = Si el bloque está activado o no.
laccess.color = Color del iluminador.
laccess.controller = Controlador de unidad. Si se controla mediante un procesador, devuelve dicho procesador.\nSi está en formación, devuelve su líder.\nDe otra forma, devuelve la misma unidad.
laccess.dead = Si una unidad/bloque es destruída o inválida.
laccess.controlled = Devuelve:\n[accent]@ctrlProcessor[] si el control de la unidad lo tiene un procesador\n[accent]@ctrlPlayer[] si el control de la unidad/bloque lo tiene un jugador\n[accent]@ctrlFormation[] si la unidad está en formación\nDe otra forma, devuelve 0.
laccess.commanded = [red]En desuso. ¡Será eliminado![]\nUsa [accent]controlado[] en su lugar.
laccess.progress = Progreso de una acción, 0 a 1.\nDevuelve de una producción, recarga de una torreta o progreso de una construcción.
graphicstype.clear = Llena el monitor con un color.
graphicstype.color = Establece el color para próximas operaciones de gráficos.
graphicstype.stroke = Establece el ancho de la línea.
graphicstype.line = Segmento de la línea del gráfico.
graphicstype.rect = Rellena un rectángulo.
graphicstype.linerect = Dibuja las aristas de un rectángulo.
graphicstype.poly = Rellena un polígono regular.
graphicstype.linepoly = Dibuja las aristas de un polígono regular.
graphicstype.triangle = Rellena un triángulo.
graphicstype.image = Dibuja una imágen de un contenido.\nEjemplo: [accent]@router[] o [accent]@dagger[].
lenum.always = Siempre "true".
lenum.idiv = División de un número entero.
lenum.div = División.\nDevuelve [accent]null[] al dividir entre cero.
lenum.mod = Modulo.
lenum.equal = Igual. Coacciona tipos.\nObjetos no-nulos coaccionados con números pasan a 1, si no coinciden pasan a 0.
lenum.notequal = No igual. Coacciona tipos.
lenum.strictequal = Igualdad estricta. No coacciona tipos.\nSe puede usar para comprobar si un resultado es [accent]null[].
lenum.shl = Cambia bits a izquierda.
lenum.shr = Cambia bits a derecha.
lenum.or = Comprobación bit a bit OR.
lenum.land = Comprobación lógica AND.
lenum.and = Comprobación bit a bit AND.
lenum.not = Comprobación bit a bit invertida.
lenum.xor = Comprobación bit a bit XOR.
lenum.min = Mínimo de dos números.
lenum.max = Máximo de dos números.
lenum.angle = Ángulo del vector en grados.
lenum.len = Longitud del vector.
lenum.sin = Seno, en grados.
lenum.cos = Coseno, en grados.
lenum.tan = Tangente, en grados.
lenum.asin = Arco seno, en grados.
lenum.acos = Arco coseno, en grados.
lenum.atan = Arco tangente, en grados.
#not a typo, look up 'range notation'
lenum.rand = Número decimal aleatorio en un rango [0, valor).
lenum.log = Logaritmo natural (ln).
lenum.log10 = Logaritmo en base 10.
lenum.noise = Ruido simplex 2D.
lenum.abs = Valor absoluto.
lenum.sqrt = Raíz cuadrada.
lenum.any = Cualquier unidad.
lenum.ally = Unidad aliada.
lenum.attacker = Unidad con un arma.
lenum.enemy = Unidad enemiga.
lenum.boss = Unidad guardián (Jefe).
lenum.flying = Unidad aérea.
lenum.ground = Unidad terrestre.
lenum.player = Unidad controlada por un jugador.
lenum.ore = Depósito mineral.
lenum.damaged = Bloque aliado dañado.
lenum.spawn = Punto de aterrizaje enemigo.\nPuede ser un núcleo o una posición.
lenum.building = Un bloque de una categoría específica.
lenum.core = Cualquier núcleo.
lenum.storage = Bloque de almacenamiento, ejemplo: Contenedor.
lenum.generator = Bloques que generan energía.
lenum.factory = Bloques que transforman recursos.
lenum.repair = Puntos de reparación.
lenum.rally = Centro de comando.
lenum.battery = Cualquier batería.
lenum.resupply = Puntos de reabastecimiento.\nSólo es relevante cuando [accent]"Unidades necesitan munición"[] está activada.
lenum.reactor = Reactor de Impacto/Torio.
lenum.turret = Cualquier torreta.
sensor.in = El bloque/unidad a detectar.
radar.from = Bloque del que detectar.\nEl rango del sensor está limitado por el rango de dicha construcción.
radar.target = Filtro de unidades a detectar.
radar.and = Filtros adicionales.
radar.order = Orden para ordenar. 0 para invertir.
radar.sort = Métrica a usar al ordenar resultados.
radar.output = Variable en la que escribir la salida de una unidad.
unitradar.target = Filtro para detectar unidades.
unitradar.and = Filtros adicionales.
unitradar.order = Orden para ordenar. 0 para invertir.
unitradar.sort = Métrica a usar al ordenar resultados.
unitradar.output = Variable en la que escribir la salida de una unidad.
control.of = Bloque a controlar.
control.unit = Unidad/bloque al que apuntar.
control.shoot = Cuándo disparar.
unitlocate.enemy = Cuándo localizar construcciones enemigas.
unitlocate.found = Cuándo el objeto es encontrado.
unitlocate.building = Variable de salida para contrucciones localizadas.
unitlocate.outx = Coordenada X devuelta.
unitlocate.outy = Coordenada Y devuelta.
unitlocate.group = Grupo de bloque a buscar.
lenum.idle = No se mueve, pero seguirá construyendo/extrayendo minerales.\nEs el estado por defecto.
lenum.stop = Deja de moverse/extraer minerales/contruir.
lenum.move = Moverse a una posición exacta.
lenum.approach = Aproximarse a una posición con un radio.
lenum.pathfind = Establece una ruta hasta el punto de aterrizaje enemigo.
lenum.target = Dispara a una posición.
lenum.targetp = Dispara a un objetivo con predicción de velocidad.
lenum.itemdrop = Suelta un objeto.
lenum.itemtake = Recoge un objeto de una construcción.
lenum.paydrop = Suelta la carga actual.
lenum.paytake = Recoge bloques o unidades en la posición actual como carga a trasnportar.
lenum.flag = Etiqueta numérica de la unidad.
lenum.mine = Extrae minerales de una posición.
lenum.build = Construye una estructura.
lenum.getblock = Obtiene la construcción y su categoría en unas coordenadas específicas.\nLa unidad debe estar en el rango de su posición.\nLos bloques no-construcciones tendrán el tipo [accent]@solid[].
lenum.within = Comprueba si una unidad se encuentra cerca de una posición.
lenum.boost = Inicia/Detiene potenciación.

View File

@@ -101,6 +101,7 @@ customgame = Partie personnalisée
newgame = Nouvelle partie newgame = Nouvelle partie
none = <Vide> none = <Vide>
none.found = [lightgray]<Introuvable> none.found = [lightgray]<Introuvable>
none.inmap = [lightgray]<Introuvable dans la carte>
minimap = Mini-carte minimap = Mini-carte
position = Position position = Position
close = Fermer close = Fermer
@@ -214,6 +215,7 @@ hosts.none = [lightgray]Aucune partie en LAN trouvée !
host.invalid = [scarlet]Impossible de se connecter à l'hôte. host.invalid = [scarlet]Impossible de se connecter à l'hôte.
servers.local = Serveurs locaux servers.local = Serveurs locaux
servers.local.steam = Open Games & Serveurs Locaux
servers.remote = Serveurs distants servers.remote = Serveurs distants
servers.global = Serveurs communautaires servers.global = Serveurs communautaires
@@ -725,7 +727,7 @@ stat.maxconsecutive = Max Consécutif
stat.buildcost = Coût de construction stat.buildcost = Coût de construction
stat.inaccuracy = Précision stat.inaccuracy = Précision
stat.shots = Tirs stat.shots = Tirs
stat.reload = Tirs/Seconde stat.reload = Cadence de tir
stat.ammo = Munitions stat.ammo = Munitions
stat.shieldhealth = Santé du bouclier stat.shieldhealth = Santé du bouclier
stat.cooldowntime = Temps de refroidissement stat.cooldowntime = Temps de refroidissement
@@ -794,7 +796,8 @@ bullet.damage = [stat]{0}[lightgray] dégâts
bullet.splashdamage = [stat]{0}[lightgray] dégâts de zone ~[stat] {1}[lightgray] blocs bullet.splashdamage = [stat]{0}[lightgray] dégâts de zone ~[stat] {1}[lightgray] blocs
bullet.incendiary = [stat]incendiaire bullet.incendiary = [stat]incendiaire
bullet.homing = [stat]autoguidé bullet.homing = [stat]autoguidé
bullet.frag = [stat]fragmentation bullet.fragbullets = [stat]{0}[lightgray]x balles à fragmentation
bullet.frag.stats = [stat]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
bullet.knockback = [stat]{0}[lightgray] recul bullet.knockback = [stat]{0}[lightgray] recul
@@ -807,6 +810,7 @@ bullet.reload = [stat]{0}[lightgray]x vitesse de tir
unit.blocks = blocs unit.blocks = blocs
unit.blockssquared = blocs² unit.blockssquared = blocs²
unit.powersecond = unités d'énergie/seconde unit.powersecond = unités d'énergie/seconde
unit.tilessecond = tuiles/seconde
unit.liquidsecond = unités de liquide/seconde unit.liquidsecond = unités de liquide/seconde
unit.itemssecond = objets/seconde unit.itemssecond = objets/seconde
unit.liquidunits = unités de liquide unit.liquidunits = unités de liquide
@@ -840,14 +844,12 @@ setting.blockreplace.name = Suggestion automatique des Blocs
setting.linear.name = Filtrage linéaire setting.linear.name = Filtrage linéaire
setting.hints.name = Astuces setting.hints.name = Astuces
setting.logichints.name = Astuces pour les commandes des processeurs setting.logichints.name = Astuces pour les commandes des processeurs
setting.flow.name = Afficher le Débit des ressources
setting.backgroundpause.name = Pause en Arrière-plan setting.backgroundpause.name = Pause en Arrière-plan
setting.buildautopause.name = Confirmation avant construction setting.buildautopause.name = Confirmation avant construction
setting.doubletapmine.name = Double-clic pour Miner setting.doubletapmine.name = Double-clic pour Miner
setting.modcrashdisable.name = Désactiver les mods lors d'un crash au démarrage setting.modcrashdisable.name = Désactiver les mods lors d'un crash au démarrage
setting.animatedwater.name = Surfaces Animées setting.animatedwater.name = Surfaces Animées
setting.animatedshields.name = Boucliers Animés setting.animatedshields.name = Boucliers Animés
setting.antialias.name = Anticrénelage[lightgray] (redémarrage du jeu nécessaire)[]
setting.playerindicators.name = Indicateurs alliés setting.playerindicators.name = Indicateurs alliés
setting.indicators.name = Indicateurs ennemis setting.indicators.name = Indicateurs ennemis
setting.autotarget.name = Visée automatique setting.autotarget.name = Visée automatique
@@ -856,7 +858,8 @@ setting.touchscreen.name = Commandes d'écran tactile
setting.fpscap.name = Max FPS setting.fpscap.name = Max FPS
setting.fpscap.none = Illimité setting.fpscap.none = Illimité
setting.fpscap.text = {0} FPS setting.fpscap.text = {0} FPS
setting.uiscale.name = Échelle de l'interface[lightgray] (redémarrage du jeu nécessaire)[] setting.uiscale.name = Échelle de l'interface
setting.uiscale.description = Redémarrage du jeu nécessaire pour appliquer les changements.
setting.swapdiagonal.name = Autoriser le placement en diagonale setting.swapdiagonal.name = Autoriser le placement en diagonale
setting.difficulty.training = Entraînement setting.difficulty.training = Entraînement
setting.difficulty.easy = Facile setting.difficulty.easy = Facile
@@ -874,7 +877,8 @@ setting.saveinterval.name = Intervalle des Sauvegardes automatiques
setting.seconds = {0} secondes setting.seconds = {0} secondes
setting.milliseconds = {0} millisecondes setting.milliseconds = {0} millisecondes
setting.fullscreen.name = Plein Écran setting.fullscreen.name = Plein Écran
setting.borderlesswindow.name = Fenêtre sans bords[lightgray] (peut nécessiter le redémarrage du jeu) setting.borderlesswindow.name = Fenêtré sans bordures
setting.borderlesswindow.description = Un redémarrage peut être nécessaire pour appliquer les changements.
setting.fps.name = Afficher FPS et Ping setting.fps.name = Afficher FPS et Ping
setting.smoothcamera.name = Lissage de la Caméra setting.smoothcamera.name = Lissage de la Caméra
setting.vsync.name = Synchronisation Verticale setting.vsync.name = Synchronisation Verticale
@@ -1004,6 +1008,7 @@ rules.wavetimer = Compte à rebours des vagues
rules.waves = Vagues rules.waves = Vagues
rules.attack = Mode « Attaque » rules.attack = Mode « Attaque »
rules.buildai = Constructions de l'IA rules.buildai = Constructions de l'IA
rules.cleanupdeadteams = Détruire les structures des équipes vaincues (JcJ)
rules.corecapture = Capture du Noyau lors de sa Destruction rules.corecapture = Capture du Noyau lors de sa Destruction
rules.polygoncoreprotection = Protection du noyau polygonal rules.polygoncoreprotection = Protection du noyau polygonal
rules.enemyCheat = Ressources infinies pour l'IA (équipe rouge) rules.enemyCheat = Ressources infinies pour l'IA (équipe rouge)
@@ -1298,7 +1303,6 @@ block.meltdown.name = Fusion
block.foreshadow.name = Présage block.foreshadow.name = Présage
block.container.name = Conteneur block.container.name = Conteneur
block.launch-pad.name = Rampe de lancement block.launch-pad.name = Rampe de lancement
block.launch-pad-large.name = Grande rampe de lancement
block.segment.name = Diviseur block.segment.name = Diviseur
block.command-center.name = Centre de Commande block.command-center.name = Centre de Commande
block.ground-factory.name = Usine d'Unités Terrestres block.ground-factory.name = Usine d'Unités Terrestres
@@ -1319,11 +1323,11 @@ block.payload-source.name = Source de Charge utile
block.disassembler.name = Désassembleur block.disassembler.name = Désassembleur
block.silicon-crucible.name = Grande Fonderie de Silicium block.silicon-crucible.name = Grande Fonderie de Silicium
block.overdrive-dome.name = Dôme Accélérant block.overdrive-dome.name = Dôme Accélérant
block.interplanetary-accelerator.name = Accélérateur Interplanétaire
#experimental, may be removed #experimental, may be removed
block.block-forge.name = Forgeur de Blocs block.block-forge.name = Forgeur de Blocs
block.block-loader.name = Chargeur de Blocs block.block-loader.name = Chargeur de Blocs
block.block-unloader.name = Déchargeur de Blocs block.block-unloader.name = Déchargeur de Blocs
block.interplanetary-accelerator.name = Accélérateur Interplanétaire
block.switch.name = Interrupteur block.switch.name = Interrupteur
block.micro-processor.name = Micro Processeur block.micro-processor.name = Micro Processeur
@@ -1337,7 +1341,7 @@ block.memory-bank.name = Banque de mémoire
team.blue.name = bleu team.blue.name = bleu
team.crux.name = crux team.crux.name = crux
team.sharded.name = sharded team.sharded.name = sharded
team.derelict.name = derelict team.derelict.name = Vestige
team.green.name = vert team.green.name = vert
team.purple.name = mauve team.purple.name = mauve
@@ -1356,8 +1360,9 @@ hint.placeConveyor = Les Convoyeurs transportent les ressources des foreuses ver
hint.placeConveyor.mobile = Les Convoyeurs transportent les ressources des foreuses vers d'autres blocs. Sélectionnez un \uf896 [accent]Convoyeur[] dans l'onglet \ue814 [accent]Distribution[].\n\nMaintenez votre doigt et déplacez-le pour placer plusieurs convoyeurs. hint.placeConveyor.mobile = Les Convoyeurs transportent les ressources des foreuses vers d'autres blocs. Sélectionnez un \uf896 [accent]Convoyeur[] dans l'onglet \ue814 [accent]Distribution[].\n\nMaintenez votre doigt et déplacez-le pour placer plusieurs convoyeurs.
hint.placeTurret = Placez des \uf861 [accent]Tourelles[] pour défendre votre base contre les ennemis.\n\nLes Tourelles nécessitent des munitions (dans ce cas, du \uf838Cuivre).\nUtilisez les convoyeurs et les foreuses pour les ravitailler. hint.placeTurret = Placez des \uf861 [accent]Tourelles[] pour défendre votre base contre les ennemis.\n\nLes Tourelles nécessitent des munitions (dans ce cas, du \uf838Cuivre).\nUtilisez les convoyeurs et les foreuses pour les ravitailler.
hint.breaking = Maintenez [accent]Clic-droit[] pour détruire des blocs. hint.breaking = Maintenez [accent]Clic-droit[] pour détruire des blocs.
hint.breaking.mobile = Activez le \ue817 [accent]marteau[] en bas à droite Touchez pour détruire des blocs.\n\nRetenez votre doigt pendant une seconde et déplacez-le pour détruire les blocs dans la zone de sélection. hint.breaking.mobile = Activez le \ue817 [accent]marteau[] en bas à droite, Touchez pour détruire des blocs.\n\nRetenez votre doigt pendant une seconde et déplacez-le pour détruire les blocs dans la zone de sélection.
hint.blockInfo = Pour afficher les informations relatives à un bloc, il suffit de le sélectionner dans le [accent]menu de construction[], puis de cliquer sur le bouton [accent][[?][] à droite. hint.blockInfo = Pour afficher les informations relatives à un bloc, il suffit de le sélectionner dans le [accent]menu de construction[], puis de cliquer sur le bouton [accent][[?][] à droite.
hint.derelict = [accent]Les structures abandonnées[] sont des vestiges brisés d'anciennes bases qui ne fonctionnent plus. Ces structures peuvent être [accent]déconstruites pour obtenir des ressources.
hint.research = Utilisez le bouton \ue875 [accent]Recherche[] pour rechercher de nouvelles technologies. hint.research = Utilisez le bouton \ue875 [accent]Recherche[] pour rechercher de nouvelles technologies.
hint.research.mobile = Utilisez le bouton \ue875 [accent]Recherche[] dans le \ue88c [accent]Menu[] pour rechercher de nouvelles technologies. hint.research.mobile = Utilisez le bouton \ue875 [accent]Recherche[] dans le \ue88c [accent]Menu[] pour rechercher de nouvelles technologies.
hint.unitControl = Retenez [accent][[Ctrl-gauche][] et [accent]cliquez[] pour contrôler une tourelle ou une unité alliée. hint.unitControl = Retenez [accent][[Ctrl-gauche][] et [accent]cliquez[] pour contrôler une tourelle ou une unité alliée.
@@ -1409,6 +1414,7 @@ liquid.slag.description = Différents types de métaux en fusion mélangés. Peu
liquid.oil.description = Un liquide utilisé dans la production de matériaux avancés. Peut être transformé en charbon ou pulvérisé sur les ennemis, puis enflammé. liquid.oil.description = Un liquide utilisé dans la production de matériaux avancés. Peut être transformé en charbon ou pulvérisé sur les ennemis, puis enflammé.
liquid.cryofluid.description = Un liquide inerte, non corrosif, créé à partir deau et de titane. Possède une capacité d'absorption de chaleur extrêmement élevée. Largement utilisé comme liquide de refroidissement. liquid.cryofluid.description = Un liquide inerte, non corrosif, créé à partir deau et de titane. Possède une capacité d'absorption de chaleur extrêmement élevée. Largement utilisé comme liquide de refroidissement.
block.derelict = [lightgray] Vestiges
block.resupply-point.description = Approvisionne les unités proches en munitions. Pas compatible avec celles qui ont besoin d'énergie pour tirer. block.resupply-point.description = Approvisionne les unités proches en munitions. Pas compatible avec celles qui ont besoin d'énergie pour tirer.
block.illuminator.description = Une petite source lumineuse compacte et configurable. Nécessite de l'énergie pour fonctionner. block.illuminator.description = Une petite source lumineuse compacte et configurable. Nécessite de l'énergie pour fonctionner.
block.armored-conveyor.description = Déplace les objets à la même vitesse que les convoyeurs en titane, mais est plus résistant. Seulement d'autres convoyeurs peuvent faire entrer des ressources par ses côtés. block.armored-conveyor.description = Déplace les objets à la même vitesse que les convoyeurs en titane, mais est plus résistant. Seulement d'autres convoyeurs peuvent faire entrer des ressources par ses côtés.
@@ -1517,7 +1523,7 @@ block.scatter.description = Une tourelle anti-aérienne essentielle. Mitraille l
block.scorch.description = Brûle les ennemis terrestres près de lui. Très efficace à courte portée. block.scorch.description = Brûle les ennemis terrestres près de lui. Très efficace à courte portée.
block.hail.description = Une petite tourelle d'artillerie visant les ennemis terrestres. Efficace à longue portée. block.hail.description = Une petite tourelle d'artillerie visant les ennemis terrestres. Efficace à longue portée.
block.wave.description = Une tourelle de taille moyenne tirant un jet de liquide. Peut éteindre les incendies automatiquement si elle est alimentée en eau. block.wave.description = Une tourelle de taille moyenne tirant un jet de liquide. Peut éteindre les incendies automatiquement si elle est alimentée en eau.
block.lancer.description = Une tourelle de taille moyenne chargeant et tirant de puissants lasers aux ennemis terrestres. block.lancer.description = Une tourelle de taille moyenne chargeant et tirant de puissants lasers sur les ennemis terrestres.
block.arc.description = Une petite tourelle tirant des arcs électriques sur les ennemis. block.arc.description = Une petite tourelle tirant des arcs électriques sur les ennemis.
block.swarmer.description = Une tourelle de taille moyenne attaquant les ennemis terrestres et aériens à l'aide de missiles autoguidés. Consomme beaucoup de munitions. block.swarmer.description = Une tourelle de taille moyenne attaquant les ennemis terrestres et aériens à l'aide de missiles autoguidés. Consomme beaucoup de munitions.
block.salvo.description = Une version plus grande et améliorée de la tourelle Duo. Tire par salves. block.salvo.description = Une version plus grande et améliorée de la tourelle Duo. Tire par salves.
@@ -1530,7 +1536,7 @@ block.foreshadow.description = Une tourelle massive tirant une puissante balle s
block.repair-point.description = Soigne l'unité endommagée la plus proche. block.repair-point.description = Soigne l'unité endommagée la plus proche.
block.segment.description = Endommage et détruit les tirs ennemis. Les lasers ne peuvent pas être ciblés. block.segment.description = Endommage et détruit les tirs ennemis. Les lasers ne peuvent pas être ciblés.
block.parallax.description = Tire un rayon tracteur qui attire les ennemis volants, infligeant aussi des dégâts. block.parallax.description = Tire un rayon tracteur qui attire les ennemis volants, infligeant aussi des dégâts.
block.tsunami.description = Tire un puissant jet de liquide aux ennemis. Peut éteindre les incendies automatiquement si elle est alimentée en eau. block.tsunami.description = Tire un puissant jet de liquide sur les ennemis. Peut éteindre les incendies automatiquement si elle est alimentée en eau.
block.silicon-crucible.description = Raffine du silicium avec du sable et du charbon en utilisant de la pyratite comme source de chaleur additionnelle. Cette usine est plus efficace dans les endroits chauds. block.silicon-crucible.description = Raffine du silicium avec du sable et du charbon en utilisant de la pyratite comme source de chaleur additionnelle. Cette usine est plus efficace dans les endroits chauds.
block.disassembler.description = Cette version avancée du séparateur peut produire du thorium. block.disassembler.description = Cette version avancée du séparateur peut produire du thorium.
block.overdrive-dome.description = Accélère le fonctionnement des bâtiments autour de lui. Requiert du silicium et du tissu phasé pour fonctionner. block.overdrive-dome.description = Accélère le fonctionnement des bâtiments autour de lui. Requiert du silicium et du tissu phasé pour fonctionner.
@@ -1553,6 +1559,8 @@ block.memory-bank.description = Stocke des informations pour un processeur logiq
block.logic-display.description = Affiche des images à partir des instructions d'un processeur logique. block.logic-display.description = Affiche des images à partir des instructions d'un processeur logique.
block.large-logic-display.description = Affiche des images à partir des instructions d'un processeur logique. Possède une plus grande résolution qu'un écran. block.large-logic-display.description = Affiche des images à partir des instructions d'un processeur logique. Possède une plus grande résolution qu'un écran.
block.interplanetary-accelerator.description = Un énorme canon électromagnétique à rails. Accélère les Noyaux pour qu'ils échappent à la gravité de leur planète et leur permettent un déploiement interplanétaire. block.interplanetary-accelerator.description = Un énorme canon électromagnétique à rails. Accélère les Noyaux pour qu'ils échappent à la gravité de leur planète et leur permettent un déploiement interplanétaire.
block.repair-turret.description = Répare en continu l'unité endommagée la plus proche dans son périmètre. Accepte le liquide de refroidissement en option.
block.payload-propulsion-tower.description = Structure de transport de charges utiles à longue portée. Projette des charges utiles vers d'autres tours de propulsion de charges utiles reliées.
unit.dagger.description = Tire des balles normales aux ennemis proches. unit.dagger.description = Tire des balles normales aux ennemis proches.
unit.mace.description = Tire des jets de flammes aux ennemis proches. unit.mace.description = Tire des jets de flammes aux ennemis proches.
@@ -1587,6 +1595,11 @@ unit.omura.description = Tire avec un canon à rails à longue portée, une puis
unit.alpha.description = Défend le Noyau fragment contre les ennemis. Peut construire des structures. unit.alpha.description = Défend le Noyau fragment contre les ennemis. Peut construire des structures.
unit.beta.description = Défend le Noyau fondation contre les ennemis. Peut construire des structures. unit.beta.description = Défend le Noyau fondation contre les ennemis. Peut construire des structures.
unit.gamma.description = Défend le Noyau épicentre contre les ennemis. Peut construire des structures. unit.gamma.description = Défend le Noyau épicentre contre les ennemis. Peut construire des structures.
unit.retusa.description = Pose des mines de proximité. Répare les unités alliées.
unit.oxynoe.description = Tire des jets de flammes qui réparent les structures et endommage les ennemis proches. Cible les projectiles ennemis proches avec une tourelle de défense ponctuelle.
unit.cyerce.description = Tire des missiles à fragmentation sur les ennemis. Répare les unités alliées.
unit.aegires.description = Secoue toutes les unités et structures ennemies qui entrent dans son champ d'énergie. Répare tous les alliés.
unit.navanax.description = Tire des projectiles explosifs EMP, infligeant des dommages importants aux réseaux électriques ennemis et réparant les structures alliées. Fait fondre les ennemis proches avec 4 tourelles laser autonomes.
lst.read = Lit un nombre depuis un bloc de mémoire relié au processeur. lst.read = Lit un nombre depuis un bloc de mémoire relié au processeur.
lst.write = Écrit un nombre dans un bloc de mémoire relié au processeur. lst.write = Écrit un nombre dans un bloc de mémoire relié au processeur.
@@ -1601,6 +1614,8 @@ lst.sensor = Récupère des données depuis un bâtiment ou une unité.
lst.set = Définit une variable. lst.set = Définit une variable.
lst.operation = Effectue une opération sur 1 ou 2 variables. lst.operation = Effectue une opération sur 1 ou 2 variables.
lst.end = Saute au sommet de la série dinstructions. lst.end = Saute au sommet de la série dinstructions.
lst.wait = Attendre un certain nombre de secondes.
lst.lookup = Recherche d'un type d'objet/liquide/unité/bloc par ID.\nLe nombre total de chaque type peut être consulté avec:\n[accent]@unitCount[] / [accent]@itemCount[] / [accent]@liquidCount[] / [accent]@blockCount[]
lst.jump = Saute conditionnellement vers une autre instruction. lst.jump = Saute conditionnellement vers une autre instruction.
lst.unitbind = Se lie à une unité du type donné et la stocke dans [accent]@unit[]. lst.unitbind = Se lie à une unité du type donné et la stocke dans [accent]@unit[].
lst.unitcontrol = Contrôle l'unité actuellement liée. lst.unitcontrol = Contrôle l'unité actuellement liée.

View File

@@ -1591,6 +1591,8 @@ lst.sensor = Mengambil data dari bangunan atau unit.
lst.set = Menentukan sebuah variabel. lst.set = Menentukan sebuah variabel.
lst.operation = Melakukan operasi pada 1-2 variabel. lst.operation = Melakukan operasi pada 1-2 variabel.
lst.end = Loncati ke awal dari tumpukan perintah. lst.end = Loncati ke awal dari tumpukan perintah.
lst.wait = Memberi jeda dalam detik yang ditentukan.
lst.lookup = Mencari tipe barang/cairan/unit/blok dengan ID.\nJumlah hitungan dari setiap tipe dapat dilihat dengan:\n[accent]@unitCount[] / [accent]@itemCount[] / [accent]@liquidCount[] / [accent]@blockCount[]
lst.jump = Loncati secara bersyarat ke pernyataan berikutnya. lst.jump = Loncati secara bersyarat ke pernyataan berikutnya.
lst.unitbind = Menautkan ke unit jenis berikutnya, dan menyimpannya di [accent]@unit[]. lst.unitbind = Menautkan ke unit jenis berikutnya, dan menyimpannya di [accent]@unit[].
lst.unitcontrol = Mengendalikan unit yang saat ini dihubungkan. lst.unitcontrol = Mengendalikan unit yang saat ini dihubungkan.

View File

@@ -100,7 +100,8 @@ joingame = 게임 참여
customgame = 사용자 지정 게임 customgame = 사용자 지정 게임
newgame = 새 게임 newgame = 새 게임
none = < 없음 > none = < 없음 >
none.found = [lightgray]< 없거나 찾을 수 없음 > none.found = [lightgray]< 찾을 수 없음 >
none.inmap = [lightgray]< 맵에 없음 >
minimap = 미니맵 minimap = 미니맵
position = 위치 position = 위치
close = 닫기 close = 닫기
@@ -121,7 +122,6 @@ committingchanges = 바뀐 점 적용
done = 완료 done = 완료
feature.unsupported = 기기가 이 기능을 지원하지 않습니다. feature.unsupported = 기기가 이 기능을 지원하지 않습니다.
mods.initfailed = [red]⚠[]이전 Mindustry 인스턴스를 초기화하지 못했습니다. 잘못된 모드로 인해 발생한 것일 수 있습니다.\n\n 게임 충돌 무한반복을 막기 위해, [red]모든 모드가 비활성화되었습니다.[]\n\n이 시스템을 비활성화할려면, [accent]설정->게임->로딩 중 충돌 시 모드 비활성화[]설정을 끄세요.
mods = 모드 mods = 모드
mods.none = [lightgray]모드를 찾을 수 없습니다! mods.none = [lightgray]모드를 찾을 수 없습니다!
mods.guide = 모드 제작 가이드 mods.guide = 모드 제작 가이드
@@ -565,6 +565,7 @@ sectors.unexplored = [lightgray]미개척지
sectors.resources = 자원: sectors.resources = 자원:
sectors.production = 생산량: sectors.production = 생산량:
sectors.export = 수출량: sectors.export = 수출량:
sectors.import = 수입량:
sectors.time = 진행 시간: sectors.time = 진행 시간:
sectors.threat = 위험도: sectors.threat = 위험도:
sectors.wave = 단계: sectors.wave = 단계:
@@ -724,7 +725,7 @@ stat.maxconsecutive = 최대 체인
stat.buildcost = 건설 비용 stat.buildcost = 건설 비용
stat.inaccuracy = 오차각 stat.inaccuracy = 오차각
stat.shots = 발사 수 stat.shots = 발사 수
stat.reload = 초당 발사 stat.reload = 발사 주기
stat.ammo = 탄약 stat.ammo = 탄약
stat.shieldhealth = 보호막 내구도 stat.shieldhealth = 보호막 내구도
stat.cooldowntime = 쿨타임 stat.cooldowntime = 쿨타임
@@ -793,7 +794,7 @@ bullet.damage = [stat]{0}[lightgray] 피해량
bullet.splashdamage = [stat]{0}[lightgray] 범위 피해량 ~ [stat]{1}[lightgray] 타일 bullet.splashdamage = [stat]{0}[lightgray] 범위 피해량 ~ [stat]{1}[lightgray] 타일
bullet.incendiary = [stat]방화 bullet.incendiary = [stat]방화
bullet.homing = [stat]유도 bullet.homing = [stat]유도
bullet.frag = [stat]파편 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] 건물 피해량
bullet.knockback = [stat]{0}[lightgray] 넉백 bullet.knockback = [stat]{0}[lightgray] 넉백
@@ -806,6 +807,7 @@ bullet.reload = [stat]{0}[lightgray]배 발사 속도
unit.blocks = 블록 unit.blocks = 블록
unit.blockssquared = 블록² unit.blockssquared = 블록²
unit.powersecond = 전력/초 unit.powersecond = 전력/초
unit.tilessecond = 타일/초
unit.liquidsecond = 액체/초 unit.liquidsecond = 액체/초
unit.itemssecond = 자원/초 unit.itemssecond = 자원/초
unit.liquidunits = 액체 unit.liquidunits = 액체
@@ -844,7 +846,6 @@ setting.doubletapmine.name = 연속 터치로 채광
setting.modcrashdisable.name = 로딩 중 충돌 시 모드 비활성화 setting.modcrashdisable.name = 로딩 중 충돌 시 모드 비활성화
setting.animatedwater.name = 액체 애니메이션 효과 setting.animatedwater.name = 액체 애니메이션 효과
setting.animatedshields.name = 보호막 애니메이션 효과 setting.animatedshields.name = 보호막 애니메이션 효과
setting.antialias.name = 위신호 제거 필터[lightgray] (재시작 필요)[]
setting.playerindicators.name = 플레이어 위치 표시기 setting.playerindicators.name = 플레이어 위치 표시기
setting.indicators.name = 적 위치 표시기 setting.indicators.name = 적 위치 표시기
setting.autotarget.name = 자동 조준 setting.autotarget.name = 자동 조준
@@ -853,7 +854,8 @@ setting.touchscreen.name = 터치스크린 조작
setting.fpscap.name = 최대 FPS setting.fpscap.name = 최대 FPS
setting.fpscap.none = 없음 setting.fpscap.none = 없음
setting.fpscap.text = {0} FPS setting.fpscap.text = {0} FPS
setting.uiscale.name = UI 스케일링[lightgray] (재시작 필요)[] setting.uiscale.name = UI 스케일링
setting.uiscale.description = 적용하려면 재시작이 필요합니다.
setting.swapdiagonal.name = 항상 대각선 배치 setting.swapdiagonal.name = 항상 대각선 배치
setting.difficulty.training = 훈련 setting.difficulty.training = 훈련
setting.difficulty.easy = 무난 setting.difficulty.easy = 무난
@@ -871,7 +873,8 @@ setting.saveinterval.name = 저장 간격
setting.seconds = {0} 초 setting.seconds = {0} 초
setting.milliseconds = {0} 밀리초 setting.milliseconds = {0} 밀리초
setting.fullscreen.name = 전체 화면 setting.fullscreen.name = 전체 화면
setting.borderlesswindow.name = 테두리 없는 창 모드[lightgray] (재시작이 필요할 수 있습니다) setting.borderlesswindow.name = 테두리 없는 창 모드
setting.borderlesswindow.description = 적용하려면 재시작이 필요할 수도 있습니다.
setting.fps.name = FPS와 핑 표시 setting.fps.name = FPS와 핑 표시
setting.smoothcamera.name = 부드러운 시점 setting.smoothcamera.name = 부드러운 시점
setting.vsync.name = 수직 동기화 setting.vsync.name = 수직 동기화
@@ -994,6 +997,7 @@ rules.wavetimer = 시간 제한이 있는 단계
rules.waves = 단계 rules.waves = 단계
rules.attack = 공격 모드 rules.attack = 공격 모드
rules.buildai = AI 건설 rules.buildai = AI 건설
rules.cleanupdeadteams = 패배한 팀 건물 정리하기 (PvP)
rules.corecapture = 코어 파괴 시 점령 rules.corecapture = 코어 파괴 시 점령
rules.polygoncoreprotection = 다각형 코어 건설 금지구역 rules.polygoncoreprotection = 다각형 코어 건설 금지구역
rules.enemyCheat = 적Ai 무한자원 rules.enemyCheat = 적Ai 무한자원
@@ -1045,7 +1049,7 @@ item.silicon.name = 실리콘
item.plastanium.name = 플라스터늄 item.plastanium.name = 플라스터늄
item.phase-fabric.name = 메타 item.phase-fabric.name = 메타
item.surge-alloy.name = 설금 item.surge-alloy.name = 설금
item.spore-pod.name = 포자 item.spore-pod.name = 포자 꼬투리
item.sand.name = 모래 item.sand.name = 모래
item.blast-compound.name = 폭발물 item.blast-compound.name = 폭발물
item.pyratite.name = 파이라타이트 item.pyratite.name = 파이라타이트
@@ -1288,7 +1292,6 @@ block.meltdown.name = 멜트다운
block.foreshadow.name = 포어쉐도우 block.foreshadow.name = 포어쉐도우
block.container.name = 컨테이너 block.container.name = 컨테이너
block.launch-pad.name = 지역 자원 수송기 block.launch-pad.name = 지역 자원 수송기
block.launch-pad-large.name = 대형 지역 자원 수송기
block.segment.name = 세그먼트 block.segment.name = 세그먼트
block.command-center.name = 유닛 지휘소 block.command-center.name = 유닛 지휘소
block.ground-factory.name = 지상 공장 block.ground-factory.name = 지상 공장
@@ -1309,11 +1312,11 @@ block.payload-source.name = 화물 공급기
block.disassembler.name = 광재 분해기 block.disassembler.name = 광재 분해기
block.silicon-crucible.name = 실리콘 도가니 block.silicon-crucible.name = 실리콘 도가니
block.overdrive-dome.name = 대형 과부하 프로젝터 block.overdrive-dome.name = 대형 과부하 프로젝터
block.interplanetary-accelerator.name = 성간 코어 가속기
#experimental, may be removed / 이 아래의 블록들은 테스트용 임시 블록들이였습니다. #experimental, may be removed / 이 아래의 블록들은 테스트용 임시 블록들이였습니다.
block.block-forge.name = 블록 제작대 block.block-forge.name = 블록 제작대
block.block-loader.name = 블록 로더 block.block-loader.name = 블록 로더
block.block-unloader.name = 블록 언로더 block.block-unloader.name = 블록 언로더
block.interplanetary-accelerator.name = 성간 코어 가속기
block.switch.name = 스위치 block.switch.name = 스위치
block.micro-processor.name = 마이크로 프로세서 block.micro-processor.name = 마이크로 프로세서
@@ -1348,6 +1351,7 @@ hint.placeTurret = 적에게서 기지를 막아내려면 \uf861 [accent]포탑[
hint.breaking = 블록을 부수려면 [accent]우클릭[]이나 드래그를 하십시오. hint.breaking = 블록을 부수려면 [accent]우클릭[]이나 드래그를 하십시오.
hint.breaking.mobile = 블록을 부수려면 오른쪽 아래의 \ue817 [accent]망치[]를 눌러 해체 모드를 활성화하십시오.\n\n손가락으로 누른 채로 끌어서 해체 범위를 지정하십시오. hint.breaking.mobile = 블록을 부수려면 오른쪽 아래의 \ue817 [accent]망치[]를 눌러 해체 모드를 활성화하십시오.\n\n손가락으로 누른 채로 끌어서 해체 범위를 지정하십시오.
hint.blockInfo = [accent]건설 메뉴[]에서 블록을 선택해서 정보를 보십시오, 그다음 오른쪽의 [accent][[?][] 버튼을 선택하십시오. hint.blockInfo = [accent]건설 메뉴[]에서 블록을 선택해서 정보를 보십시오, 그다음 오른쪽의 [accent][[?][] 버튼을 선택하십시오.
hint.derelict = [accent]버려진[] 구조물들은 더 이상 작동하지 않는 오래된 기지의 부서진 잔해입니다.\n\n이 구조물들은 자원으로 다시 [accent]철거[]될 수 있습니다.
hint.research = 새 기술을 연구하려면 \ue875 [accent]연구[]버튼을 누르십시오. hint.research = 새 기술을 연구하려면 \ue875 [accent]연구[]버튼을 누르십시오.
hint.research.mobile = 새 기술을 연구하려면 \ue88c [accent]메뉴[] 아래의 \ue875 [accent]연구[]버튼을 누르십시오. hint.research.mobile = 새 기술을 연구하려면 \ue88c [accent]메뉴[] 아래의 \ue875 [accent]연구[]버튼을 누르십시오.
hint.unitControl = 아군 유닛과 포탑을 조종하려면 [accent][[왼쪽 ctrl][]을 누른 채로 [accent]클릭[] 하십시오. hint.unitControl = 아군 유닛과 포탑을 조종하려면 [accent][[왼쪽 ctrl][]을 누른 채로 [accent]클릭[] 하십시오.
@@ -1399,6 +1403,7 @@ liquid.slag.description = 다양한 종류의 금속들이 함께 섞여 녹아
liquid.oil.description = 고급 재료 생산에 사용되는 액체. 석탄으로 전환하거나 무기로 뿌려서 불을 지를 수 있습니다. liquid.oil.description = 고급 재료 생산에 사용되는 액체. 석탄으로 전환하거나 무기로 뿌려서 불을 지를 수 있습니다.
liquid.cryofluid.description = 물과 티타늄으로 만든 비부식성 액체. 열용량이 매우 높으며 냉각수로 광범위하게 사용됩니다. liquid.cryofluid.description = 물과 티타늄으로 만든 비부식성 액체. 열용량이 매우 높으며 냉각수로 광범위하게 사용됩니다.
block.derelict = [lightgray] 버려짐[]
block.resupply-point.description = 주변 유닛들에 구리 탄약을 보급합니다. 배터리 전력이 필요한 유닛들은 호환되지 않습니다. block.resupply-point.description = 주변 유닛들에 구리 탄약을 보급합니다. 배터리 전력이 필요한 유닛들은 호환되지 않습니다.
block.armored-conveyor.description = 앞으로 자원들을 운반합니다. 측면에서 자원들을 받아들이지 않습니다. block.armored-conveyor.description = 앞으로 자원들을 운반합니다. 측면에서 자원들을 받아들이지 않습니다.
block.illuminator.description = 발광합니다. block.illuminator.description = 발광합니다.
@@ -1543,6 +1548,8 @@ block.memory-bank.description = 프로세서를 위한 데이터를 저장합니
block.logic-display.description = 프로세서를 이용해 그래픽을 출력할 수 있습니다. block.logic-display.description = 프로세서를 이용해 그래픽을 출력할 수 있습니다.
block.large-logic-display.description = 프로세서를 이용해 그래픽을 출력할 수 있습니다. block.large-logic-display.description = 프로세서를 이용해 그래픽을 출력할 수 있습니다.
block.interplanetary-accelerator.description = 거대한 전자기 레일건 타워. 코어를 행성 간 이동을 위한 탈출 속도까지 가속합니다. block.interplanetary-accelerator.description = 거대한 전자기 레일건 타워. 코어를 행성 간 이동을 위한 탈출 속도까지 가속합니다.
block.repair-turret.description = 가장 가까운 유닛을 지속적으로 수리합니다. 냉각수를 넣을 수 있습니다.
block.payload-propulsion-tower.description = 장거리 화물 운반 구조물. 화물을 연결된 다른 화물 추진탑으로 발사합니다.
unit.dagger.description = 주변 모든 적에게 일반적인 탄환을 발사합니다. unit.dagger.description = 주변 모든 적에게 일반적인 탄환을 발사합니다.
unit.mace.description = 주변 모든 적에게 화염 줄기를 발사합니다. unit.mace.description = 주변 모든 적에게 화염 줄기를 발사합니다.
@@ -1577,6 +1584,11 @@ unit.omura.description = 적에게 장거리 관통 레일건을 발사합니다
unit.alpha.description = 적으로부터 코어: 조각을 방어합니다. 구조물을 짓습니다. unit.alpha.description = 적으로부터 코어: 조각을 방어합니다. 구조물을 짓습니다.
unit.beta.description = 적으로부터 코어: 기반을 방어합니다. 구조물을 짓습니다. unit.beta.description = 적으로부터 코어: 기반을 방어합니다. 구조물을 짓습니다.
unit.gamma.description = 적으로부터 코어: 핵심을 방어합니다. 구조물을 짓습니다. unit.gamma.description = 적으로부터 코어: 핵심을 방어합니다. 구조물을 짓습니다.
unit.retusa.description = 근접 시한지뢰를 설치합니다. 아군 유닛을 수리할 수 있습니다.
unit.oxynoe.description = 주변 적에게 블록을 수리하는 화염을 발사합니다. 주변 적 탄환을 요격 포탑으로 요격할 수 있습니다.
unit.cyerce.description = 주변 적에게 유도 집속 미사일을 발사합니다. 아군 유닛을 수리할 수 있습니다.
unit.aegires.description = 애너지 필드 안의 모든 적 유닛과 블록을 감전시킵니다. 아군에겐 전격으로 수리합니다.
unit.navanax.description = 적 전력망에 상당한 피해를 주고 아군 블록을 수리하는 거대한 EMP 고폭탄을 발사합니다. 4개의 자율 레이저 포탑으로 주변 적을 녹입니다.
lst.read = 연결된 메모리 셀에서 숫자 읽기 lst.read = 연결된 메모리 셀에서 숫자 읽기
lst.write = 연결된 메모리 셀에 숫자 쓰기 lst.write = 연결된 메모리 셀에 숫자 쓰기
@@ -1629,7 +1641,7 @@ lenum.always = 항상 참
lenum.idiv = 정수 나누기 lenum.idiv = 정수 나누기
lenum.div = 나누기\n0으로 나누면 [accent]null[]을 반환합니다. lenum.div = 나누기\n0으로 나누면 [accent]null[]을 반환합니다.
lenum.mod = 나머지 lenum.mod = 나머지
lenum.equal = 동치 비교. 형변환 가능\nNull이 아닌 객체가 숫자와 비교려면 1이 되고, Null이면 0이 됩니다. lenum.equal = 동치 비교. 형변환 가능\nNull이 아닌 객체가 숫자와 비교려면 1이 되고, Null이면 0이 됩니다.
lenum.notequal = 동치 부정. 형변환 가능 lenum.notequal = 동치 부정. 형변환 가능
lenum.strictequal = 엄격한 동치 비교. 형변환 불가능\n[accent]null[]를 확인하는데 쓸 수 있습니다. lenum.strictequal = 엄격한 동치 비교. 형변환 불가능\n[accent]null[]를 확인하는데 쓸 수 있습니다.
lenum.shl = 왼쪽으로 비트 이동 lenum.shl = 왼쪽으로 비트 이동
@@ -1816,7 +1828,7 @@ block.inverted-sorter.details =
block.distributor.details = block.distributor.details =
block.overflow-gate.details = block.overflow-gate.details =
block.underflow-gate.details = block.underflow-gate.details =
block.mass-driver.details = [lightgray][비공식][]발사려면 최소 아이템 10개가 필요하다. block.mass-driver.details = [lightgray][비공식][]발사려면 최소 아이템 10개가 필요하다.
block.mechanical-pump.details = block.mechanical-pump.details =
block.rotary-pump.details = block.rotary-pump.details =
block.thermal-pump.details = block.thermal-pump.details =

View File

@@ -41,7 +41,7 @@ be.ignore = Zignoruj
be.noupdates = Nie znaleziono aktualizacji. be.noupdates = Nie znaleziono aktualizacji.
be.check = Sprawdź aktualizacje be.check = Sprawdź aktualizacje
mod.featured.dialog.title = Przeglądarka Modów mods.browser = Przeglądarka Modów
mods.browser.selected = Wybrany Mod mods.browser.selected = Wybrany Mod
mods.browser.add = Zainsta-\nluj Moda mods.browser.add = Zainsta-\nluj Moda
mods.browser.reinstall = Przeins-\ntaluj mods.browser.reinstall = Przeins-\ntaluj
@@ -67,6 +67,14 @@ schematic.delete.confirm = Ten schemat zostanie usunięty.
schematic.rename = Zmień nazwę schematu schematic.rename = Zmień nazwę schematu
schematic.info = {0}x{1}, {2} bloków schematic.info = {0}x{1}, {2} bloków
schematic.disabled = [scarlet]Schematy są wyłączone[]\nNie możesz używać schematów na tej [accent]mapie[] lub [accent]serwerze. schematic.disabled = [scarlet]Schematy są wyłączone[]\nNie możesz używać schematów na tej [accent]mapie[] lub [accent]serwerze.
schematic.tags = Tagi:
schematic.edittags = Zmień Znacznik
schematic.addtag = Dodaj Znacznik
schematic.texttag = Tekst Znacznika
schematic.icontag = Ikona Znacznika
schematic.renametag = Zmień Nazwę Znacznika
schematic.tagdelconfirm = Czy kompletnie usunąć znacznik?
schematic.tagexists = Taki znacznik już istnieje.
stats = Statystyki stats = Statystyki
stat.wave = Fale powstrzymane:[accent] {0} stat.wave = Fale powstrzymane:[accent] {0}
@@ -159,7 +167,7 @@ planetmap = Mapa Planety
launchcore = Wystrzel Rdzeń launchcore = Wystrzel Rdzeń
filename = Nazwa Pliku: filename = Nazwa Pliku:
unlocked = Odblokowano nową zawartość! unlocked = Odblokowano nową zawartość!
available =Nowe Odkrycie dostępne available = Nowe Odkrycie dostępne
completed = [accent]Ukończony completed = [accent]Ukończony
techtree = Drzewo Techno-\nlogiczne techtree = Drzewo Techno-\nlogiczne
research.legacy = Znaleziono badania z wersji [accent]5.0[].\nChcesz [accent]załadować je[], czy [accent]usunąć[] dane z drzewa technologicznego w nowej kampanii (zalecane)? research.legacy = Znaleziono badania z wersji [accent]5.0[].\nChcesz [accent]załadować je[], czy [accent]usunąć[] dane z drzewa technologicznego w nowej kampanii (zalecane)?
@@ -502,7 +510,7 @@ memory = Pam: {0}mb
memory2 = Pam:\n {0}mb +\n {1}mb memory2 = Pam:\n {0}mb +\n {1}mb
language.restart = Uruchom grę ponownie, aby nowo ustawiony język zaczął funkcjonować. language.restart = Uruchom grę ponownie, aby nowo ustawiony język zaczął funkcjonować.
settings = Ustawienia settings = Ustawienia
tutorial = Poradnik tutorial = Samouczek
tutorial.retake = Ponów Samouczek tutorial.retake = Ponów Samouczek
editor = Edytor editor = Edytor
mapeditor = Edytor Map mapeditor = Edytor Map
@@ -530,7 +538,7 @@ launch.from = Wystrzelony z: [accent]{0}
launch.destination = Cel: {0} launch.destination = Cel: {0}
configure.invalid = Ilość musi być liczbą pomiędzy 0 a {0}. configure.invalid = Ilość musi być liczbą pomiędzy 0 a {0}.
add = Dodaj... add = Dodaj...
boss.health = Zdrowie Strażnika guardian = Zdrowie Strażnika
connectfail = [crimson]Nie można połączyć się z serwerem:\n\n[accent]{0} connectfail = [crimson]Nie można połączyć się z serwerem:\n\n[accent]{0}
error.unreachable = Serwer niedostępny.\nSprawdź, czy adres jest wpisany poprawnie. error.unreachable = Serwer niedostępny.\nSprawdź, czy adres jest wpisany poprawnie.
@@ -620,6 +628,20 @@ sector.extractionOutpost.description = Odległa placówka zbudowana przez wroga
sector.impact0078.description = Tutaj leżą pozostałości międzygwiezdnego statku transportowego, który jako pierwszy wszedł do tego układu.\n\nWydobądź jak najwięcej z wraku. Zbadaj każdą nienaruszoną technologię. sector.impact0078.description = Tutaj leżą pozostałości międzygwiezdnego statku transportowego, który jako pierwszy wszedł do tego układu.\n\nWydobądź jak najwięcej z wraku. Zbadaj każdą nienaruszoną technologię.
sector.planetaryTerminal.description = Ostatni cel.\n\nTa baza przybrzeżna zawiera strukturę zdolną do wyrzucania rdzeni na lokalne planety. Jest wyjątkowo dobrze strzeżona.\n\nProdukuj jednostki morskie. Jak najszybciej wyeliminuj wroga. Zbadaj tą strukturę. sector.planetaryTerminal.description = Ostatni cel.\n\nTa baza przybrzeżna zawiera strukturę zdolną do wyrzucania rdzeni na lokalne planety. Jest wyjątkowo dobrze strzeżona.\n\nProdukuj jednostki morskie. Jak najszybciej wyeliminuj wroga. Zbadaj tą strukturę.
status.burning.name = Podpalenie
status.freezing.name = Zamrożenie
status.wet.name = Mokrość
status.muddy.name = Zabłocenie
status.melting.name = Topnienie
status.sapped.name = Osłabienie
status.electrified.name = Naelektryzowanie
status.spore-slowed.name = Zarodnikowe Spowolnienie
status.tarred.name = Osmołowanie
status.overclock.name = Przyspieszenie
status.shocked.name = Porażenie
status.blasted.name = Wysadzenie
status.unmoving.name = Unieruchomienie
settings.language = Język settings.language = Język
settings.data = Dane Gry settings.data = Dane Gry
settings.reset = Przywróć Domyślne settings.reset = Przywróć Domyślne
@@ -655,7 +677,8 @@ stat.input = Wejście
stat.output = Wyjście stat.output = Wyjście
stat.booster = Wzmacniacz stat.booster = Wzmacniacz
stat.tiles = Wymagane Pola stat.tiles = Wymagane Pola
stat.affinities = Uwydajnienie stat.affinities = Uwydajnienia
stat.opposites = Przeciwieństwa
stat.powercapacity = Pojemność mocy stat.powercapacity = Pojemność mocy
stat.powershot = moc/strzał stat.powershot = moc/strzał
stat.damage = Obrażenia stat.damage = Obrażenia
@@ -703,7 +726,7 @@ stat.lightningchance = Szansa Na Błyskawicę
stat.lightningdamage = Obrażenia Błyskawic stat.lightningdamage = Obrażenia Błyskawic
stat.flammability = Palność stat.flammability = Palność
stat.radioactivity = Radioaktywność stat.radioactivity = Radioaktywność
stat.charge = Charge stat.charge = Naładowanie
stat.heatcapacity = Pojemność Cieplna stat.heatcapacity = Pojemność Cieplna
stat.viscosity = Lepkość stat.viscosity = Lepkość
stat.temperature = Temperatura stat.temperature = Temperatura
@@ -717,13 +740,21 @@ stat.abilities = Umiejętności
stat.canboost = Może przyspieszyć stat.canboost = Może przyspieszyć
stat.flying = Może latać stat.flying = Może latać
stat.ammouse = Zużycie Amunicji stat.ammouse = Zużycie Amunicji
stat.damagemultiplier = Mnożnik Obrażeń
stat.healthmultiplier = Mnożnik Zdrowia
stat.speedmultiplier = Mnożnik Prędkości
stat.reloadmultiplier = Mnożnik Prędkości Przeładowywania
stat.buildspeedmultiplier = Mnożnik Prędkości Budowania
stat.reactive = Reaguje
stat.healing = Leczy
ability.forcefield = Pole Mocy ability.forcefield = Pole Siłowe
ability.repairfield = Pole Naprawy ability.repairfield = Pole Naprawy
ability.statusfield = Pole Statusu ability.statusfield = Pole Statusu
ability.unitspawn = Fabryka Jednostek {0} ability.unitspawn = Fabryka Jednostek {0}
ability.shieldregenfield = Strefa Tarczy Regenerującej ability.shieldregenfield = Strefa Tarczy Regenerującej
ability.movelightning = Pioruny Poruszania ability.movelightning = Pioruny Poruszania
ability.energyfield = Pole Energii: [accent]{0}[] obrażenia ~ [accent]{1}[] bloki / [accent]{2}[] cele
bar.drilltierreq = Wymagane Lepsze Wiertło bar.drilltierreq = Wymagane Lepsze Wiertło
bar.noresources = Brak Zasobów bar.noresources = Brak Zasobów
@@ -746,6 +777,7 @@ bar.power = Prąd
bar.progress = Postęp Budowy bar.progress = Postęp Budowy
bar.input = Wejście bar.input = Wejście
bar.output = Wyjście bar.output = Wyjście
bar.strength = [stat]{0}[lightgray]x siły
units.processorcontrol = [lightgray]Kontrolowany przez procesor units.processorcontrol = [lightgray]Kontrolowany przez procesor
@@ -756,6 +788,7 @@ bullet.sapping = [stat]wyczerpujący
bullet.homing = [stat]naprowadzający bullet.homing = [stat]naprowadzający
bullet.shock = [stat]piorunowy bullet.shock = [stat]piorunowy
bullet.frag = [stat]fragmentacyjny bullet.frag = [stat]fragmentacyjny
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
bullet.knockback = [stat]{0}[lightgray] odrzut bullet.knockback = [stat]{0}[lightgray] odrzut
bullet.pierce = [stat]{0}[lightgray]x przebicia bullet.pierce = [stat]{0}[lightgray]x przebicia
@@ -769,6 +802,7 @@ bullet.reload = [stat]{0}[lightgray]x szybkość ataku
unit.blocks = bloki unit.blocks = bloki
unit.blockssquared = bloki² unit.blockssquared = bloki²
unit.powersecond = jednostek prądu na sekundę unit.powersecond = jednostek prądu na sekundę
unit.tilessecond = bloków na sekundę
unit.liquidsecond = jednostek płynu na sekundę unit.liquidsecond = jednostek płynu na sekundę
unit.itemssecond = przedmiotów na sekundę unit.itemssecond = przedmiotów na sekundę
unit.liquidunits = jednostek płynu unit.liquidunits = jednostek płynu
@@ -991,7 +1025,8 @@ rules.weather.duration = Czas trwania:
content.item.name = Przedmioty content.item.name = Przedmioty
content.liquid.name = Płyny content.liquid.name = Płyny
content.unit.name = Jednostki content.unit.name = Jednostki
content.block.name = Klocki content.block.name = Bloki
content.status.name = Efekty Statusu
content.sector.name = Sektory content.sector.name = Sektory
item.copper.name = Miedź item.copper.name = Miedź
@@ -1157,7 +1192,7 @@ block.distributor.name = Dystrybutor
block.sorter.name = Sortownik block.sorter.name = Sortownik
block.inverted-sorter.name = Odwrotny Sortownik block.inverted-sorter.name = Odwrotny Sortownik
block.message.name = Wiadomość block.message.name = Wiadomość
block.illuminator.name = Illuminator block.illuminator.name = Iluminator
block.overflow-gate.name = Brama Przepełnieniowa block.overflow-gate.name = Brama Przepełnieniowa
block.underflow-gate.name = Brama Niedomiaru block.underflow-gate.name = Brama Niedomiaru
block.silicon-smelter.name = Huta Krzemu block.silicon-smelter.name = Huta Krzemu
@@ -1397,7 +1432,7 @@ block.phase-conveyor.description = Zaawansowany blok transportowy dla przedmiot
block.sorter.description = Sortuje przedmioty. Jeśli przedmiot pasuje to przechodzi dalej, jeśli nie - to przechodzi na boki. block.sorter.description = Sortuje przedmioty. Jeśli przedmiot pasuje to przechodzi dalej, jeśli nie - to przechodzi na boki.
block.inverted-sorter.description = Sortuje przedmioty jak zwykły sortownik, ale odpowiednie surowce wyciągane są na boki. block.inverted-sorter.description = Sortuje przedmioty jak zwykły sortownik, ale odpowiednie surowce wyciągane są na boki.
block.router.description = Akceptuje przedmioty z jednego miejsca i rozdziela je do trzech innych kierunków. Przydatne w rozdzielaniu materiałów z jednego źródła do wielu celów.\n\n[scarlet]Nigdy nie używaj przy punkcje wejścia materiałów produkcyjnych, ponieważ zostaną one zatkane przez materiały wyjściowe.[] block.router.description = Akceptuje przedmioty z jednego miejsca i rozdziela je do trzech innych kierunków. Przydatne w rozdzielaniu materiałów z jednego źródła do wielu celów.\n\n[scarlet]Nigdy nie używaj przy punkcje wejścia materiałów produkcyjnych, ponieważ zostaną one zatkane przez materiały wyjściowe.[]
block.router.details = Konieczne zło. Nie zaleca się stosowania obok nakładów produkcyjnych, ponieważ zostaną one zatkane. block.router.details = Nieuniknione zło. Nie zaleca się stosowania obok nakładów produkcyjnych, ponieważ zostaną one zatkane.
block.distributor.description = Zaawansowany rozdzielacz, rozdzielający przedmioty do 7 innych kierunków. block.distributor.description = Zaawansowany rozdzielacz, rozdzielający przedmioty do 7 innych kierunków.
block.overflow-gate.description = Rozdzielacz, który przerzuca przedmioty, kiedy główna droga jest przepełniona. block.overflow-gate.description = Rozdzielacz, który przerzuca przedmioty, kiedy główna droga jest przepełniona.
block.underflow-gate.description = Odwrotność bramy przepełnieniowej, który przepuszcza przedmioty główną drogą, gdy boczne drogi są przepełnione. block.underflow-gate.description = Odwrotność bramy przepełnieniowej, który przepuszcza przedmioty główną drogą, gdy boczne drogi są przepełnione.
@@ -1517,150 +1552,155 @@ unit.risso.description = Strzela sporą ilością pocisków i rakiet w najbliżs
unit.minke.description = Strzela granatami i standardowymi pociskami w najbliższych przeciwników. unit.minke.description = Strzela granatami i standardowymi pociskami w najbliższych przeciwników.
unit.bryde.description = Strzela granatami i rakietami na dużą odległość we wrogów. unit.bryde.description = Strzela granatami i rakietami na dużą odległość we wrogów.
unit.sei.description = Strzela dużą ilością rakiet oraz przebijających zbroje pocisków we wrogów. unit.sei.description = Strzela dużą ilością rakiet oraz przebijających zbroje pocisków we wrogów.
unit.omura.description = Strzela przebijającym superszybkim pociskiem we wrogów ze sporej odległości. Produkuje Błyski (jednostki). unit.omura.description = Strzela przebijającym superszybkim pociskiem we wrogów ze sporej odległości. Produkuje jednostki Flare.
unit.alpha.description = Chroni Rdzeń: Odłamek przed wrogami. Buduje struktury. unit.alpha.description = Chroni Rdzeń: Odłamek przed wrogami. Buduje struktury.
unit.beta.description = Chroni Rdzeń: Podstawa przed wrogami. Buduje struktury. unit.beta.description = Chroni Rdzeń: Podstawa przed wrogami. Buduje struktury.
unit.gamma.description = Chroni Rdzeń: Jądro przed wrogami. Buduje struktury. unit.gamma.description = Chroni Rdzeń: Jądro przed wrogami. Buduje struktury.
lst.read = Read a number from a linked memory cell. lst.read = Wczytuje liczbę z połączonej komórki pamięci.
lst.write = Write a number to a linked memory cell. lst.write = Zapisuje liczbę do połączonej komórki pamięci.
lst.print = Add text to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used. lst.print = Dodaje tekst do buforu drukującego.\nNie wyświetla niczego dopóki [accent]Print Flush[] nie jest użyte.
lst.draw = Add an operation to the drawing buffer.\nDoes not display anything until [accent]Draw Flush[] is used. lst.draw = Dodaje operacje do buforu rysującego.\nNie wyświetla niczego dopóki [accent]Draw Flush[] nie jest użyte.
lst.drawflush = Flush queued [accent]Draw[] operations to a display. lst.drawflush = Wyświetla oczekujące operacje z funkcji [accent]Draw[] na wyświetlaczu.
lst.printflush = Flush queued [accent]Print[] operations to a message block. lst.printflush = Dodaje oczekujące operacje z funkcji [accent]Print[] do bloku wiadomości.
lst.getlink = Get a processor link by index. Starts at 0. lst.getlink = Zdobywa połączenie procesora przez indeks. Zaczyna się od 0.
lst.control = Control a building. lst.control = Kontroluje budynek.
lst.radar = Locate units around a building with range. lst.radar = Lokalizuje jednostki wokół budynku w jego zasięgu.
lst.sensor = Get data from a building or unit. lst.sensor = Zdobywa dane z budynku lub jednostki.
lst.set = Set a variable. lst.set = Ustawia zmienną.
lst.operation = Perform an operation on 1-2 variables. lst.operation = Wykonuje operację na 1-2 zmiennych.
lst.end = Jump to the top of the instruction stack. lst.end = Przeskakuje na początek stosu instrukcji.
lst.jump = Conditionally jump to another statement. lst.wait = Czeka określoną liczbę sekund.
lst.unitbind = Bind to the next unit of a type, and store it in [accent]@unit[]. lst.lookup = Znajduje typ przedmiotu/cieczy/jednostki/bloku poprzez ID.\nCałkowite zliczenia każdego typu można uzyskać za pomocą:\n[accent]@unitCount[] / [accent]@itemCount[] / [accent]@liquidCount[] / [accent]@blockCount[]
lst.unitcontrol = Control the currently bound unit. lst.jump = Warunkowo przeskakuje do innego stanu.
lst.unitradar = Locate units around the currently bound unit. lst.unitbind = Powiązuje z następną jednostką danego typu i przechowuje ją w [accent]@unit[].
lst.unitlocate = Locate a specific type of position/building anywhere on the map.\nRequires a bound unit. lst.unitcontrol = Kontroluje obecnie powiązaną jednostkę.
lst.unitradar = Lokalizuje jednostki wokół obecnie powiązanej jednostki.
lst.unitlocate = Lokalizuje specyficzny typ pozycji/budynku gdziekolwiek na mapie.\nWymaga powiązanej jednostki.
logic.nounitbuild = [red]Unit building logic is not allowed here. logic.nounitbuild = [red]Logika budowania jednostek nie jest tu dozwolona.
lenum.type = Type of building/unit.\ne.g. for any router, this will return [accent]@router[].\nNot a string. lenum.type = Typ budynku/jednostki.\nnp. dla każdego rozdzielacza, zwróci [accent]@router[].\nNie jest łańcuchem znaków (string).
lenum.shoot = Shoot at a position. lenum.shoot = Strzel w określoną pozycje.
lenum.shootp = Shoot at a unit/building with velocity prediction. lenum.shootp = Strzel w jednostkę/budynek z przewidywaną prędkością.
lenum.configure = Building configuration, e.g. sorter item. lenum.configure = Konfiguracja budowania, np. sortowany przedmiot w sortowniku.
lenum.enabled = Whether the block is enabled. lenum.enabled = Sprawdza czy blok jest włączony.
laccess.color = Illuminator color. laccess.color = Kolor iluminatora.
laccess.controller = Unit controller. If processor controlled, returns processor.\nIf in a formation, returns leader.\nOtherwise, returns the unit itself. laccess.controller = Kontroler jednostki. Jeśli jest kontrolowana przez procesor, zwraca procesor.\nJeśli we formacji, zwracja przywódcę.\nW innym wypadku zwraca samą jednostkę.
laccess.dead = Whether a unit/building is dead or no longer valid. laccess.dead = Sprawdza czy jednostka/budynek jest zniszczony lub już nie istnieje.
laccess.controlled = Returns:\n[accent]@ctrlProcessor[] if unit controller is processor\n[accent]@ctrlPlayer[] if unit/building controller is player\n[accent]@ctrlFormation[] if unit is in formation\nOtherwise, 0. laccess.controlled = Zwraca:\n[accent]@ctrlProcessor[] jeśli kontrolerem jednostki jest procesor\n[accent]@ctrlPlayer[] jeśli kontrolerem jednostki/budynku jest gracz\n[accent]@ctrlFormation[] jeśli jednostka jest w formacji\nW innym wypadku 0.
laccess.commanded = [red]Deprecated. Will be removed![]\nUse [accent]controlled[] instead. laccess.commanded = [red]Przestarzałe. Zostanie usunięte![]\nZamiast tego użyj [accent]controlled[].
laccess.progress = Postęp akcji, od 0 do 1.\nZwraca produkcję, przeładowanie wieżyczki lub postęp konstrukcji.
graphicstype.clear = Fill the display with a color. graphicstype.clear = Wypełnia wyświetlacz kolorem.
graphicstype.color = Set color for next drawing operations. graphicstype.color = Ustawia kolor następnych operacji rysujących.
graphicstype.stroke = Set line width. graphicstype.stroke = Ustawia grubość linii.
graphicstype.line = Draw line segment. graphicstype.line = Rysuje segment linii.
graphicstype.rect = Fill a rectangle. graphicstype.rect = Wypełnia prostokąt.
graphicstype.linerect = Draw a rectangle outline. graphicstype.linerect = Rysuje obwód prostokąta.
graphicstype.poly = Fill a regular polygon. graphicstype.poly = Wypełnia regularny wielokąt.
graphicstype.linepoly = Draw a regular polygon outline. graphicstype.linepoly = Rysuje obwód regularnego wielokąta.
graphicstype.triangle = Fill a triangle. graphicstype.triangle = Wypełnia trójkąt.
graphicstype.image = Draw an image of some content.\nex: [accent]@router[] or [accent]@dagger[]. graphicstype.image = Rysuje ikonę jakiejś treści.\nnp. [accent]@router[] lub [accent]@dagger[].
lenum.always = Always true. lenum.always = Zawsze prawda.
lenum.idiv = Integer division. lenum.idiv = Dzielenie liczb całkowitych.
lenum.div = Division.\nReturns [accent]null[] on divide-by-zero. lenum.div = Dzielenie.\nZwraca [accent]null[] w trakcie dzielenia przez zero.
lenum.mod = Modulo. lenum.mod = Modulo.
lenum.equal = Equal. Coerces types.\nNon-null objects compared with numbers become 1, otherwise 0. lenum.equal = Równość. Wymusza typ.\nNiezerowe objekty połączone z liczbami stają się 1, w innym wypadku 0.
lenum.notequal = Not equal. Coerces types. lenum.notequal = Nierówność. Wymusza typ.
lenum.strictequal = Strict equality. Does not coerce types.\nCan be used to check for [accent]null[]. lenum.strictequal = Ścisła równość. Nie wymusza typów.\nMoże być użyte do wykrycia [accent]null[].
lenum.shl = Bit-shift left. lenum.shl = Przesunięcie bitowe w lewo.
lenum.shr = Bit-shift right. lenum.shr = Przesunięcie bitowe w prawo.
lenum.or = Bitwise OR. lenum.or = Bitowe OR (lub).
lenum.land = Logical AND. lenum.land = Logiczne AND (i).
lenum.and = Bitwise AND. lenum.and = Bitowe AND (i).
lenum.not = Bitwise flip. lenum.not = Bitowe NOT.
lenum.xor = Bitwise XOR. lenum.xor = Bitowe XOR.
lenum.min = Minimum dwóch liczb.
lenum.max = Maksimum dwóch liczb.
lenum.angle = Kąt wektoru w stopniach.
lenum.len = Długość wektoru.
lenum.sin = Sinus, w stopniach.
lenum.cos = Cosinus, w stopniach.
lenum.tan = Tangens, w stopniach.
lenum.min = Minimum of two numbers.
lenum.max = Maximum of two numbers.
lenum.angle = Angle of vector in degrees.
lenum.len = Length of vector.
lenum.sin = Sine, in degrees.
lenum.cos = Cosine, in degrees.
lenum.tan = Tangent, in degrees.
#not a typo, look up 'range notation' #not a typo, look up 'range notation'
lenum.rand = Random decimal in range [0, value). lenum.rand = Losowa liczba w przedziale [0, wartość).
lenum.log = Natural logarithm (ln). lenum.log = Logarytm naturalny (ln).
lenum.log10 = Base 10 logarithm. lenum.log10 = Logarytm o podstawie 10.
lenum.noise = 2D simplex noise. lenum.noise = Szum simplex 2D.
lenum.abs = Absolute value. lenum.abs = Wartość bezwzględna.
lenum.sqrt = Square root. lenum.sqrt = Pierwiastek kwadratowy.
lenum.any = Any unit. lenum.any = Dowolna jednostka.
lenum.ally = Ally unit. lenum.ally = Sojusznicza jednostka.
lenum.attacker = Unit with a weapon. lenum.attacker = Jednostka z bronią.
lenum.enemy = Enemy unit. lenum.enemy = Przeciwnik.
lenum.boss = Guardian unit. lenum.boss = Strażnik.
lenum.flying = Flying unit. lenum.flying = Latająca jednostka.
lenum.ground = Ground unit. lenum.ground = Jednostka lądowa.
lenum.player = Unit controlled by a player. lenum.player = Jednostka kontrolowana przez gracza.
lenum.ore = Ore deposit. lenum.ore = Depozyt rudy.
lenum.damaged = Damaged ally building. lenum.damaged = Uszkodzony sojuszniczy budynek.
lenum.spawn = Enemy spawn point.\nMay be a core or a position. lenum.spawn = Punkt zrzutu przeciwnika.\nMoże być rdzeniem lub pozycją.
lenum.building = Building in a specific group. lenum.building = Budynek ze specyficznej grupy.
lenum.core = Any core. lenum.core = Dowolny rdzeń.
lenum.storage = Storage building, e.g. Vault. lenum.storage = Budynek przechowujący, np. Magazyn.
lenum.generator = Buildings that generate power. lenum.generator = Budynki generujące prąd.
lenum.factory = Buildings that transform resources. lenum.factory = Budynki przetwarzające surowce.
lenum.repair = Repair points. lenum.repair = Punkty naprawy.
lenum.rally = Command center. lenum.rally = Centrum dowodzenia.
lenum.battery = Any battery. lenum.battery = Dowolna bateria.
lenum.resupply = Resupply points.\nOnly relevant when [accent]"Unit Ammo"[] is enabled. lenum.resupply = Punkty uzupełniające.\nMa znaczenie tylko gdy [accent]"Unit Ammo"[] jest załączone.
lenum.reactor = Impact/Thorium reactor. lenum.reactor = Reaktor uderzeniowy/torowy.
lenum.turret = Any turret. lenum.turret = Dowolna wieżyczka.
sensor.in = The building/unit to sense. sensor.in = Wykrywany budynek/jednostka.
radar.from = Building to sense from.\nSensor range is limited by building range. radar.from = Budynek wykrywający.\nZasięg czujnika jest limitowany przez zasięg budynku.
radar.target = Filter for units to sense. radar.target = Filtr wykrywanych jednostek.
radar.and = Additional filters. radar.and = Dodatkowe filtry.
radar.order = Sorting order. 0 to reverse. radar.order = Kolejność sortowania. 0 aby odwrócić.
radar.sort = Metric to sort results by. radar.sort = Wartość, według której będą sortowane wyniki.
radar.output = Variable to write output unit to. radar.output = Zmienna, do której zostanie przypisana jednostka wyjściowa.
unitradar.target = Filter for units to sense. unitradar.target = Filtr wykrywanych jednostek.
unitradar.and = Additional filters. unitradar.and = Dodatkowe filtry.
unitradar.order = Sorting order. 0 to reverse. unitradar.order = Kolejność sortowania. 0 aby odwrócić.
unitradar.sort = Metric to sort results by. unitradar.sort = Wartość, według której będą sortowane wyniki.
unitradar.output = Variable to write output unit to. unitradar.output = Zmienna, do której zostanie przypisana jednostka wyjściowa.
control.of = Building to control. control.of = Kontrolowany budynek.
control.unit = Unit/building to aim at. control.unit = Jednostka/budynek, w którą ma celować.
control.shoot = Whether to shoot. control.shoot = Strzelanie.
unitlocate.enemy = Whether to locate enemy buildings. unitlocate.enemy = Lokalizowanie budynków przeciwnika.
unitlocate.found = Whether the object was found. unitlocate.found = Znalezienie obiektu.
unitlocate.building = Output variable for located building. unitlocate.building = Zmienna wyjściowa dla zlokalizowanego budynku.
unitlocate.outx = Output X coordinate. unitlocate.outx = Wyjściowy koordynat X.
unitlocate.outy = Output Y coordinate. unitlocate.outy = Wyjściowy koordynat Y.
unitlocate.group = Building group to look for. unitlocate.group = Grupa szukanych budynków.
lenum.idle = Don't move, but keep building/mining.\nThe default state. lenum.idle = Przestań się poruszać, jednak nadal buduj/wydobywaj.\nDomyślny stan.
lenum.stop = Stop moving/mining/building. lenum.stop = Przestań poruszać się/kopać/budować.
lenum.move = Move to exact position. lenum.move = Przemieść się do określonej pozycji.
lenum.approach = Approach a position with a radius. lenum.approach = Podejdź do pozycji w promieniu.
lenum.pathfind = Pathfind to the enemy spawn. lenum.pathfind = Odnajdź ścieżkę do punktu zrzutu przeciwników.
lenum.target = Shoot a position. lenum.target = Strzel w określoną pozycje.
lenum.targetp = Shoot a target with velocity prediction. lenum.targetp = Strzel w jednostkę/budynek z przewidywaną prędkością.
lenum.itemdrop = Drop an item. lenum.itemdrop = Upuść przedmiot.
lenum.itemtake = Take an item from a building. lenum.itemtake = Zabierz przedmiot z budynku.
lenum.paydrop = Drop current payload. lenum.paydrop = Upuść obecny ładunek.
lenum.paytake = Pick up payload at current location. lenum.paytake = Podnieś ładunek z obecnego miejsca.
lenum.flag = Numeric unit flag. lenum.flag = Numeryczny znacznik jednostki.
lenum.mine = Mine at a position. lenum.mine = Kop na danej pozycji.
lenum.build = Build a structure. lenum.build = Buduj strukturę.
lenum.getblock = Fetch a building and type at coordinates.\nUnit must be in range of position.\nSolid non-buildings will have the type [accent]@solid[]. lenum.getblock = Pobierz budynek i typ z koordynatów.\nJednostka musi być w zasięgu pozycji.\nSolidne niebudynki będą miały typ [accent]@solid[].
lenum.within = Check if unit is near a position. lenum.within = Sprawdź czy jednostka jest w pobliżu pozycji.
lenum.boost = Start/stop boosting. lenum.boost = Zacznij/zakończ boostować.

View File

@@ -100,6 +100,7 @@ joingame = Intră în Joc
customgame = Personalizat customgame = Personalizat
newgame = Joc Nou newgame = Joc Nou
none.found = [lightgray]<nu s-a găsit nimic> none.found = [lightgray]<nu s-a găsit nimic>
none.inmap = [lightgray]<niciunul pe hartă>
none = <nimic> none = <nimic>
minimap = Minihartă minimap = Minihartă
position = Poziție position = Poziție
@@ -564,7 +565,8 @@ weather.fog.name = Ceață
sectors.unexplored = [lightgray]Neexplorat sectors.unexplored = [lightgray]Neexplorat
sectors.resources = Resurse: sectors.resources = Resurse:
sectors.production = Producție: sectors.production = Producție:
sectors.export = Export: sectors.export = Exportă:
sectors.import = Importă:
sectors.time = Timp: sectors.time = Timp:
sectors.threat = Amenințare: sectors.threat = Amenințare:
sectors.wave = Valul: sectors.wave = Valul:
@@ -643,7 +645,7 @@ status.electrified.name = Electrificat
status.spore-slowed.name = Încetinit de Spori status.spore-slowed.name = Încetinit de Spori
status.tarred.name = Păcurit status.tarred.name = Păcurit
status.overclock.name = Suprasolicitat status.overclock.name = Suprasolicitat
status.shocked.name = Șoc status.shocked.name = Electrocutat
status.blasted.name = Explozie status.blasted.name = Explozie
status.unmoving.name = Nemișcat status.unmoving.name = Nemișcat
@@ -724,7 +726,7 @@ stat.maxconsecutive = Maxim Consecutive
stat.buildcost = Cost Construcție stat.buildcost = Cost Construcție
stat.inaccuracy = Inacuratețe stat.inaccuracy = Inacuratețe
stat.shots = Lovituri stat.shots = Lovituri
stat.reload = Lovituri/Secundă stat.reload = Rata de Tragere
stat.ammo = Muniție stat.ammo = Muniție
stat.shieldhealth = Viață Scut stat.shieldhealth = Viață Scut
stat.cooldowntime = Timp de Reîncărcare stat.cooldowntime = Timp de Reîncărcare
@@ -793,10 +795,10 @@ bullet.damage = [stat]{0}[lightgray] forță
bullet.splashdamage = [stat]{0}[lightgray] forță pe raza ~[stat] {1}[lightgray] pătrate bullet.splashdamage = [stat]{0}[lightgray] forță pe raza ~[stat] {1}[lightgray] pătrate
bullet.incendiary = [stat]incendiar bullet.incendiary = [stat]incendiar
bullet.homing = [stat]cu radar bullet.homing = [stat]cu radar
bullet.frag = [stat]se sparge 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
bullet.knockback = [stat]{0} [lightgray]împingere bullet.knockback = [stat]{0}[lightgray] împingere
bullet.pierce = [stat]{0}[lightgray]x penetrează bullet.pierce = [stat]{0}[lightgray]x penetrează
bullet.infinitepierce = [stat]penetrează bullet.infinitepierce = [stat]penetrează
bullet.healpercent = [stat]{0}[lightgray]% reparare bullet.healpercent = [stat]{0}[lightgray]% reparare
@@ -806,6 +808,7 @@ bullet.reload = [stat]{0}[lightgray]x lovituri
unit.blocks = blocuri unit.blocks = blocuri
unit.blockssquared = blocuri² unit.blockssquared = blocuri²
unit.powersecond = electricitate/secundă unit.powersecond = electricitate/secundă
unit.tilessecond = pătrate/secundă
unit.liquidsecond = unități lichid/secundă unit.liquidsecond = unități lichid/secundă
unit.itemssecond = materiale/secundă unit.itemssecond = materiale/secundă
unit.liquidunits = unități lichid unit.liquidunits = unități lichid
@@ -821,7 +824,7 @@ unit.shieldhealth = viață scut
unit.items = materiale unit.items = materiale
unit.thousands = mii unit.thousands = mii
unit.millions = mil unit.millions = mil
unit.billions = b unit.billions = mld
unit.pershot = /lovitură unit.pershot = /lovitură
category.purpose = Utilizare category.purpose = Utilizare
category.general = General category.general = General
@@ -844,7 +847,6 @@ setting.doubletapmine.name = Dublu-Click pt a Mina
setting.modcrashdisable.name = Dezactivează Modurile în Cazul unui Crash la Pornire setting.modcrashdisable.name = Dezactivează Modurile în Cazul unui Crash la Pornire
setting.animatedwater.name = Suprafețe Animate setting.animatedwater.name = Suprafețe Animate
setting.animatedshields.name = Scuturi Animate setting.animatedshields.name = Scuturi Animate
setting.antialias.name = Antialiasing[lightgray] (necesită repornire)[]
setting.playerindicators.name = Indicatori Jucător setting.playerindicators.name = Indicatori Jucător
setting.indicators.name = Indicatori Inamic setting.indicators.name = Indicatori Inamic
setting.autotarget.name = Auto-Țintire setting.autotarget.name = Auto-Țintire
@@ -853,7 +855,8 @@ setting.touchscreen.name = Controale Touchscreen
setting.fpscap.name = FPS Maxim setting.fpscap.name = FPS Maxim
setting.fpscap.none = Niciuna setting.fpscap.none = Niciuna
setting.fpscap.text = FPS (0) setting.fpscap.text = FPS (0)
setting.uiscale.name = Scară Interfață [lightgray] (repornirea necesară)[] setting.uiscale.name = Scară Interfață
setting.uiscale.description = Repornire necesară pt a aplica schimbările.
setting.swapdiagonal.name = Plasează Mereu Diagonal setting.swapdiagonal.name = Plasează Mereu Diagonal
setting.difficulty.training = Antrenament setting.difficulty.training = Antrenament
setting.difficulty.easy = Ușor setting.difficulty.easy = Ușor
@@ -871,7 +874,8 @@ setting.saveinterval.name = Interval de Salvare
setting.seconds = {0} secunde setting.seconds = {0} secunde
setting.milliseconds = {0} millisecunde setting.milliseconds = {0} millisecunde
setting.fullscreen.name = Ecran Complet setting.fullscreen.name = Ecran Complet
setting.borderlesswindow.name = Fereastră Fără Margine[lightgray] (repornirea poate fi necesară) setting.borderlesswindow.name = Fereastră Fără Margine
setting.borderlesswindow.description = Repornirea poate fi necesară pt a aplica schimbările.
setting.fps.name = Vezi FPS & Ping setting.fps.name = Vezi FPS & Ping
setting.smoothcamera.name = Cameră Graduală setting.smoothcamera.name = Cameră Graduală
setting.vsync.name = VSync setting.vsync.name = VSync
@@ -994,6 +998,7 @@ rules.wavetimer = Valuri pe Timp
rules.waves = Valuri rules.waves = Valuri
rules.attack = Modul Atac rules.attack = Modul Atac
rules.buildai = AI-ul Construiește rules.buildai = AI-ul Construiește
rules.cleanupdeadteams = Îndepărtează Clădirile Echipelor Învinse (PvP)
rules.corecapture = Capturează Nucleele Distruse rules.corecapture = Capturează Nucleele Distruse
rules.enemyCheat = Resurse infinite pt AI (echipa roșie) rules.enemyCheat = Resurse infinite pt AI (echipa roșie)
rules.blockhealthmultiplier = Multiplicatorul Vieții Blocurilor rules.blockhealthmultiplier = Multiplicatorul Vieții Blocurilor
@@ -1278,7 +1283,7 @@ block.surge-wall.name = Perete de Aliaj
block.surge-wall-large.name = Perete Mare de Aliaj block.surge-wall-large.name = Perete Mare de Aliaj
block.cyclone.name = Ciclon block.cyclone.name = Ciclon
block.fuse.name = Fuse block.fuse.name = Fuse
block.shock-mine.name = Mină cu Șocuri block.shock-mine.name = Mină cu Electroșocuri
block.overdrive-projector.name = Proiector de Suprasolicitare block.overdrive-projector.name = Proiector de Suprasolicitare
block.force-projector.name = Proiector de Forță block.force-projector.name = Proiector de Forță
block.arc.name = Arc block.arc.name = Arc
@@ -1288,7 +1293,6 @@ block.meltdown.name = Meltdown
block.foreshadow.name = Foreshadow block.foreshadow.name = Foreshadow
block.container.name = Container block.container.name = Container
block.launch-pad.name = Platformă de Lansare block.launch-pad.name = Platformă de Lansare
block.launch-pad-large.name = Platformă de Lansare Mare
block.segment.name = Segment block.segment.name = Segment
block.command-center.name = Centru de Comandă block.command-center.name = Centru de Comandă
block.ground-factory.name = Fabrică Unități Artilerie block.ground-factory.name = Fabrică Unități Artilerie
@@ -1348,6 +1352,7 @@ hint.placeTurret = Construiește \uf861 [accent]Arme[] pt a-ți apăra baza de i
hint.breaking = Ține apăsat [accent]click-dreapta[] și trage pe ecran pt a distruge blocuri. hint.breaking = Ține apăsat [accent]click-dreapta[] și trage pe ecran pt a distruge blocuri.
hint.breaking.mobile = Activează \ue817 [accent]ciocanul[] din dreapta-jos și dă click pt a distruge blocuri.\n\nȚine apăsat cu degetul pt o secundă și trage pt a distruge mai multe blocuri deodată. hint.breaking.mobile = Activează \ue817 [accent]ciocanul[] din dreapta-jos și dă click pt a distruge blocuri.\n\nȚine apăsat cu degetul pt o secundă și trage pt a distruge mai multe blocuri deodată.
hint.blockInfo = Poți vedea informații despre un bloc selectându-l în [accent]meniul de construcție[] și dând click pe butonul [accent][[?][] din dreapta. hint.blockInfo = Poți vedea informații despre un bloc selectându-l în [accent]meniul de construcție[] și dând click pe butonul [accent][[?][] din dreapta.
hint.derelict = [accent]Structurile abandonate[] sunt rămășițe stricate ale bazelor vechi care nu mai funcționează.\n\nAceste structuri pot fi [accent]deconstruite[] pt resurse.
hint.research = Folosește butonul \ue875 [accent]Cercetează[] pt a cerceta noi tehnologii. hint.research = Folosește butonul \ue875 [accent]Cercetează[] pt a cerceta noi tehnologii.
hint.research.mobile = Folosește butonul \ue875 [accent]Cercetează[] din \ue88c [accent]Meniu[] pt a cerceta noi tehnologii. hint.research.mobile = Folosește butonul \ue875 [accent]Cercetează[] din \ue88c [accent]Meniu[] pt a cerceta noi tehnologii.
hint.unitControl = Ține apăsat [accent][[Ctrl][] și [accent]dă click[] pt a controla unități aliate sau arme. hint.unitControl = Ține apăsat [accent][[Ctrl][] și [accent]dă click[] pt a controla unități aliate sau arme.
@@ -1399,6 +1404,7 @@ liquid.slag.description = Rafinată în separatoare înapoi în materialele cons
liquid.oil.description = Folosit în producerea avansată de materiale și ca muniție incendiară. liquid.oil.description = Folosit în producerea avansată de materiale și ca muniție incendiară.
liquid.cryofluid.description = Folosit ca răcitor în reactoare, arme și fabrici. liquid.cryofluid.description = Folosit ca răcitor în reactoare, arme și fabrici.
block.derelict = [lightgray] Structuri Abandonate
block.resupply-point.description = Realimentează unitățile din apropiere cu muniție de cupru. Nu este compatibil cu unitățile care se încarcă din baterii. block.resupply-point.description = Realimentează unitățile din apropiere cu muniție de cupru. Nu este compatibil cu unitățile care se încarcă din baterii.
block.armored-conveyor.description = Transportă materialele înainte. Nu acceptă materiale de pe lateral decât de la alte benzi. block.armored-conveyor.description = Transportă materialele înainte. Nu acceptă materiale de pe lateral decât de la alte benzi.
block.illuminator.description = Emite lumină. block.illuminator.description = Emite lumină.
@@ -1457,7 +1463,7 @@ block.router.details = Un rău necesar. Nu folosi niciodată pt a introduce mate
block.distributor.description = Distribuie materialele primite în alte 7 direcții în mod egal. block.distributor.description = Distribuie materialele primite în alte 7 direcții în mod egal.
block.overflow-gate.description = Transportă materialele doar la stânga și dreapta dacă drumul din față este blocat. block.overflow-gate.description = Transportă materialele doar la stânga și dreapta dacă drumul din față este blocat.
block.underflow-gate.description = Opusul porții de revărsare. Transportă materialele în față dacă benzile din stânga și dreapta sunt blocate. block.underflow-gate.description = Opusul porții de revărsare. Transportă materialele în față dacă benzile din stânga și dreapta sunt blocate.
block.mass-driver.description = Dispozitiv folosit pt transportul materialelor pe distanțe mari. Adună mai multe materiale și apoi le lansează până la un alt distributor în masă pe o rază mare. block.mass-driver.description = Structură de transport al materialelor pe distanțe mari. Adună mai multe materiale și apoi le lansează către un alt distributor în masă.
block.mechanical-pump.description = Pompează lichide din mediul înconjurător. Nu necesită electricitate. block.mechanical-pump.description = Pompează lichide din mediul înconjurător. Nu necesită electricitate.
block.rotary-pump.description = Pompează lichide din mediul înconjurător. Necesită electricitate. block.rotary-pump.description = Pompează lichide din mediul înconjurător. Necesită electricitate.
block.thermal-pump.description = Pompează lichide din mediul înconjurător. block.thermal-pump.description = Pompează lichide din mediul înconjurător.
@@ -1543,6 +1549,8 @@ block.memory-bank.description = Stochează informație pt un procesor. Capacitat
block.logic-display.description = Afișează grafica transmisă de un procesor logic. block.logic-display.description = Afișează grafica transmisă de un procesor logic.
block.large-logic-display.description = Afișează grafica transmisă de un procesor logic. block.large-logic-display.description = Afișează grafica transmisă de un procesor logic.
block.interplanetary-accelerator.description = Un turn masiv cu o armă railgun electromagnetică. Accelerează nucleele la viteză cosmică pt lansare interplanetară. block.interplanetary-accelerator.description = Un turn masiv cu o armă railgun electromagnetică. Accelerează nucleele la viteză cosmică pt lansare interplanetară.
block.repair-turret.description = Repară încontinuu cea mai deteriorată unitate din vecinătate. Poate accepta răcitor.
block.payload-propulsion-tower.description = Structură de transport al încărcăturii pe distanțe mari. Lansează încărcătura către un alt turn propulsor conectat.
unit.dagger.description = Trage cu gloanțe standard către toți inamicii din apropiere. unit.dagger.description = Trage cu gloanțe standard către toți inamicii din apropiere.
unit.mace.description = Trage cu jeturi de flacără aprinsă către toți inamicii din apropiere. unit.mace.description = Trage cu jeturi de flacără aprinsă către toți inamicii din apropiere.
@@ -1577,6 +1585,11 @@ unit.omura.description = Trage cu un railgun cu gloanțe care penetrează scutur
unit.alpha.description = Apără nucleul Shard de inamici. Construiește structuri. unit.alpha.description = Apără nucleul Shard de inamici. Construiește structuri.
unit.beta.description = Apără nucleul Foundation de inamici. Construiește structuri. unit.beta.description = Apără nucleul Foundation de inamici. Construiește structuri.
unit.gamma.description = Apără nucleul Core de inamici. Construiește structuri. unit.gamma.description = Apără nucleul Core de inamici. Construiește structuri.
unit.retusa.description = Plasează mine de proximitate. Repară unitățile aliate.
unit.oxynoe.description = Trage cu jeturi de flacără către inamicii din apropiere, reparând structurile aliate. Țintește proiectilele inamice din apropiere cu o armă care le deteriorează și distruge.
unit.cyerce.description = Trage cu bombe cu dispersie echipate cu radar către inamici. Repară unitățile aliate.
unit.aegires.description = Electrocutează toate unitățile și structurile inamice care intră în câmpul său de energie. Repară toți aliații.
unit.navanax.description = Trage cu proiectile EMP explozive, lovind rețelele electrice inamice cu o forță semnificativă și reparând structurile aliate. Topește inamicii din apropiere cu cele 4 arme autonome cu laser.
lst.read = Citește un număr dintr-o celulă de memorie conectată. lst.read = Citește un număr dintr-o celulă de memorie conectată.
lst.write = Scrie un număr într-o celulă de memorie conectată. lst.write = Scrie un număr într-o celulă de memorie conectată.
@@ -1591,6 +1604,8 @@ lst.sensor = Obține date de la o clădire sau unitate.
lst.set = Setează o variabilă. lst.set = Setează o variabilă.
lst.operation = Efectuează o operație pe 1-2 variabile. lst.operation = Efectuează o operație pe 1-2 variabile.
lst.end = Sari la începutul listei de instrucțiuni. lst.end = Sari la începutul listei de instrucțiuni.
lst.wait = Așteaptă un anumit număr de secunde.
lst.lookup = Caută un tip de material/lichid/unitate/bloc după ID.\nNumărul total din fiecare tip poate fi accesat cu:\n[accent]@unitCount[] / [accent]@itemCount[] / [accent]@liquidCount[] / [accent]@blockCount[]
lst.jump = Dacă condiția este adevărată, mergi la o altă instrucțiune. lst.jump = Dacă condiția este adevărată, mergi la o altă instrucțiune.
lst.unitbind = Controlează următoarea unitate de tipul selectat și reține-o în [accent]@unit[]. lst.unitbind = Controlează următoarea unitate de tipul selectat și reține-o în [accent]@unit[].
lst.unitcontrol = Controlează unitatea controlată de procesor. lst.unitcontrol = Controlează unitatea controlată de procesor.

View File

@@ -806,6 +806,7 @@ bullet.reload = [stat]{0}[lightgray]x скорость стрельбы
unit.blocks = блоков unit.blocks = блоков
unit.blockssquared = блоков² unit.blockssquared = блоков²
unit.powersecond = единиц энергии/секунду unit.powersecond = единиц энергии/секунду
unit.tilessecond = плиток/секунду
unit.liquidsecond = жидкостных единиц/секунду unit.liquidsecond = жидкостных единиц/секунду
unit.itemssecond = предметов/секунду unit.itemssecond = предметов/секунду
unit.liquidunits = жидкостных единиц unit.liquidunits = жидкостных единиц
@@ -844,7 +845,6 @@ setting.doubletapmine.name = Добыча руды двойным нажатие
setting.modcrashdisable.name = Отключение модификаций после вылета при запуске setting.modcrashdisable.name = Отключение модификаций после вылета при запуске
setting.animatedwater.name = Анимированные поверхности setting.animatedwater.name = Анимированные поверхности
setting.animatedshields.name = Анимированные щиты setting.animatedshields.name = Анимированные щиты
setting.antialias.name = Сглаживание[lightgray] (требует перезапуска)[]
setting.playerindicators.name = Индикаторы направления игроков setting.playerindicators.name = Индикаторы направления игроков
setting.indicators.name = Индикаторы направления врагов setting.indicators.name = Индикаторы направления врагов
setting.autotarget.name = Автозахват цели setting.autotarget.name = Автозахват цели
@@ -853,7 +853,7 @@ setting.touchscreen.name = Сенсорное управление
setting.fpscap.name = Максимальный FPS setting.fpscap.name = Максимальный FPS
setting.fpscap.none = Неограниченный setting.fpscap.none = Неограниченный
setting.fpscap.text = {0} FPS setting.fpscap.text = {0} FPS
setting.uiscale.name = Масштаб пользовательского интерфейса[lightgray] (необходим перезапуск)[] setting.uiscale.name = Масштаб пользовательского интерфейса
setting.swapdiagonal.name = Всегда диагональное размещение setting.swapdiagonal.name = Всегда диагональное размещение
setting.difficulty.training = Обучение setting.difficulty.training = Обучение
setting.difficulty.easy = Лёгкая setting.difficulty.easy = Лёгкая
@@ -871,7 +871,7 @@ setting.saveinterval.name = Интервал сохранения
setting.seconds = {0} секунд setting.seconds = {0} секунд
setting.milliseconds = {0} миллисекунд setting.milliseconds = {0} миллисекунд
setting.fullscreen.name = Полноэкранный режим setting.fullscreen.name = Полноэкранный режим
setting.borderlesswindow.name = Безрамочное окно[lightgray] (может потребоваться перезапуск) setting.borderlesswindow.name = Безрамочное окно
setting.fps.name = Показывать FPS и пинг setting.fps.name = Показывать FPS и пинг
setting.smoothcamera.name = Плавная камера setting.smoothcamera.name = Плавная камера
setting.vsync.name = Вертикальная синхронизация setting.vsync.name = Вертикальная синхронизация
@@ -1570,7 +1570,7 @@ unit.mega.description = Автоматически ремонтирует пов
unit.quad.description = Сбрасывает большие бомбы на наземные цели, восстанавливая союзные постройки и повреждая врагов. Может переносить единицы среднего размера. unit.quad.description = Сбрасывает большие бомбы на наземные цели, восстанавливая союзные постройки и повреждая врагов. Может переносить единицы среднего размера.
unit.oct.description = Защищает союзников поблизости при помощи своего восстанавливающегося щита. Может переносить большинство наземных единиц. unit.oct.description = Защищает союзников поблизости при помощи своего восстанавливающегося щита. Может переносить большинство наземных единиц.
unit.risso.description = Стреляет залпами ракет и пуль по всем врагам поблизости. unit.risso.description = Стреляет залпами ракет и пуль по всем врагам поблизости.
unit.minke.description = Стреляет зажигательными снарядами и стандартными пулями по наземным целям. unit.minke.description = Стреляет артиллерийскими снарядами и стандартными пулями по наземным целям.
unit.bryde.description = Стреляет дальнобойными артиллерийскими снарядами и ракетами по врагам. unit.bryde.description = Стреляет дальнобойными артиллерийскими снарядами и ракетами по врагам.
unit.sei.description = Стреляет залпами ракет и бронебойных пуль по врагам. unit.sei.description = Стреляет залпами ракет и бронебойных пуль по врагам.
unit.omura.description = Стреляет дальнобойным пробивающим снарядом из рельсотрона по врагам. Производит единицы «Вспышка». unit.omura.description = Стреляет дальнобойным пробивающим снарядом из рельсотрона по врагам. Производит единицы «Вспышка».
@@ -1591,6 +1591,8 @@ lst.sensor = Получает данные из постройки или еди
lst.set = Устанавливает переменную. lst.set = Устанавливает переменную.
lst.operation = Совершает операцию над 1-2 переменными. lst.operation = Совершает операцию над 1-2 переменными.
lst.end = Переходит к началу стека операций. lst.end = Переходит к началу стека операций.
lst.wait = Ждёт определённое количество секунд.
lst.lookup = Находит тип предмета/жидкости/единицы/блока по ID.\nОбщее количество каждого типа может быть получено при помощи:\n[accent]@unitCount[] / [accent]@itemCount[] / [accent]@liquidCount[] / [accent]@blockCount[]
lst.jump = Условно переходит к другой операции. lst.jump = Условно переходит к другой операции.
lst.unitbind = Привязывается к единице определённого типа и сохраняет её в [accent]@unit[]. lst.unitbind = Привязывается к единице определённого типа и сохраняет её в [accent]@unit[].
lst.unitcontrol = Управляет привязанной в данный момент единицей. lst.unitcontrol = Управляет привязанной в данный момент единицей.

View File

@@ -5,7 +5,7 @@ discord = เข้าร่วมเซิร์ฟเวอร์ Discord ข
link.discord.description = พื้นที่พูดคุยอย่างเป็นทางการของ Mindustry link.discord.description = พื้นที่พูดคุยอย่างเป็นทางการของ Mindustry
link.reddit.description = Subreddit ของ Mindustry link.reddit.description = Subreddit ของ Mindustry
link.github.description = แหล่งโค้ดของเกม link.github.description = แหล่งโค้ดของเกม
link.changelog.description = รายการอัเดต link.changelog.description = รายการอัเดต
link.dev-builds.description = เวอร์ชั่นระหว่างพัฒนา (ไม่เสถียร) link.dev-builds.description = เวอร์ชั่นระหว่างพัฒนา (ไม่เสถียร)
link.trello.description = บอร์ด Trello อย่างเป็นทางการสำหรับฟีเจอร์ต่างๆ ที่วางแผนไว้ link.trello.description = บอร์ด Trello อย่างเป็นทางการสำหรับฟีเจอร์ต่างๆ ที่วางแผนไว้
link.itch.io.description = หน้าเว็บ itch.io สำหรับดาวน์โหลดบน PC link.itch.io.description = หน้าเว็บ itch.io สำหรับดาวน์โหลดบน PC
@@ -36,10 +36,10 @@ load.scripts = สคริปต์
be.update = เวอร์ชั่นรุ่นพัฒนาล่าสุดออกแล้ว: be.update = เวอร์ชั่นรุ่นพัฒนาล่าสุดออกแล้ว:
be.update.confirm = ดาวน์โหลดเวอร์ชั่นใหม่แล้วรีสตาร์ทเลยไหม? be.update.confirm = ดาวน์โหลดเวอร์ชั่นใหม่แล้วรีสตาร์ทเลยไหม?
be.updating = กำลังอัเดต... be.updating = กำลังอัเดต...
be.ignore = ยกเลิก be.ignore = ยกเลิก
be.noupdates = ไม่พบอัเดตใหม่ be.noupdates = ไม่พบอัเดตใหม่
be.check = ตรวจหาอัเดตใหม่ be.check = ตรวจหาอัเดตใหม่
mods.browser = ค้นหาม็อด mods.browser = ค้นหาม็อด
mods.browser.selected = เลือกแล้ว mods.browser.selected = เลือกแล้ว
@@ -93,7 +93,7 @@ level.highscore = คะแนนสูงสุด: [accent]{0}
level.mode = เกมโหมด: level.mode = เกมโหมด:
coreattack = < แกนกลางถูกโจมตี! > coreattack = < แกนกลางถูกโจมตี! >
nearpoint = [[ [scarlet]ออกจากจุดเกิดด่วน![] ]\nการทำลายล้างกำลังใกล้เข้ามา nearpoint = [[ [scarlet]ออกจากจุดเกิดด่วน![] ]\nการทำลายล้างกำลังใกล้เข้ามา
database = ฐานข้อมูลหลัก database = ฐานข้อมูลแกนกลาง
savegame = เซฟเกม savegame = เซฟเกม
loadgame = โหลดเกม loadgame = โหลดเกม
joingame = เข้าร่วมเกม joingame = เข้าร่วมเกม
@@ -101,6 +101,7 @@ customgame = เกมที่กำหนดเอง
newgame = เริ่มเกมใหม่ newgame = เริ่มเกมใหม่
none = <ไม่มี> none = <ไม่มี>
none.found = [lightgray]<ไม่เจออะไรเลย> none.found = [lightgray]<ไม่เจออะไรเลย>
none.inmap = [lightgray]<ไม่มีในแมพ>
minimap = มินิแมพ minimap = มินิแมพ
position = ตำแหน่ง position = ตำแหน่ง
close = ปิด close = ปิด
@@ -155,7 +156,7 @@ mod.jarwarn = [scarlet]ม็อดไฟล์ JAR นั้นค่อนข
mod.item.remove = ไอเท็มนี้เป็นส่วนหนึ่งของม็อด [accent]'{0}'[] หากต้องการนำออก กรุณาถอนการติดตั้งม็อดนั้น mod.item.remove = ไอเท็มนี้เป็นส่วนหนึ่งของม็อด [accent]'{0}'[] หากต้องการนำออก กรุณาถอนการติดตั้งม็อดนั้น
mod.remove.confirm = ม็อดนี้จะถูกลบ mod.remove.confirm = ม็อดนี้จะถูกลบ
mod.author = [lightgray]ผู้สร้าง:[] {0} mod.author = [lightgray]ผู้สร้าง:[] {0}
mod.missing = เซฟนี้มีม็อดที่คุณพึ่งอัเดตหรือไม่ได้ติดตั้งแล้ว อาจทำให้เซฟเสีย คุณแน่จะหรือว่าจะโหลดเซฟนี้?\n[lightgray]ม็อดที่ใช้:\n{0} mod.missing = เซฟนี้มีม็อดที่คุณพึ่งอัเดตหรือไม่ได้ติดตั้งแล้ว อาจทำให้เซฟเสีย คุณแน่จะหรือว่าจะโหลดเซฟนี้?\n[lightgray]ม็อดที่ใช้:\n{0}
mod.preview.missing = ก่อนที่จะนำม็อดไปลงในเวิร์กช็อป คุณต้องใส่รูปพรีวิวก่อน\nใส่รูปชื่อ[accent] preview.png[] ลงในโฟลเดอร์ของม็อดแล้วลองอีกครั้ง mod.preview.missing = ก่อนที่จะนำม็อดไปลงในเวิร์กช็อป คุณต้องใส่รูปพรีวิวก่อน\nใส่รูปชื่อ[accent] preview.png[] ลงในโฟลเดอร์ของม็อดแล้วลองอีกครั้ง
mod.folder.missing = ม็อดที่อยู่ในรูปแบบโฟลเดอร์เท่านั้นที่สามารถลงในเวิร์กช็อปได้\nunzip ไฟล์แล้วลบไฟล์ zip เก่า แล้วรีสตาร์ทเกมหรือรีโหลดม็อด mod.folder.missing = ม็อดที่อยู่ในรูปแบบโฟลเดอร์เท่านั้นที่สามารถลงในเวิร์กช็อปได้\nunzip ไฟล์แล้วลบไฟล์ zip เก่า แล้วรีสตาร์ทเกมหรือรีโหลดม็อด
mod.scripts.disable = เครื่องของคุณไม่รองรับม็อดที่มีสคริปต์ คุณจำเป็นต้องปิดม็อดเหล่านี้ก่อนจึงจะสามารถเล่นได้ mod.scripts.disable = เครื่องของคุณไม่รองรับม็อดที่มีสคริปต์ คุณจำเป็นต้องปิดม็อดเหล่านี้ก่อนจึงจะสามารถเล่นได้
@@ -166,10 +167,10 @@ noname = ใส่ชื่อ[accent]ผู้เล่น[]ก่อน
planetmap = แผนที่ดาวเคราะห์ planetmap = แผนที่ดาวเคราะห์
launchcore = ส่งแกนกลาง launchcore = ส่งแกนกลาง
filename = ชื่อไฟล์: filename = ชื่อไฟล์:
unlocked = เนื้อหาใหม่ปลดล็อ! unlocked = เนื้อหาใหม่ปลดล็อ!
available = มีการวิจัยใหม่พร้อมปลดล็อก! available = มีการวิจัยใหม่พร้อมปลดล็อก!
completed = [accent]วิจัยแล้ว completed = [accent]วิจัยแล้ว
techtree = การวิจัย techtree = ต้นไม้แห่งเทคโนโลยี
research.legacy = พบข้อมูลการวิจัยของเวอร์ชั่น [accent]5.0[]\nคุณต้องการ[accent]โหลดข้อมูล[]หรือ[accent]ทิ้งข้อมูลไป[]และเริ่มต้นวิจัยในแคมเปญใหม่ (แนะนำ) research.legacy = พบข้อมูลการวิจัยของเวอร์ชั่น [accent]5.0[]\nคุณต้องการ[accent]โหลดข้อมูล[]หรือ[accent]ทิ้งข้อมูลไป[]และเริ่มต้นวิจัยในแคมเปญใหม่ (แนะนำ)
research.load = โหลด research.load = โหลด
research.discard = ทอดทิ้ง research.discard = ทอดทิ้ง
@@ -186,19 +187,19 @@ server.kicked.kick = คุณถูกเตะออกจากเซิร
server.kicked.whitelist = คุณไม่ได้ถูกรับเชิญ\nคนที่ถูกรับเชิญเท่านั้นที่จะเข้าได้ server.kicked.whitelist = คุณไม่ได้ถูกรับเชิญ\nคนที่ถูกรับเชิญเท่านั้นที่จะเข้าได้
server.kicked.serverClose = เซิร์ฟเวอร์ถูกปิด server.kicked.serverClose = เซิร์ฟเวอร์ถูกปิด
server.kicked.vote = คุณถูกโหวตเตะออก บัยบาย server.kicked.vote = คุณถูกโหวตเตะออก บัยบาย
server.kicked.clientOutdated = ไคลเอนต์เก่า! กรุณาอัเดตเกมของคุณ! server.kicked.clientOutdated = ไคลเอนต์เก่า! กรุณาอัเดตเกมของคุณ!
server.kicked.serverOutdated = เซิร์ฟเวอร์เก่า! โปรดถามเจ้าของเซิร์ฟเวอร์เพื่ออัเดต! server.kicked.serverOutdated = เซิร์ฟเวอร์เก่า! โปรดถามเจ้าของเซิร์ฟเวอร์เพื่ออัเดต!
server.kicked.banned = คุณถูกแบนในเซิร์ฟเวอร์นี้ server.kicked.banned = คุณถูกแบนในเซิร์ฟเวอร์นี้
server.kicked.typeMismatch = เซิร์ฟเวอร์นี้ไม่เข้ากับประเภทบิลด์ของคุณ server.kicked.typeMismatch = เซิร์ฟเวอร์นี้ไม่เข้ากับประเภทบิลด์ของคุณ
server.kicked.playerLimit = เซิร์ฟเวอร์เต็ม กรุณารอให้เซิร์ฟเวอร์ว่างก่อน server.kicked.playerLimit = เซิร์ฟเวอร์เต็ม กรุณารอให้เซิร์ฟเวอร์ว่างก่อน
server.kicked.recentKick = คุณเพิ่งถูกเตะออกจากเซิร์ฟเวอร์นี้\nกรุณารอสักครู่เพื่อเข้าร่วมอีกครั้ง server.kicked.recentKick = คุณเพิ่งถูกเตะออกจากเซิร์ฟเวอร์นี้\nกรุณารอสักครู่เพื่อเข้าร่วมอีกครั้ง
server.kicked.nameInUse = มีคนที่ใช้ชืชื่อนี้\nอยู่ในเซิฟเวอร์แล้ว server.kicked.nameInUse = มีคนที่ใช้ชื่อนี้\nอยู่ในเซิร์ฟเวอร์แล้ว
server.kicked.nameEmpty = ชื่อของคุณไม่สามารถใช้ได้ server.kicked.nameEmpty = ชื่อของคุณไม่สามารถใช้ได้
server.kicked.idInUse = คุณเชื่อมต่อกับเซิร์ฟเวอร์นี้อยู่แล้ว เราไม่อนุญาตให้เชื่อมต่อสองบัญชีในเซิร์ฟเวอร์เดียวกัน server.kicked.idInUse = คุณเชื่อมต่อกับเซิร์ฟเวอร์นี้อยู่แล้ว เราไม่อนุญาตให้เชื่อมต่อสองบัญชีในเซิร์ฟเวอร์เดียวกัน
server.kicked.customClient = เซิร์ฟเวอร์นี้ไม่รองรับเวอร์ชั่นที่ถูกปรับแต่ง กรุณาโหลดเวอร์ชั่นอย่างเป็นทางการของ Mindustry server.kicked.customClient = เซิร์ฟเวอร์นี้ไม่รองรับเวอร์ชั่นที่ถูกปรับแต่ง กรุณาโหลดเวอร์ชั่นอย่างเป็นทางการของ Mindustry
server.kicked.gameover = จบเกม! server.kicked.gameover = จบเกม!
server.kicked.serverRestarting = เซิร์ฟเวอร์กำลังเริ่มใหม่ server.kicked.serverRestarting = เซิร์ฟเวอร์กำลังเริ่มใหม่
server.versions = เวอร์ชั่นของคุณ:[accent] {0}[]\nเวอร์ชั่นของเซิฟเวอร์:[accent] {1}[] server.versions = เวอร์ชั่นของคุณ:[accent] {0}[]\nเวอร์ชั่นของเซิร์ฟเวอร์:[accent] {1}[]
host.info = ปุ่ม[accent]โฮสต์[]นั้นโฮสต์เซิร์ฟเวอร์ที่พอร์ต [scarlet]6567[] \nทุกคนที่อยู่ใน [lightgray]Wi-Fi หรือเครือข่ายท้องถิ่น[]เดียวกันจะสามารถเห็นเซิร์ฟเวอร์ของคุณในรายชื่อของ\nเซิร์ฟเวอร์ได้\n\nถ้าคุณต้องการให้ผู้เล่นอื่นๆ สามารถเชื่อมต่อได้จากทุกที่โดยใช้ IP คุณจำเป็นจะต้องใช้การ[accent]การส่งต่อพอร์ต (Port Forwarding)[] \n\n[lightgray]โน๊ต: ถ้าผู้เล่นคนใดมีปัญหาในการเชื่อมต่อ LAN ของคุณ เช็คให้แน่ใจว่าคุณได้อนุญาตให้ Mindustry เข้าถึงเครือข่ายท้องถิ่นของคุณในการตั้งค่า Firewall จำไว้ว่าเครือข่ายสาธารณะบางครั้งอาจไม่อนุญาตการ\nค้นหาเซิร์ฟเวอร์ host.info = ปุ่ม[accent]โฮสต์[]นั้นโฮสต์เซิร์ฟเวอร์ที่พอร์ต [scarlet]6567[] \nทุกคนที่อยู่ใน [lightgray]Wi-Fi หรือเครือข่ายท้องถิ่น[]เดียวกันจะสามารถเห็นเซิร์ฟเวอร์ของคุณในรายชื่อของ\nเซิร์ฟเวอร์ได้\n\nถ้าคุณต้องการให้ผู้เล่นอื่นๆ สามารถเชื่อมต่อได้จากทุกที่โดยใช้ IP คุณจำเป็นจะต้องใช้การ[accent]การส่งต่อพอร์ต (Port Forwarding)[] \n\n[lightgray]โน๊ต: ถ้าผู้เล่นคนใดมีปัญหาในการเชื่อมต่อ LAN ของคุณ เช็คให้แน่ใจว่าคุณได้อนุญาตให้ Mindustry เข้าถึงเครือข่ายท้องถิ่นของคุณในการตั้งค่า Firewall จำไว้ว่าเครือข่ายสาธารณะบางครั้งอาจไม่อนุญาตการ\nค้นหาเซิร์ฟเวอร์
join.info = คุณสามารถใส่ [accent]IP ของเซิร์ฟเวอร์[]เพื่อที่จะเชื่อมต่อหรือค้นหาเซิร์ฟเวอร์ เซิร์ฟเวอร์ที่ใช้[accent]เครือข่ายท้องถิ่น[]จะสามารถเชื่อมโดยใช้\n LAN หรือ WAN ก็ได้\n\n[lightgray]ถ้าคุณอยากเชื่อมต่อกับใครบางคนโดยใช้ IP คุณต้องไปถามโฮสต์เอาว่า IP ของโฮสต์คืออะไร ซึ่งสามารถหาได้โดยการค้นหาในกูเกิ้ลว่า "ip ของฉัน" จากเครื่องของโฮสต์ join.info = คุณสามารถใส่ [accent]IP ของเซิร์ฟเวอร์[]เพื่อที่จะเชื่อมต่อหรือค้นหาเซิร์ฟเวอร์ เซิร์ฟเวอร์ที่ใช้[accent]เครือข่ายท้องถิ่น[]จะสามารถเชื่อมโดยใช้\n LAN หรือ WAN ก็ได้\n\n[lightgray]ถ้าคุณอยากเชื่อมต่อกับใครบางคนโดยใช้ IP คุณต้องไปถามโฮสต์เอาว่า IP ของโฮสต์คืออะไร ซึ่งสามารถหาได้โดยการค้นหาในกูเกิ้ลว่า "ip ของฉัน" จากเครื่องของโฮสต์
hostserver = โฮสต์เกมผู้เล่นหลายคน hostserver = โฮสต์เกมผู้เล่นหลายคน
@@ -214,6 +215,7 @@ hosts.none = [lightgray]ไม่พบเซิร์ฟเวอร์ท้
host.invalid = [scarlet]ไม่สามารถเชื่อมต่อกับโฮสต์ได้ host.invalid = [scarlet]ไม่สามารถเชื่อมต่อกับโฮสต์ได้
servers.local = เซิร์ฟเวอร์ท้องถิ่น servers.local = เซิร์ฟเวอร์ท้องถิ่น
servers.local.steam = เกมสาธารณะ & เซิร์ฟเวอร์ท้องถิ่น
servers.remote = เซิร์ฟเวอร์ทางไกล servers.remote = เซิร์ฟเวอร์ทางไกล
servers.global = เซิร์ฟเวอร์ของชุมชน servers.global = เซิร์ฟเวอร์ของชุมชน
@@ -255,14 +257,14 @@ disconnect.error = การเชื่อมต่อมีปัญหา
disconnect.closed = การเชื่อมต่อถูกปิดแล้ว disconnect.closed = การเชื่อมต่อถูกปิดแล้ว
disconnect.timeout = หมดเวลา disconnect.timeout = หมดเวลา
disconnect.data = การโหลดข้อมูลของโลกผิดพลาด! disconnect.data = การโหลดข้อมูลของโลกผิดพลาด!
cantconnect = ไม่สามารถเข้าร่วมเซิฟเวอร์ ([accent]{0}[]) cantconnect = ไม่สามารถเข้าร่วมเซิร์ฟเวอร์ ([accent]{0}[])
connecting = [accent]กำลังเชื่อมต่อ... connecting = [accent]กำลังเชื่อมต่อ...
reconnecting = [accent]กำลังเชื่อมต่อใหม่... reconnecting = [accent]กำลังเชื่อมต่อใหม่...
connecting.data = [accent]กำลังโหลดข้อมูลของโลก ... connecting.data = [accent]กำลังโหลดข้อมูลของโลก ...
server.port = พอร์ต: server.port = พอร์ต:
server.addressinuse = มีคนใช้ที่อยู่นี้แล้ว! server.addressinuse = มีคนใช้ที่อยู่นี้แล้ว!
server.invalidport = เลขพอร์ตไม่ถูกต้อง! server.invalidport = เลขพอร์ตไม่ถูกต้อง!
server.error = [crimson]การโฮสต์เซิฟเวอร์ผิดพลาด server.error = [crimson]การโฮสต์เซิร์ฟเวอร์ผิดพลาด
save.new = เซฟใหม่ save.new = เซฟใหม่
save.overwrite = คุณแน่ใจหรือว่าจะเซฟทับ\nเซฟนี้? save.overwrite = คุณแน่ใจหรือว่าจะเซฟทับ\nเซฟนี้?
overwrite = เขียนทับ overwrite = เขียนทับ
@@ -340,14 +342,14 @@ loadimage = โหลดรูป
saveimage = เซฟรูป saveimage = เซฟรูป
unknown = ไม่ทราบ unknown = ไม่ทราบ
custom = กำหนดเอง custom = กำหนดเอง
builtin = Built-In builtin = ติดตัว
map.delete.confirm = คุณแน่ใจหรือว่าจะลบแมพนี้? การกระทำครั้งนี้ไม่สามารถย้อนกลับได้! map.delete.confirm = คุณแน่ใจหรือว่าจะลบแมพนี้? การกระทำครั้งนี้ไม่สามารถย้อนกลับได้!
map.random = [accent]สุ่มแมพ map.random = [accent]สุ่มแมพ
map.nospawn = แมพนี้ไม่มีแกนกลางให้ผู้เล่นเกิด! กรุณาใส่แกนกลาง[accent]สีเหลือง[] ในตัวแก้ไข map.nospawn = แมพนี้ไม่มีแกนกลางให้ผู้เล่นเกิด! กรุณาใส่แกนกลาง[accent]สีเหลือง[] ในตัวแก้ไข
map.nospawn.pvp = แมพนี้ไม่มีแกนกลางของศัตรูสำหรับให้ผู้เล่นเกิด! กรุณาใส่แกนกลาง[scarlet]ที่ไม่ใช่สีส้ม[] ในตัวแก้ไข map.nospawn.pvp = แมพนี้ไม่มีแกนกลางของศัตรูสำหรับให้ผู้เล่นเกิด! กรุณาใส่แกนกลาง[scarlet]ที่ไม่ใช่สีส้ม[] ในตัวแก้ไข
map.nospawn.attack = แมพนี้ไม่มีแกนกลางของศัตรูสำหรับให้ผู้เล่นโจมตี! กรุณาใส่แกนกลาง[scarlet]สีแดง[] ในตัวแก้ไข map.nospawn.attack = แมพนี้ไม่มีแกนกลางของศัตรูสำหรับให้ผู้เล่นโจมตี! กรุณาใส่แกนกลาง[scarlet]สีแดง[] ในตัวแก้ไข
map.invalid = โหลดแมพผิดพลาด: ไฟล์แมพเสียหายหรือไม่ถูกต้อง map.invalid = โหลดแมพผิดพลาด: ไฟล์แมพเสียหายหรือไม่ถูกต้อง
workshop.update = อัเดตไอเท็ม workshop.update = อัเดตไอเท็ม
workshop.error = ผิดพลาดในการนำเวิร์กช็อปมา รายละเอียดดังนี้: {0} workshop.error = ผิดพลาดในการนำเวิร์กช็อปมา รายละเอียดดังนี้: {0}
map.publish.confirm = คุณแน่ใจหรือว่าจะเผยแพร่แมพนี้?\n\n[lightgray]คุณต้องแน่ใจก่อนว่าคุณเห็นด้วยกับ Workshop EULA, มิฉนั้นแมพจะไม่ปรากฏ! map.publish.confirm = คุณแน่ใจหรือว่าจะเผยแพร่แมพนี้?\n\n[lightgray]คุณต้องแน่ใจก่อนว่าคุณเห็นด้วยกับ Workshop EULA, มิฉนั้นแมพจะไม่ปรากฏ!
workshop.menu = เลือกว่าจะทำอะไรกับไอเท็มนี้ workshop.menu = เลือกว่าจะทำอะไรกับไอเท็มนี้
@@ -357,7 +359,7 @@ eula = Steam EULA
missing = ไอเท็มนี้ถูกลบหรือย้าย\n[lightgray]ยกเลิกการเชื่อมต่อของหน้ารายการเวิร์กช็อปแล้ว missing = ไอเท็มนี้ถูกลบหรือย้าย\n[lightgray]ยกเลิกการเชื่อมต่อของหน้ารายการเวิร์กช็อปแล้ว
publishing = [accent]กำลังเผยแพร่... publishing = [accent]กำลังเผยแพร่...
publish.confirm = คุณแน่ใจหรือว่าจะเผยแพร่สิ่งนี้?\n\n[lightgray]คุณต้องแน่ใจก่อนว่าคุณเห็นด้วยกับ Workshop EULA มิฉนั้นไอเท็มของคุณจะไม่ปรากฏ! publish.confirm = คุณแน่ใจหรือว่าจะเผยแพร่สิ่งนี้?\n\n[lightgray]คุณต้องแน่ใจก่อนว่าคุณเห็นด้วยกับ Workshop EULA มิฉนั้นไอเท็มของคุณจะไม่ปรากฏ!
publish.error = การเผยแพร่ไอเท็มดังต่อไปนี้ผิดพลาด: {0} publish.error = เกิดข้อผิดพลาดการเผยแพร่ไอเท็มดังต่อไปนี้: {0}
steam.error = ไม่สามารถเริ่ม Steam service ได้\nError: {0} steam.error = ไม่สามารถเริ่ม Steam service ได้\nError: {0}
editor.brush = แปรง editor.brush = แปรง
@@ -401,7 +403,7 @@ editor.default = [lightgray]<ค่าเริ่มต้น>
details = รายละเอียด... details = รายละเอียด...
edit = แก้ไข... edit = แก้ไข...
editor.name = ชื่อ: editor.name = ชื่อ:
editor.spawn = ปาวน์ยูนิต editor.spawn = ร้างยูนิต
editor.removeunit = ลบยูนิต editor.removeunit = ลบยูนิต
editor.teams = ทีม editor.teams = ทีม
editor.errorload = โหลดไฟล์ผิดพลาด editor.errorload = โหลดไฟล์ผิดพลาด
@@ -411,7 +413,7 @@ editor.errorlegacy = แมพนี้เก่าเกินไปและ
editor.errornot = นี่ไม่ใช้ไฟล์แมพ editor.errornot = นี่ไม่ใช้ไฟล์แมพ
editor.errorheader = ไฟล์แมพนี้เสียหรือไม่ถูกต้อง editor.errorheader = ไฟล์แมพนี้เสียหรือไม่ถูกต้อง
editor.errorname = แมพไม่มีการกำหนดชื่อ คุณกำลังโหลดไฟล์เซฟอยู่หรือป่าว? editor.errorname = แมพไม่มีการกำหนดชื่อ คุณกำลังโหลดไฟล์เซฟอยู่หรือป่าว?
editor.update = อัเดต editor.update = อัเดต
editor.randomize = สุ่ม editor.randomize = สุ่ม
editor.apply = ใช้ editor.apply = ใช้
editor.generate = การกำเนิด editor.generate = การกำเนิด
@@ -420,8 +422,8 @@ editor.loadmap = โหลดแมพ
editor.savemap = เซฟแมพ editor.savemap = เซฟแมพ
editor.saved = เซฟเรียบร้อย! editor.saved = เซฟเรียบร้อย!
editor.save.noname = แมพของคุณไม่มีชื่อ! สามารถตั้งชื่อได้ในเมนู 'ข้อมูลแมพ' editor.save.noname = แมพของคุณไม่มีชื่อ! สามารถตั้งชื่อได้ในเมนู 'ข้อมูลแมพ'
editor.save.overwrite = แมพของคุณไปทับกับแมพ built-in! เปลี่ยนชื่อได้ในเมนู 'ข้อมูลแมพ' editor.save.overwrite = แมพของคุณไปทับกับแมพติดตัว! เปลี่ยนชื่อได้ในเมนู 'ข้อมูลแมพ'
editor.import.exists = [scarlet]ไม่สามารถนำเข้าได้:[] มีแมพ built-in ที่ชื่อ '{0}' อยู่แล้ว! editor.import.exists = [scarlet]ไม่สามารถนำเข้าได้:[] มีแมพติดตัวที่ชื่อ '{0}' อยู่แล้ว!
editor.import = นำเข้า... editor.import = นำเข้า...
editor.importmap = นำเข้าแมพ editor.importmap = นำเข้าแมพ
editor.importmap.description = นำเข้าแมพที่มีอยู่แล้ว editor.importmap.description = นำเข้าแมพที่มีอยู่แล้ว
@@ -521,7 +523,7 @@ mapeditor = แก้ไขแมพ
abandon = ละทิ้ง abandon = ละทิ้ง
abandon.text = โซนนี้และทรัพยากรทั้งหมดจะถูกยืดไปเป็นของศัตรู abandon.text = โซนนี้และทรัพยากรทั้งหมดจะถูกยืดไปเป็นของศัตรู
locked = ล็อ locked = ล็อ
complete = [lightgray]ต้องมี: complete = [lightgray]ต้องมี:
requirement.wave = ถึงคลื่นที่ {0} ใน {1} requirement.wave = ถึงคลื่นที่ {0} ใน {1}
requirement.core = ทำลายแกนกลางของศัตรูใน {0} requirement.core = ทำลายแกนกลางของศัตรูใน {0}
@@ -545,15 +547,15 @@ add = เพิ่ม...
guardian = การ์เดียน guardian = การ์เดียน
connectfail = [crimson]การเชื่อมต่อผิดพลาด:\n\n[accent]{0} connectfail = [crimson]การเชื่อมต่อผิดพลาด:\n\n[accent]{0}
error.unreachable = เซิฟเวอร์ไม่สามารถเข้าถึงได้\nแน่ใจหรือว่าที่อยู่เขียนถูกต้อง? error.unreachable = เซิร์ฟเวอร์ไม่สามารถเข้าถึงได้\nแน่ใจหรือว่าที่อยู่เขียนถูกต้อง?
error.invalidaddress = ที่อยู่ไม่ถูกต้อง error.invalidaddress = ที่อยู่ไม่ถูกต้อง
error.timedout = Timed out!\nเช็คให้แน่ใจว่า port forwarding ของโฮสต์เปิดอยู่และที่อยู่นั้นถูกต้อง! error.timedout = Timed out!\nเช็คให้แน่ใจว่า port forwarding ของโฮสต์เปิดอยู่และที่อยู่นั้นถูกต้อง!
error.mismatch = Packet error:\nอาจเกิดจากเวอร์ชั่นของ ไคลเอนต์/เซิร์ฟเวอร์ ไม่ตรงกัน\nเช็คให้แน่ใจว่าเซิฟเวอร์ใช้ Mindustry เวอร์ชั่นล่าสุด! error.mismatch = Packet error:\nอาจเกิดจากเวอร์ชั่นของ ไคลเอนต์/เซิร์ฟเวอร์ ไม่ตรงกัน\nเช็คให้แน่ใจว่าเซิร์ฟเวอร์ใช้ Mindustry เวอร์ชั่นล่าสุด!
error.alreadyconnected = เชื่อมต่ออยู่แล้ว error.alreadyconnected = เชื่อมต่ออยู่แล้ว
error.mapnotfound = ไม่พบไฟล์แมพ error.mapnotfound = ไม่พบไฟล์แมพ
error.io = Network I/O error error.io = Network I/O error
error.any = Error: เครือข่ายที่ไม่รู้จัก error.any = Error: เครือข่ายที่ไม่รู้จัก
error.bloom = ไม่สามารถเริ่มต้น bloom ได้\nอุปกรณ์ของคุณอาจไม่รองรับ error.bloom = ไม่สามารถเริ่มต้นบลูมได้\nอุปกรณ์ของคุณอาจไม่รองรับ
weather.rain.name = ฝน weather.rain.name = ฝน
weather.snow.name = หิมะ weather.snow.name = หิมะ
@@ -565,6 +567,7 @@ sectors.unexplored = [lightgray]ยังไม่ได้สำรวจ
sectors.resources = ทรัพยากร: sectors.resources = ทรัพยากร:
sectors.production = การผลิต: sectors.production = การผลิต:
sectors.export = การส่งออก: sectors.export = การส่งออก:
sectors.import = การนำเข้า:
sectors.time = เวลา: sectors.time = เวลา:
sectors.threat = ภัยคุกคาม: sectors.threat = ภัยคุกคาม:
sectors.wave = คลื่น: sectors.wave = คลื่น:
@@ -577,7 +580,7 @@ sectors.rename = เปลี่ยนชื่อเซ็กเตอร์
sectors.enemybase = [scarlet]ฐานทัพศัตรู sectors.enemybase = [scarlet]ฐานทัพศัตรู
sectors.vulnerable = [scarlet]เสี่ยงภัย sectors.vulnerable = [scarlet]เสี่ยงภัย
sectors.underattack = [scarlet]เซ็กเตอร์ถูกโจมตี! เสียหาย [accent]{0}% sectors.underattack = [scarlet]เซ็กเตอร์ถูกโจมตี! เสียหาย [accent]{0}%
sectors.survives = [accent]จะอยู่รอดอีก {0} คลื่น sectors.survives = [accent]จะอยู่รอดได้ {0} คลื่น
sectors.go = ไป sectors.go = ไป
sector.curcapture = ยึดครองแล้ว sector.curcapture = ยึดครองแล้ว
sector.curlost = เราเสียเซ็กเตอร์! sector.curlost = เราเสียเซ็กเตอร์!
@@ -655,10 +658,10 @@ settings.resetKey = รีเซ็ต
settings.controls = การควบคุม settings.controls = การควบคุม
settings.game = เกม settings.game = เกม
settings.sound = เสียง settings.sound = เสียง
settings.graphics = กราฟฟิค settings.graphics = กราฟิก
settings.cleardata = เคลียร์ข้อมูลเกม... settings.cleardata = เคลียร์ข้อมูลเกม...
settings.clear.confirm = คุณแน่ใจหรือว่าจะเคลียร์ข้อมูลเกม?\nสิ่งที่ทำไปแล้วจะไม่สามารถย้อนกลับได้! settings.clear.confirm = คุณแน่ใจหรือว่าจะเคลียร์ข้อมูลเกม?\nสิ่งที่ทำไปแล้วจะไม่สามารถย้อนกลับได้!
settings.clearall.confirm = [scarlet]คำเตือน![]\nการกระทำนี้จะลบข้อมูลทั้งหมด นั้นรวมไปถึงเซฟ แมพ การวิจัยแล้วและก็ปุ่มควบุม\nเมื่อคุณกด 'โอเค' เกมจะลบข้อมูลทุกอย่างและออกโดยอัตโนมัติ settings.clearall.confirm = [scarlet]คำเตือน![]\nการกระทำนี้จะลบข้อมูลทั้งหมด นั้นรวมไปถึงเซฟ แมพ การวิจัยแล้วและก็ปุ่มควบุม\nเมื่อคุณกด 'โอเค' เกมจะลบข้อมูลทุกอย่างและออกโดยอัตโนมัติ
settings.clearsaves.confirm = คุณแน่ใจหรือว่าคุณต้องการเคลียร์เซฟทั้งหมด? settings.clearsaves.confirm = คุณแน่ใจหรือว่าคุณต้องการเคลียร์เซฟทั้งหมด?
settings.clearsaves = เคลียร์เซฟ settings.clearsaves = เคลียร์เซฟ
settings.clearresearch = เคลียร์การวิจัย settings.clearresearch = เคลียร์การวิจัย
@@ -715,7 +718,7 @@ stat.speedincrease = เพิ่มความเร็ว
stat.range = ระยะ stat.range = ระยะ
stat.drilltier = แร่ที่ขุดได้ stat.drilltier = แร่ที่ขุดได้
stat.drillspeed = ความเร็วการขุดเฉลี่ย stat.drillspeed = ความเร็วการขุดเฉลี่ย
stat.boosteffect = อฟเฟ็คของบูสต์ stat.boosteffect = อฟเฟกต์ของบูสต์
stat.maxunits = จำนวนยูนิตสูงสุด stat.maxunits = จำนวนยูนิตสูงสุด
stat.armor = เกราะ stat.armor = เกราะ
stat.health = พลังชีวิต stat.health = พลังชีวิต
@@ -724,7 +727,7 @@ stat.maxconsecutive = ติดต่อกันสูงสุด
stat.buildcost = ใช้ stat.buildcost = ใช้
stat.inaccuracy = ความคลาดเคลื่อน stat.inaccuracy = ความคลาดเคลื่อน
stat.shots = นัด stat.shots = นัด
stat.reload = นัด/วินาที stat.reload = อัตราการยิง
stat.ammo = กระสุน stat.ammo = กระสุน
stat.shieldhealth = พลังชีวิตโล่ stat.shieldhealth = พลังชีวิตโล่
stat.cooldowntime = เวลาคูลดาวน์ stat.cooldowntime = เวลาคูลดาวน์
@@ -747,7 +750,7 @@ stat.commandlimit = จำนวนยูนิตที่สั่งการ
stat.abilities = ทักษะ stat.abilities = ทักษะ
stat.canboost = สามารถบูสต์ stat.canboost = สามารถบูสต์
stat.flying = บินได้ stat.flying = บินได้
stat.ammouse = ใช้กระสุน stat.ammouse = การใช้กระสุน
stat.damagemultiplier = พหุคูณดาเมจ stat.damagemultiplier = พหุคูณดาเมจ
stat.healthmultiplier = พหุคูณพลังชีวิต stat.healthmultiplier = พหุคูณพลังชีวิต
stat.speedmultiplier = พหุคูณความเร็ว stat.speedmultiplier = พหุคูณความเร็ว
@@ -758,7 +761,7 @@ stat.healing = การรักษา
ability.forcefield = โล่พลังงาน ability.forcefield = โล่พลังงาน
ability.repairfield = สนามซ่อมแซม ability.repairfield = สนามซ่อมแซม
ability.statusfield = สนามเอฟเฟกต์ {0} ability.statusfield = {0} สนามเอฟเฟกต์
ability.unitspawn = โรงงาน{0} ability.unitspawn = โรงงาน{0}
ability.shieldregenfield = สนามรักษาโล่ ability.shieldregenfield = สนามรักษาโล่
ability.movelightning = ปล่อยสายฟ้าเมื่อเคลื่อนที่ ability.movelightning = ปล่อยสายฟ้าเมื่อเคลื่อนที่
@@ -793,7 +796,7 @@ bullet.damage = [stat]{0}[lightgray] ดาเมจ
bullet.splashdamage = [stat]{0}[lightgray] ดาเมจกระจาย ~[stat] {1}[lightgray] ช่อง bullet.splashdamage = [stat]{0}[lightgray] ดาเมจกระจาย ~[stat] {1}[lightgray] ช่อง
bullet.incendiary = [stat]ติดไฟ bullet.incendiary = [stat]ติดไฟ
bullet.homing = [stat]ติดตามตัว bullet.homing = [stat]ติดตามตัว
bullet.frag = [stat]กระจาย 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]
bullet.knockback = [stat]{0}[lightgray] ดันกลับ bullet.knockback = [stat]{0}[lightgray] ดันกลับ
@@ -806,6 +809,7 @@ bullet.reload = [lightgray]ความเร็วการยิง: [stat]{0}
unit.blocks = บล็อก unit.blocks = บล็อก
unit.blockssquared = บล็อก² unit.blockssquared = บล็อก²
unit.powersecond = หน่วย/วินาที unit.powersecond = หน่วย/วินาที
unit.tilessecond = ช่อง/วินาที
unit.liquidsecond = หน่วย/วินาที unit.liquidsecond = หน่วย/วินาที
unit.itemssecond = ไอเท็ม/วินาที unit.itemssecond = ไอเท็ม/วินาที
unit.liquidunits = หน่วยของเหลว unit.liquidunits = หน่วยของเหลว
@@ -822,7 +826,7 @@ unit.items = ไอเท็ม
unit.thousands = k unit.thousands = k
unit.millions = [] []ล้าน unit.millions = [] []ล้าน
unit.billions = [] []พันล้าน unit.billions = [] []พันล้าน
unit.pershot = [] []กระสุน/การยิง unit.pershot = [] []ไอเท็ม/การยิง
category.purpose = วัตถุประสงค์ category.purpose = วัตถุประสงค์
category.general = ทั่วไป category.general = ทั่วไป
category.power = พลังงาน category.power = พลังงาน
@@ -831,20 +835,18 @@ category.items = ไอเท็ม
category.crafting = การผลิต category.crafting = การผลิต
category.function = ฟังค์ชั่น category.function = ฟังค์ชั่น
category.optional = ทางเลือกการเพิ่มประสิทธิภาพ category.optional = ทางเลือกการเพิ่มประสิทธิภาพ
setting.landscape.name = ล็อภูมิทัศน์แนวนอน setting.landscape.name = ล็อภูมิทัศน์แนวนอน
setting.shadows.name = เงา setting.shadows.name = เงา
setting.blockreplace.name = แนะนำบล็อกโดยอัตโนมัติ setting.blockreplace.name = แนะนำบล็อกโดยอัตโนมัติ
setting.linear.name = การกรองเชิงเส้น setting.linear.name = การกรองเชิงเส้น
setting.hints.name = คำแนะนำ setting.hints.name = คำแนะนำ
setting.logichints.name = คำแนะนำลอจิก setting.logichints.name = คำแนะนำลอจิก
setting.flow.name = แสดงอัตราการไหลของทรัพยากร
setting.backgroundpause.name = หยุดในพื้นหลัง setting.backgroundpause.name = หยุดในพื้นหลัง
setting.buildautopause.name = หยุดสร้างชั่วคราวแบบอัตโนมัติ setting.buildautopause.name = หยุดสร้างชั่วคราวแบบอัตโนมัติ
setting.doubletapmine.name = แตะสองครั้งเพื่อขุด setting.doubletapmine.name = แตะสองครั้งเพื่อขุด
setting.modcrashdisable.name = ปิดม็อดเมื่อเกมขัดข้อง setting.modcrashdisable.name = ปิดม็อดเมื่อเกมขัดข้อง
setting.animatedwater.name = แอนิเมชั่นพื้นและน้ำ setting.animatedwater.name = แอนิเมชั่นพื้นและน้ำ
setting.animatedshields.name = แอนิเมชั่นเกราะ setting.animatedshields.name = แอนิเมชั่นเกราะ
setting.antialias.name = Antialias[lightgray] (จำเป็นต้องรีสตาร์ท)[]
setting.playerindicators.name = ตัวบอกผู้เล่น setting.playerindicators.name = ตัวบอกผู้เล่น
setting.indicators.name = ตัวบอกศัตรู/พักพวก setting.indicators.name = ตัวบอกศัตรู/พักพวก
setting.autotarget.name = เล็งเป้าอัตโนมัติ setting.autotarget.name = เล็งเป้าอัตโนมัติ
@@ -853,7 +855,8 @@ setting.touchscreen.name = การควบคุมแบบหน้าจ
setting.fpscap.name = FPS สูงสุด setting.fpscap.name = FPS สูงสุด
setting.fpscap.none = setting.fpscap.none =
setting.fpscap.text = {0} FPS setting.fpscap.text = {0} FPS
setting.uiscale.name = ขนาด UI[lightgray] (จำเป็นต้องรีสตาร์ท)[] setting.uiscale.name = อัตราขนาด UI
setting.uiscale.description = จำเป็นต้องรีสตาร์ทเพื่อใส่การเปลี่ยนแปลง
setting.swapdiagonal.name = การวางเป็นเส้นทแยงเสมอ setting.swapdiagonal.name = การวางเป็นเส้นทแยงเสมอ
setting.difficulty.training = ฝึกซ้อม setting.difficulty.training = ฝึกซ้อม
setting.difficulty.easy = ง่าย setting.difficulty.easy = ง่าย
@@ -862,16 +865,17 @@ setting.difficulty.hard = ยาก
setting.difficulty.insane = ยากมาก setting.difficulty.insane = ยากมาก
setting.difficulty.name = ระดับความยาก: setting.difficulty.name = ระดับความยาก:
setting.screenshake.name = การสั่นของจอ setting.screenshake.name = การสั่นของจอ
setting.effects.name = แสดงเอฟเฟ็ setting.effects.name = แสดงเอฟเฟ็กต์
setting.destroyedblocks.name = แสดงบล็อกที่ถูกทำลาย setting.destroyedblocks.name = แสดงบล็อกที่ถูกทำลาย
setting.blockstatus.name = แสดงสเตตัสของบล็อก setting.blockstatus.name = แสดงสถานะของบล็อก
setting.conveyorpathfinding.name = ตรวจสอบเส้นทางการวางอัจฉริยะ setting.conveyorpathfinding.name = ตรวจสอบเส้นทางการวางอัจฉริยะ
setting.sensitivity.name = ความเร็วของตัวควบคุม setting.sensitivity.name = ความเร็วของตัวควบคุม
setting.saveinterval.name = ระยะห่างระหว่างการเซฟ setting.saveinterval.name = ระยะห่างระหว่างการเซฟ
setting.seconds = {0} วินาที setting.seconds = {0} วินาที
setting.milliseconds = {0} มิลลิวินาที setting.milliseconds = {0} มิลลิวินาที
setting.fullscreen.name = เต็มจอ setting.fullscreen.name = เต็มจอ
setting.borderlesswindow.name = วินโดว์แบบไร้ขอบ[lightgray] (อาจจะต้องรีตาร์ท) setting.borderlesswindow.name = หน้าต่างแบบไร้ขอบ
setting.borderlesswindow.description = อาจจะต้องรีสตาร์ทเพื่อใส่การเปลี่ยนแปลง
setting.fps.name = แสดง FPS และ Ping setting.fps.name = แสดง FPS และ Ping
setting.smoothcamera.name = กล้องแบบลื่นไหล setting.smoothcamera.name = กล้องแบบลื่นไหล
setting.vsync.name = VSync setting.vsync.name = VSync
@@ -887,19 +891,19 @@ setting.sfxvol.name = ระดับเสียง SFX
setting.mutesound.name = ปิดเสียง setting.mutesound.name = ปิดเสียง
setting.crashreport.name = ส่งรายงานการแครชแบบไม่ระบุตัวตน setting.crashreport.name = ส่งรายงานการแครชแบบไม่ระบุตัวตน
setting.savecreate.name = สร้างเซฟโดยอัตโนมัติ setting.savecreate.name = สร้างเซฟโดยอัตโนมัติ
setting.publichost.name = การมองเห็นเซิฟเวอร์สาธารณะ setting.publichost.name = การมองเห็นเซิร์ฟเวอร์สาธารณะ
setting.playerlimit.name = จำกัดผู้เล่น setting.playerlimit.name = จำกัดผู้เล่น
setting.chatopacity.name = ความโปร่งแสงของแชท setting.chatopacity.name = ความโปร่งแสงของแชท
setting.lasersopacity.name = ความโปร่งแสงของเลเซอร์พลังงาน setting.lasersopacity.name = ความโปร่งแสงของเลเซอร์พลังงาน
setting.bridgeopacity.name = ความโปร่งแสงของสะพาน setting.bridgeopacity.name = ความโปร่งแสงของสะพาน
setting.playerchat.name = แสดงบับเบิ้ลแชทของผู้เล่น setting.playerchat.name = แสดงบับเบิ้ลแชทของผู้เล่น
setting.showweather.name = แสดงแกรฟฟิกสภาพอากาศ setting.showweather.name = แสดงแกรฟฟิกสภาพอากาศ
public.confirm = คุณต้องการให้เกมของคุณเปิดเป็นสาธารณะหรือไม่?\n[accent]ทุกคนจะสามารถเข้าร่วมเกมของคุณได้\n[lightgray]คุณสามารถเปลี่ยนการตั้งค่านี้ได้ที่ ตั้งค่า->เกม->การมองเห็นเซิฟเวอร์สาธารณะ public.confirm = คุณต้องการให้เกมของคุณเปิดเป็นสาธารณะหรือไม่?\n[accent]ทุกคนจะสามารถเข้าร่วมเกมของคุณได้\n[lightgray]คุณสามารถเปลี่ยนการตั้งค่านี้ได้ที่ ตั้งค่า->เกม->การมองเห็นเซิร์ฟเวอร์สาธารณะ
public.confirm.really = หากคุณอยากเล่นกับเล่นกับเพื่อน ใช้ [green]Invite Friend[] ดีกว่า แทนที่จะใช้ [scarlet]Public server[]!\nคุณแน่ใจนะว่าจะเปลี่ยนเกมคุณเป็น[scarlet]สาธารณะ[]? public.confirm.really = หากคุณอยากเล่นกับเล่นกับเพื่อน ใช้[green]ชวนเพื่อน[]ดีกว่า แทนที่จะใช้[scarlet]เซิร์ฟเวอร์สาธารณะ[]!\nคุณแน่ใจนะว่าจะเปลี่ยนเกมคุณเป็น[scarlet]สาธารณะ[]?
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 = ยกเลิกและออก
setting.bloom.name = Bloom setting.bloom.name = บลูม
keybind.title = ตั้งค่าปุ่ม keybind.title = ตั้งค่าปุ่ม
keybinds.mobile = [scarlet]การตั้งค่าปุ่มส่วนใหญ่ไม่สามารถใช้ในมือถือได้ เฉพาะการเคลื่อนไหวพื้นฐานเท่านั้นที่ใช้ได้ keybinds.mobile = [scarlet]การตั้งค่าปุ่มส่วนใหญ่ไม่สามารถใช้ในมือถือได้ เฉพาะการเคลื่อนไหวพื้นฐานเท่านั้นที่ใช้ได้
category.general.name = ทั่วไป category.general.name = ทั่วไป
@@ -972,7 +976,7 @@ keybind.chat_history_prev.name = ประวัติแชทก่อนห
keybind.chat_history_next.name = ประวัติแชทถัดไป keybind.chat_history_next.name = ประวัติแชทถัดไป
keybind.chat_scroll.name = เลื่อนแชท keybind.chat_scroll.name = เลื่อนแชท
keybind.chat_mode.name = เปลี่ยนโหมดแชท keybind.chat_mode.name = เปลี่ยนโหมดแชท
keybind.drop_unit.name = ดรอปยูนิต keybind.drop_unit.name = วางยูนิต
keybind.zoom_minimap.name = ซูมมินิแมพ keybind.zoom_minimap.name = ซูมมินิแมพ
mode.help.title = คำอธิบายโหมด mode.help.title = คำอธิบายโหมด
mode.survival.name = เอาชีวิตรอด mode.survival.name = เอาชีวิตรอด
@@ -994,6 +998,7 @@ rules.wavetimer = นับถอยหลังการปล่อยคล
rules.waves = คลื่น rules.waves = คลื่น
rules.attack = โหมดการโจมตี rules.attack = โหมดการโจมตี
rules.buildai = AI ก่อสร้าง rules.buildai = AI ก่อสร้าง
rules.cleanupdeadteams = ลบล้างสิ่งก่อสร้างศัตรูที่พ่ายแพ้ (PvP)
rules.corecapture = ยืดแกนกลางเมื่อทำลาย rules.corecapture = ยืดแกนกลางเมื่อทำลาย
rules.polygoncoreprotection = รัศมีปกป้องแกนกลางแบบหลายเหลี่ยม rules.polygoncoreprotection = รัศมีปกป้องแกนกลางแบบหลายเหลี่ยม
rules.enemyCheat = AI (ทีมสีแดง) มีทรัพยากรไม่จำกัด rules.enemyCheat = AI (ทีมสีแดง) มีทรัพยากรไม่จำกัด
@@ -1085,7 +1090,7 @@ unit.sei.name = เซย์
unit.omura.name = โอมูร่า unit.omura.name = โอมูร่า
unit.retusa.name = เรธูซ่า unit.retusa.name = เรธูซ่า
unit.oxynoe.name = อ๊อกซิโนอ์ unit.oxynoe.name = อ๊อกซิโนอ์
unit.cyerce.name = ไซเยิส unit.cyerce.name = เซียรส์
unit.aegires.name = เอเกียเรส unit.aegires.name = เอเกียเรส
unit.navanax.name = นาวาแน็คซ์ unit.navanax.name = นาวาแน็คซ์
unit.alpha.name = อัลฟ่า unit.alpha.name = อัลฟ่า
@@ -1247,7 +1252,7 @@ block.wave.name = คลื่นน้ำ
block.tsunami.name = สึนามิ block.tsunami.name = สึนามิ
block.swarmer.name = สวอร์มเมอร์ block.swarmer.name = สวอร์มเมอร์
block.salvo.name = ซัลโว block.salvo.name = ซัลโว
block.ripple.name = ริปเปิล block.ripple.name = ริปเปิ
block.phase-conveyor.name = สายพานเฟส block.phase-conveyor.name = สายพานเฟส
block.bridge-conveyor.name = สะพานไอเท็ม block.bridge-conveyor.name = สะพานไอเท็ม
block.plastanium-compressor.name = เครื่องอัดพลาสตาเนี่ยม block.plastanium-compressor.name = เครื่องอัดพลาสตาเนี่ยม
@@ -1268,7 +1273,7 @@ block.bridge-conduit.name = สะพานของเหลว
block.rotary-pump.name = ปั๊มโรตารี่ block.rotary-pump.name = ปั๊มโรตารี่
block.thorium-reactor.name = เตาปฏิกรณ์ทอเรี่ยม block.thorium-reactor.name = เตาปฏิกรณ์ทอเรี่ยม
block.mass-driver.name = เครื่องโอนถ่ายมวล block.mass-driver.name = เครื่องโอนถ่ายมวล
block.blast-drill.name = เครื่องขุดระเบิดอากาศ block.blast-drill.name = เครื่องขุดแอร์บลาสต์
block.thermal-pump.name = ปั๊มความร้อน block.thermal-pump.name = ปั๊มความร้อน
block.thermal-generator.name = เครื่องกำเนิดไฟฟ้าจากความร้อน block.thermal-generator.name = เครื่องกำเนิดไฟฟ้าจากความร้อน
block.alloy-smelter.name = เครื่องหลอมอัลลอย block.alloy-smelter.name = เครื่องหลอมอัลลอย
@@ -1288,7 +1293,6 @@ block.meltdown.name = เมลท์ดาวน์
block.foreshadow.name = ฟอร์ชาโดว์ block.foreshadow.name = ฟอร์ชาโดว์
block.container.name = ตู้เก็บของ block.container.name = ตู้เก็บของ
block.launch-pad.name = ฐานส่งของ block.launch-pad.name = ฐานส่งของ
block.launch-pad-large.name = ฐานส่งของขนาดใหญ่
block.segment.name = เซ็กเมนต์ block.segment.name = เซ็กเมนต์
block.command-center.name = ศูนย์ควบคุม block.command-center.name = ศูนย์ควบคุม
block.ground-factory.name = โรงงานยูนิตพื้นดิน block.ground-factory.name = โรงงานยูนิตพื้นดิน
@@ -1309,11 +1313,11 @@ block.payload-source.name = จุดกำเนิดสิ่งบรรท
block.disassembler.name = เครื่องถอดแยกส่วนประกอบ block.disassembler.name = เครื่องถอดแยกส่วนประกอบ
block.silicon-crucible.name = เบ้าหลอมซิลิคอน block.silicon-crucible.name = เบ้าหลอมซิลิคอน
block.overdrive-dome.name = โดมเร่งประสิทธิภาพ block.overdrive-dome.name = โดมเร่งประสิทธิภาพ
block.interplanetary-accelerator.name = ฐานเร่งความเร็วระหว่างดาวเคราะห์
#experimental, may be removed #experimental, may be removed
block.block-forge.name = เครื่องสร้างบล็อก block.block-forge.name = เครื่องสร้างบล็อก
block.block-loader.name = เครื่องโหลดบล็อก block.block-loader.name = เครื่องโหลดบล็อก
block.block-unloader.name = เครื่องถ่ายบล็อก block.block-unloader.name = เครื่องถ่ายบล็อก
block.interplanetary-accelerator.name = เครื่องส่งจรวดระหว่างดาวเคราะห์
block.switch.name = สวิตช์ block.switch.name = สวิตช์
block.micro-processor.name = ตัวประมวลผลขนาดเล็ก block.micro-processor.name = ตัวประมวลผลขนาดเล็ก
@@ -1343,11 +1347,12 @@ hint.desktopPause = กด [accent][[Space][] เพื่อหยุดชั
hint.placeDrill = เลือกเมนู \ue85e [accent]เครื่องขุด[] ในแท็บเมนูขวาล่าง แล้วเลือก \uf870 [accent]เครื่องขุด[] แล้วกดที่แร่ทองแดงเพื่อวาง hint.placeDrill = เลือกเมนู \ue85e [accent]เครื่องขุด[] ในแท็บเมนูขวาล่าง แล้วเลือก \uf870 [accent]เครื่องขุด[] แล้วกดที่แร่ทองแดงเพื่อวาง
hint.placeDrill.mobile = เลือกเมนู \ue85e [accent]เครื่องขุด[] ในแท็บเมนูขวาล่าง แล้วเลือก \uf870 [accent]เครื่องขุด[] แล้วกดที่แร่ทองแดงเพื่อวาง\n\nกด \ue800 [accent]ติ้กถูก[] ที่ขวาล่างเพื่อยืนยัน hint.placeDrill.mobile = เลือกเมนู \ue85e [accent]เครื่องขุด[] ในแท็บเมนูขวาล่าง แล้วเลือก \uf870 [accent]เครื่องขุด[] แล้วกดที่แร่ทองแดงเพื่อวาง\n\nกด \ue800 [accent]ติ้กถูก[] ที่ขวาล่างเพื่อยืนยัน
hint.placeConveyor = สายพานจะย้ายไอเท็มจากเครื่องขุดไปยังบล็อกอื่นๆ เลือก \uf896 [accent]สายพาน[] จากแท็บ \ue814 [accent]การเคลื่อนย้าย[]\n\nคลิ๊กแล้วลากเพื่อวางหลายๆ สายพาน\n[accent]เลื่อน[]เพื่อหมุน hint.placeConveyor = สายพานจะย้ายไอเท็มจากเครื่องขุดไปยังบล็อกอื่นๆ เลือก \uf896 [accent]สายพาน[] จากแท็บ \ue814 [accent]การเคลื่อนย้าย[]\n\nคลิ๊กแล้วลากเพื่อวางหลายๆ สายพาน\n[accent]เลื่อน[]เพื่อหมุน
hint.placeConveyor.mobile = สายพานจะเคลื่อนย้ายไอเท็มจากที่ขุดไปยังบล็อกอื่นๆ เลือก \uf896 [accent]สายพาน[] จากแท็บ \ue814 [accent]การเคลื่อนย้าย[]\n\nเอานิ้วจิ้มลงไปสักแปบนึงแล้วลากเพื่อวางหลายๆ อัน hint.placeConveyor.mobile = สายพานจะเคลื่อนย้ายไอเท็มจากที่ขุดไปยังบล็อกอื่นๆ เลือก \uf896 [accent]สายพาน[] จากแท็บ \ue814 [accent]การเคลื่อนย้าย[]\n\nเอานิ้วจิ้มลงไปสักแปบนึงแล้วลากเพื่อวางหลายๆ อัน
hint.placeTurret = วาง \uf861 [accent]ป้อมปืน[] เพื่อป้องกันฐานทัพจากศัตรู\n\nป้อมปืนต้องมีกระสุน ในกรณีนี้ \uf838 ทองแดง\nใช้สายพานลากจากเครื่องขุดไปที่ป้อมปืนเพื่อเติมกระสุน hint.placeTurret = วาง \uf861 [accent]ป้อมปืน[] เพื่อป้องกันฐานทัพจากศัตรู\n\nป้อมปืนต้องมีกระสุน ในกรณีนี้ \uf838 ทองแดง\nใช้สายพานลากจากเครื่องขุดไปที่ป้อมปืนเพื่อเติมกระสุน
hint.breaking = [accent]คลิ๊กขวา[] แล้วลากเพื่อทำลายบล็อก hint.breaking = [accent]คลิ๊กขวา[] แล้วลากเพื่อทำลายบล็อก
hint.breaking.mobile = เปิดใช้ \ue817 [accent]ค้อน[] ตรงล่างขวาแล้วเลือกเพื่อทำลายบล็อก\n\nเอานิ้วจิ้มลงไปสักแปบนึงแล้วลากเพื่อเลือกหลายๆ อัน hint.breaking.mobile = เปิดใช้ \ue817 [accent]ค้อน[] ตรงล่างขวาแล้วเลือกเพื่อทำลายบล็อก\n\nเอานิ้วจิ้มลงไปสักแปบนึงแล้วลากเพื่อเลือกหลายๆ อัน
hint.blockInfo = ดูข้อมูลของบล็อกโดยการเลือกจาก[accent]เมนูการสร้าง[] แล้วกดที่รูป [accent][[?][] ตรงด้านขวา hint.blockInfo = ดูข้อมูลของบล็อกโดยการเลือกจาก[accent]เมนูการสร้าง[] แล้วกดที่รูป [accent][[?][] ตรงด้านขวา
hint.derelict = สิ่งก่อสร้างที่ถูก[accent]ทิ้งร้าง[]คือเศษซากพังทลายของฐานเก่าแก่ที่ไม่สามารถใช้งานได้แล้ว\n\nสิ่งก่อสร้างพวกนี้สามารถ[accent]ทุบทิ้ง[]เพื่อเก็บเกี่ยวทรัพยากรที่อยู่ในนั้นได้
hint.research = ใช้ปุ่ม \ue875 [accent]วิจัย[] เพื่อวิจัยเทคโนโลยีใหม่ๆ hint.research = ใช้ปุ่ม \ue875 [accent]วิจัย[] เพื่อวิจัยเทคโนโลยีใหม่ๆ
hint.research.mobile = ใช้ปุ่ม \ue875 [accent]วิจัย[] ใน \ue88c [accent]เมนู[] เพื่อวิจัยเทคโนโลยีใหม่ๆ hint.research.mobile = ใช้ปุ่ม \ue875 [accent]วิจัย[] ใน \ue88c [accent]เมนู[] เพื่อวิจัยเทคโนโลยีใหม่ๆ
hint.unitControl = กด [accent][[L-Ctrl][] ค้างไว้แล้วกด[accent]คลิ๊ก[]เพื่อควบคุมยานพวกพ้องหรือป้อมปืน hint.unitControl = กด [accent][[L-Ctrl][] ค้างไว้แล้วกด[accent]คลิ๊ก[]เพื่อควบคุมยานพวกพ้องหรือป้อมปืน
@@ -1361,12 +1366,12 @@ hint.boost = กด [accent][[L-Shift][] เพื่อบูสต์ข้า
hint.command = กด [accent][[G][] เพื่อสั่งการยูนิตข้างๆ ของตัว[accent]ชนิดคล้ายกัน[]จัดเป็นรูปแบบล้อมรอบคุณ\n\nถ้าจะสั่งการยูนิตพื้นดิน คุณต้องควบคุมยูนิตประเภทเดียวกันอยู่ก่อน hint.command = กด [accent][[G][] เพื่อสั่งการยูนิตข้างๆ ของตัว[accent]ชนิดคล้ายกัน[]จัดเป็นรูปแบบล้อมรอบคุณ\n\nถ้าจะสั่งการยูนิตพื้นดิน คุณต้องควบคุมยูนิตประเภทเดียวกันอยู่ก่อน
hint.command.mobile = [accent][[กดสองครั้ง][] ที่ตัวยูนิตของคุณเพื่อสั่งการยูนิตรอบข้างให้มารวมตัวกันเป็นวงล้อมรอบคุณ hint.command.mobile = [accent][[กดสองครั้ง][] ที่ตัวยูนิตของคุณเพื่อสั่งการยูนิตรอบข้างให้มารวมตัวกันเป็นวงล้อมรอบคุณ
hint.payloadPickup = กด [accent][[[] เพื่อหยิบบล็อกเล็กๆ หรือยูนิต hint.payloadPickup = กด [accent][[[] เพื่อหยิบบล็อกเล็กๆ หรือยูนิต
hint.payloadPickup.mobile = [accent]กดค้างไว้[] ที่บล็อกเล็กๆ หรือตัวยูนิตเพื่อหยิบขึ้นมา hint.payloadPickup.mobile = [accent]กดค้างไว้[]ที่บล็อกเล็กๆ หรือตัวยูนิตเพื่อหยิบขึ้นมา
hint.payloadDrop = กด [accent]][] เพื่อปล่อยสิ่งที่บรรทุกอยู่ hint.payloadDrop = กด [accent]][] เพื่อปล่อยสิ่งที่บรรทุกอยู่
hint.payloadDrop.mobile = [accent]กดค้างไว้[]ที่พื้นที่โล่งๆ เพื่อปล่อยสิ่งที่บรรทุกอยู่ hint.payloadDrop.mobile = [accent]กดค้างไว้[]ที่พื้นที่โล่งๆ เพื่อปล่อยสิ่งที่บรรทุกอยู่
hint.waveFire = ป้อมปืน[accent]คลื่นน้ำ[]หากมีน้ำเป็นกระสุนจะช่วยดับไฟรอบข้างให้อัตโนมัติ hint.waveFire = ป้อมปืน[accent]คลื่นน้ำ[]หากเติมน้ำเข้าไปจะช่วยดับไฟรอบข้างให้อัตโนมัติ
hint.generator = \uf879 [accent]เครื่องกำเนิดไฟฟ้าเผาไหม้[]จะเผาถ่านและส่งพลังงานไปยังบล็อกที่อยู่ใกล้ๆ\n\nระยะของพลังงานสามารถขยายได้ด้วย \uf87f [accent]ตัวจ่ายพลังงาน[] hint.generator = \uf879 [accent]เครื่องกำเนิดไฟฟ้าเผาไหม้[]จะเผาถ่านและส่งพลังงานไปยังบล็อกที่อยู่ใกล้ๆ\n\nระยะของพลังงานสามารถขยายได้ด้วย \uf87f [accent]ตัวจ่ายพลังงาน[]
hint.guardian = หน่วย[accent]การ์เดียน[]มีเกราะป้องกันหนาแน่น กระสุนเปราะบางอย่าง[accent]ทองแดง[]และ[accent]ตะกั่ว[][scarlet]ไม่มีประสิทธิภาพ[]\n\nควรใช้ป้อมปืนที่ดีกว่านี้หรือใช้ \uf835 [accent]กราไฟท์[]ใน \uf861ดูโอ/\uf859ซัลโวเป็นกระสุนเพื่อทำลายการ์เดียน hint.guardian = หน่วย[accent]การ์เดียน[]มีเกราะป้องกันหนาแน่น กระสุนเปราะบางอย่าง[accent]ทองแดง[]และ[accent]ตะกั่ว[][scarlet]ไม่มีประสิทธิภาพ[]\n\nควรใช้ป้อมปืนที่ดีกว่านี้หรือใช้ \uf835 [accent]กราไฟท์[]ใส่ใน \uf861 ดูโอ/ \uf859 ซัลโวเป็นกระสุนเพื่อทำลายการ์เดียน
hint.coreUpgrade = สามารถอัพเกรดแกนกลางได้โดย[accent]วางแกนกลางที่ใหญ่กว่าทับมัน[]\n\nวาง  [accent]แกนกลาง: ฟาวน์เดชั่น[]ทับ  [accent]แกนกลาง: ชาร์ด[] ต้องแน่ใจว่ารอบข้างมีที่ว่างก่อนจะวาง hint.coreUpgrade = สามารถอัพเกรดแกนกลางได้โดย[accent]วางแกนกลางที่ใหญ่กว่าทับมัน[]\n\nวาง  [accent]แกนกลาง: ฟาวน์เดชั่น[]ทับ  [accent]แกนกลาง: ชาร์ด[] ต้องแน่ใจว่ารอบข้างมีที่ว่างก่อนจะวาง
hint.presetLaunch = [accent]เซ็กเตอร์ลงจอด[]สีเทา อย่างเช่น[accent]ป่าหนาวแหน็บ[] สามารถลงจอดจากที่ไหนที่ได้ในแผนที่ พวกนั้นไม่จำเป็นต้องยืดครองเซ็กเตอร์รอบข้างเพื่อส่งแกนกลางไป\n\n[accent]เซ็กเตอร์ที่มีเลข[] อย่างเช่นอันนี้[accent]ไม่จำเป็น[]ต้องยืดครอง hint.presetLaunch = [accent]เซ็กเตอร์ลงจอด[]สีเทา อย่างเช่น[accent]ป่าหนาวแหน็บ[] สามารถลงจอดจากที่ไหนที่ได้ในแผนที่ พวกนั้นไม่จำเป็นต้องยืดครองเซ็กเตอร์รอบข้างเพื่อส่งแกนกลางไป\n\n[accent]เซ็กเตอร์ที่มีเลข[] อย่างเช่นอันนี้[accent]ไม่จำเป็น[]ต้องยืดครอง
hint.coreIncinerate = เมื่อแกนกลางมีจำนวนไอเท็มชนิดหนึ่งที่เต็ม ไอเท็มชนิดนั้นที่เข้ามาเพิ่มจะ[accent]ถูกเผา[] hint.coreIncinerate = เมื่อแกนกลางมีจำนวนไอเท็มชนิดหนึ่งที่เต็ม ไอเท็มชนิดนั้นที่เข้ามาเพิ่มจะ[accent]ถูกเผา[]
@@ -1386,9 +1391,9 @@ item.titanium.description = ใช้อย่างแพร่หลายใ
item.titanium.details = โลหะเบาซึ่งหายากตามธรรมชาติ เป็นโลหะที่แข็งแรงใช้ได้ จึงใช้กันอย่างแพร่หลายในการแปรรูปหรือสิ่งก่อสร้าง item.titanium.details = โลหะเบาซึ่งหายากตามธรรมชาติ เป็นโลหะที่แข็งแรงใช้ได้ จึงใช้กันอย่างแพร่หลายในการแปรรูปหรือสิ่งก่อสร้าง
item.thorium.description = ใช้ในการเสริมเกราะของสิ่งก่อสร้างต่างๆ หรือนำไปเป็นเป็นเชื้อเพลิงนิวเคลียร์ item.thorium.description = ใช้ในการเสริมเกราะของสิ่งก่อสร้างต่างๆ หรือนำไปเป็นเป็นเชื้อเพลิงนิวเคลียร์
item.thorium.details = แร่ธาตุที่หาได้ยากมากในธรรมชาติ เป็นแร่ธาตุที่ทั้งแข็งแกร่งและหนาแน่น จึงใช้กันอย่างแพร่หลายในสิ่งก่อสร้างคงทน มีคุณสมบัติพิเศษคือกัมมันตภาพรังสี ทำให้แร่ธาตุนี้อาจเป็นภัยหากใช้ในทางที่ผิด item.thorium.details = แร่ธาตุที่หาได้ยากมากในธรรมชาติ เป็นแร่ธาตุที่ทั้งแข็งแกร่งและหนาแน่น จึงใช้กันอย่างแพร่หลายในสิ่งก่อสร้างคงทน มีคุณสมบัติพิเศษคือกัมมันตภาพรังสี ทำให้แร่ธาตุนี้อาจเป็นภัยหากใช้ในทางที่ผิด
item.scrap.description = ใช้ในเตาหลอมแร่และเครื่องบดเพื่อเปลี่ยนเป็นวัสดุอื่นๆ item.scrap.description = ใช้ในเตาหลอมแร่และเครื่องบดอัดเพื่อเปลี่ยนเป็นวัสดุอื่นๆ
item.scrap.details = เศษที่เหลือจากสิ่งก่อสร้างและยูนิตเก่า มีร่องรอยของโลหะหลายชนิดอยู่ เกิดจากฐานทัพโบราณในสมัยสงครามเก่าแก่ถูกทำลาย ทำให้วัสดุต่างๆ พังลงมารวมกับ item.scrap.details = เศษที่เหลือจากสิ่งก่อสร้างและยูนิตเก่า มีร่องรอยของโลหะหลายชนิดอยู่ เกิดจากฐานทัพโบราณในสมัยสงครามเก่าแก่ถูกทำลาย ทำให้วัสดุต่างๆ พังลงมารวมกับ
item.silicon.description = ใช้ในแผงโซล่าเซลล์ อุปกรณ์อิเล็กทรอนิกที่ซับซ้อนหรือนำไปเป็นกระสุนติดตามตัวสำหรับป้อมปืน item.silicon.description = ใช้ในแผงโซล่าเซลล์ อุปกรณ์อิเล็กทรอนิกที่ซับซ้อน\nหรือนำไปเป็นกระสุนติดตามตัวสำหรับป้อมปืน
item.silicon.details = วัสดุกึ่งตัวนำที่มีประโยชน์มาก ผลิตจากการเผาทรายและถ่านหินเข้าด้วยกัน ใช้ในสิ่งก่อสร้างแทบทุกชนิดตั้งแต่ต้นเกมยันปลายเกม จึงควรผลิตวัสดุนี้ให้เยอะที่สุด item.silicon.details = วัสดุกึ่งตัวนำที่มีประโยชน์มาก ผลิตจากการเผาทรายและถ่านหินเข้าด้วยกัน ใช้ในสิ่งก่อสร้างแทบทุกชนิดตั้งแต่ต้นเกมยันปลายเกม จึงควรผลิตวัสดุนี้ให้เยอะที่สุด
item.plastanium.description = ใช้ในอากาศยานขั้นสูง เป็นฉนวนกันความร้อนหรือนำไปเป็นกระสุนกระจาย item.plastanium.description = ใช้ในอากาศยานขั้นสูง เป็นฉนวนกันความร้อนหรือนำไปเป็นกระสุนกระจาย
item.plastanium.details = วัสดุที่เบาและดัดได้ ผลิตจากการอัดไทเทเนี่ยมและน้ำมันเข้าด้วยกัน item.plastanium.details = วัสดุที่เบาและดัดได้ ผลิตจากการอัดไทเทเนี่ยมและน้ำมันเข้าด้วยกัน
@@ -1410,13 +1415,14 @@ liquid.oil.details = ของเหลวเฉื่อยพบได้ไ
liquid.cryofluid.description = ใช้ในการหล่อเย็นเตาปฏิกร สิ่งก่อสร้างหรือโรงงานต่างๆ liquid.cryofluid.description = ใช้ในการหล่อเย็นเตาปฏิกร สิ่งก่อสร้างหรือโรงงานต่างๆ
liquid.cryofluid.details = ของเหลวเฉื่อยและไม่กัดกร่อน ผลิตจากน้ำและไทเทเนี่ยม มีคุณสมบัติการถ่ายเทความร้อนสูง liquid.cryofluid.details = ของเหลวเฉื่อยและไม่กัดกร่อน ผลิตจากน้ำและไทเทเนี่ยม มีคุณสมบัติการถ่ายเทความร้อนสูง
block.resupply-point.description = เติมกระสุนยูนิตรอบข้างด้วยกระสุนทองแดง ใช้ไม่ได้กับยูนิตที่ใช้พลังงานเป็นกระสุน block.derelict = [lightgray] ถูกทิ้งร้าง
block.resupply-point.description = เติมกระสุนยูนิตรอบข้างด้วยกระสุนทองแดง ใช้กับยูนิตที่ใช้พลังงานเป็นกระสุนไม่ได้
block.armored-conveyor.description = เลื่อนไอเท็มไปข้างหน้า เร็วเท่าสายพานไทเทเนี่ยม แต่มีเกราะที่แข็งแรงกว่า ไม่รับไอเท็มจากด้านข้างยกเว้นเป็นสายพานชนิดเดียวกัน block.armored-conveyor.description = เลื่อนไอเท็มไปข้างหน้า เร็วเท่าสายพานไทเทเนี่ยม แต่มีเกราะที่แข็งแรงกว่า ไม่รับไอเท็มจากด้านข้างยกเว้นเป็นสายพานชนิดเดียวกัน
block.illuminator.description = ตัวเปล่งแสงขนาดกะทัดรัด ส่องสว่างในที่มืดได้ดี\nแถมยังกำหนดสีของแสงได้ด้วย... เจ๋งใช่มั้ยล่ะ block.illuminator.description = ตัวเปล่งแสงขนาดกะทัดรัด ส่องสว่างในที่มืดได้ดี\nแถมยังกำหนดสีของแสงได้ด้วย... เจ๋งใช่มั้ยล่ะ
block.message.description = เก็บข้อความ ใช้สื่อสารกับพันธมิตร block.message.description = เก็บข้อความ ใช้สื่อสารกับพันธมิตร
block.graphite-press.description = อัดก้อนถ่านหินให้เป็นแผ่นกราไฟต์บริสุทธิ์ block.graphite-press.description = อัดก้อนถ่านหินให้เป็นแผ่นกราไฟต์บริสุทธิ์
block.multi-press.description = อัดก้อนถ่านหินให้เป็นแผ่นกราไฟต์บริสุทธิ์ ใช้น้ำและพลังงานในการแปรรูปถ่านหินให้เร็วและมีประสิทธิภาพมากขึ้น block.multi-press.description = อัดก้อนถ่านหินให้เป็นแผ่นกราไฟต์บริสุทธิ์ ใช้น้ำและพลังงานในการแปรรูปถ่านหินให้เร็วและมีประสิทธิภาพมากขึ้น
block.silicon-smelter.description = ผลิตซิลิกอนจากทรายและถ่านหินบริสุทธิ์ block.silicon-smelter.description = ผลิตซิลิกอนจากการหลอมทรายและถ่านหินเข้าด้วยกัน
block.kiln.description = เผาทรายและตะกั่วเป็นกระจกเมต้า block.kiln.description = เผาทรายและตะกั่วเป็นกระจกเมต้า
block.plastanium-compressor.description = บีบอัดน้ำมันและไทเทเนี่ยมเข้าด้วยกันเพื่อผลิตพลาสตาเนี่ยม block.plastanium-compressor.description = บีบอัดน้ำมันและไทเทเนี่ยมเข้าด้วยกันเพื่อผลิตพลาสตาเนี่ยม
block.phase-weaver.description = สังเคราะห์ใยเฟสจากทรายและทอเรี่ยม ใช้พลังงานจำนวนมากในการทำงาน block.phase-weaver.description = สังเคราะห์ใยเฟสจากทรายและทอเรี่ยม ใช้พลังงานจำนวนมากในการทำงาน
@@ -1524,22 +1530,22 @@ block.duo.description = ป้อมปืนขนาดเล็ก ยิง
block.scatter.description = ยิงก้อนตะกั่ว เศษเหล็กหรือกระจกเมต้าใส่ยานบินศัตรูที่อยู่ใกล้เคียง block.scatter.description = ยิงก้อนตะกั่ว เศษเหล็กหรือกระจกเมต้าใส่ยานบินศัตรูที่อยู่ใกล้เคียง
block.scorch.description = เผาศัตรูพื้นดินที่อยู่ใกล้ๆ มีประสิทธิภาพสูงสุดเมื่อใช้ในระยะใกล้ block.scorch.description = เผาศัตรูพื้นดินที่อยู่ใกล้ๆ มีประสิทธิภาพสูงสุดเมื่อใช้ในระยะใกล้
block.hail.description = ป้อมปืนใหญ่ขนาดย่อม ยิงลูกระเบิดใส่ศัตรูพื้นดินจากระยะไกล block.hail.description = ป้อมปืนใหญ่ขนาดย่อม ยิงลูกระเบิดใส่ศัตรูพื้นดินจากระยะไกล
block.wave.description = ป้อมปืนขนาดกลาง พ่นของเหลวสาดใส่ศัตรู จะดับไฟให้อัตโนมัติเมื่อใส่น้ำเข้าไป block.wave.description = พ่นของเหลวสาดใส่ศัตรู จะดับไฟให้อัตโนมัติเมื่อใส่น้ำเข้าไป
block.lancer.description = ป้อมปืนเลเซอร์ต่อต้านพื้นดินขนาดกลาง ชาร์จแลยิงลำแสงพลังงานอันทรงพลังใส่ศัตรู block.lancer.description = ชาร์จแล้วยิงลำแสงพลังงานอันทรงพลังใส่ศัตรูพื้นดิน
block.arc.description = ป้อมปืนไฟฟ้าระยะใกล้ ยิงสายฟ้าใส่ศัตรูพื้นดิน จะทำดาเมจมหาศาลเมื่อศัตรูเปียกน้ำ block.arc.description = ยิงสายฟ้าใส่ศัตรูพื้นดิน จะทำดาเมจมหาศาลเมื่อศัตรูเปียกน้ำ
block.swarmer.description = ป้อมยิงขีปนาวุธขนาดกลาง ยิงขีปนาวุธติดตามตัวใส่ศัตรูทั้งอากาศและพื้นดิน block.swarmer.description = ยิงขีปนาวุธติดตามตัวใส่ศัตรูทั้งอากาศและพื้นดิน
block.salvo.description = ป้อมปืนขนาดกลาง ระดมยิงกระสุนหนักใส่ศัตรูอย่างรวดเร็ว block.salvo.description = ป้อมปืนขนาดกลาง ระดมยิงกระสุนหนักใส่ศัตรูอย่างรวดเร็ว
block.fuse.description = ป้อมปืนระยะใกล้ขนาดใหญ่ ยิงลำแสงเจาะทะลุสามเส้นใส่ศัตรูที่อยู่ใกล้เคียง block.fuse.description = ป้อมปืนระยะใกล้ขนาดใหญ่ ยิงลำแสงเจาะทะลุสามแฉกใส่ศัตรูที่อยู่ใกล้เคียง
block.ripple.description = ป้อมปืนใหญ่พลังงานสูง ยิงกระจุกของลูกระเบิดใส่ศัตรูพื้นดินจากระยะไกล block.ripple.description = ป้อมปืนใหญ่ทรงพลัง ยิงลูกระเบิดเป็นกระจุกใส่ศัตรูพื้นดินจากระยะไกล
block.cyclone.description = ป้อมปืนต่อต้านทั้งอากาศยานและพื้นดิน ยิงกระสุนเป็นกระจุกระเบิดใส่ยูนิตศัตรูอย่างรวดเร็ว block.cyclone.description = ป้อมปืนรวดเร็วดั่งพายุ ยิงก้อนสะเก็ดระเบิดใส่ยูนิตศัตรูอย่างรวดเร็ว
block.spectre.description = ปืนใหญ่คู่ขนาดยักษ์ ยิงกระสุนเจาะเกราะใส่ศัตรูทั้งบนอากาศและพื้นดิน block.spectre.description = ปืนใหญ่คู่ขนาดยักษ์ ยิงกระสุนเจาะเกราะใส่ศัตรูทั้งบนอากาศและพื้นดิน
block.meltdown.description = ชาร์จแล้วยิงลำแสงเลเซอร์ใส่ศัตรูที่อยู่ใกล้เคียงอย่างต่อเนื่อง ต้องมีของเหลวมาหล่อเย็นป้อมปืนเพื่อทำงาน block.meltdown.description = ชาร์จแล้วยิงลำแสงเลเซอร์ใส่ศัตรูที่อยู่ใกล้เคียงอย่างต่อเนื่อง ต้องมีของเหลวมาหล่อเย็นป้อมปืนเพื่อทำงาน
block.foreshadow.description = ป้อมปืนเรลกันขนาดมหึมา ยิงลำแสงพลังงานใส่เป้าหมายเดี่ยวขนาดใหญ่\nมีระยะการยิงไกลมาก จะเลือกยิงยูนิตที่มีพลังชีวิตมากที่สุดก่อน block.foreshadow.description = ป้อมปืนเรลกันขนาดมหึมา ยิงลำแสงพลังงานใส่เป้าหมายเดี่ยวขนาดใหญ่\nมีระยะการยิงไกลมาก จะเลือกยิงยูนิตที่มีพลังชีวิตมากที่สุดก่อน
block.repair-point.description = ซ่อมแซมยูนิตที่อยู่ในรัศมีอย่างต่อเนื่อง block.repair-point.description = ซ่อมแซมยูนิตที่อยู่ในรัศมีของมันอย่างต่อเนื่อง
block.segment.description = สร้างความเสียหายและทำลายกระสุนที่กำลังเข้ามา ไม่สามารถทำลายลำแสงเลเซอร์ได้ block.segment.description = สร้างความเสียหายและทำลายกระสุนที่กำลังเข้ามา ไม่สามารถทำลายลำแสงเลเซอร์ได้
block.parallax.description = ยิงลำแสงที่ดึงยานบินศัตรูเข้าหา สร้างความเสียหายแก่พวกมันระหว่างทาง block.parallax.description = ยิงลำแสงที่ดึงยานบินศัตรูเข้าหา สร้างความเสียหายแก่พวกมันระหว่างทาง
block.tsunami.description = ยิงกระแสของเหลวอันทรงพลังใส่ศัตรู จะดับไฟให้อัตโนมัติเมื่อใส่น้ำเข้าไป block.tsunami.description = ยิงกระแสของเหลวอันทรงพลังใส่ศัตรู จะดับไฟให้อัตโนมัติเมื่อใส่น้ำเข้าไป
block.silicon-crucible.description = หลอมซิลิกอนจากทรายและถ่าน ใช้ไพราไทต์เป็นแหล่งความร้อนเพิ่มเติม ทำงานเร็วกว่าถ้าตั้งอยู่ในพื้นที่ร้อน block.silicon-crucible.description = หลอมซิลิกอนจากทรายและถ่านหิน ใช้ไพราไทต์เป็นแหล่งความร้อนเพิ่มเติม จะทำงานเร็วกว่าถ้าตั้งอยู่ในพื้นที่ร้อน
block.disassembler.description = แยกแร่หลอมออกเป็นแร่ธาตุปริมาณเล็กน้อยโดยมีประสิทธิภาพต่ำ สามารถผลิตทอเรี่ยมได้ block.disassembler.description = แยกแร่หลอมออกเป็นแร่ธาตุปริมาณเล็กน้อยโดยมีประสิทธิภาพต่ำ สามารถผลิตทอเรี่ยมได้
block.overdrive-dome.description = เร่งประสิทธิภาพสิ่งก่อสร้างรอบข้างอย่างมหาศาล ต้องมีใยเฟสกับซิลิกอนเพื่อทำงาน block.overdrive-dome.description = เร่งประสิทธิภาพสิ่งก่อสร้างรอบข้างอย่างมหาศาล ต้องมีใยเฟสกับซิลิกอนเพื่อทำงาน
block.payload-conveyor.description = เคลื่อนย้ายสิ่งของบรรทุกหนัก อย่างเช่นยูนิต block.payload-conveyor.description = เคลื่อนย้ายสิ่งของบรรทุกหนัก อย่างเช่นยูนิต
@@ -1561,6 +1567,8 @@ block.memory-bank.description = เก็บข้อมูลเป็นตั
block.logic-display.description = แสดงกราฟิกโดยควบคุมจากตัวประมวลผลลอจิก block.logic-display.description = แสดงกราฟิกโดยควบคุมจากตัวประมวลผลลอจิก
block.large-logic-display.description = แสดงกราฟิกโดยควบคุมจากตัวประมวลผลลอจิก มีขนาดใหญ่กว่า block.large-logic-display.description = แสดงกราฟิกโดยควบคุมจากตัวประมวลผลลอจิก มีขนาดใหญ่กว่า
block.interplanetary-accelerator.description = หอคอยเรลกันแม่เหล็กไฟฟ้าขนาดมหึมา เร่งความเร็วแกนกลางเพื่อบินสู่อวกาศไปยังดาวเคราะห์อื่นๆ block.interplanetary-accelerator.description = หอคอยเรลกันแม่เหล็กไฟฟ้าขนาดมหึมา เร่งความเร็วแกนกลางเพื่อบินสู่อวกาศไปยังดาวเคราะห์อื่นๆ
block.repair-turret.description = ซ่อมแซมยูนิตที่อยู่ในรัศมีของมันอย่างต่อเนื่อง สามารถใช้ของเหลวมาหล่อเย็นเพื่อเพิ่มประสิทธิภาพได้
block.payload-propulsion-tower.description = บล็อกขนส่งสิ่งบรรทุกทางไกล\nยิงสิ่งบรรทุกไปยังหอเคลื่อนย้ายสิ่งบรรทุกอีกเครื่องที่เชื่อมต่อไว้
unit.dagger.description = ยิงกระสุนธรรมดาใส่ศัตรูที่อยู่ใกล้เคียง unit.dagger.description = ยิงกระสุนธรรมดาใส่ศัตรูที่อยู่ใกล้เคียง
unit.mace.description = ยิงเปลวไฟใส่ศัตรูที่อยู่ใกล้เคียง ทำให้ศัตรูถูกเผาไหม้ unit.mace.description = ยิงเปลวไฟใส่ศัตรูที่อยู่ใกล้เคียง ทำให้ศัตรูถูกเผาไหม้
@@ -1595,6 +1603,11 @@ unit.omura.description = ยิงลำแสงปืนเรลกันเ
unit.alpha.description = ปกป้องแกนกลางชาร์ดจากศัตรู สร้างสิ่งต่างๆ unit.alpha.description = ปกป้องแกนกลางชาร์ดจากศัตรู สร้างสิ่งต่างๆ
unit.beta.description = ปกป้องแกนกลางฟาวน์เดชั่นจากศัตรู สร้างสิ่งต่างๆ unit.beta.description = ปกป้องแกนกลางฟาวน์เดชั่นจากศัตรู สร้างสิ่งต่างๆ
unit.gamma.description = ปกป้องแกนกลางนิวเคลียสจากศัตรู สร้างสิ่งต่างๆ unit.gamma.description = ปกป้องแกนกลางนิวเคลียสจากศัตรู สร้างสิ่งต่างๆ
unit.retusa.description = วางทุ่นระเบิดระยะใกล้ ซ่อมแซมยูนิตพวกพ้องที่อยู่ใกล้เคียง
unit.oxynoe.description = ยิงเปลวไฟเผาไหม้ใส่ศัตรูที่อยู่ใกล้เคียงและซ่อมแซมสิ่งก่อสร้างของพวกพ้อง\nทำลายกระสุนที่กำลังเข้ามาด้วยปืนป้องกันจุด
unit.cyerce.description = ยิงขีปนาวุธพลาสม่าติดตามตัวเป็นกระจุกระเบิดใส่ศัตรู\nซ่อมแซมยูนิตพวกพ้องที่อยู่ใกล้เคียง
unit.aegires.description = ช็อตทุกสิ่งก่อสร้างและยูนิตศัตรูที่เข้ามาในสนามพลังงานของมัน\nซ่อมแซมสิ่งก่อสร้างและยูนิตพวกพ้อง
unit.navanax.description = ยิงลูกระเบิดคลื่นชีพจรแม่เหล็กขนาดใหญ่ สร้างความเสียหายอย่างหนักให้กับเครือข่ายพลังงานศัตรู\nและซ่อมแซมสิ่งก่อสร้างของพวกพ้อง\nหลอมละลายศัตรูที่อยู่ใกล้เคียงด้วยป้อมปืนเลเซอร์อัตโนมัติสี่ป้อม
lst.read = อ่านเลขจากเซลล์ความจำที่เชื่อมต่อไว้ lst.read = อ่านเลขจากเซลล์ความจำที่เชื่อมต่อไว้
lst.write = เขียนเลขไปยังเซลล์ความจำที่เชื่อมต่อไว้ lst.write = เขียนเลขไปยังเซลล์ความจำที่เชื่อมต่อไว้

View File

@@ -460,6 +460,7 @@ toolmode.drawteams = Takım Çiz
toolmode.drawteams.description = Bloklar yerine takımları çizer.. toolmode.drawteams.description = Bloklar yerine takımları çizer..
filters.empty = [lightgray]Hiç filtre yok! Aşağıdaki butonla bir adet ekleyin. filters.empty = [lightgray]Hiç filtre yok! Aşağıdaki butonla bir adet ekleyin.
filter.distort = Çarpıt filter.distort = Çarpıt
filter.noise = Gürültü filter.noise = Gürültü
filter.enemyspawn = Düşman Doğma Alanı Seçimi filter.enemyspawn = Düşman Doğma Alanı Seçimi
@@ -476,6 +477,7 @@ filter.clear = Temizle
filter.option.ignore = Yoksay filter.option.ignore = Yoksay
filter.scatter = Saç filter.scatter = Saç
filter.terrain = Arazi filter.terrain = Arazi
filter.option.scale = Ölçek filter.option.scale = Ölçek
filter.option.chance = Şans filter.option.chance = Şans
filter.option.mag = Genlik filter.option.mag = Genlik
@@ -490,6 +492,7 @@ filter.option.block = Blok
filter.option.floor = Zemin filter.option.floor = Zemin
filter.option.flooronto = Hedef Zemin filter.option.flooronto = Hedef Zemin
filter.option.target = Target filter.option.target = Target
filter.option.replacement = Değiştirme
filter.option.wall = Duvar filter.option.wall = Duvar
filter.option.ore = Maden filter.option.ore = Maden
filter.option.floor2 = İkincil Duvar filter.option.floor2 = İkincil Duvar
@@ -675,6 +678,7 @@ unit.nobuild = [scarlet]Birlik inşa edemiyor
lastaccessed = [lightgray]Son Erişme: {0} lastaccessed = [lightgray]Son Erişme: {0}
block.unknown = [lightgray]??? block.unknown = [lightgray]???
stat.showinmap = <görüntülenecek haritayı yükle>
stat.description = Amaç stat.description = Amaç
stat.input = Giriş stat.input = Giriş
stat.output = Çıkış stat.output = Çıkış
@@ -991,6 +995,7 @@ rules.waves = Dalgalar
rules.attack = Saldırı Modu rules.attack = Saldırı Modu
rules.buildai = Yapay Zeka İnşası rules.buildai = Yapay Zeka İnşası
rules.corecapture = Yıkımca Çekirdeği Elegeçir rules.corecapture = Yıkımca Çekirdeği Elegeçir
rules.polygoncoreprotection = Çokgenli Çekirdek Koruması
rules.enemyCheat = Sonsuz AI (Kırmızı Takım) Kaynakları rules.enemyCheat = Sonsuz AI (Kırmızı Takım) Kaynakları
rules.blockhealthmultiplier = Blok Canı Çarpanı rules.blockhealthmultiplier = Blok Canı Çarpanı
rules.blockdamagemultiplier = Blok Hasarı Çarpanı rules.blockdamagemultiplier = Blok Hasarı Çarpanı
@@ -1161,7 +1166,8 @@ block.spore-cluster.name = Spor Kümesi
block.metal-floor.name = Metal Zemin 1 block.metal-floor.name = Metal Zemin 1
block.metal-floor-2.name = Metal Zemin 2 block.metal-floor-2.name = Metal Zemin 2
block.metal-floor-3.name = Metal Zemin 3 block.metal-floor-3.name = Metal Zemin 3
block.metal-floor-5.name = Metal Zemin 4 block.metal-floor-4.name = Metal Zemin 4
block.metal-floor-5.name = Metal Zemin 5
block.metal-floor-damaged.name = Hasarlı Metal Zemin block.metal-floor-damaged.name = Hasarlı Metal Zemin
block.dark-panel-1.name = Kara Panel 1 block.dark-panel-1.name = Kara Panel 1
block.dark-panel-2.name = Kara Panel 2 block.dark-panel-2.name = Kara Panel 2

View File

@@ -55,15 +55,24 @@ schematic.delete.confirm = Ви справді хочете видалити ц
schematic.rename = Перейменувати схему schematic.rename = Перейменувати схему
schematic.info = {0}x{1}, блоків: {2} schematic.info = {0}x{1}, блоків: {2}
schematic.disabled = [scarlet]Схеми вимкнені[]\nВам не дозволяється використовувати схеми на цій [accent]мапі[] чи [accent]сервері. schematic.disabled = [scarlet]Схеми вимкнені[]\nВам не дозволяється використовувати схеми на цій [accent]мапі[] чи [accent]сервері.
schematic.tags = Мітки:
schematic.edittags = Редагувати мітки
schematic.addtag = Додати мітку
schematic.texttag = Текстова мітка
schematic.icontag = Мітка із значком
schematic.renametag = Перейменувати мітку
schematic.tagdelconfirm = Видалити цю мітку повністю?
schematic.tagexists = Схожа мітка вже існує.
mod.featured.title = Переглядач модифікацій mod.featured.title = Переглядач модифікацій
mods.browser = Переглядач модифікацій mods.browser = Переглядач модифікацій
mods.browser.selected = Обрана модифікація mods.browser.selected = Вибрана модифікація
mods.browser.add = Установити mods.browser.add = Установити
mods.browser.reinstall = Перевстановити mods.browser.reinstall = Перевстановити
mods.github.open = Відкрити mods.github.open = Відкрити
mods.browser.sortdate = Сортувати за давністю mods.browser.sortdate = Сортувати за давністю
mods.browser.sortstars = Сортувати за кількостю зірок mods.browser.sortstars = Сортувати за популярністю
stats = Статистика stats = Статистика
stat.wave = Хвиль відбито:[accent] {0} stat.wave = Хвиль відбито:[accent] {0}
@@ -298,7 +307,6 @@ data.exported = Дані вивантажено.
data.invalid = Це не дійсні ігрові дані. data.invalid = Це не дійсні ігрові дані.
data.import.confirm = Вивантаження зовнішніх даних перезапише[scarlet] ВСІ[] ваші поточні ігрові дані.\n[accent]Це неможливо скасувати![]\n\nЯк тільки дані імпортуються, гра негайно закриється. data.import.confirm = Вивантаження зовнішніх даних перезапише[scarlet] ВСІ[] ваші поточні ігрові дані.\n[accent]Це неможливо скасувати![]\n\nЯк тільки дані імпортуються, гра негайно закриється.
quit.confirm = Ви дійсно хочете вийти? quit.confirm = Ви дійсно хочете вийти?
quit.confirm.tutorial = Ви впевнені, що знаєте, що робите?\nНавчання можна пройти наново[accent] Налаштування->Гра->Пройти навчання ще раз.[]
loading = [accent]Завантаження… loading = [accent]Завантаження…
reloading = [accent]Перезавантаження модифікацій… reloading = [accent]Перезавантаження модифікацій…
saving = [accent]Збереження… saving = [accent]Збереження…
@@ -463,11 +471,13 @@ filter.option.circle-scale = Масштаб круга
filter.option.octaves = Циклічність застосування filter.option.octaves = Циклічність застосування
filter.option.falloff = Спад циклічності filter.option.falloff = Спад циклічності
filter.option.angle = Кут filter.option.angle = Кут
filter.option.rotate = Повернути
filter.option.amount = Кількість filter.option.amount = Кількість
filter.option.block = Блок filter.option.block = Блок
filter.option.floor = Поверхня filter.option.floor = Поверхня
filter.option.flooronto = Цільова поверхня filter.option.flooronto = Цільова поверхня
filter.option.target = Ціль filter.option.target = Ціль
filter.option.replacement = Заміщення
filter.option.wall = Стіна filter.option.wall = Стіна
filter.option.ore = Руда filter.option.ore = Руда
filter.option.floor2 = Друга поверхня filter.option.floor2 = Друга поверхня
@@ -483,7 +493,8 @@ load = Завантажити
save = Зберегти save = Зберегти
fps = FPS: {0} fps = FPS: {0}
ping = Затримка: {0} мс ping = Затримка: {0} мс
memory = Mem: {0}мб tps = TPS: {0}
memory = Mem: {0} мб
memory2 = Mem:\n {0}мб +\n {1}мб memory2 = Mem:\n {0}мб +\n {1}мб
language.restart = Перезапустіть свою гру, щоби налаштування мови набули чинності. language.restart = Перезапустіть свою гру, щоби налаштування мови набули чинності.
settings = Налаштування settings = Налаштування
@@ -513,7 +524,7 @@ launch.from = Запуск з [accent]{0}
launch.destination = Пункт призначення: {0} launch.destination = Пункт призначення: {0}
configure.invalid = Кількість має бути числом між 0 та {0}. configure.invalid = Кількість має бути числом між 0 та {0}.
add = Додати… add = Додати…
boss.health = Здоров’я Вартового guardian = Вартовий
connectfail = [crimson]Помилка з’єднання:\n\n[accent]{0} connectfail = [crimson]Помилка з’єднання:\n\n[accent]{0}
error.unreachable = Сервер не є доступним.\nЧи правильно написана адреса? error.unreachable = Сервер не є доступним.\nЧи правильно написана адреса?
error.invalidaddress = Некоректна адреса. error.invalidaddress = Некоректна адреса.
@@ -553,6 +564,7 @@ sector.missingresources = [scarlet]Недостатньо ресурсів у я
sector.attacked = Сектор [accent]{0}[white] під атакою! sector.attacked = Сектор [accent]{0}[white] під атакою!
sector.lost = Сектор [accent]{0}[white] втрачено! sector.lost = Сектор [accent]{0}[white] втрачено!
sector.captured = Сектор [accent]{0}[white]захоплено! sector.captured = Сектор [accent]{0}[white]захоплено!
sector.changeicon = Змінити значок
threat.low = низька threat.low = низька
threat.medium = середня threat.medium = середня
threat.high = висока threat.high = висока
@@ -600,6 +612,7 @@ status.wet.name = Вологий
status.muddy.name = Забризканий гряззю status.muddy.name = Забризканий гряззю
status.melting.name = Плавиться status.melting.name = Плавиться
status.sapped.name = Виснажений status.sapped.name = Виснажений
status.electrified.name = Наелектризований
status.spore-slowed.name = Сповільнений спорами status.spore-slowed.name = Сповільнений спорами
status.tarred.name = Покритий нафтою status.tarred.name = Покритий нафтою
status.overclock.name = Прискорений status.overclock.name = Прискорений
@@ -628,6 +641,7 @@ settings.clearcampaignsaves.confirm = Ви справді хочете очис
paused = [accent]< Пауза > paused = [accent]< Пауза >
clear = Очистити clear = Очистити
banned = [scarlet]Заблоковано banned = [scarlet]Заблоковано
unsupported.environment = [scarlet]Непідтримуване середовище
yes = Так yes = Так
no = Ні no = Ні
info.title = Інформація info.title = Інформація
@@ -636,6 +650,7 @@ error.crashtitle = Виникла помилка
unit.nobuild = [scarlet]Ця одиниця не може будувати unit.nobuild = [scarlet]Ця одиниця не може будувати
lastaccessed = [lightgray]Остання зміна від {0} lastaccessed = [lightgray]Остання зміна від {0}
block.unknown = [lightgray]??? block.unknown = [lightgray]???
stat.showinmap = <завантажте мапу для показу>
stat.description = Призначення stat.description = Призначення
stat.input = Ввід stat.input = Ввід
stat.output = Вивід stat.output = Вивід
@@ -665,6 +680,7 @@ stat.memorycapacity = Ємність пам’яті
stat.basepowergeneration = Базова генерація енергії stat.basepowergeneration = Базова генерація енергії
stat.productiontime = Час виробництва stat.productiontime = Час виробництва
stat.repairtime = Час повного відновлення блоку stat.repairtime = Час повного відновлення блоку
stat.repairspeed = Швидкість відновлення
stat.weapons = Зброя stat.weapons = Зброя
stat.bullet = Кулі stat.bullet = Кулі
stat.speedincrease = Збільшення швидкості stat.speedincrease = Збільшення швидкості
@@ -713,11 +729,12 @@ stat.reactive = Реактивний
ability.forcefield = Щитове поле ability.forcefield = Щитове поле
ability.repairfield = Ремонтувальне поле ability.repairfield = Ремонтувальне поле
ability.statusfield = Поле підсилення ability.statusfield = {0} Поле підсилення
ability.unitspawn = Завод одиниць «{0}» ability.unitspawn = Завод одиниць «{0}»
ability.shieldregenfield = Поле, що відновлює щити ability.shieldregenfield = Поле, що відновлює щити
ability.movelightning = Блискавки під час руху ability.movelightning = Блискавки під час руху
bar.drilltierreq = Потребується кращий бур ability.energyfield = Енергетичне поле: [accent]{0}[] шкоди ~ [accent]{1}[] блоків / [accent]{2}[] цілей
bar.drilltierreq = Потрібен ліпший бур
bar.noresources = Бракує ресурсів bar.noresources = Бракує ресурсів
bar.corereq = Необхідне основне ядро bar.corereq = Необхідне основне ядро
bar.drillspeed = Швидкість буріння: {0} за с. bar.drillspeed = Швидкість буріння: {0} за с.
@@ -738,6 +755,7 @@ bar.power = Енергія
bar.progress = Хід будування bar.progress = Хід будування
bar.input = Ввід bar.input = Ввід
bar.output = Вивід bar.output = Вивід
bar.strength = x[stat]{0}[lightgray] сила
units.processorcontrol = [lightgray]Керується процесором units.processorcontrol = [lightgray]Керується процесором
bullet.damage = [stat]{0}[lightgray] шкода bullet.damage = [stat]{0}[lightgray] шкода
bullet.splashdamage = [stat]{0}[lightgray] шкода по ділянці ~[stat] {1}[lightgray] плиток bullet.splashdamage = [stat]{0}[lightgray] шкода по ділянці ~[stat] {1}[lightgray] плиток
@@ -755,6 +773,7 @@ bullet.reload = [stat]{0}[lightgray]x швидкість перезаряджа
unit.blocks = блоки unit.blocks = блоки
unit.blockssquared = блоків² unit.blockssquared = блоків²
unit.powersecond = одиниць енергії за секунду unit.powersecond = одиниць енергії за секунду
unit.tilessecond = плиток за секунду
unit.liquidsecond = одиниць рідини за секунду unit.liquidsecond = одиниць рідини за секунду
unit.itemssecond = предметів за секунду unit.itemssecond = предметів за секунду
unit.liquidunits = одиниць рідини unit.liquidunits = одиниць рідини
@@ -939,6 +958,8 @@ rules.wavetimer = Таймер для хвиль
rules.waves = Хвилі rules.waves = Хвилі
rules.attack = Режим атаки rules.attack = Режим атаки
rules.buildai = Будування ШІ rules.buildai = Будування ШІ
rules.corecapture = Захоплення ядра після знищення
rules.polygoncoreprotection = Полігональний захист ядер
rules.enemyCheat = Нескінченні ресурси для червоної команди ШІ rules.enemyCheat = Нескінченні ресурси для червоної команди ШІ
rules.blockhealthmultiplier = Множник здоров’я блоків rules.blockhealthmultiplier = Множник здоров’я блоків
rules.blockdamagemultiplier = Множник шкоди блоків rules.blockdamagemultiplier = Множник шкоди блоків
@@ -1022,6 +1043,11 @@ unit.minke.name = Смугач
unit.bryde.name = Брайд unit.bryde.name = Брайд
unit.sei.name = Сейвал unit.sei.name = Сейвал
unit.omura.name = Омура unit.omura.name = Омура
unit.retusa.name = Ретуза
unit.oxynoe.name = Оксино
unit.cyerce.name = Саєс
unit.aegires.name = Еґірес
unit.navanax.name = Наванакс
unit.alpha.name = Альфа unit.alpha.name = Альфа
unit.beta.name = Бета unit.beta.name = Бета
unit.gamma.name = Гамма unit.gamma.name = Гамма
@@ -1081,6 +1107,7 @@ block.sand-water.name = Пісок із водою
block.darksand-water.name = Темний пісок із водою block.darksand-water.name = Темний пісок із водою
block.char.name = Випалена земля block.char.name = Випалена земля
block.dacite.name = Дацит block.dacite.name = Дацит
block.rhyolite.name = Риоліт
block.dacite-wall.name = Дацитова стіна block.dacite-wall.name = Дацитова стіна
block.dacite-boulder.name = Дацитовий валун block.dacite-boulder.name = Дацитовий валун
block.ice-snow.name = Крижаний сніг block.ice-snow.name = Крижаний сніг
@@ -1098,7 +1125,8 @@ block.spore-cluster.name = Скупчення спор
block.metal-floor.name = Металева підлога 1 block.metal-floor.name = Металева підлога 1
block.metal-floor-2.name = Металева підлога 2 block.metal-floor-2.name = Металева підлога 2
block.metal-floor-3.name = Металева підлога 3 block.metal-floor-3.name = Металева підлога 3
block.metal-floor-5.name = Металева підлога 4 block.metal-floor-4.name = Металева підлога 4
block.metal-floor-5.name = Металева підлога 5
block.metal-floor-damaged.name = Пошкоджена металева підлога block.metal-floor-damaged.name = Пошкоджена металева підлога
block.dark-panel-1.name = Темна панель 1 block.dark-panel-1.name = Темна панель 1
block.dark-panel-2.name = Темна панель 2 block.dark-panel-2.name = Темна панель 2
@@ -1188,6 +1216,7 @@ block.solar-panel.name = Сонячна панель
block.solar-panel-large.name = Велика сонячна панель block.solar-panel-large.name = Велика сонячна панель
block.oil-extractor.name = Екстрактор нафти block.oil-extractor.name = Екстрактор нафти
block.repair-point.name = Ремонтний пункт block.repair-point.name = Ремонтний пункт
block.repair-point.name = Ремонтна башта
block.pulse-conduit.name = Імпульсний трубопровід block.pulse-conduit.name = Імпульсний трубопровід
block.plated-conduit.name = Зміцнений трубопровід block.plated-conduit.name = Зміцнений трубопровід
block.phase-conduit.name = Фазовий трубопровід block.phase-conduit.name = Фазовий трубопровід
@@ -1230,6 +1259,12 @@ block.exponential-reconstructor.name = Експоненційний реконс
block.tetrative-reconstructor.name = Тетративний реконструктор block.tetrative-reconstructor.name = Тетративний реконструктор
block.payload-conveyor.name = Вантажний конвеєр block.payload-conveyor.name = Вантажний конвеєр
block.payload-router.name = Розвантажувальний маршрутизатор block.payload-router.name = Розвантажувальний маршрутизатор
block.duct.name = Duct
block.duct-router.name = Канальний маршрутизатор
block.duct-bridge.name = Канальний міст
block.payload-propulsion-tower.name = Вантажна катапульта
block.payload-void.name = Вантажний вакуум
block.payload-source.name = Вантажне джерело
block.disassembler.name = Розбирач block.disassembler.name = Розбирач
block.silicon-crucible.name = Кремнієвий тигель block.silicon-crucible.name = Кремнієвий тигель
block.overdrive-dome.name = Великий прискорювач block.overdrive-dome.name = Великий прискорювач
@@ -1246,8 +1281,8 @@ block.large-logic-display.name = Великий логічний дисплей
block.memory-cell.name = Комірка пам’яті block.memory-cell.name = Комірка пам’яті
block.memory-bank.name = Блок пам’яті block.memory-bank.name = Блок пам’яті
team.blue.name = Синя team.blue.name = Синя
team.crux.name = Червона team.crux.name = Загарбники
team.sharded.name = Помаранчева team.sharded.name = Розколоті
team.orange.name = Помаранчева team.orange.name = Помаранчева
team.derelict.name = Знедолена team.derelict.name = Знедолена
team.green.name = Зелена team.green.name = Зелена
@@ -1268,6 +1303,7 @@ hint.placeConveyor.mobile = Конвеєри переміщують предме
hint.placeTurret = Розмістіть  [accent]башти[], щоби захистити базу від ворогів.\n\nБашти потребують боєприпасів. У цьому випадку \uf838мідь.\nДля її подачі використовуйте конвеєри та бури. hint.placeTurret = Розмістіть  [accent]башти[], щоби захистити базу від ворогів.\n\nБашти потребують боєприпасів. У цьому випадку \uf838мідь.\nДля її подачі використовуйте конвеєри та бури.
hhint.breaking = Натисніть [accent]ПКМ[] і тягніть, щоби зруйнувати блоки. hhint.breaking = Натисніть [accent]ПКМ[] і тягніть, щоби зруйнувати блоки.
hint.breaking.mobile = Активуйте  [accent]молот[] внизу праворуч і торкніться блоків, щоби їх розібрати.\n\nУтримуйте палець протягом секунди і протягніть, щоби розібрати виділене. hint.breaking.mobile = Активуйте  [accent]молот[] внизу праворуч і торкніться блоків, щоби їх розібрати.\n\nУтримуйте палець протягом секунди і протягніть, щоби розібрати виділене.
hint.blockInfo = Подивіться інформацію про блок. Перейдіть до [accent]меню будівництва[] і натисніть на кнопку [accent][[?][] правпоруч
hint.research = Використовуйте кнопку  [accent]Дослідження[] для дослідження нової технології. hint.research = Використовуйте кнопку  [accent]Дослідження[] для дослідження нової технології.
hint.research.mobile = Використовуйте  [accent]Дослідження[] в  [accent]меню[] для дослідження нової технології. hint.research.mobile = Використовуйте  [accent]Дослідження[] в  [accent]меню[] для дослідження нової технології.
hint.unitControl = Утримуйте [accent][[лівий Ctrl][] і [accent]натисніть[] на одиницю чи башту, щоби контролювати її. hint.unitControl = Утримуйте [accent][[лівий Ctrl][] і [accent]натисніть[] на одиницю чи башту, щоби контролювати її.
@@ -1300,7 +1336,7 @@ item.graphite.description = Використовується для боєпри
item.sand.description = Використовується для виробництва інших удосконалених матеріалів. item.sand.description = Використовується для виробництва інших удосконалених матеріалів.
item.coal.description = Використовується для виробництва палива і вдосконалених матеріалів. item.coal.description = Використовується для виробництва палива і вдосконалених матеріалів.
item.coal.details = Виглядає скам’янілою рослинною речовиною, утвореною задовго до Сівби. item.coal.details = Виглядає скам’янілою рослинною речовиною, утвореною задовго до Сівби.
item.titanium.description = Використовується в транспортуванні рідин, бурів та авіації. item.titanium.description = Використовується в транспортуванні будівль, бурів та в заводах.
item.thorium.description = Використовується в міцних конструкціях і як ядерне паливо. item.thorium.description = Використовується в міцних конструкціях і як ядерне паливо.
item.scrap.description = Використовується в Плавильнях і Подрібнювачах для перероблення в інші матеріали в інші матеріали. item.scrap.description = Використовується в Плавильнях і Подрібнювачах для перероблення в інші матеріали в інші матеріали.
item.scrap.details = Залишки старих споруд та підрозділів. item.scrap.details = Залишки старих споруд та підрозділів.
@@ -1507,6 +1543,8 @@ lst.sensor = Отримати дані з певної будівлі чи од
lst.set = Установити значення змінної. lst.set = Установити значення змінної.
lst.operation = Виконує операцію над 1-2 змінними. lst.operation = Виконує операцію над 1-2 змінними.
lst.end = Перейти до верхньої частини стеку операцій. lst.end = Перейти до верхньої частини стеку операцій.
lst.wait = Зачекати певну кількість секунд.
lst.lookup = Знайдіть тип елемента, рідини, одиниці чи блоку за ідентифікатором.\nМожна отримати доступ до загальної кількості кожного типу через \n[accent]@unitCount[] / [accent]@itemCount[] / [accent]@liquidCount[] / [accent]@blockCount[]
lst.jump = Умовне переходження до іншої операції. lst.jump = Умовне переходження до іншої операції.
lst.unitbind = Прив’язка до одиниці певного типу та його зберігання в [accent]@unit[]. lst.unitbind = Прив’язка до одиниці певного типу та його зберігання в [accent]@unit[].
lst.unitcontrol = Контролювати поточну прив’язану одиницю. lst.unitcontrol = Контролювати поточну прив’язану одиницю.
@@ -1518,7 +1556,7 @@ logic.nounitbuild = [red]Будування за допомогою процес
lenum.type = Тип будівлі чи одиниці.\nНаприклад, для будь-якого маршрутизатора (англ. router), функція вертатиме [accent]@router[].\nНе є рядком. lenum.type = Тип будівлі чи одиниці.\nНаприклад, для будь-якого маршрутизатора (англ. router), функція вертатиме [accent]@router[].\nНе є рядком.
lenum.shoot = Стріляти в зазначену позицію. lenum.shoot = Стріляти в зазначену позицію.
lenum.shootp = Стріляти в одиницю чи будівлю із передбаченням швидкості. lenum.shootp = Стріляти в одиницю чи будівлю із передбаченням швидкості.
lenum.configure = Конфігурація будівлі, як-от в сортувальника. lenum.config = Конфігурація будівлі, як-от в сортувальника.
lenum.enabled = Чи блок увімкнено. lenum.enabled = Чи блок увімкнено.
laccess.color = Колір освітлювача. laccess.color = Колір освітлювача.
@@ -1526,6 +1564,7 @@ laccess.controller = Керувач одиницями. Якщо процесо
laccess.dead = Чи є одиниця або будівля мертвою або недійсною. laccess.dead = Чи є одиниця або будівля мертвою або недійсною.
laccess.controlled = Повертає \n[accent]@ctrlProcessor[] якщо одиниця контролюється процесором;\n[accent]@ctrlPlayer[] якщо одиниця чи будівля контролюєть гравцем\n[accent]@ctrlFormation[] якщо одиниця у загоні (формуванні)\nІнакше — 0. laccess.controlled = Повертає \n[accent]@ctrlProcessor[] якщо одиниця контролюється процесором;\n[accent]@ctrlPlayer[] якщо одиниця чи будівля контролюєть гравцем\n[accent]@ctrlFormation[] якщо одиниця у загоні (формуванні)\nІнакше — 0.
laccess.commanded = [red]Застаріле. Буде видалено![]\nВикористовуйте натомість [accent]controlled[]. laccess.commanded = [red]Застаріле. Буде видалено![]\nВикористовуйте натомість [accent]controlled[].
laccess.progress = Прогрес дії, від 0 до 1.\nПовертає виробництво, перезавантаження башти або хід будівництва.
graphicstype.clear = Залити дисплей вказаним кольором. graphicstype.clear = Залити дисплей вказаним кольором.
graphicstype.color = Установити колір для подальшої операції малювання. graphicstype.color = Установити колір для подальшої операції малювання.
@@ -1560,6 +1599,9 @@ lenum.len = Довжина вектора.
lenum.sin = Синус, у градусах. lenum.sin = Синус, у градусах.
lenum.cos = Косинус, у градусах. lenum.cos = Косинус, у градусах.
lenum.tan = Тангенс, у градусах. lenum.tan = Тангенс, у градусах.
lenum.asin = Арксинус, у градусах.
lenum.acos = Арккосинус, у градусах.
lenum.atan = Арктангенс, у градусах.
#це не одруківка, пошукайте 'позначення діапазону' #це не одруківка, пошукайте 'позначення діапазону'
lenum.rand = Випадкове десяткове число у діапазоні [0, значення). lenum.rand = Випадкове десяткове число у діапазоні [0, значення).
lenum.log = Натуральний логарифм (ln). lenum.log = Натуральний логарифм (ln).

View File

@@ -41,10 +41,13 @@ be.ignore = 忽略
be.noupdates = 未发现更新。 be.noupdates = 未发现更新。
be.check = 检测更新 be.check = 检测更新
mod.featured.dialog.title = 模组浏览器 (尚未完成) mods.browser = 模组浏览器
mods.browser.selected = 已选模组 mods.browser.selected = 已选模组
mods.browser.add=安装 mods.browser.add = 安装
mods.github.open=查看 mods.browser.reinstall = 重装
mods.github.open = 查看
mods.browser.sortdate = 按时间排序
mods.browser.sortstars = 按星标排序
schematic = 蓝图 schematic = 蓝图
schematic.add = 保存蓝图… schematic.add = 保存蓝图…
@@ -64,6 +67,14 @@ schematic.delete.confirm = 确认删除蓝图?
schematic.rename = 重命名蓝图 schematic.rename = 重命名蓝图
schematic.info = {0}x{1}{2} 个方块 schematic.info = {0}x{1}{2} 个方块
schematic.disabled = [scarlet]蓝图已禁用![]\n您不能在此[accent]地图[]或[accent]服务器[]上使用蓝图. schematic.disabled = [scarlet]蓝图已禁用![]\n您不能在此[accent]地图[]或[accent]服务器[]上使用蓝图.
schematic.tags = 标签:
schematic.edittags = 编辑标签
schematic.addtag = 增加新标签
schematic.texttag = 文字标签
schematic.icontag = 图标标签
schematic.renametag = 重命名标签
schematic.tagdelconfirm = 确定要完全删除这个标签吗?
schematic.tagexists = 这个标签已经存在了。
stats = 统计资料 stats = 统计资料
stat.wave = 防守波数:[accent]{0} stat.wave = 防守波数:[accent]{0}
@@ -90,6 +101,7 @@ customgame = 自定义游戏
newgame = 新游戏 newgame = 新游戏
none = <无> none = <无>
none.found = [lightgray]<未找到> none.found = [lightgray]<未找到>
none.inmap = [lightgray]<无法在地图中找到>
minimap = 小地图 minimap = 小地图
position = 位置 position = 位置
close = 关闭 close = 关闭
@@ -110,26 +122,29 @@ committingchanges = 正在提交更改
done = 已完成 done = 已完成
feature.unsupported = 您的设备不支持此功能。 feature.unsupported = 您的设备不支持此功能。
mods.alphainfo = 请注意,测试版本中的模组[scarlet]很容易存在缺陷[]。\n在 Mindustry 的 GitHub 或 Discord 上报告你发现的问题。 mods.initfailed = [red]⚠[] 前一次的mindustry启动失败这可能是由存在异常的模组导致的。\n\n为了防止循环崩溃[red]所有模组都被禁用了。[]\n\n如果想关闭这个功能可以在[accent]设置->游戏->游戏启动崩溃时不禁用模组[]里关闭.
mods = 模组 mods = 模组
mods.none = [lightgray]没有找到模组! mods.none = [lightgray]没有找到模组!
mods.guide = 模组制作教程 mods.guide = 模组制作教程
mods.report = 报告 Bug mods.report = 报告 Bug
mods.openfolder = 打开模组文件夹 mods.openfolder = 打开模组文件夹
mods.viewcontent = 查看内容
mods.reload = 重载 mods.reload = 重载
mods.reloadexit = 游戏将退出以重载模组。 mods.reloadexit = 游戏将退出以重载模组。
mod.installed = [[已装载]
mod.display = [gray]模组:[orange] {0} mod.display = [gray]模组:[orange] {0}
mod.enabled = [lightgray]已启用 mod.enabled = [lightgray]已启用
mod.disabled = [scarlet]已禁用 mod.disabled = [scarlet]已禁用
mod.multiplayer.compatible = [gray]多人游戏兼容性
mod.disable = 禁用 mod.disable = 禁用
mod.content = 内容: mod.content = 内容:
mod.delete.error = 无法删除模组。可能文件被占用 mod.delete.error = 无法删除模组。文件可能正在使用中
mod.requiresversion = [scarlet]所需的游戏版本:[accent]{0} mod.requiresversion = [scarlet]所需的最低游戏版本:[accent]{0}
mod.outdated = [scarlet]该模组可能不能在6.0上正确地运行(缺失 minGameVersion: 105) mod.outdated = [scarlet]该模组可能不能在6.0上正确地运行(缺失 minGameVersion: 105)
mod.missingdependencies = [scarlet]缺少前置模组:{0} mod.missingdependencies = [scarlet]缺少前置模组:{0}
mod.erroredcontent = [scarlet]内容错误 mod.erroredcontent = [scarlet]内容错误
mod.errors = 读取内容时发生错误. mod.errors = 读取内容时发生错误.
mod.noerrorplay = [scarlet]的模组发生了错误.[] 禁用相关模组或修复错误后才能进入游戏. mod.noerrorplay = [scarlet]的模组发生了错误.[] 禁用相关模组或修复错误后才能进入游戏.
mod.nowdisabled = [scarlet]“{0}”模组缺少依赖条件:[accent] {1}\n[lightgray]需要先下载上述模组。\n此模组现在将自动禁用。 mod.nowdisabled = [scarlet]“{0}”模组缺少依赖条件:[accent] {1}\n[lightgray]需要先下载上述模组。\n此模组现在将自动禁用。
mod.enable = 启用 mod.enable = 启用
mod.requiresrestart = 需要重启使模组生效。 mod.requiresrestart = 需要重启使模组生效。
@@ -165,19 +180,19 @@ researched = [lightgray]{0}己研究。
research.progress = {0}% 完成度 research.progress = {0}% 完成度
players = {0} 位玩家在线 players = {0} 位玩家在线
players.single = {0} 位玩家在线 players.single = {0} 位玩家在线
players.search = 研究 players.search = 搜索
players.notfound = [gray]没有找到玩家。 players.notfound = [gray]没有找到玩家。
server.closing = [accent]服务器关闭… server.closing = [accent]服务器关闭…
server.kicked.kick = 被踢出了服务器。 server.kicked.kick = 被踢出了服务器。
server.kicked.whitelist = 不在服务器白名单中。 server.kicked.whitelist = 不在服务器白名单中。
server.kicked.serverClose = 服务器已关闭。 server.kicked.serverClose = 服务器已关闭。
server.kicked.vote = 您被投票踢出了服务器。 server.kicked.vote = 您被投票踢出了服务器。
server.kicked.clientOutdated = 客户端过旧,请更新的游戏。 server.kicked.clientOutdated = 客户端过旧,请更新的游戏。
server.kicked.serverOutdated = 服务器过旧,请联系服务器管理员升级服务器。 server.kicked.serverOutdated = 服务器过旧,请联系服务器管理员升级服务器。
server.kicked.banned = 您在这个服务器上被封禁了。 server.kicked.banned = 您在这个服务器上被封禁了。
server.kicked.typeMismatch = 此服务器与的不稳定测试版不兼容。 server.kicked.typeMismatch = 此服务器与的不稳定测试版不兼容。
server.kicked.playerLimit = 服务器已满,请等待一个空位。 server.kicked.playerLimit = 服务器已满,请等待一个空位。
server.kicked.recentKick = 刚刚被踢出服务器。\n请稍后重新连接 server.kicked.recentKick = 刚刚被踢出服务器。\n请稍后重新连接
server.kicked.nameInUse = 您的名字与服务器中的一个人重复了。 server.kicked.nameInUse = 您的名字与服务器中的一个人重复了。
server.kicked.nameEmpty = 无效的名字! server.kicked.nameEmpty = 无效的名字!
server.kicked.idInUse = 您已经连接了这个服务器!不允许在一台设备上用两个客户端连接。 server.kicked.idInUse = 您已经连接了这个服务器!不允许在一台设备上用两个客户端连接。
@@ -214,6 +229,8 @@ trace.ip = IP 地址:[accent]{0}
trace.id = 唯一的 ID[accent]{0} trace.id = 唯一的 ID[accent]{0}
trace.mobile = 移动客户端:[accent]{0} trace.mobile = 移动客户端:[accent]{0}
trace.modclient = 自定义客户端:[accent]{0} trace.modclient = 自定义客户端:[accent]{0}
trace.times.joined = 进入服务器次数: [accent]{0}
trace.times.kicked = 踢出服务器次数: [accent]{0}
invalidid = 无效的客户端 ID提交一个错误报告。 invalidid = 无效的客户端 ID提交一个错误报告。
server.bans = 黑名单 server.bans = 黑名单
server.bans.none = 没有被封禁的玩家! server.bans.none = 没有被封禁的玩家!
@@ -287,6 +304,7 @@ cancel = 取消
openlink = 打开链接 openlink = 打开链接
copylink = 复制链接 copylink = 复制链接
back = 返回 back = 返回
max = 最大值
crash.export = 导出崩溃日志 crash.export = 导出崩溃日志
crash.none = 找不到崩溃日志。 crash.none = 找不到崩溃日志。
crash.exported = 崩溃日志已导出。 crash.exported = 崩溃日志已导出。
@@ -297,7 +315,6 @@ data.exported = 数据已导出。
data.invalid = 非有效游戏数据。 data.invalid = 非有效游戏数据。
data.import.confirm = 导入外部游戏数据将覆盖本地[scarlet]全部[]的游戏数据。\n[accent]此操作无法撤销![]\n\n数据导入后将自动退出游戏。 data.import.confirm = 导入外部游戏数据将覆盖本地[scarlet]全部[]的游戏数据。\n[accent]此操作无法撤销![]\n\n数据导入后将自动退出游戏。
quit.confirm = 确定退出? quit.confirm = 确定退出?
quit.confirm.tutorial = 确定要跳过教程?\n您可以通过[accent]设置->游戏->重玩教程[]来重玩教程。
loading = [accent]加载中… loading = [accent]加载中…
reloading = [accent]重载模组中… reloading = [accent]重载模组中…
saving = [accent]保存中… saving = [accent]保存中…
@@ -306,6 +323,7 @@ cancelbuilding = [accent][[{0}][]来清除规划
selectschematic = [accent][[{0}][]来选择复制 selectschematic = [accent][[{0}][]来选择复制
pausebuilding = [accent][[{0}][]来暂停建造 pausebuilding = [accent][[{0}][]来暂停建造
resumebuilding = [scarlet][[{0}][]来恢复建造 resumebuilding = [scarlet][[{0}][]来恢复建造
enablebuilding = [scarlet][[{0}][]来启用建造
showui = UI已隐藏\n按[accent][[{0}][]显示UI showui = UI已隐藏\n按[accent][[{0}][]显示UI
wave = [accent]第{0}波 wave = [accent]第{0}波
wave.cap = [accent]波次 {0}/{1} wave.cap = [accent]波次 {0}/{1}
@@ -324,7 +342,7 @@ saveimage = 保存图片
unknown = 未知 unknown = 未知
custom = 自定义 custom = 自定义
builtin = 内置的 builtin = 内置的
map.delete.confirm = 您确定想要删除这张地图吗?这个操作无法撤销! map.delete.confirm = 您确定想要删除这张地图吗?这个操作无法撤销!
map.random = [accent]随机地图 map.random = [accent]随机地图
map.nospawn = 这个地图没有核心!请在编辑器中添加一个[royal]己方[]的核心。 map.nospawn = 这个地图没有核心!请在编辑器中添加一个[royal]己方[]的核心。
map.nospawn.pvp = 这个地图没有敌人的核心!请在编辑器中添加一个[royal]敌人[]的核心。 map.nospawn.pvp = 这个地图没有敌人的核心!请在编辑器中添加一个[royal]敌人[]的核心。
@@ -332,7 +350,7 @@ map.nospawn.attack = 这个地图没有敌人的核心!请在编辑中向地
map.invalid = 地图载入错误:地图文件可能已经损坏。 map.invalid = 地图载入错误:地图文件可能已经损坏。
workshop.update = 更新地图 workshop.update = 更新地图
workshop.error = 获取创意工坊详细信息时出错:{0} workshop.error = 获取创意工坊详细信息时出错:{0}
map.publish.confirm = 确定上传此地图?\n\n[lightgray]确定同意 Steam 创意工坊的最终用户许可协议,否则的地图将不会被展示! map.publish.confirm = 确定上传此地图?\n\n[lightgray]确定同意 Steam 创意工坊的最终用户许可协议,否则的地图将不会被展示!
workshop.menu = 选择此项目的目的。 workshop.menu = 选择此项目的目的。
workshop.info = 项目信息 workshop.info = 项目信息
changelog = 更新日志(可选): changelog = 更新日志(可选):
@@ -345,8 +363,8 @@ steam.error = 初始化 Steam 服务失败。\n错误{0}
editor.brush = 笔刷 editor.brush = 笔刷
editor.openin = 在编辑器中打开 editor.openin = 在编辑器中打开
editor.oregen = 的生成 editor.oregen = 的生成
editor.oregen.info = 的生成: editor.oregen.info = 的生成:
editor.mapinfo = 地图信息 editor.mapinfo = 地图信息
editor.author = 作者: editor.author = 作者:
editor.description = 描述: editor.description = 描述:
@@ -361,7 +379,6 @@ editor.center = 居中
workshop = 创意工坊 workshop = 创意工坊
waves.title = 波数 waves.title = 波数
waves.remove = 移除 waves.remove = 移除
waves.never = < 无限 >
waves.every = waves.every =
waves.waves = waves.waves =
waves.perspawn = 每次生成 waves.perspawn = 每次生成
@@ -436,30 +453,32 @@ toolmode.orthogonal = 正交线
toolmode.orthogonal.description = 只绘制正交线。 toolmode.orthogonal.description = 只绘制正交线。
toolmode.square = 方形 toolmode.square = 方形
toolmode.square.description = 方形刷子 toolmode.square.description = 方形刷子
toolmode.eraseores = 清除矿 toolmode.eraseores = 清除矿
toolmode.eraseores.description = 只清除矿 toolmode.eraseores.description = 只清除矿
toolmode.fillteams = 填充 toolmode.fillteams = 填充队
toolmode.fillteams.description = 填充队而不是方块。 toolmode.fillteams.description = 填充队而不是方块。
toolmode.drawteams = 绘制 toolmode.drawteams = 绘制队
toolmode.drawteams.description = 绘制队而不是方块。 toolmode.drawteams.description = 绘制队而不是方块。
filters.empty = [lightgray]没有过滤条件!用下方的按钮添加。 filters.empty = [lightgray]没有过滤条件!用下方的按钮添加。
filter.distort = 扭曲程度 filter.distort = 扭曲程度
filter.noise = 波动程度 filter.noise = 波动程度
filter.enemyspawn = 敌人生成点选择 filter.enemyspawn = 敌人生成点选择
filter.spawnpath = 敌人生成途径 filter.spawnpath = 敌人生成途径
filter.corespawn = 核心降落点选择 filter.corespawn = 核心降落点选择
filter.median = 平均数 filter.median = 平均数
filter.oremedian = 平均数 filter.oremedian = 平均数
filter.blend = 混合程度 filter.blend = 混合程度
filter.defaultores = 默认矿 filter.defaultores = 默认矿
filter.ore = filter.ore =
filter.rivernoise = 河流波动程度 filter.rivernoise = 河流波动程度
filter.mirror = 镜像 filter.mirror = 镜像
filter.clear = 清理 filter.clear = 清理
filter.option.ignore = 忽略 filter.option.ignore = 忽略
filter.scatter = 分散程度 filter.scatter = 分散程度
filter.terrain = 地形 filter.terrain = 地形
filter.option.scale = 规模大小 filter.option.scale = 规模大小
filter.option.chance = 几率大小 filter.option.chance = 几率大小
filter.option.mag = 巨大程度 filter.option.mag = 巨大程度
@@ -468,13 +487,15 @@ filter.option.circle-scale = 圆规模
filter.option.octaves = 递增 filter.option.octaves = 递增
filter.option.falloff = 递减 filter.option.falloff = 递减
filter.option.angle = 角度大小 filter.option.angle = 角度大小
filter.option.rotate = 旋转
filter.option.amount = 数量 filter.option.amount = 数量
filter.option.block = 方块 filter.option.block = 方块
filter.option.floor = 地面 filter.option.floor = 地面
filter.option.flooronto = 地面目标 filter.option.flooronto = 地面目标
filter.option.target = 目标 filter.option.target = 目标
filter.option.replacement = 替换
filter.option.wall = filter.option.wall =
filter.option.ore = filter.option.ore =
filter.option.floor2 = 二重地面 filter.option.floor2 = 二重地面
filter.option.threshold2 = 二重阈值 filter.option.threshold2 = 二重阈值
filter.option.radius = 半径大小 filter.option.radius = 半径大小
@@ -487,8 +508,9 @@ play = 开始游戏
campaign = 战役模式 campaign = 战役模式
load = 载入游戏 load = 载入游戏
save = 保存 save = 保存
fps = 帧数{0} fps = FPS{0}
ping = 延迟:{0}毫秒 ping = 延迟:{0}毫秒
tps = TPS: {0}
memory = 内存: {0}mb memory = 内存: {0}mb
memory2 = 内存:\n {0}mb +\n {1}mb memory2 = 内存:\n {0}mb +\n {1}mb
language.restart = 为了使语言设置生效请重启游戏。 language.restart = 为了使语言设置生效请重启游戏。
@@ -521,7 +543,7 @@ launch.from = 发射地: [accent]{0}
launch.destination = 目的地: {0} launch.destination = 目的地: {0}
configure.invalid = 数量必须是0到{0}之间的数字。 configure.invalid = 数量必须是0到{0}之间的数字。
add = 添加… add = 添加…
boss.health = Boss 生命值 guardian = 守卫者
connectfail = [crimson]服务器连接失败:[accent]{0} connectfail = [crimson]服务器连接失败:[accent]{0}
error.unreachable = 无法访问服务器。\n确定输对地址了吗 error.unreachable = 无法访问服务器。\n确定输对地址了吗
@@ -537,15 +559,16 @@ error.bloom = 未能初始化特效。\n您的设备可能不支持。
weather.rain.name = 降雨 weather.rain.name = 降雨
weather.snow.name = 降雪 weather.snow.name = 降雪
weather.sandstorm.name = 沙尘暴 weather.sandstorm.name = 沙尘暴
weather.sporestorm.name = 孢子 weather.sporestorm.name = 孢子风暴
weather.fog.name = weather.fog.name =
sectors.unexplored = [lightgray]未探索 sectors.unexplored = [lightgray]未探索
sectors.resources = 资源: sectors.resources = 资源:
sectors.production = 产出: sectors.production = 产出:
sectors.export = 输出: sectors.export = 输出:
sectors.import = 输入:
sectors.time = 时间: sectors.time = 时间:
sectors.threat = 威胁 sectors.threat = 威胁:
sectors.wave = 进攻波: sectors.wave = 进攻波:
sectors.stored = 贮存: sectors.stored = 贮存:
sectors.resume = 继续 sectors.resume = 继续
@@ -554,7 +577,7 @@ sectors.select = 选择
sectors.nonelaunch = [lightgray]无 (太阳) sectors.nonelaunch = [lightgray]无 (太阳)
sectors.rename = 重命名区块 sectors.rename = 重命名区块
sectors.enemybase = [scarlet]敌人基地 sectors.enemybase = [scarlet]敌人基地
sectors.vulnerable = [scarlet]脆弱的 sectors.vulnerable = [scarlet]易受攻击
sectors.underattack = [scarlet]遭到攻击![accent]{0}% 损毁度 sectors.underattack = [scarlet]遭到攻击![accent]{0}% 损毁度
sectors.survives = [accent]存活{0}波 sectors.survives = [accent]存活{0}波
sectors.go = 进入 sectors.go = 进入
@@ -565,12 +588,13 @@ sector.attacked = 区块[accent]{0}[white]受到攻击!
sector.lost = 区块[accent]{0}[white]已丢失! sector.lost = 区块[accent]{0}[white]已丢失!
#note: the missing space in the line below is intentional #note: the missing space in the line below is intentional
sector.captured = 区块[accent]{0}[white]已占领! sector.captured = 区块[accent]{0}[white]已占领!
sector.changeicon = 更改图标
threat.low = 低度 threat.low = 低度
threat.medium = 中度 threat.medium = 中度
threat.high = 高度 threat.high = 高度
threat.extreme = 极高 threat.extreme = 极高
threat.eradication = 扫荡 threat.eradication = 毁灭
planets = 行星 planets = 行星
@@ -605,12 +629,26 @@ sector.tarFields.description = 产油区边缘,位于山脉和沙漠之间。
sector.desolateRift.description = 非常危险的区域。这儿的资源丰富但空间很小。敌人十分危险。尽快离开,不要被敌人的攻击间隔太长所愚弄。 sector.desolateRift.description = 非常危险的区域。这儿的资源丰富但空间很小。敌人十分危险。尽快离开,不要被敌人的攻击间隔太长所愚弄。
sector.nuclearComplex.description = 以前生产和加工钍的设施已变成废墟。\n[lightgray]研究钍及其多种用途。\n\n敌人在这里大量存在不断消灭入侵者。 sector.nuclearComplex.description = 以前生产和加工钍的设施已变成废墟。\n[lightgray]研究钍及其多种用途。\n\n敌人在这里大量存在不断消灭入侵者。
sector.fungalPass.description = 介于高山和低矮孢子丛生的土地之间的过渡地带。这里有一个小型的敌方侦察基地。\n侦察它。\n使用尖刀和爬行者单位来摧毁两个核心。 sector.fungalPass.description = 介于高山和低矮孢子丛生的土地之间的过渡地带。这里有一个小型的敌方侦察基地。\n侦察它。\n使用尖刀和爬行者单位来摧毁两个核心。
sector.biomassFacility.description = 孢子的发源地。这里有最初研究和生产孢子的设施。\n研究这里的科技培养孢子来制造燃料和合物。\n\n[lightgray]设施损毁后,孢子散播了出去,原生生态系统无法抵挡这种外来物种。 sector.biomassFacility.description = 孢子的发源地。这里有最初研究和生产孢子的设施。\n研究这里的科技培养孢子来制造燃料和合物。\n\n[lightgray]设施损毁后,孢子散播了出去,原生生态系统无法抵挡这种外来物种。
sector.windsweptIslands.description = 海岸线之外坐落着这一串群岛。据记载这里曾有生产[accent]塑钢[]的建筑。\n\n抵御敌人的海军在岛上建立基地研究这些工厂。 sector.windsweptIslands.description = 海岸线之外坐落着这一串群岛。据记载这里曾有生产[accent]塑钢[]的建筑。\n\n抵御敌人的海军在岛上建立基地研究这些工厂。
sector.extractionOutpost.description = 一座遥远的前哨,敌人为了向其他区域发射资源而建立。\n\n跨区域运输技术是征服这个星球不可或缺的技术。摧毁敌人基地研究发射台。 sector.extractionOutpost.description = 一座遥远的前哨,敌人为了向其他区域发射资源而建立。\n\n跨区域运输技术是征服这个星球不可或缺的技术。摧毁敌人基地研究发射台。
sector.impact0078.description = 这里有最初进入这个星系的星际运输船的遗迹。\n\n回收可以利用的资源研究科技。 sector.impact0078.description = 这里有最初进入这个星系的星际运输船的遗迹。\n\n回收可以利用的资源研究科技。
sector.planetaryTerminal.description = 最终目标。\n\n这座滨海基地有一个可以将核心发射到其他行星的建筑防卫森严。\n\n制造海军单位尽快消灭敌人研究发射建筑。 sector.planetaryTerminal.description = 最终目标。\n\n这座滨海基地有一个可以将核心发射到其他行星的建筑防卫森严。\n\n制造海军单位尽快消灭敌人研究发射建筑。
status.burning.name = 燃烧
status.freezing.name = 冰冻
status.wet.name = 潮湿
status.muddy.name = 泥泞
status.melting.name = 熔化
status.sapped.name = 削弱
status.electrified.name = 麻痹
status.spore-slowed.name = 孢子减速
status.tarred.name = 油浸
status.overclock.name = 超频
status.shocked.name = 电击
status.blasted.name = 爆炸
status.unmoving.name = 静止
settings.language = 语言 settings.language = 语言
settings.data = 游戏数据 settings.data = 游戏数据
settings.reset = 恢复默认设置 settings.reset = 恢复默认设置
@@ -632,6 +670,7 @@ settings.clearcampaignsaves.confirm = 您确定要清除战役进度?
paused = [accent]< 暂停 > paused = [accent]< 暂停 >
clear = 清除 clear = 清除
banned = [scarlet]已禁止 banned = [scarlet]已禁止
unsupported.environment = [scarlet]不支持的环境
yes = yes =
no = no =
info.title = [accent]详情 info.title = [accent]详情
@@ -641,12 +680,14 @@ unit.nobuild = [scarlet]单位未能建造
lastaccessed = [lightgray]上次操作: {0} lastaccessed = [lightgray]上次操作: {0}
block.unknown = [lightgray]??? block.unknown = [lightgray]???
stat.showinmap = <加载地图以展示>
stat.description = 介绍 stat.description = 介绍
stat.input = 输入 stat.input = 输入
stat.output = 输出 stat.output = 输出
stat.booster = 增强物品/液体 stat.booster = 增强物品/液体
stat.tiles = 所需地型 stat.tiles = 所需地型
stat.affinities = 相关 stat.affinities = 相关
stat.opposites = 对立
stat.powercapacity = 能量容量 stat.powercapacity = 能量容量
stat.powershot = 能量/发射 stat.powershot = 能量/发射
stat.damage = 伤害 stat.damage = 伤害
@@ -669,6 +710,7 @@ stat.memorycapacity = 内存容量
stat.basepowergeneration = 基础能源输出 stat.basepowergeneration = 基础能源输出
stat.productiontime = 生产时间 stat.productiontime = 生产时间
stat.repairtime = 建筑完全修复时间 stat.repairtime = 建筑完全修复时间
stat.repairspeed = 修复速度
stat.weapons = 武器 stat.weapons = 武器
stat.bullet = 子弹 stat.bullet = 子弹
stat.speedincrease = 提速 stat.speedincrease = 提速
@@ -678,6 +720,7 @@ stat.drillspeed = 基础钻探速度
stat.boosteffect = 增强效果 stat.boosteffect = 增强效果
stat.maxunits = 最大单位数量 stat.maxunits = 最大单位数量
stat.health = 生命值 stat.health = 生命值
stat.armor = 护甲
stat.buildtime = 建造时间 stat.buildtime = 建造时间
stat.maxconsecutive = 最大连续 stat.maxconsecutive = 最大连续
stat.buildcost = 建造花费 stat.buildcost = 建造花费
@@ -693,6 +736,7 @@ stat.lightningchance = 激发闪电几率
stat.lightningdamage = 激发闪电伤害 stat.lightningdamage = 激发闪电伤害
stat.flammability = 燃烧性 stat.flammability = 燃烧性
stat.radioactivity = 放射性 stat.radioactivity = 放射性
stat.charge = 放电性
stat.heatcapacity = 热容量 stat.heatcapacity = 热容量
stat.viscosity = 粘度 stat.viscosity = 粘度
stat.temperature = 温度 stat.temperature = 温度
@@ -703,9 +747,16 @@ stat.minetier = 采矿等级
stat.payloadcapacity = 载货容量 stat.payloadcapacity = 载货容量
stat.commandlimit = 指挥上限 stat.commandlimit = 指挥上限
stat.abilities = 能力 stat.abilities = 能力
stat.canboost = 助推 stat.canboost = 是否能助推
stat.flying = 飞行 stat.flying = 是否能飞行
stat.ammouse = 弹药消耗 stat.ammouse = 弹药消耗
stat.damagemultiplier = 伤害倍率
stat.healthmultiplier = 生命倍率
stat.speedmultiplier = 移速倍率
stat.reloadmultiplier = 射速倍率
stat.buildspeedmultiplier = 建造速度倍率
stat.reactive = 反应性
stat.healing = 治疗
ability.forcefield = 力墙场 ability.forcefield = 力墙场
ability.repairfield = 修复场 ability.repairfield = 修复场
@@ -713,6 +764,7 @@ ability.statusfield = 状态场
ability.unitspawn = {0} 单位工厂 ability.unitspawn = {0} 单位工厂
ability.shieldregenfield = 护盾再生场 ability.shieldregenfield = 护盾再生场
ability.movelightning = 闪电助推器 ability.movelightning = 闪电助推器
ability.energyfield = 能量场: [accent]{0}[] 伤害 ~ [accent]{1}[] 格 / [accent]{2}[] 目标数
bar.drilltierreq = 需要更高级的钻头 bar.drilltierreq = 需要更高级的钻头
bar.noresources = 缺失资源 bar.noresources = 缺失资源
@@ -720,11 +772,12 @@ bar.corereq = 缺失核心基座
bar.drillspeed = 挖掘速度:{0}/秒 bar.drillspeed = 挖掘速度:{0}/秒
bar.pumpspeed = 泵压速度:{0}/秒 bar.pumpspeed = 泵压速度:{0}/秒
bar.efficiency = 效率:{0}% bar.efficiency = 效率:{0}%
bar.boost = 超速:{0}%
bar.powerbalance = 能量:{0}/秒 bar.powerbalance = 能量:{0}/秒
bar.powerstored = 储能:{0}/{1} bar.powerstored = 储能:{0}/{1}
bar.poweramount = 能量:{0} bar.poweramount = 能量:{0}
bar.poweroutput = 能量输出:{0} bar.poweroutput = 能量输出:{0}
bar.powerlines = 链接: {0}/{1} bar.powerlines = 链接{0}/{1}
bar.items = 物品:{0} bar.items = 物品:{0}
bar.capacity = 容量:{0} bar.capacity = 容量:{0}
bar.unitcap = {0} {1}/{2} bar.unitcap = {0} {1}/{2}
@@ -734,29 +787,28 @@ bar.power = 电力
bar.progress = 制造进度 bar.progress = 制造进度
bar.input = 输入 bar.input = 输入
bar.output = 输出 bar.output = 输出
bar.strength = [stat]{0}[lightgray]x 效率
units.processorcontrol = [lightgray]由处理器控制 units.processorcontrol = [lightgray]由处理器控制
bullet.damage = [stat]{0}[lightgray] 伤害 bullet.damage = [stat]{0}[lightgray] 伤害
bullet.splashdamage = [stat]{0}[lightgray] 范围伤害 ~[stat] {1}[lightgray] 格 bullet.splashdamage = [stat]{0}[lightgray] 范围伤害 ~[stat] {1}[lightgray] 格
bullet.incendiary = [stat] 燃烧 bullet.incendiary = [stat] 燃烧
bullet.sapping = [stat] 削弱
bullet.homing = [stat] 追踪 bullet.homing = [stat] 追踪
bullet.shock = [stat] 电击
bullet.frag = [stat] 分裂 bullet.frag = [stat] 分裂
bullet.lightning = [stat]{0}[lightgray]x 电弧 ~ [stat]{1}[lightgray] 伤害
bullet.buildingdamage = [stat]{0}%[lightgray] 对建筑伤害 bullet.buildingdamage = [stat]{0}%[lightgray] 对建筑伤害
bullet.knockback = [stat]{0}[lightgray] 击退 bullet.knockback = [stat]{0}[lightgray] 击退
bullet.pierce = [stat]{0}[lightgray]x 穿透 bullet.pierce = [stat]{0}[lightgray]x 穿透
bullet.infinitepierce = [stat] 穿 bullet.infinitepierce = [stat] 穿
bullet.healpercent = [stat]{0}[lightgray]% 修复 bullet.healpercent = [stat]{0}[lightgray]% 修复
bullet.freezing = [stat] 冰冻
bullet.tarred = [stat] 减速
bullet.multiplier = [stat]{0}[lightgray]x 装弹数量 bullet.multiplier = [stat]{0}[lightgray]x 装弹数量
bullet.reload = [stat]{0}[lightgray]x 装弹速度 bullet.reload = [stat]{0}[lightgray]x 装弹速度
unit.blocks = 方块 unit.blocks = 方块
unit.blockssquared = 方块² unit.blockssquared = 方块²
unit.powersecond = 能量/秒 unit.powersecond = 能量/秒
unit.tilessecond = 格/秒
unit.liquidsecond = 液体/秒 unit.liquidsecond = 液体/秒
unit.itemssecond = 物品/秒 unit.itemssecond = 物品/秒
unit.liquidunits = 液体 unit.liquidunits = 液体
@@ -791,18 +843,20 @@ setting.logichints.name = 逻辑代码提示
setting.flow.name = 显示资源传送速度[scarlet] setting.flow.name = 显示资源传送速度[scarlet]
setting.backgroundpause.name = 在背景中暂停 setting.backgroundpause.name = 在背景中暂停
setting.buildautopause.name = 自动暂停建造 setting.buildautopause.name = 自动暂停建造
setting.animatedwater.name = 流动的水 setting.doubletapmine.name = 双击以采矿
setting.animatedshields.name = 动态画面 setting.modcrashdisable.name = 游戏启动崩溃时不禁用模组
setting.antialias.name = 抗锯齿 setting.animatedwater.name = 动态液体
setting.playerindicators.name = 玩家指示灯 setting.animatedshields.name = 动态力场
setting.indicators.name = 队友指示器 setting.playerindicators.name = 玩家指示器
setting.indicators.name = 敌军指示器
setting.autotarget.name = 自动射击 setting.autotarget.name = 自动射击
setting.keyboard.name = 鼠标+键盘操控 setting.keyboard.name = 鼠标+键盘操控
setting.touchscreen.name = 触屏操控 setting.touchscreen.name = 触屏操控
setting.fpscap.name = 最大FPS setting.fpscap.name = 最大FPS
setting.fpscap.none = setting.fpscap.none =
setting.fpscap.text = {0} FPS setting.fpscap.text = {0} FPS
setting.uiscale.name = UI缩放比例[lightgray](需要重新启动)[] setting.uiscale.name = UI缩放比例
setting.uiscale.description = 需要重新启动以应用更改。
setting.swapdiagonal.name = 总是斜线建造 setting.swapdiagonal.name = 总是斜线建造
setting.difficulty.training = 训练 setting.difficulty.training = 训练
setting.difficulty.easy = 简单 setting.difficulty.easy = 简单
@@ -820,7 +874,8 @@ setting.saveinterval.name = 自动保存间隔
setting.seconds = {0} 秒 setting.seconds = {0} 秒
setting.milliseconds = {0} 毫秒 setting.milliseconds = {0} 毫秒
setting.fullscreen.name = 全屏 setting.fullscreen.name = 全屏
setting.borderlesswindow.name = 无边界窗口[lightgray](可能需要重启) setting.borderlesswindow.name = 无边界窗口
setting.borderlesswindow.description = 可能需要重新启动以应用更改。
setting.fps.name = 显示 FPS 和网络延迟 setting.fps.name = 显示 FPS 和网络延迟
setting.smoothcamera.name = 镜头平滑 setting.smoothcamera.name = 镜头平滑
setting.vsync.name = 垂直同步 setting.vsync.name = 垂直同步
@@ -910,6 +965,7 @@ keybind.pause_building.name = 暂停/继续建造
keybind.minimap.name = 小地图 keybind.minimap.name = 小地图
keybind.planet_map.name = 行星地图 keybind.planet_map.name = 行星地图
keybind.research.name = 研究 keybind.research.name = 研究
keybind.block_info.name = 方块信息
keybind.chat.name = 聊天 keybind.chat.name = 聊天
keybind.player_list.name = 玩家列表 keybind.player_list.name = 玩家列表
keybind.console.name = 控制台 keybind.console.name = 控制台
@@ -936,21 +992,27 @@ mode.custom = 自定义模式
rules.infiniteresources = 无限资源 rules.infiniteresources = 无限资源
rules.reactorexplosions = 反应堆爆炸 rules.reactorexplosions = 反应堆爆炸
rules.schematic = 启用蓝图 rules.coreincinerates = 核心自动焚烧溢出物资
rules.schematic = 允许使用蓝图
rules.wavetimer = 波次计时器 rules.wavetimer = 波次计时器
rules.waves = 波次 rules.waves = 波次
rules.attack = 攻击模式 rules.attack = 攻击模式
rules.buildai = AI建造 rules.buildai = AI建造
rules.cleanupdeadteams = 清理被打败的队伍的建筑PvP模式
rules.corecapture = 摧毁核心时占领该核心
rules.polygoncoreprotection = 多边形核心保护区域
rules.enemyCheat = 敌人(红队)无限资源 rules.enemyCheat = 敌人(红队)无限资源
rules.blockhealthmultiplier = 建筑生命倍数 rules.blockhealthmultiplier = 建筑生命倍数
rules.blockdamagemultiplier = 建筑伤害倍数 rules.blockdamagemultiplier = 建筑伤害倍数
rules.unitbuildspeedmultiplier = 单位生产速度倍数 rules.unitbuildspeedmultiplier = 单位生产速度倍数
rules.unithealthmultiplier = 单位生命倍数 rules.unithealthmultiplier = 单位生命倍数
rules.unitdamagemultiplier = 单位伤害倍数 rules.unitdamagemultiplier = 单位伤害倍数
rules.enemycorebuildradius = 敌对核心非建设区半径:[lightgray](格) rules.unitcapvariable = 每个核心提供的单位上限
rules.unitcap = 基础单位上限
rules.enemycorebuildradius = 敌方核心禁造区半径:[lightgray](格)
rules.wavespacing = 波次间隔时间:[lightgray](秒) rules.wavespacing = 波次间隔时间:[lightgray](秒)
rules.buildcostmultiplier = 设花费倍数 rules.buildcostmultiplier = 材倍率
rules.buildspeedmultiplier = 设时间倍数 rules.buildspeedmultiplier = 造速率
rules.deconstructrefundmultiplier = 拆除返还倍数 rules.deconstructrefundmultiplier = 拆除返还倍数
rules.waitForWaveToEnd = 等待敌人时间 rules.waitForWaveToEnd = 等待敌人时间
rules.dropzoneradius = 敌人出生点禁区大小:[lightgray](格) rules.dropzoneradius = 敌人出生点禁区大小:[lightgray](格)
@@ -962,7 +1024,7 @@ rules.title.unit = 单位
rules.title.experimental = 实验性 rules.title.experimental = 实验性
rules.title.environment = 环境性 rules.title.environment = 环境性
rules.lighting = 光照 rules.lighting = 光照
rules.enemyLights = 单位光照 rules.enemyLights = 敌方光照
rules.fire = 火焰 rules.fire = 火焰
rules.explosions = 建筑/单位爆炸伤害 rules.explosions = 建筑/单位爆炸伤害
rules.ambientlight = 环境光 rules.ambientlight = 环境光
@@ -973,8 +1035,9 @@ rules.weather.duration = 时长:
content.item.name = 物品 content.item.name = 物品
content.liquid.name = 液体 content.liquid.name = 液体
content.unit.name = 部队 content.unit.name = 单位
content.block.name = content.block.name = 建筑
content.status.name = 状态效果
content.sector.name = 区域 content.sector.name = 区域
item.copper.name = item.copper.name =
@@ -985,14 +1048,15 @@ item.titanium.name = 钛
item.thorium.name = item.thorium.name =
item.silicon.name = item.silicon.name =
item.plastanium.name = 塑钢 item.plastanium.name = 塑钢
item.phase-fabric.name = item.phase-fabric.name =
item.surge-alloy.name = 巨浪合金 item.surge-alloy.name = 巨浪合金
item.spore-pod.name = 孢子荚 item.spore-pod.name = 孢子荚
item.sand.name = item.sand.name =
item.blast-compound.name = 爆炸混合物 item.blast-compound.name = 爆炸混合物
item.pyratite.name = item.pyratite.name = 火石
item.metaglass.name = 钢化玻璃 item.metaglass.name = 钢化玻璃
item.scrap.name = 废料 item.scrap.name = 废料
liquid.water.name = liquid.water.name =
liquid.slag.name = 矿渣 liquid.slag.name = 矿渣
liquid.oil.name = 石油 liquid.oil.name = 石油
@@ -1024,6 +1088,11 @@ unit.minke.name = 飞鲨
unit.bryde.name = 戟鲸 unit.bryde.name = 戟鲸
unit.sei.name = 蛟龙 unit.sei.name = 蛟龙
unit.omura.name = 海神 unit.omura.name = 海神
unit.retusa.name = 潜螺
unit.oxynoe.name = 电鳗
unit.cyerce.name = 江豚
unit.aegires.name = 神盾
unit.navanax.name = 龙王
unit.alpha.name = 阿尔法 unit.alpha.name = 阿尔法
unit.beta.name = 贝塔 unit.beta.name = 贝塔
unit.gamma.name = 伽马 unit.gamma.name = 伽马
@@ -1072,7 +1141,7 @@ block.core-nucleus.name = 终代核心
block.deepwater.name = 深水 block.deepwater.name = 深水
block.water.name = block.water.name =
block.tainted-water.name = 污水 block.tainted-water.name = 污水
block.darksand-tainted-water.name = 沙 污水 block.darksand-tainted-water.name = 沙 污水
block.tar.name = 石油 block.tar.name = 石油
block.stone.name = 石头 block.stone.name = 石头
block.sand.name = 沙子 block.sand.name = 沙子
@@ -1081,11 +1150,12 @@ block.ice.name = 冰
block.snow.name = block.snow.name =
block.craters.name = 陨石坑 block.craters.name = 陨石坑
block.sand-water.name = 沙 水 block.sand-water.name = 沙 水
block.darksand-water.name = 沙 水 block.darksand-water.name = 沙 水
block.char.name = 焦土 block.char.name = 焦土
block.dacite.name = 安岩 block.dacite.name =
block.dacite-wall.name = 英安岩墙 block.rhyolite.name = 流纹岩
block.dacite-boulder.name = 英安巨岩 block.dacite-wall.name = 安山岩墙
block.dacite-boulder.name = 安山巨岩
block.ice-snow.name = 冰雪地 block.ice-snow.name = 冰雪地
block.stone-wall.name = 石墙 block.stone-wall.name = 石墙
block.ice-wall.name = 冰墙 block.ice-wall.name = 冰墙
@@ -1101,7 +1171,8 @@ block.spore-cluster.name = 孢子簇
block.metal-floor.name = 金属地板1 block.metal-floor.name = 金属地板1
block.metal-floor-2.name = 金属地板2 block.metal-floor-2.name = 金属地板2
block.metal-floor-3.name = 金属地板3 block.metal-floor-3.name = 金属地板3
block.metal-floor-5.name = 金属地板4 block.metal-floor-4.name = 金属地板4
block.metal-floor-5.name = 金属地板5
block.metal-floor-damaged.name = 损坏的金属地板 block.metal-floor-damaged.name = 损坏的金属地板
block.dark-panel-1.name = 暗面板1 block.dark-panel-1.name = 暗面板1
block.dark-panel-2.name = 暗面板2 block.dark-panel-2.name = 暗面板2
@@ -1111,16 +1182,16 @@ block.dark-panel-5.name = 暗面板5
block.dark-panel-6.name = 暗面板6 block.dark-panel-6.name = 暗面板6
block.dark-metal.name = 暗金属 block.dark-metal.name = 暗金属
block.basalt.name = 玄武岩 block.basalt.name = 玄武岩
block.hotrock.name = 热石头 block.hotrock.name = 灼热岩石
block.magmarock.name = 岩浆石头 block.magmarock.name = 熔融岩石
block.copper-wall.name = 铜墙 block.copper-wall.name = 铜墙
block.copper-wall-large.name = 大型铜墙 block.copper-wall-large.name = 大型铜墙
block.titanium-wall.name = 钛墙 block.titanium-wall.name = 钛墙
block.titanium-wall-large.name = 大型钛墙 block.titanium-wall-large.name = 大型钛墙
block.plastanium-wall.name = 塑钢墙 block.plastanium-wall.name = 塑钢墙
block.plastanium-wall-large.name = 大型塑钢墙 block.plastanium-wall-large.name = 大型塑钢墙
block.phase-wall.name = 物墙 block.phase-wall.name = 物墙
block.phase-wall-large.name = 大型相物墙 block.phase-wall-large.name = 大型相物墙
block.thorium-wall.name = 钍墙 block.thorium-wall.name = 钍墙
block.thorium-wall-large.name = 大型钍墙 block.thorium-wall-large.name = 大型钍墙
block.door.name = block.door.name =
@@ -1144,7 +1215,7 @@ block.illuminator.name = 照明器
block.overflow-gate.name = 溢流门 block.overflow-gate.name = 溢流门
block.underflow-gate.name = 反向溢流门 block.underflow-gate.name = 反向溢流门
block.silicon-smelter.name = 硅冶炼厂 block.silicon-smelter.name = 硅冶炼厂
block.phase-weaver.name = 物编织器 block.phase-weaver.name = 物编织器
block.pulverizer.name = 粉碎机 block.pulverizer.name = 粉碎机
block.cryofluid-mixer.name = 冷冻液混合器 block.cryofluid-mixer.name = 冷冻液混合器
block.melter.name = 熔炉 block.melter.name = 熔炉
@@ -1182,10 +1253,10 @@ block.tsunami.name = 海啸
block.swarmer.name = 蜂群 block.swarmer.name = 蜂群
block.salvo.name = 齐射炮 block.salvo.name = 齐射炮
block.ripple.name = 浪涌 block.ripple.name = 浪涌
block.phase-conveyor.name = 物传送带桥 block.phase-conveyor.name = 物传送带桥
block.bridge-conveyor.name = 传送带桥 block.bridge-conveyor.name = 传送带桥
block.plastanium-compressor.name = 塑钢压缩机 block.plastanium-compressor.name = 塑钢压缩机
block.pyratite-mixer.name = 硫化物混合器 block.pyratite-mixer.name = 火石混合器
block.blast-mixer.name = 爆炸物混合器 block.blast-mixer.name = 爆炸物混合器
block.solar-panel.name = 太阳能板 block.solar-panel.name = 太阳能板
block.solar-panel-large.name = 大型太阳能板 block.solar-panel-large.name = 大型太阳能板
@@ -1193,7 +1264,7 @@ block.oil-extractor.name = 石油钻井
block.repair-point.name = 维修点 block.repair-point.name = 维修点
block.pulse-conduit.name = 脉冲导管 block.pulse-conduit.name = 脉冲导管
block.plated-conduit.name = 电镀导管 block.plated-conduit.name = 电镀导管
block.phase-conduit.name = 物导管桥 block.phase-conduit.name = 物导管桥
block.liquid-router.name = 液体路由器 block.liquid-router.name = 液体路由器
block.liquid-tank.name = 储液罐 block.liquid-tank.name = 储液罐
block.liquid-junction.name = 液体交叉器 block.liquid-junction.name = 液体交叉器
@@ -1233,14 +1304,20 @@ block.exponential-reconstructor.name = 多幂级单位重构工厂
block.tetrative-reconstructor.name = 无量级单位重构工厂 block.tetrative-reconstructor.name = 无量级单位重构工厂
block.payload-conveyor.name = 载荷传送带 block.payload-conveyor.name = 载荷传送带
block.payload-router.name = 载荷路由器 block.payload-router.name = 载荷路由器
block.duct.name = 物品导管
block.duct-router.name = 物品导管路由器
block.duct-bridge.name = 物品导管桥
block.payload-propulsion-tower.name = 载荷驱动台
block.payload-void.name = 载荷黑洞
block.payload-source.name =载荷源
block.disassembler.name = 解离机 block.disassembler.name = 解离机
block.silicon-crucible.name = 热能坩埚 block.silicon-crucible.name = 热能坩埚
block.overdrive-dome.name = 超速穹顶投射器 block.overdrive-dome.name = 超速穹顶投射器
block.interplanetary-accelerator.name = 行星际加速器
#experimental, may be removed #experimental, may be removed
block.block-forge.name = 方块熔炉 block.block-forge.name = 方块熔炉
block.block-loader.name = 方块装载机 block.block-loader.name = 方块装载机
block.block-unloader.name = 方块卸载机 block.block-unloader.name = 方块卸载机
block.interplanetary-accelerator.name = 行星际加速器
block.switch.name = 开关 block.switch.name = 开关
block.micro-processor.name = 微型处理器 block.micro-processor.name = 微型处理器
@@ -1254,50 +1331,50 @@ block.memory-bank.name = 内存库
team.blue.name = team.blue.name =
team.crux.name = team.crux.name =
team.sharded.name = team.sharded.name =
team.orange.name =
team.derelict.name = team.derelict.name =
team.green.name = 绿 team.green.name = 绿
team.purple.name = team.purple.name =
hint.skip = 跳过 hint.skip = 跳过
hint.desktopMove = 使用[accent][[WASD][]来移动. hint.desktopMove = 使用[accent][[WASD][]来移动
hint.zoom = 滚动[accent]鼠标滚轮[]放大或缩小. hint.zoom = 滚动[accent]鼠标滚轮[]放大或缩小
hint.mine = 移动到\uf8c4 铜矿附近并[accent]点按[]进行手动开采. hint.mine = 移动到\uf8c4 铜矿附近并[accent]点按[]进行手动开采
hint.desktopShoot = [accent][[鼠标左键][]射击. hint.desktopShoot = [accent][[鼠标左键][]射击
hint.depositItems = 要转移物品,请将其从飞船上拖到核心。 hint.depositItems = 要转移物品,请将其从飞船上拖到核心。
hint.respawn = 要于核心中重生,请按[accent][[V][]. hint.respawn = 要于核心中重生,请按[accent][[V][]
hint.respawn.mobile = 您已切换控制单元/结构. 如果要重生飞船,请[accent]点击左上方的图标(您的单元/结构图标).[] hint.respawn.mobile = 您已切换控制单元/建筑。如果要重生飞船,请[accent]点击左上方的图标(您的单元/结构图标)[]
hint.desktopPause = 按[accent][[Space][]暂停和取消暂停游戏. hint.desktopPause = 按[accent][[Space][]暂停和取消暂停游戏
hint.placeDrill = 选择右下角菜单中的\ue85e [accent]钻头[]分类,然后选择一个\uf870 [accent]钻头[]然后单击铜矿将其放置. hint.placeDrill = 选择右下角菜单中的\ue85e [accent]钻头[]分类,然后选择一个\uf870 [accent]钻头[]然后单击铜矿将其放置
hint.placeDrill.mobile = 选择右下角菜单中的\ue85e [accent]钻头[]分类,然后选择一个\uf870 [accent]钻头[],然后点击铜矿将其放置.\n\n点击右下角\ue800 [accent]复选标记[]以确认. hint.placeDrill.mobile = 选择右下角菜单中的\ue85e [accent]钻头[]分类,然后选择一个\uf870 [accent]钻头[],然后点击铜矿将其放置\n\n点击右下角\ue800 [accent]复选标记[]以确认
hint.placeConveyor = 传送带将物品从钻头移到其他方块中。从\ue814 [accent]布局[]分类选择\uf896 [accent]传送带[].\n\n单击并拖动以放置多个传送带.\n[accent]滚动[]以旋转. hint.placeConveyor = 传送带将物品从钻头移到其他方块中。从\ue814 [accent]布局[]分类选择\uf896 [accent]传送带[]\n\n单击并拖动以放置多个传送带\n[accent]滚动[]以旋转
hint.placeConveyor.mobile = 传送带将物品从钻头移到其他块中。从\ue814 [accent]布局[]分类选择\uf896 [accent]传送带[].\n\n长按一秒钟然后拖动以放置多个传送带. hint.placeConveyor.mobile = 传送带将物品从钻头移到其他块中。从\ue814 [accent]布局[]分类选择\uf896 [accent]传送带[]\n\n长按一秒钟然后拖动以放置多个传送带
hint.placeTurret = 放置\uf861 [accent]炮塔[]以抵御敌人,保卫你的核心.\n\n炮塔需要弹药-\uf838 铜.\n使用传送带和钻头为它们供弹。 hint.placeTurret = 放置\uf861 [accent]炮塔[]以抵御敌人,保卫你的核心\n\n炮塔需要弹药-\uf838 铜\n使用传送带和钻头为它们供弹。
hint.breaking = [accent]右击[]并拖动以拆除方块. hint.breaking = [accent]右击[]并拖动以拆除方块
hint.breaking.mobile = 点击在右下角的\ue817 [accent]锤子[]点击以拆除方块.\n\n按住手指一秒钟然后拖动并选择. hint.breaking.mobile = 点击在右下角的\ue817 [accent]锤子[]点击以拆除方块\n\n按住手指一秒钟然后拖动并选择
hint.research = 点击\ue875 [accent]科技树[]按钮研究新技术. hint.blockInfo = 在 [accent]建造菜单[]中选择一个建筑,然后点击右边的 [accent][[?][]按钮以查看这个方块的信息。
hint.research.mobile = 点击在\ue88c [accent]菜单[]中的\ue875 [accent]科技树[]按钮研究新技术. hint.research = 点击\ue875 [accent]科技树[]按钮研究新技术
hint.research.mobile = 点击在\ue88c [accent]菜单[]中的\ue875 [accent]科技树[]按钮以研究新技术。
hint.unitControl = 按住[accent][[L-ctrl][]并[accent]点击[]友军单位或炮塔来进行控制。 hint.unitControl = 按住[accent][[L-ctrl][]并[accent]点击[]友军单位或炮塔来进行控制。
hint.unitControl.mobile = [accent][双击][]友军单位或炮塔来进行控制。 hint.unitControl.mobile = [accent][双击][]友军单位或炮塔来进行控制。
hint.launch = 一旦收集到足够的资源,您就可以通过从右下角的\ue827 [accent]地图[]选择附近的区域[accent]发射[]核心. hint.launch = 一旦收集到足够的资源,您就可以通过从右下角的\ue827 [accent]地图[]选择附近的区域[accent]发射[]核心
hint.launch.mobile = 一旦收集到足够的资源,您就可以通过在\ue88c [accent]菜单[]的\ue827 [accent]地图[]选择附近的区域[accent]发射[]核心. hint.launch.mobile = 一旦收集到足够的资源,您就可以通过在\ue88c [accent]菜单[]的\ue827 [accent]地图[]选择附近的区域[accent]发射[]核心
hint.schematicSelect = 按住[accent][[F][]并拖动以选择要复制和粘贴的块.\n\n[accent][鼠标中键][]复制单个块类型. hint.schematicSelect = 按住[accent][[F][]并拖动以选择要复制和粘贴的块\n\n[accent][鼠标中键][]复制单个块类型
hint.conveyorPathfind = 按住[accent][[L-Ctrl][]拖动传送带并使其自动寻路. hint.conveyorPathfind = 按住[accent][[L-Ctrl][]拖动传送带并使其自动寻路
hint.conveyorPathfind.mobile = 启用\ue844 [accent]传送带自动寻路[]并拖动,传送带会自动生成路径. hint.conveyorPathfind.mobile = 启用\ue844 [accent]传送带自动寻路[]并拖动,传送带会自动生成路径
hint.boost = 按住[accent][[L-Shift][]用当前单位飞越障碍物.\n\n但只有少数地面单位有助推器. hint.boost = 按住[accent][[L-Shift][]用当前单位飞越障碍物\n\n但只有少数地面单位有助推器
hint.command = 按住[accent][[G][]指挥附近的单位编队. hint.command = 按住[accent][[G][]指挥附近的单位编队
hint.command.mobile = [accent][[双击][]您的部队指挥附近的部队编队. hint.command.mobile = [accent][[双击][]您的部队指挥附近的部队编队
hint.payloadPickup = 按[accent][[[]捡起方块或单位. hint.payloadPickup = 按[accent][[[]捡起方块或单位
hint.payloadPickup.mobile = [accent]长按一个方块或一个单位来捡起来. hint.payloadPickup.mobile = [accent]长按一个方块或一个单位来捡起来
hint.payloadDrop = 按[accent]][]放下有效载荷. hint.payloadDrop = 按[accent]][]放下捡起的方块或单位。
hint.payloadDrop.mobile = [accent]点住[]一个空的位置将有效载荷丢到那里. hint.payloadDrop.mobile = [accent]点住[]一个空的位置将捡起的方块或单位丢到那里
hint.waveFire = [accent]波浪[]炮塔加水弹药会自动扑灭附近的火. hint.waveFire = [accent]波浪[]炮塔加水弹药会自动扑灭附近的火
hint.generator = \uf879 [accent]燃烧发电机[]燃烧煤炭并将电力传输到相邻方块.\n\n用\uf87f [accent]能量节点[]可以扩展电力传输范围. hint.generator = \uf879 [accent]燃烧发电机[]燃烧煤炭并将电力传输到相邻方块\n\n用\uf87f [accent]能量节点[]可以扩展电力传输范围
hint.guardian = [accent]Boss[]单位装甲厚重.[accent]铜[]和[accent]铅[]这类较弱的子弹对其[scarlet]作用不佳[].\n\n使用高级别炮塔或使用\uf835 [accent]石墨[]作为\uf861 双管炮及\uf859 齐射炮的弹药来消灭Boss. hint.guardian = [accent]Boss[]单位装甲厚重[accent]铜[]和[accent]铅[]这类较弱的子弹对其[scarlet]作用不佳[]\n\n使用高级别炮塔或使用\uf835 [accent]石墨[]作为\uf861 双管炮及\uf859 齐射炮的弹药来消灭Boss
hint.coreUpgrade = 核心可以通过[accent]在上面覆盖高等级核心[]进行升级。\n\n在[accent]初代核心[]上放置一个[accent]次代核心[]。确保周围没有障碍物。 hint.coreUpgrade = 核心可以通过[accent]在上面覆盖高等级核心[]进行升级。\n\n在[accent]初代核心[]上放置一个[accent]次代核心[]。确保周围没有障碍物。
hint.presetLaunch = 灰色的[accent]降落地区[],如[accent]冰冻森林[],可以从任何区域发射,不需要占领附近的区块。\n\n[accent]数字编号的区域[],如这个,是[accent]可选的[]。 hint.presetLaunch = 灰色的[accent]降落地区[],如[accent]冰冻森林[],可以从任何区域发射,不需要占领附近的区块。\n\n[accent]数字编号的区域[],如这个,是[accent]可选的[]。
hint.coreIncinerate = 核心存满一种物品后,再进入的同种物品会被[accent]摧毁[]。 hint.coreIncinerate = 核心存满一种物品后,再进入的同种物品会被[accent]摧毁[]。
hint.coopCampaign = 游玩[accent]合作战役[]时,当前地图生产的资源也会被送入[accent]本地的区域[]。\n\n新科技也会同步解锁。 hint.coopCampaign = 游玩[accent]合作战役[]时,当前地图生产的资源也会被送入[accent]本地的区域[]。\n\n新科技也会同步解锁。
item.copper.description = 用于所有类型的建筑和弹药。 item.copper.description = 用于所有类型的建筑和弹药。
item.copper.details = 铜。在塞普罗上的异常丰富的金属。不经加固,结构会较脆弱。 item.copper.details = 铜。在塞普罗上的异常丰富的金属。不经加固,结构会较脆弱。
@@ -1327,7 +1404,7 @@ liquid.oil.description = 用于先进材料生产和燃烧弹药。
liquid.cryofluid.description = 用作反应堆、炮塔和工厂的冷却剂。 liquid.cryofluid.description = 用作反应堆、炮塔和工厂的冷却剂。
block.resupply-point.description = 为附近的部队提供铜弹药。与需要电池供电的设备不兼容。 block.resupply-point.description = 为附近的部队提供铜弹药。与需要电池供电的设备不兼容。
block.armored-conveyor.description = 向前方移动物品。不接受边上的输入。 block.armored-conveyor.description = 将物品向前输送。不接受两侧的非传送带输入。
block.illuminator.description = 释放光源。 block.illuminator.description = 释放光源。
block.message.description = 保存一条文字信息。用于队友之间进行交流。 block.message.description = 保存一条文字信息。用于队友之间进行交流。
block.graphite-press.description = 将煤炭压缩为石墨。 block.graphite-press.description = 将煤炭压缩为石墨。
@@ -1335,11 +1412,11 @@ block.multi-press.description = 将煤炭压缩为石墨。需要水进行冷却
block.silicon-smelter.description = 将沙和煤炭精炼为硅。 block.silicon-smelter.description = 将沙和煤炭精炼为硅。
block.kiln.description = 将沙和铅熔炼为钢化玻璃。 block.kiln.description = 将沙和铅熔炼为钢化玻璃。
block.plastanium-compressor.description = 用石油和钛生产塑钢。 block.plastanium-compressor.description = 用石油和钛生产塑钢。
block.phase-weaver.description = 钍和沙合成相物。 block.phase-weaver.description = 钍和沙合成相物。
block.alloy-smelter.description = 将钛、铅、硅和铜熔合成巨浪合金。 block.alloy-smelter.description = 将钛、铅、硅和铜熔合成巨浪合金。
block.cryofluid-mixer.description = 将水和细钛粉混合制成冷冻液。 block.cryofluid-mixer.description = 将水和细钛粉混合制成冷冻液。
block.blast-mixer.description = 从硫化物和孢子荚中产生爆炸合物。 block.blast-mixer.description = 把火石和孢子荚混合为爆炸合物。
block.pyratite-mixer.description = 把煤、铅和沙子混和为硫化物 block.pyratite-mixer.description = 把煤、铅和沙子混合为火石
block.melter.description = 将废料熔化成矿渣。 block.melter.description = 将废料熔化成矿渣。
block.separator.description = 将矿渣分离成矿物成分。 block.separator.description = 将矿渣分离成矿物成分。
block.spore-press.description = 将孢子荚压缩成石油。 block.spore-press.description = 将孢子荚压缩成石油。
@@ -1362,18 +1439,18 @@ block.thorium-wall.description = 保护己方结构,挡下敌方炮弹。
block.thorium-wall-large.description = 保护己方结构,挡下敌方炮弹。 block.thorium-wall-large.description = 保护己方结构,挡下敌方炮弹。
block.phase-wall.description = 保护己方结构,挡下敌方炮弹。在受攻击时反射大多数子弹。 block.phase-wall.description = 保护己方结构,挡下敌方炮弹。在受攻击时反射大多数子弹。
block.phase-wall-large.description = 保护己方结构,挡下敌方炮弹。在受攻击时反射大多数子弹。 block.phase-wall-large.description = 保护己方结构,挡下敌方炮弹。在受攻击时反射大多数子弹。
block.surge-wall.description = 保护己方结构,挡下敌方炮弹。受攻击时定期释放电弧。 block.surge-wall.description = 保护己方结构,挡下敌方炮弹。受攻击时有几率释放电弧。
block.surge-wall-large.description = 保护己方结构,挡下敌方炮弹。受攻击时定期释放电弧。 block.surge-wall-large.description = 保护己方结构,挡下敌方炮弹。受攻击时有几率释放电弧。
block.door.description = 可以开关的墙。 block.door.description = 可以开关的墙。
block.door-large.description = 可以开关的墙。 block.door-large.description = 可以开关的墙。
block.mender.description = 定期修复附近的区块。\n可使用硅来提高范围和效率。 block.mender.description = 定期修复附近的区块。\n可使用硅来提高范围和效率。
block.mend-projector.description = 修复其附近的区块。\n可使用相物来提高射程和效率。 block.mend-projector.description = 修复其附近的区块。\n可使用相物来提高范围和效率。
block.overdrive-projector.description = 提高附近建筑物的速度。\n可使用相物来提高射程和效率。 block.overdrive-projector.description = 提高附近建筑物的速度。\n可使用相物来提高范围和效率。
block.force-projector.description = 在自身周围创建一个六角形力场,使里面的建筑物和单位免受伤害。\n持续承受高伤害会导致过热可以使用冷却液降温。相物可用于增加护盾大小。 block.force-projector.description = 在自身周围创建一个六角形力场,使里面的建筑物和单位免受伤害。\n持续承受高伤害会导致过热可以使用冷却液降温。相物可用于增加护盾大小和盾容
block.shock-mine.description = 对踩到它的敌人释放电弧进行攻击。 block.shock-mine.description = 对踩到它的敌人释放电弧进行攻击。
block.conveyor.description = 将物品向前输送。 block.conveyor.description = 将物品向前输送。
block.titanium-conveyor.description = 将物品向前输送。快于初级传送带。 block.titanium-conveyor.description = 将物品向前输送。快于初级传送带。
block.plastanium-conveyor.description = 打包物品进行运输。\n在后方输入物品在前方三个方向输出物品。需要多个装载和卸载点才能达到峰值载量。 block.plastanium-conveyor.description = 打包物品进行运输。\n在后方输入物品在前方三个方向输出物品。需要多个装载和卸载点才能达到最大运载量。
block.junction.description = 两条交叉传送带的桥梁。 block.junction.description = 两条交叉传送带的桥梁。
block.bridge-conveyor.description = 跨越任意地形或建筑物运输物品。 block.bridge-conveyor.description = 跨越任意地形或建筑物运输物品。
block.phase-conveyor.description = 跨越任意地形或建筑物即时运输物品。比传送带桥范围更大,但需要电力。 block.phase-conveyor.description = 跨越任意地形或建筑物即时运输物品。比传送带桥范围更大,但需要电力。
@@ -1384,7 +1461,7 @@ block.router.details = 这是个好东西,也可以带来麻烦。不建议在
block.distributor.description = 将物品平均分配到其他7个方向。 block.distributor.description = 将物品平均分配到其他7个方向。
block.overflow-gate.description = 当前方被阻塞时才会向左和右输出,用于处理多余的物品。 block.overflow-gate.description = 当前方被阻塞时才会向左和右输出,用于处理多余的物品。
block.underflow-gate.description = 与溢流门相反。 当左右均堵塞时才向前方运输。 block.underflow-gate.description = 与溢流门相反。 当左右均堵塞时才向前方运输。
block.mass-driver.description = 长距离物品传输结构,收集若干物品后将其射到远处的另一个质量驱动器。 block.mass-driver.description = 长距离物品传输建筑,收集若干物品后将其射到远处的另一个质量驱动器。
block.mechanical-pump.description = 泵送液体,不需要能量。 block.mechanical-pump.description = 泵送液体,不需要能量。
block.rotary-pump.description = 泵送液体,需要能量。 block.rotary-pump.description = 泵送液体,需要能量。
block.thermal-pump.description = 泵送液体。 block.thermal-pump.description = 泵送液体。
@@ -1405,7 +1482,7 @@ block.battery-large.description = 储存电网多余电力,并在电网供电
block.combustion-generator.description = 燃烧煤等可燃材料发电。 block.combustion-generator.description = 燃烧煤等可燃材料发电。
block.thermal-generator.description = 放置在炽热的地形上能够发电。 block.thermal-generator.description = 放置在炽热的地形上能够发电。
block.steam-generator.description = 通过燃烧易燃材料并将水转化为蒸汽来发电。 block.steam-generator.description = 通过燃烧易燃材料并将水转化为蒸汽来发电。
block.differential-generator.description = 利用低温流体与燃烧的之间的温差产生大量能量。 block.differential-generator.description = 利用低温流体与燃烧的火石之间的温差产生大量能量。
block.rtg-generator.description = 利用放射物的衰变产生的热量以缓慢的速度产生能量。 block.rtg-generator.description = 利用放射物的衰变产生的热量以缓慢的速度产生能量。
block.solar-panel.description = 提供少量太阳能。 block.solar-panel.description = 提供少量太阳能。
block.solar-panel-large.description = 提供少量太阳能。比标准太阳能电池板更高效。 block.solar-panel-large.description = 提供少量太阳能。比标准太阳能电池板更高效。
@@ -1431,7 +1508,7 @@ block.unloader.description = 从周围方块卸载指定物品。
block.launch-pad.description = 将货物发射至指定区块。 block.launch-pad.description = 将货物发射至指定区块。
block.duo.description = 交替向敌人发射子弹。 block.duo.description = 交替向敌人发射子弹。
block.scatter.description = 向敌机发射铅、废料或钢化玻璃高射炮弹。 block.scatter.description = 向敌机发射铅、废料或钢化玻璃高射炮弹。
block.scorch.description = 焚烧任何靠近它的地面敌人。近距离高效 block.scorch.description = 焚烧任何靠近它的地面敌人。近距离高效
block.hail.description = 向远距离地面敌人发射小型炮弹。 block.hail.description = 向远距离地面敌人发射小型炮弹。
block.wave.description = 向敌人射出液体流。使用水作弹药时能够自动灭火。 block.wave.description = 向敌人射出液体流。使用水作弹药时能够自动灭火。
block.lancer.description = 充能并向地面单位发射强力的的波束。 block.lancer.description = 充能并向地面单位发射强力的的波束。
@@ -1448,11 +1525,11 @@ block.repair-point.description = 持续修复其附近受损最严重的单位
block.segment.description = 摧毁袭来的除激光以外的子弹或导弹。 block.segment.description = 摧毁袭来的除激光以外的子弹或导弹。
block.parallax.description = 通过牵引光束牵引空中目标,并在这个过程中对其造成伤害。 block.parallax.description = 通过牵引光束牵引空中目标,并在这个过程中对其造成伤害。
block.tsunami.description = 向敌人射出强力的液体流。使用水作弹药时能够自动灭火。 block.tsunami.description = 向敌人射出强力的液体流。使用水作弹药时能够自动灭火。
block.silicon-crucible.description = 从沙子和煤中提炼硅,用硫化物作为附加热源。在炙热地型上更高效。 block.silicon-crucible.description = 从沙子和煤中提炼硅,用火石作为附加热源。在炙热地型上更高效。
block.disassembler.description = 以低效率将矿渣分离成微量的外来矿物成分。能产生钍。 block.disassembler.description = 以低效率将矿渣分离成微量的外来矿物成分。能产生钍。
block.overdrive-dome.description = 提高附近建筑物的速度。需要相物和硅来工作。 block.overdrive-dome.description = 提高附近建筑物的速度。需要相物和硅来工作。
block.payload-conveyor.description = 移动大型有效载荷,例如从工厂生产的单位。 block.payload-conveyor.description = 移动大型载荷,例如从工厂生产的单位。
block.payload-router.description = 将输入的有效载荷向3个方向输出。 block.payload-router.description = 将输入的载荷向3个方向输出。
block.command-center.description = 使用多个不同的命令控制单位。 block.command-center.description = 使用多个不同的命令控制单位。
block.ground-factory.description = 产生陆军单位。输出的单位可以直接使用,也可以移入重构厂进行升级。 block.ground-factory.description = 产生陆军单位。输出的单位可以直接使用,也可以移入重构厂进行升级。
block.air-factory.description = 产生空军单位。输出的单位可以直接使用,也可以移入重构厂进行升级。 block.air-factory.description = 产生空军单位。输出的单位可以直接使用,也可以移入重构厂进行升级。
@@ -1469,41 +1546,48 @@ block.memory-cell.description = 存储处理器的信息。
block.memory-bank.description = 存储处理器的信息。内存量更大。 block.memory-bank.description = 存储处理器的信息。内存量更大。
block.logic-display.description = 显示处理器中的任意图形。 block.logic-display.description = 显示处理器中的任意图形。
block.large-logic-display.description = 显示处理器中的任意图形。 block.large-logic-display.description = 显示处理器中的任意图形。
block.interplanetary-accelerator.description = 一个巨大的电磁轨道加速器。加速核心逃逸速度以进行星际部署。 block.interplanetary-accelerator.description = 一个巨大的电磁轨道加速器。加速核心逃逸速度以进行星际部署。
block.repair-turret.description = 持续修复其范围内最近的受损单位。可使用液体冷却以提高修复效率。
block.payload-propulsion-tower.description = 长距离载荷运输建筑。向与其相链接的其它载荷驱动台发射载荷。
unit.dagger.description = 攻击附近所有敌人发射标准子弹。 unit.dagger.description = 附近所有敌人发射标准子弹。
unit.mace.description = 攻击附近所有敌人。发射火焰。 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 = 向地面敌人发射削弱性矿渣球。可以跨越大多数地形。
unit.spiroct.description = 向敌人发射激光束,并在此过程中自我修复。可以跨越大多数地形。 unit.spiroct.description = 向敌人发射激光束,并在此过程中自我修复。可以跨越大多数地形。
unit.arkyid.description = 向敌人发射大激光束,并在此过程中自我修复。可以跨越大多数地形。 unit.arkyid.description = 向敌人发射大激光束,并在此过程中自我修复。可以跨越大多数地形。
unit.toxopid.description = 向敌人发射大型电能集束炮弹和穿透激光。可以跨越大多数地形。 unit.toxopid.description = 向敌人发射大型电能集束炮弹和穿透激光。可以跨越大多数地形。
unit.flare.description = 攻击地面敌人发射标准子弹。 unit.flare.description = 向附近所有地面敌人发射标准子弹。
unit.horizon.description = 攻击地面敌人投下炸弹。 unit.horizon.description = 地面敌人投下炸弹
unit.zenith.description = 攻击附近所有敌人发射导弹群。 unit.zenith.description = 附近所有敌人发射导弹群。
unit.antumbra.description = 攻击附近所有敌人发射密集的子弹。 unit.antumbra.description = 附近所有敌人发射弹
unit.eclipse.description = 攻击附近所有敌人发射穿透性激光和分裂弹。 unit.eclipse.description = 附近所有敌人发射两道穿透性激光和一连串子弹。
unit.mono.description = 自动开采铜和铅,并将其放入核心中。 unit.mono.description = 自动开采铜和铅,并将其放入核心中。
unit.poly.description = 自动重建受损结构,协助其他单位建造。 unit.poly.description = 自动重建被摧毁的建筑并协助其他单位建造。
unit.mega.description = 自动修复受损结构。能够携带方块和小型地面部队。 unit.mega.description = 自动修复受损结构。能够携带方块和小型地面部队。
unit.quad.description = 向地面目标投掷大型炸弹,修复盟军建筑并摧毁敌人。能够携带中型地面部队。 unit.quad.description = 向地面敌人投掷大型炸弹,修复友方建筑并攻击敌人。能够携带中型地面部队。
unit.oct.description = 用它的再生护盾保护附近的友。能够携带大多数地面部队。 unit.oct.description = 用它的再生护盾保护附近的友方单位。能够携带大多数地面部队。
unit.risso.description = 攻击附近所有敌人发射一连串的导弹和子弹。 unit.risso.description = 附近所有敌人发射一连串的导弹和子弹。
unit.minke.description = 攻击附近所有敌人发射炮弹和标准子弹。 unit.minke.description = 附近所有敌人发射炮弹和标准子弹。
unit.bryde.description = 攻击附近所有敌人。发射发射远程炮弹和导弹。 unit.bryde.description = 附近所有敌人发射远程炮弹和导弹。
unit.sei.description = 攻击附近所有敌人发射一连串的导弹和穿甲弹。 unit.sei.description = 附近所有敌人发射一连串的导弹和穿甲弹。
unit.omura.description = 攻击附近所有敌人发射远程穿透轨道炮。构造星耀单元 unit.omura.description = 附近所有敌人发射远程穿透轨道炮。构造星辉单位
unit.alpha.description = 保护初代核心。可构建结构 unit.alpha.description = 保护初代核心。可建造建筑
unit.beta.description = 保护次代核心。可构建结构 unit.beta.description = 保护次代核心。可建造建筑
unit.gamma.description = 保护终代核心。可构建结构 unit.gamma.description = 保护终代核心。可建造建筑
unit.retusa.description = 在附近放置水雷并修复友方建筑。
unit.oxynoe.description = 向附近所有敌人喷射火焰并修复友方建筑。使用点防御摧毁附近的敌方射弹。
unit.cyerce.description = 向附近所有敌人发射跟踪集束导弹并修复友方建筑。
unit.aegires.description = 电击一切在它能量场范围内的敌方单位和建筑并修复所有友方单位和建筑。
unit.navanax.description = 发射电磁脉冲爆弹,破坏敌方电网并修复友方建筑。使用四门自动激光炮塔融化附近所有敌人。
lst.read = 从连接的内存读取数字 lst.read = 从连接的内存读取数字
lst.write = 写入数字到连接的内存 lst.write = 写入数字到连接的内存
@@ -1518,6 +1602,8 @@ lst.sensor = 从建筑或单位取得数据
lst.set = 设置变量 lst.set = 设置变量
lst.operation = 操作一两个变量 lst.operation = 操作一两个变量
lst.end = 跳至指令栈顶\n第一条语句 lst.end = 跳至指令栈顶\n第一条语句
lst.wait = 等待指定的秒数。
lst.lookup = 通过ID寻找特定的物品/液体/单位/块的类型。\n查找每个类型的总数量可以使用\n[accent]@unitCount[] / [accent]@itemCount[] / [accent]@liquidCount[] / [accent]@blockCount[]
lst.jump = 有条件地跳到另一语句 lst.jump = 有条件地跳到另一语句
lst.unitbind = 绑定下一个某型号单位\n并存到[accent]@unit[] lst.unitbind = 绑定下一个某型号单位\n并存到[accent]@unit[]
lst.unitcontrol = 控制绑定的单位 lst.unitcontrol = 控制绑定的单位
@@ -1537,6 +1623,7 @@ laccess.controller = 单位控制者\n如果是处理器返回处理器\n如
laccess.dead = 单位或建筑是不是死了或无效了 laccess.dead = 单位或建筑是不是死了或无效了
laccess.controlled = 若单位控制者是处理器,返回[accent]@ctrlProcessor[]\n若单位/建筑由玩家控制,返回[accent]@ctrlPlayer[]\n若单位在编队中返回[accent]@ctrlFormation[]\n其他的返回0 laccess.controlled = 若单位控制者是处理器,返回[accent]@ctrlProcessor[]\n若单位/建筑由玩家控制,返回[accent]@ctrlPlayer[]\n若单位在编队中返回[accent]@ctrlFormation[]\n其他的返回0
laccess.commanded = [red]已弃用,将被移除![]\n应该使用[accent]controlled[] laccess.commanded = [red]已弃用,将被移除![]\n应该使用[accent]controlled[]
laccess.progress = 动作进度, 范围0~1。\n返回方块生产、炮塔装填或建造的进度。
graphicstype.clear = 用指定颜色填满显示屏 graphicstype.clear = 用指定颜色填满显示屏
graphicstype.color = 设置后续画图操作的颜色 graphicstype.color = 设置后续画图操作的颜色
@@ -1568,9 +1655,16 @@ lenum.min = 取小的那个数
lenum.max = 取大的那个数 lenum.max = 取大的那个数
lenum.angle = 方位角° lenum.angle = 方位角°
lenum.len = 原点到该点距离 lenum.len = 原点到该点距离
lenum.sin = 正弦°(对边:斜边) lenum.sin = 正弦°(对边:斜边)
lenum.cos = 余弦°(邻边:斜边) lenum.cos = 余弦°(邻边:斜边)
lenum.tan = 正切°(对边:邻边) lenum.tan = 正切°(对边:邻边)
lenum.asin = 反正弦
lenum.acos = 反余弦
lenum.atan = 反正切
#not a typo, look up 'range notation'
lenum.rand = [0, 值) 范围内随机数 lenum.rand = [0, 值) 范围内随机数
lenum.log = 自然对数(ln) lenum.log = 自然对数(ln)
lenum.log10 = 10底对数 lenum.log10 = 10底对数

View File

@@ -126,3 +126,4 @@ Skat
WilloIzCitron WilloIzCitron
SAMBUYYA SAMBUYYA
genNAowl genNAowl
TranquillyUnpleasant

Binary file not shown.

Before

Width:  |  Height:  |  Size: 239 KiB

After

Width:  |  Height:  |  Size: 125 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 447 KiB

After

Width:  |  Height:  |  Size: 268 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 398 KiB

After

Width:  |  Height:  |  Size: 222 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 316 KiB

After

Width:  |  Height:  |  Size: 171 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 229 KiB

After

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 280 KiB

After

Width:  |  Height:  |  Size: 147 KiB

View File

@@ -352,3 +352,4 @@
63354=payload-launch-pad|block-payload-launch-pad-ui 63354=payload-launch-pad|block-payload-launch-pad-ui
63353=silicon-arc-furnace|block-silicon-arc-furnace-ui 63353=silicon-arc-furnace|block-silicon-arc-furnace-ui
63352=metal-floor-4|block-metal-floor-4-ui 63352=metal-floor-4|block-metal-floor-4-ui
63351=invincible|status-invincible-ui

Binary file not shown.

Binary file not shown.

View File

@@ -107,6 +107,7 @@ importPackage(Packages.mindustry.maps.planet)
importPackage(Packages.mindustry.net) importPackage(Packages.mindustry.net)
importPackage(Packages.mindustry.service) importPackage(Packages.mindustry.service)
importPackage(Packages.mindustry.type) importPackage(Packages.mindustry.type)
importPackage(Packages.mindustry.type.ammo)
importPackage(Packages.mindustry.type.weapons) importPackage(Packages.mindustry.type.weapons)
importPackage(Packages.mindustry.type.weather) importPackage(Packages.mindustry.type.weather)
importPackage(Packages.mindustry.ui) importPackage(Packages.mindustry.ui)
@@ -155,6 +156,7 @@ const BlockBuildBeginEvent = Packages.mindustry.game.EventType.BlockBuildBeginEv
const ResearchEvent = Packages.mindustry.game.EventType.ResearchEvent const ResearchEvent = Packages.mindustry.game.EventType.ResearchEvent
const UnlockEvent = Packages.mindustry.game.EventType.UnlockEvent const UnlockEvent = Packages.mindustry.game.EventType.UnlockEvent
const StateChangeEvent = Packages.mindustry.game.EventType.StateChangeEvent const StateChangeEvent = Packages.mindustry.game.EventType.StateChangeEvent
const CoreChangeEvent = Packages.mindustry.game.EventType.CoreChangeEvent
const TileChangeEvent = Packages.mindustry.game.EventType.TileChangeEvent const TileChangeEvent = Packages.mindustry.game.EventType.TileChangeEvent
const TilePreChangeEvent = Packages.mindustry.game.EventType.TilePreChangeEvent const TilePreChangeEvent = Packages.mindustry.game.EventType.TilePreChangeEvent
const GameOverEvent = Packages.mindustry.game.EventType.GameOverEvent const GameOverEvent = Packages.mindustry.game.EventType.GameOverEvent
@@ -166,6 +168,7 @@ const DepositEvent = Packages.mindustry.game.EventType.DepositEvent
const WithdrawEvent = Packages.mindustry.game.EventType.WithdrawEvent const WithdrawEvent = Packages.mindustry.game.EventType.WithdrawEvent
const SectorCaptureEvent = Packages.mindustry.game.EventType.SectorCaptureEvent const SectorCaptureEvent = Packages.mindustry.game.EventType.SectorCaptureEvent
const PlayerChatEvent = Packages.mindustry.game.EventType.PlayerChatEvent const PlayerChatEvent = Packages.mindustry.game.EventType.PlayerChatEvent
const MenuOptionChooseEvent = Packages.mindustry.game.EventType.MenuOptionChooseEvent
const ClientPreConnectEvent = Packages.mindustry.game.EventType.ClientPreConnectEvent const ClientPreConnectEvent = Packages.mindustry.game.EventType.ClientPreConnectEvent
const CommandIssueEvent = Packages.mindustry.game.EventType.CommandIssueEvent const CommandIssueEvent = Packages.mindustry.game.EventType.CommandIssueEvent
const SchematicCreateEvent = Packages.mindustry.game.EventType.SchematicCreateEvent const SchematicCreateEvent = Packages.mindustry.game.EventType.SchematicCreateEvent

View File

@@ -20,9 +20,9 @@ void main(){
vec4 color = texture2D(u_texture, c); vec4 color = texture2D(u_texture, c);
if(noise > 0.54 && noise < 0.68){ if(noise > 0.54 && noise < 0.68){
color.rgb *= 1.4; color.rgb *= vec3(1.4);
}else if(!(noise > 0.40 && noise < 0.54)){ }else if(!(noise > 0.40 && noise < 0.54)){
color.rgb *= 1.2; color.rgb *= vec3(1.2);
} }
gl_FragColor = color; gl_FragColor = color;

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

After

Width:  |  Height:  |  Size: 114 KiB

View File

@@ -1,12 +0,0 @@
#convert from stereo to mono
cd assets/sounds/
for i in *.ogg; do
echo $i
ffmpeg -i "$i" -ac 1 "OUT_$i"
done
find . -type f ! -name "OUT_*" -delete
for file in OUT_*; do mv "$file" "${file#OUT_}"; done;
cd ../../

View File

@@ -55,7 +55,7 @@ public abstract class ClientLauncher extends ApplicationCore implements Platform
Log.info("[GL] Max texture size: @", maxTextureSize); Log.info("[GL] Max texture size: @", maxTextureSize);
Log.info("[GL] Using @ context.", gl30 != null ? "OpenGL 3" : "OpenGL 2"); Log.info("[GL] Using @ context.", gl30 != null ? "OpenGL 3" : "OpenGL 2");
if(maxTextureSize < 4096) Log.warn("[GL] Your maximum texture size is below the recommended minimum of 4096. This will cause severe performance issues."); if(maxTextureSize < 4096) Log.warn("[GL] Your maximum texture size is below the recommended minimum of 4096. This will cause severe performance issues.");
Log.info("[JAVA] Version: @", System.getProperty("java.version")); Log.info("[JAVA] Version: @", OS.javaVersion);
Time.setDeltaProvider(() -> { Time.setDeltaProvider(() -> {
float result = Core.graphics.getDeltaTime() * 60f; float result = Core.graphics.getDeltaTime() * 60f;
@@ -149,7 +149,16 @@ public abstract class ClientLauncher extends ApplicationCore implements Platform
} }
mods.eachClass(Mod::init); mods.eachClass(Mod::init);
finished = true; finished = true;
Events.fire(new ClientLoadEvent()); var event = new ClientLoadEvent();
//a temporary measure for compatibility with certain mods
Events.fireWrap(event.getClass(), event, listener -> {
try{
listener.get(event);
}catch(NoSuchFieldError | NoSuchMethodError | NoClassDefFoundError error){
Log.err(error);
}
});
clientLoaded = true; clientLoaded = true;
super.resize(graphics.getWidth(), graphics.getHeight()); super.resize(graphics.getWidth(), graphics.getHeight());
app.post(() -> app.post(() -> app.post(() -> app.post(() -> { app.post(() -> app.post(() -> app.post(() -> app.post(() -> {

View File

@@ -24,10 +24,8 @@ import mindustry.logic.*;
import mindustry.maps.Map; import mindustry.maps.Map;
import mindustry.maps.*; import mindustry.maps.*;
import mindustry.mod.*; import mindustry.mod.*;
import mindustry.net.Net;
import mindustry.net.*; import mindustry.net.*;
import mindustry.service.*; import mindustry.service.*;
import mindustry.world.*;
import java.io.*; import java.io.*;
import java.nio.charset.*; import java.nio.charset.*;
@@ -105,16 +103,14 @@ public class Vars implements Loadable{
public static final float invasionGracePeriod = 20; public static final float invasionGracePeriod = 20;
/** min armor fraction damage; e.g. 0.05 = at least 5% damage */ /** min armor fraction damage; e.g. 0.05 = at least 5% damage */
public static final float minArmorDamage = 0.1f; public static final float minArmorDamage = 0.1f;
/** launch animation duration */ /** land/launch animation duration */
public static final float launchDuration = 140f; public static final float coreLandDuration = 160f;
/** size of tiles in units */ /** size of tiles in units */
public static final int tilesize = 8; public static final int tilesize = 8;
/** size of one tile payload (^2) */ /** size of one tile payload (^2) */
public static final float tilePayload = tilesize * tilesize; public static final float tilePayload = tilesize * tilesize;
/** icon sizes for UI */ /** icon sizes for UI */
public static final float iconXLarge = 8*6f, iconLarge = 8*5f, iconMed = 8*4f, iconSmall = 8*3f; public static final float iconXLarge = 8*6f, iconLarge = 8*5f, iconMed = 8*4f, iconSmall = 8*3f;
/** tile used in certain situations, instead of null */
public static Tile emptyTile;
/** for map generator dialog */ /** for map generator dialog */
public static boolean updateEditorOnChange = false; public static boolean updateEditorOnChange = false;
/** all choosable player colors in join/host dialog */ /** all choosable player colors in join/host dialog */
@@ -146,8 +142,10 @@ public class Vars implements Loadable{
public static boolean clientLoaded = false; public static boolean clientLoaded = false;
/** max GL texture size */ /** max GL texture size */
public static int maxTextureSize = 2048; public static int maxTextureSize = 2048;
/** Whether to show the core landing animation. */ /** Whether to show sector info upon landing. */
public static boolean showLandAnimation = true; public static boolean showSectorLandInfo = true;
/** Whether to check for memory use before taking screenshots. */
public static boolean checkScreenshotMemory = true;
/** Whether to prompt the user to confirm exiting. */ /** Whether to prompt the user to confirm exiting. */
public static boolean confirmExit = true; public static boolean confirmExit = true;
/** if true, UI is not drawn */ /** if true, UI is not drawn */
@@ -276,7 +274,6 @@ public class Vars implements Loadable{
schematicDirectory = dataDirectory.child("schematics/"); schematicDirectory = dataDirectory.child("schematics/");
bebuildDirectory = dataDirectory.child("be_builds/"); bebuildDirectory = dataDirectory.child("be_builds/");
emptyMap = new Map(new StringMap()); emptyMap = new Map(new StringMap());
emptyTile = null;
if(tree == null) tree = new FileTree(); if(tree == null) tree = new FileTree();
if(mods == null) mods = new Mods(); if(mods == null) mods = new Mods();

View File

@@ -48,6 +48,7 @@ public class BlockIndexer{
private Seq<Building> breturnArray = new Seq<>(Building.class); private Seq<Building> breturnArray = new Seq<>(Building.class);
public BlockIndexer(){ public BlockIndexer(){
clearFlags();
Events.on(TilePreChangeEvent.class, event -> { Events.on(TilePreChangeEvent.class, event -> {
removeIndex(event.tile); removeIndex(event.tile);
@@ -62,11 +63,7 @@ public class BlockIndexer{
flagMap = new TileArray[Team.all.length][BlockFlag.all.length]; flagMap = new TileArray[Team.all.length][BlockFlag.all.length];
activeTeams = new Seq<>(Team.class); activeTeams = new Seq<>(Team.class);
for(int i = 0; i < flagMap.length; i++){ clearFlags();
for(int j = 0; j < BlockFlag.all.length; j++){
flagMap[i][j] = new TileArray();
}
}
allOres.clear(); allOres.clear();
ores = new IntSeq[content.items().size][][]; ores = new IntSeq[content.items().size][][];
@@ -106,7 +103,7 @@ public class BlockIndexer{
public void removeIndex(Tile tile){ public void removeIndex(Tile tile){
var team = tile.team(); var team = tile.team();
if(team != Team.derelict && tile.isCenter()){ if(tile.build != null && tile.isCenter()){
var flags = tile.block().flags; var flags = tile.block().flags;
var data = team.data(); var data = team.data();
@@ -160,6 +157,14 @@ public class BlockIndexer{
return blocksPresent != null && blocksPresent[block.id]; return blocksPresent != null && blocksPresent[block.id];
} }
private void clearFlags(){
for(int i = 0; i < flagMap.length; i++){
for(int j = 0; j < BlockFlag.all.length; j++){
flagMap[i][j] = new TileArray();
}
}
}
private TileArray[] getFlagged(Team team){ private TileArray[] getFlagged(Team team){
return flagMap[team.id]; return flagMap[team.id];
} }
@@ -206,13 +211,12 @@ public class BlockIndexer{
} }
public boolean eachBlock(@Nullable Team team, float wx, float wy, float range, Boolf<Building> pred, Cons<Building> cons){ public boolean eachBlock(@Nullable Team team, float wx, float wy, float range, Boolf<Building> pred, Cons<Building> cons){
returnBool = false; breturnArray.clear();
if(team == null){ if(team == null){
allBuildings(wx, wy, range, b -> { allBuildings(wx, wy, range, b -> {
if(pred.get(b)){ if(pred.get(b)){
returnBool = true; breturnArray.add(b);
cons.get(b);
} }
}); });
}else{ }else{
@@ -220,13 +224,20 @@ public class BlockIndexer{
if(buildings == null) return false; if(buildings == null) return false;
buildings.intersect(wx - range, wy - range, range*2f, range*2f, b -> { buildings.intersect(wx - range, wy - range, range*2f, range*2f, b -> {
if(b.within(wx, wy, range + b.hitSize() / 2f) && pred.get(b)){ if(b.within(wx, wy, range + b.hitSize() / 2f) && pred.get(b)){
returnBool = true; breturnArray.add(b);
cons.get(b);
} }
}); });
} }
return returnBool; int size = breturnArray.size;
var items = breturnArray.items;
for(int i = 0; i < size; i++){
cons.get(items[i]);
items[i] = null;
}
breturnArray.size = 0;
return size > 0;
} }
/** Get all enemy blocks with a flag. */ /** Get all enemy blocks with a flag. */
@@ -269,31 +280,50 @@ public class BlockIndexer{
} }
public void allBuildings(float x, float y, float range, Cons<Building> cons){ public void allBuildings(float x, float y, float range, Cons<Building> cons){
breturnArray.clear();
for(int i = 0; i < activeTeams.size; i++){ for(int i = 0; i < activeTeams.size; i++){
Team team = activeTeams.items[i]; Team team = activeTeams.items[i];
var buildings = team.data().buildings; var buildings = team.data().buildings;
if(buildings == null) continue; if(buildings == null) continue;
buildings.intersect(x - range, y - range, range*2f, range*2f, b -> { buildings.intersect(x - range, y - range, range*2f, range*2f, breturnArray);
}
var items = breturnArray.items;
int size = breturnArray.size;
for(int i = 0; i < size; i++){
var b = items[i];
if(b.within(x, y, range + b.hitSize()/2f)){ if(b.within(x, y, range + b.hitSize()/2f)){
cons.get(b); cons.get(b);
} }
}); items[i] = null;
} }
breturnArray.size = 0;
} }
public Building findEnemyTile(@Nullable Team team, float x, float y, float range, Boolf<Building> pred){ public Building findEnemyTile(Team team, float x, float y, float range, Boolf<Building> pred){
Building target = null;
float targetDist = 0;
for(int i = 0; i < activeTeams.size; i++){ for(int i = 0; i < activeTeams.size; i++){
Team enemy = activeTeams.items[i]; Team enemy = activeTeams.items[i];
if(enemy == team || (enemy == Team.derelict && !state.rules.coreCapture)) continue;
if(enemy == team || team == Team.derelict) continue; Building candidate = indexer.findTile(enemy, x, y, range, pred, true);
if(candidate == null) continue;
Building entity = indexer.findTile(enemy, x, y, range, pred, true); //if a block has the same priority, the closer one should be targeted
if(entity != null){ float dist = candidate.dst(x, y) - candidate.hitSize() / 2f;
return entity; if(target == null ||
//if its closer and is at least equal priority
(dist < targetDist && candidate.block.priority.ordinal() >= target.block.priority.ordinal()) ||
// block has higher priority (so range doesnt matter)
(candidate.block.priority.ordinal() > target.block.priority.ordinal())){
target = candidate;
targetDist = dist;
} }
} }
return null; return target;
} }
public Building findTile(Team team, float x, float y, float range, Boolf<Building> pred){ public Building findTile(Team team, float x, float y, float range, Boolf<Building> pred){
@@ -360,7 +390,7 @@ public class BlockIndexer{
private void process(Tile tile){ private void process(Tile tile){
var team = tile.team(); var team = tile.team();
//only process entity changes with centered tiles //only process entity changes with centered tiles
if(tile.isCenter() && team != Team.derelict){ if(tile.isCenter() && tile.build != null){
var data = team.data(); var data = team.data();
if(tile.block().flags.size() > 0 && tile.isCenter()){ if(tile.block().flags.size() > 0 && tile.isCenter()){
TileArray[] map = getFlagged(team); TileArray[] map = getFlagged(team);

View File

@@ -119,9 +119,11 @@ public class Pathfinder implements Runnable{
} }
} }
int tid = tile.getTeamID();
return PathTile.get( return PathTile.get(
tile.build == null || !solid || tile.block() instanceof CoreBlock ? 0 : Math.min((int)(tile.build.health / 40), 80), tile.build == null || !solid || tile.block() instanceof CoreBlock ? 0 : Math.min((int)(tile.build.health / 40), 80),
tile.getTeamID(), tid == 0 && tile.build != null && state.rules.coreCapture ? 255 : tid, //use teamid = 255 when core capture is enabled to mark out derelict structures
solid, solid,
tile.floor().isLiquid, tile.floor().isLiquid,
tile.staticDarkness() >= 2 || (tile.floor().solid && tile.block() == Blocks.air), tile.staticDarkness() >= 2 || (tile.floor().solid && tile.block() == Blocks.air),

View File

@@ -180,6 +180,7 @@ public class WaveSpawner{
private void spawnEffect(Unit unit){ private void spawnEffect(Unit unit){
unit.rotation = unit.angleTo(world.width()/2f * tilesize, world.height()/2f * tilesize); unit.rotation = unit.angleTo(world.width()/2f * tilesize, world.height()/2f * tilesize);
unit.apply(StatusEffects.unmoving, 30f); unit.apply(StatusEffects.unmoving, 30f);
unit.apply(StatusEffects.invincible, 60f);
unit.add(); unit.add();
Call.spawnEffect(unit.x, unit.y, unit.rotation, unit.type); Call.spawnEffect(unit.x, unit.y, unit.rotation, unit.type);

View File

@@ -19,6 +19,7 @@ public class BuilderAI extends AIController{
@Nullable Unit following; @Nullable Unit following;
@Nullable Teamc enemy; @Nullable Teamc enemy;
float retreatTimer; float retreatTimer;
@Nullable BlockPlan lastPlan;
@Override @Override
public void updateMovement(){ public void updateMovement(){
@@ -43,6 +44,7 @@ public class BuilderAI extends AIController{
//set to follower's first build plan, whatever that is //set to follower's first build plan, whatever that is
unit.plans.clear(); unit.plans.clear();
unit.plans.addFirst(following.buildPlan()); unit.plans.addFirst(following.buildPlan());
lastPlan = null;
}else if(unit.buildPlan() == null){ }else if(unit.buildPlan() == null){
//not following anyone or building //not following anyone or building
if(timer.get(timerTarget4, 40)){ if(timer.get(timerTarget4, 40)){
@@ -78,10 +80,11 @@ public class BuilderAI extends AIController{
} }
boolean valid = boolean valid =
(req.tile() != null && req.tile().build instanceof ConstructBuild cons && cons.current == req.block) || !(lastPlan != null && lastPlan.removed) &&
((req.tile() != null && req.tile().build instanceof ConstructBuild cons && cons.current == req.block) ||
(req.breaking ? (req.breaking ?
Build.validBreak(unit.team(), req.x, req.y) : Build.validBreak(unit.team(), req.x, req.y) :
Build.validPlace(req.block, unit.team(), req.x, req.y, req.rotation)); Build.validPlace(req.block, unit.team(), req.x, req.y, req.rotation)));
if(valid){ if(valid){
//move toward the request //move toward the request
@@ -89,6 +92,7 @@ public class BuilderAI extends AIController{
}else{ }else{
//discard invalid request //discard invalid request
unit.plans.removeFirst(); unit.plans.removeFirst();
lastPlan = null;
} }
}else{ }else{
@@ -127,6 +131,7 @@ public class BuilderAI extends AIController{
if(world.tile(block.x, block.y) != null && world.tile(block.x, block.y).block().id == block.block){ if(world.tile(block.x, block.y) != null && world.tile(block.x, block.y).block().id == block.block){
blocks.removeFirst(); blocks.removeFirst();
}else if(Build.validPlace(content.block(block.block), unit.team(), block.x, block.y, block.rotation)){ //it's valid. }else if(Build.validPlace(content.block(block.block), unit.team(), block.x, block.y, block.rotation)){ //it's valid.
lastPlan = block;
//add build request. //add build request.
unit.addBuild(new BuildPlan(block.x, block.y, block.rotation, content.block(block.block), block.config)); unit.addBuild(new BuildPlan(block.x, block.y, block.rotation, content.block(block.block), block.config));
//shift build plan to tail so next unit builds something else. //shift build plan to tail so next unit builds something else.

View File

@@ -6,10 +6,14 @@ import mindustry.entities.units.*;
import mindustry.gen.*; import mindustry.gen.*;
import mindustry.world.meta.*; import mindustry.world.meta.*;
import static mindustry.Vars.*;
public class DefenderAI extends AIController{ public class DefenderAI extends AIController{
@Override @Override
public void updateMovement(){ public void updateMovement(){
unloadPayloads();
if(target != null){ if(target != null){
moveTo(target, (target instanceof Sized s ? s.hitSize()/2f * 1.1f : 0f) + unit.hitSize/2f + 15f, 50f); moveTo(target, (target instanceof Sized s ? s.hitSize()/2f * 1.1f : 0f) + unit.hitSize/2f + 15f, 50f);
unit.lookAt(target); unit.lookAt(target);
@@ -23,6 +27,7 @@ public class DefenderAI extends AIController{
@Override @Override
protected Teamc findTarget(float x, float y, float range, boolean air, boolean ground){ protected Teamc findTarget(float x, float y, float range, boolean air, boolean ground){
//find unit to follow if not in rally mode //find unit to follow if not in rally mode
if(command() != UnitCommand.rally){ if(command() != UnitCommand.rally){
//Sort by max health and closer target. //Sort by max health and closer target.
@@ -34,6 +39,14 @@ public class DefenderAI extends AIController{
var block = targetFlag(unit.x, unit.y, BlockFlag.rally, false); var block = targetFlag(unit.x, unit.y, BlockFlag.rally, false);
if(block != null) return block; if(block != null) return block;
//return core if found //return core if found
return unit.closestCore(); var core = unit.closestCore();
if(core != null) return core;
//for enemies, target the enemy core.
if(state.rules.waves && unit.team == state.rules.waveTeam){
return unit.closestEnemyCore();
}
return null;
} }
} }

View File

@@ -11,6 +11,8 @@ public class FlyingAI extends AIController{
@Override @Override
public void updateMovement(){ public void updateMovement(){
unloadPayloads();
if(target != null && unit.hasWeapons() && command() == UnitCommand.attack){ if(target != null && unit.hasWeapons() && command() == UnitCommand.attack){
if(!unit.type.circleTarget){ if(!unit.type.circleTarget){
moveTo(target, unit.type.range * 0.8f); moveTo(target, unit.type.range * 0.8f);
@@ -31,16 +33,24 @@ public class FlyingAI extends AIController{
@Override @Override
protected Teamc findTarget(float x, float y, float range, boolean air, boolean ground){ protected Teamc findTarget(float x, float y, float range, boolean air, boolean ground){
var result = findMainTarget(x, y, range, air, ground);
//if the main target is in range, use it, otherwise target whatever is closest
return checkTarget(result, x, y, range) ? target(x, y, range, air, ground) : result;
}
@Override
protected Teamc findMainTarget(float x, float y, float range, boolean air, boolean ground){
for(var flag : unit.team.isAI() ? unit.type.targetFlags : unit.type.playerTargetFlags){
if(flag == null){
Teamc result = target(x, y, range, air, ground); Teamc result = target(x, y, range, air, ground);
if(result != null) return result; if(result != null) return result;
}else if(ground){
if(ground) result = targetFlag(x, y, BlockFlag.generator, true); Teamc result = targetFlag(x, y, flag, true);
if(result != null) return result; if(result != null) return result;
}
if(ground) result = targetFlag(x, y, BlockFlag.core, true); }
if(result != null) return result; return targetFlag(x, y, BlockFlag.core, true);
return null;
} }
protected void attack(float circleLength){ protected void attack(float circleLength){

View File

@@ -17,7 +17,7 @@ public class LogicAI extends AIController{
/** Minimum delay between item transfers. */ /** Minimum delay between item transfers. */
public static final float transferDelay = 60f * 1.5f; public static final float transferDelay = 60f * 1.5f;
/** Time after which the unit resets its controlled and reverts to a normal unit. */ /** Time after which the unit resets its controlled and reverts to a normal unit. */
public static final float logicControlTimeout = 10f * 60f; public static final float logicControlTimeout = 60f * 10f;
public LUnitControl control = LUnitControl.idle; public LUnitControl control = LUnitControl.idle;
public float moveX, moveY, moveRad; public float moveX, moveY, moveRad;
@@ -104,7 +104,7 @@ public class LogicAI extends AIController{
//look where moving if there's nothing to aim at //look where moving if there's nothing to aim at
if(!shoot){ if(!shoot){
unit.lookAt(unit.prefRotation()); unit.lookAt(unit.prefRotation());
}else if(unit.hasWeapons() && unit.mounts.length > 0){ //if there is, look at the object }else if(unit.hasWeapons() && unit.mounts.length > 0 && !unit.mounts[0].weapon.ignoreRotation){ //if there is, look at the object
unit.lookAt(unit.mounts[0].aimX, unit.mounts[0].aimY); unit.lookAt(unit.mounts[0].aimX, unit.mounts[0].aimY);
} }
} }

View File

@@ -24,6 +24,7 @@ public class PhysicsProcess implements AsyncProcess{
@Override @Override
public void begin(){ public void begin(){
if(physics == null) return; if(physics == null) return;
boolean local = !Vars.net.client();
//remove stale entities //remove stale entities
refs.removeAll(ref -> { refs.removeAll(ref -> {
@@ -60,8 +61,9 @@ public class PhysicsProcess implements AsyncProcess{
ref.body.layer = ref.body.layer =
entity.type.allowLegStep ? layerLegs : entity.type.allowLegStep ? layerLegs :
entity.isGrounded() ? layerGround : layerFlying; entity.isGrounded() ? layerGround : layerFlying;
ref.x = entity.x(); ref.x = entity.x;
ref.y = entity.y(); ref.y = entity.y;
ref.body.local = local || entity.isLocal();
} }
} }
@@ -156,6 +158,10 @@ public class PhysicsProcess implements AsyncProcess{
for(int i = 0; i < bodies.size; i++){ for(int i = 0; i < bodies.size; i++){
PhysicsBody body = bodies.items[i]; PhysicsBody body = bodies.items[i];
//for clients, the only body that collides is the local one; all other physics simulations are handled by the server.
if(!body.local) continue;
body.hitbox(rect); body.hitbox(rect);
seq.size = 0; seq.size = 0;
@@ -174,12 +180,16 @@ public class PhysicsProcess implements AsyncProcess{
float ms = body.mass + other.mass; float ms = body.mass + other.mass;
float m1 = other.mass / ms, m2 = body.mass / ms; float m1 = other.mass / ms, m2 = body.mass / ms;
//first body is always local due to guard check above
body.x += vec.x * m1 / scl; body.x += vec.x * m1 / scl;
body.y += vec.y * m1 / scl; body.y += vec.y * m1 / scl;
if(other.local){
other.x -= vec.x * m2 / scl; other.x -= vec.x * m2 / scl;
other.y -= vec.y * m2 / scl; other.y -= vec.y * m2 / scl;
} }
} }
}
body.collided = true; body.collided = true;
} }
} }
@@ -187,7 +197,7 @@ public class PhysicsProcess implements AsyncProcess{
public static class PhysicsBody implements QuadTreeObject{ public static class PhysicsBody implements QuadTreeObject{
public float x, y, radius, mass; public float x, y, radius, mass;
public int layer = 0; public int layer = 0;
public boolean collided = false; public boolean collided = false, local = true;
@Override @Override
public void hitbox(Rect out){ public void hitbox(Rect out){

View File

@@ -17,7 +17,7 @@ import static mindustry.Vars.*;
/** Controls playback of multiple audio tracks.*/ /** Controls playback of multiple audio tracks.*/
public class SoundControl{ public class SoundControl{
protected static final float finTime = 120f, foutTime = 120f, musicInterval = 60 * 60 * 3f, musicChance = 0.6f, musicWaveChance = 0.46f; protected static final float finTime = 120f, foutTime = 120f, musicInterval = 3f * Time.toMinutes, musicChance = 0.6f, musicWaveChance = 0.46f;
/** normal, ambient music, plays at any time */ /** normal, ambient music, plays at any time */
public Seq<Music> ambientMusic = Seq.with(); public Seq<Music> ambientMusic = Seq.with();

View File

@@ -51,7 +51,7 @@ public class Blocks implements ContentList{
melter, separator, disassembler, sporePress, pulverizer, incinerator, coalCentrifuge, melter, separator, disassembler, sporePress, pulverizer, incinerator, coalCentrifuge,
//sandbox //sandbox
powerSource, powerVoid, itemSource, itemVoid, liquidSource, liquidVoid, payloadVoid, payloadSource, illuminator, powerSource, powerVoid, itemSource, itemVoid, liquidSource, liquidVoid, payloadSource, payloadVoid, illuminator,
//defense //defense
copperWall, copperWallLarge, titaniumWall, titaniumWallLarge, plastaniumWall, plastaniumWallLarge, thoriumWall, thoriumWallLarge, door, doorLarge, copperWall, copperWallLarge, titaniumWall, titaniumWallLarge, plastaniumWall, plastaniumWallLarge, thoriumWall, thoriumWallLarge, door, doorLarge,
@@ -235,7 +235,6 @@ public class Blocks implements ContentList{
magmarock = new Floor("magmarock"){{ magmarock = new Floor("magmarock"){{
attributes.set(Attribute.heat, 0.75f); attributes.set(Attribute.heat, 0.75f);
attributes.set(Attribute.water, -0.75f); attributes.set(Attribute.water, -0.75f);
updateEffect = Fx.magmasmoke;
blendGroup = basalt; blendGroup = basalt;
emitLight = true; emitLight = true;
@@ -305,7 +304,7 @@ public class Blocks implements ContentList{
shale = new Floor("shale"){{ shale = new Floor("shale"){{
variants = 3; variants = 3;
attributes.set(Attribute.oil, 1f); attributes.set(Attribute.oil, 1.6f);
}}; }};
stoneWall = new StaticWall("stone-wall"){{ stoneWall = new StaticWall("stone-wall"){{
@@ -369,6 +368,7 @@ public class Blocks implements ContentList{
sporeCluster = new Prop("spore-cluster"){{ sporeCluster = new Prop("spore-cluster"){{
variants = 3; variants = 3;
breakSound = Sounds.plantBreak;
}}; }};
boulder = new Prop("boulder"){{ boulder = new Prop("boulder"){{
@@ -426,6 +426,9 @@ public class Blocks implements ContentList{
darkMetal = new StaticWall("dark-metal"); darkMetal = new StaticWall("dark-metal");
Seq.with(metalFloor, metalFloorDamaged, metalFloor2, metalFloor3, metalFloor4, metalFloor5, darkPanel1, darkPanel2, darkPanel3, darkPanel4, darkPanel5, darkPanel6)
.each(b -> b.asFloor().wall = darkMetal);
pebbles = new DoubleOverlayFloor("pebbles"); pebbles = new DoubleOverlayFloor("pebbles");
tendrils = new OverlayFloor("tendrils"); tendrils = new OverlayFloor("tendrils");
@@ -654,17 +657,17 @@ public class Blocks implements ContentList{
craftTime = 35f; craftTime = 35f;
size = 2; size = 2;
consumes.power(1f); consumes.power(1.1f);
consumes.liquid(Liquids.slag, 0.07f); consumes.liquid(Liquids.slag, 4f / 60f);
}}; }};
disassembler = new Separator("disassembler"){{ disassembler = new Separator("disassembler"){{
requirements(Category.crafting, with(Items.graphite, 140, Items.titanium, 100, Items.silicon, 150, Items.surgeAlloy, 70)); requirements(Category.crafting, with(Items.plastanium, 40, Items.titanium, 100, Items.silicon, 150, Items.thorium, 80));
results = with( results = with(
Items.sand, 4, Items.sand, 4,
Items.graphite, 2, Items.graphite, 2,
Items.titanium, 2, Items.titanium, 2,
Items.thorium, 1 Items.thorium, 2
); );
hasPower = true; hasPower = true;
craftTime = 15f; craftTime = 15f;
@@ -709,7 +712,7 @@ public class Blocks implements ContentList{
coalCentrifuge = new GenericCrafter("coal-centrifuge"){{ coalCentrifuge = new GenericCrafter("coal-centrifuge"){{
requirements(Category.crafting, with(Items.titanium, 20, Items.graphite, 40, Items.lead, 30)); requirements(Category.crafting, with(Items.titanium, 20, Items.graphite, 40, Items.lead, 30));
craftEffect = Fx.smeltsmoke; craftEffect = Fx.coalSmeltsmoke;
outputItem = new ItemStack(Items.coal, 1); outputItem = new ItemStack(Items.coal, 1);
craftTime = 30f; craftTime = 30f;
size = 2; size = 2;
@@ -961,15 +964,20 @@ public class Blocks implements ContentList{
itemBridge = new BufferedItemBridge("bridge-conveyor"){{ itemBridge = new BufferedItemBridge("bridge-conveyor"){{
requirements(Category.distribution, with(Items.lead, 6, Items.copper, 6)); requirements(Category.distribution, with(Items.lead, 6, Items.copper, 6));
fadeIn = moveArrows = false;
range = 4; range = 4;
speed = 74f; speed = 74f;
arrowSpacing = 6f;
bufferCapacity = 14; bufferCapacity = 14;
}}; }};
phaseConveyor = new ItemBridge("phase-conveyor"){{ phaseConveyor = new ItemBridge("phase-conveyor"){{
requirements(Category.distribution, with(Items.phaseFabric, 5, Items.silicon, 7, Items.lead, 10, Items.graphite, 10)); requirements(Category.distribution, with(Items.phaseFabric, 5, Items.silicon, 7, Items.lead, 10, Items.graphite, 10));
range = 12; range = 12;
arrowPeriod = 0.9f;
arrowTimeScl = 2.75f;
hasPower = true; hasPower = true;
pulse = true;
consumes.power(0.30f); consumes.power(0.30f);
}}; }};
@@ -1012,7 +1020,6 @@ public class Blocks implements ContentList{
reloadTime = 200f; reloadTime = 200f;
range = 440f; range = 440f;
consumes.power(1.75f); consumes.power(1.75f);
bullet = new MassDriverBolt();
}}; }};
//special transport blocks //special transport blocks
@@ -1093,8 +1100,10 @@ public class Blocks implements ContentList{
requirements(Category.liquid, with(Items.graphite, 2, Items.metaglass, 2)); requirements(Category.liquid, with(Items.graphite, 2, Items.metaglass, 2));
}}; }};
bridgeConduit = new LiquidExtendingBridge("bridge-conduit"){{ bridgeConduit = new LiquidBridge("bridge-conduit"){{
requirements(Category.liquid, with(Items.graphite, 4, Items.metaglass, 8)); requirements(Category.liquid, with(Items.graphite, 4, Items.metaglass, 8));
fadeIn = moveArrows = false;
arrowSpacing = 6f;
range = 4; range = 4;
hasPower = false; hasPower = false;
}}; }};
@@ -1102,8 +1111,11 @@ public class Blocks implements ContentList{
phaseConduit = new LiquidBridge("phase-conduit"){{ phaseConduit = new LiquidBridge("phase-conduit"){{
requirements(Category.liquid, with(Items.phaseFabric, 5, Items.silicon, 7, Items.metaglass, 20, Items.titanium, 10)); requirements(Category.liquid, with(Items.phaseFabric, 5, Items.silicon, 7, Items.metaglass, 20, Items.titanium, 10));
range = 12; range = 12;
arrowPeriod = 0.9f;
arrowTimeScl = 2.75f;
hasPower = true; hasPower = true;
canOverdrive = false; canOverdrive = false;
pulse = true;
consumes.power(0.30f); consumes.power(0.30f);
}}; }};
@@ -1159,6 +1171,7 @@ public class Blocks implements ContentList{
requirements(Category.power, with(Items.copper, 40, Items.graphite, 35, Items.lead, 50, Items.silicon, 35, Items.metaglass, 40)); requirements(Category.power, with(Items.copper, 40, Items.graphite, 35, Items.lead, 50, Items.silicon, 35, Items.metaglass, 40));
powerProduction = 1.8f; powerProduction = 1.8f;
generateEffect = Fx.redgeneratespark; generateEffect = Fx.redgeneratespark;
effectChance = 0.011f;
size = 2; size = 2;
floating = true; floating = true;
ambientSound = Sounds.hum; ambientSound = Sounds.hum;
@@ -1364,6 +1377,7 @@ public class Blocks implements ContentList{
health = 3500; health = 3500;
itemCapacity = 9000; itemCapacity = 9000;
size = 4; size = 4;
thrusterLength = 34/4f;
unitCapModifier = 16; unitCapModifier = 16;
researchCostMultiplier = 0.07f; researchCostMultiplier = 0.07f;
@@ -1376,6 +1390,7 @@ public class Blocks implements ContentList{
health = 6000; health = 6000;
itemCapacity = 13000; itemCapacity = 13000;
size = 5; size = 5;
thrusterLength = 40/4f;
unitCapModifier = 24; unitCapModifier = 24;
researchCostMultiplier = 0.11f; researchCostMultiplier = 0.11f;
@@ -1589,13 +1604,13 @@ public class Blocks implements ContentList{
shots = 4; shots = 4;
burstSpacing = 5; burstSpacing = 5;
inaccuracy = 10f; inaccuracy = 10f;
range = 210f; range = 235f;
xRand = 6f; xRand = 6f;
size = 2; size = 2;
health = 300 * size * size; health = 300 * size * size;
shootSound = Sounds.missile; shootSound = Sounds.missile;
limitRange(2f); limitRange(5f);
}}; }};
salvo = new ItemTurret("salvo"){{ salvo = new ItemTurret("salvo"){{
@@ -1610,7 +1625,7 @@ public class Blocks implements ContentList{
size = 2; size = 2;
range = 190f; range = 190f;
reloadTime = 34f; reloadTime = 31f;
restitution = 0.03f; restitution = 0.03f;
ammoEjectBack = 3f; ammoEjectBack = 3f;
cooldown = 0.03f; cooldown = 0.03f;
@@ -1978,39 +1993,28 @@ public class Blocks implements ContentList{
}}; }};
repairPoint = new RepairPoint("repair-point"){{ repairPoint = new RepairPoint("repair-point"){{
requirements(Category.units, with(Items.lead, 20, Items.copper, 20, Items.silicon, 15)); requirements(Category.units, with(Items.lead, 30, Items.copper, 30, Items.silicon, 20));
repairSpeed = 0.5f; repairSpeed = 0.45f;
repairRadius = 65f; repairRadius = 60f;
beamWidth = 0.73f; beamWidth = 0.73f;
powerUse = 1f; powerUse = 1f;
pulseRadius = 5f; pulseRadius = 5f;
}}; }};
repairTurret = new RepairPoint("repair-turret"){{ repairTurret = new RepairPoint("repair-turret"){{
requirements(Category.units, with(Items.silicon, 70, Items.thorium, 60, Items.plastanium, 60)); requirements(Category.units, with(Items.silicon, 90, Items.thorium, 80, Items.plastanium, 60));
size = 2; size = 2;
length = 6f; length = 6f;
repairSpeed = 4f; repairSpeed = 3f;
repairRadius = 140f; repairRadius = 145f;
powerUse = 5f; powerUse = 5f;
beamWidth = 1.1f; beamWidth = 1.1f;
pulseRadius = 6.1f; pulseRadius = 6.1f;
coolantUse = 0.15f; coolantUse = 0.16f;
coolantMultiplier = 1.7f; coolantMultiplier = 1.6f;
acceptCoolant = true; acceptCoolant = true;
}}; }};
resupplyPoint = new ResupplyPoint("resupply-point"){{
requirements(Category.units, BuildVisibility.ammoOnly, with(Items.lead, 20, Items.copper, 15, Items.silicon, 15));
size = 2;
range = 80f;
itemCapacity = 20;
ammoAmount = 5;
consumes.item(Items.copper, 1);
}};
//endregion //endregion
//region payloads //region payloads
@@ -2029,7 +2033,7 @@ public class Blocks implements ContentList{
size = 5; size = 5;
reloadTime = 140f; reloadTime = 140f;
chargeTime = 100f; chargeTime = 100f;
range = 500f; range = 600f;
maxPayloadSize = 3.5f; maxPayloadSize = 3.5f;
consumes.power(6f); consumes.power(6f);
}}; }};
@@ -2068,12 +2072,12 @@ public class Blocks implements ContentList{
alwaysUnlocked = true; alwaysUnlocked = true;
}}; }};
payloadVoid = new PayloadVoid("payload-void"){{ payloadSource = new PayloadSource("payload-source"){{
requirements(Category.units, BuildVisibility.sandboxOnly, with()); requirements(Category.units, BuildVisibility.sandboxOnly, with());
size = 5; size = 5;
}}; }};
payloadSource = new PayloadSource("payload-source"){{ payloadVoid = new PayloadVoid("payload-void"){{
requirements(Category.units, BuildVisibility.sandboxOnly, with()); requirements(Category.units, BuildVisibility.sandboxOnly, with());
size = 5; size = 5;
}}; }};

View File

@@ -257,7 +257,6 @@ public class Bullets implements ContentList{
width = 8f; width = 8f;
height = 8f; height = 8f;
shrinkY = 0f; shrinkY = 0f;
drag = -0.01f;
splashDamageRadius = 30f; splashDamageRadius = 30f;
splashDamage = 30f * 1.5f; splashDamage = 30f * 1.5f;
ammoMultiplier = 5f; ammoMultiplier = 5f;
@@ -274,7 +273,6 @@ public class Bullets implements ContentList{
width = 7f; width = 7f;
height = 8f; height = 8f;
shrinkY = 0f; shrinkY = 0f;
drag = -0.01f;
homingPower = 0.08f; homingPower = 0.08f;
splashDamageRadius = 20f; splashDamageRadius = 20f;
splashDamage = 20f * 1.5f; splashDamage = 20f * 1.5f;
@@ -288,7 +286,6 @@ public class Bullets implements ContentList{
width = 8f; width = 8f;
height = 8f; height = 8f;
shrinkY = 0f; shrinkY = 0f;
drag = -0.01f;
splashDamageRadius = 25f; splashDamageRadius = 25f;
splashDamage = 25f * 1.4f; splashDamage = 25f * 1.4f;
hitEffect = Fx.blastExplosion; hitEffect = Fx.blastExplosion;

View File

@@ -184,6 +184,16 @@ public class Fx{
Lines.square(e.x, e.y, tilesize / 2f * e.rotation + e.fin() * 3f); Lines.square(e.x, e.y, tilesize / 2f * e.rotation + e.fin() * 3f);
}), }),
coreLaunchConstruct = new Effect(35, e -> {
color(Pal.accent);
stroke(4f - e.fin() * 3f);
Lines.square(e.x, e.y, tilesize / 2f * e.rotation * 1.2f + e.fin() * 5f);
randLenVectors(e.id, 5 + (int)(e.rotation * 5), e.rotation * 3f + (tilesize * e.rotation) * e.finpow() * 1.5f, (x, y) -> {
Lines.lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), 1f + e.fout() * (4f + e.rotation));
});
}),
tapBlock = new Effect(12, e -> { tapBlock = new Effect(12, e -> {
color(Pal.accent); color(Pal.accent);
stroke(3f - e.fin() * 2f); stroke(3f - e.fin() * 2f);
@@ -854,7 +864,7 @@ public class Fx{
fireRemove = new Effect(70f, e -> { fireRemove = new Effect(70f, e -> {
if(Fire.regions[0] == null) return; if(Fire.regions[0] == null) return;
alpha(e.fout()); alpha(e.fout());
rect(Fire.regions[((int)(e.rotation + e.fin() * Fire.frames)) % Fire.frames], e.x, e.y); rect(Fire.regions[((int)(e.rotation + e.fin() * Fire.frames)) % Fire.frames], e.x + Mathf.randomSeedRange((int)e.y, 2), e.y + Mathf.randomSeedRange((int)e.x, 2));
Drawf.light(e.x, e.y, 50f + Mathf.absin(5f, 5f), Pal.lightFlame, 0.6f * e.fout()); Drawf.light(e.x, e.y, 50f + Mathf.absin(5f, 5f), Pal.lightFlame, 0.6f * e.fout());
}), }),
@@ -1526,13 +1536,16 @@ public class Fx{
}); });
}), }),
redgeneratespark = new Effect(18, e -> { redgeneratespark = new Effect(90, e -> {
randLenVectors(e.id, 5, e.fin() * 8f, (x, y) -> { color(Pal.redSpark);
float len = e.fout() * 4f; alpha(e.fslope());
color(Pal.redSpark, Color.gray, e.fin());
Fill.circle(e.x + x, e.y + y, len/2f); rand.setSeed(e.id);
}); for(int i = 0; i < 2; i++){
}), v.trns(rand.random(360f), rand.random(e.finpow() * 9f)).add(e.x, e.y);
Fill.circle(v.x, v.y, rand.random(1.4f, 2.4f));
}
}).layer(Layer.bullet - 1f),
generatespark = new Effect(18, e -> { generatespark = new Effect(18, e -> {
randLenVectors(e.id, 5, e.fin() * 8f, (x, y) -> { randLenVectors(e.id, 5, e.fin() * 8f, (x, y) -> {
@@ -1622,6 +1635,13 @@ public class Fx{
}); });
}), }),
coalSmeltsmoke = new Effect(40f, e -> {
randLenVectors(e.id, 0.2f + e.fin(), 4, 6.3f, (x, y, fin, out) -> {
color(Color.darkGray, Pal.coalBlack, e.finpowdown());
Fill.circle(e.x + x, e.y + y, out * 2f + 0.35f);
});
}),
formsmoke = new Effect(40, e -> { formsmoke = new Effect(40, e -> {
randLenVectors(e.id, 6, 5f + e.fin() * 8f, (x, y) -> { randLenVectors(e.id, 6, 5f + e.fin() * 8f, (x, y) -> {
color(Pal.plasticSmoke, Color.lightGray, e.fin()); color(Pal.plasticSmoke, Color.lightGray, e.fin());
@@ -1852,6 +1872,13 @@ public class Fx{
Lines.poly(e.x, e.y, 6, e.rotation + e.fin()); Lines.poly(e.x, e.y, 6, e.rotation + e.fin());
}), }),
coreLandDust = new Effect(100f, e -> {
color(e.color, e.fout(0.1f));
rand.setSeed(e.id);
Tmp.v1.trns(e.rotation, e.finpow() * 90f * rand.random(0.2f, 1f));
Fill.circle(e.x + Tmp.v1.x, e.y + Tmp.v1.y, 8f * rand.random(0.6f, 1f) * e.fout(0.2f));
}).layer(Layer.block + 1f),
unitShieldBreak = new Effect(35, e -> { unitShieldBreak = new Effect(35, e -> {
if(!(e.data instanceof Unitc)) return; if(!(e.data instanceof Unitc)) return;
@@ -1945,8 +1972,5 @@ public class Fx{
} }
Lines.endLine(); Lines.endLine();
}).followParent(false), }).followParent(false);
coreLand = new Effect(120f, e -> {
});
} }

View File

@@ -2,6 +2,7 @@ package mindustry.content;
import arc.graphics.*; import arc.graphics.*;
import mindustry.ctype.*; import mindustry.ctype.*;
import mindustry.graphics.*;
import mindustry.graphics.g3d.*; import mindustry.graphics.g3d.*;
import mindustry.maps.planet.*; import mindustry.maps.planet.*;
import mindustry.type.*; import mindustry.type.*;
@@ -38,6 +39,7 @@ public class Planets implements ContentList{
atmosphereRadOut = 0.3f; atmosphereRadOut = 0.3f;
startSector = 15; startSector = 15;
alwaysUnlocked = true; alwaysUnlocked = true;
landCloudColor = Pal.spore.cpy().a(0.5f);
}}; }};
} }
} }

View File

@@ -12,7 +12,7 @@ import mindustry.graphics.*;
import static mindustry.Vars.*; import static mindustry.Vars.*;
public class StatusEffects implements ContentList{ public class StatusEffects implements ContentList{
public static StatusEffect none, burning, freezing, unmoving, slow, wet, muddy, melting, sapped, tarred, overdrive, overclock, shielded, shocked, blasted, corroded, boss, sporeSlowed, disarmed, electrified; public static StatusEffect none, burning, freezing, unmoving, slow, wet, muddy, melting, sapped, tarred, overdrive, overclock, shielded, shocked, blasted, corroded, boss, sporeSlowed, disarmed, electrified, invincible;
@Override @Override
public void load(){ public void load(){
@@ -47,7 +47,6 @@ public class StatusEffects implements ContentList{
affinity(blasted, ((unit, result, time) -> { affinity(blasted, ((unit, result, time) -> {
unit.damagePierce(transitionDamage); unit.damagePierce(transitionDamage);
result.set(freezing, time);
})); }));
}); });
}}; }};
@@ -70,13 +69,12 @@ public class StatusEffects implements ContentList{
transitionDamage = 14; transitionDamage = 14;
init(() -> { init(() -> {
affinity(shocked, ((unit, result, time) -> { affinity(shocked, (unit, result, time) -> {
unit.damagePierce(transitionDamage); unit.damagePierce(transitionDamage);
if(unit.team == state.rules.waveTeam){ if(unit.team == state.rules.waveTeam){
Events.fire(Trigger.shock); Events.fire(Trigger.shock);
} }
result.set(wet, time); });
}));
opposite(burning, melting); opposite(burning, melting);
}); });
}}; }};
@@ -98,11 +96,11 @@ public class StatusEffects implements ContentList{
init(() -> { init(() -> {
opposite(wet, freezing); opposite(wet, freezing);
affinity(tarred, ((unit, result, time) -> { affinity(tarred, (unit, result, time) -> {
unit.damagePierce(8f); unit.damagePierce(8f);
Fx.burning.at(unit.x + Mathf.range(unit.bounds() / 2f), unit.y + Mathf.range(unit.bounds() / 2f)); Fx.burning.at(unit.x + Mathf.range(unit.bounds() / 2f), unit.y + Mathf.range(unit.bounds() / 2f));
result.set(melting, Math.min(time + result.time, 200f)); result.set(melting, Math.min(time + result.time, 200f));
})); });
}); });
}}; }};
@@ -135,8 +133,8 @@ public class StatusEffects implements ContentList{
effect = Fx.oily; effect = Fx.oily;
init(() -> { init(() -> {
affinity(melting, ((unit, result, time) -> result.set(melting, result.time + time))); affinity(melting, (unit, result, time) -> result.set(melting, result.time + time));
affinity(burning, ((unit, result, time) -> result.set(burning, result.time + time))); affinity(burning, (unit, result, time) -> result.set(burning, result.time + time));
}); });
}}; }};
@@ -190,5 +188,9 @@ public class StatusEffects implements ContentList{
color = Color.valueOf("e9ead3"); color = Color.valueOf("e9ead3");
disarm = true; disarm = true;
}}; }};
invincible = new StatusEffect("invincible"){{
healthMultiplier = Float.POSITIVE_INFINITY;
}};
} }
} }

View File

@@ -14,6 +14,7 @@ import mindustry.entities.effect.*;
import mindustry.gen.*; import mindustry.gen.*;
import mindustry.graphics.*; import mindustry.graphics.*;
import mindustry.type.*; import mindustry.type.*;
import mindustry.type.ammo.*;
import mindustry.type.weapons.*; import mindustry.type.weapons.*;
import mindustry.world.meta.*; import mindustry.world.meta.*;
@@ -52,8 +53,8 @@ public class UnitTypes implements ContentList{
//air + payload, legacy //air + payload, legacy
public static @EntityDef(value = {Unitc.class, Payloadc.class}, legacy = true) UnitType quad; public static @EntityDef(value = {Unitc.class, Payloadc.class}, legacy = true) UnitType quad;
//air + payload + ammo distribution //air + payload + legacy (different branch)
public static @EntityDef({Unitc.class, Payloadc.class, AmmoDistributec.class}) UnitType oct; public static @EntityDef(value = {Unitc.class, Payloadc.class}, legacy = true) UnitType oct;
//air, legacy //air, legacy
public static @EntityDef(value = {Unitc.class}, legacy = true) UnitType alpha, beta, gamma; public static @EntityDef(value = {Unitc.class}, legacy = true) UnitType alpha, beta, gamma;
@@ -87,8 +88,9 @@ public class UnitTypes implements ContentList{
mace = new UnitType("mace"){{ mace = new UnitType("mace"){{
speed = 0.45f; speed = 0.45f;
hitSize = 10f; hitSize = 10f;
health = 530; health = 540;
armor = 4f; armor = 4f;
ammoType = new ItemAmmoType(Items.coal);
immunities.add(StatusEffects.burning); immunities.add(StatusEffects.burning);
@@ -96,7 +98,7 @@ public class UnitTypes implements ContentList{
top = false; top = false;
shootSound = Sounds.flame; shootSound = Sounds.flame;
shootY = 2f; shootY = 2f;
reload = 12f; reload = 11f;
recoil = 1f; recoil = 1f;
ejectEffect = Fx.none; ejectEffect = Fx.none;
bullet = new BulletType(4.1f, 32f){{ bullet = new BulletType(4.1f, 32f){{
@@ -120,9 +122,10 @@ public class UnitTypes implements ContentList{
hitSize = 13f; hitSize = 13f;
rotateSpeed = 3f; rotateSpeed = 3f;
targetAir = false; targetAir = false;
health = 820; health = 900;
armor = 9f; armor = 9f;
mechFrontSway = 0.55f; mechFrontSway = 0.55f;
ammoType = new ItemAmmoType(Items.graphite);
weapons.add(new Weapon("artillery"){{ weapons.add(new Weapon("artillery"){{
top = false; top = false;
@@ -133,15 +136,15 @@ public class UnitTypes implements ContentList{
shake = 2f; shake = 2f;
ejectEffect = Fx.casing2; ejectEffect = Fx.casing2;
shootSound = Sounds.artillery; shootSound = Sounds.artillery;
bullet = new ArtilleryBulletType(2f, 8, "shell"){{ bullet = new ArtilleryBulletType(2f, 20, "shell"){{
hitEffect = Fx.blastExplosion; hitEffect = Fx.blastExplosion;
knockback = 0.8f; knockback = 0.8f;
lifetime = 120f; lifetime = 120f;
width = height = 14f; width = height = 14f;
collides = true; collides = true;
collidesTiles = true; collidesTiles = true;
splashDamageRadius = 30f; splashDamageRadius = 35f;
splashDamage = 60f; splashDamage = 80f;
backColor = Pal.bulletYellowBack; backColor = Pal.bulletYellowBack;
frontColor = Pal.bulletYellow; frontColor = Pal.bulletYellow;
}}; }};
@@ -156,6 +159,7 @@ public class UnitTypes implements ContentList{
armor = 10f; armor = 10f;
canDrown = false; canDrown = false;
mechFrontSway = 1f; mechFrontSway = 1f;
ammoType = new ItemAmmoType(Items.thorium);
mechStepParticles = true; mechStepParticles = true;
mechStepShake = 0.15f; mechStepShake = 0.15f;
@@ -220,6 +224,7 @@ public class UnitTypes implements ContentList{
canDrown = false; canDrown = false;
mechFrontSway = 1.9f; mechFrontSway = 1.9f;
mechSideSway = 0.6f; mechSideSway = 0.6f;
ammoType = new ItemAmmoType(Items.thorium);
weapons.add( weapons.add(
new Weapon("reign-weapon"){{ new Weapon("reign-weapon"){{
@@ -282,7 +287,7 @@ public class UnitTypes implements ContentList{
commandLimit = 8; commandLimit = 8;
abilities.add(new RepairFieldAbility(10f, 60f * 4, 60f)); abilities.add(new RepairFieldAbility(10f, 60f * 4, 60f));
ammoType = AmmoTypes.power; ammoType = new PowerAmmoType(1000);
weapons.add(new Weapon("heal-weapon"){{ weapons.add(new Weapon("heal-weapon"){{
top = false; top = false;
@@ -319,7 +324,7 @@ public class UnitTypes implements ContentList{
commandLimit = 9; commandLimit = 9;
abilities.add(new ShieldRegenFieldAbility(20f, 40f, 60f * 5, 60f)); abilities.add(new ShieldRegenFieldAbility(20f, 40f, 60f * 5, 60f));
ammoType = AmmoTypes.power; ammoType = new PowerAmmoType(1300);
weapons.add(new Weapon("heal-shotgun-weapon"){{ weapons.add(new Weapon("heal-shotgun-weapon"){{
top = false; top = false;
@@ -372,7 +377,7 @@ public class UnitTypes implements ContentList{
commandLimit = 10; commandLimit = 10;
mechFrontSway = 0.55f; mechFrontSway = 0.55f;
ammoType = AmmoTypes.power; ammoType = new PowerAmmoType(1500);
speed = 0.4f; speed = 0.4f;
hitSize = 13f; hitSize = 13f;
@@ -415,16 +420,16 @@ public class UnitTypes implements ContentList{
mechStepParticles = true; mechStepParticles = true;
mechStepShake = 0.15f; mechStepShake = 0.15f;
ammoType = AmmoTypes.powerHigh; ammoType = new PowerAmmoType(2500);
speed = 0.39f; speed = 0.4f;
boostMultiplier = 2.2f; boostMultiplier = 2.2f;
engineOffset = 12f; engineOffset = 12f;
engineSize = 6f; engineSize = 6f;
lowAltitude = true; lowAltitude = true;
riseSpeed = 0.02f; riseSpeed = 0.02f;
health = 7500f; health = 8000f;
armor = 9f; armor = 9f;
canBoost = true; canBoost = true;
landShake = 4f; landShake = 4f;
@@ -449,8 +454,8 @@ public class UnitTypes implements ContentList{
cooldownTime = 200f; cooldownTime = 200f;
bullet = new ContinuousLaserBulletType(){{ bullet = new ContinuousLaserBulletType(){{
damage = 30f; damage = 32f;
length = 175f; length = 180f;
hitEffect = Fx.hitMeltHeal; hitEffect = Fx.hitMeltHeal;
drawSize = 420f; drawSize = 420f;
lifetime = 160f; lifetime = 160f;
@@ -493,7 +498,7 @@ public class UnitTypes implements ContentList{
hovering = true; hovering = true;
visualElevation = 0.2f; visualElevation = 0.2f;
allowLegStep = true; allowLegStep = true;
ammoType = AmmoTypes.powerHigh; ammoType = new PowerAmmoType(4000);
groundLayer = Layer.legUnit; groundLayer = Layer.legUnit;
speed = 0.3f; speed = 0.3f;
@@ -558,6 +563,7 @@ public class UnitTypes implements ContentList{
health = 200; health = 200;
mechSideSway = 0.25f; mechSideSway = 0.25f;
range = 40f; range = 40f;
ammoType = new ItemAmmoType(Items.coal);
weapons.add(new Weapon(){{ weapons.add(new Weapon(){{
reload = 24f; reload = 24f;
@@ -572,7 +578,7 @@ public class UnitTypes implements ContentList{
speed = 1f; speed = 1f;
splashDamageRadius = 60f; splashDamageRadius = 60f;
instantDisappear = true; instantDisappear = true;
splashDamage = 88f; splashDamage = 90f;
killShooter = true; killShooter = true;
hittable = false; hittable = false;
collidesAir = true; collidesAir = true;
@@ -581,7 +587,7 @@ public class UnitTypes implements ContentList{
}}; }};
atrax = new UnitType("atrax"){{ atrax = new UnitType("atrax"){{
speed = 0.5f; speed = 0.54f;
drag = 0.4f; drag = 0.4f;
hitSize = 13f; hitSize = 13f;
rotateSpeed = 3f; rotateSpeed = 3f;
@@ -595,6 +601,7 @@ public class UnitTypes implements ContentList{
legMoveSpace = 1.4f; legMoveSpace = 1.4f;
hovering = true; hovering = true;
armor = 3f; armor = 3f;
ammoType = new ItemAmmoType(Items.coal);
allowLegStep = true; allowLegStep = true;
visualElevation = 0.2f; visualElevation = 0.2f;
@@ -621,7 +628,7 @@ public class UnitTypes implements ContentList{
}}; }};
spiroct = new UnitType("spiroct"){{ spiroct = new UnitType("spiroct"){{
speed = 0.45f; speed = 0.48f;
drag = 0.4f; drag = 0.4f;
hitSize = 15f; hitSize = 15f;
rotateSpeed = 3f; rotateSpeed = 3f;
@@ -634,7 +641,7 @@ public class UnitTypes implements ContentList{
legBaseOffset = 2f; legBaseOffset = 2f;
hovering = true; hovering = true;
armor = 5f; armor = 5f;
ammoType = AmmoTypes.power; ammoType = new PowerAmmoType(1000);
buildSpeed = 0.75f; buildSpeed = 0.75f;
@@ -706,7 +713,7 @@ public class UnitTypes implements ContentList{
legLengthScl = 0.96f; legLengthScl = 0.96f;
rippleScale = 2f; rippleScale = 2f;
legSpeed = 0.2f; legSpeed = 0.2f;
ammoType = AmmoTypes.power; ammoType = new PowerAmmoType(2000);
buildSpeed = 1f; buildSpeed = 1f;
legSplashDamage = 32; legSplashDamage = 32;
@@ -810,7 +817,7 @@ public class UnitTypes implements ContentList{
legLengthScl = 0.93f; legLengthScl = 0.93f;
rippleScale = 3f; rippleScale = 3f;
legSpeed = 0.19f; legSpeed = 0.19f;
ammoType = AmmoTypes.powerHigh; ammoType = new ItemAmmoType(Items.graphite, 8);
buildSpeed = 1f; buildSpeed = 1f;
legSplashDamage = 80; legSplashDamage = 80;
@@ -928,6 +935,7 @@ public class UnitTypes implements ContentList{
engineOffset = 5.5f; engineOffset = 5.5f;
range = 140f; range = 140f;
targetAir = false; targetAir = false;
targetFlags = new BlockFlag[]{BlockFlag.generator, null};
commandLimit = 4; commandLimit = 4;
circleTarget = true; circleTarget = true;
hitSize = 7; hitSize = 7;
@@ -961,9 +969,10 @@ public class UnitTypes implements ContentList{
range = 140f; range = 140f;
faceTarget = false; faceTarget = false;
armor = 3f; armor = 3f;
targetFlag = BlockFlag.factory; targetFlags = new BlockFlag[]{BlockFlag.factory, null};
commandLimit = 5; commandLimit = 5;
circleTarget = true; circleTarget = true;
ammoType = new ItemAmmoType(Items.graphite);
weapons.add(new Weapon(){{ weapons.add(new Weapon(){{
minShootVelocity = 0.75f; minShootVelocity = 0.75f;
@@ -999,8 +1008,10 @@ public class UnitTypes implements ContentList{
lowAltitude = true; lowAltitude = true;
armor = 5f; armor = 5f;
targetFlags = new BlockFlag[]{BlockFlag.launchPad, BlockFlag.storage, BlockFlag.battery, null};
engineOffset = 12f; engineOffset = 12f;
engineSize = 3f; engineSize = 3f;
ammoType = new ItemAmmoType(Items.graphite);
weapons.add(new Weapon("zenith-missiles"){{ weapons.add(new Weapon("zenith-missiles"){{
reload = 40f; reload = 40f;
@@ -1045,7 +1056,8 @@ public class UnitTypes implements ContentList{
engineOffset = 21; engineOffset = 21;
engineSize = 5.3f; engineSize = 5.3f;
hitSize = 46f; hitSize = 46f;
targetFlag = BlockFlag.battery; targetFlags = new BlockFlag[]{BlockFlag.generator, BlockFlag.core, null};
ammoType = new ItemAmmoType(Items.thorium);
BulletType missiles = new MissileBulletType(2.7f, 14){{ BulletType missiles = new MissileBulletType(2.7f, 14){{
width = 8f; width = 8f;
@@ -1120,15 +1132,16 @@ public class UnitTypes implements ContentList{
hitSize = 58f; hitSize = 58f;
destructibleWreck = false; destructibleWreck = false;
armor = 13f; armor = 13f;
targetFlag = BlockFlag.reactor; targetFlags = new BlockFlag[]{BlockFlag.reactor, BlockFlag.core, null};
ammoType = new ItemAmmoType(Items.thorium);
BulletType fragBullet = new FlakBulletType(4f, 5){{ BulletType fragBullet = new FlakBulletType(4f, 5){{
shootEffect = Fx.shootBig; shootEffect = Fx.shootBig;
ammoMultiplier = 4f; ammoMultiplier = 4f;
splashDamage = 50f; splashDamage = 60f;
splashDamageRadius = 25f; splashDamageRadius = 25f;
collidesGround = true; collidesGround = true;
lifetime = 38f; lifetime = 47f;
status = StatusEffects.blasted; status = StatusEffects.blasted;
statusDuration = 60f; statusDuration = 60f;
@@ -1148,12 +1161,12 @@ public class UnitTypes implements ContentList{
rotate = true; rotate = true;
bullet = new LaserBulletType(){{ bullet = new LaserBulletType(){{
damage = 100f; damage = 110f;
sideAngle = 20f; sideAngle = 20f;
sideWidth = 1.5f; sideWidth = 1.5f;
sideLength = 80f; sideLength = 80f;
width = 25f; width = 25f;
length = 200f; length = 230f;
shootEffect = Fx.shockwave; shootEffect = Fx.shockwave;
colors = new Color[]{Color.valueOf("ec7458aa"), Color.valueOf("ff9c5a"), Color.white}; colors = new Color[]{Color.valueOf("ec7458aa"), Color.valueOf("ff9c5a"), Color.white};
}}; }};
@@ -1200,7 +1213,7 @@ public class UnitTypes implements ContentList{
range = 50f; range = 50f;
isCounted = false; isCounted = false;
ammoType = AmmoTypes.powerLow; ammoType = new PowerAmmoType(500);
mineTier = 1; mineTier = 1;
mineSpeed = 2.5f; mineSpeed = 2.5f;
@@ -1221,7 +1234,7 @@ public class UnitTypes implements ContentList{
hitSize = 9f; hitSize = 9f;
lowAltitude = true; lowAltitude = true;
ammoType = AmmoTypes.power; ammoType = new PowerAmmoType(900);
mineTier = 2; mineTier = 2;
mineSpeed = 3.5f; mineSpeed = 3.5f;
@@ -1281,7 +1294,7 @@ public class UnitTypes implements ContentList{
buildSpeed = 2.6f; buildSpeed = 2.6f;
isCounted = false; isCounted = false;
ammoType = AmmoTypes.power; ammoType = new PowerAmmoType(1100);
weapons.add( weapons.add(
new Weapon("heal-weapon-mount"){{ new Weapon("heal-weapon-mount"){{
@@ -1333,9 +1346,9 @@ public class UnitTypes implements ContentList{
buildBeamOffset = 23; buildBeamOffset = 23;
range = 140f; range = 140f;
targetAir = false; targetAir = false;
targetFlag = BlockFlag.battery; targetFlags = new BlockFlag[]{BlockFlag.battery, BlockFlag.factory, null};
ammoType = AmmoTypes.powerHigh; ammoType = new PowerAmmoType(3000);
weapons.add( weapons.add(
new Weapon(){{ new Weapon(){{
@@ -1405,9 +1418,7 @@ public class UnitTypes implements ContentList{
commandLimit = 6; commandLimit = 6;
lowAltitude = true; lowAltitude = true;
buildBeamOffset = 43; buildBeamOffset = 43;
ammoCapacity = 1;
ammoCapacity = 1300;
ammoResupplyAmount = 20;
abilities.add(new ForceFieldAbility(140f, 4f, 7000f, 60f * 8), new RepairFieldAbility(130f, 60f * 2, 140f)); abilities.add(new ForceFieldAbility(140f, 4f, 7000f, 60f * 8), new RepairFieldAbility(130f, 60f * 2, 140f));
}}; }};
@@ -1475,6 +1486,7 @@ public class UnitTypes implements ContentList{
accel = 0.3f; accel = 0.3f;
rotateSpeed = 2.6f; rotateSpeed = 2.6f;
rotateShooting = false; rotateShooting = false;
ammoType = new ItemAmmoType(Items.graphite);
trailLength = 20; trailLength = 20;
trailX = 5.5f; trailX = 5.5f;
@@ -1518,6 +1530,7 @@ public class UnitTypes implements ContentList{
hitSize = 20f; hitSize = 20f;
armor = 7f; armor = 7f;
rotateShooting = false; rotateShooting = false;
ammoType = new ItemAmmoType(Items.graphite);
trailLength = 22; trailLength = 22;
trailX = 7f; trailX = 7f;
@@ -1581,6 +1594,7 @@ public class UnitTypes implements ContentList{
inaccuracy = 5f; inaccuracy = 5f;
velocityRnd = 0.1f; velocityRnd = 0.1f;
shootSound = Sounds.missile; shootSound = Sounds.missile;
ammoType = new ItemAmmoType(Items.thorium);
ejectEffect = Fx.none; ejectEffect = Fx.none;
bullet = new MissileBulletType(2.7f, 12){{ bullet = new MissileBulletType(2.7f, 12){{
@@ -1614,6 +1628,7 @@ public class UnitTypes implements ContentList{
accel = 0.2f; accel = 0.2f;
rotateSpeed = 1.3f; rotateSpeed = 1.3f;
rotateShooting = false; rotateShooting = false;
ammoType = new ItemAmmoType(Items.thorium);
trailLength = 50; trailLength = 50;
trailX = 18f; trailX = 18f;
@@ -1699,6 +1714,7 @@ public class UnitTypes implements ContentList{
accel = 0.19f; accel = 0.19f;
rotateSpeed = 0.9f; rotateSpeed = 0.9f;
rotateShooting = false; rotateShooting = false;
ammoType = new PowerAmmoType(4000);
float spawnTime = 60f * 15f; float spawnTime = 60f * 15f;
@@ -1756,6 +1772,7 @@ public class UnitTypes implements ContentList{
trailScl = 1.3f; trailScl = 1.3f;
rotateShooting = false; rotateShooting = false;
range = 100f; range = 100f;
ammoType = new PowerAmmoType(900);
armor = 3f; armor = 3f;
@@ -1780,6 +1797,7 @@ public class UnitTypes implements ContentList{
shots = 3; shots = 3;
shotDelay = 7f; shotDelay = 7f;
x = y = shootX = shootY = 0f; x = y = shootX = shootY = 0f;
shootSound = Sounds.mineDeploy;
bullet = new BasicBulletType(){{ bullet = new BasicBulletType(){{
sprite = "mine-bullet"; sprite = "mine-bullet";
@@ -1832,6 +1850,7 @@ public class UnitTypes implements ContentList{
trailX = 5.5f; trailX = 5.5f;
trailY = -4f; trailY = -4f;
trailScl = 1.9f; trailScl = 1.9f;
ammoType = new ItemAmmoType(Items.coal);
buildSpeed = 2f; buildSpeed = 2f;
@@ -1900,6 +1919,7 @@ public class UnitTypes implements ContentList{
hitSize = 20f; hitSize = 20f;
armor = 6f; armor = 6f;
rotateShooting = false; rotateShooting = false;
ammoType = new ItemAmmoType(Items.graphite);
trailLength = 23; trailLength = 23;
trailX = 9f; trailX = 9f;
@@ -2035,6 +2055,8 @@ public class UnitTypes implements ContentList{
accel = 0.2f; accel = 0.2f;
rotateSpeed = 1.4f; rotateSpeed = 1.4f;
rotateShooting = false; rotateShooting = false;
ammoType = new PowerAmmoType(3500);
ammoCapacity = 40;
//clip size is massive due to energy field //clip size is massive due to energy field
clipSize = 250f; clipSize = 250f;
@@ -2047,7 +2069,6 @@ public class UnitTypes implements ContentList{
buildSpeed = 3f; buildSpeed = 3f;
abilities.add(new EnergyFieldAbility(35f, 65f, 180f){{ abilities.add(new EnergyFieldAbility(35f, 65f, 180f){{
repair = 35f;
statusDuration = 60f * 6f; statusDuration = 60f * 6f;
maxTargets = 25; maxTargets = 25;
}}); }});
@@ -2079,6 +2100,7 @@ public class UnitTypes implements ContentList{
accel = 0.2f; accel = 0.2f;
rotateSpeed = 1.1f; rotateSpeed = 1.1f;
rotateShooting = false; rotateShooting = false;
ammoType = new PowerAmmoType(4500);
trailLength = 70; trailLength = 70;
trailX = 23f; trailX = 23f;
@@ -2113,7 +2135,7 @@ public class UnitTypes implements ContentList{
bullet = new ContinuousLaserBulletType(){{ bullet = new ContinuousLaserBulletType(){{
maxRange = 90f; maxRange = 90f;
damage = 26f; damage = 27f;
length = 95f; length = 95f;
hitEffect = Fx.hitMeltHeal; hitEffect = Fx.hitMeltHeal;
drawSize = 200f; drawSize = 200f;
@@ -2144,24 +2166,27 @@ public class UnitTypes implements ContentList{
x = 70f/4f; x = 70f/4f;
y = -26f/4f; y = -26f/4f;
reload = 70f; reload = 65f;
shake = 3f; shake = 3f;
rotateSpeed = 2f; rotateSpeed = 2f;
shadow = 30f; shadow = 30f;
shootY = 7f; shootY = 7f;
recoil = 4f; recoil = 4f;
cooldownTime = reload - 10f; cooldownTime = reload - 10f;
//TODO better sound
shootSound = Sounds.laser;
bullet = new EmpBulletType(){{ bullet = new EmpBulletType(){{
float rad = 100f; float rad = 100f;
scaleVelocity = true;
lightOpacity = 0.7f; lightOpacity = 0.7f;
unitDamageScl = 0.8f; unitDamageScl = 0.8f;
healPercent = 20f; healPercent = 20f;
timeIncrease = 3f; timeIncrease = 3f;
timeDuration = 60f * 20f; timeDuration = 60f * 20f;
powerDamageScl = 3f; powerDamageScl = 3f;
damage = 50; damage = 60;
hitColor = lightColor = Pal.heal; hitColor = lightColor = Pal.heal;
lightRadius = 70f; lightRadius = 70f;
clipSize = 250f; clipSize = 250f;
@@ -2177,11 +2202,12 @@ public class UnitTypes implements ContentList{
trailWidth = 6f; trailWidth = 6f;
trailColor = Pal.heal; trailColor = Pal.heal;
trailInterval = 3f; trailInterval = 3f;
splashDamage = 60f; splashDamage = 70f;
splashDamageRadius = rad; splashDamageRadius = rad;
hitShake = 4f; hitShake = 4f;
trailRotation = true; trailRotation = true;
status = StatusEffects.electrified; status = StatusEffects.electrified;
hitSound = Sounds.plasmaboom;
trailEffect = new Effect(16f, e -> { trailEffect = new Effect(16f, e -> {
color(Pal.heal); color(Pal.heal);

View File

@@ -34,7 +34,6 @@ public class ContentLoader{
new StatusEffects(), new StatusEffects(),
new Liquids(), new Liquids(),
new Bullets(), new Bullets(),
new AmmoTypes(),
new UnitTypes(), new UnitTypes(),
new Blocks(), new Blocks(),
new Loadouts(), new Loadouts(),

View File

@@ -36,7 +36,6 @@ import java.text.*;
import java.util.*; import java.util.*;
import static arc.Core.*; import static arc.Core.*;
import static mindustry.Vars.net;
import static mindustry.Vars.*; import static mindustry.Vars.*;
/** /**
@@ -195,14 +194,16 @@ public class Control implements ApplicationListener, Loadable{
}); });
Events.run(Trigger.newGame, () -> { Events.run(Trigger.newGame, () -> {
Building core = player.bestCore(); var core = player.bestCore();
if(core == null) return; if(core == null) return;
camera.position.set(core); camera.position.set(core);
player.set(core); player.set(core);
if(showLandAnimation){ if(!settings.getBool("skipcoreanimation")){
//delay player respawn so animation can play.
player.deathTimer = -80f;
//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();
@@ -211,14 +212,14 @@ public class Control implements ApplicationListener, Loadable{
} }
app.post(() -> ui.hudfrag.showLand()); app.post(() -> ui.hudfrag.showLand());
renderer.zoomIn(Fx.coreLand.lifetime); renderer.showLanding();
app.post(() -> Fx.coreLand.at(core.getX(), core.getY(), 0, core.block));
Time.run(Fx.coreLand.lifetime, () -> { Time.run(coreLandDuration, () -> {
Fx.launch.at(core); Fx.launch.at(core);
Effect.shake(5f, 5f, core); Effect.shake(5f, 5f, core);
core.thrusterTime = 1f;
if(state.isCampaign()){ if(state.isCampaign() && Vars.showSectorLandInfo){
ui.announce("[accent]" + state.rules.sector.name() + "\n" + ui.announce("[accent]" + state.rules.sector.name() + "\n" +
(state.rules.sector.info.resources.any() ? "[lightgray]" + bundle.get("sectors.resources") + "[white] " + (state.rules.sector.info.resources.any() ? "[lightgray]" + bundle.get("sectors.resources") + "[white] " +
state.rules.sector.info.resources.toString(" ", u -> u.emoji()) : ""), 5); state.rules.sector.info.resources.toString(" ", u -> u.emoji()) : ""), 5);
@@ -328,6 +329,7 @@ public class Control implements ApplicationListener, Loadable{
slot.load(); slot.load();
slot.setAutosave(true); slot.setAutosave(true);
state.rules.sector = sector; state.rules.sector = sector;
state.rules.cloudColor = sector.planet.landCloudColor;
//if there is no base, simulate a new game and place the right loadout at the spawn position //if there is no base, simulate a new game and place the right loadout at the spawn position
if(state.rules.defaultTeam.cores().isEmpty() || hadNoCore){ if(state.rules.defaultTeam.cores().isEmpty() || hadNoCore){
@@ -542,7 +544,12 @@ public class Control implements ApplicationListener, Loadable{
core.items.each((i, a) -> i.unlock()); core.items.each((i, a) -> i.unlock());
} }
if(Core.input.keyTap(Binding.pause) && !scene.hasDialog() && !scene.hasKeyboard() && !ui.restart.isShown() && (state.is(State.paused) || state.is(State.playing))){ //cannot launch while paused
if(state.is(State.paused) && renderer.isCutscene()){
state.set(State.playing);
}
if(Core.input.keyTap(Binding.pause) && !renderer.isCutscene() && !scene.hasDialog() && !scene.hasKeyboard() && !ui.restart.isShown() && (state.is(State.paused) || state.is(State.playing))){
state.set(state.is(State.playing) ? State.paused : State.playing); state.set(state.is(State.playing) ? State.paused : State.playing);
} }

View File

@@ -49,6 +49,7 @@ public class Logic implements ApplicationListener{
BlockPlan b = it.next(); BlockPlan b = it.next();
Block block = content.block(b.block); Block block = content.block(b.block);
if(event.tile.block().bounds(event.tile.x, event.tile.y, Tmp.r1).overlaps(block.bounds(b.x, b.y, Tmp.r2))){ if(event.tile.block().bounds(event.tile.x, event.tile.y, Tmp.r1).overlaps(block.bounds(b.x, b.y, Tmp.r2))){
b.removed = true;
it.remove(); it.remove();
} }
} }
@@ -128,25 +129,7 @@ public class Logic implements ApplicationListener{
Events.on(SectorCaptureEvent.class, e -> { Events.on(SectorCaptureEvent.class, e -> {
if(!net.client() && e.sector == state.getSector() && e.sector.isBeingPlayed()){ if(!net.client() && e.sector == state.getSector() && e.sector.isBeingPlayed()){
for(Tile tile : world.tiles){ state.rules.waveTeam.data().destroyToDerelict();
//convert all blocks to neutral, randomly killing them
if(tile.isCenter() && tile.build != null && tile.build.team == state.rules.waveTeam){
Building b = tile.build;
Call.setTeam(b, Team.derelict);
Time.run(Mathf.random(0f, 60f * 6f), () -> {
if(Mathf.chance(0.25)){
b.kill();
}
});
}
}
//kill all units
Groups.unit.each(u -> {
if(u.team == state.rules.waveTeam){
Time.run(Mathf.random(0f, 60f * 5f), u::kill);
}
});
} }
}); });
@@ -162,6 +145,12 @@ public class Logic implements ApplicationListener{
} }
}); });
//listen to core changes; if all cores have been destroyed, set to derelict.
Events.on(CoreChangeEvent.class, e -> Core.app.post(() -> {
if(state.rules.cleanupDeadTeams && state.rules.pvp && !e.core.isAdded() && e.core.team != Team.derelict && e.core.team.cores().isEmpty()){
e.core.team.data().destroyToDerelict();
}
}));
} }
/** Adds starting items, resets wave time, and sets state to playing. */ /** Adds starting items, resets wave time, and sets state to playing. */
@@ -247,11 +236,11 @@ public class Logic implements ApplicationListener{
Events.fire(new GameOverEvent(state.rules.waveTeam)); Events.fire(new GameOverEvent(state.rules.waveTeam));
}else if(state.rules.attackMode){ }else if(state.rules.attackMode){
//count # of teams alive //count # of teams alive
int countAlive = state.teams.getActive().count(TeamData::hasCore); int countAlive = state.teams.getActive().count(t -> t.hasCore() && t.team != Team.derelict);
if((countAlive <= 1 || (!state.rules.pvp && state.rules.defaultTeam.core() == null)) && !state.gameOver){ if((countAlive <= 1 || (!state.rules.pvp && state.rules.defaultTeam.core() == null)) && !state.gameOver){
//find team that won //find team that won
TeamData left = state.teams.getActive().find(TeamData::hasCore); TeamData left = state.teams.getActive().find(t -> t.hasCore() && t.team != Team.derelict);
Events.fire(new GameOverEvent(left == null ? Team.derelict : left.team)); Events.fire(new GameOverEvent(left == null ? Team.derelict : left.team));
state.gameOver = true; state.gameOver = true;
} }

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