Merge branch 'master' into patch-2
@@ -227,7 +227,7 @@ public class Annotations{
|
|||||||
/** The local locations where this method is called locally, when invoked. */
|
/** The local locations where this method is called locally, when invoked. */
|
||||||
Loc called() default Loc.none;
|
Loc called() default Loc.none;
|
||||||
|
|
||||||
/** Whether to forward this packet to all other clients upon recieval. Client only. */
|
/** Whether to forward this packet to all other clients upon receival. Client only. */
|
||||||
boolean forward() default false;
|
boolean forward() default false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 347 B |
BIN
core/assets-raw/sprites/blocks/power/solar/solar-panel-0.png
Normal file
|
After Width: | Height: | Size: 944 B |
BIN
core/assets-raw/sprites/blocks/power/solar/solar-panel-1.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
core/assets-raw/sprites/blocks/power/solar/solar-panel-2.png
Normal file
|
After Width: | Height: | Size: 513 B |
BIN
core/assets-raw/sprites/blocks/power/solar/solar-panel-3.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
core/assets-raw/sprites/blocks/power/solar/solar-panel-4.png
Normal file
|
After Width: | Height: | Size: 943 B |
BIN
core/assets-raw/sprites/blocks/power/solar/solar-panel-5.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
core/assets-raw/sprites/blocks/power/solar/solar-panel-6.png
Normal file
|
After Width: | Height: | Size: 522 B |
BIN
core/assets-raw/sprites/blocks/power/solar/solar-panel-7.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
core/assets-raw/sprites/blocks/power/solar/solar-panel-icon.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
core/assets-raw/sprites/blocks/power/solar/solar-panel.png
Normal file
|
After Width: | Height: | Size: 1002 B |
1264
core/assets/bundles/bundle_da.properties
Normal file
@@ -110,7 +110,7 @@ mod.display = [gray]Mod:[orange] {0}
|
|||||||
mod.enabled = [lightgray]Käytössä
|
mod.enabled = [lightgray]Käytössä
|
||||||
mod.disabled = [scarlet]Pois käytöstä
|
mod.disabled = [scarlet]Pois käytöstä
|
||||||
mod.disable = Poista käytössä
|
mod.disable = Poista käytössä
|
||||||
mod.content = Content:
|
mod.content = Sisältö:
|
||||||
mod.delete.error = Modia ei pystytty poistamaan. Tiedosto voi olla käytössä.
|
mod.delete.error = Modia ei pystytty poistamaan. Tiedosto voi olla käytössä.
|
||||||
mod.requiresversion = [scarlet]Tarvitsee vähintään pelin version: [accent]{0}
|
mod.requiresversion = [scarlet]Tarvitsee vähintään pelin version: [accent]{0}
|
||||||
mod.missingdependencies = [scarlet]Tarvitsee nämä modit: {0}
|
mod.missingdependencies = [scarlet]Tarvitsee nämä modit: {0}
|
||||||
@@ -150,7 +150,7 @@ server.closing = [accent]Suljetaan palvelinta...
|
|||||||
server.kicked.kick = Sinut on potkittu palvelimelta!
|
server.kicked.kick = Sinut on potkittu palvelimelta!
|
||||||
server.kicked.whitelist = Sinua ei ole lisätty sallittujen luetteloon tällä palvelimella.
|
server.kicked.whitelist = Sinua ei ole lisätty sallittujen luetteloon tällä palvelimella.
|
||||||
server.kicked.serverClose = Palvelin suljettu.
|
server.kicked.serverClose = Palvelin suljettu.
|
||||||
server.kicked.vote = Sinut on äänetetty pois. Hyvästi.
|
server.kicked.vote = Sinut on äänestetty pois. Hyvästi.
|
||||||
server.kicked.clientOutdated = Pelisi on vanhentunut! Päivitä se!
|
server.kicked.clientOutdated = Pelisi on vanhentunut! Päivitä se!
|
||||||
server.kicked.serverOutdated = Vanhentunut palvelin! Pyydä isäntää päivittämään!
|
server.kicked.serverOutdated = Vanhentunut palvelin! Pyydä isäntää päivittämään!
|
||||||
server.kicked.banned = Sinulla on portikielto tälle palvelimelle.
|
server.kicked.banned = Sinulla on portikielto tälle palvelimelle.
|
||||||
@@ -212,12 +212,12 @@ disconnect = Yhteys katkaistu.
|
|||||||
disconnect.error = Yhteysvirhe.
|
disconnect.error = Yhteysvirhe.
|
||||||
disconnect.closed = Yhteys poistettu.
|
disconnect.closed = Yhteys poistettu.
|
||||||
disconnect.timeout = Yhteys aikakatkaistiin.
|
disconnect.timeout = Yhteys aikakatkaistiin.
|
||||||
disconnect.data = Failed to load world data!
|
disconnect.data = Maailman tietojen lataaminen epäonnistui!
|
||||||
cantconnect = Unable to join game ([accent]{0}[]).
|
cantconnect = Peliin ei voitu liittyä ([accent]{0}[]).
|
||||||
connecting = [accent]Connecting...
|
connecting = [accent]Yhdistetään...
|
||||||
connecting.data = [accent]Loading world data...
|
connecting.data = [accent]Ladataan maailman tietoja...
|
||||||
server.port = Portti:
|
server.port = Portti:
|
||||||
server.addressinuse = Address already in use!
|
server.addressinuse = Osoite on jo käytössä!
|
||||||
server.invalidport = Invalid port number!
|
server.invalidport = Invalid port number!
|
||||||
server.error = [crimson]Error hosting server: [accent]{0}
|
server.error = [crimson]Error hosting server: [accent]{0}
|
||||||
save.new = Uusi tallennus
|
save.new = Uusi tallennus
|
||||||
@@ -309,8 +309,8 @@ steam.error = Failed to initialize Steam services.\nError: {0}
|
|||||||
|
|
||||||
editor.brush = Sivellin
|
editor.brush = Sivellin
|
||||||
editor.openin = Avaa editorissa
|
editor.openin = Avaa editorissa
|
||||||
editor.oregen = Ore Generation
|
editor.oregen = Malmien generaatio
|
||||||
editor.oregen.info = Ore Generation:
|
editor.oregen.info = Malmien generaatio:
|
||||||
editor.mapinfo = Kartan tiedot
|
editor.mapinfo = Kartan tiedot
|
||||||
editor.author = Tekijä:
|
editor.author = Tekijä:
|
||||||
editor.description = Kuvaus:
|
editor.description = Kuvaus:
|
||||||
@@ -361,7 +361,7 @@ editor.savemap = Tallenna kartta
|
|||||||
editor.saved = Tallennettu!
|
editor.saved = Tallennettu!
|
||||||
editor.save.noname = Kartallasi ei ole nimeä! Aseta sellainen 'Kartan tiedot' valikossa.
|
editor.save.noname = Kartallasi ei ole nimeä! Aseta sellainen 'Kartan tiedot' valikossa.
|
||||||
editor.save.overwrite = Your map overwrites a built-in map! Pick a different name 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.exists = [scarlet]Unable to import:[] sisäänrakennettu kartta nimellä '{0}' on jo olemassa!
|
||||||
editor.import = Tuo...
|
editor.import = Tuo...
|
||||||
editor.importmap = Tuo kartta
|
editor.importmap = Tuo kartta
|
||||||
editor.importmap.description = Import an already existing map
|
editor.importmap.description = Import an already existing map
|
||||||
@@ -443,7 +443,7 @@ load = Lataa
|
|||||||
save = Tallenna
|
save = Tallenna
|
||||||
fps = FPS: {0}
|
fps = FPS: {0}
|
||||||
ping = Ping: {0}ms
|
ping = Ping: {0}ms
|
||||||
language.restart = Please restart your game for the language settings to take effect.
|
language.restart = Käynnista peli uudelleen, jotta saat kieliasetukset toimimaan.
|
||||||
settings = Asetukset
|
settings = Asetukset
|
||||||
tutorial = Perehdytys
|
tutorial = Perehdytys
|
||||||
tutorial.retake = Pelaa perehdytys uudelleen
|
tutorial.retake = Pelaa perehdytys uudelleen
|
||||||
@@ -459,7 +459,7 @@ requirement.core = Tuhoa vihollisen ydin kartassa {0}
|
|||||||
requirement.unlock = Avaa {0}
|
requirement.unlock = Avaa {0}
|
||||||
resume = Resume Zone:\n[lightgray]{0}
|
resume = Resume Zone:\n[lightgray]{0}
|
||||||
bestwave = [lightgray]Paras taso: {0}
|
bestwave = [lightgray]Paras taso: {0}
|
||||||
launch = < LAUNCH >
|
launch = < LAUKAISE >
|
||||||
launch.title = Onnistunut laukaisu
|
launch.title = Onnistunut laukaisu
|
||||||
launch.next = [lightgray]seuraava mahdollisuus tasolla {0}
|
launch.next = [lightgray]seuraava mahdollisuus tasolla {0}
|
||||||
launch.unable2 = [scarlet]Unable to LAUNCH.[]
|
launch.unable2 = [scarlet]Unable to LAUNCH.[]
|
||||||
@@ -834,7 +834,7 @@ item.radioactivity = [lightgray]Radioaktiivisuus: {0}%
|
|||||||
unit.health = [lightgray]Elämäpisteet: {0}
|
unit.health = [lightgray]Elämäpisteet: {0}
|
||||||
unit.speed = [lightgray]Nopeus: {0}
|
unit.speed = [lightgray]Nopeus: {0}
|
||||||
unit.weapon = [lightgray]Ammuksia: {0}
|
unit.weapon = [lightgray]Ammuksia: {0}
|
||||||
unit.itemcapacity = [lightgray]Item Capacity: {0}
|
unit.itemcapacity = [lightgray]Esine kapasiteetti: {0}
|
||||||
unit.minespeed = [lightgray]Mining Speed: {0}%
|
unit.minespeed = [lightgray]Mining Speed: {0}%
|
||||||
unit.minepower = [lightgray]Mining Power: {0}
|
unit.minepower = [lightgray]Mining Power: {0}
|
||||||
unit.ability = [lightgray]Ability: {0}
|
unit.ability = [lightgray]Ability: {0}
|
||||||
@@ -924,8 +924,8 @@ block.plastanium-wall.name = Plastaniumiseinä
|
|||||||
block.plastanium-wall-large.name = Suuri plastaniumiseinä
|
block.plastanium-wall-large.name = Suuri plastaniumiseinä
|
||||||
block.phase-wall.name = Phase Wall
|
block.phase-wall.name = Phase Wall
|
||||||
block.phase-wall-large.name = Large Phase Wall
|
block.phase-wall-large.name = Large Phase Wall
|
||||||
block.thorium-wall.name = Thorium Wall
|
block.thorium-wall.name = Toriumiseinä
|
||||||
block.thorium-wall-large.name = Large Thorium Wall
|
block.thorium-wall-large.name = Suuri toriumiseinä
|
||||||
block.door.name = Ovi
|
block.door.name = Ovi
|
||||||
block.door-large.name = Suuri ovi
|
block.door-large.name = Suuri ovi
|
||||||
block.duo.name = Duo
|
block.duo.name = Duo
|
||||||
|
|||||||
1268
core/assets/bundles/bundle_hu.properties
Normal file
@@ -1,4 +1,4 @@
|
|||||||
credits.text = Creato da [royal]Anuken[] - [sky]anukendev@gmail.com[]
|
credits.text = Creato da [royal]Anuken[] - [sky]anukendev@gmail.com[]\n\nVersione Italiana:[lightgray]\nDeltaRays\nGioIacca9[]
|
||||||
credits = Crediti
|
credits = Crediti
|
||||||
contributors = Traduttori e Contributori
|
contributors = Traduttori e Contributori
|
||||||
discord = Entra nel server Discord di Mindustry!
|
discord = Entra nel server Discord di Mindustry!
|
||||||
@@ -591,11 +591,11 @@ bar.poweramount = Energia: {0}
|
|||||||
bar.poweroutput = Energia in Uscita: {0}
|
bar.poweroutput = Energia in Uscita: {0}
|
||||||
bar.items = Oggetti: {0}
|
bar.items = Oggetti: {0}
|
||||||
bar.capacity = Capacità: {0}
|
bar.capacity = Capacità: {0}
|
||||||
|
bar.units = Unità: {0}/{1}
|
||||||
bar.liquid = Liquido
|
bar.liquid = Liquido
|
||||||
bar.heat = Calore
|
bar.heat = Calore
|
||||||
bar.power = Energia
|
bar.power = Energia
|
||||||
bar.progress = Progresso Costruzione
|
bar.progress = Progresso Costruzione
|
||||||
bar.spawned = Unità: {0}/{1}
|
|
||||||
bar.input = Entrata
|
bar.input = Entrata
|
||||||
bar.output = Uscita
|
bar.output = Uscita
|
||||||
|
|
||||||
@@ -637,8 +637,8 @@ setting.shadows.name = Ombre
|
|||||||
setting.blockreplace.name = Suggerimento Blocchi Automatico
|
setting.blockreplace.name = Suggerimento Blocchi Automatico
|
||||||
setting.linear.name = Filtro Lineare
|
setting.linear.name = Filtro Lineare
|
||||||
setting.hints.name = Suggerimenti
|
setting.hints.name = Suggerimenti
|
||||||
setting.flow.name = Visualizza Portata Nastri/Condotti[scarlet] (sperimentale)
|
setting.flow.name = Visualizza Portata Nastri/Condotti
|
||||||
setting.buildautopause.name = Pausa automatica nella costruzione
|
setting.buildautopause.name = Pausa Automatica nella Costruzione
|
||||||
setting.animatedwater.name = Fluidi Animati
|
setting.animatedwater.name = Fluidi Animati
|
||||||
setting.animatedshields.name = Scudi Animati
|
setting.animatedshields.name = Scudi Animati
|
||||||
setting.antialias.name = Antialias[lightgray] (richiede riavvio)[]
|
setting.antialias.name = Antialias[lightgray] (richiede riavvio)[]
|
||||||
@@ -650,7 +650,7 @@ setting.touchscreen.name = Controlli Touchscreen
|
|||||||
setting.fpscap.name = Limite FPS
|
setting.fpscap.name = Limite FPS
|
||||||
setting.fpscap.none = Niente
|
setting.fpscap.none = Niente
|
||||||
setting.fpscap.text = {0} FPS
|
setting.fpscap.text = {0} FPS
|
||||||
setting.uiscale.name = Ridimensionamento Interfaccia[lightgray] (richiede riavvio)[]
|
setting.uiscale.name = Ridimensionamento Interfaccia[lightgray] (richiede il riavvio)[]
|
||||||
setting.swapdiagonal.name = Posizionamento Sempre Diagonale
|
setting.swapdiagonal.name = Posizionamento Sempre Diagonale
|
||||||
setting.difficulty.training = Allenamento
|
setting.difficulty.training = Allenamento
|
||||||
setting.difficulty.easy = Facile
|
setting.difficulty.easy = Facile
|
||||||
@@ -663,14 +663,14 @@ setting.effects.name = Visualizza Effetti
|
|||||||
setting.destroyedblocks.name = Visualizza Blocchi Distrutti
|
setting.destroyedblocks.name = Visualizza Blocchi Distrutti
|
||||||
setting.blockstatus.name = Visualizza Stato Blocchi
|
setting.blockstatus.name = Visualizza Stato Blocchi
|
||||||
setting.conveyorpathfinding.name = Posizionamento Nastri Trasportatori Intelligente
|
setting.conveyorpathfinding.name = Posizionamento Nastri Trasportatori Intelligente
|
||||||
setting.coreselect.name = Consenti Schematiche dei Nuclei
|
setting.coreselect.name = Salva Nuclei nelle Schematiche
|
||||||
setting.sensitivity.name = Sensibilità del Controller
|
setting.sensitivity.name = Sensibilità del Controller
|
||||||
setting.saveinterval.name = Intervallo di Salvataggio Automatico
|
setting.saveinterval.name = Intervallo di Salvataggio Automatico
|
||||||
setting.seconds = {0} secondi
|
setting.seconds = {0} secondi
|
||||||
setting.blockselecttimeout.name = Tempo di Selezione del Blocco
|
setting.blockselecttimeout.name = Tempo di Selezione del Blocco
|
||||||
setting.milliseconds = {0} millisecondi
|
setting.milliseconds = {0} millisecondi
|
||||||
setting.fullscreen.name = Schermo Intero
|
setting.fullscreen.name = Schermo Intero
|
||||||
setting.borderlesswindow.name = Finestra Senza Bordi[lightgray] (potrebbe richiedere riavvio)
|
setting.borderlesswindow.name = Finestra Senza Bordi[lightgray] (potrebbe richiedere il riavvio)
|
||||||
setting.fps.name = Mostra FPS e Ping
|
setting.fps.name = Mostra FPS e Ping
|
||||||
setting.blockselectkeys.name = Mostra Tasto di Selezione del Blocco
|
setting.blockselectkeys.name = Mostra Tasto di Selezione del Blocco
|
||||||
setting.vsync.name = VSync
|
setting.vsync.name = VSync
|
||||||
@@ -678,12 +678,13 @@ setting.pixelate.name = Effetto Pixel[lightgray] (disabilita le animazioni)
|
|||||||
setting.minimap.name = Mostra Minimappa
|
setting.minimap.name = Mostra Minimappa
|
||||||
setting.position.name = Mostra Posizione Giocatori
|
setting.position.name = Mostra Posizione Giocatori
|
||||||
setting.musicvol.name = Volume Musica
|
setting.musicvol.name = Volume Musica
|
||||||
|
setting.atmosphere.name = Mostra Atmosfera Pianeta
|
||||||
setting.ambientvol.name = Volume Ambiente
|
setting.ambientvol.name = Volume Ambiente
|
||||||
setting.mutemusic.name = Silenzia Musica
|
setting.mutemusic.name = Silenzia Musica
|
||||||
setting.sfxvol.name = Volume Effetti
|
setting.sfxvol.name = Volume Effetti
|
||||||
setting.mutesound.name = Silenzia Suoni
|
setting.mutesound.name = Silenzia Suoni
|
||||||
setting.crashreport.name = Invia rapporti anonimi sugli arresti anomali
|
setting.crashreport.name = Invia rapporti anonimi sugli arresti anomali
|
||||||
setting.savecreate.name = Salvataggio Automatico
|
setting.savecreate.name = Salvataggi Automatici
|
||||||
setting.publichost.name = Gioco Visibile Pubblicamente
|
setting.publichost.name = Gioco Visibile Pubblicamente
|
||||||
setting.playerlimit.name = Limite Giocatori
|
setting.playerlimit.name = Limite Giocatori
|
||||||
setting.chatopacity.name = Opacità Chat
|
setting.chatopacity.name = Opacità Chat
|
||||||
@@ -709,11 +710,11 @@ keybind.press = Premi un tasto...
|
|||||||
keybind.press.axis = Premi un'asse o un tasto...
|
keybind.press.axis = Premi un'asse o un tasto...
|
||||||
keybind.screenshot.name = Screenshot della Mappa
|
keybind.screenshot.name = Screenshot della Mappa
|
||||||
keybind.toggle_power_lines.name = Attiva/Disattiva Laser d'Energia
|
keybind.toggle_power_lines.name = Attiva/Disattiva Laser d'Energia
|
||||||
keybind.toggle_block_status.name = Attiva/Disattiva Stati dei Blocchi
|
keybind.toggle_block_status.name = Attiva/Disattiva Stato Blocchi
|
||||||
keybind.move_x.name = Muovi Orizzontalmente
|
keybind.move_x.name = Muovi Orizzontalmente
|
||||||
keybind.move_y.name = Muovi Verticalmente
|
keybind.move_y.name = Muovi Verticalmente
|
||||||
keybind.mouse_move.name = Segui il Mouse
|
keybind.mouse_move.name = Segui il Mouse
|
||||||
keybind.dash.name = Scatto
|
keybind.boost.name = Scatto
|
||||||
keybind.schematic_select.name = Seleziona Regione
|
keybind.schematic_select.name = Seleziona Regione
|
||||||
keybind.schematic_menu.name = Menu Schematica
|
keybind.schematic_menu.name = Menu Schematica
|
||||||
keybind.schematic_flip_x.name = Ruota Schematica Orizzontalmente
|
keybind.schematic_flip_x.name = Ruota Schematica Orizzontalmente
|
||||||
@@ -736,7 +737,7 @@ keybind.block_select_09.name = Seleziona Categoria/Blocco 9
|
|||||||
keybind.block_select_10.name = Seleziona Categoria/Blocco 10
|
keybind.block_select_10.name = Seleziona Categoria/Blocco 10
|
||||||
keybind.fullscreen.name = Schermo Intero
|
keybind.fullscreen.name = Schermo Intero
|
||||||
keybind.select.name = Seleziona/Spara
|
keybind.select.name = Seleziona/Spara
|
||||||
keybind.diagonal_placement.name = Posizionamento Diagonale
|
keybind.diagonal_placement.name = Posiziona Diagonalmente
|
||||||
keybind.pick.name = Scegli Blocco
|
keybind.pick.name = Scegli Blocco
|
||||||
keybind.break_block.name = Rompi Blocco
|
keybind.break_block.name = Rompi Blocco
|
||||||
keybind.deselect.name = Deseleziona
|
keybind.deselect.name = Deseleziona
|
||||||
@@ -744,7 +745,7 @@ keybind.shoot.name = Spara
|
|||||||
keybind.zoom.name = Zoom
|
keybind.zoom.name = Zoom
|
||||||
keybind.menu.name = Menu
|
keybind.menu.name = Menu
|
||||||
keybind.pause.name = Pausa
|
keybind.pause.name = Pausa
|
||||||
keybind.pause_building.name = Pausa/Riprendi Costruzione
|
keybind.pause_building.name = Interrompi/Riprendi Costruzione
|
||||||
keybind.minimap.name = Minimappa
|
keybind.minimap.name = Minimappa
|
||||||
keybind.chat.name = Chat
|
keybind.chat.name = Chat
|
||||||
keybind.player_list.name = Lista dei Giocatori
|
keybind.player_list.name = Lista dei Giocatori
|
||||||
|
|||||||
@@ -272,6 +272,7 @@ quit.confirm.tutorial = チュートリアルを終了しますか?\nチュー
|
|||||||
loading = [accent]読み込み中...
|
loading = [accent]読み込み中...
|
||||||
reloading = [accent]再読み込み中...
|
reloading = [accent]再読み込み中...
|
||||||
saving = [accent]保存中...
|
saving = [accent]保存中...
|
||||||
|
respawn = [accent][[{0}][] to respawn in core
|
||||||
cancelbuilding = [accent][[{0}][] 選択を解除する
|
cancelbuilding = [accent][[{0}][] 選択を解除する
|
||||||
selectschematic = [accent][[{0}][] 選択し、コピーする
|
selectschematic = [accent][[{0}][] 選択し、コピーする
|
||||||
pausebuilding = [accent][[{0}][] 建築を一時的に中断する
|
pausebuilding = [accent][[{0}][] 建築を一時的に中断する
|
||||||
@@ -328,8 +329,9 @@ waves.never = <永久>
|
|||||||
waves.every = ウェーブ
|
waves.every = ウェーブ
|
||||||
waves.waves = ごとに出現
|
waves.waves = ごとに出現
|
||||||
waves.perspawn = 体出現
|
waves.perspawn = 体出現
|
||||||
|
waves.shields = シールド/ウェーブ
|
||||||
waves.to = から
|
waves.to = から
|
||||||
waves.boss = ボス
|
waves.guardian = ガーディアン
|
||||||
waves.preview = プレビュー
|
waves.preview = プレビュー
|
||||||
waves.edit = 編集...
|
waves.edit = 編集...
|
||||||
waves.copy = クリップボードにコピー
|
waves.copy = クリップボードにコピー
|
||||||
@@ -492,40 +494,37 @@ error.io = ネットワークエラーです。
|
|||||||
error.any = 不明なネットワークエラーです。
|
error.any = 不明なネットワークエラーです。
|
||||||
error.bloom = ブルームの初期化に失敗しました。\n恐らくあなたのデバイスではブルームがサポートされていません。
|
error.bloom = ブルームの初期化に失敗しました。\n恐らくあなたのデバイスではブルームがサポートされていません。
|
||||||
|
|
||||||
zone.groundZero.name = グラウンド · ゼロ
|
sector.groundZero.name = Ground Zero
|
||||||
zone.desertWastes.name = デザート · ウェーツ
|
sector.desertWastes.name = Desert Wastes
|
||||||
zone.craters.name = ザ · クレーター
|
sector.craters.name = The Craters
|
||||||
zone.frozenForest.name = フローズン · フォレスト
|
sector.frozenForest.name = Frozen Forest
|
||||||
zone.ruinousShores.name = ルーイナス · ショアーズ
|
sector.ruinousShores.name = Ruinous Shores
|
||||||
zone.stainedMountains.name = ステインド · マウンテン
|
sector.stainedMountains.name = Stained Mountains
|
||||||
zone.desolateRift.name = ディサレット · リフト
|
sector.desolateRift.name = Desolate Rift
|
||||||
zone.nuclearComplex.name = ニュークリア · プロダクション · コンプレックス
|
sector.nuclearComplex.name = Nuclear Production Complex
|
||||||
zone.overgrowth.name = オーバーグロウス
|
sector.overgrowth.name = Overgrowth
|
||||||
zone.tarFields.name = ター · フィールズ
|
sector.tarFields.name = Tar Fields
|
||||||
zone.saltFlats.name = ソルト · フラッツ
|
sector.saltFlats.name = Salt Flats
|
||||||
zone.impact0078.name = インパクト 0078
|
sector.fungalPass.name = Fungal Pass
|
||||||
zone.crags.name = クラーグス
|
sector.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.fungalPass.name = ファングル · パス
|
|
||||||
|
|
||||||
zone.groundZero.description = Mindustryに慣れていない初心者向けのエリアです。敵は強くなく、資源も多すぎません。\n出来るだけ多くの銅と鉛を集めるのがポイントです。
|
sector.frozenForest.description = Even here, closer to mountains, the spores have spread. The frigid temperatures cannot contain them forever.\n\nBegin the venture into power. Build combustion generators. Learn to use menders.
|
||||||
zone.frozenForest.description = ここでも山の近くに胞子が広がっていますが、極寒のこの地ではいずれなくなるでしょう。\n\n電力を使用してみましょう。火力発電機を建設し、修復機の使い方を学びましょう。
|
sector.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.desertWastes.description = 大量の廃棄物が散乱し、放棄された建造物が存在します。\nこのエリアには石炭が存在します。石炭を燃やして発電したり、グラファイトを生成しましょう。\n\n[lightgray]この着陸位置は保証できません。
|
sector.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.saltFlats.description = 砂漠の外れには塩類平原があります。このエリアには資源がほとんどありません。 敵はここに資源貯蔵施設を建てている。\n敵のコアを破壊し壊滅させましょう。
|
|
||||||
zone.craters.description = このクレーターには、古い戦争の遺物である水が溜まっています。マップを開拓し、砂を集めましょう。メタガラスを生成して、水をポンプで吸い上げ、ターレットやドリルを冷却しましょう。
|
|
||||||
zone.ruinousShores.description = 廃棄物を過ぎた先にあるのは海岸線です。かつてここには、沿岸防衛隊がありました。今では、ほとんど残っておらず、基本的な防御構造のみで他はすべてスクラップと化しました。\n技術を再発見し拡張してください。
|
|
||||||
zone.stainedMountains.description = 内陸には山があり、胞子に汚染されていません。\nまた、このエリアにはチタニウムが豊富に存在します。使い方を学びましょう。\n\nそして、ここには強力な敵がいます。 彼らに最強の部隊を送る時間を与えてはいけません。
|
|
||||||
zone.overgrowth.description = このエリアは大きくなり、胞子の発生源に近づきました。\n敵はここに前哨基地を設立しました。 ダガーユニットを用いて破壊し、失われたものを取り返してください。
|
|
||||||
zone.tarFields.description = 山と砂漠の間にある石油生産地帯の郊外です。 使用可能な石油源がある数少ないエリアの1つです。\nこのエリアは放棄されましたが、近くに危険な敵軍がいます。 それらを軽視しないでください。\n\n[lightgray]可能ならば石油加工技術を研究してください。
|
|
||||||
zone.desolateRift.description = とても危険なエリアです。資源は豊富だがスペースがすくないです。 また、破壊されるリスクがとても高いためできるだけ早く立ち去ってください。\nそして、敵の長い攻撃間隔に騙されてはいけません。
|
|
||||||
zone.nuclearComplex.description = かつてはトリウムの生産加工の施設でしたが、今は廃墟と化してします。\n[lightgray]トリウムの用途を研究してください。\n\nまた、ここには敵が大量に存在しており、常に攻撃者を探しています。
|
|
||||||
zone.fungalPass.description = ここは高山低い胞子の多い土地との間のエリアで、敵の小さな偵察基地があります。\nダガーユニットとクローラユニットを用いて2つあるコアを破壊してください。
|
|
||||||
zone.impact0078.description = <insert description here>
|
|
||||||
zone.crags.description = <insert description here>
|
|
||||||
|
|
||||||
|
sector.craters.description = Water has accumulated in this crater, relic of the old wars. Reclaim the area. Collect sand. Smelt metaglass. Pump water to cool turrets and drills.
|
||||||
|
sector.ruinousShores.description = Past the wastes, is the shoreline. Once, this location housed a coastal defense array. Not much of it remains. Only the most basic defense structures have remained unscathed, everything else reduced to scrap.\nContinue the expansion outwards. Rediscover the technology.
|
||||||
|
sector.stainedMountains.description = Further inland lie the mountains, yet untainted by spores.\nExtract the abundant titanium in this area. Learn how to use it.\n\nThe enemy presence is greater here. Do not give them time to send their strongest units.
|
||||||
|
sector.overgrowth.description = This area is overgrown, closer to the source of the spores.\nThe enemy has established an outpost here. Build Titan units. Destroy it. Reclaim that which was lost.
|
||||||
|
sector.tarFields.description = The outskirts of an oil production zone, between the mountains and desert. One of the few areas with usable tar reserves.\nAlthough abandoned, this area has some dangerous enemy forces nearby. Do not underestimate them.\n\n[lightgray]Research oil processing technology if possible.
|
||||||
|
sector.desolateRift.description = An extremely dangerous zone. Plentiful resources, but little space. High risk of destruction. Leave as soon as possible. Do not be fooled by the long spacing between enemy attacks.
|
||||||
|
sector.nuclearComplex.description = A former facility for the production and processing of thorium, reduced to ruins.\n[lightgray]Research the thorium and its many uses.\n\nThe enemy is present here in great numbers, constantly scouting for attackers.
|
||||||
|
sector.fungalPass.description = A transition area between high mountains and lower, spore-ridden lands. A small enemy reconnaissance base is located here.\nDestroy it.\nUse Dagger and Crawler units. Take out the two cores.
|
||||||
settings.language = 言語
|
settings.language = 言語
|
||||||
settings.data = ゲームデータ
|
settings.data = ゲームデータ
|
||||||
settings.reset = デフォルトにリセット
|
settings.reset = デフォルトにリセット
|
||||||
settings.rebind = 再設定
|
settings.rebind = 再設定
|
||||||
|
|
||||||
settings.resetKey = リセット
|
settings.resetKey = リセット
|
||||||
settings.controls = コントロール
|
settings.controls = コントロール
|
||||||
settings.game = ゲーム
|
settings.game = ゲーム
|
||||||
@@ -580,29 +579,29 @@ blocks.inaccuracy = 誤差
|
|||||||
blocks.shots = ショット
|
blocks.shots = ショット
|
||||||
blocks.reload = リロード速度
|
blocks.reload = リロード速度
|
||||||
blocks.ammo = 弾薬
|
blocks.ammo = 弾薬
|
||||||
|
|
||||||
bar.drilltierreq = より高性能なドリルを使用してください
|
bar.drilltierreq = より高性能なドリルを使用してください
|
||||||
bar.drillspeed = 採掘速度: {0}/秒
|
bar.drillspeed = 採掘速度: {0}/秒
|
||||||
bar.pumpspeed = ポンプの速度: {0}/s
|
bar.pumpspeed = ポンプの速度: {0}/s
|
||||||
bar.efficiency = 効率: {0}%
|
bar.efficiency = 効率: {0}%
|
||||||
|
|
||||||
bar.powerbalance = 電力均衡: {0}/秒
|
bar.powerbalance = 電力均衡: {0}/秒
|
||||||
bar.powerstored = 総蓄電量: {0}/{1}
|
bar.powerstored = 総蓄電量: {0}/{1}
|
||||||
bar.poweramount = 蓄電量: {0}
|
bar.poweramount = 蓄電量: {0}
|
||||||
bar.poweroutput = 発電量: {0}
|
bar.poweroutput = 発電量: {0}
|
||||||
bar.items = アイテム: {0}
|
bar.items = アイテム: {0}
|
||||||
bar.capacity = 容量: {0}
|
bar.capacity = 容量: {0}
|
||||||
|
bar.units = ユニット数: {0}/{1}
|
||||||
bar.liquid = 液体
|
bar.liquid = 液体
|
||||||
bar.heat = 熱
|
bar.heat = 熱
|
||||||
bar.power = 電力
|
bar.power = 電力
|
||||||
bar.progress = 建設状況
|
bar.progress = 建設状況
|
||||||
bar.spawned = ユニット数: {0}/{1}
|
|
||||||
bar.input = 入力
|
bar.input = 入力
|
||||||
bar.output = 出力
|
bar.output = 出力
|
||||||
|
|
||||||
bullet.damage = [stat]{0}[lightgray] ダメージ
|
bullet.damage = [stat]{0}[lightgray] ダメージ
|
||||||
bullet.splashdamage = [stat]{0}[lightgray] 範囲ダメージ 約[stat] {1}[lightgray] タイル
|
bullet.splashdamage = [stat]{0}[lightgray] 範囲ダメージ 約[stat] {1}[lightgray] タイル
|
||||||
bullet.incendiary = [stat]焼夷弾
|
bullet.incendiary = [stat]焼夷弾
|
||||||
bullet.homing = [stat]追尾弾
|
bullet.homing = [stat]追尾弾
|
||||||
|
|
||||||
bullet.shock = [stat]電撃
|
bullet.shock = [stat]電撃
|
||||||
bullet.frag = [stat]爆発弾
|
bullet.frag = [stat]爆発弾
|
||||||
bullet.knockback = [stat]{0}[lightgray] ノックバック
|
bullet.knockback = [stat]{0}[lightgray] ノックバック
|
||||||
@@ -610,11 +609,11 @@ bullet.freezing = [stat]凍結
|
|||||||
bullet.tarred = [stat]タール弾
|
bullet.tarred = [stat]タール弾
|
||||||
bullet.multiplier = [stat]弾薬 {0}[lightgray]倍
|
bullet.multiplier = [stat]弾薬 {0}[lightgray]倍
|
||||||
bullet.reload = [stat]リロード速度 {0}[lightgray]倍
|
bullet.reload = [stat]リロード速度 {0}[lightgray]倍
|
||||||
|
|
||||||
unit.blocks = ブロック
|
unit.blocks = ブロック
|
||||||
unit.powersecond = 電力/秒
|
unit.powersecond = 電力/秒
|
||||||
unit.liquidsecond = 液体/秒
|
unit.liquidsecond = 液体/秒
|
||||||
unit.itemssecond = アイテム/秒
|
unit.itemssecond = アイテム/秒
|
||||||
|
|
||||||
unit.liquidunits = 液体
|
unit.liquidunits = 液体
|
||||||
unit.powerunits = 電力
|
unit.powerunits = 電力
|
||||||
unit.degrees = 度
|
unit.degrees = 度
|
||||||
@@ -678,7 +677,7 @@ setting.pixelate.name = ピクセル化[lightgray] (アニメーションが無
|
|||||||
setting.minimap.name = ミニマップを表示
|
setting.minimap.name = ミニマップを表示
|
||||||
setting.position.name = プレイヤーの位置表示
|
setting.position.name = プレイヤーの位置表示
|
||||||
setting.musicvol.name = 音楽 音量
|
setting.musicvol.name = 音楽 音量
|
||||||
setting.atmosphere.name = 惑星の雰囲気を表示
|
setting.atmosphere.name = 惑星の大気を表示
|
||||||
setting.ambientvol.name = 環境音 音量
|
setting.ambientvol.name = 環境音 音量
|
||||||
setting.mutemusic.name = 音楽をミュート
|
setting.mutemusic.name = 音楽をミュート
|
||||||
setting.sfxvol.name = 効果音 音量
|
setting.sfxvol.name = 効果音 音量
|
||||||
@@ -705,6 +704,8 @@ command.attack = 攻撃
|
|||||||
command.rally = 結集
|
command.rally = 結集
|
||||||
command.retreat = 後退
|
command.retreat = 後退
|
||||||
placement.blockselectkeys = \n[lightgray]キー: [{0},
|
placement.blockselectkeys = \n[lightgray]キー: [{0},
|
||||||
|
keybind.respawn.name = リスポーン
|
||||||
|
keybind.control.name = ユニットをコントロール
|
||||||
keybind.clear_building.name = 建築の取り消し
|
keybind.clear_building.name = 建築の取り消し
|
||||||
keybind.press = キーを押してください...
|
keybind.press = キーを押してください...
|
||||||
keybind.press.axis = 軸またはキーを押してください...
|
keybind.press.axis = 軸またはキーを押してください...
|
||||||
@@ -714,7 +715,7 @@ keybind.toggle_block_status.name = ブロックの状態表示の切り替え
|
|||||||
keybind.move_x.name = 左右移動
|
keybind.move_x.name = 左右移動
|
||||||
keybind.move_y.name = 上下移動
|
keybind.move_y.name = 上下移動
|
||||||
keybind.mouse_move.name = マウスを追う
|
keybind.mouse_move.name = マウスを追う
|
||||||
keybind.dash.name = ダッシュ
|
keybind.boost.name = ブースト
|
||||||
keybind.schematic_select.name = 地域の選択
|
keybind.schematic_select.name = 地域の選択
|
||||||
keybind.schematic_menu.name = 設計図メニュー
|
keybind.schematic_menu.name = 設計図メニュー
|
||||||
keybind.schematic_flip_x.name = 設計図をX座標で反転
|
keybind.schematic_flip_x.name = 設計図をX座標で反転
|
||||||
@@ -769,11 +770,11 @@ mode.pvp.description = エリア内で他のプレイヤーと戦います。\n[
|
|||||||
mode.attack.name = アタック
|
mode.attack.name = アタック
|
||||||
mode.attack.description = ウェーブがなく、敵の基地を破壊することを目指します。\n[gray]プレイするには、マップに赤色のコアが必要です。
|
mode.attack.description = ウェーブがなく、敵の基地を破壊することを目指します。\n[gray]プレイするには、マップに赤色のコアが必要です。
|
||||||
mode.custom = カスタムルール
|
mode.custom = カスタムルール
|
||||||
|
|
||||||
rules.infiniteresources = 資源の無限化
|
rules.infiniteresources = 資源の無限化
|
||||||
rules.reactorexplosions = リアクターの爆発
|
rules.reactorexplosions = リアクターの爆発
|
||||||
rules.wavetimer = ウェーブの自動進行
|
rules.wavetimer = ウェーブの自動進行
|
||||||
rules.waves = ウェーブ
|
rules.waves = ウェーブ
|
||||||
|
|
||||||
rules.attack = アタックモード
|
rules.attack = アタックモード
|
||||||
rules.enemyCheat = 敵(赤チーム)の資源の無限化
|
rules.enemyCheat = 敵(赤チーム)の資源の無限化
|
||||||
rules.unitdrops = ユニットの戦利品
|
rules.unitdrops = ユニットの戦利品
|
||||||
@@ -784,15 +785,12 @@ rules.playerhealthmultiplier = プレイヤーの体力倍率
|
|||||||
rules.playerdamagemultiplier = プレイヤーのダメージ倍率
|
rules.playerdamagemultiplier = プレイヤーのダメージ倍率
|
||||||
rules.unitdamagemultiplier = ユニットのダメージ倍率
|
rules.unitdamagemultiplier = ユニットのダメージ倍率
|
||||||
rules.enemycorebuildradius = 敵コア周辺の建設禁止区域の半径:[lightgray] (タイル)
|
rules.enemycorebuildradius = 敵コア周辺の建設禁止区域の半径:[lightgray] (タイル)
|
||||||
rules.respawntime = 復活までの待機時間:[lightgray] (秒)
|
|
||||||
rules.wavespacing = ウェーブ間の待機時間:[lightgray] (秒)
|
rules.wavespacing = ウェーブ間の待機時間:[lightgray] (秒)
|
||||||
rules.buildcostmultiplier = 建設コストの倍率
|
rules.buildcostmultiplier = 建設コストの倍率
|
||||||
rules.buildspeedmultiplier = 建設速度の倍率
|
rules.buildspeedmultiplier = 建設速度の倍率
|
||||||
rules.deconstructrefundmultiplier = ブロック破壊時の還元倍率
|
rules.deconstructrefundmultiplier = ブロック破壊時の還元倍率
|
||||||
rules.waitForWaveToEnd = 敵が倒されるまでウェーブの進行を中断
|
rules.waitForWaveToEnd = 敵が倒されるまでウェーブの進行を中断
|
||||||
rules.dropzoneradius = 出現範囲の半径:[lightgray] (タイル)
|
rules.dropzoneradius = 出現範囲の半径:[lightgray] (タイル)
|
||||||
rules.respawns = ウェーブごとの最大復活回数
|
|
||||||
rules.limitedRespawns = 復活回数の制限
|
|
||||||
rules.title.waves = ウェーブ
|
rules.title.waves = ウェーブ
|
||||||
rules.title.respawns = 復活
|
rules.title.respawns = 復活
|
||||||
rules.title.resourcesbuilding = 資源 & 建設
|
rules.title.resourcesbuilding = 資源 & 建設
|
||||||
@@ -803,11 +801,11 @@ rules.title.experimental = 実験的なゲームプレイ
|
|||||||
rules.lighting = 霧
|
rules.lighting = 霧
|
||||||
rules.ambientlight = 霧の色
|
rules.ambientlight = 霧の色
|
||||||
rules.solarpowermultiplier = 太陽光効率
|
rules.solarpowermultiplier = 太陽光効率
|
||||||
|
|
||||||
content.item.name = アイテム
|
content.item.name = アイテム
|
||||||
content.liquid.name = 液体
|
content.liquid.name = 液体
|
||||||
content.unit.name = ユニット
|
content.unit.name = ユニット
|
||||||
content.block.name = ブロック
|
content.block.name = ブロック
|
||||||
|
|
||||||
item.copper.name = 銅
|
item.copper.name = 銅
|
||||||
item.lead.name = 鉛
|
item.lead.name = 鉛
|
||||||
item.coal.name = 石炭
|
item.coal.name = 石炭
|
||||||
@@ -843,11 +841,11 @@ unit.buildspeed = [lightgray]建築速度: {0}%
|
|||||||
liquid.heatcapacity = [lightgray]熱容量: {0}
|
liquid.heatcapacity = [lightgray]熱容量: {0}
|
||||||
liquid.viscosity = [lightgray]粘度: {0}
|
liquid.viscosity = [lightgray]粘度: {0}
|
||||||
liquid.temperature = [lightgray]温度: {0}
|
liquid.temperature = [lightgray]温度: {0}
|
||||||
|
|
||||||
block.cliff.name = 崖
|
block.cliff.name = 崖
|
||||||
block.sand-boulder.name = 巨大な礫
|
block.sand-boulder.name = 巨大な礫
|
||||||
block.grass.name = 草
|
block.grass.name = 草
|
||||||
block.slag.name = スラグ
|
block.slag.name = スラグ
|
||||||
|
|
||||||
block.salt.name = 岩塩氷河
|
block.salt.name = 岩塩氷河
|
||||||
block.saltrocks.name = 岩塩
|
block.saltrocks.name = 岩塩
|
||||||
block.pebbles.name = 小石
|
block.pebbles.name = 小石
|
||||||
@@ -996,16 +994,6 @@ block.solar-panel.name = ソーラーパネル
|
|||||||
block.solar-panel-large.name = 大型ソーラーパネル
|
block.solar-panel-large.name = 大型ソーラーパネル
|
||||||
block.oil-extractor.name = 石油抽出機
|
block.oil-extractor.name = 石油抽出機
|
||||||
block.command-center.name = 司令塔
|
block.command-center.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 = ダガーユニット製造機
|
|
||||||
block.crawler-factory.name = クローラー製造機
|
|
||||||
block.titan-factory.name = タイタンユニット製造機
|
|
||||||
block.fortress-factory.name = フォートレスユニット製造機
|
|
||||||
block.revenant-factory.name = レベナントファイター製造機
|
|
||||||
block.repair-point.name = 修復ポイント
|
block.repair-point.name = 修復ポイント
|
||||||
block.pulse-conduit.name = パルスパイプ
|
block.pulse-conduit.name = パルスパイプ
|
||||||
block.plated-conduit.name = メッキパイプ
|
block.plated-conduit.name = メッキパイプ
|
||||||
@@ -1080,11 +1068,11 @@ tutorial.deposit = 機体にあるアイテムをドラッグアンドドロッ
|
|||||||
tutorial.waves = [lightgray]敵[]がやってきます。\n\n2ウェーブの間コアを守ってみましょう。[accent]クリック[]で弾を発射することができます。\nさらにドリルやデュオを設置しましょう。さらに銅を採掘しましょう。
|
tutorial.waves = [lightgray]敵[]がやってきます。\n\n2ウェーブの間コアを守ってみましょう。[accent]クリック[]で弾を発射することができます。\nさらにドリルやデュオを設置しましょう。さらに銅を採掘しましょう。
|
||||||
tutorial.waves.mobile = [lightgray]敵[]がやってきます。\n\n2ウェーブの間コアを守ってみましょう。あなたの機体は自動で敵を攻撃してくれます。\nさらにドリルやデュオを設置しましょう。さらに銅を採掘しましょう。
|
tutorial.waves.mobile = [lightgray]敵[]がやってきます。\n\n2ウェーブの間コアを守ってみましょう。あなたの機体は自動で敵を攻撃してくれます。\nさらにドリルやデュオを設置しましょう。さらに銅を採掘しましょう。
|
||||||
tutorial.launch = 発射可能なウェーブに達すると、[accent]コアにある全ての資源を持って[]、マップから[accent]離脱する[]ことができます。\nこれらの資源は、新しい技術の研究に使用することができます。\n\n[accent]発射ボタンを押しましょう。
|
tutorial.launch = 発射可能なウェーブに達すると、[accent]コアにある全ての資源を持って[]、マップから[accent]離脱する[]ことができます。\nこれらの資源は、新しい技術の研究に使用することができます。\n\n[accent]発射ボタンを押しましょう。
|
||||||
|
|
||||||
item.copper.description = 便利な鉱石です。様々なブロックの材料として幅広く使われています。
|
item.copper.description = 便利な鉱石です。様々なブロックの材料として幅広く使われています。
|
||||||
item.lead.description = 一般的で手軽な鉱石です。機械や液体輸送ブロックなどに使われます。
|
item.lead.description = 一般的で手軽な鉱石です。機械や液体輸送ブロックなどに使われます。
|
||||||
item.metaglass.description = とても頑丈な強化ガラスです。液体の輸送やタンクとして幅広く使われています。
|
item.metaglass.description = とても頑丈な強化ガラスです。液体の輸送やタンクとして幅広く使われています。
|
||||||
item.graphite.description = 弾薬や絶縁体として利用されています。
|
item.graphite.description = 弾薬や絶縁体として利用されています。
|
||||||
|
|
||||||
item.sand.description = 合金や融剤など広く使用されている一般的な材料です。
|
item.sand.description = 合金や融剤など広く使用されている一般的な材料です。
|
||||||
item.coal.description = 一般的で有用な燃料です。
|
item.coal.description = 一般的で有用な燃料です。
|
||||||
item.titanium.description = 希少で非常に軽量な金属です。液体輸送やドリル、航空機などで使われます。
|
item.titanium.description = 希少で非常に軽量な金属です。液体輸送やドリル、航空機などで使われます。
|
||||||
@@ -1223,15 +1211,5 @@ block.cyclone.description = 大型の連射型ターレットです。
|
|||||||
block.spectre.description = 一度に2発の強力な弾を放つ大型のターレットです。
|
block.spectre.description = 一度に2発の強力な弾を放つ大型のターレットです。
|
||||||
block.meltdown.description = 強力な長距離攻撃が可能な大型のターレットです。
|
block.meltdown.description = 強力な長距離攻撃が可能な大型のターレットです。
|
||||||
block.command-center.description = マップ全体のユニットに移動コマンドを発令します。\nユニットを巡回させたり、敵のコアを攻撃したり、自分のコアあるいは工場に撤退させたりします。敵のコアが存在しない場合、ユニットはデフォルトで攻撃状態の下で巡回します。
|
block.command-center.description = マップ全体のユニットに移動コマンドを発令します。\nユニットを巡回させたり、敵のコアを攻撃したり、自分のコアあるいは工場に撤退させたりします。敵のコアが存在しない場合、ユニットはデフォルトで攻撃状態の下で巡回します。
|
||||||
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 = 高速の自爆型ユニットを製造します。
|
|
||||||
block.titan-factory.description = 高度な武装地上ユニットを製造します。
|
|
||||||
block.fortress-factory.description = 地上重砲ユニットを製造します。
|
|
||||||
block.repair-point.description = 近くの負傷したユニットを修復します。
|
block.repair-point.description = 近くの負傷したユニットを修復します。
|
||||||
|
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ schematic.rename = Перейменувати схему
|
|||||||
schematic.info = {0}x{1}, {2} блоків
|
schematic.info = {0}x{1}, {2} блоків
|
||||||
|
|
||||||
stat.wave = Хвиль відбито:[accent] {0}
|
stat.wave = Хвиль відбито:[accent] {0}
|
||||||
stat.enemiesDestroyed = Ворогів знищено:[accent] {0}
|
stat.enemiesDestroyed = Противників знищено:[accent] {0}
|
||||||
stat.built = Будівель збудовано:[accent] {0}
|
stat.built = Будівель збудовано:[accent] {0}
|
||||||
stat.destroyed = Будівель знищено:[accent] {0}
|
stat.destroyed = Будівель знищено:[accent] {0}
|
||||||
stat.deconstructed = Будівель деконструйовано:[accent] {0}
|
stat.deconstructed = Будівель деконструйовано:[accent] {0}
|
||||||
@@ -104,7 +104,7 @@ mods = Модифікації
|
|||||||
mods.none = [lightgray]Модифікацій не знайдено!
|
mods.none = [lightgray]Модифікацій не знайдено!
|
||||||
mods.guide = Посібник з модифікацій
|
mods.guide = Посібник з модифікацій
|
||||||
mods.report = Повідомити про ваду
|
mods.report = Повідомити про ваду
|
||||||
mods.openfolder = Відкрити мод. теку
|
mods.openfolder = Відкрити теку
|
||||||
mods.reload = Перезавантажити
|
mods.reload = Перезавантажити
|
||||||
mod.display = [gray]Модифікація:[orange] {0}
|
mod.display = [gray]Модифікація:[orange] {0}
|
||||||
mod.enabled = [lightgray]Увімкнено
|
mod.enabled = [lightgray]Увімкнено
|
||||||
@@ -123,17 +123,17 @@ mod.requiresrestart = А тепер гра закриється, щоб заст
|
|||||||
mod.reloadrequired = [scarlet]Потрібно перезавантаження
|
mod.reloadrequired = [scarlet]Потрібно перезавантаження
|
||||||
mod.import = Імпортувати модифікацію
|
mod.import = Імпортувати модифікацію
|
||||||
mod.import.file = Імпортувати файл
|
mod.import.file = Імпортувати файл
|
||||||
mod.import.github = Завантажити мод. з GitHub
|
mod.import.github = Імпортувати з GitHub
|
||||||
mod.item.remove = Цей предмет є частиною модифікації [accent] «{0}»[]. Щоб видалити його, видаліть цю модифікацію.
|
mod.item.remove = Цей предмет є частиною модифікації [accent] «{0}»[]. Щоб видалити його, видаліть цю модифікацію.
|
||||||
mod.remove.confirm = Цю модифікацію буде видалено.
|
mod.remove.confirm = Цю модифікацію буде видалено.
|
||||||
mod.author = [lightgray]Автор:[] {0}
|
mod.author = [lightgray]Автор:[] {0}
|
||||||
mod.missing = Це збереження містить модифікації, які ви нещодавно оновили або більше не встановлювали. Збереження може зіпсуватися. Ви впевнені, що хочете завантажити його?\n[lightgray]Модифікації:\n{0}
|
mod.missing = Це збереження містить модифікації, які ви нещодавно оновили або більше не встановлювали. Збереження може зіпсуватися. Ви впевнені, що хочете завантажити його?\n[lightgray]Модифікації:\n{0}
|
||||||
mod.preview.missing = До публікації цієї модифікації в Майстерні, ви повинні додати зображення попереднього перегляду.\nПомістіть зображення з назвою [accent] preview.png[] у теку з модифікаціями та спробуйте знову.
|
mod.preview.missing = До публікації цієї модифікації в Майстерні, ви повинні додати зображення попереднього перегляду.\nПомістіть зображення з назвою [accent] preview.png[] у теку з модифікаціями та спробуйте знову.
|
||||||
mod.folder.missing = Тільки модифікації у формі теці можуть бути опубліковані в Майстерні.\nЩоб перетворити будь-яку модифікацію у теку, просто розархівуйте цей файл у теку та видаліть старий архів, і потім перезапустіть гру або перезавантажте ваші модифікації.
|
mod.folder.missing = Тільки модифікації у формі теці можуть бути опубліковані в Майстерні.\nЩоб перетворити будь-яку модифікацію у теку, просто розархівуйте цей файл у теку та видаліть старий архів, і потім перезапустіть гру або перезавантажте ваші модифікації.
|
||||||
mod.scripts.disable = Ваш пристрій не підтримує модифікації зі скриптами. Деякі модифікації не будуть працювати правильно.
|
mod.scripts.disable = Ваш пристрій не підтримує модифікації зі скриптами. Вимкніть модифікацію для запуску гри.
|
||||||
|
|
||||||
about.button = Про гру
|
about.button = Про гру
|
||||||
name = Назва:
|
name = Ім’я:
|
||||||
noname = Спочатку придумайте[accent] собі ім’я[].
|
noname = Спочатку придумайте[accent] собі ім’я[].
|
||||||
filename = Назва файлу:
|
filename = Назва файлу:
|
||||||
unlocked = Доступний новий вміст!
|
unlocked = Доступний новий вміст!
|
||||||
@@ -281,8 +281,8 @@ wave.waiting = [lightgray]Наступна хвиля\nчерез {0}
|
|||||||
wave.waveInProgress = [lightgray]Хвиля триває
|
wave.waveInProgress = [lightgray]Хвиля триває
|
||||||
waiting = [lightgray]Очікування…
|
waiting = [lightgray]Очікування…
|
||||||
waiting.players = Очікування гравців…
|
waiting.players = Очікування гравців…
|
||||||
wave.enemies = Залишилося\n[lightgray]{0} ворог.
|
wave.enemies = Залишилося\n[lightgray]{0} противник.
|
||||||
wave.enemy = Залишився\n[lightgray]{0} ворог
|
wave.enemy = Залишився\n[lightgray]{0} противник
|
||||||
loadimage = Завантажити зображення
|
loadimage = Завантажити зображення
|
||||||
saveimage = Зберегти зображення
|
saveimage = Зберегти зображення
|
||||||
unknown = Невідомо
|
unknown = Невідомо
|
||||||
@@ -336,7 +336,7 @@ waves.copy = Копіювати в буфер обміну
|
|||||||
waves.load = Завантажити з буфера обміну
|
waves.load = Завантажити з буфера обміну
|
||||||
waves.invalid = Недійсні хвилі у буфері обміну.
|
waves.invalid = Недійсні хвилі у буфері обміну.
|
||||||
waves.copied = Хвилі скопійовані.
|
waves.copied = Хвилі скопійовані.
|
||||||
waves.none = Вороги не були встановлені.\nЗазначимо, що пусті хвилі будуть автоматично замінені звичайною хвилею.
|
waves.none = Противники не були встановлені.\nЗазначимо, що пусті хвилі будуть автоматично замінені звичайною хвилею.
|
||||||
editor.default = [lightgray]<За замовчуванням>
|
editor.default = [lightgray]<За замовчуванням>
|
||||||
details = Подробиці…
|
details = Подробиці…
|
||||||
edit = Редагувати…
|
edit = Редагувати…
|
||||||
@@ -367,13 +367,13 @@ editor.importmap = Імпортувати мапу
|
|||||||
editor.importmap.description = Імпортувати вже наявну мапу
|
editor.importmap.description = Імпортувати вже наявну мапу
|
||||||
editor.importfile = Імпортувати файл
|
editor.importfile = Імпортувати файл
|
||||||
editor.importfile.description = Імпортувати зовнішній файл мапи
|
editor.importfile.description = Імпортувати зовнішній файл мапи
|
||||||
editor.importimage = Імпортувати зображення
|
editor.importimage = Імпорт файлу зображення
|
||||||
editor.importimage.description = Імпорт із зображенням місцевості
|
editor.importimage.description = Імпорт із зображенням місцевості
|
||||||
editor.export = Експорт…
|
editor.export = Експорт…
|
||||||
editor.exportfile = Експортувати файл
|
editor.exportfile = Експортувати файл
|
||||||
editor.exportfile.description = Експортувати файл мапи
|
editor.exportfile.description = Експортувати файл мапи
|
||||||
editor.exportimage = Експорт зображення місцевості
|
editor.exportimage = Експорт зображення місцевості
|
||||||
editor.exportimage.description = Експортувати файл, який містить основний рельєф місцевості.
|
editor.exportimage.description = Експортувати файл зображення, що містить лише основний рельєф місцевості
|
||||||
editor.loadimage = Завантажити\nзображення
|
editor.loadimage = Завантажити\nзображення
|
||||||
editor.saveimage = Зберегти\nзображення
|
editor.saveimage = Зберегти\nзображення
|
||||||
editor.unsaved = [scarlet]У вас є незбережені зміни![]\nВи впевнені, що хочете вийти?
|
editor.unsaved = [scarlet]У вас є незбережені зміни![]\nВи впевнені, що хочете вийти?
|
||||||
@@ -402,7 +402,7 @@ toolmode.drawteams.description = Змінює належність\nблока
|
|||||||
filters.empty = [lightgray]Немає фільтрів! Додайте хоча б один за допомогою кнопки нижче.
|
filters.empty = [lightgray]Немає фільтрів! Додайте хоча б один за допомогою кнопки нижче.
|
||||||
filter.distort = Спотворення
|
filter.distort = Спотворення
|
||||||
filter.noise = Шум
|
filter.noise = Шум
|
||||||
filter.enemyspawn = Вибір точки появи ворогів
|
filter.enemyspawn = Вибір точки появи противників
|
||||||
filter.corespawn = Вибір ядра
|
filter.corespawn = Вибір ядра
|
||||||
filter.median = Медіана
|
filter.median = Медіана
|
||||||
filter.oremedian = Рудна медіана
|
filter.oremedian = Рудна медіана
|
||||||
@@ -510,15 +510,15 @@ zone.fungalPass.name = Грибний перевал
|
|||||||
zone.groundZero.description = Оптимальне місце для повторних ігор. Низька ворожа загроза. Мало ресурсів.\nЗбирайте якомога більше свинцю та міді.\nНе затримуйтесь і йдіть далі.
|
zone.groundZero.description = Оптимальне місце для повторних ігор. Низька ворожа загроза. Мало ресурсів.\nЗбирайте якомога більше свинцю та міді.\nНе затримуйтесь і йдіть далі.
|
||||||
zone.frozenForest.description = Спори поширилися навіть тут, ближче до гір. Холодна температура не може стримувати їх завжди.\n\nЗважтесь створити енергію. Побудуйте генератори внутрішнього згорання. Навчіться користуватися регенераторами.
|
zone.frozenForest.description = Спори поширилися навіть тут, ближче до гір. Холодна температура не може стримувати їх завжди.\n\nЗважтесь створити енергію. Побудуйте генератори внутрішнього згорання. Навчіться користуватися регенераторами.
|
||||||
zone.desertWastes.description = Ці відходи є величезними, непередбачуваними й перетинаються з занедбаними секторальними структурами.\nВугілля присутнє в регіоні. Спаліть його для енергії або синтезуйте у графіт.\n\n[lightgray]Є декілька варіантів для місць посадок.
|
zone.desertWastes.description = Ці відходи є величезними, непередбачуваними й перетинаються з занедбаними секторальними структурами.\nВугілля присутнє в регіоні. Спаліть його для енергії або синтезуйте у графіт.\n\n[lightgray]Є декілька варіантів для місць посадок.
|
||||||
zone.saltFlats.description = На околицях пустелі лежать Соляні рівнини. У цьому місці можна знайти небагато ресурсів.\n\nСаме тут вороги спорудили комплекс сховищ ресурсів. Викорініть їхнє ядро. Не залишайте нічого цінного.
|
zone.saltFlats.description = На околицях пустелі лежать Соляні рівнини. У цьому місці можна знайти небагато ресурсів.\n\nСаме тут противники спорудили комплекс сховищ ресурсів. Викорініть їхнє ядро. Не залишайте нічого цінного.
|
||||||
zone.craters.description = У цьому кратері накопичилася вода, пережиток старих воєн. Відновіть місцевість. Зберіть пісок. Виплавте метаскло. Качайте воду, щоб охолодити турелі та бури.
|
zone.craters.description = У цьому кратері накопичилася вода, пережиток старих воєн. Відновіть місцевість. Зберіть пісок. Виплавте метаскло. Качайте воду, щоб охолодити турелі та бури.
|
||||||
zone.ruinousShores.description = Саме берегова лінія є минулим цих відходів. Колись у цьому місці розташувався береговий оборонний масив. Проте залишилося не так багато чого. Тільки основні оборонні споруди залишилися неушкодженими, а все інше перетворилося на брухт.\nПродовжуйте експансію назовні. Повторно розкрийте технології.
|
zone.ruinousShores.description = Саме берегова лінія є минулим цих відходів. Колись у цьому місці розташувався береговий оборонний масив. Проте залишилося не так багато чого. Тільки основні оборонні споруди залишилися неушкодженими, а все інше перетворилося на брухт.\nПродовжуйте експансію назовні. Повторно розкрийте технології.
|
||||||
zone.stainedMountains.description = Якщо йти далі у вглиб материка, то можна побачити гори, які ще не заражені спорами.\nВидобудьте надлишковий титан у цій місцевості. Дізнайтеся, як використовувати його.\n\nНа жаль, тут більше ворогів ніж в інших місцевостях. Не дайте їм часу надіслати свої найсильніші одиниці.
|
zone.stainedMountains.description = Якщо йти далі у вглиб материка, то можна побачити гори, які ще не заражені спорами.\nВидобудьте надлишковий титан у цій місцевості. Дізнайтеся, як використовувати його.\n\nНа жаль, тут більше противників ніж в інших місцевостях. Не дайте їм часу надіслати свої найсильніші одиниці.
|
||||||
zone.overgrowth.description = Ближче до джерела спор є територія, що заросла.\nНе дивуйтеся, що ворог встановив тут свій форпост. Побудуйте бойові одиниці під кодовою назвою «Титан». Зруйнуйте її. Поверніть те, що колись належало нам.
|
zone.overgrowth.description = Ближче до джерела спор є територія, що заросла.\nНе дивуйтеся, що противник встановив тут свій форпост. Побудуйте бойові одиниці під кодовою назвою «Титан». Зруйнуйте її. Поверніть те, що колись належало нам.
|
||||||
zone.tarFields.description = Між горами та пустелею простягається окраїна зони видобутку нафти. Це один з небагатьох районів із корисними для використання запасами смоли.\nНе зважаючи на те, що територія покинута, вона має поблизу небезпечні сили противника. Не варто їх недооцінювати.\n\n[lightgray]Якщо можливо, дослідіть технологію переробки нафти.
|
zone.tarFields.description = Між горами та пустелею простягається окраїна зони видобутку нафти. Це один з небагатьох районів із корисними для використання запасами смоли.\nНе зважаючи на те, що територія покинута, вона має поблизу небезпечні сили противника. Не варто їх недооцінювати.\n\n[lightgray]Якщо можливо, дослідіть технологію перероблювання нафти.
|
||||||
zone.desolateRift.description = Надзвичайно небезпечна зона. Багато ресурсів, але мало місця. Високий ризик знищення. Евакуюватися потрібно якомога швидше. Не розслабляйтеся між ворожими атаками та знайдіть ахіллесову п’яту супротивника.
|
zone.desolateRift.description = Надзвичайно небезпечна зона. Багато ресурсів, але мало місця. Високий ризик знищення. Евакуюватися потрібно якомога швидше. Не розслабляйтеся між ворожими атаками та знайдіть ахіллесову п’яту супротивника.
|
||||||
zone.nuclearComplex.description = Колишній об’єкт для виробництва та переробки торію було зведено до руїн.\n[lightgray]Дослідіть торій та його нескінченну кількість застосувань.\n\n Ворог, який постійно шукає нападників, присутній тут у великій кількості, тому не баріться з евакуацією.
|
zone.nuclearComplex.description = Колишній об’єкт для виробництва та перероблювання торію було зведено до руїн.\n[lightgray]Дослідіть торій та його нескінченну кількість застосувань.\n\n Противник, який постійно шукає нападників, присутній тут у великій кількості, тому не баріться з евакуацією.
|
||||||
zone.fungalPass.description = Перехідна зона між високими та низькими горами, земля яких вкрита спорами. Тут знаходиться невелика розвідувальна база ворога.\nЗруйнуйте її.\nВикористовуйте одиниці з кодовими назвами «Кинджал» і «Камікадзе». Позбудьтесь двох ядер.
|
zone.fungalPass.description = Перехідна зона між високими та низькими горами, земля яких вкрита спорами. Тут знаходиться невелика розвідувальна база противника.\nЗруйнуйте її.\nВикористовуйте одиниці з кодовими назвами «Кинджал» і «Камікадзе». Позбудьтесь двох ядер.
|
||||||
zone.impact0078.description = <вставити опис тут>
|
zone.impact0078.description = <вставити опис тут>
|
||||||
zone.crags.description = <вставити опис тут>
|
zone.crags.description = <вставити опис тут>
|
||||||
|
|
||||||
@@ -552,8 +552,8 @@ block.unknown = [lightgray]???
|
|||||||
blocks.powercapacity = Місткість енергії
|
blocks.powercapacity = Місткість енергії
|
||||||
blocks.powershot = Енергія за постріл
|
blocks.powershot = Енергія за постріл
|
||||||
blocks.damage = Шкода
|
blocks.damage = Шкода
|
||||||
blocks.targetsair = Повітряні вороги
|
blocks.targetsair = Повітряні противники
|
||||||
blocks.targetsground = Наземні вороги
|
blocks.targetsground = Наземні противники
|
||||||
blocks.itemsmoved = Швидкість переміщення
|
blocks.itemsmoved = Швидкість переміщення
|
||||||
blocks.launchtime = Час між запусками
|
blocks.launchtime = Час між запусками
|
||||||
blocks.shootrange = Радіус дії
|
blocks.shootrange = Радіус дії
|
||||||
@@ -591,11 +591,11 @@ bar.poweramount = Енергія: {0}
|
|||||||
bar.poweroutput = Вихідна енергія: {0}
|
bar.poweroutput = Вихідна енергія: {0}
|
||||||
bar.items = Предмети: {0}
|
bar.items = Предмети: {0}
|
||||||
bar.capacity = Місткість: {0}
|
bar.capacity = Місткість: {0}
|
||||||
|
bar.units = Бойові одиниці: {0}/{1}
|
||||||
bar.liquid = Рідина
|
bar.liquid = Рідина
|
||||||
bar.heat = Нагрівання
|
bar.heat = Нагрівання
|
||||||
bar.power = Енергія
|
bar.power = Енергія
|
||||||
bar.progress = Хід будування
|
bar.progress = Хід будування
|
||||||
bar.spawned = Бойов. од.: {0}/{1}
|
|
||||||
bar.input = Ввід
|
bar.input = Ввід
|
||||||
bar.output = Вивід
|
bar.output = Вивід
|
||||||
|
|
||||||
@@ -632,25 +632,25 @@ category.items = Предмети
|
|||||||
category.crafting = Виробництво
|
category.crafting = Виробництво
|
||||||
category.shooting = Стрільба
|
category.shooting = Стрільба
|
||||||
category.optional = Додаткові поліпшення
|
category.optional = Додаткові поліпшення
|
||||||
setting.landscape.name = Тільки альбомний(горизонтальний) режим
|
setting.landscape.name = Тільки альбомний (горизонтальний) режим
|
||||||
setting.shadows.name = Тіні
|
setting.shadows.name = Тіні
|
||||||
setting.blockreplace.name = Пропозиції щодо автоматичної заміни блоків
|
setting.blockreplace.name = Пропозиції щодо автоматичної заміни блоків
|
||||||
setting.linear.name = Лінійна фільтрація
|
setting.linear.name = Лінійна фільтрація
|
||||||
setting.hints.name = Підказки
|
setting.hints.name = Підказки
|
||||||
setting.flow.name = Показувати темп швидкості ресурсів[scarlet] (еспемент. функція)
|
setting.flow.name = Показувати темп швидкості ресурсів
|
||||||
setting.buildautopause.name = Автоматичне призупинення будування
|
setting.buildautopause.name = Автоматичне призупинення будування
|
||||||
setting.animatedwater.name = Анімована вода
|
setting.animatedwater.name = Анімаційні рідини
|
||||||
setting.animatedshields.name = Анімовані щити
|
setting.animatedshields.name = Анімаційні щити
|
||||||
setting.antialias.name = Згладжування[lightgray] (потребує перезапуску)[]
|
setting.antialias.name = Згладжування[lightgray] (потребує перезапуску)[]
|
||||||
setting.playerindicators.name = Позначки гравців
|
setting.playerindicators.name = Позначки гравців
|
||||||
setting.indicators.name = Позначки ворогів
|
setting.indicators.name = Позначки противників
|
||||||
setting.autotarget.name = Авто-стрільба
|
setting.autotarget.name = Авто-стрільба
|
||||||
setting.keyboard.name = Миш+Керування з клавіатури
|
setting.keyboard.name = Миш+Керування з клавіатури
|
||||||
setting.touchscreen.name = Керування сенсорним екраном
|
setting.touchscreen.name = Керування сенсорним екраном
|
||||||
setting.fpscap.name = Максимальний FPS
|
setting.fpscap.name = Максимальний FPS
|
||||||
setting.fpscap.none = Жодне
|
setting.fpscap.none = Жодне
|
||||||
setting.fpscap.text = {0} FPS
|
setting.fpscap.text = {0} FPS
|
||||||
setting.uiscale.name = Масштаб користувацького інтерфейсу[lightgray] (потребує перезапуск)[]
|
setting.uiscale.name = Масштабування користувацького інтерфейсу[lightgray] (потребує перезапуск)[]
|
||||||
setting.swapdiagonal.name = Завжди діагональне розміщення
|
setting.swapdiagonal.name = Завжди діагональне розміщення
|
||||||
setting.difficulty.training = Навчання
|
setting.difficulty.training = Навчання
|
||||||
setting.difficulty.easy = Легка
|
setting.difficulty.easy = Легка
|
||||||
@@ -678,6 +678,7 @@ setting.pixelate.name = Пікселізація
|
|||||||
setting.minimap.name = Показувати мінімапу
|
setting.minimap.name = Показувати мінімапу
|
||||||
setting.position.name = Показувати координати гравця
|
setting.position.name = Показувати координати гравця
|
||||||
setting.musicvol.name = Гучність музики
|
setting.musicvol.name = Гучність музики
|
||||||
|
setting.atmosphere.name = Показувати планетарну атмосферу
|
||||||
setting.ambientvol.name = Звуки навколишнього середовища
|
setting.ambientvol.name = Звуки навколишнього середовища
|
||||||
setting.mutemusic.name = Заглушити музику
|
setting.mutemusic.name = Заглушити музику
|
||||||
setting.sfxvol.name = Гучність звукових ефектів
|
setting.sfxvol.name = Гучність звукових ефектів
|
||||||
@@ -713,7 +714,7 @@ keybind.toggle_block_status.name = Показувати стан блоків
|
|||||||
keybind.move_x.name = Рух по осі X
|
keybind.move_x.name = Рух по осі X
|
||||||
keybind.move_y.name = Рух по осі Y
|
keybind.move_y.name = Рух по осі Y
|
||||||
keybind.mouse_move.name = Слідкувати за мишею
|
keybind.mouse_move.name = Слідкувати за мишею
|
||||||
keybind.dash.name = Прискорення
|
keybind.boost.name = Прискорення
|
||||||
keybind.schematic_select.name = Вибрати ділянку
|
keybind.schematic_select.name = Вибрати ділянку
|
||||||
keybind.schematic_menu.name = Меню схем
|
keybind.schematic_menu.name = Меню схем
|
||||||
keybind.schematic_flip_x.name = Віддзеркалити по осі X
|
keybind.schematic_flip_x.name = Віддзеркалити по осі X
|
||||||
@@ -759,7 +760,7 @@ keybind.drop_unit.name = Скинути бойову одиницю
|
|||||||
keybind.zoom_minimap.name = Збільшити міні-мапу
|
keybind.zoom_minimap.name = Збільшити міні-мапу
|
||||||
mode.help.title = Опис режимів гри
|
mode.help.title = Опис режимів гри
|
||||||
mode.survival.name = Виживання
|
mode.survival.name = Виживання
|
||||||
mode.survival.description = Звичайний режим. В цьому режимі треба самим видобувати ресурси та хвилі йдуть автоматично.\n[gray]Потребуються точки появи ворогів для гри.
|
mode.survival.description = Звичайний режим. В цьому режимі треба самим видобувати ресурси та хвилі йдуть автоматично.\n[gray]Потребуються точки появи противників для гри.
|
||||||
mode.sandbox.name = Пісочниця
|
mode.sandbox.name = Пісочниця
|
||||||
mode.sandbox.description = Нескінченні ресурси та хвилі йдуть за вашим бажанням.
|
mode.sandbox.description = Нескінченні ресурси та хвилі йдуть за вашим бажанням.
|
||||||
mode.editor.name = Редактор
|
mode.editor.name = Редактор
|
||||||
@@ -788,7 +789,7 @@ rules.wavespacing = Інтервал хвиль:[lightgray] (секунди)
|
|||||||
rules.buildcostmultiplier = Множник затрат на будування
|
rules.buildcostmultiplier = Множник затрат на будування
|
||||||
rules.buildspeedmultiplier = Множник швидкості будування
|
rules.buildspeedmultiplier = Множник швидкості будування
|
||||||
rules.deconstructrefundmultiplier = Множник відшкодування при демонтажі
|
rules.deconstructrefundmultiplier = Множник відшкодування при демонтажі
|
||||||
rules.waitForWaveToEnd = Хвилі чекають на смерть усіх ворогів
|
rules.waitForWaveToEnd = Хвилі чекають на завершення попередньої
|
||||||
rules.dropzoneradius = Радіус зони висадки:[lightgray] (у плитках)
|
rules.dropzoneradius = Радіус зони висадки:[lightgray] (у плитках)
|
||||||
rules.respawns = Максимальна кількість відроджень за хвилю
|
rules.respawns = Максимальна кількість відроджень за хвилю
|
||||||
rules.limitedRespawns = Обмеження відроджень
|
rules.limitedRespawns = Обмеження відроджень
|
||||||
@@ -796,7 +797,7 @@ rules.title.waves = Хвилі
|
|||||||
rules.title.respawns = Відродження
|
rules.title.respawns = Відродження
|
||||||
rules.title.resourcesbuilding = Ресурси & будування
|
rules.title.resourcesbuilding = Ресурси & будування
|
||||||
rules.title.player = Гравці
|
rules.title.player = Гравці
|
||||||
rules.title.enemy = Вороги
|
rules.title.enemy = Противники
|
||||||
rules.title.unit = Бойові одиниці
|
rules.title.unit = Бойові одиниці
|
||||||
rules.title.experimental = Експериментальне
|
rules.title.experimental = Експериментальне
|
||||||
rules.lighting = Світлотінь
|
rules.lighting = Світлотінь
|
||||||
@@ -839,12 +840,11 @@ unit.minespeed = [lightgray]Швидкість видобутку: {0} %
|
|||||||
unit.minepower = [lightgray]Потужність видобутку: {0}
|
unit.minepower = [lightgray]Потужність видобутку: {0}
|
||||||
unit.ability = [lightgray]Здібність: {0}
|
unit.ability = [lightgray]Здібність: {0}
|
||||||
unit.buildspeed = [lightgray]Швидкість будування: {0} %
|
unit.buildspeed = [lightgray]Швидкість будування: {0} %
|
||||||
|
|
||||||
liquid.heatcapacity = [lightgray]Теплоємність: {0}
|
liquid.heatcapacity = [lightgray]Теплоємність: {0}
|
||||||
liquid.viscosity = [lightgray]В’язкість: {0}
|
liquid.viscosity = [lightgray]В’язкість: {0}
|
||||||
liquid.temperature = [lightgray]Температура: {0}
|
liquid.temperature = [lightgray]Температура: {0}
|
||||||
|
|
||||||
block.cliff.name = Скелі
|
block.cliff.name = Скеля
|
||||||
block.sand-boulder.name = Пісочний валун
|
block.sand-boulder.name = Пісочний валун
|
||||||
block.grass.name = Трава
|
block.grass.name = Трава
|
||||||
block.slag.name = Шлак
|
block.slag.name = Шлак
|
||||||
@@ -873,7 +873,7 @@ block.kiln.name = Піч
|
|||||||
block.graphite-press.name = Графітний прес
|
block.graphite-press.name = Графітний прес
|
||||||
block.multi-press.name = Мультипрес
|
block.multi-press.name = Мультипрес
|
||||||
block.constructing = {0}\n[lightgray](В процесі)
|
block.constructing = {0}\n[lightgray](В процесі)
|
||||||
block.spawn.name = Місце появи ворога
|
block.spawn.name = Місце появи противника
|
||||||
block.core-shard.name = Ядро «Уламок»
|
block.core-shard.name = Ядро «Уламок»
|
||||||
block.core-foundation.name = Ядро «Штаб»
|
block.core-foundation.name = Ядро «Штаб»
|
||||||
block.core-nucleus.name = Ядро «Атом»
|
block.core-nucleus.name = Ядро «Атом»
|
||||||
@@ -1064,10 +1064,10 @@ tutorial.intro = Ви розпочали[scarlet] навчання по Mindustr
|
|||||||
tutorial.intro.mobile = Ви розпочали[scarlet] навчання по Mindustry.[]\nПроведіть по екрану для руху.\n[accent] Зведіть або розведіть 2 пальця[] для приближення і віддалення відповідно.\nРозпочніть з [accent]видобування міді[]. Наблизьтесь до мідної жили біля вашого ядра, а потім натисніть на неї, щоб розпочати видобуток.\n\n[accent]{0}/{1} міді
|
tutorial.intro.mobile = Ви розпочали[scarlet] навчання по Mindustry.[]\nПроведіть по екрану для руху.\n[accent] Зведіть або розведіть 2 пальця[] для приближення і віддалення відповідно.\nРозпочніть з [accent]видобування міді[]. Наблизьтесь до мідної жили біля вашого ядра, а потім натисніть на неї, щоб розпочати видобуток.\n\n[accent]{0}/{1} міді
|
||||||
tutorial.drill = Добування вручну не є ефективним.\n[accent]Бури[] можуть видобувати автоматично.\nНатисніть на вкладку із зображенням свердла праворуч знизу.\n\nВиберіть[accent] механічний бур[]. Розмістіть його на мідній жилі натисканням.\nВи також можете вибрати бур, натиснувши [accent][[2][], а потім швидко натиснувши [accent][[1][], незалежно від відкритої вкладки.\n[accent]Натисніть ПКМ[], щоб зупинити будування.
|
tutorial.drill = Добування вручну не є ефективним.\n[accent]Бури[] можуть видобувати автоматично.\nНатисніть на вкладку із зображенням свердла праворуч знизу.\n\nВиберіть[accent] механічний бур[]. Розмістіть його на мідній жилі натисканням.\nВи також можете вибрати бур, натиснувши [accent][[2][], а потім швидко натиснувши [accent][[1][], незалежно від відкритої вкладки.\n[accent]Натисніть ПКМ[], щоб зупинити будування.
|
||||||
tutorial.drill.mobile = Добування вручну не є ефективним.\n[accent]Бури[] можуть видобувати автоматично.\nНатисніть на вкладку із зображенням свердла праворуч знизу.\nВиберіть[accent] механічний бур[].\nРозмістіть його на мідній жилі натисканням, потім натисніть на [accent]галочку[] нижче, щоб підтвердити розміщення.\nНатисніть [accent]кнопку X[], щоб скасувати розміщення.
|
tutorial.drill.mobile = Добування вручну не є ефективним.\n[accent]Бури[] можуть видобувати автоматично.\nНатисніть на вкладку із зображенням свердла праворуч знизу.\nВиберіть[accent] механічний бур[].\nРозмістіть його на мідній жилі натисканням, потім натисніть на [accent]галочку[] нижче, щоб підтвердити розміщення.\nНатисніть [accent]кнопку X[], щоб скасувати розміщення.
|
||||||
tutorial.blockinfo = Кожний блок має різні характеристики. Кожний бур може видобувати тільки певні руди.\nЩоб переглянути інформацію та характеристики блока,[accent] натисніть на кнопку «?», коли ви вибрали блок у меню будування.[]\n\n[accent]Перегляньте характеристику механічного бура негайно.[]
|
tutorial.blockinfo = Кожний блок має різні характеристики. Кожний бур може видобувати тільки певні руди.\nЩоб переглянути інформацію та характеристики блока,[accent] натисніть на кнопку «?», коли ви вибрали блок у меню будування.[]\n\n[accent]Перегляньте характеристику Механічного бура негайно.[]
|
||||||
tutorial.conveyor = [accent]Конвеєри[] використовуються для транспортування предметів до ядра.\nПобудуйте лінію конвеєрів від бура до ядра.\n[accent]Утримуйте миш для розміщення у лінію.[]\nУтримуйте[accent] CTRL[] під час вибору лінії для розміщення по діагоналі.\nПрокручуйте, щоб обертати блоки до їх установлення.\n[accent]Розмістіть 2 конвеєри у лінію, а потім доставте предмет в ядро.
|
tutorial.conveyor = [accent]Конвеєри[] використовуються для транспортування предметів до ядра.\nПобудуйте лінію конвеєрів від бура до ядра.\n[accent]Утримуйте миш для розміщення у лінію.[]\nУтримуйте[accent] CTRL[] під час вибору лінії для розміщення по діагоналі.\nПрокручуйте, щоб обертати блоки до їх установлення.\n[accent]Розмістіть 2 конвеєри у лінію, а потім доставте предмет в ядро.
|
||||||
tutorial.conveyor.mobile = [accent]Конвеєри[] використовуються для транспортування предметів до ядра.\nПобудуйте лінію конвеєрів від бура до ядра.\n[accent] Розмістить у лінію, утримуючи палець кілька секунд[] і тягніть у напрямку, який Ви обрали.\n\n[accent]Розмістіть 2 конвеєри у лінію, а потім доставте предмет в ядро.
|
tutorial.conveyor.mobile = [accent]Конвеєри[] використовуються для транспортування предметів до ядра.\nПобудуйте лінію конвеєрів від бура до ядра.\n[accent] Розмістить у лінію, утримуючи палець кілька секунд[] і тягніть у напрямку, який Ви обрали.\n\n[accent]Розмістіть 2 конвеєри у лінію, а потім доставте предмет в ядро.
|
||||||
tutorial.turret = Щойно предмет потрапить до ядра, він може бути використаний у будівництві.\nМайте на увазі, не всі предмети придатні для будівництва.\nПредмети що не використовуються у будівництві, такі як[accent] вугілля[] чи[accent] брухт[], не можуть потрапити до ядра.\nОборонні споруди повинні бути побудовані для відбиття[lightgray] ворогів[].\nПобудуйте[accent] башту «Подвійна»[] біля вашої бази.
|
tutorial.turret = Щойно предмет потрапить до ядра, він може бути використаний у будівництві.\nМайте на увазі, не всі предмети придатні для будівництва.\nПредмети що не використовуються у будівництві, такі як[accent] вугілля[] чи[accent] брухт[], не можуть потрапити до ядра.\nОборонні споруди повинні бути побудовані для відбиття[lightgray] противників[].\nПобудуйте[accent] башту «Подвійна»[] біля вашої бази.
|
||||||
tutorial.drillturret = «Подвійна» потребує [accent]мідні боєприпаси[] для стрільби.\nРозмістіть бур біля башти.\nПроведіть конвеєри до башти, щоб заповнити її боєприпасами.\n\n [accent]Доставлено боєприпасів: 0/1
|
tutorial.drillturret = «Подвійна» потребує [accent]мідні боєприпаси[] для стрільби.\nРозмістіть бур біля башти.\nПроведіть конвеєри до башти, щоб заповнити її боєприпасами.\n\n [accent]Доставлено боєприпасів: 0/1
|
||||||
tutorial.pause = Під час гри ви можете[accent] поставити на паузу.[]\nВи можете зробити чергу на будування під час паузи.\n\n [accent]Натисніть пробіл для паузи.
|
tutorial.pause = Під час гри ви можете[accent] поставити на паузу.[]\nВи можете зробити чергу на будування під час паузи.\n\n [accent]Натисніть пробіл для паузи.
|
||||||
tutorial.pause.mobile = Під час гри ви можете[accent] поставити на паузу.[]\nВи можете зробити чергу на будування під час паузи.\n\n[accent]Натисніть кнопку вгорі ліворуч для паузи.
|
tutorial.pause.mobile = Під час гри ви можете[accent] поставити на паузу.[]\nВи можете зробити чергу на будування під час паузи.\n\n[accent]Натисніть кнопку вгорі ліворуч для паузи.
|
||||||
@@ -1077,8 +1077,8 @@ tutorial.breaking = Блоки часто треба знищувати.\n[accen
|
|||||||
tutorial.breaking.mobile = Блоки часто треба знищувати.\n[accent]Виберіть режим руйнування[], потім натисніть на блок, щоб зламати його.\nЗнищте область, утримуючи палець протягом декількох секунд [] і потягнувши в потрібному напрямку.\nНатисніть кнопку галочки, щоб підтвердити руйнування.\n\n[accent]Необхідно знищити всі стіни з брухту ліворуч від вашого ядра використовуючи видалення у зоні.
|
tutorial.breaking.mobile = Блоки часто треба знищувати.\n[accent]Виберіть режим руйнування[], потім натисніть на блок, щоб зламати його.\nЗнищте область, утримуючи палець протягом декількох секунд [] і потягнувши в потрібному напрямку.\nНатисніть кнопку галочки, щоб підтвердити руйнування.\n\n[accent]Необхідно знищити всі стіни з брухту ліворуч від вашого ядра використовуючи видалення у зоні.
|
||||||
tutorial.withdraw = У деяких ситуаціях потрібно брати предмети безпосередньо з блоків.\nЩоб зробити це, [accent]натисніть на блок[] з предметами, і потім [accent]натисніть на предмет[] в інвентарі.\nМожна вилучити кілька предметів [accent]натискаючи та утримуючи[].\n\n [accent]Вилучіть трохи міді з ядра.[]
|
tutorial.withdraw = У деяких ситуаціях потрібно брати предмети безпосередньо з блоків.\nЩоб зробити це, [accent]натисніть на блок[] з предметами, і потім [accent]натисніть на предмет[] в інвентарі.\nМожна вилучити кілька предметів [accent]натискаючи та утримуючи[].\n\n [accent]Вилучіть трохи міді з ядра.[]
|
||||||
tutorial.deposit = Покладіть предмети в блок, перетягнувши з вашого корабля в потрібний блок.\n\n[accent]Покладіть мідь назад у ядро.[]
|
tutorial.deposit = Покладіть предмети в блок, перетягнувши з вашого корабля в потрібний блок.\n\n[accent]Покладіть мідь назад у ядро.[]
|
||||||
tutorial.waves = [lightgray]Ворог[] з’явився.\n\nЗахистіть ядро від двох хвиль.[accent] Натисніть ЛКМ[], щоб стріляти.\nПобудуйте більше башт і бурів. Добудьте більше міді.
|
tutorial.waves = [lightgray]Противник[] з’явився.\n\nЗахистіть ядро від двох хвиль.[accent] Натисніть ЛКМ[], щоб стріляти.\nПобудуйте більше башт і бурів. Добудьте більше міді.
|
||||||
tutorial.waves.mobile = [lightgray]Ворог[] з’явився.\n\nЗахистіть ядро від двох хвиль. Ваш корабель буде автоматично атакувати ворогів.\nПобудуйте більше башт і бурів. Добудьте більше міді.
|
tutorial.waves.mobile = [lightgray]Противник[] з’явився.\n\nЗахистіть ядро від двох хвиль. Ваш корабель буде автоматично атакувати противників.\nПобудуйте більше башт і бурів. Добудьте більше міді.
|
||||||
tutorial.launch = Як тільки ви досягнете певної хвилі, ви зможете[accent] запустити ядро[], залишивши свою базу позаду, та [accent]отримати всі ресурси у вашому ядрі.[]\nЦі отримані ресурси можуть бути використані для дослідження нових технологій.\n\n[accent]Натисніть кнопку запуску.
|
tutorial.launch = Як тільки ви досягнете певної хвилі, ви зможете[accent] запустити ядро[], залишивши свою базу позаду, та [accent]отримати всі ресурси у вашому ядрі.[]\nЦі отримані ресурси можуть бути використані для дослідження нових технологій.\n\n[accent]Натисніть кнопку запуску.
|
||||||
|
|
||||||
item.copper.description = Початковий будівельний матеріал. Широко використовується у всіх типах блоків.
|
item.copper.description = Початковий будівельний матеріал. Широко використовується у всіх типах блоків.
|
||||||
@@ -1086,7 +1086,7 @@ item.lead.description = Основний початковий матеріал.
|
|||||||
item.metaglass.description = Дуже жорсткий склад скла. Широко застосовується для розподілу та зберігання рідини.
|
item.metaglass.description = Дуже жорсткий склад скла. Широко застосовується для розподілу та зберігання рідини.
|
||||||
item.graphite.description = Мінералізований вуглець, що використовується для боєприпасів та як електричний компонент.
|
item.graphite.description = Мінералізований вуглець, що використовується для боєприпасів та як електричний компонент.
|
||||||
item.sand.description = Поширений матеріал, який широко використовується при виплавці, як при сплавленні, так і в якості відходів.
|
item.sand.description = Поширений матеріал, який широко використовується при виплавці, як при сплавленні, так і в якості відходів.
|
||||||
item.coal.description = Окам’янілі рослинні речовини, що утворилися задовго до посіву. Широко використовується для виробництва пального та ресурсів.
|
item.coal.description = Скам’янілі рослинні речовини, що утворилися задовго до посіву. Широко використовується для виробництва пального та ресурсів.
|
||||||
item.titanium.description = Рідкісний надлегкий метал, який широко використовується для транспортування рідини, бурів і літаків.
|
item.titanium.description = Рідкісний надлегкий метал, який широко використовується для транспортування рідини, бурів і літаків.
|
||||||
item.thorium.description = Щільний радіоактивний метал, що використовується в якості конструкційної опори та ядерного палива.
|
item.thorium.description = Щільний радіоактивний метал, що використовується в якості конструкційної опори та ядерного палива.
|
||||||
item.scrap.description = Залишки старих споруд та підрозділів. Містить мікроелементи багатьох різних металів.
|
item.scrap.description = Залишки старих споруд та підрозділів. Містить мікроелементи багатьох різних металів.
|
||||||
@@ -1097,7 +1097,7 @@ item.surge-alloy.description = Удосконалений сплав з унік
|
|||||||
item.spore-pod.description = Струмок синтетичних спор, синтезований з атмосферних концентрацій для промислових цілей. Використовується для перетворення на нафту, вибухівку та паливо.
|
item.spore-pod.description = Струмок синтетичних спор, синтезований з атмосферних концентрацій для промислових цілей. Використовується для перетворення на нафту, вибухівку та паливо.
|
||||||
item.blast-compound.description = Нестабільна сполука, яка використовується в бомбах і вибухівках. Синтезується зі спорових стручків та інших летких речовин. Використовувати як паливо не рекомендується.
|
item.blast-compound.description = Нестабільна сполука, яка використовується в бомбах і вибухівках. Синтезується зі спорових стручків та інших летких речовин. Використовувати як паливо не рекомендується.
|
||||||
item.pyratite.description = Надзвичайно легкозаймиста речовина, що використовується в запальній зброї.
|
item.pyratite.description = Надзвичайно легкозаймиста речовина, що використовується в запальній зброї.
|
||||||
liquid.water.description = Найкорисніша рідина. Зазвичай використовується для охолодження машин та переробки відходів.
|
liquid.water.description = Найкорисніша рідина. Зазвичай використовується для охолодження машин та перероблювання відходів.
|
||||||
liquid.slag.description = Різні види розплавленого металу змішуються між собою. Може бути відокремлений від складових корисних копалин або розпорошений на ворожі частини як зброя.
|
liquid.slag.description = Різні види розплавленого металу змішуються між собою. Може бути відокремлений від складових корисних копалин або розпорошений на ворожі частини як зброя.
|
||||||
liquid.oil.description = Рідина, яка використовується у виробництві сучасних матеріалів. Може бути перетворена у вугілля в якості палива або використана як куля.
|
liquid.oil.description = Рідина, яка використовується у виробництві сучасних матеріалів. Може бути перетворена у вугілля в якості палива або використана як куля.
|
||||||
liquid.cryofluid.description = Інертна рідина, що створена з води та титану. Володіє надзвичайно високою пропускною спроможністю. Широко використовується в якості рідини, що охолоджує.
|
liquid.cryofluid.description = Інертна рідина, що створена з води та титану. Володіє надзвичайно високою пропускною спроможністю. Широко використовується в якості рідини, що охолоджує.
|
||||||
@@ -1105,7 +1105,7 @@ unit.draug.description = Примітивний дрон, який добува
|
|||||||
unit.spirit.description = Модифікований «Драугр», призначений для ремонту замість добування ресурсів. Автоматично відновлює будь-які пошкоджені блоки.
|
unit.spirit.description = Модифікований «Драугр», призначений для ремонту замість добування ресурсів. Автоматично відновлює будь-які пошкоджені блоки.
|
||||||
unit.phantom.description = Удосконалений безпілотник. Йде за користувачами. Допомагає в будуванні блоків. Перебудовує зруйновані блоки.
|
unit.phantom.description = Удосконалений безпілотник. Йде за користувачами. Допомагає в будуванні блоків. Перебудовує зруйновані блоки.
|
||||||
unit.dagger.description = Початкова бойова одиниця. Дешевий у виробництві. Нездоланні при використанні в натовпі.
|
unit.dagger.description = Початкова бойова одиниця. Дешевий у виробництві. Нездоланні при використанні в натовпі.
|
||||||
unit.crawler.description = Наземна одиниця, що складається зі стертої рами з високими вибуховими речовинами, які прив’язані зверху. Не особливо міцний. Вибухає при контакті з ворогами.
|
unit.crawler.description = Наземна одиниця, що складається зі стертої рами з високими вибуховими речовинами, які прив’язані зверху. Не особливо міцний. Вибухає при контакті з противниками.
|
||||||
unit.titan.description = Удосконалений броньована наземна одиниця. Нападає як на наземні, так і повітряні цілі. Оснащений двома мініатюрними вогнеметами класу «Випалювач».
|
unit.titan.description = Удосконалений броньована наземна одиниця. Нападає як на наземні, так і повітряні цілі. Оснащений двома мініатюрними вогнеметами класу «Випалювач».
|
||||||
unit.fortress.description = Важкий артилерійний мех. Оснащений двома модифікованими гарматами типу «Град» для дальнього нападу на ворожі структури та підрозділи.
|
unit.fortress.description = Важкий артилерійний мех. Оснащений двома модифікованими гарматами типу «Град» для дальнього нападу на ворожі структури та підрозділи.
|
||||||
unit.eruptor.description = Важкий мех, що призначений для знесення конструкцій. Вистрілює потік шлаку у ворожі укріплення, розплавляє їх і підпалює леткі речовини.
|
unit.eruptor.description = Важкий мех, що призначений для знесення конструкцій. Вистрілює потік шлаку у ворожі укріплення, розплавляє їх і підпалює леткі речовини.
|
||||||
@@ -1114,16 +1114,16 @@ unit.ghoul.description = Важкий килимовий бомбардувал
|
|||||||
unit.revenant.description = Важкий ракетний масив.
|
unit.revenant.description = Важкий ракетний масив.
|
||||||
block.message.description = Зберігає повідомлення. Використовується для комунікації між союзниками.
|
block.message.description = Зберігає повідомлення. Використовується для комунікації між союзниками.
|
||||||
block.graphite-press.description = Стискає шматки вугілля в чисті аркуші графіту.
|
block.graphite-press.description = Стискає шматки вугілля в чисті аркуші графіту.
|
||||||
block.multi-press.description = Модернізована версія графітового преса. Використовує воду та енергію для швидкої та ефективної переробки вугілля.
|
block.multi-press.description = Модернізована версія графітового преса. Використовує воду та енергію для швидкого та ефективного перероблювання вугілля.
|
||||||
block.silicon-smelter.description = Змішує пісок з чистим вугіллям. Виробляє кремній.
|
block.silicon-smelter.description = Змішує пісок з чистим вугіллям. Виробляє кремній.
|
||||||
block.kiln.description = Виплавляє пісок та свинець у сполуку, відому як метаскло. Для запуску потрібна невелика кількість енергії.
|
block.kiln.description = Виплавляє пісок та свинець у сполуку, відому як метаскло. Для запуску потрібна невелика кількість енергії.
|
||||||
block.plastanium-compressor.description = Виробляє пластаній з нафти і титану.
|
block.plastanium-compressor.description = Виробляє пластаній з нафти та титану.
|
||||||
block.phase-weaver.description = Синтезує фазову тканину з радіоактивного торію та піску. Для роботи потрібна велика кількість енергії.
|
block.phase-weaver.description = Синтезує фазову тканину з радіоактивного торію та піску. Для роботи потрібна велика кількість енергії.
|
||||||
block.alloy-smelter.description = Поєднує титан, свинець, кремній і мідь для отримання кінетичного сплаву.
|
block.alloy-smelter.description = Поєднує титан, свинець, кремній і мідь для отримання кінетичного сплаву.
|
||||||
block.cryofluidmixer.description = Змішує воду і дрібний порошок титану в кріогенну рідину. Основне використання у торієвому реактору.
|
block.cryofluidmixer.description = Змішує воду і дрібний порошок титану в кріогенну рідину. Основне використання у торієвому реактору.
|
||||||
block.blast-mixer.description = Подрібнює і змішує скупчення спор з піротитом для отримання вибухової суміші.
|
block.blast-mixer.description = Подрібнює і змішує скупчення спор з піротитом для отримання вибухової суміші.
|
||||||
block.pyratite-mixer.description = Змішує вугілля, свинець та пісок у легкозаймистий піротит.
|
block.pyratite-mixer.description = Змішує вугілля, свинець та пісок у легкозаймистий піротит.
|
||||||
block.melter.description = Розплавляє брухт у шлак для подальшої переробки або використання у баштах «Хвиля».
|
block.melter.description = Розплавляє брухт у шлак для подальшого перероблювання, або використання у баштах «Хвиля».
|
||||||
block.separator.description = Відокремлює шлак на його мінеральні компоненти. Виводить охолоджені матеріали.
|
block.separator.description = Відокремлює шлак на його мінеральні компоненти. Виводить охолоджені матеріали.
|
||||||
block.spore-press.description = Стискає спорові стручки під сильним тиском для синтезу нафти.
|
block.spore-press.description = Стискає спорові стручки під сильним тиском для синтезу нафти.
|
||||||
block.pulverizer.description = Подрібнює брухт у дрібний пісок.
|
block.pulverizer.description = Подрібнює брухт у дрібний пісок.
|
||||||
@@ -1137,12 +1137,12 @@ block.liquid-source.description = Нескінченно виводить рід
|
|||||||
block.liquid-void.description = Видаляє будь-які рідини. Тільки пісочниця.
|
block.liquid-void.description = Видаляє будь-які рідини. Тільки пісочниця.
|
||||||
block.copper-wall.description = Дешевий захисний блок.\nКорисний для захисту ядра та башт у перші кілька хвиль.
|
block.copper-wall.description = Дешевий захисний блок.\nКорисний для захисту ядра та башт у перші кілька хвиль.
|
||||||
block.copper-wall-large.description = Дешевий захисний блок.\nКорисний для захисту ядра та башт у перші кілька хвиль.\nЗаймає декілька плиток.
|
block.copper-wall-large.description = Дешевий захисний блок.\nКорисний для захисту ядра та башт у перші кілька хвиль.\nЗаймає декілька плиток.
|
||||||
block.titanium-wall.description = Відносно сильний захисний блок.\nЗабезпечує помірний захист від ворогів.
|
block.titanium-wall.description = Відносно сильний захисний блок.\nЗабезпечує помірний захист від противників.
|
||||||
block.titanium-wall-large.description = Відносно сильний захисний блок.\nЗабезпечує помірний захист від ворогів.\nЗаймає декілька плиток.
|
block.titanium-wall-large.description = Відносно сильний захисний блок.\nЗабезпечує помірний захист від противників.\nЗаймає декілька плиток.
|
||||||
block.plastanium-wall.description = Особливий тип стіни, який поглинає електричні дуги й блокує автоматичні з’єднання енергетичних вузлів.
|
block.plastanium-wall.description = Особливий тип стіни, який поглинає електричні дуги й блокує автоматичні з’єднання енергетичних вузлів.
|
||||||
block.plastanium-wall-large.description = Особливий тип стіни, який поглинає електричні дуги й блокує автоматичні з’єднання енергетичних вузлів.\nЗаймає декілька плиток.
|
block.plastanium-wall-large.description = Особливий тип стіни, який поглинає електричні дуги й блокує автоматичні з’єднання енергетичних вузлів.\nЗаймає декілька плиток.
|
||||||
block.thorium-wall.description = Сильний захисний блок.\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.description = Стіна має покриття спеціальним складом, що відбиває світло і який базується на фазовій тканині. Відхиляє більшість куль при ударі.
|
||||||
block.phase-wall-large.description = Стіна має покриття спеціальним складом, що відбиває світло і який базується на фазовій тканині. Відхиляє більшість куль при ударі.\nЗаймає декілька плиток.
|
block.phase-wall-large.description = Стіна має покриття спеціальним складом, що відбиває світло і який базується на фазовій тканині. Відхиляє більшість куль при ударі.\nЗаймає декілька плиток.
|
||||||
block.surge-wall.description = Надзвичайно міцний захисний блок.\nЗбільшує заряд при контакті з кулями, вивільняючи його випадковим чином.
|
block.surge-wall.description = Надзвичайно міцний захисний блок.\nЗбільшує заряд при контакті з кулями, вивільняючи його випадковим чином.
|
||||||
@@ -1153,7 +1153,7 @@ block.mender.description = Періодично ремонтує блоки у
|
|||||||
block.mend-projector.description = Покращена версія «Регенератора». Періодично ремонтує блоки у його радіусі дії.\nЗа бажанням, можна використати фазову тканину для підвищення дальності та ефективності.
|
block.mend-projector.description = Покращена версія «Регенератора». Періодично ремонтує блоки у його радіусі дії.\nЗа бажанням, можна використати фазову тканину для підвищення дальності та ефективності.
|
||||||
block.overdrive-projector.description = Збільшує швидкість найближчих будівель.\nЗа бажанням, можна використати фазову тканину для підвищення дальності та ефективності.
|
block.overdrive-projector.description = Збільшує швидкість найближчих будівель.\nЗа бажанням, можна використати фазову тканину для підвищення дальності та ефективності.
|
||||||
block.force-projector.description = Створює навколо себе шестикутне силове поле, захищаючи будівлі та блоки всередині від пошкоджень.\nПерегрівається, якщо завдано занадто великої шкоди. За бажанням, можна використати теплоносій для запобігання перегріву. Для збільшення розміру щита можна використовувати фазову тканину.
|
block.force-projector.description = Створює навколо себе шестикутне силове поле, захищаючи будівлі та блоки всередині від пошкоджень.\nПерегрівається, якщо завдано занадто великої шкоди. За бажанням, можна використати теплоносій для запобігання перегріву. Для збільшення розміру щита можна використовувати фазову тканину.
|
||||||
block.shock-mine.description = Пошкоджує ворогів, коли вони наступають на міну. Майже невидима для ворога.
|
block.shock-mine.description = Наносить шкоду противникам, коли вони наступають на міну. Майже невидима для противника.
|
||||||
block.conveyor.description = Базовий транспортний блок. Переміщує елементи вперед і автоматично перетворює їх у блоки. Можна обертати.
|
block.conveyor.description = Базовий транспортний блок. Переміщує елементи вперед і автоматично перетворює їх у блоки. Можна обертати.
|
||||||
block.titanium-conveyor.description = Покращений блок транспорту елементів. Переміщує предмети швидше, ніж звичайні конвеєри.
|
block.titanium-conveyor.description = Покращений блок транспорту елементів. Переміщує предмети швидше, ніж звичайні конвеєри.
|
||||||
block.plastanium-conveyor.description = Переміщує предмети партіями.\nПриймає елементи на задній частині та вивантажує їх у трьох напрямках спереду.
|
block.plastanium-conveyor.description = Переміщує предмети партіями.\nПриймає елементи на задній частині та вивантажує їх у трьох напрямках спереду.
|
||||||
@@ -1206,31 +1206,31 @@ block.core-nucleus.description = Третя й остання версія ка
|
|||||||
block.vault.description = Зберігає велику кількість предметів кожного типу. Блок розвантажувача може використовуватися для отримання предметів зі сховища.
|
block.vault.description = Зберігає велику кількість предметів кожного типу. Блок розвантажувача може використовуватися для отримання предметів зі сховища.
|
||||||
block.container.description = Зберігає малу кількість предметів кожного типу. Блок розвантажувача може використовуватися для отримання предметів зі сховища.
|
block.container.description = Зберігає малу кількість предметів кожного типу. Блок розвантажувача може використовуватися для отримання предметів зі сховища.
|
||||||
block.unloader.description = Вивантажує предмети з блока, який не переміщує предмети, на конвеєр або безпосередньо в сусідній блок. Тип предмета для завантаження можна змінити, натиснувши на блок.
|
block.unloader.description = Вивантажує предмети з блока, який не переміщує предмети, на конвеєр або безпосередньо в сусідній блок. Тип предмета для завантаження можна змінити, натиснувши на блок.
|
||||||
block.launch-pad.description = Запускає партії предметів без необхідності запуску ядра. Стартовий майданчик дозволяє вам запускати ресурси кожні n секунд без необхідності завершувати гру. Просто подайте у нього ресурси і забезпечте енергією.
|
block.launch-pad.description = Запускає партії предметів без необхідності запуску ядра. Стартовий майданчик дозволяє вам запускати ресурси кожні n секунд без необхідності завершувати гру. Просто подайте у нього ресурси та забезпечте енергією.
|
||||||
block.launch-pad-large.description = Поліпшена версія стартового майданчика. Зберігає більше предметів. Запускається частіше.
|
block.launch-pad-large.description = Поліпшена версія стартового майданчика. Зберігає більше предметів. Запускається частіше.
|
||||||
block.duo.description = Мала і дешева башта. Корисна проти наземних одиниць.
|
block.duo.description = Мала і дешева башта. Корисна проти наземних одиниць.
|
||||||
block.scatter.description = Основна протиповітряна башта. Розпилює грудочки свинцю, брухту чи метаскла у ворогів.
|
block.scatter.description = Основна протиповітряна башта. Розпилює грудочки свинцю, брухту чи метаскла у противників.
|
||||||
block.scorch.description = Підпалює будь-яких наземних ворогів поблизу. Високоефективна на близькій відстані.
|
block.scorch.description = Підпалює будь-яких наземних противників поблизу. Високоефективна на близькій відстані.
|
||||||
block.hail.description = Невелика артилерійська башта з далеким радіусом дії.
|
block.hail.description = Невелика артилерійська башта з далеким радіусом дії.
|
||||||
block.wave.description = Башта середнього розміру. Стріляє потоками рідини в ворогів. Автоматично гасить пожежі при постачанні води.
|
block.wave.description = Башта середнього розміру. Стріляє потоками рідини в противників. Автоматично гасить пожежі при постачанні води.
|
||||||
block.lancer.description = Лазерна башта середнього розміру, яка атакує наземних ворогів. Заряджає і вистрілює потужні пучки енергії.
|
block.lancer.description = Лазерна башта середнього розміру, яка атакує наземних противників. Заряджає і вистрілює потужні пучки енергії.
|
||||||
block.arc.description = Невелика електрична башта з малим радіусом дії. Стріляє дугами електрики у ворогів.
|
block.arc.description = Невелика електрична башта з малим радіусом дії. Стріляє дугами електрики у противників.
|
||||||
block.swarmer.description = Ракетна башта середнього розміру. Атакує як повітряних, так і наземних ворогів. Запускає ракети, які летять у ворогів самостійно.
|
block.swarmer.description = Ракетна башта середнього розміру. Атакує як повітряних, так і наземних противників. Запускає ракети, які летять у противників самостійно.
|
||||||
block.salvo.description = Більш велика, вдосконалена версія башти «Подвійна». Вистрілює швидкий залп куль у ворога.
|
block.salvo.description = Більш велика, вдосконалена версія башти «Подвійна». Вистрілює швидкий залп куль у противника.
|
||||||
block.fuse.description = Велика енергетична башта з малим радіусом дії. Стріляє трьома пронизливими променями на найближчих ворогів.
|
block.fuse.description = Велика енергетична башта з малим радіусом дії. Стріляє трьома пронизливими променями на найближчих противників.
|
||||||
block.ripple.description = Надзвичайно потужна артилерійська башта. На великі відстані стріляє скупченнями снарядів у ворогів.
|
block.ripple.description = Надзвичайно потужна артилерійська башта. На великі відстані стріляє скупченнями снарядів у противників.
|
||||||
block.cyclone.description = Велика протиповітряна та протиназемна башта. Підпалює вибухонебезпечними грудками скупчення ворогів.
|
block.cyclone.description = Велика протиповітряна та протиназемна башта. Підпалює вибухонебезпечними грудками скупчення противників.
|
||||||
block.spectre.description = Масивна двоствольна гармата. Стріляє великими бронебійними кулями в повітряні та наземні цілі.
|
block.spectre.description = Масивна двоствольна гармата. Стріляє великими бронебійними кулями в повітряні та наземні цілі.
|
||||||
block.meltdown.description = Масивна лазерна гармата. Заряджає і стріляє лазерним променем у найближчих ворогів. Для роботи потрібен теплоносій.
|
block.meltdown.description = Масивна лазерна гармата. Заряджає і стріляє лазерним променем у найближчих противників. Для роботи потрібен теплоносій.
|
||||||
block.command-center.description = Наказує бойовим одиницям пересуватися по всій мапі.\nНаявні команди: патрулювання, атакувати вороже ядро, відступити до ядра/заводу. Якщо ворожого ядра немає, то бойові одиниці будуть патрулювати за замовчуванням при застосуванні команди «атакувати».
|
block.command-center.description = Наказує бойовим одиницям пересуватися по всій мапі.\nНаявні команди: патрулювання, атакувати вороже ядро, відступити до ядра/заводу. Якщо ворожого ядра немає, то бойові одиниці будуть патрулювати за замовчуванням при застосуванні команди «атакувати».
|
||||||
block.draug-factory.description = Виробляє дронів, які видобувають ресурси.
|
block.draug-factory.description = Виробляє дронів, які видобувають ресурси.
|
||||||
block.spirit-factory.description = Виробляє дронів, які ремонтують блоки.
|
block.spirit-factory.description = Виробляє дронів, які ремонтують блоки.
|
||||||
block.phantom-factory.description = Виробляє дронів, які допомагають у будівництві.
|
block.phantom-factory.description = Виробляє дронів, які допомагають у будівництві.
|
||||||
block.wraith-factory.description = Виробляє швидких перехоплювачів, які використовують тактику «стріляй і біжи».
|
block.wraith-factory.description = Виробляє швидких перехоплювачів, які використовують тактику «стріляй і біжи».
|
||||||
block.ghoul-factory.description = Виробляє важкокилимових бомбардувальників.
|
block.ghoul-factory.description = Виробляє важкі килимові бомбардувальники.
|
||||||
block.revenant-factory.description = Виробляє важких ракетних одиниць.
|
block.revenant-factory.description = Виробляє важкі ракетні одиниці.
|
||||||
block.dagger-factory.description = Виробляє початкових наземних одиниць.
|
block.dagger-factory.description = Виробляє базові наземні одиниці.
|
||||||
block.crawler-factory.description = Виробляє швидких одиниць, які вибухають при контакті з ворогом.
|
block.crawler-factory.description = Виробляє швидкі одиниці, які вибухають при контакті з противником.
|
||||||
block.titan-factory.description = Виробляє поліпшених наземних одиниць.
|
block.titan-factory.description = Виробляє поліпшені наземні одиниці.
|
||||||
block.fortress-factory.description = Виробляє важкоартилерійних наземних одиниць.
|
block.fortress-factory.description = Виробляє важкі артилерійні наземні одиниці.
|
||||||
block.repair-point.description = Безперервно лікує найближчу пошкоджену бойову одиницю.
|
block.repair-point.description = Безперервно ремонтує найближчу пошкоджену бойову одиницю.
|
||||||
|
|||||||
@@ -272,6 +272,7 @@ quit.confirm.tutorial = 您確定您知道自己在做什麼嗎?\n該教學可
|
|||||||
loading = [accent]載入中...
|
loading = [accent]載入中...
|
||||||
reloading = [accent]模組重新載入中...
|
reloading = [accent]模組重新載入中...
|
||||||
saving = [accent]儲存中...
|
saving = [accent]儲存中...
|
||||||
|
respawn = [accent][[{0}][]重生
|
||||||
cancelbuilding = [accent][[{0}][]清除計畫
|
cancelbuilding = [accent][[{0}][]清除計畫
|
||||||
selectschematic = [accent][[{0}][]選擇並複製
|
selectschematic = [accent][[{0}][]選擇並複製
|
||||||
pausebuilding = [accent][[{0}][]暫停建造
|
pausebuilding = [accent][[{0}][]暫停建造
|
||||||
@@ -328,8 +329,9 @@ waves.never = 〈永遠〉
|
|||||||
waves.every = 每
|
waves.every = 每
|
||||||
waves.waves = 波次
|
waves.waves = 波次
|
||||||
waves.perspawn = 每次生成
|
waves.perspawn = 每次生成
|
||||||
|
waves.shields = 護盾/波次
|
||||||
waves.to = 至
|
waves.to = 至
|
||||||
waves.boss = 頭目
|
waves.guardian = 守衛者
|
||||||
waves.preview = 預覽
|
waves.preview = 預覽
|
||||||
waves.edit = 編輯...
|
waves.edit = 編輯...
|
||||||
waves.copy = 複製到剪貼板
|
waves.copy = 複製到剪貼板
|
||||||
@@ -537,6 +539,7 @@ settings.clearall.confirm = [scarlet]警告![]\n這將清除所有數據,包
|
|||||||
paused = [accent]〈已暫停〉
|
paused = [accent]〈已暫停〉
|
||||||
clear = 清除
|
clear = 清除
|
||||||
banned = [scarlet]已被封禁
|
banned = [scarlet]已被封禁
|
||||||
|
unplaceable.sectorcaptured = [scarlet]需要已占領的地區
|
||||||
yes = 是
|
yes = 是
|
||||||
no = 否
|
no = 否
|
||||||
info.title = 資訊
|
info.title = 資訊
|
||||||
@@ -591,11 +594,11 @@ bar.poweramount = 能量:{0}
|
|||||||
bar.poweroutput = 能量輸出:{0}
|
bar.poweroutput = 能量輸出:{0}
|
||||||
bar.items = 物品:{0}
|
bar.items = 物品:{0}
|
||||||
bar.capacity = 容量: {0}
|
bar.capacity = 容量: {0}
|
||||||
|
bar.units = 單位: {0}/{1}
|
||||||
bar.liquid = 液體
|
bar.liquid = 液體
|
||||||
bar.heat = 熱
|
bar.heat = 熱
|
||||||
bar.power = 能量
|
bar.power = 能量
|
||||||
bar.progress = 建造進度
|
bar.progress = 建造進度
|
||||||
bar.spawned = 單位:{0}/{1}
|
|
||||||
bar.input = 輸入
|
bar.input = 輸入
|
||||||
bar.output = 輸出
|
bar.output = 輸出
|
||||||
|
|
||||||
@@ -678,6 +681,7 @@ setting.pixelate.name = 像素化
|
|||||||
setting.minimap.name = 顯示小地圖
|
setting.minimap.name = 顯示小地圖
|
||||||
setting.position.name = 顯示玩家位置
|
setting.position.name = 顯示玩家位置
|
||||||
setting.musicvol.name = 音樂音量
|
setting.musicvol.name = 音樂音量
|
||||||
|
setting.atmosphere.name = 顯示星球大氣層
|
||||||
setting.ambientvol.name = 環境音量
|
setting.ambientvol.name = 環境音量
|
||||||
setting.mutemusic.name = 靜音
|
setting.mutemusic.name = 靜音
|
||||||
setting.sfxvol.name = 音效音量
|
setting.sfxvol.name = 音效音量
|
||||||
@@ -704,6 +708,8 @@ command.attack = 攻擊
|
|||||||
command.rally = 集結
|
command.rally = 集結
|
||||||
command.retreat = 撤退
|
command.retreat = 撤退
|
||||||
placement.blockselectkeys = \n[lightgray]按鍵:[{0},
|
placement.blockselectkeys = \n[lightgray]按鍵:[{0},
|
||||||
|
keybind.respawn.name = 重生
|
||||||
|
keybind.control.name = 控制單位
|
||||||
keybind.clear_building.name = 清除建築指令
|
keybind.clear_building.name = 清除建築指令
|
||||||
keybind.press = 按一下按鍵...
|
keybind.press = 按一下按鍵...
|
||||||
keybind.press.axis = 按一下軸向或按鍵...
|
keybind.press.axis = 按一下軸向或按鍵...
|
||||||
@@ -713,7 +719,7 @@ keybind.toggle_block_status.name = 開啟方塊狀態顯示
|
|||||||
keybind.move_x.name = 水平移動
|
keybind.move_x.name = 水平移動
|
||||||
keybind.move_y.name = 垂直移動
|
keybind.move_y.name = 垂直移動
|
||||||
keybind.mouse_move.name = 跟隨滑鼠
|
keybind.mouse_move.name = 跟隨滑鼠
|
||||||
keybind.dash.name = 衝刺
|
keybind.boost.name = 噴射
|
||||||
keybind.schematic_select.name = 選擇區域
|
keybind.schematic_select.name = 選擇區域
|
||||||
keybind.schematic_menu.name = 藍圖目錄
|
keybind.schematic_menu.name = 藍圖目錄
|
||||||
keybind.schematic_flip_x.name = X軸翻轉
|
keybind.schematic_flip_x.name = X軸翻轉
|
||||||
@@ -799,6 +805,7 @@ rules.title.player = 玩家
|
|||||||
rules.title.enemy = 敵人
|
rules.title.enemy = 敵人
|
||||||
rules.title.unit = 單位
|
rules.title.unit = 單位
|
||||||
rules.title.experimental = 實驗中
|
rules.title.experimental = 實驗中
|
||||||
|
rules.title.environment = 環境
|
||||||
rules.lighting = 光照
|
rules.lighting = 光照
|
||||||
rules.ambientlight = 環境光照
|
rules.ambientlight = 環境光照
|
||||||
rules.solarpowermultiplier = 太陽能倍數
|
rules.solarpowermultiplier = 太陽能倍數
|
||||||
@@ -834,11 +841,11 @@ item.radioactivity = [lightgray]放射性:{0}%
|
|||||||
unit.health = [lightgray]生命值:{0}
|
unit.health = [lightgray]生命值:{0}
|
||||||
unit.speed = [lightgray]速度:{0}
|
unit.speed = [lightgray]速度:{0}
|
||||||
unit.weapon = [lightgray]武器: {0}
|
unit.weapon = [lightgray]武器: {0}
|
||||||
unit.itemcapacity = [lightgray]物品量: {0}
|
unit.itemcapacity = [lightgray]物品容量: {0}
|
||||||
unit.minespeed = [lightgray]開採速度: {0}%
|
unit.minespeed = [lightgray]採礦速度: {0}%
|
||||||
unit.minepower = [lightgray]開採強度: {0}
|
unit.minepower = [lightgray]採礦能力: {0}
|
||||||
unit.ability = [lightgray]技能: {0}
|
unit.ability = [lightgray]能力: {0}
|
||||||
unit.buildspeed = [lightgray]建設速度: {0}%
|
unit.buildspeed = [lightgray]建造速度: {0}%
|
||||||
liquid.heatcapacity = [lightgray]熱容量:{0}
|
liquid.heatcapacity = [lightgray]熱容量:{0}
|
||||||
liquid.viscosity = [lightgray]粘性:{0}
|
liquid.viscosity = [lightgray]粘性:{0}
|
||||||
liquid.temperature = [lightgray]溫度:{0}
|
liquid.temperature = [lightgray]溫度:{0}
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 1.0 MiB After Width: | Height: | Size: 1.0 MiB |
|
Before Width: | Height: | Size: 181 KiB After Width: | Height: | Size: 184 KiB |
|
Before Width: | Height: | Size: 1.6 MiB After Width: | Height: | Size: 1.6 MiB |
|
Before Width: | Height: | Size: 182 KiB After Width: | Height: | Size: 186 KiB |
@@ -1141,7 +1141,7 @@ public class Blocks implements ContentList{
|
|||||||
itemDuration = 500f;
|
itemDuration = 500f;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
solarPanel = new SolarGenerator("solar-panel"){{
|
solarPanel = new SeamlessSolarGenerator("solar-panel"){{
|
||||||
requirements(Category.power, with(Items.lead, 10, Items.silicon, 15));
|
requirements(Category.power, with(Items.lead, 10, Items.silicon, 15));
|
||||||
powerProduction = 0.06f;
|
powerProduction = 0.06f;
|
||||||
}};
|
}};
|
||||||
@@ -1824,10 +1824,10 @@ public class Blocks implements ContentList{
|
|||||||
}};
|
}};
|
||||||
|
|
||||||
illuminator = new LightBlock("illuminator"){{
|
illuminator = new LightBlock("illuminator"){{
|
||||||
requirements(Category.effect, BuildVisibility.lightingOnly, with(Items.graphite, 4, Items.silicon, 2));
|
requirements(Category.effect, BuildVisibility.lightingOnly, with(Items.graphite, 12, Items.silicon, 8));
|
||||||
brightness = 0.67f;
|
brightness = 0.67f;
|
||||||
radius = 120f;
|
radius = 140f;
|
||||||
consumes.power(0.05f);
|
consumes.power(0.06f);
|
||||||
}};
|
}};
|
||||||
|
|
||||||
//endregion
|
//endregion
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ public class UnitTypes implements ContentList{
|
|||||||
//region definitions
|
//region definitions
|
||||||
|
|
||||||
//ground
|
//ground
|
||||||
public static @EntityDef({Unitc.class, Mechc.class}) UnitType mace, dagger, crawler, fortress, siegeArray, eradicator;
|
public static @EntityDef({Unitc.class, Mechc.class}) UnitType mace, dagger, crawler, fortress, vestige, cataclyst;
|
||||||
|
|
||||||
//ground + builder
|
//ground + builder
|
||||||
public static @EntityDef({Unitc.class, Mechc.class, Builderc.class}) UnitType nova;
|
public static @EntityDef({Unitc.class, Mechc.class, Builderc.class}) UnitType nova;
|
||||||
@@ -304,7 +304,7 @@ public class UnitTypes implements ContentList{
|
|||||||
immunities = ObjectSet.with(StatusEffects.burning, StatusEffects.melting);
|
immunities = ObjectSet.with(StatusEffects.burning, StatusEffects.melting);
|
||||||
legCount = 6;
|
legCount = 6;
|
||||||
legLength = 13f;
|
legLength = 13f;
|
||||||
legTrns = 0.7f;
|
legTrns = 0.8f;
|
||||||
legMoveSpace = 1.4f;
|
legMoveSpace = 1.4f;
|
||||||
legBaseOffset = 2f;
|
legBaseOffset = 2f;
|
||||||
hovering = true;
|
hovering = true;
|
||||||
|
|||||||
@@ -103,16 +103,16 @@ public class Logic implements ApplicationListener{
|
|||||||
if(state.rules.sector.save != null && core != null){
|
if(state.rules.sector.save != null && core != null){
|
||||||
|
|
||||||
//add produced items
|
//add produced items
|
||||||
//TODO move to recieved items
|
//TODO move to received items
|
||||||
state.rules.sector.save.meta.secinfo.production.each((item, stat) -> {
|
state.rules.sector.save.meta.secinfo.production.each((item, stat) -> {
|
||||||
core.items.add(item, (int)(stat.mean * seconds));
|
core.items.add(item, (int)(stat.mean * seconds));
|
||||||
});
|
});
|
||||||
|
|
||||||
//add recieved items
|
//add received items
|
||||||
state.rules.sector.getRecievedItems().each(stack -> core.items.add(stack.item, stack.amount));
|
state.rules.sector.getReceivedItems().each(stack -> core.items.add(stack.item, stack.amount));
|
||||||
|
|
||||||
//clear recieved items
|
//clear received items
|
||||||
state.rules.sector.setRecievedItems(new Seq<>());
|
state.rules.sector.setReceivedItems(new Seq<>());
|
||||||
|
|
||||||
//validation
|
//validation
|
||||||
for(Item item : content.items()){
|
for(Item item : content.items()){
|
||||||
@@ -274,15 +274,15 @@ public class Logic implements ApplicationListener{
|
|||||||
Time.runTask(30f, () -> {
|
Time.runTask(30f, () -> {
|
||||||
Sector origin = sector.save.meta.secinfo.origin;
|
Sector origin = sector.save.meta.secinfo.origin;
|
||||||
if(origin != null){
|
if(origin != null){
|
||||||
Seq<ItemStack> stacks = origin.getRecievedItems();
|
Seq<ItemStack> stacks = origin.getReceivedItems();
|
||||||
|
|
||||||
//add up all items into list
|
//add up all items into list
|
||||||
for(Building entity : state.teams.playerCores()){
|
for(Building entity : state.teams.playerCores()){
|
||||||
entity.items.each((item, amount) -> ItemStack.insert(stacks, item, amount));
|
entity.items.each((item, amount) -> ItemStack.insert(stacks, item, amount));
|
||||||
}
|
}
|
||||||
|
|
||||||
//save recieved items
|
//save received items
|
||||||
origin.setRecievedItems(stacks);
|
origin.setReceivedItems(stacks);
|
||||||
}
|
}
|
||||||
|
|
||||||
//remove all the cores
|
//remove all the cores
|
||||||
|
|||||||
@@ -67,9 +67,7 @@ public class NetClient implements ApplicationListener{
|
|||||||
|
|
||||||
ui.loadfrag.setButton(() -> {
|
ui.loadfrag.setButton(() -> {
|
||||||
ui.loadfrag.hide();
|
ui.loadfrag.hide();
|
||||||
connecting = false;
|
disconnectQuietly();
|
||||||
quiet = true;
|
|
||||||
net.disconnect();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
ConnectPacket c = new ConnectPacket();
|
ConnectPacket c = new ConnectPacket();
|
||||||
@@ -118,7 +116,7 @@ public class NetClient implements ApplicationListener{
|
|||||||
});
|
});
|
||||||
|
|
||||||
net.handleClient(WorldStream.class, data -> {
|
net.handleClient(WorldStream.class, data -> {
|
||||||
Log.info("Recieved world data: @ bytes.", data.stream.available());
|
Log.info("Received world data: @ bytes.", data.stream.available());
|
||||||
NetworkIO.loadWorld(new InflaterInputStream(data.stream));
|
NetworkIO.loadWorld(new InflaterInputStream(data.stream));
|
||||||
|
|
||||||
finishConnecting();
|
finishConnecting();
|
||||||
@@ -172,7 +170,7 @@ public class NetClient implements ApplicationListener{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//called when a server recieves a chat message from a player
|
//called when a server receives a chat message from a player
|
||||||
@Remote(called = Loc.server, targets = Loc.client)
|
@Remote(called = Loc.server, targets = Loc.client)
|
||||||
public static void sendChatMessage(Player player, String message){
|
public static void sendChatMessage(Player player, String message){
|
||||||
if(message.length() > maxTextLength){
|
if(message.length() > maxTextLength){
|
||||||
@@ -353,9 +351,8 @@ public class NetClient implements ApplicationListener{
|
|||||||
|
|
||||||
ui.loadfrag.setButton(() -> {
|
ui.loadfrag.setButton(() -> {
|
||||||
ui.loadfrag.hide();
|
ui.loadfrag.hide();
|
||||||
netClient.connecting = false;
|
|
||||||
netClient.quiet = true;
|
netClient.disconnectQuietly();
|
||||||
net.disconnect();
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -506,7 +503,7 @@ public class NetClient implements ApplicationListener{
|
|||||||
net.setClientLoaded(true);
|
net.setClientLoaded(true);
|
||||||
Core.app.post(Call::connectConfirm);
|
Core.app.post(Call::connectConfirm);
|
||||||
Time.runTask(40f, platform::updateRPC);
|
Time.runTask(40f, platform::updateRPC);
|
||||||
Core.app.post(() -> ui.loadfrag.hide());
|
Core.app.post(ui.loadfrag::hide);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void reset(){
|
private void reset(){
|
||||||
@@ -529,6 +526,7 @@ public class NetClient implements ApplicationListener{
|
|||||||
/** Disconnects, resetting state to the menu. */
|
/** Disconnects, resetting state to the menu. */
|
||||||
public void disconnectQuietly(){
|
public void disconnectQuietly(){
|
||||||
quiet = true;
|
quiet = true;
|
||||||
|
connecting = false;
|
||||||
net.disconnect();
|
net.disconnect();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -540,11 +540,11 @@ public class NetServer implements ApplicationListener{
|
|||||||
float viewX, float viewY, float viewWidth, float viewHeight
|
float viewX, float viewY, float viewWidth, float viewHeight
|
||||||
){
|
){
|
||||||
NetConnection con = player.con;
|
NetConnection con = player.con;
|
||||||
if(con == null || snapshotID < con.lastRecievedClientSnapshot) return;
|
if(con == null || snapshotID < con.lastReceivedClientSnapshot) return;
|
||||||
|
|
||||||
boolean verifyPosition = !player.dead() && netServer.admins.getStrict() && headless;
|
boolean verifyPosition = !player.dead() && netServer.admins.getStrict() && headless;
|
||||||
|
|
||||||
if(con.lastRecievedClientTime == 0) con.lastRecievedClientTime = Time.millis() - 16;
|
if(con.lastReceivedClientTime == 0) con.lastReceivedClientTime = Time.millis() - 16;
|
||||||
|
|
||||||
con.viewX = viewX;
|
con.viewX = viewX;
|
||||||
con.viewY = viewY;
|
con.viewY = viewY;
|
||||||
@@ -606,7 +606,7 @@ public class NetServer implements ApplicationListener{
|
|||||||
Unit unit = player.unit();
|
Unit unit = player.unit();
|
||||||
|
|
||||||
unit.vel.set(xVelocity, yVelocity).limit(unit.type().speed);
|
unit.vel.set(xVelocity, yVelocity).limit(unit.type().speed);
|
||||||
long elapsed = Time.timeSinceMillis(con.lastRecievedClientTime);
|
long elapsed = Time.timeSinceMillis(con.lastReceivedClientTime);
|
||||||
float maxSpeed = player.unit().type().speed;
|
float maxSpeed = player.unit().type().speed;
|
||||||
float maxMove = elapsed / 1000f * 60f * maxSpeed * 1.1f;
|
float maxMove = elapsed / 1000f * 60f * maxSpeed * 1.1f;
|
||||||
|
|
||||||
@@ -663,8 +663,8 @@ public class NetServer implements ApplicationListener{
|
|||||||
player.y = y;
|
player.y = y;
|
||||||
}
|
}
|
||||||
|
|
||||||
con.lastRecievedClientSnapshot = snapshotID;
|
con.lastReceivedClientSnapshot = snapshotID;
|
||||||
con.lastRecievedClientTime = Time.millis();
|
con.lastReceivedClientTime = Time.millis();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Remote(targets = Loc.client, called = Loc.server)
|
@Remote(targets = Loc.client, called = Loc.server)
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ public class MassDriverBolt extends BulletType{
|
|||||||
//if on course and it's in range of the target
|
//if on course and it's in range of the target
|
||||||
if(Math.abs(dst1 + dst2 - baseDst) < 4f && dst2 <= hitDst){
|
if(Math.abs(dst1 + dst2 - baseDst) < 4f && dst2 <= hitDst){
|
||||||
intersect = true;
|
intersect = true;
|
||||||
} //else, bullet has gone off course, does not get recieved.
|
} //else, bullet has gone off course, does not get received.
|
||||||
|
|
||||||
if(intersect){
|
if(intersect){
|
||||||
data.to.handlePayload(b, data);
|
data.to.handlePayload(b, data);
|
||||||
|
|||||||
@@ -68,7 +68,6 @@ abstract class PayloadComp implements Posc, Rotc{
|
|||||||
}
|
}
|
||||||
|
|
||||||
boolean dropUnit(UnitPayload payload){
|
boolean dropUnit(UnitPayload payload){
|
||||||
//TODO create an effect here and/or make them be at a lower elevation
|
|
||||||
Unit u = payload.unit;
|
Unit u = payload.unit;
|
||||||
|
|
||||||
//can't drop ground units
|
//can't drop ground units
|
||||||
|
|||||||
@@ -157,14 +157,14 @@ public class DefaultWaves{
|
|||||||
spacing = 3;
|
spacing = 3;
|
||||||
}},
|
}},
|
||||||
|
|
||||||
new SpawnGroup(UnitTypes.siegeArray){{
|
new SpawnGroup(UnitTypes.vestige){{
|
||||||
begin = 41;
|
begin = 41;
|
||||||
unitAmount = 1;
|
unitAmount = 1;
|
||||||
unitScaling = 1;
|
unitScaling = 1;
|
||||||
spacing = 30;
|
spacing = 30;
|
||||||
}},
|
}},
|
||||||
|
|
||||||
new SpawnGroup(UnitTypes.eradicator){{
|
new SpawnGroup(UnitTypes.cataclyst){{
|
||||||
begin = 81;
|
begin = 81;
|
||||||
unitAmount = 1;
|
unitAmount = 1;
|
||||||
unitScaling = 1;
|
unitScaling = 1;
|
||||||
|
|||||||
@@ -48,9 +48,9 @@ public class EventType{
|
|||||||
public static class TurnEvent{}
|
public static class TurnEvent{}
|
||||||
/** Called when the player places a line, mobile or desktop.*/
|
/** Called when the player places a line, mobile or desktop.*/
|
||||||
public static class LineConfirmEvent{}
|
public static class LineConfirmEvent{}
|
||||||
/** Called when a turret recieves ammo, but only when the tutorial is active! */
|
/** Called when a turret receives ammo, but only when the tutorial is active! */
|
||||||
public static class TurretAmmoDeliverEvent{}
|
public static class TurretAmmoDeliverEvent{}
|
||||||
/** Called when a core recieves ammo, but only when the tutorial is active! */
|
/** Called when a core receives ammo, but only when the tutorial is active! */
|
||||||
public static class CoreItemDeliverEvent{}
|
public static class CoreItemDeliverEvent{}
|
||||||
/** Called when the player opens info for a specific block.*/
|
/** Called when the player opens info for a specific block.*/
|
||||||
public static class BlockInfoEvent{}
|
public static class BlockInfoEvent{}
|
||||||
@@ -307,7 +307,7 @@ public class EventType{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Called after connecting; when a player recieves world data and is ready to play.*/
|
/** Called after connecting; when a player receives world data and is ready to play.*/
|
||||||
public static class PlayerJoin{
|
public static class PlayerJoin{
|
||||||
public final Player player;
|
public final Player player;
|
||||||
|
|
||||||
|
|||||||
@@ -140,14 +140,14 @@ public class SectorInfo{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @return the items in this sector now, taking into account production and items recieved. */
|
/** @return the items in this sector now, taking into account production and items received. */
|
||||||
public ObjectIntMap<Item> getCurrentItems(Sector sector){
|
public ObjectIntMap<Item> getCurrentItems(Sector sector){
|
||||||
ObjectIntMap<Item> map = new ObjectIntMap<>();
|
ObjectIntMap<Item> map = new ObjectIntMap<>();
|
||||||
map.putAll(coreItems);
|
map.putAll(coreItems);
|
||||||
long seconds = sector.getSecondsPassed();
|
long seconds = sector.getSecondsPassed();
|
||||||
production.each((item, stat) -> map.increment(item, (int)(stat.mean * seconds)));
|
production.each((item, stat) -> map.increment(item, (int)(stat.mean * seconds)));
|
||||||
//increment based on recieved items
|
//increment based on received items
|
||||||
sector.getRecievedItems().each(stack -> map.increment(stack.item, stack.amount));
|
sector.getReceivedItems().each(stack -> map.increment(stack.item, stack.amount));
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -567,7 +567,10 @@ public class Administration{
|
|||||||
socketInputAddress("The bind address for socket input.", "localhost", () -> Events.fire(Trigger.socketConfigChanged)),
|
socketInputAddress("The bind address for socket input.", "localhost", () -> Events.fire(Trigger.socketConfigChanged)),
|
||||||
allowCustomClients("Whether custom clients are allowed to connect.", !headless, "allow-custom"),
|
allowCustomClients("Whether custom clients are allowed to connect.", !headless, "allow-custom"),
|
||||||
whitelist("Whether the whitelist is used.", false),
|
whitelist("Whether the whitelist is used.", false),
|
||||||
motd("The message displayed to people on connection.", "off");
|
motd("The message displayed to people on connection.", "off"),
|
||||||
|
autosave("Whether the periodically save the map when playing.", false),
|
||||||
|
autosaveAmount("The maximum amount of autosaves. Older ones get replaced.", 10),
|
||||||
|
autosaveSpacing("Spacing between autosaves in seconds.", 60 * 5);
|
||||||
|
|
||||||
public static final Config[] all = values();
|
public static final Config[] all = values();
|
||||||
|
|
||||||
|
|||||||
@@ -85,7 +85,7 @@ public class ArcNetProvider implements NetProvider{
|
|||||||
Connect c = new Connect();
|
Connect c = new Connect();
|
||||||
c.addressTCP = ip;
|
c.addressTCP = ip;
|
||||||
|
|
||||||
Log.debug("&bRecieved connection: @", c.addressTCP);
|
Log.debug("&bReceived connection: @", c.addressTCP);
|
||||||
|
|
||||||
connections.add(kn);
|
connections.add(kn);
|
||||||
Core.app.post(() -> net.handleServerReceived(kn, c));
|
Core.app.post(() -> net.handleServerReceived(kn, c));
|
||||||
|
|||||||
@@ -85,7 +85,7 @@ public class Net{
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the client loaded status, or whether it will recieve normal packets from the server.
|
* Sets the client loaded status, or whether it will receive normal packets from the server.
|
||||||
*/
|
*/
|
||||||
public void setClientLoaded(boolean loaded){
|
public void setClientLoaded(boolean loaded){
|
||||||
clientLoaded = loaded;
|
clientLoaded = loaded;
|
||||||
@@ -205,21 +205,21 @@ public class Net{
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Registers a client listener for when an object is recieved.
|
* Registers a client listener for when an object is received.
|
||||||
*/
|
*/
|
||||||
public <T> void handleClient(Class<T> type, Cons<T> listener){
|
public <T> void handleClient(Class<T> type, Cons<T> listener){
|
||||||
clientListeners.put(type, listener);
|
clientListeners.put(type, listener);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Registers a server listener for when an object is recieved.
|
* Registers a server listener for when an object is received.
|
||||||
*/
|
*/
|
||||||
public <T> void handleServer(Class<T> type, Cons2<NetConnection, T> listener){
|
public <T> void handleServer(Class<T> type, Cons2<NetConnection, T> listener){
|
||||||
serverListeners.put(type, (Cons2<NetConnection, Object>)listener);
|
serverListeners.put(type, (Cons2<NetConnection, Object>)listener);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Call to handle a packet being recieved for the client.
|
* Call to handle a packet being received for the client.
|
||||||
*/
|
*/
|
||||||
public void handleClientReceived(Object object){
|
public void handleClientReceived(Object object){
|
||||||
|
|
||||||
@@ -231,7 +231,7 @@ public class Net{
|
|||||||
StreamChunk c = (StreamChunk)object;
|
StreamChunk c = (StreamChunk)object;
|
||||||
StreamBuilder builder = streams.get(c.id);
|
StreamBuilder builder = streams.get(c.id);
|
||||||
if(builder == null){
|
if(builder == null){
|
||||||
throw new RuntimeException("Recieved stream chunk without a StreamBegin beforehand!");
|
throw new RuntimeException("Received stream chunk without a StreamBegin beforehand!");
|
||||||
}
|
}
|
||||||
builder.add(c.data);
|
builder.add(c.data);
|
||||||
if(builder.isDone()){
|
if(builder.isDone()){
|
||||||
@@ -256,7 +256,7 @@ public class Net{
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Call to handle a packet being recieved for the server.
|
* Call to handle a packet being received for the server.
|
||||||
*/
|
*/
|
||||||
public void handleServerReceived(NetConnection connection, Object object){
|
public void handleServerReceived(NetConnection connection, Object object){
|
||||||
|
|
||||||
|
|||||||
@@ -22,10 +22,10 @@ public abstract class NetConnection{
|
|||||||
public @Nullable Unitc lastUnit;
|
public @Nullable Unitc lastUnit;
|
||||||
public Vec2 lastPosition = new Vec2();
|
public Vec2 lastPosition = new Vec2();
|
||||||
|
|
||||||
/** ID of last recieved client snapshot. */
|
/** ID of last received client snapshot. */
|
||||||
public int lastRecievedClientSnapshot = -1;
|
public int lastReceivedClientSnapshot = -1;
|
||||||
/** Timestamp of last recieved snapshot. */
|
/** Timestamp of last received snapshot. */
|
||||||
public long lastRecievedClientTime;
|
public long lastReceivedClientTime;
|
||||||
/** Build requests that have been recently rejected. This is cleared every snapshot. */
|
/** Build requests that have been recently rejected. This is cleared every snapshot. */
|
||||||
public Seq<BuildPlan> rejectedRequests = new Seq<>();
|
public Seq<BuildPlan> rejectedRequests = new Seq<>();
|
||||||
|
|
||||||
|
|||||||
@@ -148,12 +148,12 @@ public class Sector{
|
|||||||
}
|
}
|
||||||
|
|
||||||
//TODO this should be stored in a more efficient structure, and be updated each turn
|
//TODO this should be stored in a more efficient structure, and be updated each turn
|
||||||
public Seq<ItemStack> getRecievedItems(){
|
public Seq<ItemStack> getReceivedItems(){
|
||||||
return Core.settings.getJson(key("recieved-items"), Seq.class, ItemStack.class, Seq::new);
|
return Core.settings.getJson(key("received-items"), Seq.class, ItemStack.class, Seq::new);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setRecievedItems(Seq<ItemStack> stacks){
|
public void setReceivedItems(Seq<ItemStack> stacks){
|
||||||
Core.settings.putJson(key("recieved-items"), ItemStack.class, stacks);
|
Core.settings.putJson(key("received-items"), ItemStack.class, stacks);
|
||||||
}
|
}
|
||||||
|
|
||||||
//TODO these methods should maybe move somewhere else and/or be contained in a data object
|
//TODO these methods should maybe move somewhere else and/or be contained in a data object
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ public class UnitType extends UnlockableContent{
|
|||||||
public static final float shadowTX = -12, shadowTY = -13, shadowColor = Color.toFloatBits(0, 0, 0, 0.22f);
|
public static final float shadowTX = -12, shadowTY = -13, shadowColor = Color.toFloatBits(0, 0, 0, 0.22f);
|
||||||
private static final Vec2 legOffset = new Vec2();
|
private static final Vec2 legOffset = new Vec2();
|
||||||
|
|
||||||
|
//TODO document
|
||||||
public boolean flying;
|
public boolean flying;
|
||||||
public @NonNull Prov<? extends Unit> constructor;
|
public @NonNull Prov<? extends Unit> constructor;
|
||||||
public @NonNull Prov<? extends UnitController> defaultController = () -> !flying ? new GroundAI() : new FlyingAI();
|
public @NonNull Prov<? extends UnitController> defaultController = () -> !flying ? new GroundAI() : new FlyingAI();
|
||||||
@@ -48,14 +49,12 @@ public class UnitType extends UnlockableContent{
|
|||||||
public int payloadCapacity = 1;
|
public int payloadCapacity = 1;
|
||||||
public int commandLimit = 24;
|
public int commandLimit = 24;
|
||||||
public float visualElevation = -1f;
|
public float visualElevation = -1f;
|
||||||
public float deathShake = 2f;
|
|
||||||
public boolean allowLegStep = false;
|
public boolean allowLegStep = false;
|
||||||
public boolean hovering = false;
|
public boolean hovering = false;
|
||||||
public Effect fallEffect = Fx.fallSmoke;
|
public Effect fallEffect = Fx.fallSmoke;
|
||||||
public Effect fallThrusterEffect = Fx.fallSmoke;
|
public Effect fallThrusterEffect = Fx.fallSmoke;
|
||||||
public Seq<Ability> abilities = new Seq<>();
|
public Seq<Ability> abilities = new Seq<>();
|
||||||
|
|
||||||
//TODO document
|
|
||||||
public int legCount = 4, legGroupSize = 2;
|
public int legCount = 4, legGroupSize = 2;
|
||||||
public float legLength = 10f, legSpeed = 0.1f, legTrns = 1f, legBaseOffset = 0f, legMoveSpace = 1f, legExtension = 0, legPairOffset = 0, legLengthScl = 1f, kinematicScl = 1f, maxStretch = 1.75f;
|
public float legLength = 10f, legSpeed = 0.1f, legTrns = 1f, legBaseOffset = 0f, legMoveSpace = 1f, legExtension = 0, legPairOffset = 0, legLengthScl = 1f, kinematicScl = 1f, maxStretch = 1.75f;
|
||||||
public float legSplashDamage = 0f, legSplashRange = 5;
|
public float legSplashDamage = 0f, legSplashRange = 5;
|
||||||
|
|||||||
@@ -177,7 +177,7 @@ public class LaunchPad extends Block{
|
|||||||
|
|
||||||
//actually launch the items upon removal
|
//actually launch the items upon removal
|
||||||
if(team() == state.rules.defaultTeam && state.secinfo.origin != null){
|
if(team() == state.rules.defaultTeam && state.secinfo.origin != null){
|
||||||
Seq<ItemStack> dest = state.secinfo.origin.getRecievedItems();
|
Seq<ItemStack> dest = state.secinfo.origin.getReceivedItems();
|
||||||
|
|
||||||
for(ItemStack stack : stacks){
|
for(ItemStack stack : stacks){
|
||||||
ItemStack sto = dest.find(i -> i.item == stack.item);
|
ItemStack sto = dest.find(i -> i.item == stack.item);
|
||||||
@@ -192,7 +192,7 @@ public class LaunchPad extends Block{
|
|||||||
Events.fire(new LaunchItemEvent(stack));
|
Events.fire(new LaunchItemEvent(stack));
|
||||||
}
|
}
|
||||||
|
|
||||||
state.secinfo.origin.setRecievedItems(dest);
|
state.secinfo.origin.setReceivedItems(dest);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ public class MassDriver extends Block{
|
|||||||
public float bulletLifetime = 200f;
|
public float bulletLifetime = 200f;
|
||||||
public Effect shootEffect = Fx.shootBig2;
|
public Effect shootEffect = Fx.shootBig2;
|
||||||
public Effect smokeEffect = Fx.shootBigSmoke2;
|
public Effect smokeEffect = Fx.shootBigSmoke2;
|
||||||
public Effect recieveEffect = Fx.mineBig;
|
public Effect receiveEffect = Fx.mineBig;
|
||||||
public float shake = 3f;
|
public float shake = 3f;
|
||||||
public @Load("@-base") TextureRegion baseRegion;
|
public @Load("@-base") TextureRegion baseRegion;
|
||||||
|
|
||||||
@@ -281,7 +281,7 @@ public class MassDriver extends Block{
|
|||||||
}
|
}
|
||||||
|
|
||||||
Effects.shake(shake, shake, this);
|
Effects.shake(shake, shake, this);
|
||||||
recieveEffect.at(bullet);
|
receiveEffect.at(bullet);
|
||||||
|
|
||||||
reload = 1f;
|
reload = 1f;
|
||||||
bullet.remove();
|
bullet.remove();
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package mindustry.world.blocks.power;
|
|||||||
|
|
||||||
import arc.graphics.*;
|
import arc.graphics.*;
|
||||||
import arc.graphics.g2d.*;
|
import arc.graphics.g2d.*;
|
||||||
|
import arc.math.*;
|
||||||
import arc.scene.ui.layout.*;
|
import arc.scene.ui.layout.*;
|
||||||
import arc.util.*;
|
import arc.util.*;
|
||||||
import arc.util.io.*;
|
import arc.util.io.*;
|
||||||
@@ -29,6 +30,7 @@ public class LightBlock extends Block{
|
|||||||
|
|
||||||
public class LightEntity extends Building{
|
public class LightEntity extends Building{
|
||||||
public int color = Pal.accent.rgba();
|
public int color = Pal.accent.rgba();
|
||||||
|
public float smoothTime = 1f;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void draw(){
|
public void draw(){
|
||||||
@@ -40,6 +42,11 @@ public class LightBlock extends Block{
|
|||||||
Draw.blend();
|
Draw.blend();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateTile(){
|
||||||
|
smoothTime = Mathf.lerpDelta(smoothTime, timeScale, 0.1f);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void buildConfiguration(Table table){
|
public void buildConfiguration(Table table){
|
||||||
table.button(Icon.pencil, () -> {
|
table.button(Icon.pencil, () -> {
|
||||||
@@ -50,7 +57,7 @@ public class LightBlock extends Block{
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void drawLight(){
|
public void drawLight(){
|
||||||
Drawf.light(team, x, y, radius, Tmp.c1.set(color), brightness * efficiency());
|
Drawf.light(team, x, y, radius * Math.min(smoothTime, 2f), Tmp.c1.set(color), brightness * efficiency());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -0,0 +1,64 @@
|
|||||||
|
package mindustry.world.blocks.power;
|
||||||
|
|
||||||
|
import arc.*;
|
||||||
|
import arc.graphics.g2d.*;
|
||||||
|
import mindustry.annotations.Annotations.*;
|
||||||
|
import mindustry.world.*;
|
||||||
|
|
||||||
|
import static mindustry.Vars.*;
|
||||||
|
|
||||||
|
public class SeamlessSolarGenerator extends SolarGenerator{
|
||||||
|
@Load(value = "@-#", length = 8)
|
||||||
|
public TextureRegion[] edges;
|
||||||
|
|
||||||
|
public SeamlessSolarGenerator(String name){
|
||||||
|
super(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected TextureRegion[] icons(){
|
||||||
|
return new TextureRegion[]{Core.atlas.find(name + "-icon")};
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SeamlessSolarGeneratorEntity extends SolarGeneratorEntity{
|
||||||
|
boolean up, right, down, left;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onProximityUpdate(){
|
||||||
|
super.onProximityUpdate();
|
||||||
|
|
||||||
|
up = foreign(tile, 0, 1);
|
||||||
|
right = foreign(tile, 1, 0);
|
||||||
|
down = foreign(tile, 0, -1);
|
||||||
|
left = foreign(tile, -1, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void draw(){
|
||||||
|
super.draw();
|
||||||
|
|
||||||
|
// outside edges
|
||||||
|
if(up) Draw.rect(edges[0], x, y);
|
||||||
|
if(right) Draw.rect(edges[2], x, y);
|
||||||
|
if(down) Draw.rect(edges[4], x, y);
|
||||||
|
if(left) Draw.rect(edges[6], x, y);
|
||||||
|
|
||||||
|
// outside corners
|
||||||
|
if(up && right) Draw.rect(edges[1], x, y);
|
||||||
|
if(right && down) Draw.rect(edges[3], x, y);
|
||||||
|
if(down && left) Draw.rect(edges[5], x, y);
|
||||||
|
if(left && up) Draw.rect(edges[7], x, y);
|
||||||
|
|
||||||
|
//inside corners
|
||||||
|
if(!right && !down && foreign(tile, 1, -1)) Draw.rect(edges[7], x + (tilesize * 0.75f), y - (tilesize * 0.75f));
|
||||||
|
if(!left && !down && foreign(tile, -1, -1)) Draw.rect(edges[1], x - (tilesize * 0.75f), y - (tilesize * 0.75f));
|
||||||
|
if(!left && !up && foreign(tile, -1, 1)) Draw.rect(edges[3], x - (tilesize * 0.75f), y + (tilesize * 0.75f));
|
||||||
|
if(!right && !up && foreign(tile, 1, 1)) Draw.rect(edges[5], x + (tilesize * 0.75f), y + (tilesize * 0.75f));
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean foreign(Tile tile, int dx, int dy){
|
||||||
|
Tile other = tile.getNearby(dx, dy);
|
||||||
|
return other == null || other.block() != SeamlessSolarGenerator.this;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -51,7 +51,7 @@ public class LiquidModule extends BlockModule{
|
|||||||
return total;
|
return total;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Last recieved or loaded liquid. Only valid for liquid modules with 1 type of liquid. */
|
/** Last received or loaded liquid. Only valid for liquid modules with 1 type of liquid. */
|
||||||
public Liquid current(){
|
public Liquid current(){
|
||||||
return current;
|
return current;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ public class SNet implements SteamNetworkingCallback, SteamMatchmakingCallback,
|
|||||||
Connect c = new Connect();
|
Connect c = new Connect();
|
||||||
c.addressTCP = "steam:" + from.getAccountID();
|
c.addressTCP = "steam:" + from.getAccountID();
|
||||||
|
|
||||||
Log.info("&bRecieved STEAM connection: @", c.addressTCP);
|
Log.info("&bReceived STEAM connection: @", c.addressTCP);
|
||||||
|
|
||||||
steamConnections.put(from.getAccountID(), con);
|
steamConnections.put(from.getAccountID(), con);
|
||||||
connections.add(con);
|
connections.add(con);
|
||||||
|
|||||||
@@ -283,9 +283,9 @@ public class SStats implements SteamUserStatsCallback{
|
|||||||
registerEvents();
|
registerEvents();
|
||||||
|
|
||||||
if(result != SteamResult.OK){
|
if(result != SteamResult.OK){
|
||||||
Log.err("Failed to recieve steam stats: @", result);
|
Log.err("Failed to receive steam stats: @", result);
|
||||||
}else{
|
}else{
|
||||||
Log.info("Recieved steam stats.");
|
Log.info("Received steam stats.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
org.gradle.daemon=true
|
org.gradle.daemon=true
|
||||||
org.gradle.jvmargs=-Xms256m -Xmx1024m
|
org.gradle.jvmargs=-Xms256m -Xmx1024m
|
||||||
archash=1fa9e78b9a7a83090ec942fbc3c3ff6d8a25ebcf
|
archash=df3ffe3e71df04b9aa08dac4b3fc0193dca4515b
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ public class ServerControl implements ApplicationListener{
|
|||||||
private static final int maxLogLength = 1024 * 512;
|
private static final int maxLogLength = 1024 * 512;
|
||||||
|
|
||||||
protected static String[] tags = {"&lc&fb[D]", "&lg&fb[I]", "&ly&fb[W]", "&lr&fb[E]", ""};
|
protected static String[] tags = {"&lc&fb[D]", "&lg&fb[I]", "&ly&fb[W]", "&lr&fb[E]", ""};
|
||||||
protected static DateTimeFormatter dateTime = DateTimeFormatter.ofPattern("MM-dd-yyyy | HH:mm:ss");
|
protected static DateTimeFormatter dateTime = DateTimeFormatter.ofPattern("MM-dd-yyyy HH:mm:ss");
|
||||||
|
|
||||||
private final CommandHandler handler = new CommandHandler("");
|
private final CommandHandler handler = new CommandHandler("");
|
||||||
private final Fi logFolder = Core.settings.getDataDirectory().child("logs/");
|
private final Fi logFolder = Core.settings.getDataDirectory().child("logs/");
|
||||||
@@ -49,6 +49,7 @@ public class ServerControl implements ApplicationListener{
|
|||||||
private Task lastTask;
|
private Task lastTask;
|
||||||
private Gamemode lastMode = Gamemode.survival;
|
private Gamemode lastMode = Gamemode.survival;
|
||||||
private @Nullable Map nextMapOverride;
|
private @Nullable Map nextMapOverride;
|
||||||
|
private Interval autosaveCount = new Interval();
|
||||||
|
|
||||||
private Thread socketThread;
|
private Thread socketThread;
|
||||||
private ServerSocket serverSocket;
|
private ServerSocket serverSocket;
|
||||||
@@ -153,12 +154,52 @@ public class ServerControl implements ApplicationListener{
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
//reset autosave on world load
|
||||||
|
Events.on(WorldLoadEvent.class, e -> {
|
||||||
|
autosaveCount.reset(0, Config.autosaveSpacing.num() * 60);
|
||||||
|
});
|
||||||
|
|
||||||
|
//autosave periodically
|
||||||
|
Events.on(Trigger.update, () -> {
|
||||||
|
if(state.isPlaying() && Config.autosave.bool()){
|
||||||
|
if(autosaveCount.get(Config.autosaveSpacing.num() * 60)){
|
||||||
|
int max = Config.autosaveAmount.num();
|
||||||
|
|
||||||
|
//use map file name to make sure it can be saved
|
||||||
|
String mapName = (state.map.file == null ? "unknown" : state.map.file.nameWithoutExtension()).replace(" ", "_");
|
||||||
|
String date = dateTime.format(LocalDateTime.now()).replace(" ", "_");
|
||||||
|
|
||||||
|
Seq<Fi> autosaves = saveDirectory.findAll(f -> f.name().startsWith("auto_"));
|
||||||
|
autosaves.sort(f -> -f.lastModified());
|
||||||
|
|
||||||
|
//delete older saves
|
||||||
|
if(autosaves.size >= max){
|
||||||
|
for(int i = max - 1; i < autosaves.size; i++){
|
||||||
|
autosaves.get(i).delete();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
String fileName = "auto_" + mapName + "_" + date + "." + saveExtension;
|
||||||
|
Fi file = saveDirectory.child(fileName);
|
||||||
|
info("&lbAutosaving...");
|
||||||
|
|
||||||
|
try{
|
||||||
|
SaveIO.save(file);
|
||||||
|
info("&lbAutosave completed.");
|
||||||
|
}catch(Throwable e){
|
||||||
|
err("Autosave failed.", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
Events.on(Trigger.socketConfigChanged, () -> {
|
Events.on(Trigger.socketConfigChanged, () -> {
|
||||||
toggleSocket(false);
|
toggleSocket(false);
|
||||||
toggleSocket(Config.socketInput.bool());
|
toggleSocket(Config.socketInput.bool());
|
||||||
});
|
});
|
||||||
|
|
||||||
Events.on(PlayEvent.class, e -> {
|
Events.on(PlayEvent.class, e -> {
|
||||||
|
|
||||||
try{
|
try{
|
||||||
JsonValue value = JsonIO.json().fromJson(null, Core.settings.getString("globalrules"));
|
JsonValue value = JsonIO.json().fromJson(null, Core.settings.getString("globalrules"));
|
||||||
JsonIO.json().readFields(state.rules, value);
|
JsonIO.json().readFields(state.rules, value);
|
||||||
@@ -948,7 +989,7 @@ public class ServerControl implements ApplicationListener{
|
|||||||
serverSocket.bind(new InetSocketAddress(Config.socketInputAddress.string(), Config.socketInputPort.num()));
|
serverSocket.bind(new InetSocketAddress(Config.socketInputAddress.string(), Config.socketInputPort.num()));
|
||||||
while(true){
|
while(true){
|
||||||
Socket client = serverSocket.accept();
|
Socket client = serverSocket.accept();
|
||||||
info("&lmRecieved command socket connection: &lb@", serverSocket.getLocalSocketAddress());
|
info("&lmReceived command socket connection: &lb@", serverSocket.getLocalSocketAddress());
|
||||||
BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));
|
BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));
|
||||||
socketOutput = new PrintWriter(client.getOutputStream(), true);
|
socketOutput = new PrintWriter(client.getOutputStream(), true);
|
||||||
String line;
|
String line;
|
||||||
|
|||||||