Merge branch 'master' into patch-1
This commit is contained in:
Binary file not shown.
|
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 5.5 KiB |
@@ -46,6 +46,7 @@ newgame = New Game
|
||||
none = <none>
|
||||
minimap = Minimap
|
||||
close = Close
|
||||
website = Website
|
||||
quit = Quit
|
||||
maps = Maps
|
||||
continue = Continue
|
||||
@@ -158,7 +159,7 @@ openlink = Open Link
|
||||
copylink = Copy Link
|
||||
back = Back
|
||||
classic.export = Export Classic Data
|
||||
classic.export.text = Classic (v3.5 build 40) save or map data has been detected. Would you like to export these saves to your phone's home folder, for use in the Mindustry Classic app?
|
||||
classic.export.text = [accent]Mindustry[] has just had a major update.\nClassic (v3.5 build 40) save or map data has been detected. Would you like to export these saves to your phone's home folder, for use in the Mindustry Classic app?
|
||||
quit.confirm = Are you sure you want to quit?
|
||||
quit.confirm.tutorial = Are you sure you know what you're doing?\nThe tutorial can be re-taken in[accent] Settings->Game->Re-Take Tutorial.[]
|
||||
loading = [accent]Loading...
|
||||
@@ -514,13 +515,14 @@ setting.lasers.name = Show Power Lasers
|
||||
setting.pixelate.name = Pixelate[lightgray] (disables animations)
|
||||
setting.minimap.name = Show Minimap
|
||||
setting.musicvol.name = Music Volume
|
||||
setting.ambientvol.name = Ambient Volume
|
||||
setting.mutemusic.name = Mute Music
|
||||
setting.sfxvol.name = SFX Volume
|
||||
setting.mutesound.name = Mute Sound
|
||||
setting.crashreport.name = Send Anonymous Crash Reports
|
||||
setting.chatopacity.name = Chat Opacity
|
||||
setting.playerchat.name = Display In-Game Chat
|
||||
uiscale.reset = UI scale has been changed.\nPress "OK" to confirm this scale.\n[scarlet]Reverting and exiting in[accent] {0}[] settings...
|
||||
uiscale.reset = UI scale has been changed.\nPress "OK" to confirm this scale.\n[scarlet]Reverting and exiting in[accent] {0}[] seconds...
|
||||
uiscale.cancel = Cancel & Exit
|
||||
setting.bloom.name = Bloom
|
||||
keybind.title = Rebind Keys
|
||||
@@ -873,7 +875,7 @@ tutorial.drill.mobile = Mining manually is inefficient.\n[accent]Drills []can mi
|
||||
tutorial.blockinfo = Each block has different stats. Each drill can only mine certain ores.\nTo check a block's info and stats,[accent] tap the "?" button while selecting it in the build menu.[]\n\n[accent]Access the Mechanical Drill's stats now.[]
|
||||
tutorial.conveyor = [accent]Conveyors[] are used to transport items to the core.\nMake a line of conveyors from the drill to the core.\n[accent]Hold down the mouse to place in a line.[]\nHold[accent] CTRL[] while selecting a line to place diagonally.\n\n[accent]{0}/{1} conveyors placed in line\n[accent]0/1 items delivered
|
||||
tutorial.conveyor.mobile = [accent]Conveyors[] are used to transport items to the core.\nMake a line of conveyors from the drill to the core.\n[accent] Place in a line by holding down your finger for a few seconds[] and dragging in a direction.\n\n[accent]{0}/{1} conveyors placed in line\n[accent]0/1 items delivered
|
||||
tutorial.turret = Defensive structures must be built to repel the[lightgray] enemy[].\nBuild a[accent] duo turret[] near your base.
|
||||
tutorial.turret = Once an item enters your core, it can be used for building.\nKeep in mind that not all items can be used for building.\nItems that are not used for building, such as[accent] coal[] or[accent] scrap[], cannot be put into the core.\nDefensive structures must be built to repel the[lightgray] enemy[].\nBuild a[accent] duo turret[] near your base.
|
||||
tutorial.drillturret = Duo turrets require[accent] copper ammo []to shoot.\nPlace a drill near the turret.\nLead conveyors into the turret to supply it with copper.\n\n[accent]Ammo delivered: 0/1
|
||||
tutorial.pause = During battle, you are able to[accent] pause the game.[]\nYou may queue buildings while paused.\n\n[accent]Press space to pause.
|
||||
tutorial.pause.mobile = During battle, you are able to[accent] pause the game.[]\nYou may queue buildings while paused.\n\n[accent]Press this button in the top left to pause.
|
||||
|
||||
@@ -4,15 +4,15 @@ contributors = Übersetzer und Mitwirkende
|
||||
discord = Trete dem Mindustry Discord bei!
|
||||
link.discord.description = Der offizielle Mindustry Discord Chatroom
|
||||
link.github.description = Quellcode des Spiels
|
||||
link.changelog.description = List of update changes
|
||||
link.changelog.description = Liste von Änderungen
|
||||
link.dev-builds.description = Entwicklungs-Builds (instabil)
|
||||
link.trello.description = Offizielles Trello Board für geplante Features
|
||||
link.itch.io.description = itch.io Seite mit Downloads und der Web-Version des Spiels
|
||||
link.google-play.description = Google Play Store Seite
|
||||
link.wiki.description = Offizelles Mindustry Wiki
|
||||
linkfail = Fehler beim Öffnen des Links!\nDie URL wurde in die Zwischenablage kopiert.
|
||||
screenshot = Screenshot saved to {0}
|
||||
screenshot.invalid = Map too large, potentially not enough memory for screenshot.
|
||||
screenshot = Screenshot gespeichert nach {0}
|
||||
screenshot.invalid = Karte zu groß! Eventuell nicht ausreichend Arbeitsspeicher für Screenshot.
|
||||
gameover = Der Kern wurde zerstört.
|
||||
gameover.pvp = Das[accent] {0}[] Team ist siegreich!
|
||||
highscore = [YELLOW] Neuer Highscore!
|
||||
@@ -22,12 +22,12 @@ stat.built = Gebäude Gebaut:[accent] {0}
|
||||
stat.destroyed = Gebäude Zerstört:[accent] {0}
|
||||
stat.deconstructed = Gebäude Abgebaut:[accent] {0}
|
||||
stat.delivered = Resources Launched:
|
||||
stat.rank = Final Rank: [accent]{0}
|
||||
placeline = You have selected a block.\nYou can[accent] place in a line[] by[accent] holding down your finger for a few seconds[] and dragging in a direction.\nTry it.
|
||||
removearea = You have selected removal mode.\nYou can[accent] remove blocks in a rectangle[] by[accent] holding down your finger for a few seconds[] and dragging.\nTry it.
|
||||
stat.rank = Finaler Rang: [accent]{0}
|
||||
placeline = Du hast einen Block ausgewählt.\nDu kannst[accent] davon eine Reihe bauen,[] indem du[accent] wenige Sekunden mit einem Finger drückst[] und ihn in eine Richtung ziehst.\nVersuch es.
|
||||
removearea = Du hast den Zerstörungs Modus ausgewählt.\nDu kannst[accent] Blöcke im Rechteck zerstören,[] indem du[accent] wenige Sekunden mit einem Finger drückst[] und ihn ziehst.\nTry it.
|
||||
launcheditems = [accent]Launched Items
|
||||
map.delete = Bist du sicher, dass du die Karte "[accent]{0}[]" löschen möchtest?
|
||||
level.highscore = High Score: [accent]{0}
|
||||
level.highscore = Highscore: [accent]{0}
|
||||
level.select = Level Auswahl
|
||||
level.mode = Spielmodus:
|
||||
showagain = Nächstes mal nicht mehr anzeigen
|
||||
@@ -49,10 +49,10 @@ continue = Weiter
|
||||
maps.none = [LIGHT_GRAY]Keine Karten gefunden!
|
||||
about.button = Info
|
||||
name = Name:
|
||||
noname = Pick a[accent] player name[] first.
|
||||
noname = Wähle zuerst einen[accent] Spielernamen[].
|
||||
filename = Dateiname:
|
||||
unlocked = Neuen Block freigeschaltet!
|
||||
completed = [accent]Completed
|
||||
completed = [accent]Abgeschlossen
|
||||
techtree = Tech Tree
|
||||
research.list = [LIGHT_GRAY]Forschung:
|
||||
research = Forschung
|
||||
@@ -67,14 +67,14 @@ server.kicked.serverOutdated = Veralteter Server! Bitte den Host um ein Update!
|
||||
server.kicked.banned = Du wurdest vom Server verbannt.
|
||||
server.kicked.recentKick = Du wurdest gerade gekickt.\nWarte bevor du dich wieder verbindest.
|
||||
server.kicked.nameInUse = Es ist bereits ein Spieler \nmit diesem Namen auf dem Server.
|
||||
server.kicked.nameEmpty = Dein Name muss zumindest einen Buchstaben oder eine Zahl enthalten.
|
||||
server.kicked.nameEmpty = Dein Name muss mindestens einen Buchstaben oder eine Zahl enthalten.
|
||||
server.kicked.idInUse = Du bist bereits auf dem Server! Anmeldungen mit zwei Accounts sind nicht gestattet.
|
||||
server.kicked.customClient = Der Server akzeptiert keine Custom Builds von Mindustry. Lade dir die offizielle Version herunter.
|
||||
server.kicked.gameover = Game over!
|
||||
host.info = Der [accent]host[] Knopf startet einen Server auf den Ports [scarlet]6567[] und [scarlet]6568.[]\nJeder im gleichen [LIGHT_GRAY]W-Lan oder lokalem Netzwerk[] sollte deinen Server in seiner Server Liste sehen können.\n\nWenn du Leuten die Verbindung über IP ermöglichen willst, benötigst du [accent]Port-Forwarding[].\n\n[LIGHT_GRAY]Hinweis: Falls es Probleme mit der Verbindung im Netzwerk gibt, stell sicher, dass Mindustry in deinen Firewall Einstellungen Zugriff auf das lokale Netzwerk hat.
|
||||
join.info = Hier kannst du eine [accent]Server IP[] eingeben um dich zu verbinden oder Server im [accent]lokalem Netzwerk[] entdecken und dich mit ihnen verbinden.\nSowohl Spielen über das lokale Netzwerk als auch Spielen über das Internet werden unterstützt.\n\n[LIGHT_GRAY]Hinweis: Es gibt keine globale Server Liste; Wenn du dich mit jemand per IP verbinden willst musst du den Host nach seiner IP fragen.
|
||||
hostserver = Server hosten
|
||||
hostserver.mobile = Host\nGame
|
||||
hostserver.mobile = Host\nSpiel
|
||||
host = Host
|
||||
hosting = [accent] Server wird geöffnet...
|
||||
hosts.refresh = Aktualisieren
|
||||
@@ -144,12 +144,12 @@ save.wave = Welle: {0}
|
||||
save.difficulty = Schwierigkeitsgrad: {0}
|
||||
save.date = Zuletzt gespeichert: {0}
|
||||
save.playtime = Spielzeit: {0}
|
||||
warning = Warning.
|
||||
warning = Warnung.
|
||||
confirm = Bestätigen
|
||||
delete = Löschen
|
||||
ok = OK
|
||||
open = Öffnen
|
||||
customize = Customize
|
||||
customize = Anpassen
|
||||
cancel = Abbruch
|
||||
openlink = Link öffnen
|
||||
copylink = Kopiere Link
|
||||
@@ -159,7 +159,7 @@ loading = [accent]Wird geladen ...
|
||||
saving = [accent]Speichere...
|
||||
wave = [accent]Welle {0}
|
||||
wave.waiting = Welle in {0}
|
||||
wave.waveInProgress = [LIGHT_GRAY]Wave in progress
|
||||
wave.waveInProgress = [LIGHT_GRAY]Welle im Gange
|
||||
waiting = Warten...
|
||||
waiting.players = Warte auf Spieler...
|
||||
wave.enemies = [LIGHT_GRAY]{0} Gegner verbleiben
|
||||
@@ -173,8 +173,8 @@ map.delete.confirm = Bist du sicher, dass du diese Karte löschen willst? Die Ak
|
||||
map.random = [accent]Zufällige Karte
|
||||
map.nospawn = Diese Karte hat keine Kerne in denen die Spieler beginnen können! Füge einen [ROYAL]blue[] Kern zu dieser Karte im Editor hinzu.
|
||||
map.nospawn.pvp = Diese Karte hat keine gegnerischen Kerne wo Gegner starten könnten! Füge über den Editor [SCARLET] rote[] Kerne zu dieser Karte hinzu.
|
||||
map.nospawn.attack = This map does not have any enemy cores for player to attack! Add[SCARLET] red[] cores to this map in the editor.
|
||||
map.invalid = Fehler beim Laden der Karte: Beschädigtes oder invalide Karten Datei.
|
||||
map.nospawn.attack = Diese Karte hat keine gengnerischen Kerne, die Spieler angreifen können! Füge über den Editor [SCARLET] rote[] Kerne zu dieser Karte hinzu.
|
||||
map.invalid = Fehler beim Laden der Karte: Beschädigtes oder ungültige Karten Datei.
|
||||
editor.brush = Pinsel
|
||||
editor.openin = Öffne im Editor
|
||||
editor.oregen = Erze generieren
|
||||
@@ -183,17 +183,17 @@ editor.mapinfo = Karten Info
|
||||
editor.author = Autor:
|
||||
editor.description = Beschreibung:
|
||||
editor.waves = Wellen:
|
||||
editor.rules = Rules:
|
||||
editor.rules = Regeln:
|
||||
editor.generation = Generation:
|
||||
editor.ingame = Edit In-Game
|
||||
editor.newmap = New Map
|
||||
editor.ingame = In-Game Bearbeiten
|
||||
editor.newmap = Neue Karte
|
||||
waves.title = Wellen
|
||||
waves.remove = Entfernen
|
||||
waves.never = <never>
|
||||
waves.every = every
|
||||
waves.never = <nie>
|
||||
waves.every = alle
|
||||
waves.waves = Welle(n)
|
||||
waves.perspawn = per spawn
|
||||
waves.to = to
|
||||
waves.perspawn = per Spawn
|
||||
waves.to = bis
|
||||
waves.boss = Boss
|
||||
waves.preview = Vorschau
|
||||
waves.edit = Bearbeiten...
|
||||
@@ -201,7 +201,7 @@ waves.copy = Aus der Zwischenablage kopieren
|
||||
waves.load = Aus der Zwischenablage laden
|
||||
waves.invalid = Ungültige Wellen in der Zwischenablage.
|
||||
waves.copied = Wellen kopiert.
|
||||
waves.none = No enemies defined.\nNote that empty wave layouts will automatically be replaced with the default layout.
|
||||
waves.none = Keine Gegner definiert.\nInfo: Leere Wellen Entwürfe werden automatisch mit dem standard Entwurf ersetzt.
|
||||
editor.default = [LIGHT_GRAY]<Default>
|
||||
edit = Bearbeiten...
|
||||
editor.name = Name:
|
||||
@@ -210,12 +210,12 @@ editor.removeunit = Remove Unit
|
||||
editor.teams = Teams
|
||||
editor.errorload = Fehler beim laden der Datei:\n[accent]{0}
|
||||
editor.errorsave = Fehler beim speichern der Datei:\n[accent]{0}
|
||||
editor.errorimage = That's an image, not a map. Don't go around changing extensions expecting it to work.\n\nIf you want to import a legacy map, use the 'import legacy map' button in the editor.
|
||||
editor.errorlegacy = This map is too old, and uses a legacy map format that is no longer supported.
|
||||
editor.errorheader = This map file is either not valid or corrupt.
|
||||
editor.errorimage = Das ist ein Bild, keine Karte. Wechsel nicht den Dateityp und erwarte, dass es funktioniert.\n\nWenn du eine alte Karte importieren möchtest, benutze den 'Importiere Terrain Bild' Knopf in dem Editor.
|
||||
editor.errorlegacy = Diese Karte ist zu alt und benutzt ein veraltetes Karten Format, das nicht mehr unterstützt wird.
|
||||
editor.errorheader = Diese Karte ist entweder nicht gültig oder beschädigt.
|
||||
editor.errorname = Karte hat keinen Namen.
|
||||
editor.update = Update
|
||||
editor.randomize = Randomize
|
||||
editor.randomize = Zufällig Anordnen
|
||||
editor.apply = Anwenden
|
||||
editor.generate = Generieren
|
||||
editor.resize = Grösse\nanpassen
|
||||
@@ -245,35 +245,35 @@ editor.mapname = Karten Name
|
||||
editor.overwrite = [accent] Warnung! Dies überschreibt eine vorhandene Karte.
|
||||
editor.overwrite.confirm = [scarlet]Warnung![] Eine Karte mit diesem Namen existiert bereits. Bist du sicher, dass du sie überschreiben willst?
|
||||
editor.selectmap = Wähle eine Karte zum Laden:
|
||||
toolmode.replace = Replace
|
||||
toolmode.replace.description = Draws only on solid blocks.
|
||||
toolmode.replaceall = Replace All
|
||||
toolmode.replaceall.description = Replace all blocks in map.
|
||||
toolmode.orthogonal = Orthogonal
|
||||
toolmode.orthogonal.description = Draws only orthogonal lines.
|
||||
toolmode.square = Square
|
||||
toolmode.square.description = Square brush.
|
||||
toolmode.eraseores = Erase Ores
|
||||
toolmode.eraseores.description = Erase only ores.
|
||||
toolmode.replace = Ersetzen
|
||||
toolmode.replace.description = Zeichnet nur auf festen Blöcken.
|
||||
toolmode.replaceall = Alles Ersetzen
|
||||
toolmode.replaceall.description = Alle Blöcke auf der Karte ersetzen.
|
||||
toolmode.orthogonal = Rechtwinkelig
|
||||
toolmode.orthogonal.description = Zeichnet nur rechtwinkelige Linien.
|
||||
toolmode.square = Quadrat
|
||||
toolmode.square.description = Quadrat Pinsel.
|
||||
toolmode.eraseores = Erze löschen
|
||||
toolmode.eraseores.description = Löscht nur Erze.
|
||||
toolmode.fillteams = Fill Teams
|
||||
toolmode.fillteams.description = Fill teams instead of blocks.
|
||||
toolmode.drawteams = Draw Teams
|
||||
toolmode.drawteams.description = Draw teams instead of blocks.
|
||||
filters.empty = [LIGHT_GRAY]No filters! Add one with the button below.
|
||||
filters.empty = [LIGHT_GRAY]Keine Filter! Füge einen mit dem unteren Knopf hinzu.
|
||||
filter.distort = Distort
|
||||
filter.noise = Noise
|
||||
filter.median = Median
|
||||
filter.blend = Blend
|
||||
filter.defaultores = Default Ores
|
||||
filter.defaultores = Standard Erze
|
||||
filter.ore = Erz
|
||||
filter.rivernoise = River Noise
|
||||
filter.mirror = Mirror
|
||||
filter.clear = Clear
|
||||
filter.clear = Löschen
|
||||
filter.option.ignore = Ignore
|
||||
filter.scatter = Scatter
|
||||
filter.terrain = Terrain
|
||||
filter.option.scale = Scale
|
||||
filter.option.chance = Chance
|
||||
filter.option.chance = Wahrscheinlichkeit
|
||||
filter.option.mag = Magnitude
|
||||
filter.option.threshold = Threshold
|
||||
filter.option.circle-scale = Circle Scale
|
||||
@@ -293,7 +293,7 @@ width = Breite:
|
||||
height = Höhe:
|
||||
menu = Menü
|
||||
play = Spielen
|
||||
campaign = Campaign
|
||||
campaign = Kampagne
|
||||
load = Laden
|
||||
save = Speichern
|
||||
fps = FPS: {0}
|
||||
@@ -383,14 +383,14 @@ no = Nein
|
||||
info.title = [accent]Info
|
||||
error.title = [crimson] Ein Fehler ist aufgetreten
|
||||
error.crashtitle = Ein Fehler ist aufgetreten!
|
||||
attackpvponly = [scarlet]Only available in Attack/PvP modes
|
||||
attackpvponly = [scarlet]Nur in Angriff oder PvP Modus verfügbar.
|
||||
blocks.input = Input
|
||||
blocks.output = Output
|
||||
blocks.booster = Booster
|
||||
block.unknown = [LIGHT_GRAY]???
|
||||
blocks.powercapacity = Kapazität
|
||||
blocks.powershot = Stromverbrauch/Schuss
|
||||
blocks.damage = Damage
|
||||
blocks.damage = Schaden
|
||||
blocks.targetsair = Visiert Luft Einheiten an
|
||||
blocks.targetsground = Visiert Boden Einheiten an
|
||||
blocks.itemsmoved = Bewegungsgeschwindigkeit
|
||||
@@ -434,7 +434,7 @@ bullet.incendiary = [stat]entzündend
|
||||
bullet.homing = [stat]verfolgend
|
||||
bullet.shock = [stat]schock
|
||||
bullet.frag = [stat]explosiv
|
||||
bullet.knockback = [stat]{0}[lightgray] knockback
|
||||
bullet.knockback = [stat]{0}[lightgray] zurückstoßend
|
||||
bullet.freezing = [stat]gefrierend
|
||||
bullet.tarred = [stat]geteert
|
||||
bullet.multiplier = [stat]{0}[lightgray]x ammo multiplier
|
||||
|
||||
955
core/assets/bundles/bundle_et.properties
Normal file
955
core/assets/bundles/bundle_et.properties
Normal file
@@ -0,0 +1,955 @@
|
||||
credits.text = [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[] poolt loodud
|
||||
credits = Tegijad
|
||||
contributors = Tõlkijad ja panustajad
|
||||
discord = Liituge Mindustry Discordi serveriga!
|
||||
link.discord.description = Mindustry ametlik Discordi server
|
||||
link.github.description = Github mängu koodiga
|
||||
link.dev-builds.description = Selle mängu pooleli olevad versioonid
|
||||
link.trello.description = Ametlik Trello leht plaanitud funktsioonide listiga
|
||||
link.itch.io.description = itch.io leht selle mängu arvuti versioonidega
|
||||
link.google-play.description = Mindustry Google play's
|
||||
link.wiki.description = Ametlik Mindustry wiki
|
||||
linkfail = Linki ebaõnnestus avada!\nAadress kopeeriti
|
||||
screenshot = Kuvatõmme salvestati {0}
|
||||
screenshot.invalid = Maailm liiga suur, tõenäoliselt pole piisavalt mälu salvestamiseks
|
||||
gameover = Mäng Läbi
|
||||
gameover.pvp = [accent] {0}[] tiim võitis!
|
||||
highscore = [accent]Uus rekord!
|
||||
|
||||
stat.wave = Raund:[accent] {0}
|
||||
stat.enemiesDestroyed = Vaenlasi hävitatud:[accent] {0}
|
||||
stat.built = Ehitisi ehitatud:[accent] {0}
|
||||
stat.destroyed = Ehitisi hävitatud:[accent] {0}
|
||||
stat.deconstructed = Ehitisi lahtivõetud:[accent] {0}
|
||||
stat.delivered = Materjale kaasa võetud:
|
||||
stat.rank = Lõplik Hinne: [accent]{0}
|
||||
|
||||
placeline = Sa valisid ehitise\nSa saad[accent] panna neid sirges reas[] hoides näpuga all ja, siis viibates mõnes suunas.\n\n[scarlet] TEE SEDA
|
||||
removearea = Sa valisid hävitamise funktsiooni.\nsa saad[accent] hävitada[]hoides oma sõrme all mõne sekundi ja, siis viibates mõnele poole.\n\n[scarlet]TEE SEDA
|
||||
|
||||
launcheditems = [accent]Kaasa võetud materjalid
|
||||
map.delete = Kas oled kindel, et soovid kustutada "[accent]{0}[]".
|
||||
level.highscore = Rekord: [accent]{0}
|
||||
level.select = Taseme valik
|
||||
level.mode = Mänguviisi valik:
|
||||
showagain = Ära näita järgmine kord
|
||||
coreattack = < TUUMA RÜNNATAKSE! >\nMAYDAY MAYDAY
|
||||
nearpoint = [[ [scarlet]LAHKU VAENLASTE LANGEMISE ALALT VIIVITAMATA[] ]\npeatselt hävinemine
|
||||
outofbounds = [[ PIIRIDEST VÄLJAS ]\n[]enese hävitamine {0}
|
||||
database = Tuuma Andmebaas
|
||||
savegame = Salvesta
|
||||
loadgame = Lae Mäng
|
||||
joingame = Liitu
|
||||
addplayers = Lisa/Eemalda Mängijaid
|
||||
customgame = Kohandatud Mäng
|
||||
newgame = Uus Mäng
|
||||
none = <puudub>
|
||||
minimap = Kaart
|
||||
close = Sule
|
||||
quit = Lahku
|
||||
maps = Maailmad
|
||||
continue = Jätka
|
||||
maps.none = [LIGHT_GRAY]Ühtegi maailma ei leitud!
|
||||
about.button = Info
|
||||
name = Nimi:
|
||||
noname = Valige[accent] nimi[] kõigepealt.
|
||||
filename = Faili Nimi:
|
||||
unlocked = Said lahti uue sisu!
|
||||
completed = [accent]Tehtud
|
||||
techtree = Uurimuspuu
|
||||
research.list = [LIGHT_GRAY]Uuring:
|
||||
research = Uuri
|
||||
researched = [LIGHT_GRAY]{0} uuritud.
|
||||
players = {0} mängijat mängus
|
||||
players.single = {0} mängija mängus
|
||||
server.closing = [accent]Serveri sulgemine...
|
||||
server.kicked.kick = Sind visati serverist välja!
|
||||
server.kicked.serverClose = Server suletud.
|
||||
server.kicked.clientOutdated = Aegunud versioon! Uuenda oma mängu!
|
||||
server.kicked.serverOutdated = Aegunud server! Palu omanikul serverit uuendada!
|
||||
server.kicked.banned = Sul on keeld seal mängida.
|
||||
server.kicked.recentKick = Sind visati hiljuti välja.\nOota natuke enne uuesti proovimist.
|
||||
server.kicked.nameInUse = Keegi sellise nimega\non juba seal serveris.
|
||||
server.kicked.nameEmpty = Sinu valitud nimi ei sobi.
|
||||
server.kicked.idInUse = Sa juba oled selles serveris! Kahe kasutajaga liitumine on keelatud.
|
||||
server.kicked.customClient = See server ei luba modifitseeritud mängu versioone. Lae alla ametlik versioon.
|
||||
server.kicked.gameover = Mäng läbi!
|
||||
host.info = [accent]Hosti[] nupp avab serveri pordil [scarlet]6567[]. \nIgaüks samas [LIGHT_GRAY]wifis või kohtvõrgus[] peaks nägema sinu serverit enda serverite nimekirjas.\n\nKui sa tahad, et inimesed saaksid kõikjalt IP aadressi abil liituda, [accent]portide edasisuunamine[] on vajalik.\n\n[LIGHT_GRAY]Märkus: Kui kellelgi on probleeme sinu LAN-mänguga liitumisel, siis tee kindlaks, et sul on Mindustry lubatud oma kohtvõrgus tulemüüri seadetes.
|
||||
join.info = Siin saad lisada [accent]serveri IP aadressi[] millega liituda, või leida [accent]kohtvõrgu[] servereid millega liituda.\nNii LAN kui ka WAN mitmikmängu toetatakse.\n\n[LIGHT_GRAY]Märkus: Ei ole olemas automaatset üldist serverite listi; kui sa tahad kellegagi liituda IP-aadressiga on sul vaja omaniku IP-aadressi.
|
||||
hostserver = Hosti Mäng
|
||||
hostserver.mobile = Hosti\nMäng
|
||||
host = Hosti
|
||||
hosting = [accent]Serveri avamine...
|
||||
hosts.refresh = Värskenda
|
||||
hosts.discovering = LAN mängude otsimine
|
||||
server.refreshing = Serveri värskendamine
|
||||
hosts.none = [lightgray]Kohalikke mänge ei leitud!
|
||||
host.invalid = [scarlet]Serveriga ei saa ühendust.
|
||||
trace = Jälita mängijat
|
||||
trace.playername = Mängija nimi: [accent]{0}
|
||||
trace.ip = IP: [accent]{0}
|
||||
trace.id = Isiklik ID: [accent]{0}
|
||||
trace.mobile = Telefoni Versioon: [accent]{0}
|
||||
trace.modclient = Modifitseeritud: [accent]{0}
|
||||
invalidid = Kehtetu kasutaja ID! Saada veateade.
|
||||
server.bans = Keelatud mängijad
|
||||
server.bans.none = Keelatud mängijaid ei leitud!
|
||||
server.admins = Administraatorid
|
||||
server.admins.none = Administraatoreid ei leitud!
|
||||
server.add = Lisa Server
|
||||
server.delete = Oled kindel, et soovid serveri kustutada?
|
||||
server.hostname = Omanik: {0}
|
||||
server.edit = Kohanda Serverit
|
||||
server.outdated = [crimson]Aegunud Server![]
|
||||
server.outdated.client = [crimson]Aegunud Versioon[]
|
||||
server.version = [lightgray]Versioon: {0} {1}
|
||||
server.custombuild = [yellow]Kohandatud Versioon
|
||||
confirmban = Oled kindel, et soovid mängjale anda keelu siin mängida?
|
||||
confirmkick = Oled kindel, et soovid mängijat välja visata?
|
||||
confirmunban = Oled kindel, et soovid sellel mängijal siin uuesti lubada mängida?
|
||||
confirmadmin = Oled kindel, et soovid mängijale adminstraatori õigused anda?
|
||||
confirmunadmin = Oled kindel, et soovid mängijalt adminstraatori õigused ära võtta?
|
||||
joingame.title = Liitu Mänguga
|
||||
joingame.ip = Aadress:
|
||||
disconnect = Lahti ühendatud.
|
||||
disconnect.data = Ebaõnnestus maailma andmeid alla laadida!
|
||||
connecting = [accent]Ühendamine...
|
||||
connecting.data = [accent]Laen maailma andmeid alla...
|
||||
server.port = Port:
|
||||
server.addressinuse = Aadress on juba kasutuses!
|
||||
server.invalidport = Kehtetu pordi number!
|
||||
server.error = [crimson]Viga serverit käivitades: [accent]{0}
|
||||
save.old = See salvestus on mõeldud mängu vanemale versioonile.\n\n[LIGHT_GRAY]Vanemate salvestuste kasutamist lisatakse kui mängu versioon täielik 4.0 välja tuleb.
|
||||
save.new = Uus Salvestus
|
||||
save.overwrite = Oled kindel, et soovid selle salvestuse asendada?
|
||||
overwrite = Asenda
|
||||
save.none = Salvestisi ei leitud!
|
||||
saveload = [accent]Salvestamine...
|
||||
savefail = Salvestamine ebaõnnestus!
|
||||
save.delete.confirm = Oled kindel, et seda kustutada soovid??
|
||||
save.delete = Kustuta
|
||||
save.export = Ekspordi
|
||||
save.import.invalid = [accent]See salvestus on kehtetu!
|
||||
save.import.fail = [crimson]Ebaõnnestus salvestust importida: [accent]{0}
|
||||
save.export.fail = [crimson]Ebaõnnestus salvestust eksportida: [accent]{0}
|
||||
save.import = Impordi Salvestus
|
||||
save.newslot = Salvestuse Nimi:
|
||||
save.rename = Nimeta ümber
|
||||
save.rename.text = Uus nimi:
|
||||
selectslot = Vali salvestus.
|
||||
slot = [accent]Koht {0}
|
||||
save.corrupted = [accent]See salvestus on ära rikutud!\nKui sa just uuendasid mängu, siis on probleem tõenäoliselt kasutatavate salvestuste formaadi muutus ja [scarlet]mitte[] koodi viga.
|
||||
empty = <tühi>
|
||||
on = Sees
|
||||
off = Väljas
|
||||
save.autosave = Automaatne salvestamine: {0}
|
||||
save.map = Maailm: {0}
|
||||
save.wave = Raund {0}
|
||||
save.difficulty = Raskusaste: {0}
|
||||
save.date = Viimati Salvestatud: {0}
|
||||
save.playtime = Mänguaeg: {0}
|
||||
warning = Hoiatus.
|
||||
confirm = Kinnita
|
||||
delete = Kustuta
|
||||
ok = OK
|
||||
open = Ava
|
||||
customize = Kohanda
|
||||
cancel = Tühista
|
||||
openlink = Ava Link
|
||||
copylink = Kopeeri Link
|
||||
back = Tagasi
|
||||
quit.confirm = Oled kindel, et soovid lahkuda?
|
||||
changelog.title = Muudatused
|
||||
changelog.loading = Getting changelog...
|
||||
changelog.error.android = [accent]Note that the changelog sometimes does not work on Android 4.4 and below!\nThis is due to an internal Android bug.
|
||||
changelog.error.ios = [accent]The changelog is currently not supported in iOS.
|
||||
changelog.error = [scarlet]Error getting changelog!\nCheck your internet connection.
|
||||
changelog.current = [yellow][[Current version]
|
||||
changelog.latest = [accent][[Latest version]
|
||||
loading = [accent]Laadimine...
|
||||
saving = [accent]Salvestamine...
|
||||
wave = [accent]Raund {0}
|
||||
wave.waiting = [LIGHT_GRAY]Raund {0} sekundi pärast
|
||||
wave.waveInProgress = [LIGHT_GRAY]Raund käib
|
||||
waiting = [LIGHT_GRAY]Ootan...
|
||||
waiting.players = Ootan mängijaid...
|
||||
wave.enemies = [LIGHT_GRAY]{0} Vastast Alles
|
||||
wave.enemy = [LIGHT_GRAY]{0} Vastane Alles
|
||||
loadimage = Lae Pilt
|
||||
saveimage = Salvesta Pilt
|
||||
unknown = Tundmatu
|
||||
custom = Custom
|
||||
builtin = Sisseehitatud
|
||||
map.delete.confirm = Are you sure you want to delete this map? This action cannot be undone!
|
||||
map.random = [accent]Random Map
|
||||
map.nospawn = This map does not have any cores for the player to spawn in! Add a[ROYAL] blue[] core to this map in the editor.
|
||||
map.nospawn.pvp = This map does not have any enemy cores for player to spawn into! Add[SCARLET] non-blue[] cores to this map in the editor.
|
||||
map.nospawn.attack = This map does not have any enemy cores for player to attack! Add[SCARLET] red[] cores to this map in the editor.
|
||||
map.invalid = Error loading map: corrupted or invalid map file.
|
||||
editor.brush = Brush
|
||||
editor.openin = Open In Editor
|
||||
editor.oregen = Ore Generation
|
||||
editor.oregen.info = Ore Generation:
|
||||
editor.mapinfo = Maailma Info
|
||||
editor.author = Autor:
|
||||
editor.description = Kirjeldus:
|
||||
editor.waves = Raundid:
|
||||
editor.rules = Rules:
|
||||
editor.ingame = Edit In-Game
|
||||
waves.title = Raundid
|
||||
waves.remove = Eemalda
|
||||
waves.never = <never>
|
||||
waves.every = iga
|
||||
waves.waves = Raund(id)
|
||||
waves.perspawn = per spawn
|
||||
waves.to = kuni
|
||||
waves.boss = Boss
|
||||
waves.preview = Preview
|
||||
waves.edit = Muuda...
|
||||
waves.copy = Copy to Clipboard
|
||||
waves.load = Load from Clipboard
|
||||
waves.invalid = Invalid waves in clipboard.
|
||||
waves.copied = Raundid kopeeritud.
|
||||
editor.default = [LIGHT_GRAY]<Default>
|
||||
edit = Muuda...
|
||||
editor.name = Nimi:
|
||||
editor.spawn = Spawn Unit
|
||||
editor.removeunit = Remove Unit
|
||||
editor.teams = Tiimid
|
||||
editor.elevation = Elevation
|
||||
editor.errorload = Error loading file:\n[accent]{0}
|
||||
editor.errorsave = Error saving file:\n[accent]{0}
|
||||
editor.errorimage = That's an image, not a map. Don't go around changing extensions expecting it to work.\n\nIf you want to import a legacy map, use the 'import legacy map' button in the editor.
|
||||
editor.errorlegacy = This map is too old, and uses a legacy map format that is no longer supported.
|
||||
editor.errorheader = This map file is either not valid or corrupt.
|
||||
editor.errorname = Maailma nime pole täpsustatud.
|
||||
editor.update = Uuenda
|
||||
editor.randomize = Randomize
|
||||
editor.apply = Apply
|
||||
editor.generate = Genereeri
|
||||
editor.resize = Resize
|
||||
editor.loadmap = Lae Maailm
|
||||
editor.savemap = Salvesta maailm
|
||||
editor.saved = Salvestatud!
|
||||
editor.save.noname = Your map does not have a name! Set one in the 'map info' menu.
|
||||
editor.save.overwrite = Your map overwrites a built-in map! Pick a different name in the 'map info' menu.
|
||||
editor.import.exists = [scarlet]Unable to import:[] a built-in map named '{0}' already exists!
|
||||
editor.import = Impordi...
|
||||
editor.importmap = Impordi Maailm
|
||||
editor.importmap.description = Import an already existing map
|
||||
editor.importfile = Impordi Fail
|
||||
editor.importfile.description = Import an external map file
|
||||
editor.importimage = Import Legacy Image
|
||||
editor.importimage.description = Import an external map image file
|
||||
editor.export = Ekspordi...
|
||||
editor.exportfile = Ekspordi Fail
|
||||
editor.exportfile.description = Ekspordi maailma fail
|
||||
editor.exportimage = Export Terrain Image
|
||||
editor.exportimage.description = Export a map image file
|
||||
editor.loadimage = Import Terrain
|
||||
editor.saveimage = Export Terrain
|
||||
editor.unsaved = [scarlet]You have unsaved changes![]\nAre you sure you want to exit?
|
||||
editor.resizemap = Resize Map
|
||||
editor.mapname = Map Name:
|
||||
editor.overwrite = [accent]Warning!\nThis overwrites an existing map.
|
||||
editor.overwrite.confirm = [scarlet]Warning![] A map with this name already exists. Are you sure you want to overwrite it?
|
||||
editor.selectmap = Select a map to load:
|
||||
filters.empty = [LIGHT_GRAY]No filters! Add one with the button below.
|
||||
filter.distort = Distort
|
||||
filter.noise = Noise
|
||||
filter.ore = Maak
|
||||
filter.rivernoise = River Noise
|
||||
filter.scatter = Scatter
|
||||
filter.terrain = Terrain
|
||||
filter.option.scale = Scale
|
||||
filter.option.chance = Chance
|
||||
filter.option.mag = Magnitude
|
||||
filter.option.threshold = Threshold
|
||||
filter.option.circle-scale = Circle Scale
|
||||
filter.option.octaves = Octaves
|
||||
filter.option.falloff = Falloff
|
||||
filter.option.block = Plokk
|
||||
filter.option.floor = Põrand
|
||||
filter.option.wall = Sein
|
||||
filter.option.ore = Maak
|
||||
filter.option.floor2 = Teine Korrus
|
||||
filter.option.threshold2 = Secondary Threshold
|
||||
width = Laius:
|
||||
height = Kõrgus:
|
||||
menu = Menüü
|
||||
play = Mängi
|
||||
load = Lae
|
||||
save = Salvesta
|
||||
fps = FPS: {0}
|
||||
tps = TPS: {0}
|
||||
ping = Ping: {0}ms
|
||||
language.restart = Please restart your game for the language settings to take effect.
|
||||
settings = Sätted
|
||||
tutorial = Õpetus
|
||||
editor = Editor
|
||||
mapeditor = Map Editor
|
||||
donate = Anneta
|
||||
abandon = Abandon
|
||||
abandon.text = This zone and all its resources will be lost to the enemy.
|
||||
locked = Locked
|
||||
complete = [LIGHT_GRAY]Reach:
|
||||
zone.requirement = Wave {0} in zone {1}
|
||||
resume = Resume Zone:\n[LIGHT_GRAY]{0}
|
||||
bestwave = [LIGHT_GRAY]Best Wave: {0}
|
||||
launch = < LAUNCH >
|
||||
launch.title = Launch Successful
|
||||
launch.next = [LIGHT_GRAY]next opportunity at wave {0}
|
||||
launch.unable = [scarlet]Unable to LAUNCH.[] {0} Enemies.
|
||||
launch.confirm = This will launch all resources in your core.\nYou will not be able to return to this base.
|
||||
uncover = Uncover
|
||||
configure = Configure Loadout
|
||||
configure.locked = [LIGHT_GRAY]Unlock configuring loadout: Wave {0}.
|
||||
zone.unlocked = [LIGHT_GRAY]{0} unlocked.
|
||||
zone.requirement.complete = Wave {0} reached:\n{1} zone requirements met.
|
||||
zone.config.complete = Wave {0} reached:\nLoadout config unlocked.
|
||||
zone.resources = Resources Detected:
|
||||
add = Lisa...
|
||||
boss.health = Bossi Elud
|
||||
connectfail = [crimson]Failed to connect to server:\n\n[accent]{0}
|
||||
error.unreachable = Server unreachable.\nIs the address spelled correctly?
|
||||
error.invalidaddress = Invalid address.
|
||||
error.timedout = Timed out!\nMake sure the host has port forwarding set up, and that the address is correct!
|
||||
error.mismatch = Packet error:\npossible client/server version mismatch.\nMake sure you and the host have the latest version of Mindustry!
|
||||
error.alreadyconnected = Already connected.
|
||||
error.mapnotfound = Map file not found!
|
||||
error.io = Network I/O error.
|
||||
error.any = Unknown network error.
|
||||
zone.groundZero.name = Ground Zero
|
||||
zone.desertWastes.name = Desert Wastes
|
||||
zone.craters.name = The Craters
|
||||
zone.frozenForest.name = Frozen Forest
|
||||
zone.ruinousShores.name = Ruinous Shores
|
||||
zone.stainedMountains.name = Stained Mountains
|
||||
zone.desolateRift.name = Desolate Rift
|
||||
zone.nuclearComplex.name = Nuclear Production Complex
|
||||
zone.overgrowth.name = Overgrowth
|
||||
zone.tarFields.name = Tar Fields
|
||||
|
||||
settings.language = Keel
|
||||
settings.reset = Reset to Defaults
|
||||
settings.rebind = Rebind
|
||||
settings.controls = Controls
|
||||
settings.game = Mäng
|
||||
settings.sound = Heli
|
||||
settings.graphics = Graphics
|
||||
settings.cleardata = Clear Game Data...
|
||||
settings.clear.confirm = Are you sure you want to clear this data?\nWhat is done cannot be undone!
|
||||
settings.clearall.confirm = [scarlet]WARNING![]\nThis will clear all data, including saves, maps, unlocks and keybinds.\nOnce you press 'ok' the game will wipe all data and automatically exit.
|
||||
settings.clearunlocks = Clear Unlocks
|
||||
settings.clearall = Clear All
|
||||
paused = [accent]< Paused >
|
||||
yes =Jah
|
||||
no = Ei
|
||||
info.title = Info
|
||||
error.title = [crimson]An error has occured
|
||||
error.crashtitle = An error has occured
|
||||
blocks.input = Sisend
|
||||
blocks.output = Väljund
|
||||
blocks.booster = Booster
|
||||
block.unknown = [LIGHT_GRAY]???
|
||||
blocks.powercapacity = Power Capacity
|
||||
blocks.powershot = Power/Shot
|
||||
blocks.targetsair = Targets Air
|
||||
blocks.targetsground = Targets Ground
|
||||
blocks.itemsmoved = Move Speed
|
||||
blocks.launchtime = Time Between Launches
|
||||
blocks.shootrange = Range
|
||||
blocks.size = Suurus
|
||||
blocks.liquidcapacity = Liquid Capacity
|
||||
blocks.powerrange = Energia Ulatus
|
||||
blocks.poweruse = Energia Kasutus
|
||||
blocks.powerdamage = Power/Damage
|
||||
blocks.itemcapacity = Item Capacity
|
||||
blocks.basepowergeneration = Base Power Generation
|
||||
blocks.productiontime = Production Time
|
||||
blocks.repairtime = Block Full Repair Time
|
||||
blocks.speedincrease = Speed Increase
|
||||
blocks.range = Ulatus
|
||||
blocks.drilltier = Drillables
|
||||
blocks.drillspeed = Base Drill Speed
|
||||
blocks.boosteffect = Boost Effect
|
||||
blocks.maxunits = Max Active Units
|
||||
blocks.health = Health
|
||||
blocks.buildtime = Build Time
|
||||
blocks.inaccuracy = Inaccuracy
|
||||
blocks.shots = Shots
|
||||
blocks.reload = Shots/Second
|
||||
blocks.ammo = Laskemoon
|
||||
|
||||
bar.drillspeed = Drill Speed: {0}/s
|
||||
bar.efficiency = Efficiency: {0}%
|
||||
bar.powerbalance = Power: {0}/s
|
||||
bar.poweramount = Power: {0}
|
||||
bar.poweroutput = Power Output: {0}
|
||||
bar.items = Items: {0}
|
||||
bar.liquid = Vedelik
|
||||
bar.heat = Kuumus
|
||||
bar.power = Energia
|
||||
bar.progress = Build Progress
|
||||
bar.spawned = Units: {0}/{1}
|
||||
bullet.damage = [stat]{0}[lightgray] damage
|
||||
|
||||
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
|
||||
bullet.incendiary = [stat]incendiary
|
||||
bullet.homing = [stat]homing
|
||||
bullet.shock = [stat]shock
|
||||
bullet.frag = [stat]frag
|
||||
bullet.knockback = [stat]{0}[lightgray] knockback
|
||||
bullet.freezing = [stat]freezing
|
||||
bullet.tarred = [stat]tarred
|
||||
bullet.multiplier = [stat]{0}[lightgray]x ammo multiplier
|
||||
bullet.reload = [stat]{0}[lightgray]x fire rate
|
||||
|
||||
unit.blocks = blocks
|
||||
unit.powersecond = power units/second
|
||||
unit.liquidsecond = liquid units/second
|
||||
unit.itemssecond = items/second
|
||||
unit.liquidunits = liquid units
|
||||
unit.powerunits = power units
|
||||
unit.degrees = degrees
|
||||
unit.seconds = sek
|
||||
unit.persecond = /s
|
||||
unit.timesspeed = x kiirus
|
||||
unit.percent = %
|
||||
unit.items = asjad
|
||||
category.general = Üldine
|
||||
category.power = Energia
|
||||
category.liquids = Vedelikud
|
||||
category.items = Asjad
|
||||
category.crafting = Sisend/Väljund
|
||||
category.shooting = Tulistamine
|
||||
category.optional = Optional Enhancements
|
||||
setting.landscape.name = Lock Landscape
|
||||
setting.shadows.name = Varjud
|
||||
setting.animatedwater.name = Animeeritud Vesi
|
||||
setting.animatedshields.name = Animeeritud Kilbid
|
||||
setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[]
|
||||
setting.indicators.name = Enemy/Ally Indicators
|
||||
setting.autotarget.name = Auto-Target
|
||||
setting.fpscap.name = Max FPS
|
||||
setting.fpscap.none = None
|
||||
setting.fpscap.text = {0} FPS
|
||||
setting.swapdiagonal.name = Always Diagonal Placement
|
||||
setting.difficulty.training = Treening
|
||||
setting.difficulty.easy = Lihtne
|
||||
setting.difficulty.normal = Normaalne
|
||||
setting.difficulty.hard = Raske
|
||||
setting.difficulty.insane = Insane
|
||||
setting.difficulty.name = Difficulty:
|
||||
setting.screenshake.name = Screen Shake
|
||||
setting.effects.name = Display Effects
|
||||
setting.sensitivity.name = Controller Sensitivity
|
||||
setting.saveinterval.name = Save Interval
|
||||
setting.seconds = {0} Sekundit
|
||||
setting.fullscreen.name = Täisekraan
|
||||
setting.borderlesswindow.name = Borderless Window[LIGHT_GRAY] (may require restart)
|
||||
setting.fps.name = Show FPS
|
||||
setting.vsync.name = VSync
|
||||
setting.lasers.name = Näita Energia Lasereid
|
||||
setting.pixelate.name = Pixelate[LIGHT_GRAY] (disables animations)
|
||||
setting.minimap.name = Näita Kaarti
|
||||
setting.musicvol.name = Heli tase
|
||||
setting.mutemusic.name = Vaigista muusika
|
||||
setting.sfxvol.name = SFX Volume
|
||||
setting.mutesound.name = Mute Sound
|
||||
setting.crashreport.name = Send Anonymous Crash Reports
|
||||
setting.chatopacity.name = Chat Opacity
|
||||
setting.playerchat.name = Display In-Game Chat
|
||||
keybind.title = Rebind Keys
|
||||
category.general.name = General
|
||||
category.view.name = View
|
||||
category.multiplayer.name = Multiplayer
|
||||
command.attack = Ründa
|
||||
command.retreat = Põgene
|
||||
command.patrol = Patrol
|
||||
keybind.gridMode.name = Block Select
|
||||
keybind.gridModeShift.name = Category Select
|
||||
keybind.press = Vajuta klahvi...
|
||||
keybind.press.axis = Press an axis or key...
|
||||
keybind.screenshot.name = Map Screenshot
|
||||
keybind.move_x.name = Move x
|
||||
keybind.move_y.name = Move y
|
||||
keybind.select.name = Select/Shoot
|
||||
keybind.diagonal_placement.name = Diagonal Placement
|
||||
keybind.pick.name = Pick Block
|
||||
keybind.break_block.name = Break Block
|
||||
keybind.deselect.name = Deselect
|
||||
keybind.shoot.name = Shoot
|
||||
keybind.zoom_hold.name = Zoom Hold
|
||||
keybind.zoom.name = Zoom
|
||||
keybind.menu.name = Menüü
|
||||
keybind.pause.name = Paus
|
||||
keybind.minimap.name = Minimap
|
||||
keybind.dash.name = Dash
|
||||
keybind.chat.name = Chat
|
||||
keybind.player_list.name = Player list
|
||||
keybind.console.name = Console
|
||||
keybind.rotate.name = Rotate
|
||||
keybind.toggle_menus.name = Toggle menus
|
||||
keybind.chat_history_prev.name = Chat history prev
|
||||
keybind.chat_history_next.name = Chat history next
|
||||
keybind.chat_scroll.name = Chat scroll
|
||||
keybind.drop_unit.name = Drop Unit
|
||||
keybind.zoom_minimap.name = Zoom minimap
|
||||
mode.help.title = Description of modes
|
||||
mode.survival.name = Survival
|
||||
mode.survival.description = The normal mode. Limited resources and automatic incoming waves.
|
||||
mode.sandbox.name = Liivakast
|
||||
mode.sandbox.description = Infinite resources and no timer for waves.
|
||||
mode.pvp.name = PvP
|
||||
mode.pvp.description = Fight against other players locally.
|
||||
mode.attack.name = Attack
|
||||
mode.attack.description = Destroy the enemy's base. No waves.
|
||||
mode.custom = Kohandatud Reeglid
|
||||
|
||||
rules.infiniteresources = Infinite Resources
|
||||
rules.wavetimer = Wave Timer
|
||||
rules.waves = Raundi
|
||||
rules.enemyCheat = Infinite AI (Red Team) Resources
|
||||
rules.unitdrops = Unit Drops
|
||||
rules.unitbuildspeedmultiplier = Unit Production Speed Multiplier
|
||||
rules.unithealthmultiplier = Unit Health Multiplier
|
||||
rules.playerhealthmultiplier = Player Health Multiplier
|
||||
rules.playerdamagemultiplier = Player Damage Multiplier
|
||||
rules.unitdamagemultiplier = Unit Damage Multiplier
|
||||
rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles)
|
||||
rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec)
|
||||
rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec)
|
||||
rules.buildcostmultiplier = Build Cost Multiplier
|
||||
rules.buildspeedmultiplier = Build Speed Multiplier
|
||||
rules.waitForWaveToEnd = Waves wait for enemies
|
||||
rules.dropzoneradius = Drop Zone Radius:[LIGHT_GRAY] (tiles)
|
||||
rules.respawns = Max respawns per wave
|
||||
rules.limitedRespawns = Limit Respawns
|
||||
rules.title.waves = Raundid
|
||||
rules.title.respawns = Respawns
|
||||
rules.title.resourcesbuilding = Resources & Building
|
||||
rules.title.player = Mängijad
|
||||
rules.title.enemy = Vastased
|
||||
rules.title.unit = Units
|
||||
|
||||
content.item.name = Asjad
|
||||
content.liquid.name = Vedelikud
|
||||
content.unit.name = Units
|
||||
content.block.name = Plokid
|
||||
content.mech.name = Mechs
|
||||
item.copper.name = Vask
|
||||
item.copper.description = A useful structure material. Used extensively in all types of blocks.
|
||||
item.lead.name = Plii
|
||||
item.lead.description = A basic starter material. Used extensively in electronics and liquid transportation blocks.
|
||||
item.coal.name = Süsi
|
||||
item.coal.description = A common and readily available fuel.
|
||||
item.graphite.name = Grafiit
|
||||
item.titanium.name = Titaanium
|
||||
item.titanium.description = A rare super-light metal used extensively in liquid transportation, drills and aircraft.
|
||||
item.thorium.name = Toorium
|
||||
item.thorium.description = A dense, radioactive metal used as structural support and nuclear fuel.
|
||||
item.silicon.name = Silikoon
|
||||
item.silicon.description = An extremely useful semiconductor, with applications in solar panels and many complex electronics.
|
||||
item.plastanium.name = Plastaanium
|
||||
item.plastanium.description = A light, ductile material used in advanced aircraft and fragmentation ammunition.
|
||||
item.phase-fabric.name = Faasriie
|
||||
item.phase-fabric.description = A near-weightless substance used in advanced electronics and self-repairing technology.
|
||||
item.surge-alloy.name = Surge Alloy
|
||||
item.surge-alloy.description = An advanced alloy with unique electrical properties.
|
||||
item.spore-pod.name = Spore Pod
|
||||
item.spore-pod.description = Used for conversion into oil, explosives and fuel.
|
||||
item.sand.name = Liiv
|
||||
item.sand.description = A common material that is used extensively in smelting, both in alloying and as a flux.
|
||||
item.blast-compound.name = Blast Compound
|
||||
item.blast-compound.description = A volatile compound used in bombs and explosives. While it can burned as fuel, this is not advised.
|
||||
item.pyratite.name = Pyratite
|
||||
item.pyratite.description = An extremely flammable substance used in incendiary weapons.
|
||||
item.metaglass.name = Metaglass
|
||||
item.metaglass.description = A super-tough glass compound. Extensively used for liquid distribution and storage.
|
||||
item.scrap.name = Scrap
|
||||
item.scrap.description = Leftover remnants of old structures and units. Contains trace amounts of many different metals.
|
||||
liquid.water.name = Vesi
|
||||
liquid.slag.name = Slag
|
||||
liquid.oil.name = Nafta
|
||||
liquid.cryofluid.name = Cryofluid
|
||||
mech.alpha-mech.name = Alpha
|
||||
mech.alpha-mech.weapon = Heavy Repeater
|
||||
mech.alpha-mech.ability = Regeneration
|
||||
mech.alpha-mech.description = The standard mech. Has decent speed and damage output.
|
||||
mech.delta-mech.name = Delta
|
||||
mech.delta-mech.weapon = Arc Generator
|
||||
mech.delta-mech.ability = Discharge
|
||||
mech.delta-mech.description = A fast, lightly-armored mech made for hit-and-run attacks. Does little damage against structures, but can kill large groups of enemy units very quickly with its arc lightning weapons.
|
||||
mech.tau-mech.name = Tau
|
||||
mech.tau-mech.weapon = Restruct Laser
|
||||
mech.tau-mech.ability = Repair Burst
|
||||
mech.tau-mech.description = The support mech. Heals allied blocks by shooting at them. Can heal allies in a radius with its repair ability.
|
||||
mech.omega-mech.name = Omega
|
||||
mech.omega-mech.weapon = Swarm Missiles
|
||||
mech.omega-mech.ability = Armored Configuration
|
||||
mech.omega-mech.description = A bulky and well-armored mech, made for front-line assaults. Its armor ability can block up to 90% of incoming damage.
|
||||
mech.dart-ship.name = Dart
|
||||
mech.dart-ship.weapon = Repeater
|
||||
mech.dart-ship.description = The standard ship. Reasonably fast and light, but has little offensive capability and low mining speed.
|
||||
mech.javelin-ship.name = Javelin
|
||||
mech.javelin-ship.description = A hit-and-run strike ship. While initially slow, it can accelerate to great speeds and fly by enemy outposts, dealing large amounts of damage with its lightning ability and missiles.
|
||||
mech.javelin-ship.weapon = Burst Missiles
|
||||
mech.javelin-ship.ability = Discharge Booster
|
||||
mech.trident-ship.name = Trident
|
||||
mech.trident-ship.description = A heavy bomber. Reasonably well armored.
|
||||
mech.trident-ship.weapon = Bomb Bay
|
||||
mech.glaive-ship.name = Glaive
|
||||
mech.glaive-ship.description = A large, well-armored gunship. Equipped with an incendiary repeater. Good acceleration and maximum speed.
|
||||
mech.glaive-ship.weapon = Flame Repeater
|
||||
item.explosiveness = [LIGHT_GRAY]Explosiveness: {0}%
|
||||
item.flammability = [LIGHT_GRAY]Flammability: {0}%
|
||||
item.radioactivity = [LIGHT_GRAY]Radioactivity: {0}%
|
||||
unit.health = [LIGHT_GRAY]Health: {0}
|
||||
unit.speed = [LIGHT_GRAY]Speed: {0}
|
||||
mech.weapon = [LIGHT_GRAY]Weapon: {0}
|
||||
mech.health = [LIGHT_GRAY]Health: {0}
|
||||
mech.itemcapacity = [LIGHT_GRAY]Item Capacity: {0}
|
||||
mech.minespeed = [LIGHT_GRAY]Mining Speed: {0}%
|
||||
mech.minepower = [LIGHT_GRAY]Mining Power: {0}
|
||||
mech.ability = [LIGHT_GRAY]Ability: {0}
|
||||
mech.buildspeed = [LIGHT_GRAY]Building Speed: {0}%
|
||||
liquid.heatcapacity = [LIGHT_GRAY]Heat Capacity: {0}
|
||||
liquid.viscosity = [LIGHT_GRAY]Viscosity: {0}
|
||||
liquid.temperature = [LIGHT_GRAY]Temperature: {0}
|
||||
|
||||
block.grass.name = Grass
|
||||
block.salt.name = Salt
|
||||
block.saltrocks.name = Salt Rocks
|
||||
block.pebbles.name = Pebbles
|
||||
block.tendrils.name = Tendrils
|
||||
block.sandrocks.name = Sand Rocks
|
||||
block.spore-pine.name = Spore Pine
|
||||
block.sporerocks.name = Spore Rocks
|
||||
block.rock.name = Kivi
|
||||
block.snowrock.name = Lumekivi
|
||||
block.shale.name = Shale
|
||||
block.shale-boulder.name = Shale Boulder
|
||||
block.moss.name = Moss
|
||||
block.shrubs.name = Shrubs
|
||||
block.spore-moss.name = Spore Moss
|
||||
block.shalerocks.name = Shale Rocks
|
||||
block.scrap-wall.name = Scrap Wall
|
||||
block.scrap-wall-large.name = Large Scrap Wall
|
||||
block.scrap-wall-huge.name = Huge Scrap Wall
|
||||
block.scrap-wall-gigantic.name = Gigantic Scrap Wall
|
||||
block.thruster.name = Thruster
|
||||
block.kiln.name = Kiln
|
||||
block.kiln.description = Smelts sand and lead into metaglass. Requires small amounts of power.
|
||||
block.graphite-press.name = Graphite Press
|
||||
block.multi-press.name = Multi-Press
|
||||
block.constructing = {0} [LIGHT_GRAY](Constructing)
|
||||
block.spawn.name = Enemy Spawn
|
||||
block.core-shard.name = Core: Shard
|
||||
block.core-foundation.name = Core: Foundation
|
||||
block.core-nucleus.name = Core: Nucleus
|
||||
block.deepwater.name = Deep Water
|
||||
block.water.name = Water
|
||||
block.tainted-water.name = Tainted Water
|
||||
block.darksand-tainted-water.name = Dark Sand Tainted Water
|
||||
block.tar.name = Tar
|
||||
block.stone.name = Stone
|
||||
block.sand.name = Sand
|
||||
block.darksand.name = Dark Sand
|
||||
block.ice.name = Ice
|
||||
block.snow.name = Snow
|
||||
block.craters.name = Craters
|
||||
block.sand-water.name = Sand water
|
||||
block.darksand-water.name = Dark Sand Water
|
||||
block.char.name = Char
|
||||
block.holostone.name = Holo stone
|
||||
block.ice-snow.name = Ice Snow
|
||||
block.rocks.name = Rocks
|
||||
block.icerocks.name = Ice rocks
|
||||
block.snowrocks.name = Snow Rocks
|
||||
block.dunerocks.name = Dune Rocks
|
||||
block.pine.name = Pine
|
||||
block.white-tree-dead.name = White Tree Dead
|
||||
block.white-tree.name = White Tree
|
||||
block.spore-cluster.name = Spore Cluster
|
||||
block.metal-floor.name = Metal Floor 1
|
||||
block.metal-floor-2.name = Metal Floor 2
|
||||
block.metal-floor-3.name = Metal Floor 3
|
||||
block.metal-floor-5.name = Metal Floor 4
|
||||
block.metal-floor-damaged.name = Metal Floor Damaged
|
||||
block.dark-panel-1.name = Dark Panel 1
|
||||
block.dark-panel-2.name = Dark Panel 2
|
||||
block.dark-panel-3.name = Dark Panel 3
|
||||
block.dark-panel-4.name = Dark Panel 4
|
||||
block.dark-panel-5.name = Dark Panel 5
|
||||
block.dark-panel-6.name = Dark Panel 6
|
||||
block.dark-metal.name = Dark Metal
|
||||
block.ignarock.name = Igna Rock
|
||||
block.hotrock.name = Hot Rock
|
||||
block.magmarock.name = Magma Rock
|
||||
block.cliffs.name = Cliffs
|
||||
block.copper-wall.name = Copper Wall
|
||||
block.copper-wall-large.name = Large Copper Wall
|
||||
block.titanium-wall.name = Titanium Wall
|
||||
block.titanium-wall-large.name = Large Titanium Wall
|
||||
block.phase-wall.name = Phase Wall
|
||||
block.phase-wall-large.name = Large Phase Wall
|
||||
block.thorium-wall.name = Thorium Wall
|
||||
block.thorium-wall-large.name = Large Thorium Wall
|
||||
block.door.name = Door
|
||||
block.door-large.name = Large Door
|
||||
block.duo.name = Duo
|
||||
block.scorch.name = Scorch
|
||||
block.scatter.name = Scatter
|
||||
block.hail.name = Hail
|
||||
block.lancer.name = Lancer
|
||||
block.conveyor.name = Conveyor
|
||||
block.titanium-conveyor.name = Titanium Conveyor
|
||||
block.junction.name = Junction
|
||||
block.router.name = Router
|
||||
block.distributor.name = Distributor
|
||||
block.sorter.name = Sorter
|
||||
block.sorter.description = Sorts items. If an item matches the selection, it is allowed to pass. Otherwise, the item is outputted to the left and right.
|
||||
block.overflow-gate.name = Overflow Gate
|
||||
block.overflow-gate.description = A combination splitter and router that only outputs to the left and right if the front path is blocked.
|
||||
block.silicon-smelter.name = Silicon Smelter
|
||||
block.phase-weaver.name = Phase Weaver
|
||||
block.pulverizer.name = Pulverizer
|
||||
block.cryofluidmixer.name = Cryofluid Mixer
|
||||
block.melter.name = Melter
|
||||
block.incinerator.name = Incinerator
|
||||
block.spore-press.name = Spore Press
|
||||
block.separator.name = Separator
|
||||
block.coal-centrifuge.name = Coal Centrifuge
|
||||
block.power-node.name = Power Node
|
||||
block.power-node-large.name = Large Power Node
|
||||
block.surge-tower.name = Surge Tower
|
||||
block.battery.name = Battery
|
||||
block.battery-large.name = Large Battery
|
||||
block.combustion-generator.name = Combustion Generator
|
||||
block.turbine-generator.name = Turbine Generator
|
||||
block.differential-generator.name = Differential Generator
|
||||
block.impact-reactor.name = Impact Reactor
|
||||
block.mechanical-drill.name = Mechanical Drill
|
||||
block.pneumatic-drill.name = Pneumatic Drill
|
||||
block.laser-drill.name = Laser Drill
|
||||
block.water-extractor.name = Water Extractor
|
||||
block.cultivator.name = Cultivator
|
||||
block.dart-mech-pad.name = Alpha Mech Pad
|
||||
block.delta-mech-pad.name = Delta Mech Pad
|
||||
block.javelin-ship-pad.name = Javelin Ship Pad
|
||||
block.trident-ship-pad.name = Trident Ship Pad
|
||||
block.glaive-ship-pad.name = Glaive Ship Pad
|
||||
block.omega-mech-pad.name = Omega Mech Pad
|
||||
block.tau-mech-pad.name = Tau Mech Pad
|
||||
block.conduit.name = Conduit
|
||||
block.mechanical-pump.name = Mechanical Pump
|
||||
block.item-source.name = Item Source
|
||||
block.item-void.name = Item Void
|
||||
block.liquid-source.name = Liquid Source
|
||||
block.power-void.name = Power Void
|
||||
block.power-source.name = Power Infinite
|
||||
block.unloader.name = Unloader
|
||||
block.vault.name = Vault
|
||||
block.wave.name = Laine
|
||||
block.swarmer.name = Swarmer
|
||||
block.salvo.name = Salvo
|
||||
block.ripple.name = Ripple
|
||||
block.phase-conveyor.name = Phase Conveyor
|
||||
block.bridge-conveyor.name = Bridge Conveyor
|
||||
block.plastanium-compressor.name = Plastanium Compressor
|
||||
block.pyratite-mixer.name = Pyratite Mixer
|
||||
block.blast-mixer.name = Blast Mixer
|
||||
block.solar-panel.name = Solar Panel
|
||||
block.solar-panel-large.name = Large Solar Panel
|
||||
block.oil-extractor.name = Oil Extractor
|
||||
block.spirit-factory.name = Spirit Drone Factory
|
||||
block.phantom-factory.name = Phantom Drone Factory
|
||||
block.wraith-factory.name = Wraith Fighter Factory
|
||||
block.ghoul-factory.name = Ghoul Bomber Factory
|
||||
block.dagger-factory.name = Dagger Mech Factory
|
||||
block.crawler-factory.name = Crawler Mech Factory
|
||||
block.titan-factory.name = Titan Mech Factory
|
||||
block.fortress-factory.name = Fortress Mech Factory
|
||||
block.revenant-factory.name = Revenant Fighter Factory
|
||||
block.repair-point.name = Repair Point
|
||||
block.pulse-conduit.name = Pulse Conduit
|
||||
block.phase-conduit.name = Phase Conduit
|
||||
block.liquid-router.name = Liquid Router
|
||||
block.liquid-tank.name = Liquid Tank
|
||||
block.liquid-junction.name = Liquid Junction
|
||||
block.bridge-conduit.name = Bridge Conduit
|
||||
block.rotary-pump.name = Rotary Pump
|
||||
block.thorium-reactor.name = Thorium Reactor
|
||||
block.mass-driver.name = Mass Driver
|
||||
block.blast-drill.name = Airblast Drill
|
||||
block.thermal-pump.name = Thermal Pump
|
||||
block.thermal-generator.name = Thermal Generator
|
||||
block.alloy-smelter.name = Alloy Smelter
|
||||
block.mender.name = Mender
|
||||
block.mend-projector.name = Mend Projector
|
||||
block.surge-wall.name = Surge Wall
|
||||
block.surge-wall-large.name = Large Surge Wall
|
||||
block.cyclone.name = Cyclone
|
||||
block.fuse.name = Fuse
|
||||
block.shock-mine.name = Shock Mine
|
||||
block.overdrive-projector.name = Overdrive Projector
|
||||
block.force-projector.name = Force Projector
|
||||
block.arc.name = Arc
|
||||
block.rtg-generator.name = RTG Generator
|
||||
block.spectre.name = Spectre
|
||||
block.meltdown.name = Meltdown
|
||||
block.container.name = Container
|
||||
block.launch-pad.name = Launch Pad
|
||||
block.launch-pad.description = Launches batches of items without any need for a core launch. Unfinished.
|
||||
block.launch-pad-large.name = Large Launch Pad
|
||||
team.blue.name = sinine
|
||||
team.red.name = punane
|
||||
team.orange.name = oranž
|
||||
team.none.name = hall
|
||||
team.green.name = roheline
|
||||
team.purple.name = lilla
|
||||
unit.spirit.name = Spirit Drone
|
||||
unit.spirit.description = The starter drone unit. Spawns in the core by default. Automatically mines ores and repairs blocks.
|
||||
unit.phantom.name = Phantom Drone
|
||||
unit.phantom.description = An advanced drone unit. Automatically mines ores and repairs blocks. Significantly more effective than a spirit drone.
|
||||
unit.dagger.name = Dagger
|
||||
unit.dagger.description = A basic ground unit. Useful in swarms.
|
||||
unit.crawler.name = Crawler
|
||||
unit.titan.name = Titan
|
||||
unit.titan.description = An advanced, armored ground unit. Attacks both ground and air targets.
|
||||
unit.ghoul.name = Ghoul Bomber
|
||||
unit.ghoul.description = A heavy carpet bomber.
|
||||
unit.wraith.name = Wraith Fighter
|
||||
unit.wraith.description = A fast, hit-and-run interceptor unit.
|
||||
unit.fortress.name = Fortress
|
||||
unit.fortress.description = A heavy artillery ground unit.
|
||||
unit.revenant.name = Revenant
|
||||
unit.eruptor.name = Eruptor
|
||||
unit.chaos-array.name = Chaos Array
|
||||
unit.eradicator.name = Eradicator
|
||||
unit.lich.name = Lich
|
||||
unit.reaper.name = Reaper
|
||||
tutorial.begin = Your mission here is to eradicate the[LIGHT_GRAY] enemy[].\n\nBegin by[accent] mining copper[]. Tap a copper ore vein near your core to do this.
|
||||
tutorial.drill = Mining manually is inefficient.\n[accent]Drills []can mine automatically.\nPlace one on a copper vein.
|
||||
tutorial.conveyor = [accent]Conveyors[] are used to transport items to the core.\nMake a line of conveyors from the drill to the core.
|
||||
tutorial.morecopper = More copper is required.\n\nEither mine it manually, or place more drills.
|
||||
tutorial.turret = Defensive structures must be built to repel the[LIGHT_GRAY] enemy[].\nBuild a duo turret near your base.
|
||||
tutorial.drillturret = Duo turrets require[accent] copper ammo []to shoot.\nPlace a drill next to the turret to supply it with mined copper.
|
||||
tutorial.waves = The[LIGHT_GRAY] enemy[] approaches.\n\nDefend your core for 2 waves. Build more turrets.
|
||||
tutorial.lead = More ores are available. Explore and mine[accent] lead[].\n\nDrag from your unit to the core to transfer resources.
|
||||
tutorial.smelter = Copper and lead are weak metals.\nSuperior[accent] Dense Alloy[] can be created in a smelter.\n\nBuild one.
|
||||
tutorial.densealloy = The smelter will now produce alloy.\nGet some.\nImprove the production if necessary.
|
||||
tutorial.siliconsmelter = The core will now create a[accent] spirit drone[] for mining and repairing blocks.\n\nFactories for other units can be created with [accent] silicon.\nMake a silicon smelter.
|
||||
tutorial.silicondrill = Silicon requires[accent] coal[] and[accent] sand[].\nStart by making drills.
|
||||
tutorial.generator = This technology requires power.\nCreate a[accent] combustion generator[] for it.
|
||||
tutorial.generatordrill = Combustion generators need fuel.\nFuel it with coal from a drill.
|
||||
tutorial.node = Power requires transport.\nCreate a[accent] power node[] next to your combustion generator to transfer its power.
|
||||
tutorial.nodelink = Power can be transferred through contacting power blocks and generators, or by linked power nodes.\n\nLink power by tapping the node and selecting the generator and silicon smelter.
|
||||
tutorial.silicon = Silicon is being produced. Get some.\n\nImproving the production system is advised.
|
||||
tutorial.daggerfactory = Construct a[accent] dagger mech factory.[]\n\nThis will be used to create attack mechs.
|
||||
tutorial.router = Factories need resources to function.\nCreate a router to split conveyor resources.
|
||||
tutorial.dagger = Link power nodes to the factory.\nOnce requirements are met, a mech will be created.\n\nCreate more drills, generators and conveyors as necessary.
|
||||
tutorial.battle = The[LIGHT_GRAY] enemy[] has revealed their core.\nDestroy it with your unit and dagger mechs.
|
||||
block.copper-wall.description = A cheap defensive block.\nUseful for protecting the core and turrets in the first few waves.
|
||||
block.copper-wall-large.description = A cheap defensive block.\nUseful for protecting the core and turrets in the first few waves.\nSpans multiple tiles.
|
||||
block.thorium-wall.description = A strong defensive block.\nGood protection from enemies.
|
||||
block.thorium-wall-large.description = A strong defensive block.\nGood protection from enemies.\nSpans multiple tiles.
|
||||
block.phase-wall.description = Not as strong as a thorium wall but will deflect bullets unless they are too powerful.
|
||||
block.phase-wall-large.description = Not as strong as a thorium wall but will deflect bullets unless they are too powerful.\nSpans multiple tiles.
|
||||
block.surge-wall.description = The strongest defensive block.\nHas a small chance of triggering lightning towards the attacker.
|
||||
block.surge-wall-large.description = The strongest defensive block.\nHas a small chance of triggering lightning towards the attacker.\nSpans multiple tiles.
|
||||
block.door.description = A small door that can be opened and closed by tapping on it.\nIf opened, enemies can shoot and move through.
|
||||
block.door-large.description = A large door that can be opened and closed by tapping on it.\nIf opened, enemies can shoot and move through.\nSpans multiple tiles.
|
||||
block.mend-projector.description = Periodically heals blocks in its vicinity.
|
||||
block.overdrive-projector.description = Increases the speed of nearby buildings like drills and conveyors.
|
||||
block.force-projector.description = Creates a hexagonal force field around itself, protecting buildings and units inside from damage through bullets.
|
||||
block.shock-mine.description = Damages enemies stepping on the mine. Nearly invisible to the enemy.
|
||||
block.duo.description = A small, cheap turret. Useful against ground units.
|
||||
block.scatter.description = A medium-sized anti-air turret. Sprays clumps of lead or scrap flak at enemy units.
|
||||
block.arc.description = A small close-range turret which shoots electricity in a random arc towards the enemy.
|
||||
block.hail.description = A small artillery turret.
|
||||
block.lancer.description = A medium-sized turret which shoots charged electricity beams.
|
||||
block.wave.description = A medium-sized rapid-fire turret which shoots liquid bubbles.
|
||||
block.salvo.description = A medium-sized turret which fires shots in salvos.
|
||||
block.swarmer.description = A medium-sized turret which shoots burst missiles.
|
||||
block.ripple.description = A large artillery turret which fires several shots simultaneously.
|
||||
block.cyclone.description = A large rapid fire turret.
|
||||
block.fuse.description = A large turret which shoots powerful short-range beams.
|
||||
block.spectre.description = A large turret which shoots two powerful bullets at once.
|
||||
block.meltdown.description = A large turret which shoots powerful long-range beams.
|
||||
block.conveyor.description = Basic item transport block. Moves items forward and automatically deposits them into turrets or crafters. Rotatable.
|
||||
block.titanium-conveyor.description = Advanced item transport block. Moves items faster than standard conveyors.
|
||||
block.phase-conveyor.description = Advanced item transport block. Uses power to teleport items to a connected phase conveyor over several tiles.
|
||||
block.junction.description = Acts as a bridge for two crossing conveyor belts. Useful in situations with two different conveyors carrying different materials to different locations.
|
||||
block.mass-driver.description = Ultimate item transport block. Collects several items and then shoots them to another mass driver over a long range.
|
||||
block.silicon-smelter.description = Reduces sand with highly pure coal in order to produce silicon.
|
||||
block.plastanium-compressor.description = Produces plastanium from oil and titanium.
|
||||
block.phase-weaver.description = Produces phase fabric from radioactive thorium and high amounts of sand.
|
||||
block.alloy-smelter.description = Produces surge alloy from titanium, lead, silicon and copper.
|
||||
block.pulverizer.description = Crushes scrap into sand. Useful when there is a lack of natural sand.
|
||||
block.pyratite-mixer.description = Mixes coal, lead and sand into highly flammable pyratite.
|
||||
block.blast-mixer.description = Uses oil for transforming pyratite into the less flammable but more explosive blast compound.
|
||||
block.cryofluidmixer.description = Combines water and titanium into cryofluid which is much more efficient for cooling.
|
||||
block.melter.description = Melts down scrap into slag for further processing or usage in turrets.
|
||||
block.incinerator.description = Gets rid of any excess item or liquid.
|
||||
block.spore-press.description = Compresses spore pods into oil.
|
||||
block.separator.description = Extracts useful minerals from slag.
|
||||
block.power-node.description = Transmits power to connected nodes. Up to four power sources, sinks or nodes can be connected. The node will receive power from or supply power to any adjacent blocks.
|
||||
block.power-node-large.description = Has a larger radius than the power node and connects to up to six power sources, sinks or nodes.
|
||||
block.battery.description = Stores power whenever there is an abundance and provides power whenever there is a shortage, as long as there is capacity left.
|
||||
block.battery-large.description = Stores much more power than a regular battery.
|
||||
block.combustion-generator.description = Generates power by burning oil or flammable materials.
|
||||
block.turbine-generator.description = More efficient than a combustion generator, but requires additional water.
|
||||
block.thermal-generator.description = Generates power when placed in hot locations.
|
||||
block.solar-panel.description = Provides a small amount of power from the sun.
|
||||
block.solar-panel-large.description = Provides much better power supply than a standard solar panel, but is also much more expensive to build.
|
||||
block.thorium-reactor.description = Generates huge amounts of power from highly radioactive thorium. Requires constant cooling. Will explode violently if insufficient amounts of coolant are supplied. Power output depends on fullness, with base power generated at full capacity.
|
||||
block.rtg-generator.description = A radioisotope thermoelectric generator which does not require cooling but provides less power than a thorium reactor.
|
||||
block.unloader.description = Unloads items from a container, vault or core onto a conveyor or directly into an adjacent block. The type of item to be unloaded can be changed by tapping on the unloader.
|
||||
block.container.description = Stores a small amount of items of each type. An[LIGHT_GRAY] unloader[] can be used to retrieve items from the container.
|
||||
block.vault.description = Stores a large amount of items of each type. An[LIGHT_GRAY] unloader[] can be used to retrieve items from the vault.
|
||||
block.mechanical-drill.description = A cheap drill. When placed on appropriate tiles, outputs items at a slow pace indefinitely.
|
||||
block.pneumatic-drill.description = An improved drill which is faster and able to process harder materials by making use of air pressure.
|
||||
block.laser-drill.description = Allows drilling even faster through laser technology, but requires power. Additionally, radioactive thorium can be retrieved with this drill.
|
||||
block.blast-drill.description = The ultimate drill. Requires large amounts of power.
|
||||
block.water-extractor.description = Extracts water from the ground. Use it when there is no lake nearby.
|
||||
block.cultivator.description = Cultivates tiny concentrations of spores into industry-ready pods.
|
||||
block.oil-extractor.description = Uses large amounts of power in order to extract oil from sand. Use it when there is no direct source of oil nearby.
|
||||
block.trident-ship-pad.description = Leave your current vessel and change into a reasonably well armored heavy bomber.\nUse the pad by double tapping while standing on it.
|
||||
block.javelin-ship-pad.description = Leave your current vessel and change into a strong and fast interceptor with lightning weapons.\nUse the pad by double tapping while standing on it.
|
||||
block.glaive-ship-pad.description = Leave your current vessel and change into a large, well-armored gunship.\nUse the pad by double tapping while standing on it.
|
||||
block.tau-mech-pad.description = Leave your current vessel and change into a support mech which can heal friendly buildings and units.\nUse the pad by double tapping while standing on it.
|
||||
block.delta-mech-pad.description = Leave your current vessel and change into a fast, lightly-armored mech made for hit-and-run attacks.\nUse the pad by double tapping while standing on it.
|
||||
block.omega-mech-pad.description = Leave your current vessel and change into a bulky and well-armored mech, made for front-line assaults.\nUse the pad by double tapping while standing on it.
|
||||
block.spirit-factory.description = Produces light drones which mine ore and repair blocks.
|
||||
block.phantom-factory.description = Produces advanced drone units which are significantly more effective than a spirit drone.
|
||||
block.wraith-factory.description = Produces fast, hit-and-run interceptor units.
|
||||
block.ghoul-factory.description = Produces heavy carpet bombers.
|
||||
block.dagger-factory.description = Produces basic ground units.
|
||||
block.titan-factory.description = Produces advanced, armored ground units.
|
||||
|
||||
block.fortress-factory.description = Produces heavy artillery ground units.
|
||||
block.revenant-factory.description = Produces heavy laser air units.
|
||||
block.repair-point.description = Continuously heals the closest damaged unit in its vicinity.
|
||||
block.conduit.description = Basic liquid transport block. Works like a conveyor, but with liquids. Best used with extractors, pumps or other conduits.
|
||||
block.pulse-conduit.description = Advanced liquid transport block. Transports liquids faster and stores more than standard conduits.
|
||||
block.phase-conduit.description = Advanced liquid transport block. Uses power to teleport liquids to a connected phase conduit over several tiles.
|
||||
block.liquid-router.description = Accepts liquids from one direction and outputs them to up to 3 other directions equally. Can also store a certain amount of liquid. Useful for splitting the liquids from one source to multiple targets.
|
||||
block.liquid-tank.description = Hoiustab suure hulga vedelikke. Use it for creating buffers when there is a non-constant demand of materials or as a safeguard for cooling vital blocks.
|
||||
block.liquid-junction.description = Töötab kui sild kahele ristuvale torule. Kasulik situatsioonides kui kaks erinevat toru viivad kahte erinevat vedelikku eri kohtadesse.
|
||||
block.bridge-conduit.description = Arenenud vedeliku transport. Lubab transportida vedelikke üle iga pinnase ja ehitise 3 ruudu kaugusele.
|
||||
block.mechanical-pump.description = Odav ja aeglane pump, mis ei vaja elektrit.
|
||||
block.rotary-pump.description = Kahekordistab kiiruse kasutades elektrit.
|
||||
block.thermal-pump.description = Ülim pump.
|
||||
block.router.description = Võtab vastu materjale ühest suunast ja annab neid võrdselt välja kolmes suunas. Kasulik ühest allikast tulevate materjalide jagamisel mitmeks.
|
||||
block.distributor.description = Arenenud jagaja, mis jagab materjale kuni 7 suunas.
|
||||
block.bridge-conveyor.description = Arenenud transpordi ehitis. Lubab transportida materjale üle iga pinnase ja ehitise 3 ruudu kaugusele.
|
||||
block.item-source.description = Annab välja lõpmatult materjale. Ainult liivakastis.
|
||||
block.liquid-source.description = Annab välja lõpmatult vedelikke. Ainult liivakastis.
|
||||
block.item-void.description = Hävitab kõik materjalid, mis sinna lähevad elektrit kasutamata. Ainult liivakastis.
|
||||
block.power-source.description = Annab välja lõpmatult elektrit. Ainult liivakastis.
|
||||
block.power-void.description = Hävitab kõik materjalid, mis sinna lähevad. Ainult liivakastis.
|
||||
liquid.water.description = Sageli kasutatud jahutamiseks ja jäätme töötluseks.
|
||||
liquid.oil.description = Seda saab põleteda, õhku lasta või kasutada jahutamiseks.
|
||||
liquid.cryofluid.description = Kõige efektiivsem vedelik asjade maha jahutamiseks.
|
||||
@@ -75,7 +75,7 @@ server.kicked.idInUse = 이미 서버에 접속중입니다! 다중 계정은
|
||||
server.kicked.customClient = 이 서버는 직접 빌드한 버전을 지원하지 않습니다. 공식 버전을 사용하세요.
|
||||
server.kicked.gameover = 코어가 파괴되었습니다...
|
||||
host.info = [accent]호스트[] 버튼은 현재 네트워크의 [scarlet]6567[] 포트를 사용합니다.\n[LIGHT_GRAY]같은 Wi-Fi 또는 로컬 네트워크[] 에서 서버 목록을 볼 수 있습니다.\n\n만약 플레이어들이 이 IP를 통해 어디에서나 연결할 수 있게 하고 싶다면, 공유기 설정에서 [accent]포트 포워딩[]을 하시거나 Vpn을 사용하셔야 합니다.\n\n[LIGHT_GRAY]참고: LAN 게임 연결에 문제가 있는 사람이 있다면, 방화벽 설정에서 Mindustry 가 로컬 네트워크에 액세스하도록 허용했는지 확인 해 주세요.
|
||||
join.info = 여기서 [accent]서버 IP[]를 입력하여 다른 서버에 접속할 수 있습니다.\n또는 [accent]로컬 네트워크(LAN)[] 서버를 검색하여 접속할 수 있습니다.\nLAN 및 WAN 멀티 플레이어 모두 지원됩니다.\n\n[LIGHT_GRAY]참고:여기에서는 자동으로 글로벌 서버를 추가하지 않습니다. IP로 다른 사람의 서버에 접속할려면 서버장에게 IP를 요청해야 합니다.
|
||||
join.info = 여기서 [accent]서버 IP[]를 입력하여 다른 서버에 접속할 수 있습니다.\n또는 [accent]로컬 네트워크(LAN)[] 서버를 검색하여 접속할 수 있습니다.\nLAN 및 WAN 멀티 플레이어 모두 지원됩니다.\n\n[LIGHT_GRAY]참고:여기에서는 자동으로 글로벌 서버를 추가하지 않습니다. IP로 다른 사람의 서버에 접속할려면 서버장에게 IP를 요청해야 합니다.[]\n\n[ROYAL]한국의 공식 서버로는 mindustry.kr의 7000,7001,7002포트와 server1.mindustry.r-e.kr의 8000,8001,8002,8004포트가 있습니다.\n서버 주소 입력방법은 < 주소:포트 >의 형식입니다.
|
||||
hostserver = 서버 열기
|
||||
hostserver.mobile = 서버\n열기
|
||||
host = 서버 열기
|
||||
@@ -157,7 +157,10 @@ cancel = 취소
|
||||
openlink = 링크 열기
|
||||
copylink = 링크 복사
|
||||
back = 뒤로가기
|
||||
classic.export = 클래식 데이터 추출
|
||||
classic.export.text = Mindustry 클래식 (v3.5 build 40)의 세이브파일 또는 맵 데이터가 발견되었습니다. 이 것들을 Mindustry 클래식 앱에서 사용하기 위해 홈 폴더로 추출할까요?
|
||||
quit.confirm = 정말로 종료하시겠습니까?
|
||||
quit.confirm.tutorial = 튜토리얼을 종료하시겠습니까?\n튜토리얼은 [accent]설정 -> 게임 -> 튜토리얼[]에서 다시 해보실 수 있습니다.
|
||||
loading = [accent]불러오는중...
|
||||
saving = [accent]저장중...
|
||||
wave = [accent]웨이브 {0}
|
||||
@@ -189,6 +192,7 @@ editor.waves = 웨이브:
|
||||
editor.rules = 규칙:
|
||||
editor.generation = 맵 생성 설정:
|
||||
editor.ingame = 인게임 편집
|
||||
editor.newmap = 신규 맵
|
||||
waves.title = 웨이브
|
||||
waves.remove = 삭제
|
||||
waves.never = 여기까지 유닛생성
|
||||
@@ -210,10 +214,9 @@ editor.name = 이름:
|
||||
editor.spawn = 유닛 생성
|
||||
editor.removeunit = 유닛 삭제
|
||||
editor.teams = 팀
|
||||
editor.elevation = 지형 높이
|
||||
editor.errorload = [accent]{0} 파일을 불러오는데 실패했습니다.
|
||||
editor.errorsave = [accent]{0} 파일을 저장하는데 실패했습니다.
|
||||
editor.errorimage = 이것은 맵이 아니라 사진입니다. 확장자를 바꿔서 시도할 생각하지 마세요.\n\n예전 맵을 가져올려면 편집기의 '예전 맵 가져오기' 버튼을 사용하세요.
|
||||
editor.errorimage = 이것은 맵이 아니라 사진입니다.\n\n예전 맵을 가져올려면 편집기의 '예전 맵 가져오기' 버튼을 사용하세요.
|
||||
editor.errorlegacy = 이 맵은 너무 오래되어, 더이상 지원하지 않는 맵 형식을 사용합니다.
|
||||
editor.errorheader = 이 맵 파일은 유효하지 않거나 손상되었습니다.
|
||||
editor.errorname = 맵에 이름이 지정되어 있지 않습니다.
|
||||
@@ -309,6 +312,7 @@ ping = Ping: {0}ms
|
||||
language.restart = 언어를 변경하려면 게임을 다시시작 해 주세요.
|
||||
settings = 설정
|
||||
tutorial = 게임 방법
|
||||
tutorial.retake = 튜토리얼
|
||||
editor = 편집기
|
||||
mapeditor = 맵 편집기
|
||||
donate = 기부
|
||||
@@ -323,8 +327,9 @@ bestwave = [LIGHT_GRAY]최고 점수: {0}
|
||||
launch = < 출격 >
|
||||
launch.title = 출격 성공
|
||||
launch.next = [LIGHT_GRAY]다음 출격기회는 {0} 단계에서 나타납니다.
|
||||
launch.unable = [scarlet]출격할 수 없습니다.[] {0}마리 남음.
|
||||
launch.unable2 = [scarlet]출격할 수 없습니다.[] {0}마리 남음.
|
||||
launch.confirm = 출격하게 되면 모든 자원이 코어로 들어갑니다.\n또한 성공하기 전까지 기지로 돌아갈 수 없습니다.
|
||||
launch.skip.confirm = 만약 지금 출격하시지 않고 스킵하신다면, 다음 출격 웨이브까지 기다려야 합니다.
|
||||
uncover = 구역 개방
|
||||
configure = 코어 시작자원 설정
|
||||
configure.locked = {0} 단계에서 시작자원 설정 잠금이 해제됩니다.
|
||||
@@ -366,7 +371,7 @@ zone.fungalPass.name = 포자 지대
|
||||
|
||||
zone.groundZero.description = 이 장소는 다시 시작하기에 최적의 환경을 지닌 장소입니다. 적은 수준의 위협이 있으며 자원의 양은 적습니다.\n가능한 한 많은 양의 구리와 납을 수집하십시오.\n출격합시다!
|
||||
zone.frozenForest.description = 이 지역도 산과 가까운 지역입니다 포자들이 흩뿌려져 있으며 극한의 추위도 포자룰 막을 수 있을거 같지 않습니다.\n전력을 통해서 모험을 시작하십시오 화력 발전소를 짓고 수리드론을 사용하는 법을 배우십시오.
|
||||
zone.desertWastes.description = 이 황무지는 끝을 알수 없을 정도로 광활합니다 그리고 십자가 형태의 버려진 구조물이 존재합니다.\n석탄이 존재하며 이를 화력발전에 쓰거나 흑연정제에 쓰십시오.\n\n[LOYAL]이 지역에서의 착륙장소는 확실하지 않습니다.
|
||||
zone.desertWastes.description = 이 황무지는 끝을 알수 없을 정도로 광활합니다 그리고 십자가 형태의 버려진 구조물이 존재합니다.\n석탄이 존재하며 이를 화력발전에 쓰거나 흑연정제에 쓰십시오.\n\n[lightgray]이 지역에서의 착륙장소는 확실하지 않습니다.
|
||||
zone.saltFlats.description = 이 소금 사막은 매우 척박하여 자원이 거의 없습니다.\n하지만 자원이 희소한 이곳에서도 적들의 요새가 발견되었습니다.그들을 사막의 모래로 만들어버리십시오.
|
||||
zone.craters.description = 물이 가득한 이 크레이터에는 옛 전쟁의 유물들이 쌓여있습니다.\n이곳을 다시 점령해 강화유리를 제작하고 물을 끌어올려 포탑과 드릴에 공급하여 더 좋은 효율로 방어선을 강화하십시오.
|
||||
zone.ruinousShores.description = 이 지역은 과거 해안방어기지로 사용되었습니다.\n그러나 지금은 기본구조물만 남아있으니 이 지역을 어서 신속히 수리하여 외부로 세력을 확장한뒤 잃어버린 기술을 다시 회수하십시오.
|
||||
@@ -423,7 +428,6 @@ blocks.speedincrease = 속도 증가
|
||||
blocks.range = 사거리
|
||||
blocks.drilltier = 드릴
|
||||
blocks.drillspeed = 기본 드릴 속도
|
||||
blocks.drilltierreq = 더 높은 티어의 드릴이 요구됨.
|
||||
blocks.boosteffect = 가속 효과
|
||||
blocks.maxunits = 최대 활성유닛
|
||||
blocks.health = 체력
|
||||
@@ -433,6 +437,7 @@ blocks.shots = 발포 횟수
|
||||
blocks.reload = 재장전
|
||||
blocks.ammo = 탄약
|
||||
|
||||
bar.drilltierreq = 드릴이 요구됨
|
||||
bar.drillspeed = 채광 속도 : {0}/s
|
||||
bar.efficiency = 효율성 : {0}%
|
||||
bar.powerbalance = 전력 : {0}/s
|
||||
@@ -677,7 +682,7 @@ block.scrap-wall.name = 조각벽
|
||||
block.scrap-wall-large.name = 큰 조각벽
|
||||
block.scrap-wall-huge.name = 거대한 조각 벽
|
||||
block.scrap-wall-gigantic.name = 엄청나게 큰 조각 벽
|
||||
block.thruster.name = 반동
|
||||
block.thruster.name = 쓰러스터
|
||||
block.kiln.name = 가마
|
||||
block.graphite-press.name = 흑연 압축기
|
||||
block.multi-press.name = 다중 압축기
|
||||
@@ -724,14 +729,14 @@ block.dark-panel-6.name = 어두운 패널 6
|
||||
block.dark-metal.name = 어두운 금속제
|
||||
block.ignarock.name = 얼은 바위
|
||||
block.hotrock.name = 뜨거운 바위
|
||||
block.magmarock.name = 마그마 바위
|
||||
block.magmarock.name = 용암 바위
|
||||
block.cliffs.name = 절벽
|
||||
block.copper-wall.name = 구리 벽
|
||||
block.copper-wall-large.name = 대형 구리 벽
|
||||
block.titanium-wall.name = 티타늄 벽
|
||||
block.titanium-wall-large.name = 대형 티타늄 벽
|
||||
block.phase-wall.name = 위상 벽
|
||||
block.phase-wall-large.name = 대형 메타 벽
|
||||
block.phase-wall-large.name = 대형 위상 벽
|
||||
block.thorium-wall.name = 토륨 벽
|
||||
block.thorium-wall-large.name = 대형 토륨 벽
|
||||
block.door.name = 문
|
||||
@@ -846,9 +851,9 @@ team.orange.name = 주황색 팀
|
||||
team.derelict.name = 버려진 팀
|
||||
team.green.name = 초록색 팀
|
||||
team.purple.name = 보라색 팀
|
||||
unit.spirit.name = 정령 수리 드론
|
||||
unit.draug.name = 영혼 채광
|
||||
unit.phantom.name = 환영 건설 드론
|
||||
unit.spirit.name = 스피릿 수리 드론
|
||||
unit.draug.name = 드라우그 채광 드론
|
||||
unit.phantom.name = 팬텀 건설 드론
|
||||
unit.dagger.name = 디거
|
||||
unit.crawler.name = 자폭자
|
||||
unit.titan.name = 타이탄
|
||||
@@ -861,27 +866,27 @@ unit.chaos-array.name = 혼돈 배열
|
||||
unit.eradicator.name = 박멸
|
||||
unit.lich.name = 리치
|
||||
unit.reaper.name = 사신
|
||||
tutorial.begin = 플레이어의 주요 목표는 [LIGHT_GRAY]적군[]을 제거하는 것입니다.\n\n이 게임은 [accent]구리를 채광[]하는 것으로 시작합니다.\n이것을 하기 위해 플레이어의 중심부 근처에 있는 구리 광맥을 누르세요.
|
||||
tutorial.drill = 수동으로 채광하는 것은 효율이 낮습니다.\n[accent]드릴[]은 자동으로 채광 작업을 합니다.\n구리 광맥에 표시된 영역에 드릴을 하나를 놓으세요.
|
||||
tutorial.conveyor = [accent]컨베이어[]를 사용하여 아이템을 코어로 운반합니다.\n드릴에서 코어까지 컨베이어 라인을 만드세요.
|
||||
tutorial.morecopper = 더 많은 구리가 필요합니다.\n\n수동으로 채광하거나, 드릴을 더 설치하세요.
|
||||
tutorial.turret = 방어 구조물은 [LIGHT_GRAY]적[]을 물리치기 위해 반드시 필요합니다.\n기지 근처에 듀오 터렛을 설치하세요.
|
||||
tutorial.drillturret = 듀오 터렛이 작동하기 위해서는[accent] 구리 탄약 []을 필요로 합니다.\n터렛 옆에 드릴을 설치하여 구리를 공급하세요.
|
||||
tutorial.waves = [LIGHT_GRAY]적[]이 접근합니다.\n\n2단계 동안 코어를 보호하고 더 많은 터렛을 만드세요.
|
||||
tutorial.lead = 더 많은 광석을 이용할 수 있습니다. [accent]납[]을 찾아 탐색하세요.\n\n아이템을 코어로 전송할려면 플레이어 기체 또는 비행기에서 코어로 드래그 하세요.
|
||||
tutorial.smelter = 구리와 납은 약한 금속입니다.\n[accent]고밀도 합금[]은 제련소에서 만들 수 있습니다.\n\n하나 만드세요.
|
||||
tutorial.densealloy = 이 제련소는 이제 고밀도 합금을 생산할 것입니다.\n몇개 더 생산하세요.\n필요한 경우 더 만드세요.
|
||||
tutorial.siliconsmelter = 이제 이코어는 채굴과 수리하기 위한[accent] 스피릿 드론[]을 생성 할 것 입니다.\n\n[accent]실리콘[]을 사용해 다른 유닛을 생성하기 위한 공장을 만들 수 있습니다.\n실리콘 제련기를 제작하세요!
|
||||
tutorial.silicondrill = 실리콘을 제작하려면[accent] 석탄[] 과[accent] 모래[]가 필요합니다.\n드릴을 먼저 건설해보는건 어떤가요?
|
||||
tutorial.generator = 이 건물은 [LIGHT_YELLOW]전력[]이 필요합니다.\n[accent] 석탄 발전기[]를 건설하세요.
|
||||
tutorial.generatordrill = [accent] 석탄 발전기[]는 연료가 필요합니다.\n[accent] 석탄[]을 드릴로 채굴해서 연료를 체워주세요.
|
||||
tutorial.node = 전력은 송신해줄 노드가 필요합니다.\n[accent] 전력 노드[]를 석탄 등등 발전기 옆에 설치해서 생산된 전기를 다른곳으로 송신합시다.
|
||||
tutorial.nodelink = 전력은 전력 블록과 발전기에 연결하거나, 연결된 전력 노드를 통해 전송이 가능합니다. \n\n전력 노드를 누르고 발전기와 실리콘 제련기를 선택하여 전원을 연결합시다.
|
||||
tutorial.silicon = 실리콘이 생산되고 있습니다.\n\n생산 시스템의 개선을 권고 드립니다.
|
||||
tutorial.daggerfactory = 이[accent] 디거 기체 공장[]은\n\n공격하는 기체를 생산하기 위해 사용됩니다.
|
||||
tutorial.router = 공장을 작동시키기 위해 자원이 필요합니다.\n컨베이어에 운반되고 있는 자원을 분할할 분배기를 만드세요.
|
||||
tutorial.dagger = 전력 노드를 공장에 연결하세요.\n일단 요구 사항이 충족되면 기체 생산을 시작합니다.\n\n필요에 따라 드릴 및 발전기, 컨베이어를 더 많이 만들 수 있습니다.
|
||||
tutorial.battle = [LIGHT_GRAY]적[]의 코어가 드러났습니다.\n당신의 부대와 디거를 사용하여 파괴하세요.
|
||||
tutorial.next = [lightgray]< 이 곳을 터치해 진행하세요. >
|
||||
tutorial.intro = Mindustry 튜토리얼을 시작하겠습니다. 튜토리얼은 [accent]모바일은 뒤로가기, 데스크탑은 esc버튼[]을 누르고 [accent]나가기 버튼[]을 눌러 종료가 가능합니다.\n[accent]구리[]를 18개 채광하세요. 코어 주위에 있는 주황색의 구리 광물을 터치함으로써 구리를 채광할 수 있습니다.\n\n[accent]현재 모은 구리의 개수 : {0}/{1} 개[]
|
||||
tutorial.drill = 수동으로 채광하는 것은 효율이 낮습니다.\n[accent]드릴[]은 자동으로 드릴 바로아래에 있는 광물들을 채광합니다.\n드릴 카테고리의 기계식 드릴을 선택하여 구리 광맥위에 설치하세요.\n마우스 오른쪽 버튼으로 취소가 가능합니다.
|
||||
tutorial.drill.mobile = 수동으로 채광하는 것은 효율이 낮습니다.\n[accent]드릴[]은 자동으로 드릴 바로아래에 있는 광물들을 채광합니다.\n드릴 카테고리의 기계식 드릴을 선택하여 구리 광맥위에 설치하세요.\n취소 버튼을 눌러 건축하기 전의 설계를 취소할 수 있습니다.
|
||||
tutorial.blockinfo = 블록들은 각각 능력이 다르며, 하위 티어의 드릴은 채광할 수 있는 광물의 종류가 적습니다.\n블럭의 정보를 확인하기 위해서는,[accent] 카테고리의 블럭을 누른 후, "?"버튼을 클릭하여 블럭의 정보를 확인하세요.[]\n[royal]궁금한 블럭의 정보를 아무거나 한 번 확인해보세요.
|
||||
tutorial.conveyor = [accent]컨베이어[]는 붙어 있는 곳에서 받는 아이템을 코어로 운반합니다.\n드릴에서 코어까지 컨베이어 라인을 만드세요.\n[accent]컨베이어를 클릭 후 건설을 시작하려는 지점을 마우스 왼쪽 버튼으로 꾸욱 누른 뒤[] 드래그하여 설계하세요.\n\n컨베이어 건설 수[accent]{0}/{1}\n[accent]광물을 코어로 운반하세요.
|
||||
tutorial.conveyor.mobile = [accent]컨베이어[]는 붙어 있는 곳에서 받는 아이템을 코어로 운반합니다.\n드릴에서 코어까지 컨베이어 라인을 만드세요.\n[accent]컨베이어를 화면에 1초정도 클릭하여 작은 노란색 원이 잠깐 나타났다 사라질 때까지 기다리신 후[] 드래그하여 설계하세요.\n\n컨베이어 건설 수[accent]{0}/{1}\n[accent]광물을 코어로 운반하세요.
|
||||
tutorial.turret = 방어 구조물은 [LIGHT_GRAY]적[]을 물리치기 위해 반드시 필요합니다.\n포탑 카테고리의 듀오 포탑을 선택하신 후, 기지 근처에 듀오 포탑을 설치하세요.
|
||||
tutorial.drillturret = 듀오 포탑이 공격하기 위해서는[accent] 구리 탄약[]을 필요로 합니다.\n포탑 근처의 구리 광맥에 드릴을 설치하고 컨베이어로 포탑과 이어서 포탑에 구리를 공급하세요.\n또는 직접 코어에서 광물을 꺼내 포탑에 넣을 수 도 있습니다.
|
||||
tutorial.pause = 싱글 플래이에서는 게임을 [accent]일시정지[]할 수 있습니다.\n일시정지하면 교전과 더불어 건설까지 일시정지됩니다.\n\n[accent]스페이스 버튼[]을 눌러 일시정지하세요.
|
||||
tutorial.pause.mobile = 싱글 플래이에서는 게임을 [accent]일시정지[]할 수 있습니다.\n일시정지하면 교전과 더불어 건설까지 일시정지됩니다.\n\n[accent]일시정지 버튼[]을 눌러 일시정지하세요.
|
||||
tutorial.unpause = 게임을 진행하기 위해 [accent]스페이스 버튼[]을 다시 누르세요.
|
||||
tutorial.unpause.mobile = 게임을 진행하기 위해 같은 위치의 버튼을 다시 누르세요.
|
||||
tutorial.breaking = 설계를 방해하는 블록을 제거하기 위해서 [accent]첫 번째 지점을 마우스 오른쪽 버튼[]으로 누른 뒤 드래그하여 범위를 지정해서 제거하세요.[]\n\n[accent]코어 근처의 조각 블럭 3개[]를 제거하세요.
|
||||
tutorial.breaking.mobile = 설계를 방해하는 블록을 제거하기 위해서 [accent]망치 버튼을 눌러 제거모드[]로 변경하신 후, 첫번째 지점을 누른 후 드래그하여 범위를 지정한뒤 V버튼을 클릭해 블럭을 제거하세요.\n\n[accent]코어 근처의 조각 블럭 3개[]를 제거하세요.
|
||||
tutorial.withdraw = [accent]코어나 창고,공장[]같은 자원을 넣을 수 있는 일부 블럭에서는 직접 자원을 빼낼 수도 있습니다.\n[accent]코어를 클릭 후 자원을 눌러서 자원을 빼내세요.
|
||||
tutorial.deposit = 자원을 다시 블록에 넣을수도 있습니다.\n\n[accent]당신의 기체에서 코어로 드래그[]하여 자원을 되돌려 넣으세요.
|
||||
tutorial.waves = [LIGHT_GRAY]적[]이 접근합니다.\n당신의 기체는 적을 향해 클릭하여 공격할 수 있습니다. 또한, 구리를 더 캐내고 포탑을 더 지어서 방어를 강화하세요.\n\n[accent]2단계 동안 코어를 보호하세요.[]
|
||||
tutorial.waves.mobile = [LIGHT_GRAY]적[]이 접근합니다.\n당신의 기체는 적을 자동조준하지만, 원하는 적을 클릭하여 공격하고 싶은 대상을 바꿀 수 있습니다.\n구리를 더 캐내고 포탑을 더 지어서 방어를 강화하세요.\n\n[accent]2단계동안 코어를 방어하세요.[]
|
||||
tutorial.launch = 특정 단계에 도달하면 [accent]출격[]이 가능합니다.\n[accent]출격[]을 하게되면 해당 지역의 코어에 들어있는 자원들을 캠페인의 자원 창고로 보내지만, 해당 지역의 [accent]모든 것들[]은 날라가게 되니 주의하세요.
|
||||
|
||||
|
||||
item.copper.description = 모든 종류의 블록에서 광범위하게 사용되는 자원입니다.
|
||||
item.lead.description = 쉽게 구할 수 있으며, 전자 및 액체 수송 블록에서 광범위하게 사용되는 자원입니다.
|
||||
@@ -917,11 +922,11 @@ unit.phantom.description = 첨단 드론 유닛. 플레이어의 건설을 도
|
||||
unit.dagger.description = 기본 지상 유닛입니다.\n플레이어 기체처럼 드론을 소환하지는 않습니다.
|
||||
unit.crawler.description = 지상 유닛. 적이 가까이에 있으면 폭발합니다.
|
||||
unit.titan.description = 고급 지상 유닛입니다.\n원거리 총 대신에 근접 화염 방사기를 가지고 있으며, 지상과 공중 둘다 공격할 수 있습니다.
|
||||
unit.ghoul.description = 무겁고 튼튼한 지상 폭격기 입니다.\n주로 적 건물로 이동하여 엄청난 폭격을 가합니다.
|
||||
unit.wraith.description = 적 핵심 건물 및 유닛을 집중적으로 공격하는 방식을 사용하는 전투기 입니다.
|
||||
unit.fortress.description = 중포 지상 유닛.\n높은 공격력을 가진 총과 높은 체력을 가지고 있습니다.
|
||||
unit.revenant.description = 플래이어가 생산가능한 최종 공중 전투기. 폭발물을 쓰는 스웜 포탑과 같은 무기를 사용합니다.
|
||||
unit.eruptor.description = 지상 유닛. 광재를 넣은 파도와 같은 무기를 장착했습니다.
|
||||
unit.wraith.description = 적 핵심 건물 및 유닛을 집중적으로 공격하는 방식을 사용하는 전투기 입니다.
|
||||
unit.ghoul.description = 무겁고 튼튼한 지상 폭격기 입니다.\n주로 적 건물로 이동하여 엄청난 폭격을 가합니다.
|
||||
unit.revenant.description = 플래이어가 생산가능한 최종 공중 전투기. 폭발물을 쓰는 스웜 포탑과 같은 무기를 사용합니다.
|
||||
unit.chaos-array.description = 지상 중간보스 유닛. 설금을 넣은 사이클론과 같은 무기를 장착했습니다.
|
||||
unit.eradicator.description = 지상 최종보스 유닛. 토륨을 넣은 스펙터와 같은 무기를 장착했습니다.
|
||||
unit.lich.description = 공중 중간보스 유닛. 리치와 같은 무기를 장착했으나 공격속도가 좀 더 빠릅니다.
|
||||
@@ -996,15 +1001,15 @@ block.differential-generator.description = 냉각수와 파이라타이트의
|
||||
block.rtg-generator.description = 방사성동위원소 열전기 발전기\n토륨또는 현상 구조체를 사용하며, 냉각이 필요없는 발전을 하지만 토륨 원자로에 비해 발전량이 매우 적습니다.
|
||||
block.solar-panel.description = 태양광으로 극소량의 전기을 생산합니다.
|
||||
block.solar-panel-large.description = 일반 태양 전지판보다 훨씬 나은 발전량이 많지만, 건축비도 훨씬 비쌉니다.
|
||||
block.thorium-reactor.description = 토륨을 이용해 막대한 양의 전기를 생산합니다. 지속적인 냉각이 필요하며 냉각제의 양이 부족하면 크게 폭발합니다.\n\n[LOYAL]폭발로 인한 피해를 버틸 수 있는 건물은 없습니다.
|
||||
block.impact-reactor.description = 최첨단 발전기\n폭발물과 냉각수를 이용해 최고의 효율로 매우 많은 양의 전기를 생산할 수 있습니다. 발전을 시작하는데 전기가 필요하며 발전기를 가동하는데 시간이 많이 걸립니다.\n[LOYAL]오버드라이브 프로젝터로 10000이상의 전기를 생산할 수 있으며, 가동중에 전기가 끊기면 가동을 다시 해야되기 때문에 창고,물탱크,배터리 등을 주위에 설치하고 나서 가동하는 것을 추천합니다.
|
||||
block.thorium-reactor.description = 토륨을 이용해 막대한 양의 전기를 생산합니다. 지속적인 냉각이 필요하며 냉각제의 양이 부족하면 크게 폭발합니다.\n\n[royal]폭발로 인한 피해를 버틸 수 있는 건물은 없습니다.
|
||||
block.impact-reactor.description = 최첨단 발전기\n폭발물과 냉각수를 이용해 최고의 효율로 매우 많은 양의 전기를 생산할 수 있습니다. 발전을 시작하는데 전기가 필요하며 발전기를 가동하는데 시간이 많이 걸립니다.\n[royal]오버드라이브 프로젝터로 10000이상의 전기를 생산할 수 있으며, 가동중에 전기가 끊기면 가동을 다시 해야되기 때문에 창고,물탱크,배터리 등을 주위에 설치하고 나서 가동하는 것을 추천합니다.
|
||||
block.mechanical-drill.description = 싸구려 드릴. 적절한 타일 위에 놓였을때 매우 느린 속도로 계속 채광합니다.\n\n[ROYAL]구리와 납은 광부 드론으로 대체가 가능합니다.
|
||||
block.pneumatic-drill.description = 기압을 이용하여 보다 빠르게 단단한 물질을 채광할 수 있는 향상된 드릴.\n\n[ROYAL]전기를 사용하지 않는 드릴이라도 물과 오버드라이브를 이용하여 가속할 수 있습니다.
|
||||
block.laser-drill.description = 토륨을 채광할 수 있는 고급 드릴입니다. 전력과 물을 공급하여 빠른 속도로 채광할 수 있습니다.\n\n[ROYAL]드릴아래에 배치된 광물타일의 비율에 따라 채광량이 달라집니다.
|
||||
block.blast-drill.description = 최상위 드릴입니다. 많은량의 전력이 필요합니다.\n\n[ROYAL]물추출기 하나면 충분합니다.
|
||||
block.water-extractor.description = 땅에서 물을 추출합니다. 근처에 호수가 없을 때 사용하세요.\n\n[ROYAL]물추출기의 효율이 달라지는 타일이 있습니다.
|
||||
block.cultivator.description = 소량의 포자를 산업용으로 사용가능한 포자로 배양하는 건물입니다.
|
||||
block.oil-extractor.description = 대량의 전력과 물을 사용하여 모래에서 기름을 추출합니다. 근처에 직접적인 석유 공급원이 없을때 사용하세요.\n\n[LOYAL]모래 또는 고철을 이용하여
|
||||
block.oil-extractor.description = 대량의 전력과 물을 사용하여 모래에서 기름을 추출합니다. 근처에 직접적인 석유 공급원이 없을때 사용하세요.\n\n[royal]모래 또는 고철을 이용하여
|
||||
block.core-shard.description = 코어의 1단계 형태입니다.\n이것이 파괴되면 플레이하고 있는 지역과의 연결이 끊어지니 적의 공격에 파괴되지 않도록 주의하세요.\n[ROYAL]연결이 끊긴다는 말은 게임오버와 일맥상통합니다.
|
||||
block.core-foundation.description = 코어의 2단계 형태입니다.\n첫 번째 코어보다 더 튼튼하고 더 많은 자원을 저장할 수 있습니다.\n\n[ROYAL]크기도 좀 더 큽니다.
|
||||
block.core-nucleus.description = 코어의 3단계이자 마지막 형태입니다.\n최고로 튼튼하며 막대한 양의 자원들을 저장할 수 있습니다.
|
||||
|
||||
@@ -16,6 +16,7 @@ screenshot.invalid = Zrzut ekranu jest zbyt duży. Najprawdopodobniej brakuje mi
|
||||
gameover = Rdzeń został zniszczony.
|
||||
gameover.pvp = Zwyciężyła drużyna [accent]{0}[]!
|
||||
highscore = [YELLOW] Nowy rekord!
|
||||
|
||||
stat.wave = Fale powstrzymane:[accent] {0}
|
||||
stat.enemiesDestroyed = Przeciwnicy zniszczeni:[accent] {0}
|
||||
stat.built = Budynki zbudowane:[accent] {0}
|
||||
@@ -23,8 +24,10 @@ stat.destroyed = Budynki zniszczone:[accent] {0}
|
||||
stat.deconstructed = Budynki zrekonstruowane:[accent] {0}
|
||||
stat.delivered = Surowce wystrzelone:
|
||||
stat.rank = Ocena: [accent]{0}
|
||||
placeline = You have selected a block.\nYou can[accent] place in a line[] by[accent] holding down your finger for a few seconds[] and dragging in a direction.\nTry it.
|
||||
removearea = You have selected removal mode.\nYou can[accent] remove blocks in a rectangle[] by[accent] holding down your finger for a few seconds[] and dragging.\nTry it.
|
||||
|
||||
placeline = Wybrałeś blok.\nMożesz umieścić[accent] w linii,[] [accent]przytrzymując palec przez kilka sekund[] i przeciągając.\nSpróbuj.
|
||||
removearea = Wybrałeś tryb usuwania.\nMożesz[accent] usunąć bloki w prostokoncie,[] [accent]przytrzymując palec przez kilka sekund i przeciągając[] and dragging.\nTry it.
|
||||
|
||||
launcheditems = [accent]Wystrzelone przedmioty
|
||||
map.delete = Jesteś pewny, że chcesz usunąć "[accent]{0}[]"?
|
||||
level.highscore = Rekord: [accent]{0}
|
||||
@@ -32,7 +35,7 @@ level.select = Wybrany poziom
|
||||
level.mode = Tryb gry:
|
||||
showagain = Nie pokazuj tego więcej
|
||||
coreattack = < Rdzeń jest atakowany! >
|
||||
nearpoint = [[ [scarlet]OPUŚĆ PUNKT ZRZUTU NATYCHMIAST[] ]\n unicestwienie nadchodzi
|
||||
nearpoint = [[ [scarlet]OPUŚĆ PUNKT ZRZUTU NATYCHMIAST[] ]\nunicestwienie nadchodzi
|
||||
database = Centralna baza danych
|
||||
savegame = Zapisz Grę
|
||||
loadgame = Wczytaj grę
|
||||
@@ -199,9 +202,9 @@ waves.preview = Preview
|
||||
waves.edit = Edytuj...
|
||||
waves.copy = Kopiuj do schowka
|
||||
waves.load = Załaduj ze schowka
|
||||
waves.invalid = Invalid waves in clipboard.
|
||||
waves.invalid = Nieprawidłowe fale w schowku.
|
||||
waves.copied = Fale zostały skopiowane.
|
||||
waves.none = No enemies defined.\nNote that empty wave layouts will automatically be replaced with the default layout.
|
||||
waves.none = Brak zdefiniowanych wrogów.\nPamiętaj, że puste układy fal zostaną automatycznie zastąpione układem domyślnym.
|
||||
editor.default = [LIGHT_GRAY]<Domyślne>
|
||||
edit = Edytuj...
|
||||
editor.name = Nazwa:
|
||||
@@ -210,9 +213,9 @@ editor.removeunit = Remove Unit
|
||||
editor.teams = Drużyny
|
||||
editor.errorload = Błąd podczas ładowania pliku:\n[accent]{0}
|
||||
editor.errorsave = Błąd podczas zapisywania pliku:\n[accent]{0}
|
||||
editor.errorimage = That's an image, not a map. Don't go around changing extensions expecting it to work.\n\nIf you want to import a legacy map, use the 'import legacy map' button in the editor.
|
||||
editor.errorlegacy = This map is too old, and uses a legacy map format that is no longer supported.
|
||||
editor.errorheader = This map file is either not valid or corrupt.
|
||||
editor.errorimage = To obraz, nie mapa. Nie zmieniaj rozszeżenia spodziewając sie że to coś zmieni.\n\nJeśli chcesz zaimportować starszą mapę, użyj przycisku „importuj starszą mapę” w edytorze.
|
||||
editor.errorlegacy = Ta mapa jest zbyt stara i używa starszego formatu mapy, który nie jest już obsługiwany.
|
||||
editor.errorheader = Ten plik mapy jest nieprawidłowy lub uszkodzony.
|
||||
editor.errorname = Mapa nie zawiera nazwy.
|
||||
editor.update = Aktualizuj
|
||||
editor.randomize = Losuj
|
||||
@@ -245,30 +248,31 @@ editor.mapname = Nazwa mapy:
|
||||
editor.overwrite = [accent]Uwaga!\nSpowoduje to nadpisanie istniejącej mapy.
|
||||
editor.overwrite.confirm = [scarlet]Uwaga![] Mapa pod tą nazwą już istnieje. Jesteś pewny, że chcesz ją nadpisać?
|
||||
editor.selectmap = Wybierz mapę do załadowania:
|
||||
toolmode.replace = Replace
|
||||
toolmode.replace.description = Draws only on solid blocks.
|
||||
toolmode.replaceall = Replace All
|
||||
toolmode.replaceall.description = Replace all blocks in map.
|
||||
toolmode.orthogonal = Orthogonal
|
||||
toolmode.orthogonal.description = Draws only orthogonal lines.
|
||||
toolmode.square = Square
|
||||
toolmode.replace = Zastąp
|
||||
toolmode.replace.description = Rysuje tylko na stałych blokach.
|
||||
toolmode.replaceall = Zastąp wszystko
|
||||
toolmode.replaceall.description = Zastąp wszystkie bloki na mapie.
|
||||
toolmode.orthogonal = Prostokątny
|
||||
toolmode.orthogonal.description = Rysuje tylko prostopadłe linie.
|
||||
toolmode.square = Kwadrat
|
||||
toolmode.square.description = Square brush.
|
||||
toolmode.eraseores = Erase Ores
|
||||
toolmode.eraseores.description = Erase only ores.
|
||||
toolmode.fillteams = Fill Teams
|
||||
toolmode.fillteams.description = Fill teams instead of blocks.
|
||||
toolmode.drawteams = Draw Teams
|
||||
toolmode.drawteams.description = Draw teams instead of blocks.
|
||||
toolmode.eraseores = Wymaż Rudy
|
||||
toolmode.eraseores.description = Usuń tylko rudy.
|
||||
toolmode.fillteams = Wypełń Drużyny
|
||||
toolmode.fillteams.description = Wypełniaj drużyny zamiast bloków.
|
||||
toolmode.drawteams = Rysuj Drużyny
|
||||
toolmode.drawteams.description = Rysuj drużyny zamiast bloków.
|
||||
|
||||
filters.empty = [LIGHT_GRAY]Brak filtrów! Dodaj jeden za pomocą przycisku poniżej.
|
||||
filter.distort = Distort
|
||||
filter.distort = Zniekształcanie
|
||||
filter.noise = Szum
|
||||
filter.median = Median
|
||||
filter.blend = Blend
|
||||
filter.defaultores = Default Ores
|
||||
filter.defaultores = Domyślne rudy
|
||||
filter.ore = Ruda
|
||||
filter.rivernoise = Szum rzeki
|
||||
filter.mirror = Mirror
|
||||
filter.clear = Clear
|
||||
filter.mirror = Lustro
|
||||
filter.clear = Oczyść
|
||||
filter.option.ignore = Ignore
|
||||
filter.scatter = Zozprosz
|
||||
filter.terrain = Teren
|
||||
@@ -278,17 +282,17 @@ filter.option.mag = Magnituda
|
||||
filter.option.threshold = Próg
|
||||
filter.option.circle-scale = Skala koła
|
||||
filter.option.octaves = Oktawy
|
||||
filter.option.falloff = Falloff
|
||||
filter.option.angle = Angle
|
||||
filter.option.falloff = Spadek
|
||||
filter.option.angle = Kąt
|
||||
filter.option.block = Blok
|
||||
filter.option.floor = Podłoga
|
||||
filter.option.flooronto = Target Floor
|
||||
filter.option.flooronto = Podłoga Docelowa
|
||||
filter.option.wall = Ściana
|
||||
filter.option.ore = Ruda
|
||||
filter.option.floor2 = Druga podłoga
|
||||
filter.option.threshold2 = Secondary Threshold
|
||||
filter.option.radius = Zasięg
|
||||
filter.option.percentile = Percentile
|
||||
filter.option.percentile = Percentyl
|
||||
width = Szerokość:
|
||||
height = Wysokość:
|
||||
menu = Menu
|
||||
@@ -305,6 +309,7 @@ tutorial = Poradnik
|
||||
editor = Edytor
|
||||
mapeditor = Edytor map
|
||||
donate = Wspomóż nas
|
||||
|
||||
abandon = Opuść
|
||||
abandon.text = Ta strefa i wszystkie jej surowce będą przejęte przez przeciwników.
|
||||
locked = Zablokowane
|
||||
@@ -325,10 +330,11 @@ zone.requirement.complete = Fala {0} osiągnięta:\n{1} Wymagania strefy został
|
||||
zone.config.complete = Fala {0} osiągnięta:\nKonfiguracja ładunku odblokowana.
|
||||
zone.resources = Wykryte Zasoby:
|
||||
zone.objective = [lightgray]Objective: [accent]{0}
|
||||
zone.objective.survival = Survive
|
||||
zone.objective.attack = Destroy Enemy Core
|
||||
zone.objective.survival = Przeżyj
|
||||
zone.objective.attack = Zniszcz Rdzeń Wroga
|
||||
add = Dodaj...
|
||||
boss.health = Boss Health
|
||||
|
||||
connectfail = [crimson]Nie można połączyć się z serwerem:\n\n[accent]{0}
|
||||
error.unreachable = Serwer niedostępny.\nCzy adres jest wpisany poprawnie?
|
||||
error.invalidaddress = Niepoprawny adres.
|
||||
@@ -340,31 +346,34 @@ error.io = Błąd siecowy I/O.
|
||||
error.any = Nieznany błąd sieci.
|
||||
error.bloom = Failed to initialize bloom.\nYour device may not support it.
|
||||
zone.groundZero.name = Wybuch Lądowy
|
||||
zone.desertWastes.name = Desert Wastes
|
||||
zone.desertWastes.name = Pustynne Pustkowia
|
||||
zone.craters.name = Kratery
|
||||
zone.frozenForest.name = Zamrożony Las
|
||||
zone.ruinousShores.name = Zniszczone Przybrzerza
|
||||
zone.stainedMountains.name = Zabarwione Góry
|
||||
zone.desolateRift.name = Ponura Szczelina
|
||||
zone.nuclearComplex.name = Centrum Wyrobu Jądrowego
|
||||
zone.overgrowth.name = Overgrowth
|
||||
zone.tarFields.name = Tar Fields
|
||||
zone.saltFlats.name = Salt Flats [scarlet][[WIP]
|
||||
zone.impact0078.name = Impact 0078
|
||||
zone.crags.name = Crags
|
||||
zone.groundZero.description = The optimal location to begin once more. Low enemy threat. Few resources.\nGather as much lead and copper as possible.\nMove on.
|
||||
zone.frozenForest.description = Even here, closer to mountains, the spores have spread. The fridgid temperatures cannot contain them forever.\n\nBegin the venture into power. Build combustion generators. Learn to use menders.
|
||||
zone.overgrowth.name = Przerośnięty Las
|
||||
zone.tarFields.name = Pola Smołowe
|
||||
zone.saltFlats.name = Salt Flats
|
||||
zone.impact0078.name = Uderzenie 0078
|
||||
zone.crags.name = Urwisko
|
||||
|
||||
zone.groundZero.description = Optymalna lokalizacja, aby rozpocząć jeszcze raz. Niskie zagrożenie. Niewiele zasobów.\nZbierz jak najwięcej miedzi i ołowiu, tyle ile jest możliwe.\nPrzejdź do następnej strefy jak najszybciej.
|
||||
zone.frozenForest.description = Nawet tutaj, bliżej gór, zarodniki rozprzestrzeniły się. Niskie temperatury nie mogą ich zatrzymać na zawsze.\n\nRozpocznij przedsięwzięcie od władzy. Buduj generatory spalinowe. Naucz się korzystać z naprawiaczy.
|
||||
zone.desertWastes.description = These wastes are vast, unpredictable, and criss-crossed with derelict sector structures.\nCoal is present in the region. Burn it for power, or synthesize graphite.\n\n[lightgray]This landing location cannot be guaranteed.
|
||||
zone.saltFlats.description = On the outskirts of the desert lie the Salt Flats. Few resources can be found in this location.\n\nThe enemy has erected a resource storage complex here. Eradicate their core. Leave nothing standing.
|
||||
zone.craters.description = Water has accumulated in this crater, relic of the old wars. Reclaim the area. Collect sand. Smelt metaglass. Pump water to cool turrets and drills.
|
||||
zone.ruinousShores.description = Past the wastes, is the shoreline. Once, this location housed a coastal defense array. Not much of it remains. Only the most basic defense structures have remained unscathed, everything else reduced to scrap.\nContinue the expansion outwards. Rediscover the technology.
|
||||
zone.stainedMountains.description = Further inland lie the mountains, yet untainted by spores.\nExtract the abundant titanium in this area. Learn how to use it.\n\nThe enemy presence is greater here. Do not give them time to send their strongest units.
|
||||
zone.overgrowth.description = This area is overgrown, closer to the source of the spores.\nThe enemy has established an outpost here. Build dagger units. Destroy it. Reclaim that which was lost.
|
||||
zone.tarFields.description = The outskirts of an oil production zone, between the mountains and desert. One of the few areas with usable tar reserves.\nAlthough abandoned, this area has some dangerous enemy forces nearby. Do not underestimate them.\n\n[lightgray]Research oil processing technology if possible.
|
||||
zone.desolateRift.description = An extremely dangerous zone. Plentiful resources, but little space. High risk of destruction. Leave as soon as possible. Do not be fooled by the long spacing between enemy attacks.
|
||||
zone.nuclearComplex.description = A former facility for the production and processing of thorium, reduced to ruins.\n[lightgray]Research the thorium and its many uses.\n\nThe enemy is present here in great numbers, constantly scouting for attackers.
|
||||
zone.stainedMountains.description = W głębi lądu leżą góry, jeszcze nieskażone przez zarodniki.\nWydobądź obfity tytan w tym obszarze. Dowiedz się, jak z niego korzystać.\n\nObecność wroga jest tutaj większa. Nie daj im czasu na wysłanie swoich najsilniejszych jednostek.
|
||||
zone.overgrowth.description = Obszar ten jest zarośnięty, bliżej źródła zarodników.\nWróg założył tu placówkę. Zbuduj jednostki Nóż. Zniszcz to. Odzyskaj to, co nam odebrano.
|
||||
zone.tarFields.description = Obrzeża strefy produkcji ropy, między górami a pustynią. Jeden z niewielu obszarów z rezerwami użytecznej smoły.\nMimo że ta strefa jest opuszczona, w pobliżu znajdują się niebezpieczne siły wroga. Nie lekceważ ich.\n\n[lightgray]Jeśli to możliwe, zbadaj technologię przetwarzania oleju.
|
||||
zone.desolateRift.description = Strefa wyjątkowo niebezpieczna. Opfita w zasoby ale mało miejsca. Wysokie ryzyko zniszczenia. Opuść tę strefe jak najszybciej. Nie daj się zwieść długiemu odstępowi między atakami wroga.
|
||||
zone.nuclearComplex.description = Dawny zakład produkcji i przetwarzania toru, zredukowny do ruin.\n[lightgray]Zbadaj tor i jego zastosowania.\n\nWróg jest tutaj obecny w dużej ilości, nieustannie poszukuje napastników.
|
||||
zone.fungalPass.description = A transition area between high mountains and lower, spore-ridden lands. A small enemy reconnaissance base is located here.\nDestroy it.\nUse Dagger and Crawler units. Take out the two cores.
|
||||
zone.impact0078.description = <insert description here>
|
||||
zone.crags.description = <insert description here>
|
||||
|
||||
settings.language = Język
|
||||
settings.reset = Przywróć domyślne
|
||||
settings.rebind = Zmień
|
||||
@@ -417,6 +426,7 @@ blocks.inaccuracy = Niedokładność
|
||||
blocks.shots = Strzały
|
||||
blocks.reload = Strzałów/sekundę
|
||||
blocks.ammo = Amunicja
|
||||
|
||||
bar.drillspeed = Prędkość wiertła: {0}/s
|
||||
bar.efficiency = Efektywność: {0}%
|
||||
bar.powerbalance = Moc: {0}
|
||||
@@ -428,17 +438,19 @@ bar.heat = Ciepło
|
||||
bar.power = Prąd
|
||||
bar.progress = Postęp Budowy
|
||||
bar.spawned = Jednostki: {0}/{1}
|
||||
|
||||
bullet.damage = [stat]{0}[lightgray] Obrażenia
|
||||
bullet.splashdamage = [stat]{0}[lightgray] Obrażenia obszarowe ~[stat] {1}[lightgray] kratki
|
||||
bullet.incendiary = [stat]zapalający
|
||||
bullet.homing = [stat]naprowadzający
|
||||
bullet.shock = [stat]piorunoey
|
||||
bullet.shock = [stat]piorunowy
|
||||
bullet.frag = [stat]fragmentacyjny
|
||||
bullet.knockback = [stat]{0}[lightgray] odrzut
|
||||
bullet.freezing = [stat]zamrażający
|
||||
bullet.tarred = [stat]smolny
|
||||
bullet.multiplier = [stat]{0}[lightgray]x mnożnik amunicji
|
||||
bullet.reload = [stat]{0}[lightgray]x fire rate
|
||||
bullet.reload = [stat]{0}[lightgray]x szybkość ataku
|
||||
|
||||
unit.blocks = Klocki
|
||||
unit.powersecond = jednostek prądu na sekundę
|
||||
unit.liquidsecond = jednostek płynów na sekundę
|
||||
@@ -473,16 +485,16 @@ setting.fpscap.text = {0} FPS
|
||||
setting.uiscale.name = UI Scaling[lightgray] (require restart)[]
|
||||
setting.swapdiagonal.name = Pozwala na ukośne stawianie
|
||||
setting.difficulty.training = trening
|
||||
setting.difficulty.easy = łatwy
|
||||
setting.difficulty.normal = normalny
|
||||
setting.difficulty.hard = trudny
|
||||
setting.difficulty.insane = szalony
|
||||
setting.difficulty.easy = Łatwy
|
||||
setting.difficulty.normal = Normalny
|
||||
setting.difficulty.hard = Trudny
|
||||
setting.difficulty.insane = Szalony
|
||||
setting.difficulty.name = Poziom trudności
|
||||
setting.screenshake.name = Trzęsienie się ekranu
|
||||
setting.effects.name = Wyświetlanie efektów
|
||||
setting.sensitivity.name = Czułość kontrolera
|
||||
setting.saveinterval.name = Interwał automatycznego zapisywania
|
||||
setting.seconds = Sekundy
|
||||
setting.seconds = {0} Sekundy
|
||||
setting.fullscreen.name = Pełny ekran
|
||||
setting.borderlesswindow.name = Bezramkowe okno[LIGHT_GRAY] (może wymagać restartu)
|
||||
setting.fps.name = Pokazuj FPS
|
||||
@@ -547,6 +559,7 @@ mode.pvp.description = Walcz przeciwko innym graczom.
|
||||
mode.attack.name = Atak
|
||||
mode.attack.description = Brak fal, celem jest zniszczenie bazy przeciwnika.
|
||||
mode.custom = Własny tryb
|
||||
|
||||
rules.infiniteresources = Nieskończone zasoby
|
||||
rules.wavetimer = Zegar fal
|
||||
rules.waves = Fale
|
||||
@@ -573,6 +586,7 @@ rules.title.resourcesbuilding = Zasoby i Budowanie
|
||||
rules.title.player = Gracze
|
||||
rules.title.enemy = Przeciwnicy
|
||||
rules.title.unit = Jednostki
|
||||
|
||||
content.item.name = Przedmioty
|
||||
content.liquid.name = Płyny
|
||||
content.unit.name = Jednostki
|
||||
@@ -588,25 +602,25 @@ item.silicon.name = Krzem
|
||||
item.plastanium.name = Plastan
|
||||
item.phase-fabric.name = Włókno Fazowe
|
||||
item.surge-alloy.name = Energetyczny Stop
|
||||
item.spore-pod.name = Spore Pod
|
||||
item.spore-pod.name = Kapsułka Zarodników
|
||||
item.sand.name = Piasek
|
||||
item.blast-compound.name = Wybuchowy związek
|
||||
item.pyratite.name = Piratian
|
||||
item.metaglass.name = Metaszkło
|
||||
item.scrap.name = Resztki
|
||||
item.scrap.name = Złom
|
||||
liquid.water.name = Woda
|
||||
liquid.slag.name = Slag
|
||||
liquid.slag.name = Żużel
|
||||
liquid.oil.name = Ropa
|
||||
liquid.cryofluid.name = Lodociecz
|
||||
mech.alpha-mech.name = Alpha
|
||||
mech.alpha-mech.weapon = Ciężki Karabin
|
||||
mech.alpha-mech.ability = Chmara Dronòw
|
||||
mech.alpha-mech.ability = Regeneracja
|
||||
mech.delta-mech.name = Delta
|
||||
mech.delta-mech.weapon = Generator Piorunów
|
||||
mech.delta-mech.ability = Rozładunek
|
||||
mech.delta-mech.ability = Wyładowanie
|
||||
mech.tau-mech.name = Tau
|
||||
mech.tau-mech.weapon = Laser Odbudowy
|
||||
mech.tau-mech.ability = Wybuch Naprawy
|
||||
mech.tau-mech.ability = Pole Naprawy
|
||||
mech.omega-mech.name = Omega
|
||||
mech.omega-mech.weapon = Rakiety Chmarowe
|
||||
mech.omega-mech.ability = Układ Obronny
|
||||
@@ -614,7 +628,7 @@ mech.dart-ship.name = Strzałka
|
||||
mech.dart-ship.weapon = Karabin
|
||||
mech.javelin-ship.name = Javelin
|
||||
mech.javelin-ship.weapon = Seria Rakiet
|
||||
mech.javelin-ship.ability = Dopalacze Prądowe
|
||||
mech.javelin-ship.ability = Wyładowania Dopalacza
|
||||
mech.trident-ship.name = Trójząb
|
||||
mech.trident-ship.weapon = Wnęka bombowa
|
||||
mech.glaive-ship.name = Glewia
|
||||
@@ -638,25 +652,25 @@ block.sand-boulder.name = Sand Boulder
|
||||
block.grass.name = Trawa
|
||||
block.salt.name = Sól
|
||||
block.saltrocks.name = Skały Solne
|
||||
block.pebbles.name = Pebbles
|
||||
block.tendrils.name = Tendrils
|
||||
block.pebbles.name = Kamyczki
|
||||
block.tendrils.name = Wić
|
||||
block.sandrocks.name = Skały Piaskowe
|
||||
block.spore-pine.name = Spore Pine
|
||||
block.sporerocks.name = Spore Rocks
|
||||
block.spore-pine.name = Sosna Zarodkowa
|
||||
block.sporerocks.name = Skała z Zarodkami
|
||||
block.rock.name = Skały
|
||||
block.snowrock.name = Skały śnieżne
|
||||
block.snow-pine.name = Snow Pine
|
||||
block.shale.name = Shale
|
||||
block.shale-boulder.name = Shale Boulder
|
||||
block.shale.name = Łupek
|
||||
block.shale-boulder.name = Głaz Łupkowy
|
||||
block.moss.name = Mech
|
||||
block.shrubs.name = Shrubs
|
||||
block.spore-moss.name = Spore Moss
|
||||
block.shalerocks.name = Shale Rocks
|
||||
block.scrap-wall.name = Scrap Wall
|
||||
block.scrap-wall-large.name = Large Scrap Wall
|
||||
block.scrap-wall-huge.name = Huge Scrap Wall
|
||||
block.scrap-wall-gigantic.name = Gigantic Scrap Wall
|
||||
block.thruster.name = Thruster
|
||||
block.shrubs.name = Krzewy
|
||||
block.spore-moss.name = Mech z Zarodkami
|
||||
block.shalerocks.name = Skały Łupkowe
|
||||
block.scrap-wall.name = Ściana z Złomu
|
||||
block.scrap-wall-large.name = Duża Ściana z Złomu
|
||||
block.scrap-wall-huge.name = Ogromna Ściana z Złomu
|
||||
block.scrap-wall-gigantic.name = Gigantyczna Ściana z Złomu
|
||||
block.thruster.name = Silnik
|
||||
block.kiln.name = Wypalarka
|
||||
block.graphite-press.name = Grafitowa Prasa
|
||||
block.multi-press.name = Multi-Prasa
|
||||
@@ -667,8 +681,8 @@ block.core-foundation.name = Rdzeń: Podstawa
|
||||
block.core-nucleus.name = Rdzeń: Jądro
|
||||
block.deepwater.name = Głęboka Woda
|
||||
block.water.name = Woda
|
||||
block.tainted-water.name = Tainted Water
|
||||
block.darksand-tainted-water.name = Dark Sand Tainted Water
|
||||
block.tainted-water.name = Skażona Woda
|
||||
block.darksand-tainted-water.name = Skażona Woda z Ciemnym Piaskiem
|
||||
block.tar.name = Smoła
|
||||
block.stone.name = Kamień
|
||||
block.sand.name = Piasek
|
||||
@@ -676,8 +690,8 @@ block.darksand.name = Czarny piasek
|
||||
block.ice.name = Lód
|
||||
block.snow.name = Śnieg
|
||||
block.craters.name = Kratery
|
||||
block.sand-water.name = Sand water
|
||||
block.darksand-water.name = Dark Sand Water
|
||||
block.sand-water.name = Woda z Piaskiem
|
||||
block.darksand-water.name = Woda z Ciemnym Piaskiem
|
||||
block.char.name = Char
|
||||
block.holostone.name = Holo stone
|
||||
block.ice-snow.name = Lodowy Śnieg
|
||||
@@ -685,26 +699,26 @@ block.rocks.name = Skały
|
||||
block.icerocks.name = Lodowe skały
|
||||
block.snowrocks.name = Śnieżne Skały
|
||||
block.dunerocks.name = Dune Rocks
|
||||
block.pine.name = Pine
|
||||
block.white-tree-dead.name = White Tree Dead
|
||||
block.white-tree.name = White Tree
|
||||
block.spore-cluster.name = Spore Cluster
|
||||
block.pine.name = Sosna
|
||||
block.white-tree-dead.name = Białe Drzewo Martwe
|
||||
block.white-tree.name = Białe Drzewo
|
||||
block.spore-cluster.name = Grono Zarodków
|
||||
block.metal-floor.name = Metalowa Podłoga
|
||||
block.metal-floor-2.name = Metalowa Podłoga 2
|
||||
block.metal-floor-3.name = Metalowa Podłoga 3
|
||||
block.metal-floor-5.name = Metalowa Podłoga 5
|
||||
block.metal-floor-damaged.name = Uszkodzona Metalowa Podłoga
|
||||
block.dark-panel-1.name = Dark Panel 1
|
||||
block.dark-panel-2.name = Dark Panel 2
|
||||
block.dark-panel-3.name = Dark Panel 3
|
||||
block.dark-panel-4.name = Dark Panel 4
|
||||
block.dark-panel-5.name = Dark Panel 5
|
||||
block.dark-panel-6.name = Dark Panel 6
|
||||
block.dark-metal.name = Dark Metal
|
||||
block.ignarock.name = Igna Rock
|
||||
block.hotrock.name = Hot Rock
|
||||
block.dark-panel-1.name = Ciemny Panel 1
|
||||
block.dark-panel-2.name = Ciemny Panel 2
|
||||
block.dark-panel-3.name = Ciemny Panel 3
|
||||
block.dark-panel-4.name = Ciemny Panel 4
|
||||
block.dark-panel-5.name = Ciemny Panel 5
|
||||
block.dark-panel-6.name = Ciemny Panel 6
|
||||
block.dark-metal.name = Ciemny Metal
|
||||
block.ignarock.name = Skała Wulkaniczna
|
||||
block.hotrock.name = Gorący Kamień
|
||||
block.magmarock.name = Magma Rock
|
||||
block.cliffs.name = Cliffs
|
||||
block.cliffs.name = Klify
|
||||
block.copper-wall.name = Miedziana Ściana
|
||||
block.copper-wall-large.name = Duża miedziana ściana
|
||||
block.titanium-wall.name = Tytanowa Ściana
|
||||
@@ -720,6 +734,13 @@ block.scorch.name = Płomień
|
||||
block.scatter.name = Flak
|
||||
block.hail.name = Hail
|
||||
block.lancer.name = Lancer
|
||||
block.wave.name = Wave
|
||||
block.swarmer.name = Działo Rojowe
|
||||
block.salvo.name = Działo Salwowe
|
||||
block.ripple.name = Działo falowe
|
||||
block.cyclone.name = Cyklon
|
||||
block.fuse.name = Lont
|
||||
block.shock-mine.name = Mina
|
||||
block.conveyor.name = Przenośnik
|
||||
block.titanium-conveyor.name = Tytanowy przenośnik
|
||||
block.junction.name = Węzeł
|
||||
@@ -730,7 +751,7 @@ block.overflow-gate.name = Brama Przeciwprzepełnieniowa
|
||||
block.silicon-smelter.name = Huta Krzemu
|
||||
block.phase-weaver.name = Fazowa Fabryka
|
||||
block.pulverizer.name = Rozkruszacz
|
||||
block.cryofluidmixer.name = Mieszacz Cryofluidu
|
||||
block.cryofluidmixer.name = Mieszacz Lodocieczy
|
||||
block.melter.name = Przetapiacz
|
||||
block.incinerator.name = Spalacz
|
||||
block.spore-press.name = Spore Press
|
||||
@@ -742,15 +763,15 @@ block.surge-tower.name = Wieża Energetyczna
|
||||
block.battery.name = Bateria
|
||||
block.battery-large.name = Duża Bateria
|
||||
block.combustion-generator.name = Generator Spalinowy
|
||||
block.turbine-generator.name = Generator Turbinowy
|
||||
block.turbine-generator.name = Generator Parowy
|
||||
block.differential-generator.name = Generator Różnicowy
|
||||
block.impact-reactor.name = Reaktor Uderzeniowy
|
||||
block.mechanical-drill.name = Wiertło Mechaniczne
|
||||
block.pneumatic-drill.name = Wiertło Pneumatyczne
|
||||
block.laser-drill.name = Wiertło Laserowe
|
||||
block.water-extractor.name = Ekstraktor Wody
|
||||
block.cultivator.name = Spluchniacz
|
||||
block.dart-mech-pad.name = Dart Mech Pad
|
||||
block.cultivator.name = Spulchniacz
|
||||
block.dart-mech-pad.name = Lądowisko Mecha Alpha
|
||||
block.delta-mech-pad.name = Lądowisko Mecha Delta
|
||||
block.javelin-ship-pad.name = Lądowisko Statku Oszczep
|
||||
block.trident-ship-pad.name = Lądowisko Statku Trójząb
|
||||
@@ -766,10 +787,6 @@ block.power-void.name = Próżnia prądu
|
||||
block.power-source.name = Nieskończony Prąd
|
||||
block.unloader.name = Wyciągacz
|
||||
block.vault.name = Magazyn
|
||||
block.wave.name = Działo Płynowe
|
||||
block.swarmer.name = Działo Rojowe
|
||||
block.salvo.name = Działo Salwowe
|
||||
block.ripple.name = Działo falowe
|
||||
block.phase-conveyor.name = Fazowy Transporter
|
||||
block.bridge-conveyor.name = Most Transportowy
|
||||
block.plastanium-compressor.name = Kompresor Plastanu
|
||||
@@ -778,7 +795,7 @@ block.blast-mixer.name = Wybuchowy Mieszacz
|
||||
block.solar-panel.name = Panel Słoneczny
|
||||
block.solar-panel-large.name = Duży Panel Słoneczny
|
||||
block.oil-extractor.name = Ekstraktor Ropy
|
||||
block.draug-factory.name = Draug Miner Drone Factory
|
||||
block.draug-factory.name = Fabryka Dronów Draug
|
||||
block.spirit-factory.name = Fabryka Dronów Duch
|
||||
block.phantom-factory.name = Fabryka Dronów Widmo
|
||||
block.wraith-factory.name = Fabryka Wojowników Zjawa
|
||||
@@ -802,13 +819,10 @@ block.blast-drill.name = Wiertło Wybuchowe
|
||||
block.thermal-pump.name = Pompa Termalna
|
||||
block.thermal-generator.name = Generator Termalny
|
||||
block.alloy-smelter.name = Piec Mieszający
|
||||
block.mender.name = Mender
|
||||
block.mender.name = Naprawiacz
|
||||
block.mend-projector.name = Projektor Napraw
|
||||
block.surge-wall.name = Ściana Stopu Energetycznego
|
||||
block.surge-wall-large.name = Duża Ściana Stopu Energetycznego
|
||||
block.cyclone.name = Cyklon
|
||||
block.fuse.name = Lont
|
||||
block.shock-mine.name = Mina
|
||||
block.overdrive-projector.name = Projektor Nad-prędkości
|
||||
block.force-projector.name = Projektor Pola Siłowego
|
||||
block.arc.name = Piorun
|
||||
@@ -819,9 +833,9 @@ block.container.name = Kontener
|
||||
block.launch-pad.name = Skocznia
|
||||
block.launch-pad-large.name = Duża skocznia
|
||||
team.blue.name = niebieski
|
||||
team.red.name = czerwony
|
||||
team.orange.name = pomarańczowy
|
||||
team.none.name = szary
|
||||
team.crux.name = czerwony
|
||||
team.sharded.name = pomarańczowy
|
||||
team.derelict.name = szary
|
||||
team.green.name = zielony
|
||||
team.purple.name = fioletowy
|
||||
unit.spirit.name = Duch
|
||||
@@ -832,9 +846,9 @@ unit.crawler.name = Pełzak
|
||||
unit.titan.name = Tytan
|
||||
unit.ghoul.name = Upiór
|
||||
unit.wraith.name = Zjawa
|
||||
unit.fortress.name = Fortreca
|
||||
unit.revenant.name = Potwór
|
||||
unit.eruptor.name = Wysadzać
|
||||
unit.fortress.name = Forteca
|
||||
unit.revenant.name = Zjawa
|
||||
unit.eruptor.name = Roztapiacz
|
||||
unit.chaos-array.name = Kolejka Chaosu
|
||||
unit.eradicator.name = Niszczyciel
|
||||
unit.lich.name = Obudzony
|
||||
@@ -860,6 +874,7 @@ tutorial.daggerfactory = Construct a[accent] dagger mech factory.[]\n\nThis will
|
||||
tutorial.router = Factories need resources to function.\nCreate a router to split conveyor resources.
|
||||
tutorial.dagger = Link power nodes to the factory.\nOnce requirements are met, a mech will be created.\n\nCreate more drills, generators and conveyors as necessary.
|
||||
tutorial.battle = The[LIGHT_GRAY] enemy[] has revealed their core.\nDestroy it with your unit and dagger mechs.
|
||||
|
||||
item.copper.description = Przydatny materiał budowlany. Szeroko używany w prawie każdej konstrukcji.
|
||||
item.lead.description = Podstawowy matriał. Używany w przesyle przemiotów i płynów. Nie jest on przypadkiem szkodliwy?
|
||||
item.metaglass.description = Niesamowite silne szkło. Szeroko używane w transporcie i przechowywaniu płynów.
|
||||
@@ -883,7 +898,7 @@ liquid.cryofluid.description = Najefektywniejsza ciecz do schładzania budowli.
|
||||
mech.alpha-mech.description = Standardowy mech. Średnia broń i prędkość, leć potrafi stworzyć trzy małe drony do walki.
|
||||
mech.delta-mech.description = Szybki i wrażliwy mech stworzony do szybkih ataków i ucieczki. Budynką robi prawie nic, leć jest wstanie szybko rozwalić grupę wrogich jednostek piorunami.
|
||||
mech.tau-mech.description = Mech pomocny. Naprawia budynki drużyny, strzelając w nie. Potrafi wygasić niedalekie pożary i uleczyć bliskich przyjaciół.
|
||||
mech.omega-mech.description = Duży i silny mech, zaprojektowany na ataki. Jego zdolność pozwala mu na zablokowanie do 90% zagrożeń.
|
||||
mech.omega-mech.description = Duży i silny mech, zaprojektowany na ataki. Jego zdolność pozwala mu na zablokowanie do 90% obrażeń.
|
||||
mech.dart-ship.description = Standardowy statek. Lekki i szybki, ale jest kiepski jak chodzi o walkę i kopanie.
|
||||
mech.javelin-ship.description = Statek do ataku i szybkiej ucieczki. Zaczyna powoli, ale przyspiesza do wielkiej prędkości. Przy tej prędkości, może przelecieć koło wrogiej bazy i atakować piorunami czy rakietami.
|
||||
mech.trident-ship.description = Ciężki bombowiec. Dobrze uzbrojony.
|
||||
@@ -893,12 +908,12 @@ unit.spirit.description = Początkowy dron. Rdzeń zawsze tworzy jeden. Wydobywa
|
||||
unit.phantom.description = Zaawansowany dron. Wydobywa surowce, naprawia budynki oraz pomaga przy budowie szybciej niż dron Duch.
|
||||
unit.dagger.description = Podstawowy mech lądowy. Sam jest słaby, lecz przydatny w dużych ilościach.
|
||||
unit.crawler.description = A ground unit consisting of a stripped-down frame with high explosives strapped on top. Not particular durable. Explodes on contact with enemies.
|
||||
unit.titan.description = Bardziej zaawansowany mech lądowy. Atakuje cele lądowe i niebne.
|
||||
unit.titan.description = Bardziej zaawansowany mech lądowy. Atakuje cele lądowe i powietrzne.
|
||||
unit.fortress.description = Wielka jednostka artyleryjna lądowa.
|
||||
unit.eruptor.description = A heavy mech designed to take down structures. Fires a stream of slag at enemy fortifications, melting them and setting volatiles on fire.
|
||||
unit.chaos-array.description =
|
||||
unit.eradicator.description =
|
||||
unit.wraith.description = Szybka jednostka do ataku i ucieczki.
|
||||
unit.wraith.description = Szybka jednostka, stosuje taktyke uderz-uciekaj.
|
||||
unit.ghoul.description = Ciężki bombowiec.
|
||||
unit.revenant.description = A heavy, hovering missile array.
|
||||
unit.lich.description =
|
||||
@@ -913,10 +928,10 @@ block.alloy-smelter.description = Produces surge alloy from titanium, lead, sili
|
||||
block.cryofluidmixer.description = Combines water and titanium into cryofluid which is much more efficient for cooling.
|
||||
block.blast-mixer.description = Uses oil for transforming pyratite into the less flammable but more explosive blast compound.
|
||||
block.pyratite-mixer.description = Mixes coal, lead and sand into highly flammable pyratite.
|
||||
block.melter.description = Melts down scrap into slag for further processing or usage in turrets.
|
||||
block.separator.description = Extracts useful minerals from slag.
|
||||
block.melter.description = Przetapia złom na żużel do dalszego przetwarzania lub użycia w wieżyczkach
|
||||
block.separator.description = Oddziel użyteczne materiały z mieszaniny jaką jest żużel.
|
||||
block.spore-press.description = Compresses spore pods into oil.
|
||||
block.pulverizer.description = Crushes scrap into sand. Useful when there is a lack of natural sand.
|
||||
block.pulverizer.description = Mieli złom w drobny piaske. Przydatne, gdy brakuje naturalnego piasku.
|
||||
block.coal-centrifuge.description = Solidifes oil into chunks of coal.
|
||||
block.incinerator.description = Gets rid of any excess item or liquid.
|
||||
block.power-void.description = Niszczy całą energię wprowadzoną do tego bloku. Dostępny tylko w trybie sandbox.
|
||||
@@ -961,12 +976,12 @@ block.liquid-tank.description = Magazynuje ogromne ilości cieczy. Użyj go do s
|
||||
block.liquid-junction.description = Działa jak most dla dwóch krzyżujących się rur. Przydatne w sytuacjach, kiedy dwie rury mają różne ciecze do różnych lokacji.
|
||||
block.bridge-conduit.description = Zaawansowany blok przenoszący ciecze. Pozwala na przenoszenie cieczy nawet do 3 bloków na każdym terenie, przez każdy budynek.
|
||||
block.phase-conduit.description = Zaawansowany blok do przenoszenia cieczy. Używa prądu, aby przenieść ciecz do połączonego transportera fazowego przez kilka bloków.
|
||||
block.power-node.description = Transmits power to connected nodes. Up to four power sources, sinks or nodes can be connected. The node will receive power from or supply power to any adjacent blocks.
|
||||
block.power-node.description = Przesyła moc do połączonych węzłów. Można podłączyć do czterech źródeł zasilania, zlewów lub węzłów. Zasila też bloki które go dotykają.
|
||||
block.power-node-large.description = Has a larger radius than the power node and connects to up to six power sources, sinks or nodes.
|
||||
block.surge-tower.description = An extremely long-range power node with fewer available connections.
|
||||
block.battery.description = Stores power whenever there is an abundance and provides power whenever there is a shortage, as long as there is capacity left.
|
||||
block.battery-large.description = Stores much more power than a regular battery.
|
||||
block.combustion-generator.description = Generates power by burning oil or flammable materials.
|
||||
block.combustion-generator.description = Wytwarza energię poprzez spalanie łatwopalnych materiałów.
|
||||
block.thermal-generator.description = Generates power when placed in hot locations.
|
||||
block.turbine-generator.description = More efficient than a combustion generator, but requires additional water.
|
||||
block.differential-generator.description = Generates large amounts of energy. Utilizes the temperature difference between cryofluid and burning pyratite.
|
||||
|
||||
@@ -44,6 +44,7 @@ newgame = Новая игра
|
||||
none = <ничего>
|
||||
minimap = Мини-карта
|
||||
close = Закрыть
|
||||
website = Веб-сайт
|
||||
quit = Выход
|
||||
maps = Карты
|
||||
continue = Продолжить
|
||||
@@ -605,7 +606,7 @@ item.blast-compound.name = Взрывная смесь
|
||||
item.pyratite.name = Пиротит
|
||||
item.metaglass.name = Метастекло
|
||||
item.scrap.name = Металлолом
|
||||
liquid.water.name = Вода
|
||||
iquid.water.name = Вода
|
||||
liquid.slag.name = Шлак
|
||||
liquid.oil.name = Нефть
|
||||
liquid.cryofluid.name = Криогенная жидкость
|
||||
|
||||
1046
core/assets/bundles/bundle_se.properties
Normal file
1046
core/assets/bundles/bundle_se.properties
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,10 +1,10 @@
|
||||
credits.text = 由[ROYAL]Anuken[]开发 - [SKY]anukendev@gmail.com[]\n\n[GRAY](In case you can't tell, this text is currently unfinished.\nTranslators, don't edit it yet!)
|
||||
credits.text = 由[ROYAL]Anuken[]开发 - [SKY]anukendev@gmail.com[]
|
||||
credits = 致谢
|
||||
contributors = 译者和贡献者
|
||||
discord = 加入 Mindustry 的 Discord!
|
||||
link.discord.description = 官方 Mindustry Discord 聊天室
|
||||
link.github.description = 游戏源码
|
||||
link.changelog.description = List of update changes
|
||||
link.changelog.description = 更新列表
|
||||
link.dev-builds.description = 不稳定开发版
|
||||
link.trello.description = Trello board 上的官方计划表
|
||||
link.itch.io.description = PC版下载和网页版(itch.io)
|
||||
@@ -16,15 +16,18 @@ screenshot.invalid = 地图太大,可能没有足够的内存用于截图。
|
||||
gameover = 你的核心被摧毁了!
|
||||
gameover.pvp = [accent] {0}[] 队获胜!
|
||||
highscore = [accent]新纪录!
|
||||
|
||||
stat.wave = 战胜的波数:[accent]{0}
|
||||
stat.enemiesDestroyed = 消灭的敌人:[accent]{0}
|
||||
stat.built = 建造的建筑:[accent]{0}
|
||||
stat.destroyed = 摧毁的建筑:[accent]{0}
|
||||
stat.deconstructed = 拆除的建筑:[accent]{0}
|
||||
stat.delivered = 发射的资源:
|
||||
stat.rank = 最终排名:[accent]{0}
|
||||
placeline = 你选择了一个方块。\n你能通过[accent]长按几秒钟[]并向一个方向拖动来[accent]直线放置方块[]。\n试试看吧。
|
||||
removearea = 你选择了拆除模式。\n你能通过[accent]长按几秒钟[]并拖动来[accent]删除矩形内的方块[]。\n试试看吧。
|
||||
stat.rank = 最终等级:[accent]{0}
|
||||
|
||||
placeline = 你选择了一个方块。\n你可以[accent]长按几秒钟[]并向一个方向拖动来[accent]直线放置方块[]。\n试试看吧。
|
||||
removearea = 你选择了拆除模式。\n你可以[accent]长按几秒钟[]并拖动来[accent]删除矩形内的方块[]。\n试试看吧。
|
||||
|
||||
launcheditems = [accent]发射的资源
|
||||
map.delete = 确定要删除 "[accent]{0}[]" 地图吗?
|
||||
level.highscore = 最高分:[accent]{0}
|
||||
@@ -54,7 +57,7 @@ filename = 文件名:
|
||||
unlocked = 新方块已解锁!
|
||||
completed = [accent]己研究
|
||||
techtree = 科技树
|
||||
research.list = [LIGHT_GRAY]研究:
|
||||
research.list = [LIGHT_GRAY]研究:
|
||||
research = 研究
|
||||
researched = [LIGHT_GRAY]{0}己研究。
|
||||
players = {0} 玩家在线
|
||||
@@ -100,11 +103,11 @@ server.outdated = [crimson]过旧的服务器![]
|
||||
server.outdated.client = [crimson]过旧的客户端![]
|
||||
server.version = [lightgray]版本:{0} {1}
|
||||
server.custombuild = [yellow]定制版
|
||||
confirmban = 你确认你想拉黑这名玩家吗?
|
||||
confirmkick = 你确定你想要踢走这名玩家吗?
|
||||
confirmunban = 你确定你想要取消拉黑这名玩家吗?
|
||||
confirmadmin = 你确定你想要使这名玩家成为一个管理员吗?
|
||||
confirmunadmin = 你确定你想要删除这名玩家的管理员地位吗?
|
||||
confirmban = 确认拉黑这名玩家?
|
||||
confirmkick = 确定踢走这名玩家?
|
||||
confirmunban = 确定取消拉黑这名玩家?
|
||||
confirmadmin = 确定给予这名玩家管理员权限?
|
||||
confirmunadmin = 确定取消这名玩家的管理员权限?
|
||||
joingame.title = 加入游戏
|
||||
joingame.ip = 地址:
|
||||
disconnect = 已断开
|
||||
@@ -115,7 +118,7 @@ server.port = 端口:
|
||||
server.addressinuse = 地址已经在使用中!
|
||||
server.invalidport = 无效的端口号!
|
||||
server.error = [crimson]创建服务器错误:[accent]{0}
|
||||
save.old = 这个存档属于旧版本游戏,不再被使用。\n\n[LIGHT_GRAY]存档向下兼容将在完整的 4.0 版本中被实现。
|
||||
save.old = 这个存档属于旧版本游戏,不再被使用。\n\n[LIGHT_GRAY]存档向下兼容将在完整的 4.0 版本中实现。
|
||||
save.new = 新存档
|
||||
save.overwrite = 你确定你要覆盖这个存档位吗?
|
||||
overwrite = 覆盖
|
||||
@@ -142,24 +145,24 @@ save.autosave = 自动保存:{0}
|
||||
save.map = 地图:{0}
|
||||
save.wave = 波次 {0}
|
||||
save.difficulty = 难度:{0}
|
||||
save.date = 最后保存过:{0}
|
||||
save.date = 最后保存:{0}
|
||||
save.playtime = 游戏时间:{0}
|
||||
warning = 警告!
|
||||
confirm = 确认
|
||||
delete = 删除
|
||||
ok = 好的
|
||||
ok = 确定
|
||||
open = 打开
|
||||
customize = 定制
|
||||
cancel = 取消
|
||||
openlink = 打开链接
|
||||
copylink = 复制链接
|
||||
back = 返回
|
||||
quit.confirm = 你确定你想要退出?
|
||||
quit.confirm = 确定退出?
|
||||
loading = [accent]加载中……
|
||||
saving = [accent]保存中……
|
||||
wave = [accent]波次 {0}
|
||||
wave.waiting = [LIGHT_GRAY]下一波将在{0}秒后到来
|
||||
wave.waveInProgress = [LIGHT_GRAY]Wave in progress
|
||||
wave.waveInProgress = [LIGHT_GRAY]波次进行中
|
||||
waiting = [LIGHT_GRAY]等待中……
|
||||
waiting.players = 等待玩家中……
|
||||
wave.enemies = [LIGHT_GRAY]剩余 {0} 个敌人
|
||||
@@ -184,9 +187,9 @@ editor.author = 作者:
|
||||
editor.description = 描述:
|
||||
editor.waves = 波数:
|
||||
editor.rules = 规则:
|
||||
editor.generation = Generation:
|
||||
editor.generation = 筛选器:
|
||||
editor.ingame = 游戏内编辑
|
||||
editor.newmap = New Map
|
||||
editor.newmap = 新地图
|
||||
waves.title = 波数
|
||||
waves.remove = 移除
|
||||
waves.never = <永不>
|
||||
@@ -201,7 +204,7 @@ waves.copy = 复制到剪贴板
|
||||
waves.load = 从剪贴板读取
|
||||
waves.invalid = 剪贴板中无效的波次信息。
|
||||
waves.copied = 波次信息已复制。
|
||||
waves.none = No enemies defined.\nNote that empty wave layouts will automatically be replaced with the default layout.
|
||||
waves.none = 无自定义敌人。\n请注意,空布局将自动替换为默认布局。
|
||||
editor.default = [LIGHT_GRAY]<默认>
|
||||
edit = 编辑……
|
||||
editor.name = 名称:
|
||||
@@ -225,93 +228,97 @@ editor.saved = 已保存!
|
||||
editor.save.noname = 你的地图没有名字!在“地图信息”菜单里设置一个。
|
||||
editor.save.overwrite = 你的地图覆盖了一个内建的地图!在“地图信息”菜单里重新设置一个不同的名称。
|
||||
editor.import.exists = [scarlet]无法导入:[]名为‘{0}’的内建地图已存在!
|
||||
editor.import = 导入...
|
||||
editor.import = 导入……
|
||||
editor.importmap = 导入地图
|
||||
editor.importmap.description = 导入一个已经存在的地图
|
||||
editor.importfile = 导入文件
|
||||
editor.importfile.description = 导入一个外置的地图文件
|
||||
editor.importimage = 导入地形图像
|
||||
editor.importimage.description = 导入一个外置的地图图像文件
|
||||
editor.export = 导出...
|
||||
editor.export = 导出……
|
||||
editor.exportfile = 导出文件
|
||||
editor.exportfile.description = 导出一个地图文件
|
||||
editor.exportimage = 导出一个地形文件
|
||||
editor.exportimage.description = 导出一个地图图像文件
|
||||
editor.loadimage = 导入地形
|
||||
editor.saveimage = 导出地形
|
||||
editor.unsaved = [scarlet]你有未保存的更改![]\n你确定你想要要退出?
|
||||
editor.unsaved = [scarlet]更改未保存![]\n确定退出?
|
||||
editor.resizemap = 调整地图大小
|
||||
editor.mapname = 地图名称:
|
||||
editor.overwrite = [accent]警告!\n这将会覆盖一个已经存在的地图。
|
||||
editor.overwrite.confirm = [scarlet]警告![]存在同名地图。你确定你想要覆盖?
|
||||
editor.selectmap = 选择一个地图加载:
|
||||
toolmode.replace = Replace
|
||||
toolmode.replace.description = Draws only on solid blocks.
|
||||
toolmode.replaceall = Replace All
|
||||
toolmode.replaceall.description = Replace all blocks in map.
|
||||
toolmode.orthogonal = Orthogonal
|
||||
toolmode.orthogonal.description = Draws only orthogonal lines.
|
||||
toolmode.square = Square
|
||||
toolmode.square.description = Square brush.
|
||||
toolmode.eraseores = Erase Ores
|
||||
toolmode.eraseores.description = Erase only ores.
|
||||
toolmode.fillteams = Fill Teams
|
||||
toolmode.fillteams.description = Fill teams instead of blocks.
|
||||
toolmode.drawteams = Draw Teams
|
||||
toolmode.drawteams.description = Draw teams instead of blocks.
|
||||
filters.empty = [LIGHT_GRAY]没有过滤器(filters)!用下方的按钮添加一个。
|
||||
filter.distort = 扭曲程度
|
||||
filter.noise = 噪音(Noise)
|
||||
|
||||
toolmode.replace = 替换
|
||||
toolmode.replace.description = 仅在实心块上绘制。
|
||||
toolmode.replaceall = 全部替换
|
||||
toolmode.replaceall.description = 替换地图中的所有方块。
|
||||
toolmode.orthogonal = 正交线
|
||||
toolmode.orthogonal.description = 只绘制正交线。
|
||||
toolmode.square = 方形
|
||||
toolmode.square.description = 方形刷子
|
||||
toolmode.eraseores = 清除矿石
|
||||
toolmode.eraseores.description = 只清除矿石。
|
||||
toolmode.fillteams = 填充团队
|
||||
toolmode.fillteams.description = 填充团队而不是方块。
|
||||
toolmode.drawteams = 绘制团队
|
||||
toolmode.drawteams.description = 绘制团队而不是方块。
|
||||
|
||||
filters.empty = [LIGHT_GRAY]没有筛选器!用下方的按钮添加一个。
|
||||
filter.distort = Distort
|
||||
filter.noise = Noise
|
||||
filter.median = Median
|
||||
filter.blend = Blend
|
||||
filter.defaultores = Default Ores
|
||||
filter.ore = 矿石数量
|
||||
filter.rivernoise = 河流噪音(River Noise)
|
||||
filter.ore = Ore
|
||||
filter.rivernoise = River Noise
|
||||
filter.mirror = Mirror
|
||||
filter.clear = Clear
|
||||
filter.option.ignore = Ignore
|
||||
filter.scatter = 分散程度
|
||||
filter.terrain = 地形
|
||||
filter.option.scale = 规模大小
|
||||
filter.option.chance = 机会(Chance)
|
||||
filter.option.mag = 大小?(Magnitude)
|
||||
filter.option.threshold = 门槛?(Threshold)
|
||||
filter.option.circle-scale = 圈规模?(Circle Scale)
|
||||
filter.option.octaves = 八度?(Octaves)
|
||||
filter.option.falloff = 减少?(Falloff)
|
||||
filter.scatter = Scatter
|
||||
filter.terrain = Terrain
|
||||
filter.option.scale = Scale
|
||||
filter.option.chance = Chance
|
||||
filter.option.mag = Magnitude
|
||||
filter.option.threshold = Threshold
|
||||
filter.option.circle-scale = Circle Scale
|
||||
filter.option.octaves = Octaves
|
||||
filter.option.falloff = Falloff
|
||||
filter.option.angle = Angle
|
||||
filter.option.block = 方块
|
||||
filter.option.floor = 地面
|
||||
filter.option.block = Block
|
||||
filter.option.floor = Floor
|
||||
filter.option.flooronto = Target Floor
|
||||
filter.option.wall = 墙
|
||||
filter.option.ore = 矿石
|
||||
filter.option.floor2 = 第二地面?(Secondary Floor)
|
||||
filter.option.threshold2 = 第二门槛?(Secondary Threshold)
|
||||
filter.option.wall = Wall
|
||||
filter.option.ore = Ore
|
||||
filter.option.floor2 = Secondary Floor
|
||||
filter.option.threshold2 = Secondary Threshold
|
||||
filter.option.radius = Radius
|
||||
filter.option.percentile = Percentile
|
||||
|
||||
width = 宽度:
|
||||
height = 高度:
|
||||
menu = 菜单
|
||||
play = 开始游戏
|
||||
campaign = Campaign
|
||||
load = 载入游戏
|
||||
campaign = 战役模式
|
||||
save = 保存
|
||||
fps = FPS: {0}
|
||||
tps = TPS: {0}
|
||||
ping = 延迟: {0}ms
|
||||
fps = FPS:{0}
|
||||
tps = TPS:{0}
|
||||
ping = 延迟:{0}毫秒
|
||||
language.restart = 为了使语言设置生效请重启游戏。
|
||||
settings = 设置
|
||||
tutorial = 教程
|
||||
editor = 编辑器
|
||||
mapeditor = 地图编辑器
|
||||
donate = 打赏
|
||||
|
||||
abandon = 放弃
|
||||
abandon.text = 这个区域和它的所有资源会被敌人重置。
|
||||
locked = 已被锁定
|
||||
complete = [LIGHT_GRAY]完成:
|
||||
zone.requirement = 在{1}中达到{0}波
|
||||
resume = 恢复区:\n[LIGHT_GRAY]{0}
|
||||
bestwave = [LIGHT_GRAY]最好: {0}
|
||||
resume = 暂停:\n[LIGHT_GRAY]{0}
|
||||
bestwave = [LIGHT_GRAY]最高波次:{0}
|
||||
launch = < 发射 >
|
||||
launch.title = 发射成功
|
||||
launch.next = [LIGHT_GRAY]下一个发射机会在第 {0} 波
|
||||
@@ -324,11 +331,12 @@ zone.unlocked = [LIGHT_GRAY]{0} 已解锁。
|
||||
zone.requirement.complete = 已达到第{0}波。\n达到解锁{1}的需求。
|
||||
zone.config.complete = 已达到第{0}波。\n允许携带发射的资源进入此地区。
|
||||
zone.resources = 地图中的资源:
|
||||
zone.objective = [lightgray]Objective: [accent]{0}
|
||||
zone.objective.survival = Survive
|
||||
zone.objective.attack = Destroy Enemy Core
|
||||
add = 添加
|
||||
zone.objective = [lightgray]目标:[accent]{0}
|
||||
zone.objective.survival = 生存
|
||||
zone.objective.attack = 摧毁敌方核心
|
||||
add = 添加……
|
||||
boss.health = BOSS 生命值
|
||||
|
||||
connectfail = [crimson]服务器连接失败:[accent]{0}
|
||||
error.unreachable = 服务器无法访问。
|
||||
error.invalidaddress = 地址无效。
|
||||
@@ -338,7 +346,8 @@ error.alreadyconnected = 已连接。
|
||||
error.mapnotfound = 找不到地图文件!
|
||||
error.io = 网络 I/O 错误。
|
||||
error.any = 未知网络错误。
|
||||
error.bloom = Failed to initialize bloom.\nYour device may not support it.
|
||||
error.bloom = 未能初始化特效。\n您的设备可能不支持它。
|
||||
|
||||
zone.groundZero.name = 零号地区
|
||||
zone.desertWastes.name = 沙漠废物
|
||||
zone.craters.name = 陨石带
|
||||
@@ -349,22 +358,24 @@ zone.desolateRift.name = 荒芜裂谷
|
||||
zone.nuclearComplex.name = 核裂变
|
||||
zone.overgrowth.name = 增生区
|
||||
zone.tarFields.name = 石油田
|
||||
zone.saltFlats.name = Salt Flats
|
||||
zone.impact0078.name = Impact 0078
|
||||
zone.crags.name = Crags
|
||||
zone.groundZero.description = The optimal location to begin once more. Low enemy threat. Few resources.\nGather as much lead and copper as possible.\nMove on.
|
||||
zone.frozenForest.description = Even here, closer to mountains, the spores have spread. The fridgid temperatures cannot contain them forever.\n\nBegin the venture into power. Build combustion generators. Learn to use menders.
|
||||
zone.desertWastes.description = These wastes are vast, unpredictable, and criss-crossed with derelict sector structures.\nCoal is present in the region. Burn it for power, or synthesize graphite.\n\n[lightgray]This landing location cannot be guaranteed.
|
||||
zone.saltFlats.description = On the outskirts of the desert lie the Salt Flats. Few resources can be found in this location.\n\nThe enemy has erected a resource storage complex here. Eradicate their core. Leave nothing standing.
|
||||
zone.craters.description = Water has accumulated in this crater, relic of the old wars. Reclaim the area. Collect sand. Smelt metaglass. Pump water to cool turrets and drills.
|
||||
zone.ruinousShores.description = Past the wastes, is the shoreline. Once, this location housed a coastal defense array. Not much of it remains. Only the most basic defense structures have remained unscathed, everything else reduced to scrap.\nContinue the expansion outwards. Rediscover the technology.
|
||||
zone.stainedMountains.description = Further inland lie the mountains, yet untainted by spores.\nExtract the abundant titanium in this area. Learn how to use it.\n\nThe enemy presence is greater here. Do not give them time to send their strongest units.
|
||||
zone.overgrowth.description = This area is overgrown, closer to the source of the spores.\nThe enemy has established an outpost here. Build dagger units. Destroy it. Reclaim that which was lost.
|
||||
zone.tarFields.description = The outskirts of an oil production zone, between the mountains and desert. One of the few areas with usable tar reserves.\nAlthough abandoned, this area has some dangerous enemy forces nearby. Do not underestimate them.\n\n[lightgray]Research oil processing technology if possible.
|
||||
zone.desolateRift.description = An extremely dangerous zone. Plentiful resources, but little space. High risk of destruction. Leave as soon as possible. Do not be fooled by the long spacing between enemy attacks.
|
||||
zone.nuclearComplex.description = A former facility for the production and processing of thorium, reduced to ruins.\n[lightgray]Research the thorium and its many uses.\n\nThe enemy is present here in great numbers, constantly scouting for attackers.
|
||||
zone.impact0078.description = <insert description here>
|
||||
zone.crags.description = <insert description here>
|
||||
zone.saltFlats.name = 盐碱荒滩
|
||||
zone.impact0078.name = 0078号冲击
|
||||
zone.crags.name = 悬崖
|
||||
|
||||
zone.groundZero.description = 重新开始的最佳位置。敌人威胁很小,资源少。\n尽可能收集多的铅和铜。\n行动。
|
||||
zone.frozenForest.description = 即使在这里,靠近山脉的地方,孢子也已经扩散。寒冷的温度不可能永远容纳它们。\n\n此行动须投入电力。建造燃烧发电机并学会使用修理者。
|
||||
zone.desertWastes.description = 这些废物是巨大的,不可预测的,并且与废弃的结构交错在一起。燃烧它以获取动力或合成石墨。\n\n[lightgray]无法保证此着陆位置。
|
||||
zone.saltFlats.description = 在沙漠的郊区有盐滩。在这个地方几乎找不到资源。\n\n敌人在这里建立了一个资源存储区。根除他们的核心。不要留下任何东西。
|
||||
zone.craters.description = 水在这个火山口积聚,这是旧战争的遗迹。夺下该区域。收集沙子来冶炼玻璃。用水泵抽水冷却炮塔和钻头。
|
||||
zone.ruinousShores.description = 穿过荒地,就是海岸线。曾经这个地方安置了一个海岸防御阵列。现在剩下的不多了,只有最基本的防御结构仍然毫发无损,其他一切都被销毁了。\n继续向外扩展。继续研究科技。
|
||||
zone.stainedMountains.description = 在更远的内陆地区是山脉,但没有被孢子污染。\n在这一地区分布着丰富的钛。学习如何使用它。\n\n这里敌人的存在更大。不要给他们时间派出最强的部队。
|
||||
zone.overgrowth.description = 这个地区生长过度,靠近孢子的来源。\n敌人在这里建立了一个前哨站。建造尖刀单位来摧毁它并找回丢失的东西。
|
||||
zone.tarFields.description = 位于山脉和沙漠之间的产油区的郊区是少数几个有可用焦油储量的地区之一。\n尽管被废弃,但附近仍有一些危险的敌军。不要低估它们。\n\n[lightgray]如果可能,研究石油加工技术。
|
||||
zone.desolateRift.description = 非常危险的区域。资源丰富但空间小。破坏风险高。尽快离开,不要被敌人的攻击间隔太长所愚弄。
|
||||
zone.nuclearComplex.description = 以前生产和加工钍的设施已变成废墟。\n[浅灰色]研究钍及其多种用途。\n\n敌人在这里大量存在,不断侦察入侵者。
|
||||
zone.impact0078.description = <在此处插入说明>
|
||||
zone.crags.description = <在此处插入说明>
|
||||
|
||||
settings.language = 语言
|
||||
settings.reset = 恢复默认
|
||||
settings.rebind = 重新绑定
|
||||
@@ -374,23 +385,23 @@ settings.sound = 声音
|
||||
settings.graphics = 图像
|
||||
settings.cleardata = 清除游戏数据……
|
||||
settings.clear.confirm = 您确定要清除数据吗?\n这个操作无法撤销!
|
||||
settings.clearall.confirm = [scarlet]警告![]\n这将清除所有数据,包括存档、地图、解锁和键绑定。\n按「是」后,游戏将删除所有数据并自动退出。
|
||||
settings.clearunlocks = 清除解锁
|
||||
settings.clearall = 清除所有
|
||||
settings.clearall.confirm = [scarlet]警告![]\n这将清除所有数据,包括存档、地图、解锁和绑定键。\n按「是」后,游戏将删除所有数据并自动退出。
|
||||
settings.clearunlocks = 清除解锁的科技
|
||||
settings.clearall = 清除所有数据
|
||||
paused = 暂停
|
||||
yes = 是
|
||||
no = 不
|
||||
no = 否
|
||||
info.title = [accent]详情
|
||||
error.title = [crimson]发生了一个错误
|
||||
error.crashtitle = 发生了一个错误
|
||||
attackpvponly = [scarlet]Only available in Attack/PvP modes
|
||||
attackpvponly = [scarlet]只在攻击/PVP模式中可用
|
||||
blocks.input = 输入
|
||||
blocks.output = 输出
|
||||
blocks.booster = 加成物品/液体
|
||||
block.unknown = [LIGHT_GRAY]???
|
||||
blocks.powercapacity = 能量容量
|
||||
blocks.powershot = 能量/发射
|
||||
blocks.damage = Damage
|
||||
blocks.damage = 伤害
|
||||
blocks.targetsair = 攻击空中单位
|
||||
blocks.targetsground = 攻击地面单位
|
||||
blocks.itemsmoved = 移动速度
|
||||
@@ -417,6 +428,7 @@ blocks.inaccuracy = 误差
|
||||
blocks.shots = 发射数
|
||||
blocks.reload = 重新装弹
|
||||
blocks.ammo = 子弹
|
||||
|
||||
bar.drillspeed = 挖掘速度:{0}/s
|
||||
bar.efficiency = 效率:{0}%
|
||||
bar.powerbalance = 能量:{0}
|
||||
@@ -427,7 +439,8 @@ bar.liquid = 液体
|
||||
bar.heat = 热量
|
||||
bar.power = 电力
|
||||
bar.progress = 制造进度
|
||||
bar.spawned = 单位数量: {0}/{1}
|
||||
bar.spawned = 单位数量:{0}/{1}
|
||||
|
||||
bullet.damage = [stat]{0}[lightgray] 伤害
|
||||
bullet.splashdamage = [stat]{0}[lightgray] 范围伤害 ~[stat] {1}[lightgray] 格
|
||||
bullet.incendiary = [stat] 燃烧
|
||||
@@ -439,6 +452,7 @@ bullet.freezing = [stat] 冰冻
|
||||
bullet.tarred = [stat] 减速
|
||||
bullet.multiplier = [stat]{0}[lightgray]x 子弹数量
|
||||
bullet.reload = [stat]{0}[lightgray]x 装弹
|
||||
|
||||
unit.blocks = 方块
|
||||
unit.powersecond = 能量单位/秒
|
||||
unit.liquidsecond = 液体单位/秒
|
||||
@@ -465,13 +479,13 @@ setting.animatedwater.name = 流动的水
|
||||
setting.animatedshields.name = 动态画面
|
||||
setting.antialias.name = 抗锯齿[LIGHT_GRAY] (需要重新启动)[]
|
||||
setting.indicators.name = 队友指示器
|
||||
setting.autotarget.name = 自动发射
|
||||
setting.keyboard.name = Mouse+Keyboard Controls
|
||||
setting.fpscap.name = FPS限制
|
||||
setting.autotarget.name = 自动射击
|
||||
setting.keyboard.name = 鼠标+键盘操控
|
||||
setting.fpscap.name = 最大FPS
|
||||
setting.fpscap.none = 无
|
||||
setting.fpscap.text = {0} FPS
|
||||
setting.uiscale.name = UI Scaling[lightgray] (require restart)[]
|
||||
setting.swapdiagonal.name = 总是自动铺设
|
||||
setting.uiscale.name = UI缩放比例[lightgray] (需要重新启动)[]
|
||||
setting.swapdiagonal.name = 自动铺设
|
||||
setting.difficulty.training = 训练
|
||||
setting.difficulty.easy = 简单
|
||||
setting.difficulty.normal = 普通
|
||||
@@ -497,11 +511,11 @@ setting.mutesound.name = 静音
|
||||
setting.crashreport.name = 发送匿名崩溃报告
|
||||
setting.chatopacity.name = 聊天界面透明度
|
||||
setting.playerchat.name = 显示游戏内聊天界面
|
||||
uiscale.reset = UI scale has been changed.\nPress "OK" to confirm this scale.\n[scarlet]Reverting and exiting in[accent] {0}[] settings...
|
||||
uiscale.cancel = Cancel & Exit
|
||||
setting.bloom.name = Bloom
|
||||
uiscale.reset = UI缩放比例已经改变。\n按下“确定”来确定缩放比例\n[accent]{0}[]秒后[scarlet]退出并恢复设定。
|
||||
uiscale.cancel = 取消并退出
|
||||
setting.bloom.name = 特效
|
||||
keybind.title = 重新绑定按键
|
||||
keybinds.mobile = [scarlet]Most keybinds here are not functional on mobile. Only basic movement is supported.
|
||||
keybinds.mobile = [scarlet]这里的大多数键绑定在移动设备上都不起作用。仅支持基本运动。
|
||||
category.general.name = 普通
|
||||
category.view.name = 查看
|
||||
category.multiplayer.name = 多人
|
||||
@@ -547,10 +561,11 @@ mode.pvp.description = 和本地玩家对战。
|
||||
mode.attack.name = 攻击
|
||||
mode.attack.description = 没有波数,但是有摧毁敌人基地的任务。
|
||||
mode.custom = 自定义模式
|
||||
|
||||
rules.infiniteresources = 无限资源
|
||||
rules.wavetimer = 波次计时器
|
||||
rules.waves = 波次
|
||||
rules.attack = Attack Mode
|
||||
rules.attack = 攻击模式
|
||||
rules.enemyCheat = 敌人无限资源
|
||||
rules.unitdrops = 敌人出生点
|
||||
rules.unitbuildspeedmultiplier = 单位生产速度倍数
|
||||
@@ -573,6 +588,7 @@ rules.title.resourcesbuilding = 资源和建造
|
||||
rules.title.player = 玩家
|
||||
rules.title.enemy = 敌人
|
||||
rules.title.unit = 单位
|
||||
|
||||
content.item.name = 物品
|
||||
content.liquid.name = 液体
|
||||
content.unit.name = 部队
|
||||
@@ -595,35 +611,35 @@ item.pyratite.name = 硫
|
||||
item.metaglass.name = 钢化玻璃
|
||||
item.scrap.name = 废料
|
||||
liquid.water.name = 水
|
||||
liquid.slag.name = 岩浆
|
||||
liquid.slag.name = 矿渣
|
||||
liquid.oil.name = 石油
|
||||
liquid.cryofluid.name = 冷冻液
|
||||
mech.alpha-mech.name = 阿尔法
|
||||
mech.alpha-mech.name = Alpha
|
||||
mech.alpha-mech.weapon = 重型机枪
|
||||
mech.alpha-mech.ability = 无人机群
|
||||
mech.delta-mech.name = 德尔塔
|
||||
mech.alpha-mech.ability = 再生
|
||||
mech.delta-mech.name = Delta
|
||||
mech.delta-mech.weapon = 电弧发电机
|
||||
mech.delta-mech.ability = 放电
|
||||
mech.tau-mech.name = 医疗机
|
||||
mech.tau-mech.name = Tau
|
||||
mech.tau-mech.weapon = 重构激光
|
||||
mech.tau-mech.ability = 修复
|
||||
mech.omega-mech.name = 欧米茄
|
||||
mech.omega-mech.name = Omega
|
||||
mech.omega-mech.weapon = 导弹群
|
||||
mech.omega-mech.ability = 配置装甲
|
||||
mech.dart-ship.name = 飞镖
|
||||
mech.dart-ship.name = Dart
|
||||
mech.dart-ship.weapon = 机枪
|
||||
mech.javelin-ship.name = 标枪
|
||||
mech.javelin-ship.name = Javelin
|
||||
mech.javelin-ship.weapon = 爆裂导弹
|
||||
mech.javelin-ship.ability = 放电助推器
|
||||
mech.trident-ship.name = 三叉戟
|
||||
mech.trident-ship.name = Trident
|
||||
mech.trident-ship.weapon = 炸弹
|
||||
mech.glaive-ship.name = 阔剑
|
||||
mech.glaive-ship.name = Glaive
|
||||
mech.glaive-ship.weapon = 火焰机枪
|
||||
item.explosiveness = [LIGHT_GRAY]爆炸性:{0}
|
||||
item.flammability = [LIGHT_GRAY]易燃性:{0}
|
||||
item.radioactivity = [LIGHT_GRAY]放射性:{0}
|
||||
unit.health = [LIGHT_GRAY]生命值:{0}
|
||||
unit.speed = [LIGHT_GRAY]速度:{0}
|
||||
unit.speed = [LIGHT_GRAY]速度:{0}有
|
||||
mech.weapon = [LIGHT_GRAY]武器:{0}
|
||||
mech.health = [LIGHT_GRAY]生命值: {0}
|
||||
mech.itemcapacity = [LIGHT_GRAY]物品容量:{0}
|
||||
@@ -634,7 +650,8 @@ mech.buildspeed = [LIGHT_GRAY]建造速度:{0}%
|
||||
liquid.heatcapacity = [LIGHT_GRAY]热容量:{0}
|
||||
liquid.viscosity = [LIGHT_GRAY]粘度:{0}
|
||||
liquid.temperature = [LIGHT_GRAY]温度:{0}
|
||||
block.sand-boulder.name = Sand Boulder
|
||||
|
||||
block.sand-boulder.name = 沙砂巨石
|
||||
block.grass.name = 草地
|
||||
block.salt.name = 盐碱地
|
||||
block.saltrocks.name = 盐碱岩石
|
||||
@@ -645,7 +662,7 @@ block.spore-pine.name = 孢子树
|
||||
block.sporerocks.name = 孢子岩石
|
||||
block.rock.name = 岩石
|
||||
block.snowrock.name = 雪岩石
|
||||
block.snow-pine.name = Snow Pine
|
||||
block.snow-pine.name = 雪树
|
||||
block.shale.name = 页岩地
|
||||
block.shale-boulder.name = 页岩巨石
|
||||
block.moss.name = 苔藓地
|
||||
@@ -738,7 +755,7 @@ block.separator.name = 分离机
|
||||
block.coal-centrifuge.name = 煤炭离心机
|
||||
block.power-node.name = 能量节点
|
||||
block.power-node-large.name = 大型能量节点
|
||||
block.surge-tower.name = 远程输电塔
|
||||
block.surge-tower.name = 巨浪塔
|
||||
block.battery.name = 电池
|
||||
block.battery-large.name = 大型电池
|
||||
block.combustion-generator.name = 燃烧发电机
|
||||
@@ -750,13 +767,13 @@ block.pneumatic-drill.name = 气动钻头
|
||||
block.laser-drill.name = 激光钻头
|
||||
block.water-extractor.name = 抽水机
|
||||
block.cultivator.name = 培养机
|
||||
block.dart-mech-pad.name = 飞镖 机甲平台
|
||||
block.delta-mech-pad.name = 德尔塔 机甲平台
|
||||
block.javelin-ship-pad.name = 标枪 机甲平台
|
||||
block.trident-ship-pad.name = 三叉戟 机甲平台
|
||||
block.glaive-ship-pad.name = 阔剑 机甲平台
|
||||
block.omega-mech-pad.name = 欧米茄 机甲平台
|
||||
block.tau-mech-pad.name = 医疗机 机甲平台
|
||||
block.dart-mech-pad.name = Dart 机甲平台
|
||||
block.delta-mech-pad.name = Delta 机甲平台
|
||||
block.javelin-ship-pad.name = Javelin 机甲平台
|
||||
block.trident-ship-pad.name = Trident 机甲平台
|
||||
block.glaive-ship-pad.name = Glaive 机甲平台
|
||||
block.omega-mech-pad.name = Omega 机甲平台
|
||||
block.tau-mech-pad.name = Tau 机甲平台
|
||||
block.conduit.name = 导管
|
||||
block.mechanical-pump.name = 机械泵
|
||||
block.item-source.name = 物品源
|
||||
@@ -778,9 +795,9 @@ block.blast-mixer.name = 爆炸混合器
|
||||
block.solar-panel.name = 太阳能电池
|
||||
block.solar-panel-large.name = 大型太阳能电池
|
||||
block.oil-extractor.name = 石油钻井
|
||||
block.draug-factory.name = Draug Miner Drone Factory
|
||||
block.spirit-factory.name = 轻型无人机工厂
|
||||
block.phantom-factory.name = 鬼怪无人机工厂
|
||||
block.draug-factory.name = 德鲁格采矿机工厂
|
||||
block.spirit-factory.name = 幽灵修理机工厂
|
||||
block.phantom-factory.name = 鬼怪建造机工厂
|
||||
block.wraith-factory.name = 幻影战机工厂
|
||||
block.ghoul-factory.name = 食尸鬼轰炸机工厂
|
||||
block.dagger-factory.name = 尖刀机甲工厂
|
||||
@@ -802,7 +819,7 @@ block.blast-drill.name = 爆破钻头
|
||||
block.thermal-pump.name = 热能泵
|
||||
block.thermal-generator.name = 热能发电机
|
||||
block.alloy-smelter.name = 合金冶炼厂
|
||||
block.mender.name = Mender
|
||||
block.mender.name = 修理者
|
||||
block.mend-projector.name = 修理投影器
|
||||
block.surge-wall.name = 波动墙
|
||||
block.surge-wall-large.name = 大型波动墙
|
||||
@@ -824,9 +841,9 @@ team.orange.name = 橙
|
||||
team.none.name = 灰
|
||||
team.green.name = 绿
|
||||
team.purple.name = 紫
|
||||
unit.spirit.name = 轻型无人机
|
||||
unit.draug.name = Draug Miner Drone
|
||||
unit.phantom.name = 鬼怪无人机
|
||||
unit.draug.name = 德鲁格采矿机
|
||||
unit.spirit.name = 幽灵修理机
|
||||
unit.phantom.name = 鬼怪建造机
|
||||
unit.dagger.name = 尖刀
|
||||
unit.crawler.name = 爬行者
|
||||
unit.titan.name = 泰坦
|
||||
@@ -860,10 +877,11 @@ tutorial.daggerfactory = 建造一个[accent] 尖刀机甲工厂.[]\n\n它可以
|
||||
tutorial.router = 工厂需要资源来运作.\n造一个路由器来分发传送资源.
|
||||
tutorial.dagger = 链接能源节点到工厂.\n一旦需求满足, 将会制作一个机甲.\n\n根据需要制作更多的钻头,发电机,传送带.
|
||||
tutorial.battle = [LIGHT_GRAY] 敌人[] 的核心已经暴露。\n用你的尖刀机甲摧毁它。
|
||||
|
||||
item.copper.description = 一种有用的结构材料。在各种类型的方块中广泛使用。
|
||||
item.lead.description = 一种基本的起始材料。被广泛用于电子设备和液体运输方块。
|
||||
item.metaglass.description = 一种超级强硬的复合玻璃。通常用来传送和收藏液体
|
||||
item.graphite.description = Mineralized carbon, used for ammunition and electrical insulation.
|
||||
item.lead.description = 一种基本的起始材料。被广泛用于电子设备和液体运输方块。
|
||||
item.metaglass.description = 一种超级强硬的复合玻璃。通常用来传送和收藏液体。
|
||||
item.graphite.description = 一种用于弹药和电路绝缘的矿化碳。
|
||||
item.sand.description = 一种常见的材料,广泛用于冶炼,包括制作合金和助熔剂。
|
||||
item.coal.description = 一种常见并容易获得的燃料。
|
||||
item.titanium.description = 一种罕见的超轻金属,被广泛运用于液体运输、钻头和飞机。
|
||||
@@ -876,105 +894,105 @@ item.surge-alloy.description = 一种具有独特电气性能的高级合金。
|
||||
item.spore-pod.description = 一种用于制造石油,炸药及燃料的生物质。
|
||||
item.blast-compound.description = 一种用于炸弹和炸药的挥发性混合物。虽然它可以作为燃料燃烧,但不建议这样做。
|
||||
item.pyratite.description = 一种燃烧武器中使用的极易燃物质。
|
||||
liquid.water.description = 通常用于冷却和废物处理。
|
||||
liquid.slag.description = Various different types of molten metal mixed together. Can be separated into its constituent minerals, or sprayed at enemy units as a weapon.
|
||||
liquid.oil.description = 可以燃烧,爆炸或用作冷却液。
|
||||
liquid.cryofluid.description = 用于降温的最有效液体。
|
||||
mech.alpha-mech.description = 标准的机甲。具有不错的速度和伤害输出,可以制造多达 3 架无人机以提高进攻能力。
|
||||
liquid.water.description = 最有用的液体。常用于冷却和废物处理。
|
||||
liquid.slag.description = 各种不同类型的熔融金属混合在一起的液体。可以被分解成其组成矿物,或作为武器喷向敌方单位。
|
||||
liquid.oil.description = 用于先进材料生产的液体。可以转换成煤作为燃料,或作为武器喷射和放火。
|
||||
liquid.cryofluid.description = 一种由水和钛制成的惰性、无腐蚀性的液体。具有极高的热容量。广泛用作冷却剂。
|
||||
mech.alpha-mech.description = 标准控制机甲。基于尖刀单位,具有升级的装甲和建筑能力。比Dart有更多的伤害输出。
|
||||
mech.delta-mech.description = 一种快速,轻便的机甲,一击即退。对结构造成的伤害很小,但可以用弧形闪电武器很快杀死大量敌方单位。
|
||||
mech.tau-mech.description = 后勤机甲。治疗友军。可以熄灭火焰并治疗一定范围内的友军。
|
||||
mech.omega-mech.description = 一种装甲厚重的机甲,用于在前线攻击。它的护甲可以阻挡高达90%的伤害。
|
||||
mech.dart-ship.description = 标准飞船。快速轻便,但攻击能力低,采矿速度快。
|
||||
mech.dart-ship.description = 标准飞船。快速轻便,但攻击能力低,采矿速度慢。
|
||||
mech.javelin-ship.description = 一艘一击即退的攻击船。虽然最初很慢,但它可以加速到很快的速度,并飞过敌人的前哨,利用其闪电能力和导弹造成大量伤害。
|
||||
mech.trident-ship.description = 一种重型轰炸机。有厚装甲。
|
||||
mech.trident-ship.description = 为建造和摧毁敌人防御工事而建造的重型轰炸机。有相当好的装甲。
|
||||
mech.glaive-ship.description = 一种大型,装甲厚重的武装直升机。配备燃烧机枪。有优秀的加速能力和最快的速度。
|
||||
unit.draug.description = A primitive mining drone. Cheap to produce. Expendable. Automatically mines copper and lead in the vicinity. Delivers mined resources to the closest core.
|
||||
unit.spirit.description = 初始无人机。默认情况下在内核中生成。自动开采矿石,收集物品和修理块。
|
||||
unit.phantom.description = 一种先进的无人机单位。自动开采矿石,收集物品和修理块。比初始无人机有效得多。
|
||||
unit.dagger.description = 基础的地面单位,在蜂群中很有用。
|
||||
unit.crawler.description = A ground unit consisting of a stripped-down frame with high explosives strapped on top. Not particular durable. Explodes on contact with enemies.
|
||||
unit.titan.description = 高级的有武装地面单位,使用电石作为弹药.攻击地面单位和空中单位.
|
||||
unit.fortress.description = 一种地面重炮部队。
|
||||
unit.eruptor.description = A heavy mech designed to take down structures. Fires a stream of slag at enemy fortifications, melting them and setting volatiles on fire.
|
||||
unit.chaos-array.description =
|
||||
unit.eradicator.description =
|
||||
unit.wraith.description = 一种快速,打了就跑的截击机。
|
||||
unit.ghoul.description = 重型地毯轰炸机。用爆炸化合物或黄铁矿作为弹药。
|
||||
unit.revenant.description = A heavy, hovering missile array.
|
||||
unit.lich.description =
|
||||
unit.reaper.description =
|
||||
block.graphite-press.description = Compresses chunks of coal into pure sheets of graphite.
|
||||
block.multi-press.description = An upgraded version of the graphite press. Employs water and power to process coal quickly and efficiently.
|
||||
unit.draug.description = 一种原始的采矿机。生产成本低,消耗品。在附近自动开采铜和铅。将开采的资源输送到最近的核心。
|
||||
unit.spirit.description = 一种改进的德鲁格无人机,设计用于维修而不是采矿。自动修复该区域中任何损坏的块。
|
||||
unit.phantom.description = 一种先进的无人机。跟随玩家并协助建造。
|
||||
unit.dagger.description = 一种最基本的地面机甲。生产成本低。在蜂群中使用时很有用。
|
||||
unit.crawler.description = 一种地面装置,由一个框架和绑在上面的烈性炸药组成。不是特别耐用。与敌人接触后爆炸。
|
||||
unit.titan.description = 一种先进的装甲地面部队。攻击地面和空中目标。配备两个微型灼烧级火焰喷射器。
|
||||
unit.fortress.description = 一种重型炮兵机甲。装备两门改进型冰雹炮,用于对敌军建筑物和部队进行远程攻击。
|
||||
unit.eruptor.description = 一种用来拆除建筑物的重型机甲。在敌人的防御工事上发射一股熔渣,将它们熔化并点燃挥发物。
|
||||
unit.chaos-array.description =
|
||||
unit.eradicator.description =
|
||||
unit.wraith.description = 一种快速、一击即退的拦截器机甲。目标是发电机。
|
||||
unit.ghoul.description = 一种地毯式轰炸机。通过敌人的结构进行攻击,并瞄准关键的基础设施。
|
||||
unit.revenant.description = 一种发射导弹的重型飞行机甲
|
||||
unit.lich.description =
|
||||
unit.reaper.description =
|
||||
block.graphite-press.description = 把大块的煤压缩成纯石墨片。
|
||||
block.multi-press.description = 石墨压缩机的升级版。利用水和电力快速高效地处理煤炭。
|
||||
block.silicon-smelter.description = 用高纯度的焦炭来加工沙子以生产硅。
|
||||
block.kiln.description = 将铅和沙子熔炼成钢化玻璃,需要少量电力。
|
||||
block.plastanium-compressor.description = 用石油和钛生产塑钢。
|
||||
block.phase-weaver.description = 用放射性钍和大量沙子生产相织物。
|
||||
block.alloy-smelter.description = 用钛,铅,硅和铜生产浪涌合金。
|
||||
block.cryofluidmixer.description = 水和钛结合到低温流体中,冷却效率更高。
|
||||
block.blast-mixer.description = 用油将硫转化为不易燃但更具爆炸性的爆炸化合物。
|
||||
block.pyratite-mixer.description = 用煤,铅和沙子混合成高度易燃的硫。
|
||||
block.melter.description = 将废料熔化成岩浆,以便进一步加工或用于炮塔子弹。
|
||||
block.separator.description = 从岩浆中提取有用的矿物。
|
||||
block.spore-press.description = 压缩孢子荚得到石油。
|
||||
block.pulverizer.description = 将废料压碎成沙子。当缺少天然沙子时很有用。
|
||||
block.coal-centrifuge.description = Solidifes oil into chunks of coal.
|
||||
block.pyratite-mixer.description = 用煤,铅和沙子混合成高度易燃的硫。
|
||||
block.blast-mixer.description = 用油将硫转化为不易燃但更具爆炸性的爆炸化合物。
|
||||
block.cryofluidmixer.description = 水和钛结合到低温流体中,冷却效率更高。
|
||||
block.melter.description = 将废料熔化成矿渣,以便进一步加工或用于炮塔子弹。
|
||||
block.incinerator.description = 用于除掉任何多余的物品或液体。
|
||||
block.power-void.description = 消耗输入的所有功率。仅限沙箱。
|
||||
block.power-source.description = 无限输出功率。仅限沙箱。
|
||||
block.item-source.description = 无限输出物品。仅限沙箱。
|
||||
block.item-void.description = 在不使用电源的情况下销毁任何进入它的物品。仅限沙箱。
|
||||
block.liquid-source.description = 无限输出液体。仅限沙箱。
|
||||
block.spore-press.description = 压缩孢子荚得到石油。
|
||||
block.separator.description = 从矿渣中提取有用的矿物。
|
||||
block.coal-centrifuge.description = 使石油凝固成煤块。
|
||||
block.item-source.description = 无限输出物品。仅限沙盒。
|
||||
block.liquid-source.description = 无限输出液体。仅限沙盒。
|
||||
block.item-void.description = 在不使用电源的情况下销毁任何进入它的物品。仅限沙盒。
|
||||
block.power-source.description = 无限输出功率。仅限沙盒。
|
||||
block.power-void.description = 消耗输入的所有功率。仅限沙盒。
|
||||
block.copper-wall.description = 廉价的防守区块。\n用于保护前几波中的核心和炮塔。
|
||||
block.copper-wall-large.description = 廉价的防御块。\n用于保护前几个波浪中的核心和炮塔。\n跨越多个块。
|
||||
block.titanium-wall.description = A moderately strong defensive block.\nProvides moderate protection from enemies.
|
||||
block.titanium-wall-large.description = A moderately strong defensive block.\nProvides moderate protection from enemies.\nSpans multiple tiles.
|
||||
block.copper-wall-large.description = 廉价的防御块。\n用于保护前几个波浪中的核心和炮塔。\n跨越多个区块。
|
||||
block.titanium-wall.description = 中等强度的防御挡块。\n提供中等强度的防御以抵御敌人。
|
||||
block.titanium-wall-large.description = 一个中等强度的防御块。\n提供中等强度的防御以防敌人攻击。\n跨越多个区块。
|
||||
block.thorium-wall.description = 强大的防守区块。\n很好的防御敌人。
|
||||
block.thorium-wall-large.description = 强大的防守区块。\n很好地防御敌人。\n跨越多个块。
|
||||
block.thorium-wall-large.description = 强大的防守区块。\n很好地防御敌人。\n跨越多个区块。
|
||||
block.phase-wall.description = 没有钍墙那样坚固,但是它可以使不太强的子弹发生偏转。
|
||||
block.phase-wall-large.description = 没有钍墙那样坚固,但是它可以使不太强的子弹发生偏转。\n跨越多个块。
|
||||
block.phase-wall-large.description = 没有钍墙那样坚固,但是它可以使不太强的子弹发生偏转。\n跨越多个区块。
|
||||
block.surge-wall.description = 强大的防守区块。\n有很小的机会向攻击者发射闪电。
|
||||
block.surge-wall-large.description = 强大的防御区块。\n有很小的机会向攻击者发射闪电。\n跨越多个区块。
|
||||
block.door.description = 一扇小门,可以通过点击打开和关闭。\n如果打开,敌人可以射击并穿过。
|
||||
block.door-large.description = 一扇大门,可以通过点击打开和关闭。\n如果打开,敌人可以射击并穿过。\n扫过多个瓷砖。
|
||||
block.mender.description = Periodically repairs blocks in its vicinity. Keeps defenses repaired in-between waves.\nOptionally uses silicon to boost range and efficiency.
|
||||
block.door-large.description = 一扇大门,可以通过点击打开和关闭。\n如果打开,敌人可以射击并穿过。\n跨越多个区块。
|
||||
block.mender.description = 定期修理附近的方块,使防御系统在波与波之间得到修复。\n通常使用硅来提高范围和效率。
|
||||
block.mend-projector.description = 定期修复附近的建筑物。
|
||||
block.overdrive-projector.description = 提高附近建筑物的速度,如钻头和传送带。
|
||||
block.force-projector.description = 自身周围创建一个六边形力场,保护建筑物和内部单位免受子弹的伤害。
|
||||
block.force-projector.description = 自身周围创建一个六边形力场,使建筑物和内部单位免受子弹的伤害。
|
||||
block.shock-mine.description = 伤害踩到它的敌人。敌人几乎看不到它。
|
||||
block.conveyor.description = 初级传送带。将物品向前移动并自动将它们放入炮塔或工厂中。可旋转方向。
|
||||
block.titanium-conveyor.description = 高级传送带。能比初级传送带更快地移动物品。
|
||||
block.junction.description = 为两条交叉传送带的桥梁。适用于两种不同传送带将不同材料运送到不同位置的情况。
|
||||
block.router.description = 从一个方向接受物品,并将它们平均输出到最多3个其他方向。用于将材料从一个源分割为多个目标。
|
||||
block.distributor.description = 一个高级路由器,可以将物品分成最多7个方向。
|
||||
block.bridge-conveyor.description = 高级项目传输块。允许在跨越任何地形或建筑物上运输物品,最多跨越3个块。
|
||||
block.phase-conveyor.description = 高级传送带。使用电力将物品传送到距离几个块的相位传送带上。
|
||||
block.sorter.description = 对物品进行分类。如果物品与所选种类,则允许其通过。否则,物品将从左边和右边输出。
|
||||
block.router.description = 从一个方向接受物品,并将它们平均输出到最多3个其他方向。用于将材料从一个源分割为多个目标。
|
||||
block.distributor.description = 一个高级路由器,可以将物品分成最多7个方向。
|
||||
block.overflow-gate.description = 分离器和路由器的组合,如果前面被挡住,则向从左和右输出。
|
||||
block.junction.description = 两条交叉传送带的桥梁。适用于两条不同传送带将不同材料运送到不同位置的情况。
|
||||
block.mass-driver.description = 终极传送带。收集几件物品,然后将它们射向长距离外的另一个批量传送带。
|
||||
block.mechanical-pump.description = 一种输出速度慢但没有功耗的廉价泵。
|
||||
block.rotary-pump.description = 一种先进的泵,通过使用动力使速度加倍。
|
||||
block.thermal-pump.description = 终级水泵。
|
||||
block.conduit.description = 基本液体传输块。像输送机一样工作,但用于液体。最适用于提取器,泵或其他导管。
|
||||
block.pulse-conduit.description = 高级液体传输块。比标准导管更快地输送液体并储存更多液体。
|
||||
block.phase-conduit.description = 高级液体传输块。使用电力将液体传送到多个块上的连接相管道。
|
||||
block.liquid-router.description = 接受来自一个方向的液体并将它们平均输出到最多3个其他方向。也可以储存一定量的液体。用于将液体从一个源分成多个目标。
|
||||
block.liquid-tank.description = 存储大量液体。当存在对材料的非恒定需求或作为冷却重要块的安全措施时,将其用于创建缓冲区。
|
||||
block.liquid-junction.description = 作为两个交叉管道的桥梁。适用于两种不同导管将不同液体输送到不同位置的情况。
|
||||
block.bridge-conduit.description = 高级液体传输块。允许在任何地形或建筑物的最多3个块上运输液体。
|
||||
block.phase-conduit.description = 高级液体传输块。使用电力将液体传送到多个块上的连接相管道。
|
||||
block.power-node.description = 连接节点传输电源。最多可连接四个电源,接收器或节点。节点将从任何相邻块接收电力或向其供电。
|
||||
block.mechanical-pump.description = 一种输出速度慢但没有功耗的廉价泵。
|
||||
block.rotary-pump.description = 一种先进的泵,通过使用动力使速度加倍。
|
||||
block.thermal-pump.description = 终级水泵。
|
||||
block.power-node.description = 连接节点传输电源。最多可连接四个电源,用电器或节点。节点将从任何相邻块接收电力或向其供电。
|
||||
block.power-node-large.description = 传输径大于电源节点,最多可连接六个电源,接收器或节点。
|
||||
block.surge-tower.description = An extremely long-range power node with fewer available connections.
|
||||
block.surge-tower.description = 具有较少可用连接的远程电源节点。
|
||||
block.battery.description = 储存电力,当储存有能量时,可在电力短缺时提供电力。
|
||||
block.battery-large.description = 比普通电池容量更大。
|
||||
block.combustion-generator.description = 通过燃烧油或易燃材料产生电力。
|
||||
block.thermal-generator.description = 当放置在热的地方时发电。
|
||||
block.turbine-generator.description = 比燃烧发电机更有效,但需要额外的水。
|
||||
block.differential-generator.description = Generates large amounts of energy. Utilizes the temperature difference between cryofluid and burning pyratite.
|
||||
block.rtg-generator.description = 一种放射性同位素热电发电机,它不需要冷却,但功率低于钍反应堆。
|
||||
block.solar-panel.description = 标准太阳能面板,提供少量电力。
|
||||
block.solar-panel-large.description = 比标准太阳能电池板提供更好的电源,但构建起来要贵得多。
|
||||
block.thorium-reactor.description = 高放射性钍产生大量电力。需要持续冷却。如果供应的冷却剂量不足,会剧烈爆炸。
|
||||
block.impact-reactor.description = An advanced generator, capable of creating massive amounts of power at peak efficiency. Requires a significant power input to kickstart the process.
|
||||
block.differential-generator.description = 产生大量的能量。利用低温流体和燃烧的硫之间的温差。
|
||||
block.impact-reactor.description = 一种先进的发电机,能够以最高效率产生大量的电力。需要大量的电源输入才能启动进程。
|
||||
block.mechanical-drill.description = 便宜的钻头。放置在适当的块上时,无限期地以缓慢的速度输出物品。
|
||||
block.pneumatic-drill.description = 一种改进的钻头,它更快,能够利用气压处理更硬的材料。
|
||||
block.laser-drill.description = 通过激光技术更快地钻孔,但需要电源。此外,这种钻头可以回收放射性钍。
|
||||
@@ -982,43 +1000,43 @@ block.blast-drill.description = 终极钻头,需要大量电力。
|
||||
block.water-extractor.description = 从地下提取水。当附近没有湖泊时使用它。
|
||||
block.cultivator.description = 将微小浓度的孢子培养成工业用的孢子荚。
|
||||
block.oil-extractor.description = 使用大量的电力从沙子中提取石油。当附近没有直接的石油来源时使用它。
|
||||
block.core-shard.description = The first iteration of the core capsule. Once destroyed, all contact to the region is lost. Do not let this happen.
|
||||
block.core-foundation.description = The second version of the core. Better armored. Stores more resources.
|
||||
block.core-nucleus.description = The third and final iteration of the core capsule. Extremely well armored. Stores massive amounts of resources.
|
||||
block.vault.description = 存储大量物品。当存在非恒定的材料需求时,使用它来创建缓冲区。 [LIGHT_GRAY]卸载器[]可用于从仓库中获取物品。
|
||||
block.container.description = 存储少量物品。当存在非恒定的材料需求时,使用它来创建缓冲区。 [LIGHT_GRAY]卸载器[]可用于从容器中获取物品。
|
||||
block.core-shard.description = 核心第一代。一旦被摧毁,与该地区的所有联系都将失去。不要让这种情况发生。
|
||||
block.core-foundation.description = 核心第二代。有更好的装甲。可以存储更多资源。
|
||||
block.core-nucleus.description = 核心第三代,也是最后一代。装甲非常好。存储大量资源。
|
||||
block.unloader.description = 物品从容器,仓库或核心卸载到传送带上或直接卸载到相邻的块中。可以通过点击卸载器来更改要卸载的项目类型。
|
||||
block.launch-pad.description = 不通过核心发射物体。尚未完成。
|
||||
block.launch-pad-large.description = An improved version of the launch pad. Stores more items. Launches more frequently.
|
||||
block.container.description = 存储少量物品。当存在非恒定的材料需求时,使用它来创建缓冲区。 [LIGHT_GRAY]卸载器[]可用于从容器中获取物品。
|
||||
block.vault.description = 存储大量物品。当存在非恒定的材料需求时,使用它来创建缓冲区。 [LIGHT_GRAY]卸载器[]可用于从仓库中获取物品。
|
||||
block.launch-pad.description = 不通过核心发射物体。
|
||||
block.launch-pad-large.description = 发射台的改进版。存储更多物体。启动频率更高。
|
||||
block.duo.description = 小而便宜的炮塔。
|
||||
block.scatter.description = 中型防空炮塔,向空中单位发射铅或废料。
|
||||
block.scorch.description = Burns any ground enemies close to it. Highly effective at close range.
|
||||
block.hail.description = 小型炮兵炮台。
|
||||
block.wave.description = 中型快速炮塔,射出液体泡泡。
|
||||
block.lancer.description = 中型炮塔,发射带电的电子束。
|
||||
block.scorch.description = 小型炮塔,燃烧任何靠近它的地面敌人。近距离高效。
|
||||
block.arc.description = 小型炮塔,发射电弧。
|
||||
block.swarmer.description = 发射爆炸导弹的中型炮塔。
|
||||
block.hail.description = 小型炮兵炮台。
|
||||
block.lancer.description = 中型炮塔,发射带电的电子束。
|
||||
block.wave.description = 中型快速炮塔,射出液体泡泡。
|
||||
block.salvo.description = 中型炮塔,齐射射击。
|
||||
block.fuse.description = 发射强大的短程光束的大型炮塔。
|
||||
block.swarmer.description = 中型炮塔,发射爆炸导弹。
|
||||
block.ripple.description = 大型炮兵炮塔,可同时向多个目标开火。
|
||||
block.cyclone.description = 大型快速炮塔。
|
||||
block.fuse.description = 大型炮塔,发射强大的短程光束。
|
||||
block.spectre.description = 大型炮塔,一次射出两颗强大的子弹。
|
||||
block.meltdown.description = 发射强大的远程光束的大型炮塔。
|
||||
block.draug-factory.description = Produces Draug mining drones.
|
||||
block.spirit-factory.description = 生产轻型无人机,用于开采矿石和修复块。
|
||||
block.phantom-factory.description = 生产高级无人机单元,它比轻型无人机更有效。
|
||||
block.crawler-factory.description = 生产快速自毁单元。
|
||||
block.draug-factory.description = 生产德鲁格釆矿机。
|
||||
block.spirit-factory.description = 生产幽灵修理机。
|
||||
block.phantom-factory.description = 生产鬼怪建造机。
|
||||
block.wraith-factory.description = 生产快速截击机。
|
||||
block.ghoul-factory.description = 生产重型地毯轰炸机。
|
||||
block.revenant-factory.description = 生产重型激光地面单元。
|
||||
block.dagger-factory.description = 生产基本地面单位。
|
||||
block.crawler-factory.description = Produces fast self-destructing swarm units.
|
||||
block.titan-factory.description = 生产先进的装甲地面单位。
|
||||
block.fortress-factory.description = 生产重型火炮地面部队。
|
||||
block.fortress-factory.description = 生产重型地面火炮部队。
|
||||
block.revenant-factory.description = 生产重型导弹部队。
|
||||
block.repair-point.description = 连续治疗附近最近的受损单位。
|
||||
block.dart-mech-pad.description = Provides transformation into a basic attack mech.\nUse by tapping while standing on it.
|
||||
block.delta-mech-pad.description = 离开你当前的装置并换成一个快速,轻装甲的机械装置,用于快速攻击。\n站在上面时双击切换。
|
||||
block.tau-mech-pad.description = 离开你当前的装置并换成一个可以治愈友方建筑物和单位的支撑机械。\n站在上面时双击切换。
|
||||
block.omega-mech-pad.description = 离开你当前的装置并换成一个笨重且装甲良好的机甲,用于前线攻击。\n站在上面时双击切换。
|
||||
block.javelin-ship-pad.description = 离开你当前的装置,换上一个强大而快速的截击机,用闪电武器。\n站在上面时双击切换。
|
||||
block.dart-mech-pad.description = 离开你当前的装置,换成一个基本攻击机甲。\n站在上面时双击切换。
|
||||
block.trident-ship-pad.description = 离开你当前的装置,换成一个装甲合理的重型轰炸机。\n站在上面时双击切换。
|
||||
block.javelin-ship-pad.description = 离开你当前的装置,换成一个强大而快速的截击机,用闪电武器。\n站在上面时双击切换。
|
||||
block.glaive-ship-pad.description = 离开现有的装置,换成装甲良好的大型武装直升机。\n站在上面时双击切换。
|
||||
block.tau-mech-pad.description = 离开你当前的装置并换成一个可以治愈友方建筑物和单位的支撑机械。\n站在上面时双击切换。
|
||||
block.delta-mech-pad.description = 离开你当前的装置并换成一个快速,轻装甲的机械装置,用于快速攻击。\n站在上面时双击切换。
|
||||
block.omega-mech-pad.description = 离开你当前的装置并换成一个笨重且装甲良好的机甲,用于前线攻击。\n站在上面时双击切换。
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
core/assets/sounds/break.ogg
Executable file → Normal file
BIN
core/assets/sounds/break.ogg
Executable file → Normal file
Binary file not shown.
Binary file not shown.
BIN
core/assets/sounds/buttonClick.ogg
Executable file → Normal file
BIN
core/assets/sounds/buttonClick.ogg
Executable file → Normal file
Binary file not shown.
BIN
core/assets/sounds/click.ogg
Executable file → Normal file
BIN
core/assets/sounds/click.ogg
Executable file → Normal file
Binary file not shown.
BIN
core/assets/sounds/conveyor.ogg
Normal file
BIN
core/assets/sounds/conveyor.ogg
Normal file
Binary file not shown.
Binary file not shown.
BIN
core/assets/sounds/door.ogg
Executable file → Normal file
BIN
core/assets/sounds/door.ogg
Executable file → Normal file
Binary file not shown.
BIN
core/assets/sounds/drill.ogg
Executable file → Normal file
BIN
core/assets/sounds/drill.ogg
Executable file → Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
core/assets/sounds/machine.ogg
Normal file
BIN
core/assets/sounds/machine.ogg
Normal file
Binary file not shown.
BIN
core/assets/sounds/message.ogg
Executable file → Normal file
BIN
core/assets/sounds/message.ogg
Executable file → Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
core/assets/sounds/spray.ogg
Normal file
BIN
core/assets/sounds/spray.ogg
Normal file
Binary file not shown.
BIN
core/assets/sounds/thruster.ogg
Executable file → Normal file
BIN
core/assets/sounds/thruster.ogg
Executable file → Normal file
Binary file not shown.
BIN
core/assets/sounds/unlock.ogg
Executable file → Normal file
BIN
core/assets/sounds/unlock.ogg
Executable file → Normal file
Binary file not shown.
Binary file not shown.
BIN
core/assets/sounds/windowHide.ogg
Executable file → Normal file
BIN
core/assets/sounds/windowHide.ogg
Executable file → Normal file
Binary file not shown.
Binary file not shown.
|
Before Width: | Height: | Size: 575 KiB After Width: | Height: | Size: 575 KiB |
12
core/convert_sounds.sh
Executable file
12
core/convert_sounds.sh
Executable file
@@ -0,0 +1,12 @@
|
||||
#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 ../../
|
||||
@@ -133,6 +133,7 @@ public class Vars{
|
||||
public static GlobalData data;
|
||||
public static EntityCollisions collisions;
|
||||
public static DefaultWaves defaultWaves;
|
||||
public static LoopControl loops;
|
||||
|
||||
public static Control control;
|
||||
public static Logic logic;
|
||||
@@ -181,6 +182,7 @@ public class Vars{
|
||||
content.setVerbose();
|
||||
}
|
||||
|
||||
loops = new LoopControl();
|
||||
defaultWaves = new DefaultWaves();
|
||||
collisions = new EntityCollisions();
|
||||
|
||||
|
||||
@@ -1608,8 +1608,8 @@ public class Blocks implements ContentList{
|
||||
shootDuration = 220f;
|
||||
powerUse = 14f;
|
||||
shootSound = Sounds.laserbig;
|
||||
idleSound = Sounds.beam;
|
||||
idleSoundVolume = 2f;
|
||||
activeSound = Sounds.beam;
|
||||
activeSoundVolume = 2f;
|
||||
|
||||
health = 200 * size * size;
|
||||
consumes.add(new ConsumeLiquidFilter(liquid -> liquid.temperature <= 0.5f && liquid.flammability < 0.1f, 0.5f)).update(false);
|
||||
|
||||
@@ -734,7 +734,7 @@ public class Fx implements ContentList{
|
||||
shootSmallFlame = new Effect(32f, e -> {
|
||||
Draw.color(Pal.lightFlame, Pal.darkFlame, Color.GRAY, e.fin());
|
||||
|
||||
Angles.randLenVectors(e.id, 8, e.finpow() * 44f, e.rotation, 10f, (x, y) -> {
|
||||
Angles.randLenVectors(e.id, 8, e.finpow() * 60f, e.rotation, 10f, (x, y) -> {
|
||||
Fill.circle(e.x + x, e.y + y, 0.65f + e.fout() * 1.5f);
|
||||
});
|
||||
|
||||
@@ -744,7 +744,7 @@ public class Fx implements ContentList{
|
||||
shootPyraFlame = new Effect(33f, e -> {
|
||||
Draw.color(Pal.lightPyraFlame, Pal.darkPyraFlame, Color.GRAY, e.fin());
|
||||
|
||||
Angles.randLenVectors(e.id, 10, e.finpow() * 50f, e.rotation, 10f, (x, y) -> {
|
||||
Angles.randLenVectors(e.id, 10, e.finpow() * 70f, e.rotation, 10f, (x, y) -> {
|
||||
Fill.circle(e.x + x, e.y + y, 0.65f + e.fout() * 1.6f);
|
||||
});
|
||||
|
||||
|
||||
@@ -196,7 +196,7 @@ public class UnitTypes implements ContentList{
|
||||
mass = 5f;
|
||||
hitsize = 20f;
|
||||
rotatespeed = 0.06f;
|
||||
health = 4000;
|
||||
health = 3000;
|
||||
weapon = new Weapon("chaos"){{
|
||||
length = 8f;
|
||||
reload = 50f;
|
||||
@@ -220,7 +220,7 @@ public class UnitTypes implements ContentList{
|
||||
mass = 5f;
|
||||
hitsize = 20f;
|
||||
rotatespeed = 0.06f;
|
||||
health = 10000;
|
||||
health = 9000;
|
||||
weapon = new Weapon("eradication"){{
|
||||
length = 13f;
|
||||
reload = 30f;
|
||||
@@ -313,7 +313,7 @@ public class UnitTypes implements ContentList{
|
||||
}};
|
||||
|
||||
lich = new UnitType("lich", Revenant.class, Revenant::new){{
|
||||
health = 7000;
|
||||
health = 6000;
|
||||
mass = 20f;
|
||||
hitsize = 40f;
|
||||
speed = 0.01f;
|
||||
@@ -346,7 +346,7 @@ public class UnitTypes implements ContentList{
|
||||
}};
|
||||
|
||||
reaper = new UnitType("reaper", Revenant.class, Revenant::new){{
|
||||
health = 13000;
|
||||
health = 11000;
|
||||
mass = 30f;
|
||||
hitsize = 56f;
|
||||
speed = 0.01f;
|
||||
|
||||
@@ -127,7 +127,7 @@ public class Control implements ApplicationListener{
|
||||
Call.onGameOver(event.winner);
|
||||
if(state.rules.zone != null && !Net.client()){
|
||||
//remove zone save on game over
|
||||
if(saves.getZoneSlot() != null){
|
||||
if(saves.getZoneSlot() != null && !state.rules.tutorial){
|
||||
saves.getZoneSlot().delete();
|
||||
}
|
||||
}
|
||||
@@ -392,6 +392,7 @@ public class Control implements ApplicationListener{
|
||||
data.checkSave();
|
||||
|
||||
music.update();
|
||||
loops.update();
|
||||
|
||||
if(!state.is(State.menu)){
|
||||
input.update();
|
||||
@@ -415,7 +416,7 @@ public class Control implements ApplicationListener{
|
||||
Platform.instance.updateRPC();
|
||||
}
|
||||
|
||||
if(Core.input.keyTap(Binding.pause) && !ui.restart.isShown() && (state.is(State.paused) || state.is(State.playing))){
|
||||
if(Core.input.keyTap(Binding.pause) && !scene.hasDialog() && !ui.restart.isShown() && (state.is(State.paused) || state.is(State.playing))){
|
||||
state.set(state.is(State.playing) ? State.paused : State.playing);
|
||||
}
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ import io.anuke.annotations.Annotations.Remote;
|
||||
import io.anuke.arc.ApplicationListener;
|
||||
import io.anuke.arc.Events;
|
||||
import io.anuke.arc.collection.ObjectSet.ObjectSetIterator;
|
||||
import io.anuke.arc.util.Time;
|
||||
import io.anuke.arc.util.*;
|
||||
import io.anuke.mindustry.content.*;
|
||||
import io.anuke.mindustry.core.GameState.State;
|
||||
import io.anuke.mindustry.entities.*;
|
||||
|
||||
@@ -176,6 +176,7 @@ public class NetClient implements ApplicationListener{
|
||||
public static void onKick(KickReason reason){
|
||||
netClient.disconnectQuietly();
|
||||
state.set(State.menu);
|
||||
logic.reset();
|
||||
|
||||
if(!reason.quiet){
|
||||
if(reason.extraText() != null){
|
||||
|
||||
@@ -1,30 +1,28 @@
|
||||
package io.anuke.mindustry.core;
|
||||
|
||||
import io.anuke.arc.*;
|
||||
import io.anuke.arc.files.FileHandle;
|
||||
import io.anuke.arc.function.Consumer;
|
||||
import io.anuke.arc.function.Predicate;
|
||||
import io.anuke.arc.files.*;
|
||||
import io.anuke.arc.function.*;
|
||||
import io.anuke.arc.graphics.*;
|
||||
import io.anuke.arc.graphics.g2d.*;
|
||||
import io.anuke.arc.graphics.glutils.FrameBuffer;
|
||||
import io.anuke.arc.math.Mathf;
|
||||
import io.anuke.arc.math.geom.Rectangle;
|
||||
import io.anuke.arc.math.geom.Vector2;
|
||||
import io.anuke.arc.graphics.glutils.*;
|
||||
import io.anuke.arc.math.*;
|
||||
import io.anuke.arc.math.geom.*;
|
||||
import io.anuke.arc.scene.ui.layout.*;
|
||||
import io.anuke.arc.util.*;
|
||||
import io.anuke.arc.util.pooling.Pools;
|
||||
import io.anuke.mindustry.content.Fx;
|
||||
import io.anuke.mindustry.core.GameState.State;
|
||||
import io.anuke.arc.util.pooling.*;
|
||||
import io.anuke.mindustry.content.*;
|
||||
import io.anuke.mindustry.core.GameState.*;
|
||||
import io.anuke.mindustry.entities.*;
|
||||
import io.anuke.mindustry.entities.effect.GroundEffectEntity;
|
||||
import io.anuke.mindustry.entities.effect.GroundEffectEntity.GroundEffect;
|
||||
import io.anuke.mindustry.entities.impl.EffectEntity;
|
||||
import io.anuke.mindustry.entities.effect.*;
|
||||
import io.anuke.mindustry.entities.effect.GroundEffectEntity.*;
|
||||
import io.anuke.mindustry.entities.impl.*;
|
||||
import io.anuke.mindustry.entities.traits.*;
|
||||
import io.anuke.mindustry.entities.type.*;
|
||||
import io.anuke.mindustry.game.EventType.DisposeEvent;
|
||||
import io.anuke.mindustry.game.Team;
|
||||
import io.anuke.mindustry.game.EventType.*;
|
||||
import io.anuke.mindustry.game.*;
|
||||
import io.anuke.mindustry.graphics.*;
|
||||
import io.anuke.mindustry.world.blocks.defense.ForceProjector.ShieldEntity;
|
||||
import io.anuke.mindustry.world.blocks.defense.ForceProjector.*;
|
||||
|
||||
import static io.anuke.arc.Core.*;
|
||||
import static io.anuke.mindustry.Vars.*;
|
||||
|
||||
@@ -87,7 +87,8 @@ public class MapEditorDialog extends Dialog implements Disposable{
|
||||
|
||||
t.row();
|
||||
|
||||
t.addImageTextButton("$editor.import", "icon-load-map", isize, () ->
|
||||
if(!ios){
|
||||
t.addImageTextButton("$editor.import", "icon-load-map", isize, () ->
|
||||
createDialog("$editor.import",
|
||||
"$editor.importmap", "$editor.importmap.description", "icon-load-map", (Runnable)loadDialog::show,
|
||||
"$editor.importfile", "$editor.importfile.description", "icon-file", (Runnable)() ->
|
||||
@@ -115,24 +116,43 @@ public class MapEditorDialog extends Dialog implements Disposable{
|
||||
Log.err(e);
|
||||
}
|
||||
}), true, FileChooser.pngFiles))
|
||||
);
|
||||
);
|
||||
}
|
||||
|
||||
t.addImageTextButton("$editor.export", "icon-save-map", isize, () ->
|
||||
Platform.instance.showFileChooser("$editor.savemap", "Map Files", file -> {
|
||||
file = file.parent().child(file.nameWithoutExtension() + "." + mapExtension);
|
||||
FileHandle result = file;
|
||||
Cell cell = t.addImageTextButton("$editor.export", "icon-save-map", isize, () -> {
|
||||
if(!ios){
|
||||
Platform.instance.showFileChooser("$editor.savemap", "Map Files", file -> {
|
||||
file = file.parent().child(file.nameWithoutExtension() + "." + mapExtension);
|
||||
FileHandle result = file;
|
||||
ui.loadAnd(() -> {
|
||||
try{
|
||||
if(!editor.getTags().containsKey("name")){
|
||||
editor.getTags().put("name", result.nameWithoutExtension());
|
||||
}
|
||||
MapIO.writeMap(result, editor.createMap(result));
|
||||
}catch(Exception e){
|
||||
ui.showError(Core.bundle.format("editor.errorsave", Strings.parseException(e, true)));
|
||||
Log.err(e);
|
||||
}
|
||||
});
|
||||
}, false, FileChooser.mapFiles);
|
||||
}else{
|
||||
ui.loadAnd(() -> {
|
||||
try{
|
||||
if(!editor.getTags().containsKey("name")){
|
||||
editor.getTags().put("name", result.nameWithoutExtension());
|
||||
}
|
||||
FileHandle result = Core.files.local(editor.getTags().get("name", "unknown") + "." + mapExtension);
|
||||
MapIO.writeMap(result, editor.createMap(result));
|
||||
Platform.instance.shareFile(result);
|
||||
}catch(Exception e){
|
||||
ui.showError(Core.bundle.format("editor.errorsave", Strings.parseException(e, true)));
|
||||
Log.err(e);
|
||||
}
|
||||
});
|
||||
}, false, FileChooser.mapFiles));
|
||||
}
|
||||
});
|
||||
|
||||
if(ios){
|
||||
cell.size(swidth * 2f + 10, 60f).colspan(2);
|
||||
}
|
||||
});
|
||||
|
||||
menu.cont.row();
|
||||
|
||||
@@ -6,6 +6,7 @@ import io.anuke.arc.function.Consumer;
|
||||
import io.anuke.arc.function.Predicate;
|
||||
import io.anuke.arc.math.geom.QuadTree;
|
||||
import io.anuke.arc.math.geom.Rectangle;
|
||||
import io.anuke.arc.util.*;
|
||||
import io.anuke.mindustry.entities.traits.Entity;
|
||||
|
||||
public class EntityGroup<T extends Entity>{
|
||||
@@ -170,8 +171,10 @@ public class EntityGroup<T extends Entity>{
|
||||
}
|
||||
|
||||
public void clear(){
|
||||
for(T entity : entityArray)
|
||||
for(T entity : entityArray){
|
||||
entity.removed();
|
||||
entity.setGroup(null);
|
||||
}
|
||||
|
||||
for(T entity : entitiesToAdd)
|
||||
entity.setGroup(null);
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package io.anuke.mindustry.entities;
|
||||
|
||||
import io.anuke.arc.math.Mathf;
|
||||
import io.anuke.arc.math.geom.Vector2;
|
||||
import io.anuke.arc.util.Time;
|
||||
import io.anuke.mindustry.entities.traits.TargetTrait;
|
||||
import io.anuke.arc.math.*;
|
||||
import io.anuke.arc.math.geom.*;
|
||||
import io.anuke.arc.util.*;
|
||||
import io.anuke.mindustry.entities.traits.*;
|
||||
|
||||
/**
|
||||
* Class for predicting shoot angles based on velocities of targets.
|
||||
@@ -55,9 +55,7 @@ public class Predict{
|
||||
* See {@link #intercept(float, float, float, float, float, float, float)}.
|
||||
*/
|
||||
public static Vector2 intercept(TargetTrait src, TargetTrait dst, float v){
|
||||
return intercept(src.getX(), src.getY(), dst.getX(), dst.getY(),
|
||||
dst.getTargetVelocityX() - src.getTargetVelocityX()/2f,
|
||||
dst.getTargetVelocityY() - src.getTargetVelocityY()/2f, v);
|
||||
return intercept(src.getX(), src.getY(), dst.getX(), dst.getY(), dst.getTargetVelocityX() - src.getTargetVelocityX(), dst.getTargetVelocityY() - src.getTargetVelocityY(), v);
|
||||
}
|
||||
|
||||
private static Vector2 quad(float a, float b, float c){
|
||||
|
||||
@@ -70,7 +70,7 @@ public class Player extends Unit implements BuilderMinerTrait, ShooterTrait{
|
||||
private Tile mining;
|
||||
private Vector2 movement = new Vector2();
|
||||
private boolean moved;
|
||||
private SoundLoop boostSound = new SoundLoop(Sounds.thruster, 2f), buildSound = new SoundLoop(Sounds.build, 0.75f);
|
||||
private SoundLoop buildSound = new SoundLoop(Sounds.build, 0.75f);
|
||||
|
||||
//endregion
|
||||
|
||||
@@ -133,7 +133,6 @@ public class Player extends Unit implements BuilderMinerTrait, ShooterTrait{
|
||||
|
||||
@Override
|
||||
public void removed(){
|
||||
boostSound.stop();
|
||||
buildSound.stop();
|
||||
}
|
||||
|
||||
@@ -514,7 +513,10 @@ public class Player extends Unit implements BuilderMinerTrait, ShooterTrait{
|
||||
destructTime = 0f;
|
||||
}
|
||||
|
||||
boostSound.update(x, y, isBoosting && !isDead() && !mech.flying);
|
||||
if(!isDead() && isFlying()){
|
||||
loops.play(Sounds.thruster, this, Mathf.clamp(velocity.len() * 2f) * 0.4f);
|
||||
}
|
||||
|
||||
BuildRequest request = buildRequest();
|
||||
buildSound.update(request == null ? x : request.x * tilesize, request == null ? y : request.y * tilesize, isBuilding() && (Mathf.within(request.x * tilesize, request.y * tilesize, x, y, placeDistance) || state.isEditor()));
|
||||
|
||||
@@ -750,8 +752,7 @@ public class Player extends Unit implements BuilderMinerTrait, ShooterTrait{
|
||||
rotation = Mathf.slerpDelta(rotation, angleTo(target), 0.2f);
|
||||
}
|
||||
|
||||
Vector2 intercept =
|
||||
Predict.intercept(x, y, target.getX(), target.getY(), target.velocity().x - velocity.x, target.velocity().y - velocity.y, getWeapon().bullet.speed);
|
||||
Vector2 intercept = Predict.intercept(this, target, getWeapon().bullet.speed);
|
||||
|
||||
pointerX = intercept.x;
|
||||
pointerY = intercept.y;
|
||||
|
||||
@@ -20,8 +20,7 @@ import io.anuke.mindustry.world.modules.*;
|
||||
|
||||
import java.io.*;
|
||||
|
||||
import static io.anuke.mindustry.Vars.tileGroup;
|
||||
import static io.anuke.mindustry.Vars.world;
|
||||
import static io.anuke.mindustry.Vars.*;
|
||||
|
||||
public class TileEntity extends BaseEntity implements TargetTrait, HealthTrait{
|
||||
public static final float timeToSleep = 60f * 4; //4 seconds to fall asleep
|
||||
@@ -70,8 +69,8 @@ public class TileEntity extends BaseEntity implements TargetTrait, HealthTrait{
|
||||
x = tile.drawx();
|
||||
y = tile.drawy();
|
||||
block = tile.block();
|
||||
if(block.idleSound != Sounds.none){
|
||||
sound = new SoundLoop(block.idleSound, block.idleSoundVolume);
|
||||
if(block.activeSound != Sounds.none){
|
||||
sound = new SoundLoop(block.activeSound, block.activeSoundVolume);
|
||||
}
|
||||
|
||||
health = block.health;
|
||||
@@ -298,7 +297,11 @@ public class TileEntity extends BaseEntity implements TargetTrait, HealthTrait{
|
||||
}
|
||||
|
||||
if(sound != null){
|
||||
sound.update(x, y, block.shouldIdleSound(tile));
|
||||
sound.update(x, y, block.shouldActiveSound(tile));
|
||||
}
|
||||
|
||||
if(block.idleSound != Sounds.none && block.shouldIdleSound(tile)){
|
||||
loops.play(block.idleSound, this, block.idleSoundVolume);
|
||||
}
|
||||
|
||||
Block previous = block;
|
||||
|
||||
61
core/src/io/anuke/mindustry/game/LoopControl.java
Normal file
61
core/src/io/anuke/mindustry/game/LoopControl.java
Normal file
@@ -0,0 +1,61 @@
|
||||
package io.anuke.mindustry.game;
|
||||
|
||||
import io.anuke.arc.*;
|
||||
import io.anuke.arc.audio.*;
|
||||
import io.anuke.arc.collection.*;
|
||||
import io.anuke.arc.math.*;
|
||||
import io.anuke.arc.math.geom.*;
|
||||
import io.anuke.mindustry.*;
|
||||
|
||||
public class LoopControl{
|
||||
private ObjectMap<Sound, SoundData> sounds = new ObjectMap<>();
|
||||
|
||||
public void play(Sound sound, Position pos, float volume){
|
||||
if(Vars.headless) return;
|
||||
|
||||
float baseVol = sound.calcFalloff(pos.getX(), pos.getY());
|
||||
float vol = baseVol * volume;
|
||||
|
||||
SoundData data = sounds.getOr(sound, SoundData::new);
|
||||
data.volume += vol;
|
||||
data.volume = Mathf.clamp(data.volume, 0f, 1f);
|
||||
data.total += baseVol;
|
||||
data.sum.add(pos.getX() * baseVol, pos.getY() * baseVol);
|
||||
}
|
||||
|
||||
public void update(){
|
||||
float avol = Core.settings.getInt("ambientvol", 100) / 100f;
|
||||
|
||||
sounds.each((sound, data) -> {
|
||||
data.curVolume = Mathf.lerpDelta(data.curVolume, data.volume * avol, 0.2f);
|
||||
|
||||
boolean play = data.curVolume > 0.01f;
|
||||
float pan = Mathf.isZero(data.total, 0.0001f) ? 0f : sound.calcPan(data.sum.x / data.total, data.sum.y / data.total);
|
||||
if(data.soundID <= 0){
|
||||
if(play){
|
||||
data.soundID = sound.loop(data.curVolume, 1f, pan);
|
||||
}
|
||||
}else{
|
||||
if(data.curVolume <= 0.01f){
|
||||
sound.stop(data.soundID);
|
||||
data.soundID = -1;
|
||||
return;
|
||||
}
|
||||
sound.setPan(data.soundID, pan, data.curVolume);
|
||||
}
|
||||
|
||||
data.volume = 0f;
|
||||
data.total = 0f;
|
||||
data.sum.setZero();
|
||||
});
|
||||
}
|
||||
|
||||
private class SoundData{
|
||||
float volume;
|
||||
float total;
|
||||
Vector2 sum = new Vector2();
|
||||
|
||||
int soundID;
|
||||
float curVolume;
|
||||
}
|
||||
}
|
||||
@@ -9,7 +9,7 @@ public class SoundLoop{
|
||||
private static final float fadeSpeed = 0.05f;
|
||||
|
||||
private final Sound sound;
|
||||
private long id = -1;
|
||||
private int id = -1;
|
||||
private float volume, baseVolume;
|
||||
|
||||
public SoundLoop(Sound sound, float baseVolume){
|
||||
|
||||
@@ -2,6 +2,7 @@ package io.anuke.mindustry.io;
|
||||
|
||||
import io.anuke.arc.collection.*;
|
||||
import io.anuke.arc.util.serialization.*;
|
||||
import io.anuke.arc.util.serialization.Json.*;
|
||||
import io.anuke.mindustry.*;
|
||||
import io.anuke.mindustry.content.*;
|
||||
import io.anuke.mindustry.game.*;
|
||||
@@ -11,10 +12,13 @@ import io.anuke.mindustry.world.*;
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public class JsonIO{
|
||||
private static CustomJson json = new CustomJson();
|
||||
private static CustomJson jsonBase = new CustomJson();
|
||||
private static Json json = new Json(){{
|
||||
apply(this);
|
||||
}};
|
||||
|
||||
public static String write(Object object){
|
||||
return json.toJson(object);
|
||||
return json.toJson(object, object.getClass());
|
||||
}
|
||||
|
||||
public static <T> T copy(T object){
|
||||
@@ -26,66 +30,50 @@ public class JsonIO{
|
||||
}
|
||||
|
||||
public static <T> T read(Class<T> type, T base, String string){
|
||||
return json.fromBaseJson(type, base, string);
|
||||
return jsonBase.fromBaseJson(type, base, string);
|
||||
}
|
||||
|
||||
public static String print(String in){
|
||||
return json.prettyPrint(in);
|
||||
}
|
||||
|
||||
static class CustomJson extends Json{
|
||||
private Object baseObject;
|
||||
private static void apply(Json json){
|
||||
json.setIgnoreUnknownFields(true);
|
||||
json.setElementType(Rules.class, "spawns", SpawnGroup.class);
|
||||
json.setElementType(Rules.class, "loadout", ItemStack.class);
|
||||
|
||||
{
|
||||
setIgnoreUnknownFields(true);
|
||||
setElementType(Rules.class, "spawns", SpawnGroup.class);
|
||||
setElementType(Rules.class, "loadout", ItemStack.class);
|
||||
|
||||
setSerializer(Zone.class, new Serializer<Zone>(){
|
||||
@Override
|
||||
public void write(Json json, Zone object, Class knownType){
|
||||
json.writeValue(object.name);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Zone read(Json json, JsonValue jsonData, Class type){
|
||||
return Vars.content.getByName(ContentType.zone, jsonData.asString());
|
||||
}
|
||||
});
|
||||
|
||||
setSerializer(Item.class, new Serializer<Item>(){
|
||||
@Override
|
||||
public void write(Json json, Item object, Class knownType){
|
||||
json.writeValue(object.name);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Item read(Json json, JsonValue jsonData, Class type){
|
||||
if(jsonData.asString() == null) return Items.copper;
|
||||
Item i = Vars.content.getByName(ContentType.item, jsonData.asString());
|
||||
return i == null ? Items.copper : i;
|
||||
}
|
||||
});
|
||||
|
||||
//TODO extremely hacky and disgusting
|
||||
for(Block block : Vars.content.blocks()){
|
||||
Class type = block.getClass();
|
||||
if(type.isAnonymousClass()) type = type.getSuperclass();
|
||||
|
||||
setSerializer(type, new Serializer<Block>(){
|
||||
@Override
|
||||
public void write(Json json, Block object, Class knownType){
|
||||
json.writeValue(object.name);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Block read(Json json, JsonValue jsonData, Class type){
|
||||
return Vars.content.getByName(ContentType.block, jsonData.asString());
|
||||
}
|
||||
});
|
||||
json.setSerializer(Zone.class, new Serializer<Zone>(){
|
||||
@Override
|
||||
public void write(Json json, Zone object, Class knownType){
|
||||
json.writeValue(object.name);
|
||||
}
|
||||
|
||||
setSerializer(Block.class, new Serializer<Block>(){
|
||||
@Override
|
||||
public Zone read(Json json, JsonValue jsonData, Class type){
|
||||
return Vars.content.getByName(ContentType.zone, jsonData.asString());
|
||||
}
|
||||
});
|
||||
|
||||
json.setSerializer(Item.class, new Serializer<Item>(){
|
||||
@Override
|
||||
public void write(Json json, Item object, Class knownType){
|
||||
json.writeValue(object.name);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Item read(Json json, JsonValue jsonData, Class type){
|
||||
if(jsonData.asString() == null) return Items.copper;
|
||||
Item i = Vars.content.getByName(ContentType.item, jsonData.asString());
|
||||
return i == null ? Items.copper : i;
|
||||
}
|
||||
});
|
||||
|
||||
//TODO extremely hacky and disgusting
|
||||
for(Block block : Vars.content.blocks()){
|
||||
Class type = block.getClass();
|
||||
if(type.isAnonymousClass()) type = type.getSuperclass();
|
||||
|
||||
json.setSerializer(type, new Serializer<Block>(){
|
||||
@Override
|
||||
public void write(Json json, Block object, Class knownType){
|
||||
json.writeValue(object.name);
|
||||
@@ -96,40 +84,60 @@ public class JsonIO{
|
||||
return Vars.content.getByName(ContentType.block, jsonData.asString());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
setSerializer(TeamData.class, new Serializer<TeamData>(){
|
||||
@Override
|
||||
public void write(Json json, TeamData object, Class knownType){
|
||||
json.writeObjectStart();
|
||||
json.writeValue("brokenBlocks", object.brokenBlocks.toArray());
|
||||
json.writeValue("team", object.team.ordinal());
|
||||
json.writeObjectEnd();
|
||||
}
|
||||
json.setSerializer(Block.class, new Serializer<Block>(){
|
||||
@Override
|
||||
public void write(Json json, Block object, Class knownType){
|
||||
json.writeValue(object.name);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TeamData read(Json json, JsonValue jsonData, Class type){
|
||||
long[] blocks = jsonData.get("brokenBlocks").asLongArray();
|
||||
Team team = Team.all[jsonData.getInt("team", 0)];
|
||||
TeamData out = new TeamData(team, EnumSet.of(new Team[]{}));
|
||||
out.brokenBlocks = new LongQueue(blocks);
|
||||
return out;
|
||||
}
|
||||
});
|
||||
@Override
|
||||
public Block read(Json json, JsonValue jsonData, Class type){
|
||||
return Vars.content.getByName(ContentType.block, jsonData.asString());
|
||||
}
|
||||
});
|
||||
|
||||
setSerializer(ItemStack.class, new Serializer<ItemStack>(){
|
||||
@Override
|
||||
public void write(Json json, ItemStack object, Class knownType){
|
||||
json.writeObjectStart();
|
||||
json.writeValue("item", object.item);
|
||||
json.writeValue("amount", object.amount);
|
||||
json.writeObjectEnd();
|
||||
}
|
||||
json.setSerializer(TeamData.class, new Serializer<TeamData>(){
|
||||
@Override
|
||||
public void write(Json json, TeamData object, Class knownType){
|
||||
json.writeObjectStart();
|
||||
json.writeValue("brokenBlocks", object.brokenBlocks.toArray());
|
||||
json.writeValue("team", object.team.ordinal());
|
||||
json.writeObjectEnd();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack read(Json json, JsonValue jsonData, Class type){
|
||||
return new ItemStack(json.getSerializer(Item.class).read(json, jsonData.get("item"), Item.class), jsonData.getInt("amount"));
|
||||
}
|
||||
});
|
||||
@Override
|
||||
public TeamData read(Json json, JsonValue jsonData, Class type){
|
||||
long[] blocks = jsonData.get("brokenBlocks").asLongArray();
|
||||
Team team = Team.all[jsonData.getInt("team", 0)];
|
||||
TeamData out = new TeamData(team, EnumSet.of(new Team[]{}));
|
||||
out.brokenBlocks = new LongQueue(blocks);
|
||||
return out;
|
||||
}
|
||||
});
|
||||
|
||||
json.setSerializer(ItemStack.class, new Serializer<ItemStack>(){
|
||||
@Override
|
||||
public void write(Json json, ItemStack object, Class knownType){
|
||||
json.writeObjectStart();
|
||||
json.writeValue("item", object.item);
|
||||
json.writeValue("amount", object.amount);
|
||||
json.writeObjectEnd();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack read(Json json, JsonValue jsonData, Class type){
|
||||
return new ItemStack(json.getSerializer(Item.class).read(json, jsonData.get("item"), Item.class), jsonData.getInt("amount"));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
static class CustomJson extends Json{
|
||||
private Object baseObject;
|
||||
|
||||
{
|
||||
apply(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -14,9 +14,7 @@ public abstract class SaveFileReader{
|
||||
protected final DataOutputStream dataBytes = new DataOutputStream(byteOutput);
|
||||
protected final ReusableByteOutStream byteOutputSmall = new ReusableByteOutStream();
|
||||
protected final DataOutputStream dataBytesSmall = new DataOutputStream(byteOutputSmall);
|
||||
protected final ObjectMap<String, String> fallback = ObjectMap.of(
|
||||
|
||||
);
|
||||
protected final ObjectMap<String, String> fallback = ObjectMap.of();
|
||||
|
||||
protected void region(String name, DataInput stream, CounterInputStream counter, IORunner<DataInput> cons) throws IOException{
|
||||
counter.resetCount();
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package io.anuke.mindustry.io;
|
||||
|
||||
import io.anuke.arc.collection.*;
|
||||
import io.anuke.mindustry.game.Rules;
|
||||
import io.anuke.mindustry.maps.Map;
|
||||
|
||||
@@ -13,8 +14,9 @@ public class SaveMeta{
|
||||
public Map map;
|
||||
public int wave;
|
||||
public Rules rules;
|
||||
public StringMap tags;
|
||||
|
||||
public SaveMeta(int version, long timestamp, long timePlayed, int build, String map, int wave, Rules rules){
|
||||
public SaveMeta(int version, long timestamp, long timePlayed, int build, String map, int wave, Rules rules, StringMap tags){
|
||||
this.version = version;
|
||||
this.build = build;
|
||||
this.timestamp = timestamp;
|
||||
@@ -22,5 +24,6 @@ public class SaveMeta{
|
||||
this.map = world.maps.all().find(m -> m.name().equals(map));
|
||||
this.wave = wave;
|
||||
this.rules = rules;
|
||||
this.tags = tags;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@ public abstract class SaveVersion extends SaveFileReader{
|
||||
public SaveMeta getMeta(DataInput stream) throws IOException{
|
||||
stream.readInt(); //length of data, doesn't matter here
|
||||
StringMap map = readStringMap(stream);
|
||||
return new SaveMeta(map.getInt("version"), map.getLong("saved"), map.getLong("playtime"), map.getInt("build"), map.get("mapname"), map.getInt("wave"), JsonIO.read(Rules.class, map.get("rules", "{}")));
|
||||
return new SaveMeta(map.getInt("version"), map.getLong("saved"), map.getLong("playtime"), map.getInt("build"), map.get("mapname"), map.getInt("wave"), JsonIO.read(Rules.class, map.get("rules", "{}")), map);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -92,7 +92,7 @@ public class Weapon{
|
||||
float baseX = shooter.getX(), baseY = shooter.getY();
|
||||
|
||||
Weapon weapon = shooter.getWeapon();
|
||||
weapon.shootSound.at(x, y);
|
||||
weapon.shootSound.at(x, y, Mathf.random(0.8f, 1.0f));
|
||||
|
||||
sequenceNum = 0;
|
||||
if(weapon.shotDelay > 0.01f){
|
||||
|
||||
@@ -176,7 +176,7 @@ public class Zone extends UnlockableContent{
|
||||
|
||||
@Override
|
||||
public void load(){
|
||||
if(Core.files.internal("zones/" + name + ".png").exists()){
|
||||
if(Core.files.internal("zones/" + name + ".png").exists() && !headless){
|
||||
preview = new Texture(Core.files.internal("zones/" + name + ".png"));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,7 +25,9 @@ public class MultiReqImage extends Stack{
|
||||
if(valid != null){
|
||||
valid.visible(true);
|
||||
}else{
|
||||
displays.get((int)(time) % displays.size).visible(true);
|
||||
if(displays.size > 0){
|
||||
displays.get((int)(time) % displays.size).visible(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,7 +43,7 @@ public class MapsDialog extends FloatingDialog{
|
||||
void setup(){
|
||||
buttons.clearChildren();
|
||||
|
||||
if(Core.graphics.isPortrait()){
|
||||
if(Core.graphics.isPortrait() && !ios){
|
||||
buttons.addImageTextButton("$back", "icon-arrow-left", iconsize, this::hide).size(210f*2f, 64f).colspan(2);
|
||||
buttons.row();
|
||||
}else{
|
||||
@@ -60,54 +60,56 @@ public class MapsDialog extends FloatingDialog{
|
||||
});
|
||||
}).size(210f, 64f);
|
||||
|
||||
buttons.addImageTextButton("$editor.importmap", "icon-load", iconsize, () -> {
|
||||
Platform.instance.showFileChooser("$editor.importmap", "Map File", file -> {
|
||||
world.maps.tryCatchMapError(() -> {
|
||||
if(MapIO.isImage(file)){
|
||||
ui.showError("$editor.errorimage");
|
||||
return;
|
||||
}
|
||||
if(!ios){
|
||||
buttons.addImageTextButton("$editor.importmap", "icon-load", iconsize, () -> {
|
||||
Platform.instance.showFileChooser("$editor.importmap", "Map File", file -> {
|
||||
world.maps.tryCatchMapError(() -> {
|
||||
if(MapIO.isImage(file)){
|
||||
ui.showError("$editor.errorimage");
|
||||
return;
|
||||
}
|
||||
|
||||
Map map;
|
||||
if(file.extension().equalsIgnoreCase(mapExtension)){
|
||||
map = MapIO.createMap(file, true);
|
||||
}else{
|
||||
map = world.maps.makeLegacyMap(file);
|
||||
}
|
||||
Map map;
|
||||
if(file.extension().equalsIgnoreCase(mapExtension)){
|
||||
map = MapIO.createMap(file, true);
|
||||
}else{
|
||||
map = world.maps.makeLegacyMap(file);
|
||||
}
|
||||
|
||||
//when you attempt to import a save, it will have no name, so generate one
|
||||
String name = map.tags.getOr("name", () -> {
|
||||
String result = "unknown";
|
||||
int number = 0;
|
||||
while(world.maps.byName(result + number++) != null);
|
||||
return result + number;
|
||||
});
|
||||
|
||||
//this will never actually get called, but it remains just in case
|
||||
if(name == null){
|
||||
ui.showError("$editor.errorname");
|
||||
return;
|
||||
}
|
||||
|
||||
Map conflict = world.maps.all().find(m -> m.name().equals(name));
|
||||
|
||||
if(conflict != null && !conflict.custom){
|
||||
ui.showInfo(Core.bundle.format("editor.import.exists", name));
|
||||
}else if(conflict != null){
|
||||
ui.showConfirm("$confirm", "$editor.overwrite.confirm", () -> {
|
||||
world.maps.tryCatchMapError(() -> {
|
||||
world.maps.importMap(file);
|
||||
setup();
|
||||
});
|
||||
//when you attempt to import a save, it will have no name, so generate one
|
||||
String name = map.tags.getOr("name", () -> {
|
||||
String result = "unknown";
|
||||
int number = 0;
|
||||
while(world.maps.byName(result + number++) != null) ;
|
||||
return result + number;
|
||||
});
|
||||
}else{
|
||||
world.maps.importMap(map.file);
|
||||
setup();
|
||||
}
|
||||
|
||||
});
|
||||
}, true, FileChooser.anyMapFiles);
|
||||
}).size(210f, 64f);
|
||||
//this will never actually get called, but it remains just in case
|
||||
if(name == null){
|
||||
ui.showError("$editor.errorname");
|
||||
return;
|
||||
}
|
||||
|
||||
Map conflict = world.maps.all().find(m -> m.name().equals(name));
|
||||
|
||||
if(conflict != null && !conflict.custom){
|
||||
ui.showInfo(Core.bundle.format("editor.import.exists", name));
|
||||
}else if(conflict != null){
|
||||
ui.showConfirm("$confirm", "$editor.overwrite.confirm", () -> {
|
||||
world.maps.tryCatchMapError(() -> {
|
||||
world.maps.importMap(file);
|
||||
setup();
|
||||
});
|
||||
});
|
||||
}else{
|
||||
world.maps.importMap(map.file);
|
||||
setup();
|
||||
}
|
||||
|
||||
});
|
||||
}, true, FileChooser.anyMapFiles);
|
||||
}).size(210f, 64f);
|
||||
}
|
||||
|
||||
cont.clear();
|
||||
|
||||
|
||||
@@ -108,6 +108,7 @@ public class PausedDialog extends FloatingDialog{
|
||||
|
||||
if(control.saves.getCurrent() == null || !control.saves.getCurrent().isAutosave() || state.rules.tutorial){
|
||||
state.set(State.menu);
|
||||
logic.reset();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -119,6 +120,7 @@ public class PausedDialog extends FloatingDialog{
|
||||
ui.showError("[accent]" + Core.bundle.get("savefail"));
|
||||
}
|
||||
state.set(State.menu);
|
||||
logic.reset();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -126,6 +126,7 @@ public class SettingsMenuDialog extends SettingsDialog{
|
||||
void addSettings(){
|
||||
sound.sliderPref("musicvol", bundle.get("setting.musicvol.name", "Music Volume"), 100, 0, 100, 1, i -> i + "%");
|
||||
sound.sliderPref("sfxvol", bundle.get("setting.sfxvol.name", "SFX Volume"), 100, 0, 100, 1, i -> i + "%");
|
||||
sound.sliderPref("ambientvol", bundle.get("setting.ambientvol.name", "Ambient Volume"), 100, 0, 100, 1, i -> i + "%");
|
||||
|
||||
game.screenshakePref();
|
||||
if(mobile){
|
||||
|
||||
@@ -58,7 +58,7 @@ public class ZoneInfoDialog extends FloatingDialog{
|
||||
|
||||
rebuildItems.run();
|
||||
|
||||
cont.table(cont -> {
|
||||
cont.pane(cont -> {
|
||||
if(zone.locked()){
|
||||
cont.addImage("icon-locked");
|
||||
cont.row();
|
||||
@@ -138,6 +138,7 @@ public class ZoneInfoDialog extends FloatingDialog{
|
||||
() -> loadout.show(zone.loadout.core().itemCapacity, zone::getStartingItems, zone::resetStartingItems, zone::updateLaunchCost, rebuildItems, item -> data.getItem(item) > 0 && item.type == ItemType.material)
|
||||
).fillX().pad(3).disabled(b -> !zone.canConfigure());
|
||||
}
|
||||
cont.marginRight(12f);
|
||||
});
|
||||
cont.row();
|
||||
|
||||
|
||||
@@ -66,6 +66,7 @@ public class MenuFragment extends Fragment{
|
||||
//info icon
|
||||
if(mobile){
|
||||
parent.fill(c -> c.bottom().left().addButton("", "info", ui.about::show).size(84, 45));
|
||||
parent.fill(c -> c.bottom().right().addButton("", "discord", ui.discord::show).size(84, 45));
|
||||
}
|
||||
|
||||
String versionText = "[#ffffffba]" + ((Version.build == -1) ? "[#fc8140aa]custom build" : Version.modifier + " build " + Version.build);
|
||||
@@ -100,7 +101,7 @@ public class MenuFragment extends Fragment{
|
||||
join = new MobileButton("icon-add", isize, "$joingame", ui.join::show),
|
||||
editor = new MobileButton("icon-editor", isize, "$editor", ui.maps::show),
|
||||
tools = new MobileButton("icon-tools", isize, "$settings", ui.settings::show),
|
||||
donate = new MobileButton("icon-donate", isize, "$donate", () -> Core.net.openURI(donationURL)),
|
||||
donate = new MobileButton("icon-link", isize, "$website", () -> Core.net.openURI("https://anuke.itch.io/mindustry")),
|
||||
exit = new MobileButton("icon-exit", isize, "$quit", () -> Core.app.exit());
|
||||
|
||||
if(!Core.graphics.isPortrait()){
|
||||
@@ -108,8 +109,9 @@ public class MenuFragment extends Fragment{
|
||||
container.add(play);
|
||||
container.add(join);
|
||||
container.add(custom);
|
||||
if(ios) container.row();
|
||||
container.add(maps);
|
||||
container.row();
|
||||
if(!ios) container.row();
|
||||
|
||||
container.table(table -> {
|
||||
table.defaults().set(container.defaults());
|
||||
@@ -118,7 +120,7 @@ public class MenuFragment extends Fragment{
|
||||
table.add(tools);
|
||||
|
||||
if(Platform.instance.canDonate()) table.add(donate);
|
||||
table.add(exit);
|
||||
if(!ios) table.add(exit);
|
||||
}).colspan(4);
|
||||
}else{
|
||||
container.marginTop(0f);
|
||||
|
||||
@@ -25,6 +25,7 @@ import io.anuke.mindustry.game.*;
|
||||
import io.anuke.mindustry.gen.*;
|
||||
import io.anuke.mindustry.graphics.*;
|
||||
import io.anuke.mindustry.input.InputHandler.*;
|
||||
import io.anuke.mindustry.net.Net;
|
||||
import io.anuke.mindustry.type.*;
|
||||
import io.anuke.mindustry.ui.*;
|
||||
import io.anuke.mindustry.world.blocks.*;
|
||||
@@ -100,7 +101,13 @@ public class Block extends BlockStorage{
|
||||
public boolean hasShadow = true;
|
||||
/** Sounds made when this block breaks.*/
|
||||
public Sound breakSound = Sounds.boom;
|
||||
/** The sound that this block makes while active.*/
|
||||
|
||||
/** The sound that this block makes while active. One sound loop. Do not overuse.*/
|
||||
public Sound activeSound = Sounds.none;
|
||||
/** Active sound base volume. */
|
||||
public float activeSoundVolume = 0.5f;
|
||||
|
||||
/** The sound that this block makes while idle. Uses one sound loop for all blocks.*/
|
||||
public Sound idleSound = Sounds.none;
|
||||
/** Idle sound base volume. */
|
||||
public float idleSoundVolume = 0.5f;
|
||||
@@ -211,6 +218,11 @@ public class Block extends BlockStorage{
|
||||
return progressIncrease;
|
||||
}
|
||||
|
||||
/** @return whether this block should play its active sound.*/
|
||||
public boolean shouldActiveSound(Tile tile){
|
||||
return false;
|
||||
}
|
||||
|
||||
/** @return whether this block should play its idle sound.*/
|
||||
public boolean shouldIdleSound(Tile tile){
|
||||
return canProduce(tile);
|
||||
@@ -282,6 +294,15 @@ public class Block extends BlockStorage{
|
||||
/** Called after the block is placed by this client. */
|
||||
@CallSuper
|
||||
public void playerPlaced(Tile tile){
|
||||
if(outputsPower && !consumesPower){
|
||||
PowerNode.lastPlaced = tile.pos();
|
||||
}
|
||||
}
|
||||
|
||||
/** Called after the block is placed by anyone. */
|
||||
@CallSuper
|
||||
public void placed(Tile tile){
|
||||
if(Net.client()) return;
|
||||
|
||||
if((consumesPower && !outputsPower) || (!consumesPower && outputsPower)){
|
||||
int range = 10;
|
||||
@@ -289,7 +310,7 @@ public class Block extends BlockStorage{
|
||||
Geometry.circle(tile.x, tile.y, range, (x, y) -> {
|
||||
Tile other = world.ltile(x, y);
|
||||
if(other != null && other.block instanceof PowerNode && ((PowerNode)other.block).linkValid(other, tile) && !other.entity.proximity().contains(tile) &&
|
||||
!(outputsPower && tile.entity.proximity().contains(p -> p.entity != null && p.entity.power != null && p.entity.power.graph == other.entity.power.graph))){
|
||||
!(outputsPower && tile.entity.proximity().contains(p -> p.entity != null && p.entity.power != null && p.entity.power.graph == other.entity.power.graph))){
|
||||
tempTiles.add(other);
|
||||
}
|
||||
});
|
||||
@@ -298,19 +319,11 @@ public class Block extends BlockStorage{
|
||||
Call.linkPowerNodes(null, tempTiles.first(), tile);
|
||||
}
|
||||
}
|
||||
|
||||
if(outputsPower && !consumesPower){
|
||||
PowerNode.lastPlaced = tile.pos();
|
||||
}
|
||||
}
|
||||
|
||||
public void removed(Tile tile){
|
||||
}
|
||||
|
||||
/** Called after the block is placed by anyone. */
|
||||
public void placed(Tile tile){
|
||||
}
|
||||
|
||||
/** Called every frame a unit is on this tile. */
|
||||
public void unitOn(Tile tile, Unit unit){
|
||||
}
|
||||
|
||||
@@ -54,7 +54,7 @@ public class BuildBlock extends Block{
|
||||
Effects.effect(Fx.breakBlock, tile.drawx(), tile.drawy(), block.size);
|
||||
world.removeBlock(tile);
|
||||
Events.fire(new BlockBuildEndEvent(tile, team, true));
|
||||
Sounds.breaks.at(tile);
|
||||
Sounds.breaks.at(tile, Mathf.random(0.7f, 1.4f));
|
||||
}
|
||||
|
||||
@Remote(called = Loc.server)
|
||||
@@ -75,7 +75,7 @@ public class BuildBlock extends Block{
|
||||
Core.app.post(() -> tile.block().playerPlaced(tile));
|
||||
}
|
||||
Core.app.post(() -> Events.fire(new BlockBuildEndEvent(tile, team, false)));
|
||||
Sounds.place.at(tile);
|
||||
Sounds.place.at(tile, Mathf.random(0.7f, 1.4f));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -105,7 +105,7 @@ public class LaserTurret extends PowerTurret{
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldIdleSound(Tile tile){
|
||||
public boolean shouldActiveSound(Tile tile){
|
||||
LaserTurretEntity entity = tile.entity();
|
||||
|
||||
return entity.bulletLife > 0 && entity.bullet != null;
|
||||
|
||||
@@ -5,6 +5,7 @@ import io.anuke.mindustry.entities.*;
|
||||
import io.anuke.mindustry.entities.bullet.*;
|
||||
import io.anuke.mindustry.entities.effect.*;
|
||||
import io.anuke.mindustry.entities.type.*;
|
||||
import io.anuke.mindustry.gen.*;
|
||||
import io.anuke.mindustry.type.*;
|
||||
import io.anuke.mindustry.world.*;
|
||||
import io.anuke.mindustry.world.consumers.*;
|
||||
@@ -19,6 +20,7 @@ public abstract class LiquidTurret extends Turret{
|
||||
public LiquidTurret(String name){
|
||||
super(name);
|
||||
hasLiquids = true;
|
||||
activeSound = Sounds.spray;
|
||||
}
|
||||
|
||||
/** Initializes accepted ammo map. Format: [liquid1, bullet1, liquid2, bullet2...] */
|
||||
@@ -44,6 +46,12 @@ public abstract class LiquidTurret extends Turret{
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldActiveSound(Tile tile){
|
||||
TurretEntity entity = tile.entity();
|
||||
return entity.target != null && hasAmmo(tile);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean validateTarget(Tile tile){
|
||||
TurretEntity entity = tile.entity();
|
||||
@@ -79,7 +87,7 @@ public abstract class LiquidTurret extends Turret{
|
||||
|
||||
Effects.effect(type.shootEffect, entity.liquids.current().color, tile.drawx() + tr.x, tile.drawy() + tr.y, entity.rotation);
|
||||
Effects.effect(type.smokeEffect, entity.liquids.current().color, tile.drawx() + tr.x, tile.drawy() + tr.y, entity.rotation);
|
||||
shootSound.at(tile);
|
||||
//shootSound.at(tile);
|
||||
|
||||
if(shootShake > 0){
|
||||
Effects.shake(shootShake, shootShake, tile.entity);
|
||||
|
||||
@@ -279,7 +279,7 @@ public abstract class Turret extends Block{
|
||||
|
||||
Effects.effect(shootEffect, tile.drawx() + tr.x, tile.drawy() + tr.y, entity.rotation);
|
||||
Effects.effect(smokeEffect, tile.drawx() + tr.x, tile.drawy() + tr.y, entity.rotation);
|
||||
shootSound.at(tile);
|
||||
shootSound.at(tile, Mathf.random(0.9f, 1.1f));
|
||||
|
||||
if(shootShake > 0){
|
||||
Effects.shake(shootShake, shootShake, tile.entity);
|
||||
|
||||
@@ -1,19 +1,17 @@
|
||||
package io.anuke.mindustry.world.blocks.distribution;
|
||||
|
||||
import io.anuke.arc.Core;
|
||||
import io.anuke.arc.collection.LongArray;
|
||||
import io.anuke.arc.graphics.g2d.Draw;
|
||||
import io.anuke.arc.graphics.g2d.TextureRegion;
|
||||
import io.anuke.arc.math.Mathf;
|
||||
import io.anuke.arc.*;
|
||||
import io.anuke.arc.collection.*;
|
||||
import io.anuke.arc.graphics.g2d.*;
|
||||
import io.anuke.arc.math.*;
|
||||
import io.anuke.arc.math.geom.*;
|
||||
import io.anuke.arc.util.*;
|
||||
import io.anuke.mindustry.entities.type.TileEntity;
|
||||
import io.anuke.mindustry.entities.type.Unit;
|
||||
import io.anuke.mindustry.graphics.Layer;
|
||||
import io.anuke.mindustry.input.InputHandler.PlaceDraw;
|
||||
import io.anuke.mindustry.type.Item;
|
||||
import io.anuke.mindustry.world.Block;
|
||||
import io.anuke.mindustry.world.Tile;
|
||||
import io.anuke.mindustry.entities.type.*;
|
||||
import io.anuke.mindustry.gen.*;
|
||||
import io.anuke.mindustry.graphics.*;
|
||||
import io.anuke.mindustry.input.InputHandler.*;
|
||||
import io.anuke.mindustry.type.*;
|
||||
import io.anuke.mindustry.world.*;
|
||||
import io.anuke.mindustry.world.meta.*;
|
||||
|
||||
import java.io.*;
|
||||
@@ -41,6 +39,9 @@ public class Conveyor extends Block{
|
||||
group = BlockGroup.transportation;
|
||||
hasItems = true;
|
||||
itemCapacity = 4;
|
||||
|
||||
idleSound = Sounds.conveyor;
|
||||
idleSoundVolume = 0.004f;
|
||||
}
|
||||
|
||||
private static int compareItems(long a, long b){
|
||||
@@ -76,6 +77,12 @@ public class Conveyor extends Block{
|
||||
tilesize * entity.blendsclx, tilesize * entity.blendscly, rotation * 90);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldIdleSound(Tile tile){
|
||||
ConveyorEntity entity = tile.entity();
|
||||
return entity.clogHeat <= 0.5f ;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onProximityUpdate(Tile tile){
|
||||
super.onProximityUpdate(tile);
|
||||
|
||||
@@ -11,6 +11,7 @@ import io.anuke.arc.util.*;
|
||||
import io.anuke.mindustry.entities.type.*;
|
||||
import io.anuke.mindustry.gen.*;
|
||||
import io.anuke.mindustry.graphics.*;
|
||||
import io.anuke.mindustry.net.Net;
|
||||
import io.anuke.mindustry.ui.*;
|
||||
import io.anuke.mindustry.world.*;
|
||||
import io.anuke.mindustry.world.blocks.*;
|
||||
@@ -106,6 +107,14 @@ public class PowerNode extends PowerBlock{
|
||||
Call.linkPowerNodes(null, tile, before);
|
||||
}
|
||||
|
||||
lastPlaced = tile.pos();
|
||||
super.playerPlaced(tile);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void placed(Tile tile){
|
||||
if(Net.client()) return;
|
||||
|
||||
Predicate<Tile> valid = other -> other != null && other != tile && ((!other.block().outputsPower && other.block().consumesPower) || (other.block().outputsPower && !other.block().consumesPower)) && linkValid(tile, other)
|
||||
&& !other.entity.proximity().contains(tile) && other.entity.power.graph != tile.entity.power.graph;
|
||||
|
||||
@@ -120,8 +129,7 @@ public class PowerNode extends PowerBlock{
|
||||
tempTiles.sort(Structs.comparingFloat(t -> t.dst2(tile)));
|
||||
tempTiles.each(valid, other -> Call.linkPowerNodes(null, tile, other));
|
||||
|
||||
lastPlaced = tile.pos();
|
||||
super.playerPlaced(tile);
|
||||
super.placed(tile);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -29,11 +29,6 @@ public class ThermalGenerator extends PowerGenerator{
|
||||
drawPlaceText(Core.bundle.formatFloat("bar.efficiency", sumAttribute(Attribute.heat, x, y) * 100, 1), x, y, valid);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void placed(Tile tile){
|
||||
super.placed(tile);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onProximityAdded(Tile tile){
|
||||
super.onProximityAdded(tile);
|
||||
|
||||
@@ -10,6 +10,7 @@ import io.anuke.mindustry.content.*;
|
||||
import io.anuke.mindustry.entities.*;
|
||||
import io.anuke.mindustry.entities.Effects.*;
|
||||
import io.anuke.mindustry.entities.type.*;
|
||||
import io.anuke.mindustry.gen.*;
|
||||
import io.anuke.mindustry.graphics.*;
|
||||
import io.anuke.mindustry.type.*;
|
||||
import io.anuke.mindustry.ui.*;
|
||||
@@ -65,8 +66,8 @@ public class Drill extends Block{
|
||||
liquidCapacity = 5f;
|
||||
hasItems = true;
|
||||
|
||||
//idleSound = Sounds.drill;
|
||||
//idleSoundVolume = 0.5f;
|
||||
idleSound = Sounds.drill;
|
||||
idleSoundVolume = 0.002f;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1,21 +1,18 @@
|
||||
package io.anuke.mindustry.world.blocks.production;
|
||||
|
||||
import io.anuke.arc.function.Consumer;
|
||||
import io.anuke.arc.function.Supplier;
|
||||
import io.anuke.arc.graphics.g2d.TextureRegion;
|
||||
import io.anuke.arc.math.Mathf;
|
||||
import io.anuke.arc.util.Time;
|
||||
import io.anuke.mindustry.content.Fx;
|
||||
import io.anuke.mindustry.entities.Effects;
|
||||
import io.anuke.mindustry.entities.Effects.Effect;
|
||||
import io.anuke.mindustry.entities.type.TileEntity;
|
||||
import io.anuke.arc.function.*;
|
||||
import io.anuke.arc.graphics.g2d.*;
|
||||
import io.anuke.arc.math.*;
|
||||
import io.anuke.arc.util.*;
|
||||
import io.anuke.mindustry.content.*;
|
||||
import io.anuke.mindustry.entities.*;
|
||||
import io.anuke.mindustry.entities.Effects.*;
|
||||
import io.anuke.mindustry.entities.type.*;
|
||||
import io.anuke.mindustry.gen.*;
|
||||
import io.anuke.mindustry.type.*;
|
||||
import io.anuke.mindustry.world.Block;
|
||||
import io.anuke.mindustry.world.Tile;
|
||||
import io.anuke.mindustry.world.consumers.ConsumeLiquidBase;
|
||||
import io.anuke.mindustry.world.consumers.ConsumeType;
|
||||
import io.anuke.mindustry.world.meta.BlockStat;
|
||||
import io.anuke.mindustry.world.meta.StatUnit;
|
||||
import io.anuke.mindustry.world.*;
|
||||
import io.anuke.mindustry.world.consumers.*;
|
||||
import io.anuke.mindustry.world.meta.*;
|
||||
|
||||
import java.io.*;
|
||||
|
||||
@@ -37,6 +34,8 @@ public class GenericCrafter extends Block{
|
||||
solid = true;
|
||||
hasItems = true;
|
||||
health = 60;
|
||||
idleSound = Sounds.machine;
|
||||
idleSoundVolume = 0.03f;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -58,6 +57,11 @@ public class GenericCrafter extends Block{
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldIdleSound(Tile tile){
|
||||
return tile.entity.cons.valid();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void init(){
|
||||
outputsLiquid = outputLiquid != null;
|
||||
|
||||
@@ -30,8 +30,8 @@ public class CoreBlock extends StorageBlock{
|
||||
update = true;
|
||||
hasItems = true;
|
||||
flags = EnumSet.of(BlockFlag.target, BlockFlag.producer);
|
||||
idleSound = Sounds.respawning;
|
||||
idleSoundVolume = 1f;
|
||||
activeSound = Sounds.respawning;
|
||||
activeSoundVolume = 1f;
|
||||
}
|
||||
|
||||
@Remote(called = Loc.server)
|
||||
@@ -79,6 +79,7 @@ public class CoreBlock extends StorageBlock{
|
||||
|
||||
@Override
|
||||
public void placed(Tile tile){
|
||||
super.placed(tile);
|
||||
state.teams.get(tile.getTeam()).cores.add(tile);
|
||||
}
|
||||
|
||||
@@ -155,7 +156,7 @@ public class CoreBlock extends StorageBlock{
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldIdleSound(Tile tile){
|
||||
public boolean shouldActiveSound(Tile tile){
|
||||
CoreEntity entity = tile.entity();
|
||||
|
||||
return entity.spawnPlayer != null;
|
||||
|
||||
Reference in New Issue
Block a user