Merge branch 'master' into do-you-hear-the-voices-too

This commit is contained in:
Mythril382
2024-06-17 02:06:46 +08:00
committed by GitHub
67 changed files with 1295 additions and 1168 deletions

View File

@@ -1336,6 +1336,7 @@ rules.schematic = Schematics Allowed
rules.wavetimer = Wave Timer rules.wavetimer = Wave Timer
rules.wavesending = Wave Sending rules.wavesending = Wave Sending
rules.waves = Waves rules.waves = Waves
rules.airUseSpawns = Air units use spawn points
rules.attack = Attack Mode rules.attack = Attack Mode
rules.buildai = Base Builder AI rules.buildai = Base Builder AI
rules.buildaitier = Builder AI Tier rules.buildaitier = Builder AI Tier
@@ -2084,7 +2085,7 @@ block.force-projector.description = Creates a hexagonal force field around itsel
block.shock-mine.description = Releases electric arcs upon enemy unit contact. block.shock-mine.description = Releases electric arcs upon enemy unit contact.
block.conveyor.description = Transports items forward. block.conveyor.description = Transports items forward.
block.titanium-conveyor.description = Transports items forward. Faster than a standard conveyor. block.titanium-conveyor.description = Transports items forward. Faster than a standard conveyor.
block.plastanium-conveyor.description = Transports items forward in batches. Accepts items at the back, and unloads them in three directions at the front. Requires multiple loading and unloading points for peak throughput. block.plastanium-conveyor.description = Transports items forward in batches. Accepts items at the back, and unloads them in three directions at the front. Requires multiple loading and unloading points for peak throughput.
block.junction.description = Acts as a bridge for two crossing conveyor belts. block.junction.description = Acts as a bridge for two crossing conveyor belts.
block.bridge-conveyor.description = Transports items over terrain or buildings. block.bridge-conveyor.description = Transports items over terrain or buildings.
block.phase-conveyor.description = Instantly transports items over terrain or buildings. Longer range than the item bridge, but requires power. block.phase-conveyor.description = Instantly transports items over terrain or buildings. Longer range than the item bridge, but requires power.
@@ -2113,7 +2114,7 @@ block.power-node-large.description = An advanced power node with greater range.
block.surge-tower.description = A long-range power node with fewer available connections. block.surge-tower.description = A long-range power node with fewer available connections.
block.diode.description = Moves battery power in one direction, but only if the other side has less power stored. block.diode.description = Moves battery power in one direction, but only if the other side has less power stored.
block.battery.description = Stores power in times of surplus energy. Outputs power in times of deficit. block.battery.description = Stores power in times of surplus energy. Outputs power in times of deficit.
block.battery-large.description = Stores power in times of surplus energy. Outputs power in times of deficit. Higher capacity than a regular battery. block.battery-large.description = Stores power in times of surplus energy. Outputs power in times of deficit. Higher capacity than a regular battery.
block.combustion-generator.description = Generates power by burning flammable materials, such as coal. block.combustion-generator.description = Generates power by burning flammable materials, such as coal.
block.thermal-generator.description = Generates power when placed in hot locations. block.thermal-generator.description = Generates power when placed in hot locations.
block.steam-generator.description = Generates power by burning flammable materials and converting water to steam. block.steam-generator.description = Generates power by burning flammable materials and converting water to steam.
@@ -2163,7 +2164,7 @@ block.parallax.description = Fires a tractor beam that pulls in air targets, dam
block.tsunami.description = Fires powerful streams of liquid at enemies. Automatically extinguishes fires when supplied with water. block.tsunami.description = Fires powerful streams of liquid at enemies. Automatically extinguishes fires when supplied with water.
block.silicon-crucible.description = Refines silicon from sand and coal, using pyratite as an additional heat source. More efficient in hot locations. block.silicon-crucible.description = Refines silicon from sand and coal, using pyratite as an additional heat source. More efficient in hot locations.
block.disassembler.description = Separates slag into trace amounts of exotic mineral components at low efficiency. Can produce thorium. block.disassembler.description = Separates slag into trace amounts of exotic mineral components at low efficiency. Can produce thorium.
block.overdrive-dome.description = Increases the speed of nearby buildings. Requires phase fabric and silicon to operate. block.overdrive-dome.description = Increases the speed of nearby buildings. Requires phase fabric and silicon to operate.
block.payload-conveyor.description = Moves large payloads, such as units from factories. Magnetic. Usable in zero-G environments. block.payload-conveyor.description = Moves large payloads, such as units from factories. Magnetic. Usable in zero-G environments.
block.payload-router.description = Splits input payloads into 3 output directions. Functions as a sorter when a filter is set. Magnetic. Usable in zero-G environments. block.payload-router.description = Splits input payloads into 3 output directions. Functions as a sorter when a filter is set. Magnetic. Usable in zero-G environments.
block.ground-factory.description = Produces ground units. Output units can be used directly, or moved into reconstructors for upgrading. block.ground-factory.description = Produces ground units. Output units can be used directly, or moved into reconstructors for upgrading.
@@ -2340,7 +2341,7 @@ unit.emanate.description = Builds structures to defend the Acropolis core. Repai
lst.read = Read a number from a linked memory cell. lst.read = Read a number from a linked memory cell.
lst.write = Write a number to a linked memory cell. lst.write = Write a number to a linked memory cell.
lst.print = Add text to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used. lst.print = Add text to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used.
lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example" lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example"
lst.draw = Add an operation to the drawing buffer.\nDoes not display anything until [accent]Draw Flush[] is used. lst.draw = Add an operation to the drawing buffer.\nDoes not display anything until [accent]Draw Flush[] is used.
lst.drawflush = Flush queued [accent]Draw[] operations to a display. lst.drawflush = Flush queued [accent]Draw[] operations to a display.
lst.printflush = Flush queued [accent]Print[] operations to a message block. lst.printflush = Flush queued [accent]Print[] operations to a message block.
@@ -2574,7 +2575,7 @@ lenum.payenter = Enter/land on the payload block the unit is on.
lenum.flag = Numeric unit flag. lenum.flag = Numeric unit flag.
lenum.mine = Mine at a position. lenum.mine = Mine at a position.
lenum.build = Build a structure. lenum.build = Build a structure.
lenum.getblock = Fetch a building, floor and type at coordinates.\nUnit must be in range of position.\nSolid non-buildings will have the type [accent]@solid[]. lenum.getblock = Fetch building, floor and block type at coordinates.\nUnit must be in range of the position, otherwise null is returned.
lenum.within = Check if unit is near a position. lenum.within = Check if unit is near a position.
lenum.boost = Start/stop boosting. lenum.boost = Start/stop boosting.

View File

@@ -1304,6 +1304,7 @@ rules.schematic = Схемы Дазволены
rules.wavetimer = Інтэрвал хваляў rules.wavetimer = Інтэрвал хваляў
rules.wavesending = Адпраўка Хваль rules.wavesending = Адпраўка Хваль
rules.waves = Хвалі rules.waves = Хвалі
rules.airUseSpawns = Air units use spawn points
rules.attack = Рэжым атакі rules.attack = Рэжым атакі
rules.buildai = Base Builder AI rules.buildai = Base Builder AI
rules.buildaitier = Builder AI Tier rules.buildaitier = Builder AI Tier
@@ -2492,7 +2493,7 @@ lenum.payenter = Увайсці/прызямліцца на блок выгру
lenum.flag = Лічбавы сцяг адзінкі. lenum.flag = Лічбавы сцяг адзінкі.
lenum.mine = Дабываць у кардынатах. lenum.mine = Дабываць у кардынатах.
lenum.build = Пабудаваць структуру. lenum.build = Пабудаваць структуру.
lenum.getblock = Атрымаць будынак і яго тып у каардынатах.\nАдзінка павінна быць у дыяпазоне ад каардынат.\nЦвердыя не будынкі павінны мець тып [accent]@solid[]. lenum.getblock = Fetch building, floor and block type at coordinates.\nUnit must be in range of the position, otherwise null is returned.
lenum.within = Правярае калі адзінка знаходзіцца каля каардынат. lenum.within = Правярае калі адзінка знаходзіцца каля каардынат.
lenum.boost = Пачаць/перастаць узлятаць. lenum.boost = Пачаць/перастаць узлятаць.
lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle. lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle.

View File

@@ -1315,6 +1315,7 @@ rules.schematic = Позволена Употребата на Схеми
rules.wavetimer = Таймер за Вълни rules.wavetimer = Таймер за Вълни
rules.wavesending = Wave Sending rules.wavesending = Wave Sending
rules.waves = Вълни rules.waves = Вълни
rules.airUseSpawns = Air units use spawn points
rules.attack = Режим Атака rules.attack = Режим Атака
rules.buildai = Base Builder AI rules.buildai = Base Builder AI
rules.buildaitier = Builder AI Tier rules.buildaitier = Builder AI Tier
@@ -2522,7 +2523,7 @@ lenum.payenter = Enter/land on the payload block the unit is on.
lenum.flag = Числов флаг на единица. lenum.flag = Числов флаг на единица.
lenum.mine = Добивай ресурси от позиция. lenum.mine = Добивай ресурси от позиция.
lenum.build = Построй структура. lenum.build = Построй структура.
lenum.getblock = Преверете типът на постройката на дадени координати.\nПозицията трябва да е в обхвата на единицата.\nСолидни не-сгради ще имат типа [accent]@solid[]. lenum.getblock = Fetch building, floor and block type at coordinates.\nUnit must be in range of the position, otherwise null is returned.
lenum.within = Проверете дали дадена позиция е в обхват на единицата. lenum.within = Проверете дали дадена позиция е в обхват на единицата.
lenum.boost = Започни/Спри ускорението. lenum.boost = Започни/Спри ускорението.
lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle. lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle.

View File

@@ -57,7 +57,7 @@ mods.browser.sortstars = Ordena per valoració
schematic = Esquema schematic = Esquema
schematic.add = Desa lesquema… schematic.add = Desa lesquema…
schematics = Esquemes schematics = Esquemes
schematic.search = Cerca esquemes... schematic.search = Cerca esquemes
schematic.replace = Ja hi ha un esquema amb aquest nom. Voleu reemplaçar-lo? schematic.replace = Ja hi ha un esquema amb aquest nom. Voleu reemplaçar-lo?
schematic.exists = Ja hi ha un esquema amb aquest nom. schematic.exists = Ja hi ha un esquema amb aquest nom.
schematic.import = Importa un esquema schematic.import = Importa un esquema
@@ -148,8 +148,8 @@ mod.content = Contingut:
mod.delete.error = El mod no es pot esborrar. Potser el fitxer està en ús. mod.delete.error = El mod no es pot esborrar. Potser el fitxer està en ús.
mod.incompatiblegame = [red]Versió no compatible mod.incompatiblegame = [red]Versió no compatible
mod.incompatiblemod = [red]Incompatible mod.incompatiblemod = [red]Incompatible
mod.blacklisted = [red]Unsupported mod.blacklisted = [red]No suportat
mod.unmetdependencies = [red]Depèndencies sense resoldre mod.unmetdependencies = [red]Dependències sense resoldre
mod.erroredcontent = [scarlet]Errors del contingut mod.erroredcontent = [scarlet]Errors del contingut
mod.circulardependencies = [red]Dependències circulars mod.circulardependencies = [red]Dependències circulars
mod.incompletedependencies = [red]Dependències incompletes mod.incompletedependencies = [red]Dependències incompletes
@@ -348,7 +348,7 @@ command.rebuild = Reconstrueix
command.assist = Assisteix al jugador command.assist = Assisteix al jugador
command.move = Mou command.move = Mou
command.boost = Sobrevola command.boost = Sobrevola
command.enterPayload = Enter Payload Block command.enterPayload = Entra bloc
command.loadUnits = Carrega unitats command.loadUnits = Carrega unitats
command.loadBlocks = Carrega blocs command.loadBlocks = Carrega blocs
command.unloadPayload = Descarrega command.unloadPayload = Descarrega
@@ -383,7 +383,7 @@ pausebuilding = [accent][[{0}][] per a posar en pausa la construcció.
resumebuilding = [scarlet][[{0}][] per a reprendre la construcció. resumebuilding = [scarlet][[{0}][] per a reprendre la construcció.
enablebuilding = [scarlet][[{0}][] per a activar ledifici. enablebuilding = [scarlet][[{0}][] per a activar ledifici.
showui = La interfície gràfica està amagada.\nPremeu [accent][[{0}][] per a mostrar-la. showui = La interfície gràfica està amagada.\nPremeu [accent][[{0}][] per a mostrar-la.
commandmode.name = [accent]Command Mode commandmode.name = [accent]Mode dOrdres
commandmode.nounits = [no units] commandmode.nounits = [no units]
wave = [accent]Onada {0} wave = [accent]Onada {0}
wave.cap = [accent]Onada {0}/{1} wave.cap = [accent]Onada {0}/{1}
@@ -438,12 +438,12 @@ editor.waves = Onades
editor.rules = Regles editor.rules = Regles
editor.generation = Generació editor.generation = Generació
editor.objectives = Objectius editor.objectives = Objectius
editor.locales = Locale Bundles editor.locales = Paquet de traduccions
editor.worldprocessors = World Processors editor.worldprocessors = Processadors integrats
editor.worldprocessors.editname = Edit Name editor.worldprocessors.editname = Edita el nom
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below. editor.worldprocessors.none = [lightgray]No shan trobat blocs de processadors integrats!\nAfegiu-ne un a leditor de mapes o feu servir el botó \ue813 de sota.
editor.worldprocessors.nospace = No free space to place a world processor!\nDid you fill the map with structures? Why would you do this? editor.worldprocessors.nospace = No hi ha espai disponible per a posar un processador integrat!\nPotser el mapa està ple destructures.
editor.worldprocessors.delete.confirm = Are you sure you want to delete this world processor?\n\nIf it is surrounded by walls, it will be replaced by an environmental wall. editor.worldprocessors.delete.confirm = Esteu segur que voleu esborrar aquest processador integrat?\n\nSi està envoltat de murs, es reemplaçarà per un mur mediambiental.
editor.ingame = Edita des de la partida editor.ingame = Edita des de la partida
editor.playtest = Prova el mapa editor.playtest = Prova el mapa
editor.publish.workshop = Publica al Workshop editor.publish.workshop = Publica al Workshop
@@ -486,7 +486,7 @@ waves.sort.reverse = Ordre invers
waves.sort.begin = Comença waves.sort.begin = Comença
waves.sort.health = Salut waves.sort.health = Salut
waves.sort.type = Tipus waves.sort.type = Tipus
waves.search = Es busquen onades... waves.search = Es busquen onades
waves.filter = Filtre d'unitats waves.filter = Filtre d'unitats
waves.units.hide = Amaga-les totes waves.units.hide = Amaga-les totes
waves.units.show = Mostra-les totes waves.units.show = Mostra-les totes
@@ -500,7 +500,7 @@ editor.default = [lightgray]<Per defecte>
details = Detalls details = Detalls
edit = Edita edit = Edita
variables = Variables variables = Variables
logic.clear.confirm = Are you sure you want to clear all code from this processor? logic.clear.confirm = Esteu segur que voleu esborrar tot el codi daquest processador?
logic.globals = Built-in Variables logic.globals = Built-in Variables
editor.name = Nom: editor.name = Nom:
editor.spawn = Genera una unitat editor.spawn = Genera una unitat
@@ -513,7 +513,7 @@ editor.errorlegacy = Aquest mapa és massa antic i fa servir un format obsolet.
editor.errornot = No és un fitxer de mapa. editor.errornot = No és un fitxer de mapa.
editor.errorheader = Aquest fitxer de mapa no és vàlid o està corromput. editor.errorheader = Aquest fitxer de mapa no és vàlid o està corromput.
editor.errorname = No sha definit el nom del mapa. Esteu intentant carregar una partida desada? editor.errorname = No sha definit el nom del mapa. Esteu intentant carregar una partida desada?
editor.errorlocales = Error reading invalid locale bundles. editor.errorlocales = Sha produït un error mentre es llegia un paquet de traduccions no vàlid.
editor.update = Actualitza editor.update = Actualitza
editor.randomize = Assigna a latzar editor.randomize = Assigna a latzar
editor.moveup = Mou amunt editor.moveup = Mou amunt
@@ -525,7 +525,7 @@ editor.sectorgenerate = Generació del sector
editor.resize = Canvia la mida editor.resize = Canvia la mida
editor.loadmap = Carrega un mapa editor.loadmap = Carrega un mapa
editor.savemap = Desa el mapa editor.savemap = Desa el mapa
editor.savechanges = [scarlet]You have unsaved changes!\n\n[]Do you want to save them? editor.savechanges = [scarlet]Teniu canvis sense desar!\n\n[]Voleu desar-los?
editor.saved = Sha desat. editor.saved = Sha desat.
editor.save.noname = El mapa no té nom! Trieu-ne un des del menú «Informació del mapa». editor.save.noname = El mapa no té nom! Trieu-ne un des del menú «Informació del mapa».
editor.save.overwrite = El vostre mapa sobreescriu un mapa incorporat al joc! Trieu un nom diferent des del menú «Informació del mapa». editor.save.overwrite = El vostre mapa sobreescriu un mapa incorporat al joc! Trieu un nom diferent des del menú «Informació del mapa».
@@ -590,7 +590,7 @@ filter.clear = Neteja
filter.option.ignore = Ignora filter.option.ignore = Ignora
filter.scatter = Dispersió filter.scatter = Dispersió
filter.terrain = Terreny filter.terrain = Terreny
filter.logic = Logic filter.logic = Lògica
filter.option.scale = Escala filter.option.scale = Escala
filter.option.chance = Probabilitat filter.option.chance = Probabilitat
@@ -614,25 +614,25 @@ filter.option.floor2 = Terra secundari
filter.option.threshold2 = Llindar secundari filter.option.threshold2 = Llindar secundari
filter.option.radius = Radi filter.option.radius = Radi
filter.option.percentile = Percentil filter.option.percentile = Percentil
filter.option.code = Code filter.option.code = Codi
filter.option.loop = Loop filter.option.loop = Bucle
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) locales.info = Aquí, podeu afegir paquets de traducció per a idiomes específics al vostre mapa. En els paquets de traducció, cada propietat té un nom i un valor. Aquestes propietats les poden fer servir els processadors integrats i els objectius, fent servir els seus noms. Suporten el format de text (reemplaçant els marcadors de posició amb els seus valors corresponents).\n\n[cyan]Exemple de propietat:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
locales.deletelocale = Are you sure you want to delete this locale bundle? locales.deletelocale = Esteu segur que voleu esborrar aquesta traducció?
locales.applytoall = Apply Changes To All Locales locales.applytoall = Aplica els canvis a totes les traduccions
locales.addtoother = Add To Other Locales locales.addtoother = Afegeix a les altres traduccions
locales.rollback = Rollback to last applied locales.rollback = Restableix a lúltima aplicada
locales.filter = Property filter locales.filter = Propietat per al filtre
locales.searchname = Search name... locales.searchname = Cerca el nom…
locales.searchvalue = Search value... locales.searchvalue = Cerca el valor…
locales.searchlocale = Search locale... locales.searchlocale = Cerca la traducció…
locales.byname = By name locales.byname = Per nom
locales.byvalue = By value locales.byvalue = Per valor
locales.showcorrect = Show properties that are present in all locales and have unique values everywhere locales.showcorrect = Mostra les propietats que estan en totes les traduccions i tenen valors únics en totes
locales.showmissing = Show properties that are missing in some locales locales.showmissing = Mostra les propietats que fan falta en algunes traduccions
locales.showsame = Show properties that have same values in different locales locales.showsame = Mostra les propietats que tenen els mateixos valors en traduccions diferents
locales.viewproperty = View in all locales locales.viewproperty = Mostra en totes les traduccions
locales.viewing = Viewing property "{0}" locales.viewing = Es mostra la propietat «{0}»
locales.addicon = Add Icon locales.addicon = Afegeix una icona
width = Amplada: width = Amplada:
height = Alçada: height = Alçada:
@@ -688,7 +688,7 @@ marker.shape.name = Forma
marker.text.name = Text marker.text.name = Text
marker.line.name = Línia marker.line.name = Línia
marker.quad.name = Rectangle marker.quad.name = Rectangle
marker.texture.name = Texture marker.texture.name = Textura
marker.background = Fons marker.background = Fons
marker.outline = Contorn marker.outline = Contorn
@@ -860,7 +860,7 @@ sector.ravine.description = No es detecten nuclis enemics al sector, tot i que
sector.caldera-erekir.description = Els recursos que shan detectat al sector estan espargits per diverses illes.\nInvestigueu i establiu una xarxa de transport que faci servir drons. sector.caldera-erekir.description = Els recursos que shan detectat al sector estan espargits per diverses illes.\nInvestigueu i establiu una xarxa de transport que faci servir drons.
sector.stronghold.description = El campament enemic gran daquest sector guarda dipòsits importants de [accent]tori[].\nFeu-lo servir per a desenvolupar unitats i torretes de nivells més alts. sector.stronghold.description = El campament enemic gran daquest sector guarda dipòsits importants de [accent]tori[].\nFeu-lo servir per a desenvolupar unitats i torretes de nivells més alts.
sector.crevice.description = Lenemic enviarà un atac ferotge per a eliminar la vostra base del sector.\nPer a poder sobreviure, caldrà desenvolupar [accent]carburs[] i [accent]generadors pirolítics[]. sector.crevice.description = Lenemic enviarà un atac ferotge per a eliminar la vostra base del sector.\nPer a poder sobreviure, caldrà desenvolupar [accent]carburs[] i [accent]generadors pirolítics[].
sector.siege.description = En aquest sector hi ha dos canyons paral·lels que forçaran un atac per dues bandes.\nInvestigueu el [accent]cianogen[] per a poder crear unitats datac més fortes.\nAtenció: shan detectat missils de llarg abast. Els missils es poden abatre abans que impactin contra el seu objectiu. sector.siege.description = En aquest sector hi ha dos canyons paral·lels que forçaran un atac per dues bandes.\nInvestigueu el [accent]cianogen[] per a poder crear unitats datac més fortes.\nAtenció: shan detectat míssils de llarg abast. Els míssils es poden abatre abans que impactin contra el seu objectiu.
sector.crossroads.description = Les bases enemigues del sector shan establert en diferents tipus de terreny. Investigueu unitats diferents per a adaptar els atacs.\nA més a més, algunes bases estan protegides per escuts. Esbrineu don treuen lenergia. sector.crossroads.description = Les bases enemigues del sector shan establert en diferents tipus de terreny. Investigueu unitats diferents per a adaptar els atacs.\nA més a més, algunes bases estan protegides per escuts. Esbrineu don treuen lenergia.
sector.karst.description = Aquest sector és ric en recursos, però lenemic latacarà tan aviat com hi aterri un nucli.\nAprofiteu els recursos i recerqueu el [accent]teixit de fase[]. sector.karst.description = Aquest sector és ric en recursos, però lenemic latacarà tan aviat com hi aterri un nucli.\nAprofiteu els recursos i recerqueu el [accent]teixit de fase[].
sector.origin.description = El sector final amb una presència enemiga important.\nProbablement no queden oportunitats de recerca. Centreu-vos en destruir els nuclis enemics. sector.origin.description = El sector final amb una presència enemiga important.\nProbablement no queden oportunitats de recerca. Centreu-vos en destruir els nuclis enemics.
@@ -985,7 +985,7 @@ stat.abilities = Habilitats
stat.canboost = Pot sobrevolar. stat.canboost = Pot sobrevolar.
stat.flying = Està volant. stat.flying = Està volant.
stat.ammouse = Ús de munició stat.ammouse = Ús de munició
stat.ammocapacity = Ammo Capacity stat.ammocapacity = Capacitat de munició
stat.damagemultiplier = Multiplicador de dany stat.damagemultiplier = Multiplicador de dany
stat.healthmultiplier = Multiplicador de salut stat.healthmultiplier = Multiplicador de salut
stat.speedmultiplier = Multiplicador de velocitat stat.speedmultiplier = Multiplicador de velocitat
@@ -996,46 +996,46 @@ stat.immunities = Immunitats
stat.healing = Reparador stat.healing = Reparador
ability.forcefield = Camp de força ability.forcefield = Camp de força
ability.forcefield.description = Projects a force shield that absorbs bullets ability.forcefield.description = Projecta un camp de força que absorbeix les bales.
ability.repairfield = Repara el camp de força ability.repairfield = Repara el camp de força
ability.repairfield.description = Repairs nearby units ability.repairfield.description = Repara les unitats properes.
ability.statusfield = Estat del camp ability.statusfield = Estat del camp
ability.statusfield.description = Applies a status effect to nearby units ability.statusfield.description = Aplica un efecte destat a les unitats properes.
ability.unitspawn = Fàbrica ability.unitspawn = Fàbrica
ability.unitspawn.description = Constructs units ability.unitspawn.description = Construeix unitats.
ability.shieldregenfield = Regenerador de camps de força ability.shieldregenfield = Regenerador de camps de força
ability.shieldregenfield.description = Regenerates shields of nearby units ability.shieldregenfield.description = Regenera els escuts dunitats properes.
ability.movelightning = Moviment llampec ability.movelightning = Moviment llampec
ability.movelightning.description = Releases lightning while moving ability.movelightning.description = Solta un llamp mentre es mou.
ability.armorplate = Armor Plate ability.armorplate = Armadura de plaques
ability.armorplate.description = Reduces damage taken while shooting ability.armorplate.description = Redueix el dany rebut mentre dispara.
ability.shieldarc = Escut de descàrregues ability.shieldarc = Escut de descàrregues
ability.shieldarc.description = Projects a force shield in an arc that absorbs bullets ability.shieldarc.description = Projecta un escut de força en un arc que absorbeix les bales.
ability.suppressionfield = Regen Suppression Field ability.suppressionfield = Regenera el camp de supressió
ability.suppressionfield.description = Stops nearby repair buildings ability.suppressionfield.description = Para els edificis de reparació propers.
ability.energyfield = Camp de força ability.energyfield = Camp de força
ability.energyfield.description = Zaps nearby enemies ability.energyfield.description = Ataca els enemics propers.
ability.energyfield.healdescription = Zaps nearby enemies and heals allies ability.energyfield.healdescription = Ataca els enemics propers i cura els aliats.
ability.regen = Regeneració ability.regen = Regeneració
ability.regen.description = Regenerates own health over time ability.regen.description = Regenera la seva salut amb el pas del temps.
ability.liquidregen = Liquid Absorption ability.liquidregen = Absorció de líquids
ability.liquidregen.description = Absorbs liquid to heal itself ability.liquidregen.description = Absorbeix líquids per a curar-se.
ability.spawndeath = Death Spawns ability.spawndeath = Aparicions mortals
ability.spawndeath.description = Releases units on death ability.spawndeath.description = Allibera unitats quan mor.
ability.liquidexplode = Death Spillage ability.liquidexplode = Vessament mortal
ability.liquidexplode.description = Spills liquid on death ability.liquidexplode.description = Vessa líquid quan mor.
ability.stat.firingrate = [stat]{0}/sec[lightgray] firing rate ability.stat.firingrate = [stat]{0}/seg[lightgray] de cadència de tir
ability.stat.regen = [stat]{0}[lightgray] health/sec ability.stat.regen = [stat]{0}[lightgray] de salut/seg
ability.stat.shield = [stat]{0}[lightgray] shield ability.stat.shield = [stat]{0}[lightgray] descut
ability.stat.repairspeed = [stat]{0}/sec[lightgray] repair speed ability.stat.repairspeed = [stat]{0}/seg[lightgray] de velocitat de reparació
ability.stat.slurpheal = [stat]{0}[lightgray] health/liquid unit ability.stat.slurpheal = [stat]{0}[lightgray] de salut/unitat de líquid
ability.stat.cooldown = [stat]{0} sec[lightgray] cooldown ability.stat.cooldown = [stat]{0} seg[lightgray] de temps de refredament
ability.stat.maxtargets = [stat]{0}[lightgray] max targets ability.stat.maxtargets = [stat]{0}[lightgray] objectius com a màxim
ability.stat.sametypehealmultiplier = [stat]{0}%[lightgray] same type repair amount ability.stat.sametypehealmultiplier = [stat]{0} %[lightgray] a la quantitat de reparació del mateix tipus
ability.stat.damagereduction = [stat]{0}%[lightgray] damage reduction ability.stat.damagereduction = [stat]{0} %[lightgray] de reducció del dany
ability.stat.minspeed = [stat]{0} tiles/sec[lightgray] min speed ability.stat.minspeed = [stat]{0} caselles/seg[lightgray] de velocitat mín.
ability.stat.duration = [stat]{0} sec[lightgray] duration ability.stat.duration = [stat]{0} seg[lightgray] de duració
ability.stat.buildtime = [stat]{0} sec[lightgray] build time ability.stat.buildtime = [stat]{0} seg[lightgray] de temps de construcció
bar.onlycoredeposit = Només es permet depositar al nucli. bar.onlycoredeposit = Només es permet depositar al nucli.
bar.drilltierreq = Cal una perforadora millor. bar.drilltierreq = Cal una perforadora millor.
@@ -1075,7 +1075,7 @@ bullet.splashdamage = [stat]{0}[lightgray] de dany a làrea ~[stat] {1}[light
bullet.incendiary = [stat]incendiari bullet.incendiary = [stat]incendiari
bullet.homing = [stat]munició guiada bullet.homing = [stat]munició guiada
bullet.armorpierce = [stat]perforador darmadures bullet.armorpierce = [stat]perforador darmadures
bullet.maxdamagefraction = [stat]{0}%[lightgray] damage limit bullet.maxdamagefraction = [stat]{0}%[lightgray] de dany límit
bullet.suppression = [stat]Supressió de reparacions cada {0} s[lightgray] ~ [stat]{1}[lightgray] caselles bullet.suppression = [stat]Supressió de reparacions cada {0} s[lightgray] ~ [stat]{1}[lightgray] caselles
bullet.interval = [stat]Interval de bales de {0}/s[lightgray]: bullet.interval = [stat]Interval de bales de {0}/s[lightgray]:
bullet.frags = [stat]{0}[lightgray]× de bales de fragmentació: bullet.frags = [stat]{0}[lightgray]× de bales de fragmentació:
@@ -1111,7 +1111,7 @@ unit.items = elements
unit.thousands = k unit.thousands = k
unit.millions = M unit.millions = M
unit.billions = kM unit.billions = kM
unit.shots = shots unit.shots = dispars
unit.pershot = /dispar unit.pershot = /dispar
category.purpose = Funció category.purpose = Funció
category.general = General category.general = General
@@ -1232,16 +1232,16 @@ keybind.unit_stance_hold_fire.name = Comportament: Mantén el foc
keybind.unit_stance_pursue_target.name = Comportament: Persegueix lobjectiu keybind.unit_stance_pursue_target.name = Comportament: Persegueix lobjectiu
keybind.unit_stance_patrol.name = Comportament: Patrulla keybind.unit_stance_patrol.name = Comportament: Patrulla
keybind.unit_stance_ram.name = Comportament: Senzill keybind.unit_stance_ram.name = Comportament: Senzill
keybind.unit_command_move.name = Unit Command: Move keybind.unit_command_move.name = Ordre dunitat: Mou
keybind.unit_command_repair.name = Unit Command: Repair keybind.unit_command_repair.name = Ordre dunitat: Repara
keybind.unit_command_rebuild.name = Unit Command: Rebuild keybind.unit_command_rebuild.name = Ordre dunitat: Reconstrueix
keybind.unit_command_assist.name = Unit Command: Assist keybind.unit_command_assist.name = Ordre dunitat: Assisteix
keybind.unit_command_mine.name = Unit Command: Mine keybind.unit_command_mine.name = Ordre dunitat: Extrau
keybind.unit_command_boost.name = Unit Command: Boost keybind.unit_command_boost.name = Ordre dunitat: Sobrevola
keybind.unit_command_load_units.name = Unit Command: Load Units keybind.unit_command_load_units.name = Ordre dunitat: Carrega unitats
keybind.unit_command_load_blocks.name = Unit Command: Load Blocks keybind.unit_command_load_blocks.name = Ordre dunitat: Carrega blocs
keybind.unit_command_unload_payload.name = Unit Command: Unload Payload keybind.unit_command_unload_payload.name = Ordre dunitat: Descarrega blocs
keybind.unit_command_enter_payload.name = Unit Command: Enter Payload keybind.unit_command_enter_payload.name = Ordre dunitat: Entra blocs
keybind.rebuild_select.name = Reconstrueix la regió keybind.rebuild_select.name = Reconstrueix la regió
keybind.schematic_select.name = Selecciona una regió keybind.schematic_select.name = Selecciona una regió
keybind.schematic_menu.name = Menú de plànols keybind.schematic_menu.name = Menú de plànols
@@ -1310,7 +1310,7 @@ rules.hidebannedblocks = Amaga els blocs no permesos
rules.infiniteresources = Recursos infinits rules.infiniteresources = Recursos infinits
rules.onlydepositcore = Al nucli només es poden dipositar recursos rules.onlydepositcore = Al nucli només es poden dipositar recursos
rules.derelictrepair = Allow Derelict Block Repair rules.derelictrepair = Permet la reparació dels blocs en ruïnes
rules.reactorexplosions = Explosions als reactors rules.reactorexplosions = Explosions als reactors
rules.coreincinerates = El nucli incinera els excedents rules.coreincinerates = El nucli incinera els excedents
rules.disableworldprocessors = Desactiva els processadors integrats rules.disableworldprocessors = Desactiva els processadors integrats
@@ -1318,6 +1318,7 @@ rules.schematic = Permetre lús desquemes
rules.wavetimer = Temporitzador donades rules.wavetimer = Temporitzador donades
rules.wavesending = Enviament donades rules.wavesending = Enviament donades
rules.waves = Onades rules.waves = Onades
rules.airUseSpawns = Air units use spawn points
rules.attack = Mode datac rules.attack = Mode datac
rules.buildai = IA constructora de bases rules.buildai = IA constructora de bases
rules.buildaitier = Nivell de construcció de la IA rules.buildaitier = Nivell de construcció de la IA
@@ -1339,7 +1340,7 @@ rules.unitdamagemultiplier = Multiplicador del dany de les unitats
rules.unitcrashdamagemultiplier = Multiplicador del dany de xoc de les unitats rules.unitcrashdamagemultiplier = Multiplicador del dany de xoc de les unitats
rules.solarmultiplier = Multiplicador de lenergia solar rules.solarmultiplier = Multiplicador de lenergia solar
rules.unitcapvariable = Els nuclis contribueixen al límit dunitats rules.unitcapvariable = Els nuclis contribueixen al límit dunitats
rules.unitpayloadsexplode = Carried Payloads Explode With The Unit rules.unitpayloadsexplode = Els blocs carregats exploten juntament amb la unitat
rules.unitcap = Capacitat base dunitats rules.unitcap = Capacitat base dunitats
rules.limitarea = Limita làrea del mapa rules.limitarea = Limita làrea del mapa
rules.enemycorebuildradius = Radi de no construcció del nucli enemic:[lightgray] (caselles) rules.enemycorebuildradius = Radi de no construcció del nucli enemic:[lightgray] (caselles)
@@ -1372,8 +1373,8 @@ rules.weather = Estat meteorològic
rules.weather.frequency = Freqüència: rules.weather.frequency = Freqüència:
rules.weather.always = Sempre rules.weather.always = Sempre
rules.weather.duration = Durada: rules.weather.duration = Durada:
rules.placerangecheck.info = Prevents players from placing anything near enemy buildings. When trying to place a turret, the range is increased, so the turret will not be able to reach the enemy. rules.placerangecheck.info = No es permet que els jugadors puguin posar res a prop dels edificis enemics. Quan sintenta posar una torreta, labast augmenta i la torreta no podrà arribar a lenemic.
rules.onlydepositcore.info = Prevents units from depositing items into any buildings except cores. rules.onlydepositcore.info = No es permet que les unitats deixin elements a dins dels edificis excepte els nuclis.
content.item.name = Elements content.item.name = Elements
content.liquid.name = Fluids content.liquid.name = Fluids
@@ -1860,7 +1861,7 @@ block.diffuse.name = Diffuse
block.basic-assembler-module.name = Mòdul de muntatge bàsic block.basic-assembler-module.name = Mòdul de muntatge bàsic
block.smite.name = Smite block.smite.name = Smite
block.malign.name = Maligne block.malign.name = Maligne
block.flux-reactor.name = Reactor de fluxe block.flux-reactor.name = Reactor de flux
block.neoplasia-reactor.name = Reactor de neoplàsia block.neoplasia-reactor.name = Reactor de neoplàsia
block.switch.name = Interruptor block.switch.name = Interruptor
@@ -1966,7 +1967,7 @@ aegis.tungsten = Tungsten can be mined using an [accent]impact drill[].\nThis st
split.pickup = La unitat nucli pot recollir alguns blocs.\nRecolliu aquest [accent]contenidor[] i poseu-lo al [accent]transportador de blocs a distància[].\n(Les tecles per defecte són [ i ] per a recollir i deixar). split.pickup = La unitat nucli pot recollir alguns blocs.\nRecolliu aquest [accent]contenidor[] i poseu-lo al [accent]transportador de blocs a distància[].\n(Les tecles per defecte són [ i ] per a recollir i deixar).
split.pickup.mobile = La unitat nucli pot recollir alguns blocs.\nRecolliu aquest [accent]contenidor[] i poseu-lo al [accent]transportador de blocs a distància[].\n(Per a deixar o recollir alguna cosa, premeu-la uns segons). split.pickup.mobile = La unitat nucli pot recollir alguns blocs.\nRecolliu aquest [accent]contenidor[] i poseu-lo al [accent]transportador de blocs a distància[].\n(Per a deixar o recollir alguna cosa, premeu-la uns segons).
split.acquire = Heu daconseguir una mica de tungstè per a construir unitats. split.acquire = Heu daconseguir una mica de tungstè per a construir unitats.
split.build = Les unitats shan de transportar a laltra banda del mur.\nConstruïu dos [accent]transportadors de blocs a distància[], un a cada banda del mur.\nPer establir-hi un enllaç, seleccioneu-ne un i després seleecionant laltre. split.build = Les unitats shan de transportar a laltra banda del mur.\nConstruïu dos [accent]transportadors de blocs a distància[], un a cada banda del mur.\nPer establir-hi un enllaç, seleccioneu-ne un i després seleccionant laltre.
split.container = Igual que els contenidors, les unitats també es poden transportar amb els [accent]transportadors de blocs a distància[].\nConstruïu una fabricadora dunitats al costat dun transportadors de blocs a distància per a carregar-les i enviar-les més enllà del mur per a atacar la base enemiga. split.container = Igual que els contenidors, les unitats també es poden transportar amb els [accent]transportadors de blocs a distància[].\nConstruïu una fabricadora dunitats al costat dun transportadors de blocs a distància per a carregar-les i enviar-les més enllà del mur per a atacar la base enemiga.
item.copper.description = Sempra en molts tipus de construccions i munició. item.copper.description = Sempra en molts tipus de construccions i munició.
@@ -1990,10 +1991,10 @@ item.spore-pod.description = Es pot convertir en petroli, explosius i combustibl
item.spore-pod.details = Espores. Probablement, es tracta duna forma de vida sintètica. Emet gasos tòxics per a altres formes de vida i és molt invasiva. Sota certes condicions, són molt inflamables. item.spore-pod.details = Espores. Probablement, es tracta duna forma de vida sintètica. Emet gasos tòxics per a altres formes de vida i és molt invasiva. Sota certes condicions, són molt inflamables.
item.blast-compound.description = Sempra en bombes i munició explosiva. item.blast-compound.description = Sempra en bombes i munició explosiva.
item.pyratite.description = Sempra en armes incendiàries i generadors a combustió. item.pyratite.description = Sempra en armes incendiàries i generadors a combustió.
item.beryllium.description = Sempra en molts tipus de construccions i municó dErekir. item.beryllium.description = Sempra en molts tipus de construccions i munició dErekir.
item.tungsten.description = Sempra en perforadores, armadures i munició. Sen necessita per construir estructures més avançades. item.tungsten.description = Sempra en perforadores, armadures i munició. Sen necessita per construir estructures més avançades.
item.oxide.description = Sempra com a conductor de lenergia tèrmica i també es fa servir com a aïllant elèctric. item.oxide.description = Sempra com a conductor de lenergia tèrmica i també es fa servir com a aïllant elèctric.
item.carbide.description = Es fa servir en estrutures avançades, unitats pesants i munició. item.carbide.description = Es fa servir en estructures avançades, unitats pesants i munició.
liquid.water.description = Sempra per a refredar màquines i processar residus. liquid.water.description = Sempra per a refredar màquines i processar residus.
liquid.slag.description = Es refina en separadors per a obtenir-ne diferents metalls. També es fa servir com a munició líquida en torretes. liquid.slag.description = Es refina en separadors per a obtenir-ne diferents metalls. També es fa servir com a munició líquida en torretes.
@@ -2004,7 +2005,7 @@ liquid.ozone.description = Es fa servir com a agent oxidant en producció de mat
liquid.hydrogen.description = Es fa servir en extracció de recursos, producció dunitats i reparació destructures. Inflamable. liquid.hydrogen.description = Es fa servir en extracció de recursos, producció dunitats i reparació destructures. Inflamable.
liquid.cyanogen.description = Es fa servir per a munició, construcció dunitats avançades i diverses reaccions en blocs avançats. Molt inflamable. liquid.cyanogen.description = Es fa servir per a munició, construcció dunitats avançades i diverses reaccions en blocs avançats. Molt inflamable.
liquid.nitrogen.description = Es fa servir per a extraure recursos, obtenció de gas i producció dunitats. Inert. liquid.nitrogen.description = Es fa servir per a extraure recursos, obtenció de gas i producció dunitats. Inert.
liquid.neoplasm.description = Un subproducte biològic perillís del reactor de neoplàsia. Sestén de pressa a altres blocs adjacents que continguin aigua que toca, fent-los malbé. Viscós. liquid.neoplasm.description = Un subproducte biològic perillós del reactor de neoplàsia. Sestén de pressa a altres blocs adjacents que continguin aigua que toca, fent-los malbé. Viscós.
liquid.neoplasm.details = Neoplasma. Una massa incontrolable de cèl·lules sintètiques que es divideixen molt de pressa amb una consistència fangosa. Resisteix temperatures altes. Extremadament perillosa per a estructures amb aigua.\n\nMassa complexa i inestable per a fer-ne una anàlisi estàndard. Aplicacions potencials desconegudes. Es recomana incinerar-la en piscines de residus. liquid.neoplasm.details = Neoplasma. Una massa incontrolable de cèl·lules sintètiques que es divideixen molt de pressa amb una consistència fangosa. Resisteix temperatures altes. Extremadament perillosa per a estructures amb aigua.\n\nMassa complexa i inestable per a fer-ne una anàlisi estàndard. Aplicacions potencials desconegudes. Es recomana incinerar-la en piscines de residus.
block.derelict = \uf77e [lightgray]En ruïnes block.derelict = \uf77e [lightgray]En ruïnes
@@ -2295,14 +2296,14 @@ unit.vanquish.description = Dispara munició de gran calibre perforadora i de di
unit.conquer.description = Dispara ràfegues llargues de bales als objectius enemics. unit.conquer.description = Dispara ràfegues llargues de bales als objectius enemics.
unit.merui.description = Dispara artilleria de llarg abast als objectius enemics. Pot travessar la majoria de terrenys. unit.merui.description = Dispara artilleria de llarg abast als objectius enemics. Pot travessar la majoria de terrenys.
unit.cleroi.description = Dispara parelles de projectils als objectius enemics. Busca projectils enemics amb torretes de punt de defensa. Pot travessar la majoria de terrenys. unit.cleroi.description = Dispara parelles de projectils als objectius enemics. Busca projectils enemics amb torretes de punt de defensa. Pot travessar la majoria de terrenys.
unit.anthicus.description = Dispara missils dirigits de llarg abast als objectius enemics. Pot travessar la majoria de terrenys. unit.anthicus.description = Dispara míssils dirigits de llarg abast als objectius enemics. Pot travessar la majoria de terrenys.
unit.tecta.description = Dispara missils de plasma dirigits als objectius enemics. Es protegeix a si mateix amb un escut direccional. Pot travessar la majoria de terrenys. unit.tecta.description = Dispara míssils de plasma dirigits als objectius enemics. Es protegeix a si mateix amb un escut direccional. Pot travessar la majoria de terrenys.
unit.collaris.description = Dispara artilleria de fragmentació de llarg abast als objectius enemics. Pot travessar la majoria de terrenys. unit.collaris.description = Dispara artilleria de fragmentació de llarg abast als objectius enemics. Pot travessar la majoria de terrenys.
unit.elude.description = Dispara parelles de bales dirigides als objectius enemics. Pot volar sobre les masses de líquid. unit.elude.description = Dispara parelles de bales dirigides als objectius enemics. Pot volar sobre les masses de líquid.
unit.avert.description = Dispara parelles de bales que torcen la trajectòria als objectius enemics. unit.avert.description = Dispara parelles de bales que torcen la trajectòria als objectius enemics.
unit.obviate.description = Dispara parelles de boles elèctriques als objectius enemics. unit.obviate.description = Dispara parelles de boles elèctriques als objectius enemics.
unit.quell.description = Dispara missils de llarg abast dirigits als objectius enemics. Evita la reparació de les estructures enemigues per part dels blocs de reparació. unit.quell.description = Dispara míssils de llarg abast dirigits als objectius enemics. Evita la reparació de les estructures enemigues per part dels blocs de reparació.
unit.disrupt.description = Dispara missils de llarg abast dirigits i supressors als objecius enemics. Evita la reparació de les estructures enemigues per part dels blocs de reparació. unit.disrupt.description = Dispara míssils de llarg abast dirigits i supressors als objectius enemics. Evita la reparació de les estructures enemigues per part dels blocs de reparació.
unit.evoke.description = Construeix estructures per defensar el nucli Bastió. Repara les estructures amb un raig. unit.evoke.description = Construeix estructures per defensar el nucli Bastió. Repara les estructures amb un raig.
unit.incite.description = Construeix estructures per defensar el nucli Ciutadella. Repara les estructures amb un raig. unit.incite.description = Construeix estructures per defensar el nucli Ciutadella. Repara les estructures amb un raig.
unit.emanate.description = Construeix estructures per defensar el nucli Acròpolis. Repara les estructures amb un raig. unit.emanate.description = Construeix estructures per defensar el nucli Acròpolis. Repara les estructures amb un raig.
@@ -2310,7 +2311,7 @@ unit.emanate.description = Construeix estructures per defensar el nucli Acròpol
lst.read = Llegeix un nombre des duna cel·la de memòria connectada. lst.read = Llegeix un nombre des duna cel·la de memòria connectada.
lst.write = Escriu un nombre en una cel·la de memòria connectada. lst.write = Escriu un nombre en una cel·la de memòria connectada.
lst.print = Afegeix un text a la cua dimpressió.\nEl text no es mostrarà fins que sapliqui «[accent]Print Flush[]». lst.print = Afegeix un text a la cua dimpressió.\nEl text no es mostrarà fins que sapliqui «[accent]Print Flush[]».
lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example" lst.format = Reemplaça el següent marcador de posició a la cua dimpressió amb un valor.\nNo fa res si el patró del marcador no és vàlid.\nPatró del marcador: "{[accent]número 0-9[]}"\nExemple:\n[accent]print "test {0}"\nformat "example"
lst.draw = Afegeix una instrucció de dibuix a la cua corresponent.\nEl resultat no es mostrarà fins que sapliqui «[accent]Draw Flush[]». lst.draw = Afegeix una instrucció de dibuix a la cua corresponent.\nEl resultat no es mostrarà fins que sapliqui «[accent]Draw Flush[]».
lst.drawflush = Executa les operacions de la cua de dibuix al monitor lògic. lst.drawflush = Executa les operacions de la cua de dibuix al monitor lògic.
lst.printflush = Executa les operacions de la cua dimpressió al monitor lògic. lst.printflush = Executa les operacions de la cua dimpressió al monitor lògic.
@@ -2333,8 +2334,8 @@ lst.getblock = Obtén les dades dun bloc en qualsevol posició.
lst.setblock = Estableix les dades dun bloc en qualsevol posició. lst.setblock = Estableix les dades dun bloc en qualsevol posició.
lst.spawnunit = Fes aparèixer una unitat en una posició. lst.spawnunit = Fes aparèixer una unitat en una posició.
lst.applystatus = Aplica o esborra un efecte destat duna unitat. lst.applystatus = Aplica o esborra un efecte destat duna unitat.
lst.weathersense = Check if a type of weather is active. lst.weathersense = Comprova si un tipus de temps meteorològics està actiu.
lst.weatherset = Set the current state of a type of weather. lst.weatherset = Estableix lestat actual per a un tipus de temps meteorològic.
lst.spawnwave = Simula laparició duna onada enemiga en una posició arbitrària.\nEl comptador donades no sincrementarà. lst.spawnwave = Simula laparició duna onada enemiga en una posició arbitrària.\nEl comptador donades no sincrementarà.
lst.explosion = Crea una explosió en una posició. lst.explosion = Crea una explosió en una posició.
lst.setrate = Estableix la velocitat dexecució del processador en instruccions/tic. lst.setrate = Estableix la velocitat dexecució del processador en instruccions/tic.
@@ -2346,47 +2347,47 @@ lst.cutscene = Manipula la càmera del jugador.
lst.setflag = Estableix un senyal global que es podrà llegir en tots els processadors. lst.setflag = Estableix un senyal global que es podrà llegir en tots els processadors.
lst.getflag = Obtén un senyal global. lst.getflag = Obtén un senyal global.
lst.setprop = Estableix una propietat duna unitat o estructura. lst.setprop = Estableix una propietat duna unitat o estructura.
lst.effect = Crea un efecte de particula. lst.effect = Crea un efecte de partícula.
lst.sync = Sincronitza una variable a través de la xarxa.\nSinvoca com a molt 10 vegades per segon. lst.sync = Sincronitza una variable a través de la xarxa.\nSinvoca com a molt 10 vegades per segon.
lst.makemarker = Crea una marca lògica al món.\nSha de donar un ID per a identificar-la.\nEs poden establir fins a 20.000 marcadors per món. lst.makemarker = Crea una marca lògica al món.\nSha de donar un ID per a identificar-la.\nEs poden establir fins a 20.000 marcadors per món.
lst.setmarker = Estableix una propietat per a la marca.\nLID que es faci servir ha de ser el mateix que el de la instrucció de crear la marca. lst.setmarker = Estableix una propietat per a la marca.\nLID que es faci servir ha de ser el mateix que el de la instrucció de crear la marca.
lst.localeprint = Add map locale property value to the text buffer.\nTo set map locale bundles in map editor, check [accent]Map Info > Locale Bundles[].\nIf client is a mobile device, tries to print a property ending in ".mobile" first. lst.localeprint = Afegeix el valor duna propietat de la traducció dun mapa a la cua dimpressió.\nPer a establir paquets de traducció de mapes a leditor de mapes, comproveu [accent]Informació del mapa > Paquets de traducció[].\nSi el client és un dispositiu mòbil, primer intenta imprimir una propietat que acabi en «.mobile».
lglobal.false = 0 lglobal.false = 0
lglobal.true = 1 lglobal.true = 1
lglobal.null = null lglobal.null = null
lglobal.@pi = The mathematical constant pi (3.141...) lglobal.@pi = La constant matemàtica pi (3.141)
lglobal.@e = The mathematical constant e (2.718...) lglobal.@e = La constant matemàtica e (2.718)
lglobal.@degToRad = Multiply by this number to convert degrees to radians lglobal.@degToRad = Multiplica per aquest nombre per a convertir graus sexagesimals en radians.
lglobal.@radToDeg = Multiply by this number to convert radians to degrees lglobal.@radToDeg = Multiplica per aquest nombre per a convertir radians en graus sexagesimals.
lglobal.@time = Playtime of current save, in milliseconds lglobal.@time = Temps de joc de la partida actual, en mil·lisegons
lglobal.@tick = Playtime of current save, in ticks (1 second = 60 ticks) lglobal.@tick = Temps de joc de la partida actual, en tics (1 segon = 60 tics)
lglobal.@second = Playtime of current save, in seconds lglobal.@second = Temps de joc de la partida actual, en segons
lglobal.@minute = Playtime of current save, in minutes lglobal.@minute = Temps de joc de la partida actual, en minuts
lglobal.@waveNumber = Current wave number, if waves are enabled lglobal.@waveNumber = Nombre de lonada actual, si les onades estan activades
lglobal.@waveTime = Countdown timer for waves, in seconds lglobal.@waveTime = Comptador enrere de les onades, en segons
lglobal.@mapw = Map width in tiles lglobal.@mapw = Amplada del mapa en caselles
lglobal.@maph = Map height in tiles lglobal.@maph = Alçària del mapa en caselles
lglobal.sectionMap = Map lglobal.sectionMap = Mapa
lglobal.sectionGeneral = General lglobal.sectionGeneral = General
lglobal.sectionNetwork = Network/Clientside [World Processor Only] lglobal.sectionNetwork = Xarxa/Client [Només processador integrat]
lglobal.sectionProcessor = Processor lglobal.sectionProcessor = Processador
lglobal.sectionLookup = Lookup lglobal.sectionLookup = Lookup
lglobal.@this = The logic block executing the code lglobal.@this = El bloc lògic que executa el codi
lglobal.@thisx = X coordinate of block executing the code lglobal.@thisx = Coordenada X del bloc que executa el codi
lglobal.@thisy = Y coordinate of block executing the code lglobal.@thisy = Coordenada Y del bloc que executa el codi
lglobal.@links = Total number of blocks linked to this processors lglobal.@links = Quantitat total de blocs enllaçats amb aquest processador
lglobal.@ipt = Execution speed of the processor in instructions per tick (60 ticks = 1 second) lglobal.@ipt = Velocitat dexecució del processador en instruccions per tic (60 tics = 1 segon)
lglobal.@unitCount = Total number of types of unit content in the game; used with the lookup instruction lglobal.@unitCount = Nombre total de tipus de continguts dunitat a la partida; es fa servir amb la instrucció lookup.
lglobal.@blockCount = Total number of types of block content in the game; used with the lookup instruction lglobal.@blockCount = Nombre total de tipus de continguts de bloc a la partida; es fa servir amb la instrucció lookup.
lglobal.@itemCount = Total number of types of item content in the game; used with the lookup instruction lglobal.@itemCount = Nombre total de tipus de continguts delement a la partida; es fa servir amb la instrucció lookup.
lglobal.@liquidCount = Total number of types of liquid content in the game; used with the lookup instruction lglobal.@liquidCount = Nombre total de tipus de continguts de líquid a la partida; es fa servir amb la instrucció lookup.
lglobal.@server = True if the code is running on a server or in singleplayer, false otherwise lglobal.@server = Cert si el codi sexecuta en un servidor o en mode dun sol jugador; fals altrament.
lglobal.@client = True if the code is running on a client connected to a server lglobal.@client = Cert si el codi sexecuta en un client connectat a un servidor.
lglobal.@clientLocale = Locale of the client running the code. For example: en_US lglobal.@clientLocale = Traducció del client que executa el codi. Per exemple: en_US
lglobal.@clientUnit = Unit of client running the code lglobal.@clientUnit = Unitat del client que executa el codi
lglobal.@clientName = Player name of client running the code lglobal.@clientName = Nom del jugador del client que executa el codi
lglobal.@clientTeam = Team ID of client running the code lglobal.@clientTeam = Identificador de lequip que executa el codi
lglobal.@clientMobile = True is the client running the code is on mobile, false otherwise lglobal.@clientMobile = Cert si el client que executa el codi és un dispositiu mòbil; fals altrament.
logic.nounitbuild = [red]Aquí no es permet construir blocs de tipus lògic. logic.nounitbuild = [red]Aquí no es permet construir blocs de tipus lògic.
@@ -2402,7 +2403,7 @@ laccess.dead = Retorna si una unitat o bloc està destruïda o si ja no és vàl
laccess.controlled = Returna:\n[accent]@ctrlProcessor[] si el controlador de la unitat és un processador;\n[accent]@ctrlPlayer[] si el controlador de la unitat és un jugador;\n[accent]@ctrlCommand[] si el controlador és un comandament del jugador;\naltrament, és 0. laccess.controlled = Returna:\n[accent]@ctrlProcessor[] si el controlador de la unitat és un processador;\n[accent]@ctrlPlayer[] si el controlador de la unitat és un jugador;\n[accent]@ctrlCommand[] si el controlador és un comandament del jugador;\naltrament, és 0.
laccess.progress = Progrés de lacció, entre 0 i 1.\nRetorna la producció, la recàrrega de la torreta o el progrés de la construcció. laccess.progress = Progrés de lacció, entre 0 i 1.\nRetorna la producció, la recàrrega de la torreta o el progrés de la construcció.
laccess.speed = Velocitat màxima de la unitat, en caselles/s. laccess.speed = Velocitat màxima de la unitat, en caselles/s.
laccess.id = ID of a unit/block/item/liquid.\nThis is the inverse of the lookup operation. laccess.id = Identificador dunitat/bloc/element/líquid.\nÉs linvers de loperació lookup.
lcategory.unknown = Desconegut lcategory.unknown = Desconegut
lcategory.unknown.description = Instruccions sense categoria. lcategory.unknown.description = Instruccions sense categoria.
lcategory.io = Entrada i sortida lcategory.io = Entrada i sortida
@@ -2429,7 +2430,7 @@ graphicstype.poly = Omple un polígon regular.
graphicstype.linepoly = Dibuixa els costats dun polígon regular. graphicstype.linepoly = Dibuixa els costats dun polígon regular.
graphicstype.triangle = Omple un triangle. graphicstype.triangle = Omple un triangle.
graphicstype.image = Dibuixa una imatge dalgun element del joc.\nPer exemple: [accent]@router[] o [accent]@dagger[]. graphicstype.image = Dibuixa una imatge dalgun element del joc.\nPer exemple: [accent]@router[] o [accent]@dagger[].
graphicstype.print = Draws text from the print buffer.\nClears the print buffer. graphicstype.print = Dibuixa el text de la cua dimpressió.\nEsborra la cua dimpressió.
lenum.always = Sempre cert. lenum.always = Sempre cert.
lenum.idiv = Divisió entera. lenum.idiv = Divisió entera.
@@ -2524,7 +2525,7 @@ lenum.unbind = Desactiva del tot el control lògic.\nContinua amb la IA estànda
lenum.move = Mou a una posició exacta. lenum.move = Mou a una posició exacta.
lenum.approach = Aproxima a una zona determinada amb una posició i un radi. lenum.approach = Aproxima a una zona determinada amb una posició i un radi.
lenum.pathfind = Troba un camí i segueix una ruta fins al punt daparició denemics. lenum.pathfind = Troba un camí i segueix una ruta fins al punt daparició denemics.
lenum.autopathfind = Automatically pathfinds to the nearest enemy core or drop point.\nThis is the same as standard wave enemy pathfinding. lenum.autopathfind = Busca un camí automàticament fins al nucli enemic més proper o punt daterratge.\nÉs el mateix que el camí d'una onada enemiga estàndard.
lenum.target = Dispara a una posició. lenum.target = Dispara a una posició.
lenum.targetp = Dispara a un objectiu tenint en compte la seva velocitat a lhora dapuntar. lenum.targetp = Dispara a un objectiu tenint en compte la seva velocitat a lhora dapuntar.
lenum.itemdrop = Deixa un element. lenum.itemdrop = Deixa un element.
@@ -2535,7 +2536,7 @@ lenum.payenter = Entra o apareix al bloc on es troba la unitat.
lenum.flag = Identificador numèric de la unitat. lenum.flag = Identificador numèric de la unitat.
lenum.mine = Extreu recursos en una posició. lenum.mine = Extreu recursos en una posició.
lenum.build = Construeix una estructura. lenum.build = Construeix una estructura.
lenum.getblock = Obté un bloc i el seu tipus a les coordenades indicades.\nLa posició escollida ha destar a labast de la unitat.\nEls blocs que no són construccions tindran el tipus [accent]@solid[]. lenum.getblock = Fetch building, floor and block type at coordinates.\nUnit must be in range of the position, otherwise null is returned.
lenum.within = Comprova si la unitat està a prop duna posició. lenum.within = Comprova si la unitat està a prop duna posició.
lenum.boost = Inicia/Detén el vol. lenum.boost = Inicia/Detén el vol.
lenum.flushtext = Passa el contingut de la cua dimpressió al marcador, si es pot.\nSi sestableix «fetch» a vertader, sintentarà carregar les propietats de la traducció del mapa o del joc. lenum.flushtext = Passa el contingut de la cua dimpressió al marcador, si es pot.\nSi sestableix «fetch» a vertader, sintentarà carregar les propietats de la traducció del mapa o del joc.

View File

@@ -1317,6 +1317,7 @@ rules.schematic = Šablony povoleny
rules.wavetimer = Časovač vln rules.wavetimer = Časovač vln
rules.wavesending = Wave Sending rules.wavesending = Wave Sending
rules.waves = Vlny rules.waves = Vlny
rules.airUseSpawns = Air units use spawn points
rules.attack = Režim útoku rules.attack = Režim útoku
rules.buildai = Umělá AI staví rules.buildai = Umělá AI staví
rules.buildaitier = Úroveň AI stavitele rules.buildaitier = Úroveň AI stavitele
@@ -2530,7 +2531,7 @@ lenum.payenter = Vstoupit/přistat na nákladní blok, na kterém jednotka je.
lenum.flag = Číselné označení (flag) jednotky. lenum.flag = Číselné označení (flag) jednotky.
lenum.mine = Těžit na pozici. lenum.mine = Těžit na pozici.
lenum.build = Postavit strukturu. lenum.build = Postavit strukturu.
lenum.getblock = Získat budovu a typ na dané pozici.\nJednotka musí být v dosahu dané pozice.\nSolidní non-budovy budou mít typ [accent]@solid[]. lenum.getblock = Fetch building, floor and block type at coordinates.\nUnit must be in range of the position, otherwise null is returned.
lenum.within = Zkontrolovat, jestli jednotka je blízko dané pozice. lenum.within = Zkontrolovat, jestli jednotka je blízko dané pozice.
lenum.boost = Začít/Přestat posilovat. lenum.boost = Začít/Přestat posilovat.
lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle. lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle.

View File

@@ -1306,6 +1306,7 @@ rules.schematic = Skabeloner tilladt
rules.wavetimer = Bølge-æggeur rules.wavetimer = Bølge-æggeur
rules.wavesending = Wave Sending rules.wavesending = Wave Sending
rules.waves = Bølger rules.waves = Bølger
rules.airUseSpawns = Air units use spawn points
rules.attack = Angrebsmode rules.attack = Angrebsmode
rules.buildai = Base Builder AI rules.buildai = Base Builder AI
rules.buildaitier = Builder AI Tier rules.buildaitier = Builder AI Tier
@@ -2492,7 +2493,7 @@ lenum.payenter = Enter/land on the payload block the unit is on.
lenum.flag = Numeric unit flag. lenum.flag = Numeric unit flag.
lenum.mine = Mine at a position. lenum.mine = Mine at a position.
lenum.build = Build a structure. lenum.build = Build a structure.
lenum.getblock = Fetch a building and type at coordinates.\nUnit must be in range of position.\nSolid non-buildings will have the type [accent]@solid[]. lenum.getblock = Fetch building, floor and block type at coordinates.\nUnit must be in range of the position, otherwise null is returned.
lenum.within = Check if unit is near a position. lenum.within = Check if unit is near a position.
lenum.boost = Start/stop boosting. lenum.boost = Start/stop boosting.
lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle. lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle.

View File

@@ -1328,6 +1328,7 @@ rules.schematic = Entwürfe erlaubt
rules.wavetimer = Wellen-Timer rules.wavetimer = Wellen-Timer
rules.wavesending = Manuelle Wellen möglich rules.wavesending = Manuelle Wellen möglich
rules.waves = Wellen rules.waves = Wellen
rules.airUseSpawns = Air units use spawn points
rules.attack = Angriff-Modus rules.attack = Angriff-Modus
rules.buildai = Base Builder AI rules.buildai = Base Builder AI
rules.buildaitier = Builder AI Tier rules.buildaitier = Builder AI Tier
@@ -2561,7 +2562,7 @@ lenum.payenter = Betritt den Fracht-Block, auf dem sich die Einheit befindet.
lenum.flag = Zahl, mit der eine Einheit identifiziert werden kann. lenum.flag = Zahl, mit der eine Einheit identifiziert werden kann.
lenum.mine = Erz von einer Position abbauen. lenum.mine = Erz von einer Position abbauen.
lenum.build = Einen Block bauen. lenum.build = Einen Block bauen.
lenum.getblock = Gibt den Boden- und Blocktyp an den Koordinaten zurück.\nEinheiten müssen nah genug dran sein.\nFeste nicht-Blöcke sind [accent]@solid[]. lenum.getblock = Fetch building, floor and block type at coordinates.\nUnit must be in range of the position, otherwise null is returned.
lenum.within = Prüft, ob eine Einheit in einem Radius um einen Punkt ist. lenum.within = Prüft, ob eine Einheit in einem Radius um einen Punkt ist.
lenum.boost = Aktiviert / deaktiviert den Boost. lenum.boost = Aktiviert / deaktiviert den Boost.
lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle. lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle.

View File

@@ -1324,6 +1324,7 @@ rules.schematic = Permitir esquemas
rules.wavetimer = Temporizador de oleadas rules.wavetimer = Temporizador de oleadas
rules.wavesending = Envío de oleadas rules.wavesending = Envío de oleadas
rules.waves = Oleadas rules.waves = Oleadas
rules.airUseSpawns = Air units use spawn points
rules.attack = Modo de ataque rules.attack = Modo de ataque
rules.buildai = Base Builder AI rules.buildai = Base Builder AI
rules.buildaitier = Builder AI Tier rules.buildaitier = Builder AI Tier
@@ -2554,7 +2555,7 @@ lenum.payenter = Entra/Aterriza en el bloque sobre el que se encuentra la unidad
lenum.flag = Etiqueta numérica de la unidad. lenum.flag = Etiqueta numérica de la unidad.
lenum.mine = Extrae minerales de una posición. lenum.mine = Extrae minerales de una posición.
lenum.build = Construye una estructura. lenum.build = Construye una estructura.
lenum.getblock = Obtiene la estructura y su categoría en unas coordenadas específicas.\nLa unidad debe estar en el rango de su posición.\nLos bloques no-construcciones tendrán el tipo [accent]@solid[]. lenum.getblock = Fetch building, floor and block type at coordinates.\nUnit must be in range of the position, otherwise null is returned.
lenum.within = Comprueba si una unidad se encuentra cerca de una posición. lenum.within = Comprueba si una unidad se encuentra cerca de una posición.
lenum.boost = Iniciar/Detener vuelo. lenum.boost = Iniciar/Detener vuelo.
lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle. lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle.

View File

@@ -1306,6 +1306,7 @@ rules.schematic = Schematics Allowed
rules.wavetimer = Kasuta taimerit rules.wavetimer = Kasuta taimerit
rules.wavesending = Wave Sending rules.wavesending = Wave Sending
rules.waves = Kasuta lahingulaineid rules.waves = Kasuta lahingulaineid
rules.airUseSpawns = Air units use spawn points
rules.attack = Mänguviis "Rünnak" rules.attack = Mänguviis "Rünnak"
rules.buildai = Base Builder AI rules.buildai = Base Builder AI
rules.buildaitier = Builder AI Tier rules.buildaitier = Builder AI Tier
@@ -2494,7 +2495,7 @@ lenum.payenter = Enter/land on the payload block the unit is on.
lenum.flag = Numeric unit flag. lenum.flag = Numeric unit flag.
lenum.mine = Mine at a position. lenum.mine = Mine at a position.
lenum.build = Build a structure. lenum.build = Build a structure.
lenum.getblock = Fetch a building and type at coordinates.\nUnit must be in range of position.\nSolid non-buildings will have the type [accent]@solid[]. lenum.getblock = Fetch building, floor and block type at coordinates.\nUnit must be in range of the position, otherwise null is returned.
lenum.within = Check if unit is near a position. lenum.within = Check if unit is near a position.
lenum.boost = Start/stop boosting. lenum.boost = Start/stop boosting.
lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle. lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle.

View File

@@ -1308,6 +1308,7 @@ rules.schematic = Schematics Allowed
rules.wavetimer = Boladen denboragailua rules.wavetimer = Boladen denboragailua
rules.wavesending = Wave Sending rules.wavesending = Wave Sending
rules.waves = Boladak rules.waves = Boladak
rules.airUseSpawns = Air units use spawn points
rules.attack = Eraso modua rules.attack = Eraso modua
rules.buildai = Base Builder AI rules.buildai = Base Builder AI
rules.buildaitier = Builder AI Tier rules.buildaitier = Builder AI Tier
@@ -2496,7 +2497,7 @@ lenum.payenter = Enter/land on the payload block the unit is on.
lenum.flag = Numeric unit flag. lenum.flag = Numeric unit flag.
lenum.mine = Mine at a position. lenum.mine = Mine at a position.
lenum.build = Build a structure. lenum.build = Build a structure.
lenum.getblock = Fetch a building and type at coordinates.\nUnit must be in range of position.\nSolid non-buildings will have the type [accent]@solid[]. lenum.getblock = Fetch building, floor and block type at coordinates.\nUnit must be in range of the position, otherwise null is returned.
lenum.within = Check if unit is near a position. lenum.within = Check if unit is near a position.
lenum.boost = Start/stop boosting. lenum.boost = Start/stop boosting.
lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle. lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle.

View File

@@ -1305,6 +1305,7 @@ rules.schematic = Salli kaaviot
rules.wavetimer = Tasojen aikaraja rules.wavetimer = Tasojen aikaraja
rules.wavesending = Wave Sending rules.wavesending = Wave Sending
rules.waves = Tasot rules.waves = Tasot
rules.airUseSpawns = Air units use spawn points
rules.attack = Hyökkäystila rules.attack = Hyökkäystila
rules.buildai = Base Builder AI rules.buildai = Base Builder AI
rules.buildaitier = Builder AI Tier rules.buildaitier = Builder AI Tier
@@ -2497,7 +2498,7 @@ lenum.payenter = Siirry tai laskeudu lastipalikalle, jonka päällä yksikkö on
lenum.flag = Numeerinen yksikkötunniste. lenum.flag = Numeerinen yksikkötunniste.
lenum.mine = Kaiva tietyssä sijainnissa. lenum.mine = Kaiva tietyssä sijainnissa.
lenum.build = Rakenna tietty rakennus. lenum.build = Rakenna tietty rakennus.
lenum.getblock = Selvitä rakennus ja sen tyyppi tietyissä koordinaateissa.\nSijainnin täytyy olla yksikön kantamalla.\nKiinteillä ei-rakennuksilla on tyyppi [accent]@solid[]. lenum.getblock = Fetch building, floor and block type at coordinates.\nUnit must be in range of the position, otherwise null is returned.
lenum.within = Tarkista, onko joukko tietyn sijainnin lähellä. lenum.within = Tarkista, onko joukko tietyn sijainnin lähellä.
lenum.boost = Aloita tai lopeta tehostus. lenum.boost = Aloita tai lopeta tehostus.
lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle. lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle.

View File

@@ -1305,6 +1305,7 @@ rules.schematic = Schematics Allowed
rules.wavetimer = Wave Timer rules.wavetimer = Wave Timer
rules.wavesending = Wave Sending rules.wavesending = Wave Sending
rules.waves = Waves rules.waves = Waves
rules.airUseSpawns = Air units use spawn points
rules.attack = Attack Mode rules.attack = Attack Mode
rules.buildai = Base Builder AI rules.buildai = Base Builder AI
rules.buildaitier = Builder AI Tier rules.buildaitier = Builder AI Tier
@@ -2493,7 +2494,7 @@ lenum.payenter = Enter/land on the payload block the unit is on.
lenum.flag = Numeric unit flag. lenum.flag = Numeric unit flag.
lenum.mine = Mine at a position. lenum.mine = Mine at a position.
lenum.build = Build a structure. lenum.build = Build a structure.
lenum.getblock = Fetch a building and type at coordinates.\nUnit must be in range of position.\nSolid non-buildings will have the type [accent]@solid[]. lenum.getblock = Fetch building, floor and block type at coordinates.\nUnit must be in range of the position, otherwise null is returned.
lenum.within = Check if unit is near a position. lenum.within = Check if unit is near a position.
lenum.boost = Start/stop boosting. lenum.boost = Start/stop boosting.
lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle. lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle.

View File

@@ -1332,6 +1332,7 @@ rules.schematic = Schémas autorisés
rules.wavetimer = Compte à rebours des vagues rules.wavetimer = Compte à rebours des vagues
rules.wavesending = Déclenchement des Vagues rules.wavesending = Déclenchement des Vagues
rules.waves = Vagues rules.waves = Vagues
rules.airUseSpawns = Air units use spawn points
rules.attack = Mode « Attaque » rules.attack = Mode « Attaque »
rules.buildai = IA de Construction de Base rules.buildai = IA de Construction de Base
rules.buildaitier = Niveau de l'IA de Construction de Base rules.buildaitier = Niveau de l'IA de Construction de Base
@@ -2561,7 +2562,7 @@ lenum.payenter = Entrez/atterrissez sur le bloc de charge utile sur lequel se tr
lenum.flag = Drapeau numérique d'une unité. lenum.flag = Drapeau numérique d'une unité.
lenum.mine = Mine à une position donnée. lenum.mine = Mine à une position donnée.
lenum.build = Construit une structure. lenum.build = Construit une structure.
lenum.getblock = Récupère des données sur un bâtiment et son type aux coordonnées données.\nL'unité doit se trouver dans la portée de la position.\nLes blocs solides qui ne sont pas des bâtiments auront le type [accent]@solid[]. lenum.getblock = Fetch building, floor and block type at coordinates.\nUnit must be in range of the position, otherwise null is returned.
lenum.within = Vérifie si l'unité est près de la position. lenum.within = Vérifie si l'unité est près de la position.
lenum.boost = Active/Désactive le boost. lenum.boost = Active/Désactive le boost.
lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle. lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle.

View File

@@ -1336,6 +1336,7 @@ rules.schematic = Vázlatok engedélyezése
rules.wavetimer = Hullámok időzítése rules.wavetimer = Hullámok időzítése
rules.wavesending = Hullámok küldése rules.wavesending = Hullámok küldése
rules.waves = Hullámok rules.waves = Hullámok
rules.airUseSpawns = A légi egységek használjanak kezdőpontokat
rules.attack = Támadási mód rules.attack = Támadási mód
rules.buildai = Bázisépítő MI rules.buildai = Bázisépítő MI
rules.buildaitier = Építő MI szintje rules.buildaitier = Építő MI szintje
@@ -2573,7 +2574,7 @@ lenum.payenter = Belépés/leszállás a rakományblokkra, amelyen az egység va
lenum.flag = Számjegyes egységjelölő. lenum.flag = Számjegyes egységjelölő.
lenum.mine = Bányászat egy helyen. lenum.mine = Bányászat egy helyen.
lenum.build = Egy épület építése. lenum.build = Egy épület építése.
lenum.getblock = Az épület, talaj és típus lekérdezése a koordinátákon.\nAz egységnek a pozíciótartományon belül kell lennie.\nA szilárd dolgok, melyek nem épületek, [accent]@solid[] típusúak lesznek. lenum.getblock = Az épület-, talaj- és blokktípus lekérdezése a koordinátákon.\nAz egységnek a pozíciótartományon belül kell lennie, különben null értékkel tér vissza.
lenum.within = Ellenőrzés, hogy az egység egy pozíció közelében van-e. lenum.within = Ellenőrzés, hogy az egység egy pozíció közelében van-e.
lenum.boost = Erősítés indítása/leállítása. lenum.boost = Erősítés indítása/leállítása.

View File

@@ -1324,6 +1324,7 @@ rules.schematic = Bagan Diperbolehkan
rules.wavetimer = Pengaturan Waktu Gelombang rules.wavetimer = Pengaturan Waktu Gelombang
rules.wavesending = Wave Sending rules.wavesending = Wave Sending
rules.waves = Gelombang rules.waves = Gelombang
rules.airUseSpawns = Air units use spawn points
rules.attack = Mode Penyerangan rules.attack = Mode Penyerangan
rules.buildai = Base Builder AI rules.buildai = Base Builder AI
rules.buildaitier = Builder AI Tier rules.buildaitier = Builder AI Tier
@@ -2552,7 +2553,7 @@ lenum.payenter = Masuk/mendarat pada blok muatan yang saat ini unit sedang berdi
lenum.flag = Tanda numerik unit. lenum.flag = Tanda numerik unit.
lenum.mine = Menambang pada sebuah posisi. lenum.mine = Menambang pada sebuah posisi.
lenum.build = Membangun sebuah sttruktur. lenum.build = Membangun sebuah sttruktur.
lenum.getblock = Mengambil bangunan dan tipenya pada koordinat tertentu.\nUnit harus ada dalam jangkauan tersebut.\nBentuk padat yang bukan merupakan bangunan akan memiliki tipe [accent]@solid[]. lenum.getblock = Fetch building, floor and block type at coordinates.\nUnit must be in range of the position, otherwise null is returned.
lenum.within = Memeriksa apakah unit di dekat suatu posisi. lenum.within = Memeriksa apakah unit di dekat suatu posisi.
lenum.boost = Mulai/berhenti mempercepat. lenum.boost = Mulai/berhenti mempercepat.
lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle. lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle.

View File

@@ -1311,6 +1311,7 @@ rules.schematic = Schematiche Consentite
rules.wavetimer = Timer Ondate rules.wavetimer = Timer Ondate
rules.wavesending = Wave Sending rules.wavesending = Wave Sending
rules.waves = Ondate rules.waves = Ondate
rules.airUseSpawns = Air units use spawn points
rules.attack = Modalità Attacco rules.attack = Modalità Attacco
rules.buildai = Base Builder AI rules.buildai = Base Builder AI
rules.buildaitier = Builder AI Tier rules.buildaitier = Builder AI Tier
@@ -2506,7 +2507,7 @@ lenum.payenter = Enter/land on the payload block the unit is on.
lenum.flag = Numeric unit flag. lenum.flag = Numeric unit flag.
lenum.mine = Mine at a position. lenum.mine = Mine at a position.
lenum.build = Build a structure. lenum.build = Build a structure.
lenum.getblock = Fetch a building and type at coordinates.\nUnit must be in range of position.\nSolid non-buildings will have the type [accent]@solid[]. lenum.getblock = Fetch building, floor and block type at coordinates.\nUnit must be in range of the position, otherwise null is returned.
lenum.within = Check if unit is near a position. lenum.within = Check if unit is near a position.
lenum.boost = Start/stop boosting. lenum.boost = Start/stop boosting.
lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle. lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle.

View File

@@ -1317,6 +1317,7 @@ rules.schematic = 設計図を許可
rules.wavetimer = ウェーブの自動進行 rules.wavetimer = ウェーブの自動進行
rules.wavesending = ウェーブスキップ rules.wavesending = ウェーブスキップ
rules.waves = ウェーブ rules.waves = ウェーブ
rules.airUseSpawns = Air units use spawn points
rules.attack = アタックモード rules.attack = アタックモード
rules.buildai = Base Builder AI rules.buildai = Base Builder AI
rules.buildaitier = Builder AI Tier rules.buildaitier = Builder AI Tier
@@ -2510,7 +2511,7 @@ lenum.payenter = ユニットが乗っているペイロードブロックに進
lenum.flag = ユニットのフラグです。 lenum.flag = ユニットのフラグです。
lenum.mine = 任意の位置を採掘します。 lenum.mine = 任意の位置を採掘します。
lenum.build = 建築をします。 lenum.build = 建築をします。
lenum.getblock = 座標から建物とタイプを取得します。\nユニットは範囲内でなければなりません。\n建物以外の物の型は [accent]@solid[] になります。 lenum.getblock = Fetch building, floor and block type at coordinates.\nUnit must be in range of the position, otherwise null is returned.
lenum.within = ユニットが座標の近くにあるかどうかを確認します。 lenum.within = ユニットが座標の近くにあるかどうかを確認します。
lenum.boost = ブーストの開始、停止をします。 lenum.boost = ブーストの開始、停止をします。
lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle. lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle.

View File

@@ -57,7 +57,7 @@ mods.browser.sortstars = 추천(스타) 수
schematic = 설계도 schematic = 설계도
schematic.add = 설계도 저장하기 schematic.add = 설계도 저장하기
schematics = 설계도 schematics = 설계도
schematic.search = Search schematics... schematic.search = 설계도 검색하기
schematic.replace = 해당 이름의 설계도가 이미 존재합니다. 교체하시겠습니까? schematic.replace = 해당 이름의 설계도가 이미 존재합니다. 교체하시겠습니까?
schematic.exists = 해당 이름의 설계도가 이미 존재합니다. schematic.exists = 해당 이름의 설계도가 이미 존재합니다.
schematic.import = 설계도 가져오기 schematic.import = 설계도 가져오기
@@ -263,11 +263,11 @@ trace.times.kicked = 추방 횟수: [accent]{0}
trace.ips = IPs: trace.ips = IPs:
trace.names = Names: trace.names = Names:
invalidid = 잘못된 클라이언트 ID입니다! 버그 보고서를 보내주세요. invalidid = 잘못된 클라이언트 ID입니다! 버그 보고서를 보내주세요.
player.ban = Ban player.ban = 플레이어 차단
player.kick = Kick player.kick = 플레이어 강퇴
player.trace = Trace player.trace = 플레이어 찾기
player.admin = Toggle Admin player.admin = 관리자 권한 부여
player.team = Change Team player.team = 팀 변경하기
server.bans = 차단 목록 server.bans = 차단 목록
server.bans.none = 차단된 플레이어를 찾을 수 없습니다! server.bans.none = 차단된 플레이어를 찾을 수 없습니다!
server.admins = 관리자 server.admins = 관리자
@@ -284,8 +284,8 @@ confirmkick = 정말로 "{0}[white]" 을(를) 추방하시겠습니까?
confirmunban = 정말로 이 플레이어를 차단 해제하시겠습니까? confirmunban = 정말로 이 플레이어를 차단 해제하시겠습니까?
confirmadmin = 정말로 "{0}[white]" 을(를) 관리자로 임명하시겠습니까? confirmadmin = 정말로 "{0}[white]" 을(를) 관리자로 임명하시겠습니까?
confirmunadmin = 정말로 "{0}[white]"의 관리자를 박탈하시겠습니까? confirmunadmin = 정말로 "{0}[white]"의 관리자를 박탈하시겠습니까?
votekick.reason = Vote-Kick Reason votekick.reason = 강퇴 사유
votekick.reason.message = Are you sure you want to vote-kick "{0}[white]"?\nIf yes, please enter the reason: votekick.reason.message = "{0}[white]" 을(를) 투표 추방하시려면 해당 사유를 적어주세요 :
joingame.title = 게임 참가 joingame.title = 게임 참가
joingame.ip = 주소: joingame.ip = 주소:
disconnect = 연결이 끊어졌습니다. disconnect = 연결이 끊어졌습니다.
@@ -348,16 +348,16 @@ command.rebuild = 재건
command.assist = 플레이어 지원 command.assist = 플레이어 지원
command.move = 이동 command.move = 이동
command.boost = 비행 command.boost = 비행
command.enterPayload = Enter Payload Block command.enterPayload = 화물 블록에 들어가기
command.loadUnits = Load Units command.loadUnits = 유닛 적재
command.loadBlocks = Load Blocks command.loadBlocks = 블록 적재
command.unloadPayload = Unload Payload command.unloadPayload = 화물 내려놓기
stance.stop = Cancel Orders stance.stop = 명령 취소하기
stance.shoot = Stance: Shoot stance.shoot = 명령: 사격
stance.holdfire = Stance: Hold Fire stance.holdfire = 명령: 사격 중지
stance.pursuetarget = Stance: Pursue Target stance.pursuetarget = 명령: 타겟 추격
stance.patrol = Stance: Patrol Path stance.patrol = 명령: 정찰
stance.ram = Stance: Ram\n[lightgray]Straight line movement, no pathfinding stance.ram = 명령 : 돌격\n[lightgray] 유닛이 장애물 여부를 확인하지 않고 일직선으로 이동합니다.
openlink = 링크 열기 openlink = 링크 열기
copylink = 링크 복사 copylink = 링크 복사
back = 뒤로가기 back = 뒤로가기
@@ -613,8 +613,8 @@ filter.option.floor2 = 2번째 타일
filter.option.threshold2 = 2번째 경계선 filter.option.threshold2 = 2번째 경계선
filter.option.radius = 반경 filter.option.radius = 반경
filter.option.percentile = 백분율 filter.option.percentile = 백분율
filter.option.code = Code filter.option.code = 코드
filter.option.loop = Loop filter.option.loop = 루프
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
locales.deletelocale = Are you sure you want to delete this locale bundle? locales.deletelocale = Are you sure you want to delete this locale bundle?
locales.applytoall = Apply Changes To All Locales locales.applytoall = Apply Changes To All Locales
@@ -740,8 +740,8 @@ weather.snowing.name = 눈
weather.sandstorm.name = 모래 폭풍 weather.sandstorm.name = 모래 폭풍
weather.sporestorm.name = 포자 폭풍 weather.sporestorm.name = 포자 폭풍
weather.fog.name = 안개 weather.fog.name = 안개
campaign.playtime = \uf129 [lightgray]Sector Playtime: {0} campaign.playtime = \uf129 [lightgray]지역 플레이타임: {0}
campaign.complete = [accent]Congratulations.\n\nThe enemy on {0} has been defeated.\n[lightgray]The final sector has been conquered. campaign.complete = [accent]축하드립니다.\n\n {0} 지역의 적이 패배하였습니다\n[lightgray] 마지막 지역을 점령하였습니다.
sectorlist = 지역 목록 sectorlist = 지역 목록
sectorlist.attacked = {0} 공격받는 중 sectorlist.attacked = {0} 공격받는 중
@@ -772,8 +772,8 @@ sector.curlost = 지역 잃음
sector.missingresources = [scarlet]코어 자원 부족[] sector.missingresources = [scarlet]코어 자원 부족[]
sector.attacked = [accent]{0}[white] 지역이 공격받고 있습니다![] sector.attacked = [accent]{0}[white] 지역이 공격받고 있습니다![]
sector.lost = [accent]{0}[white] 지역을 잃었습니다![] sector.lost = [accent]{0}[white] 지역을 잃었습니다![]
sector.capture = Sector [accent]{0}[white]Captured! sector.capture = [accent]{0}[white] 지역을 점령하였습니다!
sector.capture.current = Sector Captured! sector.capture.current = 지역 점령!
sector.changeicon = 아이콘 바꾸기 sector.changeicon = 아이콘 바꾸기
sector.noswitch.title = 지역 전환 불가능 sector.noswitch.title = 지역 전환 불가능
sector.noswitch = 기존 지역이 공격받는 동안은 지역을 전환할 수 없습니다.\n\n지역: [accent]{0}[] 중 [accent]{1}[] sector.noswitch = 기존 지역이 공격받는 동안은 지역을 전환할 수 없습니다.\n\n지역: [accent]{0}[] 중 [accent]{1}[]
@@ -810,24 +810,24 @@ sector.planetaryTerminal.name = 대행성 출격단지
sector.coastline.name = 해안선 sector.coastline.name = 해안선
sector.navalFortress.name = 해군 요새 sector.navalFortress.name = 해군 요새
sector.groundZero.description = 이 장소는 다시 시작하기에 최적의 환경을 지녔습니다. 적은 위협적이지 않으며, 자원이 거의 없습니다.\n가능한 한 많은 양의 구리와 납을 수집하십시오.\n이제 출격할 시간입니다! sector.groundZero.description = 이 장소는 다시 시작하기에 최적의 환경을 지녔습니다. 적은 위협적이지 않지만, 자원도 풍부하진 않습니다.\n가능한 한 많은 양의 구리와 납을 수집하십시오.\n이제 출격할 시간입니다!
sector.frozenForest.description = 산과 가까운 이곳에도, 포자가 퍼졌습니다. 혹한의 추위조차 포자가 퍼지는 것을 억누를 수 없습니다.\n화력 발전기를 건설하고, 멘더를 사용하는 방법을 배우십시오. sector.frozenForest.description = 산과 가까운 이곳에도, 포자가 퍼졌습니다. 혹한의 추위조차 포자가 퍼지는 것을 억누를 수 없습니다.\n화력 발전기를 건설하고, 멘더를 사용하는 방법을 배워야 합니다.
sector.saltFlats.description = 사막의 변두리에는 소금으로 이루어진 평원이 있습니다. 이곳에선 매우 적은 자원만 발견되었습니다.\n\n하지만 자원이 희소한 이곳에서도 적들의 요새가 포착되었습니다. 그들을 사막의 모래로 만들어버리십시오. sector.saltFlats.description = 사막의 변두리에는 소금으로 이루어진 평원이 있습니다. 이곳에선 매우 적은 자원만 발견되었습니다.\n\n하지만 자원이 희소한 이곳에서도 적들의 요새가 포착되었습니다. 그들을 사막의 모래로 만들어버리세요!
sector.craters.description = 물이 가득한 이 크레이터에는 옛 전쟁의 유물들이 쌓여있습니다.\n이곳을 탈환하십시오. 강화 유리를 제련하고, 물을 끌어올려 포탑과 드릴에 공급하십시오. 더 강한 방어선을 구성할 수 있습니다. sector.craters.description = 물이 가득한 이 크레이터에는 옛 전쟁의 유물들이 쌓여있습니다.\n이곳을 탈환하 강화 유리를 제련하고, 포탑과 드릴에 물을 공급하여 더 강한 방어선을 구축하여야 합니다.
sector.ruinousShores.description = 폐허를 지나서 나오는 해안선. 한때, 이곳에는 해안 방어기지가 있었습니다.\n많은 부분이 소실되었습니다. 기본적인 방어 시설을 제외한 모든 것이 고철 덩어리가 되었습니다. \n외부로 세력을 확장하기 위한 첫 발걸음으로, 무너진 시설을 재건하고 잃어버린 기술을 다시 회수하십시오. sector.ruinousShores.description = 폐허를 지나서 나오는 해안선. 한때, 이곳에는 해안 방어기지가 있었습니다.\n많은 부분이 소실되었습니다. 기본적인 방어 시설을 제외한 모든 것이 고철 덩어리가 되었습니다. \n외부로 세력을 확장하기 위한 첫 발걸음으로, 무너진 시설을 재건하고 잃어버린 기술을 다시 회수하십시오.
sector.stainedMountains.description = 더 내륙에는 아직 포자에 오염되지 않은 산맥이 있습니다.\n이 지역에서 티타늄을 채굴하고 이것을 어떻게 사용하는지 배우십시오.\n\n이곳은 더 강력한 적이 주둔하고 있습니다. 적이 가장 강력한 기체를 준비할 시간을 주지 마십시오. sector.stainedMountains.description = 더 내륙에는 아직 포자에 오염되지 않은 산맥이 있습니다.\n이 지역에서 티타늄을 채굴하고 이것을 어떻게 사용하는지 배우십시오.\n\n이곳은 더 강력한 적이 주둔하고 있습니다. 적이 가장 강력한 기체를 준비할 시간을 주지 마십시오.
sector.overgrowth.description = 이곳은 포자들의 근원과 가까이에 있는 과성장 지대입니다. 적이 이곳에 전초기지를 설립했습니다. 대거를 생산해 적의 코어를 박살 내고 우리가 잃어버린 것을 되찾으십시오! sector.overgrowth.description = 이곳은 포자들의 근원과 가까이에 있는 과성장 지대입니다. 적이 이곳에 전초기지를 설립했습니다. 대거를 생산해 적의 기지를 박살 내고 우리가 잃어버린 것을 되찾아야 합니다!
sector.tarFields.description = 산지와 사막 사이에 있는 석유 생산지의 외곽이며, 사용 가능한 타르가 매장되어 있는 희귀한 지역 중 하나입니다. 버려진 지역이지만 이곳에는 위험한 적군이 있습니다. 그들을 과소평가하지 마십시오.\n\n[lightgray]석유 가공기술을 익히는 것이 도움이 될 것입니다. sector.tarFields.description = 산지와 사막 사이에 있는 석유 생산지의 외곽이며, 사용 가능한 타르가 매장되어 있는 희귀한 지역 중 하나입니다. 버려진 지역이지만 이곳에는 위험한 적군이 있습니다. 그들을 과소평가하지 마십시오.\n\n[lightgray]석유 가공기술을 익히는 것이 도움이 될 것입니다.
sector.desolateRift.description = 극도로 위험한 지역입니다. 자원은 풍부하지만, 사용 가능한 공간은 거의 없습니다. 코어 파괴 위험이 높으니 가능한 한 빨리 방어시설을 구축하십시오. 또한, 적의 공격 주기가 길다고 안심하지 마십시오. sector.desolateRift.description = 극도로 위험한 지역입니다. 자원은 풍부하지만, 사용 가능한 공간은 거의 없습니다. 적의 공격 주기가 길지만, 기지가 파괴 위험이 높으니 가능한 한 빨리 방어시설을 구축하여야 합니다.
sector.nuclearComplex.description = 과거 토륨의 생산, 연구와 처리를 위해 운영되었던 시설입니다. 지금은 그저 폐허로 전락하였지만, 다수의 적이 배치된 지역입니다. 그들은 끊임없이 당신을 공격할 것입니다.\n\n[lightgray]토륨의 다양한 사용법을 연구하고 익히십시오. sector.nuclearComplex.description = 과거 토륨의 생산, 연구와 처리를 위해 운영되었던 시설입니다. 지금은 그저 폐허로 전락하였지만, 다수의 적이 배치된 지역입니다. 그들은 끊임없이 당신을 공격할 것입니다.\n\n[lightgray]토륨의 다양한 사용법을 연구하고 익혀 보세요.
sector.fungalPass.description = 포자로 얼룩진 높고 낮은 산이 만나는 곳. 이곳에서 적의 소규모 정찰기지를 발견하였습니다.\n그것들을 파괴하십시오.\n대거와 크롤러 기체를 사용하여 두 개의 코어를 파괴하십시오. sector.fungalPass.description = 포자로 얼룩진 높고 낮은 산이 만나는 곳. 이곳에서 적의 소규모 정찰기지를 발견하였습니다.\n그것들을 파괴하십시오.\n대거와 크롤러 기체를 사용하여 두 개의 기지를 파괴하여야 합니다.
sector.biomassFacility.description = 포자가 탄생한 곳. 이곳은 포자를 연구하고 최초로 생산했던 시설입니다.\n이 시설에 남아있는 기술을 습득하고, 연료와 플라스터늄을 생산하기 위해 포자를 배양하십시오. \n\n[lightgray]이 시설이 붕괴한 후에, 시설 내에 배양되던 대량의 포자가 외부로 방출되었습니다. 이로 인해 생태계 교란종인 포자가 지역 생태계에서 번식하게 되었고, 그 무엇도 이 무자비하고 작은 침략자에게 대항할 수 없었습니다. sector.biomassFacility.description = 포자가 탄생한 곳. 이곳은 포자를 연구하고 최초로 생산했던 시설입니다.\n이 시설에 남아있는 기술을 습득하고, 연료와 플라스터늄을 생산하기 위해 포자를 배양하십시오. \n\n[lightgray]이 시설이 붕괴한 후에, 시설 내에 배양되던 대량의 포자가 외부로 방출되었습니다. 이로 인해 생태계 교란종인 포자가 지역 생태계에서 번식하게 되었고, 그 무엇도 이 무자비하고 작은 침략자에게 대항할 수 없었습니다.
sector.windsweptIslands.description = 육지에서 멀리 떨어진 이곳에는 작은 군도가 있습니다. 기록에 따르면 한 때 [accent]플라스터늄[]을 생산하는 시설이 존재했습니다.\n\n몰려오는 적 해군을 막으며, 섬에 기지를 구축하고, 공장들을 연구하십시오. sector.windsweptIslands.description = 육지에서 멀리 떨어진 이곳에는 작은 군도가 있습니다. 기록에 따르면 한 때 [accent]플라스터늄[]을 생산하는 시설이 존재했습니다.\n\n몰려오는 적 해군을 막으며, 섬에 기지를 구축하고, 공장들을 연구하여야 합니다.
sector.extractionOutpost.description = 적이 다른 지역에 자원을 보내기 위한 용도로 건설한 보급기지입니다.\n\n강력한 적들이 지키고 있는 지역을 공격하거나, 적에게 침공당한 지역을 효과적으로 수호하기 위해서는 우리도 이 수송 기술이 필요합니다. 적의 기지를 파괴하고, 그들의 수송 기술을 강탈하십시오. sector.extractionOutpost.description = 적이 다른 지역에 자원을 보내기 위한 용도로 건설한 보급기지입니다.\n\n강력한 적들이 지키고 있는 지역을 공격하거나, 적에게 침공당한 지역을 효과적으로 수호하기 위해서는 우리도 이 수송 기술이 필요합니다. 적의 기지를 파괴하고, 그들의 수송 기술을 강탈하십시오.
sector.impact0078.description = 이곳에는 태양계에 처음 진입한 우주 수송선의 잔해가 존재합니다.\n\n우주선이 파괴된 잔해에서 최대한 많은 자원을 회수하고, 손상되지 않은 그들의 기술을 획득하십시오. sector.impact0078.description = 이곳에는 태양계에 처음 진입한 우주 수송선의 잔해가 존재합니다.\n\n우주선이 파괴된 잔해에서 최대한 많은 자원을 회수하고, 손상되지 않은 그들의 기술을 획득하십시오.
sector.planetaryTerminal.description = 이 행성에서의 마지막 전투를 준비하십시오.\n\n적이 필사의 각오로 지키고 있는 이 해안 기지엔 우주에 코어를 발사할 수 있는 시설이 있습니다.\n\n해군을 생산하여 적을 신속하게 제거하고, 그들의 행성간 이동 기술을 강탈하십시오.\n\n[royal] 건투를 빕니다.[] sector.planetaryTerminal.description = 이 행성에서의 마지막 전투를 준비하십시오.\n\n적이 필사의 각오로 지키고 있는 이 해안 기지엔 우주에 코어를 발사할 수 있는 시설이 있습니다.\n\n해군을 생산하여 적을 신속하게 제거하고, 그들의 행성간 이동 기술을 강탈하십시오.\n\n[royal] 건투를 빕니다.[]
sector.coastline.description = 이 장소에서 해상 기체 기술의 잔재가 발견되었습니다. 적의 공격을 격퇴하고, 이 지역을 점령하고, 기술을 습득하십시오. sector.coastline.description = 이 장소에서 해상 기체 기술의 잔재가 발견되었습니다. 적의 공격을 격퇴하고, 이 지역을 점령하고, 기술을 습득하십시오.
sector.navalFortress.description = 적은 자연적으로 요새화된 외딴 섬에 기지를 세웠습니다. 이 전초기지를 파괴하시오. 적의 발전된 함선 건조 기술을 습득하고 연구하시오. sector.navalFortress.description = 적은 자연적으로 요새화된 외딴 섬에 기지를 세웠습니다. 이 전초기지를 파괴하 적의 발전된 함선 건조 기술을 습득하고 연구하시오.
sector.onset.name = 시작 sector.onset.name = 시작
sector.aegis.name = 보호 sector.aegis.name = 보호
sector.lake.name = 호수 sector.lake.name = 호수
@@ -845,23 +845,23 @@ sector.siege.name = 포위
sector.crossroads.name = 교차로 sector.crossroads.name = 교차로
sector.karst.name = 카르스트 sector.karst.name = 카르스트
sector.origin.name = 근원 sector.origin.name = 근원
sector.onset.description = 튜토리얼 지역. 아직 목표가 만들어지지 않았습니다. 정보를 더 기다리십시오. sector.onset.description = 튜토리얼 지역. 아직 목표가 정해지지 않았습니다. 추가적인 정보를 제공받기 위해 잠시 대기해 주세요
sector.aegis.description = 적은 방어막으로 보호받고 있습니다. 이 구역에서 실험적인 방어막 차단기 모듈이 감지되었습니다.\n이 구조물을 찾으십시오. 텅스텐을 공급해 방어막 차단기를 가동하고 적의 기지를 파괴하십시오. sector.aegis.description = 적은 방어막으로 보호받고 있습니다. 이 구역에서 실험적인 방어막 차단기 모듈이 감지되었습니다.\n이 구조물을 찾으. 텅스텐을 공급해 방어막 차단기를 가동하고 적의 기지를 파괴하여야 합니다.
sector.lake.description = 이 지역의 광재 호수는 기체의 활동범위를 크게 제한시킵니다. 호버 유닛이 유일한 선택지입니다.\n[accent]함선 재구성기[]를 연구하고 [accent]일루드[]를 가능한 한 빨리 생산하십시오. sector.lake.description = 이 지역의 광재 호수는 기체의 활동범위를 크게 제한시킵니다. 호버 유닛이 유일한 선택지입니다.\n[accent]함선 재구성기[]를 연구하고 [accent]일루드[]를 가능한 한 빨리 생산하여야 합니다.
sector.intersect.description = 정찰 결과 이 지역은 착륙 직후 여러 방향에서 공격받을 것으로 예측됩니다.\n방어선을 빠르게 구하고 가능한 한 빠르게 확장하십시오.\n이 지역의 험난한 지형을 위해서는 [accent]기계[] 기체가 필요할 것입니다. sector.intersect.description = 정찰 결과 이 지역은 착륙 직후 여러 방향에서 공격받을 것으로 예측됩니다.\n방어선을 빠르게 구하고 가능한 한 빠르게 확장하여야 합니다.\n이 지역의 험난한 지형을 위해서는 [accent]기계[] 기체가 필요할 것입니다.
sector.atlas.description = 이 지역은 각기 다른 지형을 포함하고 있으며, 효과적으로 공격하기 위해서는 다양한 기체가 필요합니다.\n이곳에서 발견된 더 강력한 적의 기지를 통과하기 위해서는 상위 등급의 기체가 필요할 수도 있습니다.\n[accent]전해조[]와 [accent]전차 재조립기[]를 연구하십시오. sector.atlas.description = 이 지역은 각기 다른 지형을 포함하고 있으며, 효과적으로 공격하기 위해서는 다양한 기체가 필요합니다.\n이곳에서 발견된 더 강력한 적의 기지를 통과하기 위해서는 상위 등급의 기체가 필요할 수도 있습니다.\n[accent]전해조[]와 [accent]전차 재조립기[]를 연구하세요.
sector.split.description = 이 지역에 최소한으로 존재하는 적 주둔군은 새로운 운송 기술을 시험하기에 완벽합니다. sector.split.description = 이 지역에 최소한으로 존재하는 적 주둔군은 새로운 운송 기술을 시험하기에 완벽합니다.
sector.basin.description = {임시}\n\n현재의 마지막 지역. 이 지역은 도전 레벨입니다 - 이후 릴리즈에서 많은 지역이 더 추가될 예정입니다. sector.basin.description = 이 지역에는 많은 수의 적이 확인되었습니다. 발판을 마련하기 위해 신속히 유닛을 생산하여 적의 기지를 무력화 해야 합니다.
sector.marsh.description = 이 지역은 아르키사이트가 풍부하지만 분출구의 수는 한정적입니다.\n[accent]화학적 연소실[]을 건설하여 전력을 생산하시오. sector.marsh.description = 이 지역은 아르키사이트가 풍부하지만 분출구의 수는 한정적입니다.\n[accent]화학적 연소실[]을 건설하여 전력을 생산하세요.
sector.peaks.description = 이 지역의 산악 지형은 대부분의 기체를 무용지물로 만들었습니다. 비행 가능한 기체가 필요합니다.\n적의 방공망에 유의하십시오. 일부 시설은 지원 건물을 공격하여 무력화시킬 수 있습니다. sector.peaks.description = 이 지역의 산악 지형은 대부분의 기체를 무용지물로 만들었습니다. 비행 가능한 기체가 필요합니다.\n적의 방공망에 유의하십시오. 일부 시설은 지원 건물을 공격하여 무력화시킬 수 있습니다.
sector.ravine.description = 적의 중요한 이동 경로이긴 하지만, 해당 구역에선 적의 코어가 감지되지 않았습니다. 다양한 적군을 맞닥뜨릴 것으로 예상됩니다.\n[accent]서지 합금[]을 생산하십시오. 포탑 [accent]어플릭트[]를 건설하십시오. sector.ravine.description = 적의 중요한 이동 경로이긴 하지만, 해당 구역에선 적의 기지가 감지되지 않았습니다. 다양한 적군을 맞닥뜨릴 것으로 예상됩니다.\n[accent]금[]을 생산하 포탑 [accent]어플릭트[]를 건설하세요.
sector.caldera-erekir.description = 이 지역에서 탐지된 자원은 여러 섬에 분산되어 있습니다 .\n드론을 기반으로 한 운송수단을 연구하고 활용하시오. sector.caldera-erekir.description = 이 지역에서 탐지된 자원은 여러 섬에 분산되어 있습니다 .\n드론을 기반으로 한 운송수단을 연구하고 활용하세요.
sector.stronghold.description = 이 지역의 대규모 적 야영지에는 적들이 지키고 있는 상당한 양의 [accent]토륨[] 매장지가 있습니다.\n더 높은 등급의 기체와 포탑을 연구할 때 사용합니다. sector.stronghold.description = 이 지역의 대규모 적 야영지에는 적들이 지키고 있는 상당한 양의 [accent]토륨[] 매장지가 있습니다.\n더 높은 등급의 기체와 포탑을 연구할 때 사용합니다.
sector.crevice.description = 적들은 이 지역에서 당신의 기지를 제거하기 위해 맹렬한 공격부대를 보낼 것입니다.\n[accent]탄화물[]과 [accent]열분해 발전기[]를 연구하는 것은 살아남기 위해 반드시 필요합니다. sector.crevice.description = 적들은 이 지역에서 당신의 기지를 제거하기 위해 맹렬한 공격부대를 보낼 것입니다.\n[accent]탄화물[]과 [accent]열분해 발전기[]를 연구하는 것은 살아남기 위해 반드시 필요합니다.
sector.siege.description = 이 지역은 두 갈래의 공격을 강요하는 두 개의 평행 협곡이 특징입니다.\n더 강력한 전차 기체를 만들기 위한 능력을 얻기 위해 [accent]시아노겐[]을 연구하시오.\n주의: 적의 장거리 발사체가 감지되었습니다. 미사일은 충돌 전에 격추될 수 있습니다. sector.siege.description = 이 지역은 두 갈래의 공격을 강요하는 두 개의 평행 협곡이 특징입니다.\n더 강력한 전차 기체를 만들기 위한 능력을 얻기 위해 [accent]시아노겐[]을 연구하시오.\n주의: 적의 장거리 발사체가 감지되었습니다. 미사일은 충돌 전에 격추될 수 있습니다.
sector.crossroads.description = 이 지역의 적 기지는 다양한 지형에 설치되어 있습니다. 적응하기 위해 다양한 기체를 연구하시오.\n또한, 일부 기지는 보호막으로 보호되고 있습니다. 그들이 어떻게 전력을 공급받는지 알아보시오. sector.crossroads.description = 이 지역의 적 기지는 다양한 지형에 위차하고 있는 것이 확인 되었으며 이로 인해 위해 다양한 기체가 필요합니다. \n또한, 일부 기지는 보호막으로 보호되고 있습니다. 그들이 어떻게 전력을 공급받는지 알아보아야 합니다.
sector.karst.description = 이 지역은 자원이 풍부하지만, 새로운 코어가 착륙하면 적에게 공격을 받을 것입니다.\n자원의 이점을 활용하고 [accent]위상 섬유[]를 연구하시오. sector.karst.description = 이 지역은 자원이 풍부하지만, 새로운 코어가 착륙하면 적에게 공격을 받을 것입니다.\n자원의 이점을 활용하고 [accent]메타[]를 연구하세요.
sector.origin.description = 상당한 적이 존재하는 마지막 지역입니다.\n가능한 연구 기회가 남아 있지 않습니다. 오직 모든 적의 코어를 파괴하는 데만 집중하십시오. sector.origin.description = 상당한 적이 존재하는 마지막 지역입니다.\n 모든 연구를 마쳤으니 오직 모든 적의 코어를 파괴하는 데만 집중하세요.
status.burning.name = 발화 status.burning.name = 발화
status.freezing.name = 빙결 status.freezing.name = 빙결
@@ -1177,7 +1177,7 @@ setting.position.name = 플레이어 위치 표시
setting.mouseposition.name = 마우스 좌표 표시 setting.mouseposition.name = 마우스 좌표 표시
setting.musicvol.name = 음악 크기 setting.musicvol.name = 음악 크기
setting.atmosphere.name = 행성 배경화면 표시 setting.atmosphere.name = 행성 배경화면 표시
setting.drawlight.name = Draw Darkness/Lighting setting.drawlight.name = 어두움, 광원 표시
setting.ambientvol.name = 배경음 크기 setting.ambientvol.name = 배경음 크기
setting.mutemusic.name = 음소거 setting.mutemusic.name = 음소거
setting.sfxvol.name = 효과음 크기 setting.sfxvol.name = 효과음 크기
@@ -1222,24 +1222,24 @@ keybind.mouse_move.name = 커서를 따라서 이동
keybind.pan.name = 팬 보기 keybind.pan.name = 팬 보기
keybind.boost.name = 이륙 keybind.boost.name = 이륙
keybind.command_mode.name = 명령 모드 keybind.command_mode.name = 명령 모드
keybind.command_queue.name = Unit Command Queue keybind.command_queue.name = 유닛 명령 Queue
keybind.create_control_group.name = Create Control Group keybind.create_control_group.name = 컨트롤 그룹 만들기
keybind.cancel_orders.name = Cancel Orders keybind.cancel_orders.name = 명령 취소
keybind.unit_stance_shoot.name = Unit Stance: Shoot keybind.unit_stance_shoot.name = 유닛 명령: 사격
keybind.unit_stance_hold_fire.name = Unit Stance: Hold Fire keybind.unit_stance_hold_fire.name = 유닛 명령: 사격 중지
keybind.unit_stance_pursue_target.name = Unit Stance: Pursue Target keybind.unit_stance_pursue_target.name = 유닛 명령: 타겟 추격
keybind.unit_stance_patrol.name = Unit Stance: Patrol keybind.unit_stance_patrol.name = 유닛 명령: 정찰
keybind.unit_stance_ram.name = Unit Stance: Ram keybind.unit_stance_ram.name = 유닛 명령: 돌격
keybind.unit_command_move.name = Unit Command: Move keybind.unit_command_move.name = 유닛 제어: 이동
keybind.unit_command_repair.name = Unit Command: Repair keybind.unit_command_repair.name = 유닛 제어: 수리
keybind.unit_command_rebuild.name = Unit Command: Rebuild keybind.unit_command_rebuild.name = 유닛 제어: 재건
keybind.unit_command_assist.name = Unit Command: Assist keybind.unit_command_assist.name = 유닛 제어: 플레이어 지원
keybind.unit_command_mine.name = Unit Command: Mine keybind.unit_command_mine.name = 유닛 제어: 채굴
keybind.unit_command_boost.name = Unit Command: Boost keybind.unit_command_boost.name = 유닛 제어: 비행
keybind.unit_command_load_units.name = Unit Command: Load Units keybind.unit_command_load_units.name = 유닛 제어: 유닛 적재
keybind.unit_command_load_blocks.name = Unit Command: Load Blocks keybind.unit_command_load_blocks.name = 유닛 제어: 블록 적재
keybind.unit_command_unload_payload.name = Unit Command: Unload Payload keybind.unit_command_unload_payload.name = 유닛 제어: 화물 투하
keybind.unit_command_enter_payload.name = Unit Command: Enter Payload keybind.unit_command_enter_payload.name = 유닛 제어: 화물 건물에 착륙/진입
keybind.rebuild_select.name = 지역 재건 keybind.rebuild_select.name = 지역 재건
keybind.schematic_select.name = 영역 설정 keybind.schematic_select.name = 영역 설정
keybind.schematic_menu.name = 설계도 메뉴 keybind.schematic_menu.name = 설계도 메뉴
@@ -1303,12 +1303,12 @@ mode.pvp.description = 다른 플레이어와 현장에서 싸우세요.\n[gray]
mode.attack.name = 공격 mode.attack.name = 공격
mode.attack.description = 적의 기지를 파괴하세요.\n[gray]플레이하려면 맵에 적 코어가 필요합니다. mode.attack.description = 적의 기지를 파괴하세요.\n[gray]플레이하려면 맵에 적 코어가 필요합니다.
mode.custom = 사용자 정의 규칙 mode.custom = 사용자 정의 규칙
rules.invaliddata = Invalid clipboard data. rules.invaliddata = 잘못된 클립보드 데이터 입니다.
rules.hidebannedblocks = 금지된 블록 숨기기 rules.hidebannedblocks = 금지된 블록 숨기기
rules.infiniteresources = 무한 자원 rules.infiniteresources = 무한 자원
rules.onlydepositcore = 오직 코어에만 투입 가능 rules.onlydepositcore = 오직 코어에만 투입 가능
rules.derelictrepair = Allow Derelict Block Repair rules.derelictrepair = 잔해 블록 수리 허
rules.reactorexplosions = 원자로 폭발 허용 rules.reactorexplosions = 원자로 폭발 허용
rules.coreincinerates = 코어 방화 비허용 rules.coreincinerates = 코어 방화 비허용
rules.disableworldprocessors = 월드 프로세서 비활성화 rules.disableworldprocessors = 월드 프로세서 비활성화
@@ -1316,9 +1316,10 @@ rules.schematic = 설계도 허용
rules.wavetimer = 시간 제한이 있는 단계 rules.wavetimer = 시간 제한이 있는 단계
rules.wavesending = 단계 넘김 rules.wavesending = 단계 넘김
rules.waves = 단계 rules.waves = 단계
rules.airUseSpawns = Air units use spawn points
rules.attack = 공격 모드 rules.attack = 공격 모드
rules.buildai = Base Builder AI rules.buildai = 기지 건설 AI
rules.buildaitier = Builder AI Tier rules.buildaitier = 건설 AI 등급
rules.rtsai = RTS AI rules.rtsai = RTS AI
rules.rtsminsquadsize = 최소 부대 규모 rules.rtsminsquadsize = 최소 부대 규모
rules.rtsmaxsquadsize = 최대 부대 규모 rules.rtsmaxsquadsize = 최대 부대 규모
@@ -1370,8 +1371,8 @@ rules.weather = 날씨 추가
rules.weather.frequency = 빈도: rules.weather.frequency = 빈도:
rules.weather.always = 항상 rules.weather.always = 항상
rules.weather.duration = 지속 시간: rules.weather.duration = 지속 시간:
rules.placerangecheck.info = Prevents players from placing anything near enemy buildings. When trying to place a turret, the range is increased, so the turret will not be able to reach the enemy. rules.placerangecheck.info = 플레이어가 적 건물 근처에 건설 불가 구역을 생성합니다. 만일, 플레이어가 포탑을 건설하고자 할 경우 반경이 증가되어 적 건물이 포탑의 사정거리에 닿지 않게됩니다.
rules.onlydepositcore.info = Prevents units from depositing items into any buildings except cores. rules.onlydepositcore.info = 코어를 제외한 어떠한 건물에도 자원을 투하할 수 없게 만듭니다.
content.item.name = 자원 content.item.name = 자원
content.liquid.name = 액체 content.liquid.name = 액체
@@ -1894,7 +1895,7 @@ hint.launch = 충분한 자원을 모았으면, 오른쪽 아래의 \ue827 [acce
hint.launch.mobile = 충분한 자원을 모았으면, 오른쪽 아래의 \ue88c [accent]메뉴[]에 있는 \ue827 [accent]지도[]에서 주변 지역을 선택해서 [accent]출격[]할 수 있습니다. hint.launch.mobile = 충분한 자원을 모았으면, 오른쪽 아래의 \ue88c [accent]메뉴[]에 있는 \ue827 [accent]지도[]에서 주변 지역을 선택해서 [accent]출격[]할 수 있습니다.
hint.schematicSelect = [accent][[F][]를 누른 채로 끌어서 복사하고 붙여넣을 블록을 선택하십시오. \n\n [accent][[마우스 휠][]을 누르면 한 개의 블록만 복사할 수 있습니다. hint.schematicSelect = [accent][[F][]를 누른 채로 끌어서 복사하고 붙여넣을 블록을 선택하십시오. \n\n [accent][[마우스 휠][]을 누르면 한 개의 블록만 복사할 수 있습니다.
hint.rebuildSelect = [accent][[B][]를 누르고 끌어서 파괴된 블록 흔적을 선택하세요.\n선택된 블록은 자동으로 복구됩니다. hint.rebuildSelect = [accent][[B][]를 누르고 끌어서 파괴된 블록 흔적을 선택하세요.\n선택된 블록은 자동으로 복구됩니다.
hint.rebuildSelect.mobile = Select the \ue874 copy button, then tap the \ue80f rebuild button and drag to select destroyed block plans.\nThis will rebuild them automatically. hint.rebuildSelect.mobile = 복사버튼 \ue874 을 선택하시고, 재건축 버튼 \ue80f 을 탭 하신 뒤, 드래그 하여 블록 흔적을 선택하세요. 선택된 블록은 자동으로 복구됩니다.
hint.conveyorPathfind = [accent][[왼쪽 Ctrl][]을 누른 채로 컨베이어를 대각선으로 끌면 길을 자동으로 만들어줍니다. hint.conveyorPathfind = [accent][[왼쪽 Ctrl][]을 누른 채로 컨베이어를 대각선으로 끌면 길을 자동으로 만들어줍니다.
hint.conveyorPathfind.mobile = \ue844 [accent]대각 모드[]를 활성화하고 컨베이어를 대각선으로 끌면 길을 자동으로 찾아줍니다. hint.conveyorPathfind.mobile = \ue844 [accent]대각 모드[]를 활성화하고 컨베이어를 대각선으로 끌면 길을 자동으로 찾아줍니다.
hint.boost = [accent][[왼쪽 Shift][]를 눌러 탑승한 기체로 장애물을 넘을 수 있습니다. \n\n 일부 지상 기체만 이륙할 수 있습니다. hint.boost = [accent][[왼쪽 Shift][]를 눌러 탑승한 기체로 장애물을 넘을 수 있습니다. \n\n 일부 지상 기체만 이륙할 수 있습니다.
@@ -1949,38 +1950,38 @@ onset.turrets = 기체는 유용하지만, [accent]포탑[]은 사용하기에
onset.turretammo = 포탑에 [accent]베릴륨 탄약[]을 공급하세요. onset.turretammo = 포탑에 [accent]베릴륨 탄약[]을 공급하세요.
onset.walls = [accent]벽[]은 건물로 날아오는 공격을 막을 수 있습니다. \n포탑 주변에 \uf6ee [accent]베릴륨 벽[]을 배치하세요. onset.walls = [accent]벽[]은 건물로 날아오는 공격을 막을 수 있습니다. \n포탑 주변에 \uf6ee [accent]베릴륨 벽[]을 배치하세요.
onset.enemies = 적이 다가옵니다, 방어 태세를 갖추세요. onset.enemies = 적이 다가옵니다, 방어 태세를 갖추세요.
onset.defenses = [accent]Set up defenses:[lightgray] {0} onset.defenses = [accent]방어 태세 갖추기:[lightgray] {0}
onset.attack = 적은 취약한 상태입니다. 반격하세요. onset.attack = 적은 취약한 상태입니다. 반격하세요.
onset.cores = 새로운 코어는 [accent]코어 타일[]위에 배치할 수 있습니다.\n새로운 코어는 전진기지 역할을 하며 다른 코어와 저장된 자원을 공유합니다.\n \uf725 코어를 배치하세요. onset.cores = 새로운 코어는 [accent]코어 타일[]위에 배치할 수 있습니다.\n새로운 코어는 전진기지 역할을 하며 다른 코어와 저장된 자원을 공유합니다.\n \uf725 코어를 배치하세요.
onset.detect = 적은 2분 이내에 당신을 탐지할 것입니다.\n생산, 채굴, 방어시설을 구성하세요. onset.detect = 적은 2분 이내에 당신을 탐지할 것입니다.\n생산, 채굴, 방어시설을 구성하세요.
onset.commandmode = [accent]shift[]를 눌러 [accent]명령 모드[]를 활성화하세요.\n[accent]좌클릭과 드래그[]로 기체를 선택하세요.\n[accent]우클릭[]으로 선택된 기체들에게 이동 또는 공격 명령을 내리세요. onset.commandmode = [accent]shift[]를 눌러 [accent]명령 모드[]를 활성화하세요.\n[accent]좌클릭과 드래그[]로 기체를 선택하세요.\n[accent]우클릭[]으로 선택된 기체들에게 이동 또는 공격 명령을 내리세요.
onset.commandmode.mobile = [accent]명령 버튼[]을 눌러 [accent]명령 모드[]를 활성화하세요.\n손가락을 꾹 누르고, [accent]드래그[]해서 유닛을 선택하세요.\n[accent]눌러서[] 선택된 기체들에게 이동 또는 공격 명령을 내리세요. onset.commandmode.mobile = [accent]명령 버튼[]을 눌러 [accent]명령 모드[]를 활성화하세요.\n손가락을 꾹 누르고, [accent]드래그[]해서 유닛을 선택하세요.\n[accent]눌러서[] 선택된 기체들에게 이동 또는 공격 명령을 내리세요.
aegis.tungsten = Tungsten can be mined using an [accent]impact drill[].\nThis structure requires [accent]water[] and [accent]power[]. aegis.tungsten = 텅스텐을 채굴하려면 [accent]충격드릴[]이 필요합니다.\n 충격 드릴은[accent]물[]과 [accent]전력[]을 필요로 합니다.
split.pickup = 일부 블록은 코어 기체로 집어올릴 수 있습니다.\n이 [accent]컨테이너[]를 집어올리고 [accent]화물 로더[] 속에 내려놓으세요.\n(화물을 집어올리거나 내리는 기본 키는 [ 그리고 ]입니다) split.pickup = 일부 블록은 코어 기체로 집어올릴 수 있습니다.\n이 [accent]컨테이너[]를 집어올리고 [accent]화물 로더[] 속에 내려놓으세요.\n(화물을 집어올리거나 내리는 기본 키는 [ 그리고 ]입니다)
split.pickup.mobile = 일부 블록은 코어 기체로 집어올릴 수 있습니다.\n이 [accent]컨테이너[]를 집어올리고 [accent]화물 로더[] 속에 내려놓으세요.\n(무언가를 집어올리거나 내려놓으려면, 길게 누르세요.) split.pickup.mobile = 일부 블록은 코어 기체로 집어올릴 수 있습니다.\n이 [accent]컨테이너[]를 집어올리고 [accent]화물 로더[] 속에 내려놓으세요.\n(무언가를 집어올리거나 내려놓으려면, 길게 누르세요.)
split.acquire = 기체를 제조하려면 텅스텐을 습득해야 합니다. split.acquire = 기체를 제조하려면 텅스텐을 채굴해야 합니다.
split.build = 기체를 벽의 반대편으로 운반해야 합니다.\n두 개의 [accent]회물 매스 드라이버[]를 각 벽면에 하나씩 배치하세요.\n둘 중 하나를 누른 다음 다른 하나를 선택하여 연결을 설정합니다. split.build = 기체를 벽의 반대편으로 운반해야 합니다.\n두 개의 [accent]회물 매스 드라이버[]를 각 벽면에 하나씩 배치하세요.\n둘 중 하나를 누른 다음 다른 하나를 선택하여 연결을 설정합니다.
split.container = 컨테이너와 마찬가지로, 기체도 [accent]화물 매스 드라이버[]를 사용하여 운송할 수 있습니다.\n기체 조립대를 매스 드라이버 근처에 배치하여 기체를 적재한 후, 벽을 가로질러 보내 적 기지를 공격합니다. split.container = 컨테이너와 마찬가지로, 기체도 [accent]화물 매스 드라이버[]를 사용하여 운송할 수 있습니다.\n기체 조립대를 매스 드라이버 근처에 배치하여 기체를 적재한 후, 벽을 가로질러 보내 적 기지를 공격합니다.
item.copper.description = 모든 종류의 구조물 및 탄약으로 사용하는 기본 자원입니다. item.copper.description = 모든 종류의 구조물 및 탄약으로 사용하는 기본 자원입니다.
item.copper.details = 평범한 구리. 세르플로에 비정상적으로 많이 분포함. 보강지 않는 한 구조적으로 약. item.copper.details = 평범한 구리. 세르플로에 비정상적으로 많이 분포되어 있습니다. 기본적으로 보강지 않는 한 구조적으로 약합니다.
item.lead.description = 전자 및 액체 수송 블록에서 광범위하게 사용하는 기본 자원입니다. item.lead.description = 전자 및 액체 수송 블록에서 광범위하게 사용하는 기본 자원입니다.
item.lead.details = 밀도가 높으며 반응성이 적은 자원. 배터리에 주로 사용. item.lead.details = 밀도가 높으며 반응성이 적은 자원. 배터리에 주로 사용됩니다.
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.coal.details = 화석화된 식물 물질. 씨앗이 나오기 훨씬 전에 형성되었. item.coal.details = 화석화된 식물 물질. 씨앗이 나오기 훨씬 전에 형성되었습니다.
item.titanium.description = 액체 수송 구조물, 드릴 및 공장에서 광범위하게 사용되는 희귀한 초경량 금속입니다. item.titanium.description = 액체 수송 구조물, 드릴 및 공장에서 광범위하게 사용되는 희귀한 초경량 금속입니다.
item.thorium.description = 튼튼한 구조물과 핵 연료로 사용되는 고밀도의 방사성 금속입니다. item.thorium.description = 튼튼한 구조물과 핵 연료로 사용되는 고밀도의 방사성 금속입니다.
item.scrap.description = 융해기와 분쇄기를 통해 다른 물질로 정제할 수 있습니다. item.scrap.description = 융해기와 분쇄기를 통해 다른 물질로 정제할 수 있습니다.
item.scrap.details = 오래된 구조물과 기체의 잔해. 미량의 다양한 금속들이 포함되어 있. item.scrap.details = 오래된 구조물과 기체의 잔해. 미량의 다양한 금속들이 포함되어 있습니다.
item.silicon.description = 복잡한 전자 장치나 유도탄에 사용되는 유용한 반도체입니다. item.silicon.description = 복잡한 전자 장치나 유도탄에 사용되는 유용한 반도체입니다.
item.plastanium.description = 고급 기체, 절연 및 파편화 탄약에 사용됩니다. item.plastanium.description = 고급 기체, 절연 및 파편화 탄약에 사용됩니다.
item.phase-fabric.description = 최첨단 전자 제품과 자가 수리 기술에 사용되는 거의 무중력에 가까운 물질입니다. item.phase-fabric.description = 최첨단 전자 제품과 자가 수리 기술에 사용되는 거의 무중력에 가까운 물질입니다.
item.surge-alloy.description = 첨단 무기 및 반작용 방어 구조물에 사용되는 고급 합금입니다. item.surge-alloy.description = 첨단 무기 및 반작용 방어 구조물에 사용되는 고급 합금입니다.
item.spore-pod.description = 석유, 폭발물과 연료로 전환하는 데 사용되는 합성 포자 버섯입니다. item.spore-pod.description = 석유, 폭발물과 연료로 전환하는 데 사용되는 합성 포자 버섯입니다.
item.spore-pod.details = 포자. 합성 생명체로 판단. 타 유기체에 치명적인 독가스를 내뿜. 매우 빠르게 퍼. 특정 조건에서 인화성이 매우 높. item.spore-pod.details = 포자, 합성 생명체로 판단됩니다. 타 유기체에 치명적인 독가스를 내뿜으며. 매우 빠르게 퍼집니다. 특정 조건에서 인화성이 매우 높습니다.
item.blast-compound.description = 폭탄과 폭발성 탄약에 사용되는 불안정한 화합물입니다. item.blast-compound.description = 폭탄과 폭발성 탄약에 사용되는 불안정한 화합물입니다.
item.pyratite.description = 방화 무기와 연료를 연소하는 발전기에 사용되는 가연성이 매우 높은 물질입니다. item.pyratite.description = 방화 무기와 연료를 연소하는 발전기에 사용되는 가연성이 매우 높은 물질입니다.
item.beryllium.description = 에르키아의 여러 종류의 건축물과 탄약에 사용됩니다. item.beryllium.description = 에르키아의 여러 종류의 건축물과 탄약에 사용됩니다.
@@ -1998,7 +1999,7 @@ liquid.hydrogen.description = 자원 추출, 기체 생산 및 구조물 수리
liquid.cyanogen.description = 탄약, 첨단 기체의 구축 및 첨단 블록의 다양한 반응에 사용됩니다. 강한 인화성 물질입니다. liquid.cyanogen.description = 탄약, 첨단 기체의 구축 및 첨단 블록의 다양한 반응에 사용됩니다. 강한 인화성 물질입니다.
liquid.nitrogen.description = 자원 추출, 가스 생성 및 기체 생산에 사용됩니다. 불활성 물질입니다. liquid.nitrogen.description = 자원 추출, 가스 생성 및 기체 생산에 사용됩니다. 불활성 물질입니다.
liquid.neoplasm.description = 신생물 반응로의 위험한 생물학적 부산물. 접촉하는 즉시 인접한 모든 수분 함유 블록으로 빠르게 확산되며, 진행되는 동안 피해를 입힙니다. 점성을 띄는 물질입니다. liquid.neoplasm.description = 신생물 반응로의 위험한 생물학적 부산물. 접촉하는 즉시 인접한 모든 수분 함유 블록으로 빠르게 확산되며, 진행되는 동안 피해를 입힙니다. 점성을 띄는 물질입니다.
liquid.neoplasm.details = 신생물. 진흙과 같은 일관성을 가진 빠르게 분열하는 합성 세포의 통제 불가능한 덩어리. 열 저항. 물과 관련된 구조물에는 매우 위험.\n\n표준 분석에 비해 너무 복잡하고 불안정함. 잠재된 행동 원칙을 알 수 없음. 광재 웅덩이에 소각하는 것이 바람직. liquid.neoplasm.details = 신생물, 진흙과 비슷한 점성을 가졌으며, 통제 불능의 속도로 빠르게 확산되는 합성세포 덩어리 입니다. 고온에 저항력이 있으며, 일반적인 분석으로는 너무나 복잡하고 불안정하여 아직 정확한 행동 양식이나 생태를 확인하지 못 했습니다. 열 저항. 물과 관련된 구조물에는 매우 위험합니다.\n\n 광재 웅덩이에 소각하는 것이 바람직합니다.
block.derelict = \ue815 [lightgray]잔해 block.derelict = \ue815 [lightgray]잔해
block.armored-conveyor.description = 자원을 앞으로 운반합니다. 측면에서 자원을 받아들이지 않습니다. block.armored-conveyor.description = 자원을 앞으로 운반합니다. 측면에서 자원을 받아들이지 않습니다.
@@ -2528,7 +2529,7 @@ lenum.payenter = 유닛 아래의 화물 건물에 착륙/진입
lenum.flag = 깃발 수 설정 lenum.flag = 깃발 수 설정
lenum.mine = 특정 위치에서 채광 lenum.mine = 특정 위치에서 채광
lenum.build = 구조물 건설 lenum.build = 구조물 건설
lenum.getblock = 특정 좌표의 빌딩과 블록을 반환합니다.\n위치는 기체의 인지 범위 내여야 합니다.\n자연 지형은 [accent]@solid[]의 유형을 가집니다. lenum.getblock = Fetch building, floor and block type at coordinates.\nUnit must be in range of the position, otherwise null is returned.
lenum.within = 좌표 주변 기체 발견 여부 lenum.within = 좌표 주변 기체 발견 여부
lenum.boost = 이륙 시작/중단 lenum.boost = 이륙 시작/중단
lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle. lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle.

View File

@@ -1306,6 +1306,7 @@ rules.schematic = Schematics Allowed
rules.wavetimer = Bangų Laikmatis rules.wavetimer = Bangų Laikmatis
rules.wavesending = Wave Sending rules.wavesending = Wave Sending
rules.waves = Bangos rules.waves = Bangos
rules.airUseSpawns = Air units use spawn points
rules.attack = Puolimo Režimas rules.attack = Puolimo Režimas
rules.buildai = Base Builder AI rules.buildai = Base Builder AI
rules.buildaitier = Builder AI Tier rules.buildaitier = Builder AI Tier
@@ -2494,7 +2495,7 @@ lenum.payenter = Enter/land on the payload block the unit is on.
lenum.flag = Numeric unit flag. lenum.flag = Numeric unit flag.
lenum.mine = Mine at a position. lenum.mine = Mine at a position.
lenum.build = Build a structure. lenum.build = Build a structure.
lenum.getblock = Fetch a building and type at coordinates.\nUnit must be in range of position.\nSolid non-buildings will have the type [accent]@solid[]. lenum.getblock = Fetch building, floor and block type at coordinates.\nUnit must be in range of the position, otherwise null is returned.
lenum.within = Check if unit is near a position. lenum.within = Check if unit is near a position.
lenum.boost = Start/stop boosting. lenum.boost = Start/stop boosting.
lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle. lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle.

View File

@@ -1318,6 +1318,7 @@ rules.schematic = Ontwerpen Toegestaan
rules.wavetimer = Vijandelijke Golven Timer rules.wavetimer = Vijandelijke Golven Timer
rules.wavesending = Golven Sturen rules.wavesending = Golven Sturen
rules.waves = Golven rules.waves = Golven
rules.airUseSpawns = Air units use spawn points
rules.attack = Aanvalmodus rules.attack = Aanvalmodus
rules.buildai = Base Builder AI rules.buildai = Base Builder AI
rules.buildaitier = Builder AI Tier rules.buildaitier = Builder AI Tier
@@ -2507,7 +2508,7 @@ lenum.payenter = Enter/land on the payload block the unit is on.
lenum.flag = Numeric unit flag. lenum.flag = Numeric unit flag.
lenum.mine = Mine at a position. lenum.mine = Mine at a position.
lenum.build = Build a structure. lenum.build = Build a structure.
lenum.getblock = Fetch a building and type at coordinates.\nUnit must be in range of position.\nSolid non-buildings will have the type [accent]@solid[]. lenum.getblock = Fetch building, floor and block type at coordinates.\nUnit must be in range of the position, otherwise null is returned.
lenum.within = Check if unit is near a position. lenum.within = Check if unit is near a position.
lenum.boost = Start/stop boosting. lenum.boost = Start/stop boosting.
lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle. lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle.

View File

@@ -1306,6 +1306,7 @@ rules.schematic = Schematics Allowed
rules.wavetimer = Wave Timer rules.wavetimer = Wave Timer
rules.wavesending = Wave Sending rules.wavesending = Wave Sending
rules.waves = Waves rules.waves = Waves
rules.airUseSpawns = Air units use spawn points
rules.attack = Attack Mode rules.attack = Attack Mode
rules.buildai = Base Builder AI rules.buildai = Base Builder AI
rules.buildaitier = Builder AI Tier rules.buildaitier = Builder AI Tier
@@ -2494,7 +2495,7 @@ lenum.payenter = Enter/land on the payload block the unit is on.
lenum.flag = Numeric unit flag. lenum.flag = Numeric unit flag.
lenum.mine = Mine at a position. lenum.mine = Mine at a position.
lenum.build = Build a structure. lenum.build = Build a structure.
lenum.getblock = Fetch a building and type at coordinates.\nUnit must be in range of position.\nSolid non-buildings will have the type [accent]@solid[]. lenum.getblock = Fetch building, floor and block type at coordinates.\nUnit must be in range of the position, otherwise null is returned.
lenum.within = Check if unit is near a position. lenum.within = Check if unit is near a position.
lenum.boost = Start/stop boosting. lenum.boost = Start/stop boosting.
lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle. lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle.

View File

@@ -1315,6 +1315,7 @@ rules.schematic = Zezwalaj na schematy
rules.wavetimer = Zegar Fal rules.wavetimer = Zegar Fal
rules.wavesending = Wysyłanie Fal rules.wavesending = Wysyłanie Fal
rules.waves = Fale rules.waves = Fale
rules.airUseSpawns = Air units use spawn points
rules.attack = Tryb Ataku rules.attack = Tryb Ataku
rules.buildai = AI Budowania Baz rules.buildai = AI Budowania Baz
rules.buildaitier = Poziom Budowania AI rules.buildaitier = Poziom Budowania AI
@@ -2547,7 +2548,7 @@ lenum.payenter = Wejdź/wyląduj na bloku ładunku, na którym znajduje się jed
lenum.flag = Numeryczny znacznik jednostki. lenum.flag = Numeryczny znacznik jednostki.
lenum.mine = Kop na danej pozycji. lenum.mine = Kop na danej pozycji.
lenum.build = Buduj strukturę. lenum.build = Buduj strukturę.
lenum.getblock = Pobierz budynek i typ ze współrzędnych.\nJednostka musi być w zasięgu pozycji.\nSolidne niebudynki będą miały typ [accent]@solid[]. lenum.getblock = Fetch building, floor and block type at coordinates.\nUnit must be in range of the position, otherwise null is returned.
lenum.within = Sprawdź czy jednostka jest w pobliżu pozycji. lenum.within = Sprawdź czy jednostka jest w pobliżu pozycji.
lenum.boost = Zacznij/zakończ przyspieszać. lenum.boost = Zacznij/zakończ przyspieszać.
lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle. lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle.

View File

@@ -1325,6 +1325,7 @@ rules.schematic = Permitir Esquemas
rules.wavetimer = Tempo de horda rules.wavetimer = Tempo de horda
rules.wavesending = Wave Sending rules.wavesending = Wave Sending
rules.waves = Hordas rules.waves = Hordas
rules.airUseSpawns = Air units use spawn points
rules.attack = Modo de ataque rules.attack = Modo de ataque
rules.buildai = Base Builder AI rules.buildai = Base Builder AI
rules.buildaitier = Builder AI Tier rules.buildaitier = Builder AI Tier
@@ -2545,7 +2546,7 @@ lenum.payenter = Entre/pouse no bloco de carga em que a unidade está.
lenum.flag = Sinalizador de unidade numérica. lenum.flag = Sinalizador de unidade numérica.
lenum.mine = Mina em uma posição. lenum.mine = Mina em uma posição.
lenum.build = Construa uma estrutura. lenum.build = Construa uma estrutura.
lenum.getblock = Busque uma construção e digite nas coordenadas.\nA unidade deve estar no intervalo de posição.\nConstruções sólidas não construídas terão o tipo [accent]@solid[]. lenum.getblock = Fetch building, floor and block type at coordinates.\nUnit must be in range of the position, otherwise null is returned.
lenum.within = Verifique se a unidade está perto de uma posição. lenum.within = Verifique se a unidade está perto de uma posição.
lenum.boost = Iniciar/parar o reforço. lenum.boost = Iniciar/parar o reforço.
lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle. lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle.

View File

@@ -1306,6 +1306,7 @@ rules.schematic = Schematics Allowed
rules.wavetimer = Tempo de horda rules.wavetimer = Tempo de horda
rules.wavesending = Wave Sending rules.wavesending = Wave Sending
rules.waves = Hordas rules.waves = Hordas
rules.airUseSpawns = Air units use spawn points
rules.attack = Modo de ataque rules.attack = Modo de ataque
rules.buildai = Base Builder AI rules.buildai = Base Builder AI
rules.buildaitier = Builder AI Tier rules.buildaitier = Builder AI Tier
@@ -2494,7 +2495,7 @@ lenum.payenter = Enter/land on the payload block the unit is on.
lenum.flag = Numeric unit flag. lenum.flag = Numeric unit flag.
lenum.mine = Mine at a position. lenum.mine = Mine at a position.
lenum.build = Build a structure. lenum.build = Build a structure.
lenum.getblock = Fetch a building and type at coordinates.\nUnit must be in range of position.\nSolid non-buildings will have the type [accent]@solid[]. lenum.getblock = Fetch building, floor and block type at coordinates.\nUnit must be in range of the position, otherwise null is returned.
lenum.within = Check if unit is near a position. lenum.within = Check if unit is near a position.
lenum.boost = Start/stop boosting. lenum.boost = Start/stop boosting.
lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle. lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle.

View File

@@ -1317,6 +1317,7 @@ rules.schematic = Se Pot Folosi Scheme
rules.wavetimer = Valuri pe Timp rules.wavetimer = Valuri pe Timp
rules.wavesending = Wave Sending rules.wavesending = Wave Sending
rules.waves = Valuri rules.waves = Valuri
rules.airUseSpawns = Air units use spawn points
rules.attack = Modul Atac rules.attack = Modul Atac
rules.buildai = Base Builder AI rules.buildai = Base Builder AI
rules.buildaitier = Builder AI Tier rules.buildaitier = Builder AI Tier
@@ -2530,7 +2531,7 @@ lenum.payenter = Enter/land on the payload block the unit is on.
lenum.flag = Oferă o etichetă numerică unității. lenum.flag = Oferă o etichetă numerică unității.
lenum.mine = Minează din această locație. lenum.mine = Minează din această locație.
lenum.build = Construiește o structură. lenum.build = Construiește o structură.
lenum.getblock = Obține clădirea și tipul clădirii aflate la coordonatele specificate.\nUnitatea trebuie să se afle în raza poziției.\nBlocurile solide care nu sunt clădiri vor avea tipul [accent]@solid[]. lenum.getblock = Fetch building, floor and block type at coordinates.\nUnit must be in range of the position, otherwise null is returned.
lenum.within = Verifică dacă unitatea se află în apropierea poziției. lenum.within = Verifică dacă unitatea se află în apropierea poziției.
lenum.boost = Pornește/oprește propulsorul. lenum.boost = Pornește/oprește propulsorul.
lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle. lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle.

View File

@@ -1316,6 +1316,7 @@ rules.schematic = Разрешить схемы
rules.wavetimer = Интервал волн rules.wavetimer = Интервал волн
rules.wavesending = Отправка волн rules.wavesending = Отправка волн
rules.waves = Волны rules.waves = Волны
rules.airUseSpawns = Air units use spawn points
rules.attack = Режим атаки rules.attack = Режим атаки
rules.buildai = ИИ строит базы rules.buildai = ИИ строит базы
rules.buildaitier = Уровень баз ИИ rules.buildaitier = Уровень баз ИИ
@@ -2532,7 +2533,7 @@ lenum.payenter = Войти/приземлиться на грузовой бл
lenum.flag = Числовой флаг единицы. lenum.flag = Числовой флаг единицы.
lenum.mine = Копание в заданной позиции. lenum.mine = Копание в заданной позиции.
lenum.build = Строительство блоков. lenum.build = Строительство блоков.
lenum.getblock = Распознавание блока и его типа на координатах.\nЕдиница должна находиться в пределах досягаемости.\nТвёрдые не-постройки будут иметь тип [accent]@solid[]. lenum.getblock = Fetch building, floor and block type at coordinates.\nUnit must be in range of the position, otherwise null is returned.
lenum.within = Проверка на нахождение единицы рядом с позицией. lenum.within = Проверка на нахождение единицы рядом с позицией.
lenum.boost = Включение/выключение полёта. lenum.boost = Включение/выключение полёта.
lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle. lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle.

View File

@@ -1319,6 +1319,7 @@ rules.schematic = Šeme Su Dozvoljene
rules.wavetimer = Talasna Štoperica rules.wavetimer = Talasna Štoperica
rules.wavesending = Slanje Talasa rules.wavesending = Slanje Talasa
rules.waves = Talasi rules.waves = Talasi
rules.airUseSpawns = Air units use spawn points
rules.attack = Mod Napada rules.attack = Mod Napada
rules.buildai = Base Builder AI rules.buildai = Base Builder AI
rules.buildaitier = Builder AI Tier rules.buildaitier = Builder AI Tier
@@ -2533,7 +2534,7 @@ lenum.payenter = Enter/land on the payload block the unit is on.
lenum.flag = Numeric unit flag. lenum.flag = Numeric unit flag.
lenum.mine = Mine at a position. lenum.mine = Mine at a position.
lenum.build = Build a structure. lenum.build = Build a structure.
lenum.getblock = Fetch a building and type at coordinates.\nUnit must be in range of position.\nSolid non-buildings will have the type [accent]@solid[]. lenum.getblock = Fetch building, floor and block type at coordinates.\nUnit must be in range of the position, otherwise null is returned.
lenum.within = Check if unit is near a position. lenum.within = Check if unit is near a position.
lenum.boost = Start/stop boosting. lenum.boost = Start/stop boosting.
lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle. lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle.

View File

@@ -1306,6 +1306,7 @@ rules.schematic = Schematics Allowed
rules.wavetimer = Vågtimer rules.wavetimer = Vågtimer
rules.wavesending = Wave Sending rules.wavesending = Wave Sending
rules.waves = Vågor rules.waves = Vågor
rules.airUseSpawns = Air units use spawn points
rules.attack = Attack Mode rules.attack = Attack Mode
rules.buildai = Base Builder AI rules.buildai = Base Builder AI
rules.buildaitier = Builder AI Tier rules.buildaitier = Builder AI Tier
@@ -2494,7 +2495,7 @@ lenum.payenter = Enter/land on the payload block the unit is on.
lenum.flag = Numeric unit flag. lenum.flag = Numeric unit flag.
lenum.mine = Mine at a position. lenum.mine = Mine at a position.
lenum.build = Build a structure. lenum.build = Build a structure.
lenum.getblock = Fetch a building and type at coordinates.\nUnit must be in range of position.\nSolid non-buildings will have the type [accent]@solid[]. lenum.getblock = Fetch building, floor and block type at coordinates.\nUnit must be in range of the position, otherwise null is returned.
lenum.within = Check if unit is near a position. lenum.within = Check if unit is near a position.
lenum.boost = Start/stop boosting. lenum.boost = Start/stop boosting.
lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle. lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle.

View File

@@ -1318,6 +1318,7 @@ rules.schematic = อนุญาตให้ใช้แผนผัง
rules.wavetimer = นับถอยหลังการปล่อยคลื่น rules.wavetimer = นับถอยหลังการปล่อยคลื่น
rules.wavesending = กดเพื่อปล่อยคลื่น rules.wavesending = กดเพื่อปล่อยคลื่น
rules.waves = คลื่น rules.waves = คลื่น
rules.airUseSpawns = Air units use spawn points
rules.attack = โหมดการโจมตี rules.attack = โหมดการโจมตี
rules.buildai = AI สร้างฐานทัพ rules.buildai = AI สร้างฐานทัพ
rules.buildaitier = ระดับการสร้างของ AI rules.buildaitier = ระดับการสร้างของ AI
@@ -2551,7 +2552,7 @@ lenum.payenter = เข้าไป/ลงจอดบนบล็อกบร
lenum.flag = ปักธงยูนิตเป็นหมายเลข lenum.flag = ปักธงยูนิตเป็นหมายเลข
lenum.mine = ขุดที่ตำแหน่งเป้าหมาย lenum.mine = ขุดที่ตำแหน่งเป้าหมาย
lenum.build = สร้างสิ่งก่อสร้าง lenum.build = สร้างสิ่งก่อสร้าง
lenum.getblock = ดึงข้อมูลสิ่งก่อสร้างและประเภทของสิ่งก่อสร้างที่ตำแหน่งเป้าหมาย\nยูนิตต้องอยู่ในระยะของตำแหน่ง\nบล็อกตันที่ไม่ใช่สิ่งก่อสร้างจะมีชนิดเป็น [accent]@solid[] lenum.getblock = Fetch building, floor and block type at coordinates.\nUnit must be in range of the position, otherwise null is returned.
lenum.within = ตรวจสอบว่ายูนิตนั้นอยู่ในระยะหรือไม่ lenum.within = ตรวจสอบว่ายูนิตนั้นอยู่ในระยะหรือไม่
lenum.boost = เริ่ม/หยุดการบูสต์ lenum.boost = เริ่ม/หยุดการบูสต์
lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle. lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle.

View File

@@ -1306,6 +1306,7 @@ rules.schematic = Schematics Allowed
rules.wavetimer = Wave Timer rules.wavetimer = Wave Timer
rules.wavesending = Wave Sending rules.wavesending = Wave Sending
rules.waves = Waves rules.waves = Waves
rules.airUseSpawns = Air units use spawn points
rules.attack = Attack Mode rules.attack = Attack Mode
rules.buildai = Base Builder AI rules.buildai = Base Builder AI
rules.buildaitier = Builder AI Tier rules.buildaitier = Builder AI Tier
@@ -2494,7 +2495,7 @@ lenum.payenter = Enter/land on the payload block the unit is on.
lenum.flag = Numeric unit flag. lenum.flag = Numeric unit flag.
lenum.mine = Mine at a position. lenum.mine = Mine at a position.
lenum.build = Build a structure. lenum.build = Build a structure.
lenum.getblock = Fetch a building and type at coordinates.\nUnit must be in range of position.\nSolid non-buildings will have the type [accent]@solid[]. lenum.getblock = Fetch building, floor and block type at coordinates.\nUnit must be in range of the position, otherwise null is returned.
lenum.within = Check if unit is near a position. lenum.within = Check if unit is near a position.
lenum.boost = Start/stop boosting. lenum.boost = Start/stop boosting.
lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle. lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle.

View File

@@ -1315,6 +1315,7 @@ rules.schematic = Şema Kullanılabilir
rules.wavetimer = Dalga Zamanlayıcısı rules.wavetimer = Dalga Zamanlayıcısı
rules.wavesending = Dalga Gönderiliyor rules.wavesending = Dalga Gönderiliyor
rules.waves = Dalgalar rules.waves = Dalgalar
rules.airUseSpawns = Air units use spawn points
rules.attack = Saldırı Modu rules.attack = Saldırı Modu
rules.buildai = Üs inşa edici YZ rules.buildai = Üs inşa edici YZ
rules.buildaitier = İnşaatçı YZ sınıfı rules.buildaitier = İnşaatçı YZ sınıfı
@@ -2530,7 +2531,7 @@ lenum.payenter = Bir birimi, kargo tutabilen bir bloğa indir.
lenum.flag = Numara ile işaretle. lenum.flag = Numara ile işaretle.
lenum.mine = Kaz. lenum.mine = Kaz.
lenum.build = Bina inşa et. lenum.build = Bina inşa et.
lenum.getblock = Bir bloğun verilerini al. lenum.getblock = Fetch building, floor and block type at coordinates.\nUnit must be in range of the position, otherwise null is returned.
lenum.within = Bir birim menzil alanında mı? lenum.within = Bir birim menzil alanında mı?
lenum.boost = Boostlamaya başla/dur lenum.boost = Boostlamaya başla/dur
lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle. lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle.

View File

@@ -57,7 +57,7 @@ mods.browser.sortstars = Сортувати за популярністю
schematic = Схема schematic = Схема
schematic.add = Зберегти схему… schematic.add = Зберегти схему…
schematics = Схеми schematics = Схеми
schematic.search = Search schematics... schematic.search = Шукати схеми...
schematic.replace = Схема з такою назвою вже є. Замінити її? schematic.replace = Схема з такою назвою вже є. Замінити її?
schematic.exists = Схема з такою назвою вже є. schematic.exists = Схема з такою назвою вже є.
schematic.import = Імпортувати схему… schematic.import = Імпортувати схему…
@@ -70,7 +70,7 @@ schematic.shareworkshop = Поширити в Майстерню
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Обернути схему schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Обернути схему
schematic.saved = Схема збережена. schematic.saved = Схема збережена.
schematic.delete.confirm = Ви справді хочете видалити цю схему? schematic.delete.confirm = Ви справді хочете видалити цю схему?
schematic.edit = Edit Schematic schematic.edit = Редагувати схему
schematic.info = {0}x{1}, блоків: {2} schematic.info = {0}x{1}, блоків: {2}
schematic.disabled = [scarlet]Схеми вимкнено[]\nВам не дозволяється використовувати схеми на цій [accent]мапі[] чи [accent]сервері. schematic.disabled = [scarlet]Схеми вимкнено[]\nВам не дозволяється використовувати схеми на цій [accent]мапі[] чи [accent]сервері.
schematic.tags = Мітки: schematic.tags = Мітки:
@@ -79,7 +79,7 @@ schematic.addtag = Додати мітку
schematic.texttag = Текстова мітка schematic.texttag = Текстова мітка
schematic.icontag = Мітка із значком schematic.icontag = Мітка із значком
schematic.renametag = Перейменувати мітку schematic.renametag = Перейменувати мітку
schematic.tagged = {0} tagged schematic.tagged = {0} з міткою
schematic.tagdelconfirm = Видалити цю мітку повністю? schematic.tagdelconfirm = Видалити цю мітку повністю?
schematic.tagexists = Схожа мітка вже існує. schematic.tagexists = Схожа мітка вже існує.
@@ -159,7 +159,7 @@ mod.requiresversion.details = Необхідна версія гри: [accent]{0
mod.outdatedv7.details = Ця модифікація не сумісна з останньою версією гри. Розробник модифікації має оновити її та додати [accent]minGameVersion: 136[] у свій [accent]mod.json[] файл. mod.outdatedv7.details = Ця модифікація не сумісна з останньою версією гри. Розробник модифікації має оновити її та додати [accent]minGameVersion: 136[] у свій [accent]mod.json[] файл.
mod.blacklisted.details = Цю модифікацію було вручну внесено у чорний список за постійні збої або інші проблеми з цією версією гри. Не використовуйте її. mod.blacklisted.details = Цю модифікацію було вручну внесено у чорний список за постійні збої або інші проблеми з цією версією гри. Не використовуйте її.
mod.missingdependencies.details = У цій модифікації відсутні наступні залежності: {0} mod.missingdependencies.details = У цій модифікації відсутні наступні залежності: {0}
mod.erroredcontent.details = Ця модифікація спричинила помилки при завантаженні. Попросіть автора виправити їх. mod.erroredcontent.details = Ця модифікація спричинила помилки під час завантаження. Попросіть автора виправити їх.
mod.circulardependencies.details = Цей мод має залежності, які залежать одна від одної. mod.circulardependencies.details = Цей мод має залежності, які залежать одна від одної.
mod.incompletedependencies.details = Цей мод неможливо завантажити через недійсні або відсутні залежності: {0} mod.incompletedependencies.details = Цей мод неможливо завантажити через недійсні або відсутні залежності: {0}
mod.requiresversion = Необхідна версія гри: [red]{0} mod.requiresversion = Необхідна версія гри: [red]{0}
@@ -257,19 +257,19 @@ trace = Стежити за гравцем
trace.playername = Ім’я гравця: [accent]{0} trace.playername = Ім’я гравця: [accent]{0}
trace.ip = IP: [accent]{0} trace.ip = IP: [accent]{0}
trace.id = Ідентифікатор: [accent]{0} trace.id = Ідентифікатор: [accent]{0}
trace.language = Language: [accent]{0} trace.language = Мова: [accent]{0}
trace.mobile = Мобільний клієнт: [accent]{0} trace.mobile = Мобільний клієнт: [accent]{0}
trace.modclient = Користувацький клієнт: [accent]{0} trace.modclient = Користувацький клієнт: [accent]{0}
trace.times.joined = Кількість приєднань: [accent]{0} trace.times.joined = Кількість приєднань: [accent]{0}
trace.times.kicked = Кількість вигнань: [accent]{0} trace.times.kicked = Кількість вигнань: [accent]{0}
trace.ips = IPs: trace.ips = IP:
trace.names = Names: trace.names = Імена:
invalidid = Невірний ідентифікатор клієнта! Надішліть звіт про помилку. invalidid = Невірний ідентифікатор клієнта! Надішліть звіт про помилку.
player.ban = Ban player.ban = Заблокувати
player.kick = Kick player.kick = Вигнати
player.trace = Trace player.trace = Відстежити
player.admin = Toggle Admin player.admin = Перемкнути адміністратора
player.team = Change Team player.team = Змінити команду
server.bans = Блокування server.bans = Блокування
server.bans.none = Заблокованих гравців немає! server.bans.none = Заблокованих гравців немає!
server.admins = Адміністратори server.admins = Адміністратори
@@ -286,8 +286,8 @@ confirmkick = Ви дійсно хочете вигнати «{0}[white]»?
confirmunban = Ви дійсно хочете розблокувати цього гравця? confirmunban = Ви дійсно хочете розблокувати цього гравця?
confirmadmin = Ви дійсно хочете зробити «{0}[white]» адміністратором? confirmadmin = Ви дійсно хочете зробити «{0}[white]» адміністратором?
confirmunadmin = Ви дійсно хочете видалити статус адміністратора з «{0}[white]»? confirmunadmin = Ви дійсно хочете видалити статус адміністратора з «{0}[white]»?
votekick.reason = Vote-Kick Reason votekick.reason = Причина голосування за вигнання гравця
votekick.reason.message = Are you sure you want to vote-kick "{0}[white]"?\nIf yes, please enter the reason: votekick.reason.message = Ви впевнені, що хочете вигнати голосуванням "{0}[white]"?\nЯкщо так, то, будь ласка, вкажіть причину:
joingame.title = Багатоосібна гра joingame.title = Багатоосібна гра
joingame.ip = IP: joingame.ip = IP:
disconnect = Відключено. disconnect = Відключено.
@@ -343,23 +343,23 @@ open = Відкрити
customize = Налаштувати правила customize = Налаштувати правила
cancel = Скасувати cancel = Скасувати
command = Командувати command = Командувати
command.queue = [lightgray][Queuing] command.queue = [lightgray][У черзі]
command.mine = Видобувати command.mine = Видобувати
command.repair = Ремонтувати command.repair = Ремонтувати
command.rebuild = Відбудовувати command.rebuild = Відбудовувати
command.assist = Допомагати гравцеві command.assist = Допомагати гравцеві
command.move = Рухатися command.move = Рухатися
command.boost = Летіти command.boost = Летіти
command.enterPayload = Enter Payload Block command.enterPayload = Увійти до вантажного блока
command.loadUnits = Load Units command.loadUnits = Завантажити одиниці
command.loadBlocks = Load Blocks command.loadBlocks = Завантажити блоки
command.unloadPayload = Unload Payload command.unloadPayload = Вивантажити вантаж
stance.stop = Cancel Orders stance.stop = Скасувати накази
stance.shoot = Stance: Shoot stance.shoot = Позиція: стріляти
stance.holdfire = Stance: Hold Fire stance.holdfire = Позиція: припинити вогонь
stance.pursuetarget = Stance: Pursue Target stance.pursuetarget = Позиція: переслідувати ціль
stance.patrol = Stance: Patrol Path stance.patrol = Позиція: шлях патрулювання
stance.ram = Stance: Ram\n[lightgray]Straight line movement, no pathfinding stance.ram = Позиція: на таран\n[lightgray]Рух по прямій лінії, без пошуку шляху
openlink = Перейти за посиланням openlink = Перейти за посиланням
copylink = Скопіювати посилання copylink = Скопіювати посилання
back = Назад back = Назад
@@ -440,12 +440,12 @@ editor.waves = Хвилі
editor.rules = Правила editor.rules = Правила
editor.generation = Генерація editor.generation = Генерація
editor.objectives = Завдання editor.objectives = Завдання
editor.locales = Locale Bundles editor.locales = Мовні пакети
editor.worldprocessors = World Processors editor.worldprocessors = Світові процесори
editor.worldprocessors.editname = Edit Name editor.worldprocessors.editname = Редагувати назву
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below. editor.worldprocessors.none = [lightgray]Блоки світового процесора не знайдено!\nДодайте його у редакторі мапи або скористайтеся кнопкою \ue813 «Додати» нижче.
editor.worldprocessors.nospace = No free space to place a world processor!\nDid you fill the map with structures? Why would you do this? editor.worldprocessors.nospace = Немає вільного місця для розміщення світового процесора! \nВи заповнили карту структурами? Навіщо ви це зробили?
editor.worldprocessors.delete.confirm = Are you sure you want to delete this world processor?\n\nIf it is surrounded by walls, it will be replaced by an environmental wall. editor.worldprocessors.delete.confirm = Ви справді хочете видалити цей світовий процесор?\n\nЯкщо він оточений стінами, його буде замінено стіною оточення.
editor.ingame = Редагувати в грі editor.ingame = Редагувати в грі
editor.playtest = Протестувати в грі editor.playtest = Протестувати в грі
editor.publish.workshop = Опублікувати в Майстерні Steam editor.publish.workshop = Опублікувати в Майстерні Steam
@@ -488,8 +488,8 @@ waves.sort.reverse = Зворотне сортування
waves.sort.begin = Хвилями waves.sort.begin = Хвилями
waves.sort.health = Здоров’ям waves.sort.health = Здоров’ям
waves.sort.type = Типом waves.sort.type = Типом
waves.search = Search waves... waves.search = Шукати хвилі...
waves.filter = Unit Filter waves.filter = Фільтр одиниць
waves.units.hide = Сховати все waves.units.hide = Сховати все
waves.units.show = Показати все waves.units.show = Показати все
@@ -515,7 +515,7 @@ editor.errorlegacy = Ця мапа занадто стара і використ
editor.errornot = Це не мапа. editor.errornot = Це не мапа.
editor.errorheader = Цей файл мапи недійсний або пошкоджений. editor.errorheader = Цей файл мапи недійсний або пошкоджений.
editor.errorname = Мапа не має назви. Може, ви намагаєтеся завантажити збереження? editor.errorname = Мапа не має назви. Може, ви намагаєтеся завантажити збереження?
editor.errorlocales = Error reading invalid locale bundles. editor.errorlocales = Виникла помилка під час читання мовних пакетів: недійсний мовний пакет.
editor.update = Оновити editor.update = Оновити
editor.randomize = Випадково editor.randomize = Випадково
editor.moveup = Підняти вище editor.moveup = Підняти вище
@@ -527,7 +527,7 @@ editor.sectorgenerate = Згенерувати сектор
editor.resize = Змінити\nрозмір editor.resize = Змінити\nрозмір
editor.loadmap = Завантажити мапу editor.loadmap = Завантажити мапу
editor.savemap = Зберегти мапу editor.savemap = Зберегти мапу
editor.savechanges = [scarlet]You have unsaved changes!\n\n[]Do you want to save them? editor.savechanges = [scarlet]У вас є незбережені зміни!\n\n[]Чи хочете ви їх зберегти?
editor.saved = Збережено! editor.saved = Збережено!
editor.save.noname = Ваша мапа не має назви! Установіть його в «Інформація про мапу». editor.save.noname = Ваша мапа не має назви! Установіть його в «Інформація про мапу».
editor.save.overwrite = Ваша мапа перезаписує вбудовану мапу! Виберіть іншу назву в «Інформація про мапу». editor.save.overwrite = Ваша мапа перезаписує вбудовану мапу! Виберіть іншу назву в «Інформація про мапу».
@@ -566,8 +566,8 @@ toolmode.eraseores = Видалення руд
toolmode.eraseores.description = Видалити тільки руди. toolmode.eraseores.description = Видалити тільки руди.
toolmode.fillteams = Змінити блок у команді toolmode.fillteams = Змінити блок у команді
toolmode.fillteams.description = Змінює належність\nблоків до команди. toolmode.fillteams.description = Змінює належність\nблоків до команди.
toolmode.fillerase = Fill Erase toolmode.fillerase = Видалити однотипне
toolmode.fillerase.description = Erase blocks of the same type. toolmode.fillerase.description = Видаляє однотипні блоки.
toolmode.drawteams = Змінити команду блока toolmode.drawteams = Змінити команду блока
toolmode.drawteams.description = Змінює належність\nблока до команди. toolmode.drawteams.description = Змінює належність\nблока до команди.
#unused #unused
@@ -616,25 +616,25 @@ filter.option.floor2 = Друга поверхня
filter.option.threshold2 = Вторинний граничний поріг filter.option.threshold2 = Вторинний граничний поріг
filter.option.radius = Радіус filter.option.radius = Радіус
filter.option.percentile = Спад filter.option.percentile = Спад
filter.option.code = Code filter.option.code = Код
filter.option.loop = Loop filter.option.loop = Цикл
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) locales.info = Тут ви можете додати на мапу мовні пакети для певних мов. У мовних пакетах кожна властивість має назву і значення. Ці властивості можуть бути використані світовими процесорами та завданнями їхніми назвами. Вони підтримують форматування тексту (замінюючи заповнювачі на дійсні значення).\n\n[cyan]Приклад властивості:\n[]name: [accent]timer[]\nvalue: [accent]Приклад таймеру, часу лишилось: @[]\n\n[cyan]Використання:\n[]Установіть його як текст завдання: [accent]@timer\n\n[]Надрукуйте його у світовому процесорі:\n[accent]localeprint "timer"\nformat time\n[gray](де час - окремо обчислена змінна)
locales.deletelocale = Are you sure you want to delete this locale bundle? locales.deletelocale = Ви справді хочете видалити цей мовний пакет?
locales.applytoall = Apply Changes To All Locales locales.applytoall = Застосувати зміни до всіх мовних пакетів
locales.addtoother = Add To Other Locales locales.addtoother = Додати до інших мовних пакетів
locales.rollback = Rollback to last applied locales.rollback = Повернення до останньої застосованої зміни
locales.filter = Property filter locales.filter = Фільтр властивостей
locales.searchname = Search name... locales.searchname = Шукати назву...
locales.searchvalue = Search value... locales.searchvalue = Шукати значення...
locales.searchlocale = Search locale... locales.searchlocale = Шукати мовний пакет...
locales.byname = By name locales.byname = За назвою
locales.byvalue = By value locales.byvalue = За значенням
locales.showcorrect = Show properties that are present in all locales and have unique values everywhere locales.showcorrect = Показати властивості, які присутні в усіх мовних пакетах і мають унікальні значення скрізь
locales.showmissing = Show properties that are missing in some locales locales.showmissing = Показати властивості, які відсутні в деяких мовних пакетах
locales.showsame = Show properties that have same values in different locales locales.showsame = Показати властивості, які мають однакові значення в різних мовних пакетах
locales.viewproperty = View in all locales locales.viewproperty = Переглянути в усіх мовних пакетах
locales.viewing = Viewing property "{0}" locales.viewing = Перегляд властивості "{0}"
locales.addicon = Add Icon locales.addicon = Додати значок
width = Ширина: width = Ширина:
height = Висота: height = Висота:
@@ -673,16 +673,16 @@ uncover = Розкрити
configure = Налаштувати вивантаження configure = Налаштувати вивантаження
objective.research.name = Дослідити objective.research.name = Дослідити
objective.produce.name = Отримайте objective.produce.name = Отримати
objective.item.name = Отримайте предмет objective.item.name = Отримати предмет
objective.coreitem.name = Предметів у ядрі objective.coreitem.name = Предметів у ядрі
objective.buildcount.name = Кількість споруд objective.buildcount.name = Кількість споруд
objective.unitcount.name = Кількість одиниць objective.unitcount.name = Кількість одиниць
objective.destroyunits.name = Знищте одиниць objective.destroyunits.name = Знищити одиниці
objective.timer.name = Таймер objective.timer.name = Таймер
objective.destroyblock.name = Знищте блок objective.destroyblock.name = Знищити блок
objective.destroyblocks.name = Знищте блоки objective.destroyblocks.name = Знищити блоки
objective.destroycore.name = Знищте ядро objective.destroycore.name = Знищити ядро
objective.commandmode.name = Режим командування objective.commandmode.name = Режим командування
objective.flag.name = Прапорець objective.flag.name = Прапорець
@@ -690,9 +690,9 @@ marker.shapetext.name = Форма тексту
marker.point.name = Point marker.point.name = Point
marker.shape.name = Форма marker.shape.name = Форма
marker.text.name = Текст marker.text.name = Текст
marker.line.name = Line marker.line.name = Лінія
marker.quad.name = Quad marker.quad.name = Квад
marker.texture.name = Texture marker.texture.name = Текстура
marker.background = Фон marker.background = Фон
marker.outline = Контур marker.outline = Контур
@@ -707,8 +707,8 @@ objective.build = [accent]Збудуйте: [][lightgray]{0}[]x\n{1}[lightgray]{
objective.buildunit = [accent]Сконструюйте одиницю: [][lightgray]{0}[]x\n{1}[lightgray]{2} objective.buildunit = [accent]Сконструюйте одиницю: [][lightgray]{0}[]x\n{1}[lightgray]{2}
objective.destroyunits = [accent]Знищте: [][lightgray]{0}[]x Units objective.destroyunits = [accent]Знищте: [][lightgray]{0}[]x Units
objective.enemiesapproaching = [accent]Вороги наблизяться через [lightgray]{0}[] objective.enemiesapproaching = [accent]Вороги наблизяться через [lightgray]{0}[]
objective.enemyescelating = [accent]Enemy production escalating in [lightgray]{0}[] objective.enemyescelating = [accent]Нарощування ворожого виробництва почнеться через [lightgray]{0}[]
objective.enemyairunits = [accent]Enemy air unit production beginning in [lightgray]{0}[] objective.enemyairunits = [accent]Виробництво ворожих повітряних одиниць почнеться через [lightgray]{0}[]
objective.destroycore = [accent]Знищте вороже ядро objective.destroycore = [accent]Знищте вороже ядро
objective.command = [accent]Командуйте над одиницями objective.command = [accent]Командуйте над одиницями
objective.nuclearlaunch = [accent]⚠ Виявлено ядерний запуск: [lightgray]{0} objective.nuclearlaunch = [accent]⚠ Виявлено ядерний запуск: [lightgray]{0}
@@ -844,7 +844,7 @@ sector.intersect.name = Роздоріжжя
sector.atlas.name = Атлант sector.atlas.name = Атлант
sector.split.name = Розколина sector.split.name = Розколина
sector.basin.name = Ставок sector.basin.name = Ставок
sector.marsh.name = Marsh sector.marsh.name = Болото
sector.peaks.name = Вершини sector.peaks.name = Вершини
sector.ravine.name = Яр sector.ravine.name = Яр
sector.caldera-erekir.name = Кальдера sector.caldera-erekir.name = Кальдера
@@ -1003,47 +1003,47 @@ stat.reactive = Реактивний
stat.immunities = Імунітети stat.immunities = Імунітети
stat.healing = Відновлювання stat.healing = Відновлювання
ability.forcefield = Щитове поле ability.forcefield = Силовий щит
ability.forcefield.description = Projects a force shield that absorbs bullets ability.forcefield.description = Створює силове поле, який поглинає кулі
ability.repairfield = Ремонтувальне поле ability.repairfield = Ремонтувальне поле
ability.repairfield.description = Repairs nearby units ability.repairfield.description = Ремонтує найближчі одиниці
ability.statusfield = Поле підсилення ability.statusfield = Поле підсилення
ability.statusfield.description = Applies a status effect to nearby units ability.statusfield.description = Застосовує ефект стану до сусідніх одиниць
ability.unitspawn = Завод одиниць <20> ability.unitspawn = Завод одиниць
ability.unitspawn.description = Constructs units ability.unitspawn.description = Створює одиниці
ability.shieldregenfield = Щитовідновлювальне поле ability.shieldregenfield = Щитовідновлювальне поле
ability.shieldregenfield.description = Regenerates shields of nearby units ability.shieldregenfield.description = Відновлює щити сусідніх одиниць
ability.movelightning = Блискавки під час руху ability.movelightning = Блискавки під час руху
ability.movelightning.description = Releases lightning while moving ability.movelightning.description = Випускає блискавки під час руху
ability.armorplate = Armor Plate ability.armorplate = Бронеплита
ability.armorplate.description = Reduces damage taken while shooting ability.armorplate.description = Зменшує шкоду під час стрільби
ability.shieldarc = Щитова дуга ability.shieldarc = Щитова дуга
ability.shieldarc.description = Projects a force shield in an arc that absorbs bullets ability.shieldarc.description = Проєктує силовий щит у вигляді дуги, що поглинає кулі
ability.suppressionfield = Поле пригнічення відновлення ability.suppressionfield = Поле пригнічення відновлення
ability.suppressionfield.description = Stops nearby repair buildings ability.suppressionfield.description = Зупиняється поблизу ремонтних будівель
ability.energyfield = Енергетичне поле ability.energyfield = Енергетичне поле
ability.energyfield.description = Zaps nearby enemies ability.energyfield.description = Вражає найближчих ворогів
ability.energyfield.healdescription = Zaps nearby enemies and heals allies ability.energyfield.healdescription = Вражає ворогів поблизу та зцілює союзників
ability.regen = Regeneration ability.regen = Лікування
ability.regen.description = Regenerates own health over time ability.regen.description = Відновлює власне здоров'я з часом
ability.liquidregen = Liquid Absorption ability.liquidregen = Поглинання рідини
ability.liquidregen.description = Absorbs liquid to heal itself ability.liquidregen.description = Поглинає рідину для самолікування
ability.spawndeath = Death Spawns ability.spawndeath = Смертельне породження
ability.spawndeath.description = Releases units on death ability.spawndeath.description = Випускає одиниць після смерті
ability.liquidexplode = Death Spillage ability.liquidexplode = Смертельний розлив
ability.liquidexplode.description = Spills liquid on death ability.liquidexplode.description = Розливає рідину після смерті
ability.stat.firingrate = [stat]{0}/sec[lightgray] firing rate ability.stat.firingrate = [lightgray]Швидкість стрільби[stat]{0} за сек.
ability.stat.regen = [stat]{0}[lightgray] health/sec ability.stat.regen = Відновлення здоров'я: [stat]{0} за сек.
ability.stat.shield = [stat]{0}[lightgray] shield ability.stat.shield = [lightgray]Щит: [stat]{0}
ability.stat.repairspeed = [stat]{0}/sec[lightgray] repair speed ability.stat.repairspeed = [lightgray]Швидкість відновлення: [stat]{0} за сек.
ability.stat.slurpheal = [stat]{0}[lightgray] health/liquid unit ability.stat.slurpheal = [lightgray]Здоров'я за одиницю рідини: [stat]{0}
ability.stat.cooldown = [stat]{0} sec[lightgray] cooldown ability.stat.cooldown = [lightgray]Перезаряджання: [stat]{0} за сек.
ability.stat.maxtargets = [stat]{0}[lightgray] max targets ability.stat.maxtargets = [lightgray]Максимум цілей: [white]{0}
ability.stat.sametypehealmultiplier = [stat]{0}%[lightgray] same type repair amount ability.stat.sametypehealmultiplier = [lightgray]Однотипне відновлення: [white]{0}%
ability.stat.damagereduction = [stat]{0}%[lightgray] damage reduction ability.stat.damagereduction = [lightgray]Зменшення шкоди: [stat]{0}%
ability.stat.minspeed = [stat]{0} tiles/sec[lightgray] min speed ability.stat.minspeed = [lightgray]Мінімальна швидкість: [stat]{0} плиток за сек.
ability.stat.duration = [stat]{0} sec[lightgray] duration ability.stat.duration = [lightgray]Тривалість: [stat]{0} за сек.
ability.stat.buildtime = [stat]{0} sec[lightgray] build time ability.stat.buildtime = [lightgray]Час побудови: [stat]{0} за сек.
bar.onlycoredeposit = Передача предметів дозволена лише до ядра bar.onlycoredeposit = Передача предметів дозволена лише до ядра
bar.drilltierreq = Потрібен ліпший бур bar.drilltierreq = Потрібен ліпший бур
@@ -1083,7 +1083,7 @@ bullet.splashdamage = [stat]{0}[lightgray] шкода по ділянці ~[stat
bullet.incendiary = [stat]запальний bullet.incendiary = [stat]запальний
bullet.homing = [stat]самонаведення bullet.homing = [stat]самонаведення
bullet.armorpierce = [stat]бронебійність bullet.armorpierce = [stat]бронебійність
bullet.maxdamagefraction = [stat]{0}%[lightgray] damage limit bullet.maxdamagefraction = [stat]{0}%[lightgray] обмеження шкоди
bullet.suppression = [stat]{0}[lightgray] сек. пригнічення відновлення ~ [stat]{1}[lightgray] плит. bullet.suppression = [stat]{0}[lightgray] сек. пригнічення відновлення ~ [stat]{1}[lightgray] плит.
bullet.interval = [stat]{0} за сек. [lightgray] період між кулями: bullet.interval = [stat]{0} за сек. [lightgray] період між кулями:
bullet.frags = [stat]{0}[lightgray]x шкода по ділянці від снарядів: bullet.frags = [stat]{0}[lightgray]x шкода по ділянці від снарядів:
@@ -1135,12 +1135,12 @@ setting.shadows.name = Тіні
setting.blockreplace.name = Пропонування щодо автоматичної заміни блоків setting.blockreplace.name = Пропонування щодо автоматичної заміни блоків
setting.linear.name = Лінійна фільтрація setting.linear.name = Лінійна фільтрація
setting.hints.name = Підказки setting.hints.name = Підказки
setting.logichints.name = Підказки при роботі з логікою setting.logichints.name = Підказки під час роботи з логікою
setting.backgroundpause.name = Пауза в разі згортання setting.backgroundpause.name = Пауза в разі згортання
setting.buildautopause.name = Автоматичне призупинення будування setting.buildautopause.name = Автоматичне призупинення будування
setting.doubletapmine.name = Подвійне швидке натискання для початку видобутку setting.doubletapmine.name = Подвійне швидке натискання для початку видобутку
setting.commandmodehold.name = Утримуйте для переходу в режим командування setting.commandmodehold.name = Утримуйте для переходу в режим командування
setting.distinctcontrolgroups.name = Limit One Control Group Per Unit setting.distinctcontrolgroups.name = Обмежити одну групу контролю на одиницю
setting.modcrashdisable.name = Вимикати модифікації після аварійного запуску setting.modcrashdisable.name = Вимикати модифікації після аварійного запуску
setting.animatedwater.name = Анімаційні рідини setting.animatedwater.name = Анімаційні рідини
setting.animatedshields.name = Анімаційні щити setting.animatedshields.name = Анімаційні щити
@@ -1187,14 +1187,14 @@ setting.position.name = Показувати координати гравця
setting.mouseposition.name = Показувати координати курсора setting.mouseposition.name = Показувати координати курсора
setting.musicvol.name = Гучність музики setting.musicvol.name = Гучність музики
setting.atmosphere.name = Показувати планетарну атмосферу setting.atmosphere.name = Показувати планетарну атмосферу
setting.drawlight.name = Draw Darkness/Lighting setting.drawlight.name = Малювати темряву/світло
setting.ambientvol.name = Звуки довкілля setting.ambientvol.name = Звуки довкілля
setting.mutemusic.name = Заглушити музику setting.mutemusic.name = Заглушити музику
setting.sfxvol.name = Гучність звукових ефектів setting.sfxvol.name = Гучність звукових ефектів
setting.mutesound.name = Заглушити звук setting.mutesound.name = Заглушити звук
setting.crashreport.name = Відсилати анонімні звіти про аварійне завершення гри setting.crashreport.name = Відсилати анонімні звіти про аварійне завершення гри
setting.savecreate.name = Автоматичне створення збережень setting.savecreate.name = Автоматичне створення збережень
setting.steampublichost.name = Public Game Visibility setting.steampublichost.name = Загальнодоступність гри
setting.playerlimit.name = Обмеження гравців setting.playerlimit.name = Обмеження гравців
setting.chatopacity.name = Непрозорість чату setting.chatopacity.name = Непрозорість чату
setting.lasersopacity.name = Непрозорість лазерів енергопостачання setting.lasersopacity.name = Непрозорість лазерів енергопостачання
@@ -1202,7 +1202,7 @@ setting.bridgeopacity.name = Непрозорість мостів
setting.playerchat.name = Показувати хмару чата над гравцями setting.playerchat.name = Показувати хмару чата над гравцями
setting.showweather.name = Показувати погоду setting.showweather.name = Показувати погоду
setting.hidedisplays.name = Приховувати логічні дисплеї setting.hidedisplays.name = Приховувати логічні дисплеї
setting.macnotch.name = Адаптуйте інтерфейс для відображення виїмки setting.macnotch.name = Адаптуйте інтерфейс для показу виїмки
setting.macnotch.description = Потрібен перезапуск для застосування змін setting.macnotch.description = Потрібен перезапуск для застосування змін
steam.friendsonly = Лише друзі steam.friendsonly = Лише друзі
steam.friendsonly.tooltip = Чи лише друзі Steam зможуть приєднатися до вашої гри.Якщо зняти цей прапорець, ваша гра стане загальнодоступною будь-хто зможе приєднатися. steam.friendsonly.tooltip = Чи лише друзі Steam зможуть приєднатися до вашої гри.Якщо зняти цей прапорець, ваша гра стане загальнодоступною будь-хто зможе приєднатися.
@@ -1214,7 +1214,7 @@ keybind.title = Налаштування керування
keybinds.mobile = [scarlet]Більшість прив’язаних клавіш не функціональні для мобільних пристроїв. Підтримується лише базовий рух. keybinds.mobile = [scarlet]Більшість прив’язаних клавіш не функціональні для мобільних пристроїв. Підтримується лише базовий рух.
category.general.name = Загальне category.general.name = Загальне
category.view.name = Перегляд category.view.name = Перегляд
category.command.name = Unit Command category.command.name = Командувати одиницею
category.multiplayer.name = Мережева гра category.multiplayer.name = Мережева гра
category.blocks.name = Вибір блока category.blocks.name = Вибір блока
placement.blockselectkeys = \n[lightgray]Клавіші: [{0}, placement.blockselectkeys = \n[lightgray]Клавіші: [{0},
@@ -1232,14 +1232,14 @@ keybind.mouse_move.name = Рухатися за мишею
keybind.pan.name = Політ камери за мишею keybind.pan.name = Політ камери за мишею
keybind.boost.name = Прискорення keybind.boost.name = Прискорення
keybind.command_mode.name = Режим командування keybind.command_mode.name = Режим командування
keybind.command_queue.name = Unit Command Queue keybind.command_queue.name = Черга команд одиниць
keybind.create_control_group.name = Create Control Group keybind.create_control_group.name = Створити контрольну групу
keybind.cancel_orders.name = Cancel Orders keybind.cancel_orders.name = Скасувати накази
keybind.unit_stance_shoot.name = Unit Stance: Shoot keybind.unit_stance_shoot.name = Позиція одиниці: відкрити воонь
keybind.unit_stance_hold_fire.name = Unit Stance: Hold Fire keybind.unit_stance_hold_fire.name = Позиція одиниці: припинити вогонь
keybind.unit_stance_pursue_target.name = Unit Stance: Pursue Target keybind.unit_stance_pursue_target.name = Позиція одиниці: переслідувати ціль
keybind.unit_stance_patrol.name = Unit Stance: Patrol keybind.unit_stance_patrol.name = Позиція одиниці: патрулювати
keybind.unit_stance_ram.name = Unit Stance: Ram keybind.unit_stance_ram.name = Позиція одиниці: на таран
keybind.unit_command_move.name = Unit Command: Move keybind.unit_command_move.name = Unit Command: Move
keybind.unit_command_repair.name = Unit Command: Repair keybind.unit_command_repair.name = Unit Command: Repair
keybind.unit_command_rebuild.name = Unit Command: Rebuild keybind.unit_command_rebuild.name = Unit Command: Rebuild
@@ -1249,7 +1249,7 @@ keybind.unit_command_boost.name = Unit Command: Boost
keybind.unit_command_load_units.name = Unit Command: Load Units keybind.unit_command_load_units.name = Unit Command: Load Units
keybind.unit_command_load_blocks.name = Unit Command: Load Blocks keybind.unit_command_load_blocks.name = Unit Command: Load Blocks
keybind.unit_command_unload_payload.name = Unit Command: Unload Payload keybind.unit_command_unload_payload.name = Unit Command: Unload Payload
keybind.unit_command_enter_payload.name = Unit Command: Enter Payload keybind.unit_command_enter_payload.name = Команда одиниці: завантажити вантаж
keybind.rebuild_select.name = Відбудувати регіон keybind.rebuild_select.name = Відбудувати регіон
keybind.schematic_select.name = Вибрати ділянку keybind.schematic_select.name = Вибрати ділянку
keybind.schematic_menu.name = Меню схем keybind.schematic_menu.name = Меню схем
@@ -1313,12 +1313,12 @@ 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.invaliddata = Invalid clipboard data. rules.invaliddata = Недійсні дані з клавіатури.
rules.hidebannedblocks = Приховати заборонені блоки rules.hidebannedblocks = Приховати заборонені блоки
rules.infiniteresources = Нескінченні ресурси rules.infiniteresources = Нескінченні ресурси
rules.onlydepositcore = Дозволити лише основне розміщення ядер rules.onlydepositcore = Дозволити лише основне розміщення ядер
rules.derelictrepair = Allow Derelict Block Repair rules.derelictrepair = Дозволити відновлення блоків Переможених
rules.reactorexplosions = Вибухи реактора rules.reactorexplosions = Вибухи реактора
rules.coreincinerates = Ядро спалює надлишкові предмети rules.coreincinerates = Ядро спалює надлишкові предмети
rules.disableworldprocessors = Вимкнути світові процесори rules.disableworldprocessors = Вимкнути світові процесори
@@ -1326,9 +1326,10 @@ rules.schematic = Використання схем дозволено
rules.wavetimer = Таймер для хвиль rules.wavetimer = Таймер для хвиль
rules.wavesending = Ручне надсилання хвиль rules.wavesending = Ручне надсилання хвиль
rules.waves = Хвилі rules.waves = Хвилі
rules.airUseSpawns = Air units use spawn points
rules.attack = Режим атаки rules.attack = Режим атаки
rules.buildai = Base Builder AI rules.buildai = Базовий ШІ-будівельник
rules.buildaitier = Builder AI Tier rules.buildaitier = Рівень ШІ-будівельника
rules.rtsai = ШІ зі стратегій реального часу rules.rtsai = ШІ зі стратегій реального часу
rules.rtsminsquadsize = Мінімальний розмір загону rules.rtsminsquadsize = Мінімальний розмір загону
rules.rtsmaxsquadsize = Максимальний розмір загону rules.rtsmaxsquadsize = Максимальний розмір загону
@@ -1357,7 +1358,7 @@ rules.buildcostmultiplier = Множник затрат на будування
rules.buildspeedmultiplier = Множник швидкості будування rules.buildspeedmultiplier = Множник швидкості будування
rules.deconstructrefundmultiplier = Множник відшкодування в разі демонтажу rules.deconstructrefundmultiplier = Множник відшкодування в разі демонтажу
rules.waitForWaveToEnd = Хвилі чекають на завершення попередньої rules.waitForWaveToEnd = Хвилі чекають на завершення попередньої
rules.wavelimit = Map Ends After Wave rules.wavelimit = Мапа закінчується після хвилі
rules.dropzoneradius = Радіус зони висадки:[lightgray] (плитки) rules.dropzoneradius = Радіус зони висадки:[lightgray] (плитки)
rules.unitammo = Бойові одиниці потребують боєприпасів rules.unitammo = Бойові одиниці потребують боєприпасів
rules.enemyteam = Ворожа команда rules.enemyteam = Ворожа команда
@@ -1462,7 +1463,7 @@ unit.navanax.name = Наванакс
unit.alpha.name = Альфа unit.alpha.name = Альфа
unit.beta.name = Бета unit.beta.name = Бета
unit.gamma.name = Гамма unit.gamma.name = Гамма
unit.scepter.name = Верховна влада unit.scepter.name = Скіпетр
unit.reign.name = Верховний Порядок unit.reign.name = Верховний Порядок
unit.vela.name = Пульсар Вітрил unit.vela.name = Пульсар Вітрил
unit.corvus.name = Ґава unit.corvus.name = Ґава
@@ -1783,7 +1784,7 @@ block.electric-heater.name = Електричний нагрівач
block.slag-heater.name = Шлаковий нагрівач block.slag-heater.name = Шлаковий нагрівач
block.phase-heater.name = Фазовий нагрівач block.phase-heater.name = Фазовий нагрівач
block.heat-redirector.name = Перенаправляч тепла block.heat-redirector.name = Перенаправляч тепла
block.heat-router.name = Heat Router block.heat-router.name = Тепловий маршрутизатор
block.slag-incinerator.name = Шлаковий сміттєспалювальний завод block.slag-incinerator.name = Шлаковий сміттєспалювальний завод
block.carbide-crucible.name = Карбідний тигель block.carbide-crucible.name = Карбідний тигель
block.slag-centrifuge.name = Шлакова центрифуга block.slag-centrifuge.name = Шлакова центрифуга
@@ -1898,18 +1899,18 @@ hint.desktopPause = Натисніть [accent][[Пробіл][], щоби зу
hint.breaking = Натисніть [accent]ПКМ[] і тягніть, щоби зруйнувати блоки. hint.breaking = Натисніть [accent]ПКМ[] і тягніть, щоби зруйнувати блоки.
hint.breaking.mobile = Активуйте \ue817 [accent]молот[] внизу праворуч і зробіть швидке натискання блоків, щоби їх розібрати.\n\nУтримуйте палець протягом секунди й протягніть, щоби розібрати виділене. hint.breaking.mobile = Активуйте \ue817 [accent]молот[] внизу праворуч і зробіть швидке натискання блоків, щоби їх розібрати.\n\nУтримуйте палець протягом секунди й протягніть, щоби розібрати виділене.
hint.blockInfo = Подивіться інформацію про блок. Перейдіть до [accent]меню будівництва[] і натисніть на кнопку [accent][[?][] праворуч. hint.blockInfo = Подивіться інформацію про блок. Перейдіть до [accent]меню будівництва[] і натисніть на кнопку [accent][[?][] праворуч.
hint.derelict = Будівлі [accent]Переможених[] є зламаними залишками старих баз, що більше не функціонують.\n\nЇх можна [accent]деконструювати[] для отримання ресурсів. hint.derelict = Будівлі [accent]Переможених[] є зламаними залишками старих баз, що більше не функціонують.\n\nЇх можна [accent]розібрати[] для отримання ресурсів або відбудувати.
hint.research = Використовуйте кнопку \ue875 [accent]Дослідження[] для дослідження нової технології. hint.research = Використовуйте кнопку \ue875 [accent]Дослідження[] для дослідження нової технології.
hint.research.mobile = Використовуйте \ue875 [accent]Дослідження[] в \ue88c [accent]меню[] для дослідження нової технології. hint.research.mobile = Використовуйте \ue875 [accent]Дослідження[] в \ue88c [accent]меню[] для дослідження нової технології.
hint.unitControl = Утримуйте [accent][[лівий Ctrl][] і [accent]натисніть[] на одиницю чи башту, щоби контролювати її. hint.unitControl = Утримуйте [accent][[лівий Ctrl][] і [accent]натисніть[] на одиницю чи башту, щоби контролювати її.
hint.unitControl.mobile = [accent][Зробіть коротке натискання двічі[], щоби контролювати союзні одиниці чи башти. hint.unitControl.mobile = [accent][Зробіть коротке натискання двічі[], щоби контролювати союзні одиниці чи башти.
hint.unitSelectControl = Для керування одиницями увійдіть в [accent]режим командування[], утримуючи [accent]лівий Shift[].\nПеребуваючи в командному режимі, натисніть і протягуйте для вибору одиниць. Натисніть [accent]ПКМ[] на позицію або ціль, щоби віддати наказ одиницям, які там знаходяться. hint.unitSelectControl = Для керування одиницями увійдіть в [accent]режим командування[], утримуючи [accent]лівий Shift[].\nПеребуваючи в командному режимі, натисніть і протягуйте для вибору одиниць. Натисніть [accent]ПКМ[] на позицію або ціль, щоби віддати наказ одиницям, які там знаходяться.
hint.unitSelectControl.mobile = Для керування одиницями увійдіть в [accent]режим командування[], натиснувши кнопку [accent]командувати[] ліворуч знизу.\nПеребуваючи в командному режимі, зробіть довгий натиск і протягуйте для вибору одиниць. Торкніться позиції або цілі, щоби віддати наказ одиницям, які там знаходяться. hint.unitSelectControl.mobile = Для керування одиницями увійдіть в [accent]режим командування[], натиснувши кнопку [accent]командувати[] ліворуч знизу.\nПеребуваючи в командному режимі, зробіть довгий натиск і протягуйте для вибору одиниць. Торкніться позиції або цілі, щоби віддати наказ одиницям, які там знаходяться.
hint.launch = Як тільки буде зібрано достатньо ресурсів, ви зможете зробити [accent]Запуск[] за допомогою вибору найближчих секторів \ue827 [accent]мапи[] внизу праворуч. hint.launch = Як тільки буде зібрано достатньо ресурсів, ви зможете зробити [accent]Запуск[] до наступних секторів \ue827 [accent]мапи[] внизу праворуч і перейти на нову локацію..
hint.launch.mobile = Як тільки буде зібрано достатньо ресурсів, ви зможете зробити [accent]Запуск[] за допомогою вибору найближчих секторів з \ue827 [accent]мапи[] у \ue88c [accent]меню[]. hint.launch.mobile = Як тільки буде зібрано достатньо ресурсів, ви зможете зробити [accent]Запуск[] за допомогою вибору найближчих секторів з \ue827 [accent]мапи[] у \ue88c [accent]меню[].
hint.schematicSelect = Утримуйте [accent][[F][] і тягніть, щоби вибрати блоки для їхнього подальшого копіювання і вставлення.\n\nНатисніть [accent][[СКМ][], щоби скопіювати певний тип блоку. hint.schematicSelect = Утримуйте [accent][[F][] і тягніть, щоби вибрати блоки для їхнього подальшого копіювання і вставлення.\n\nНатисніть [accent][[СКМ][], щоби скопіювати певний тип блоку.
hint.rebuildSelect = Утримуючи [accent][[B][], протягніть, щоби вибрати зруйновані проєкти блоків.\nЦе призведе до їхнього автоматичного відновлення. hint.rebuildSelect = Утримуючи [accent][[B][], протягніть, щоби вибрати зруйновані проєкти блоків.\nЦе призведе до їхньої автоматичної перебудови.
hint.rebuildSelect.mobile = Select the \ue874 copy button, then tap the \ue80f rebuild button and drag to select destroyed block plans.\nThis will rebuild them automatically. hint.rebuildSelect.mobile = Натисніть кнопку \ue874 копіювання, потім натисніть кнопку \ue80f перебудови і перетягніть, щоби вибрати знищені проєкти блоків.\nЦе призведе до їхньої автоматичної перебудови.
hint.conveyorPathfind = Утримуйте [accent][[лівий Ctrl][], коли тягнете конвеєри, щоб автоматично прокласти шлях. hint.conveyorPathfind = Утримуйте [accent][[лівий Ctrl][], коли тягнете конвеєри, щоб автоматично прокласти шлях.
hint.conveyorPathfind.mobile = Увімкніть \ue844 [accent]діагональний режим[] і тягніть конвеєри, щоб автоматично прокласти шлях. hint.conveyorPathfind.mobile = Увімкніть \ue844 [accent]діагональний режим[] і тягніть конвеєри, щоб автоматично прокласти шлях.
@@ -1943,7 +1944,7 @@ gz.walls = [accent]Стіни[] можуть запобігти потрапля
gz.defend = Ворог наступає, приготуйтеся до оборони. gz.defend = Ворог наступає, приготуйтеся до оборони.
gz.aa = Повітряні одиниці не можуть бути легко знищені зі стандартними баштами.\n\uf860 Башта [accent]розсіювач[] забезпечує відмінну протиповітряну оборону, але потребує \uf837 [accent]свинець[] як боєприпас. gz.aa = Повітряні одиниці не можуть бути легко знищені зі стандартними баштами.\n\uf860 Башта [accent]розсіювач[] забезпечує відмінну протиповітряну оборону, але потребує \uf837 [accent]свинець[] як боєприпас.
gz.scatterammo = Забезпечте башту розсіювач \uf837 [accent]свинцем[], використовуючи конвеєр. gz.scatterammo = Забезпечте башту розсіювач \uf837 [accent]свинцем[], використовуючи конвеєр.
gz.supplyturret = [accent]Башта постачання gz.supplyturret = [accent]Постачання до башти
gz.zone1 = Це зона висадки ворога. gz.zone1 = Це зона висадки ворога.
gz.zone2 = Усе, що побудовано в цьому радіусі, знищується, коли починається хвиля. gz.zone2 = Усе, що побудовано в цьому радіусі, знищується, коли починається хвиля.
gz.zone3 = Зараз почнеться хвиля.\nПриготуйется gz.zone3 = Зараз почнеться хвиля.\nПриготуйется
@@ -1952,7 +1953,7 @@ gz.finish = Збудуйте більше башт, видобудьте біл
onset.mine = Натисніть, щоби видобути \uf748 [accent]берилій[]зі стін.\n\nДля переміщення використовуйте [accent][[WASD]. onset.mine = Натисніть, щоби видобути \uf748 [accent]берилій[]зі стін.\n\nДля переміщення використовуйте [accent][[WASD].
onset.mine.mobile = Торкніться, щоби видобути \uf748 [accent]берилій[]зі стін. onset.mine.mobile = Торкніться, щоби видобути \uf748 [accent]берилій[]зі стін.
onset.research = Відкрийте \ue875 дерево технологій.\nДослідіть, а потім розмістіть \uf73e [accent]Турбінний кондесатор[] на джерелі (отворі).\nЦе буде генерувати [accent]енергію[]. onset.research = Відкрийте \ue875 дерево технологій.\nДослідіть, а потім розмістіть \uf73e [accent]Турбінний кондесатор[] на джерелі (отворі).\nЦе буде генерувати [accent]енергію[].
onset.bore = Дослідіть і розмістіт \uf741 [accent]плазмовий бурильник[].\nВін автоматично видобуває ресурси зі стін. onset.bore = Дослідіть і розмістіть \uf741 [accent]плазмовий бурильник[].\nВін автоматично видобуває ресурси зі стін.
onset.power = Для підключення [accent]енергії[] до плазмового бурильника, дослідіть і розмістіть \uf73d [accent]променевий вузол[].\nПідєднайте турбінний коденсатор до плазмового бурильника. onset.power = Для підключення [accent]енергії[] до плазмового бурильника, дослідіть і розмістіть \uf73d [accent]променевий вузол[].\nПідєднайте турбінний коденсатор до плазмового бурильника.
onset.ducts = Дослідіть і розмістіть \uf799 [accent]канали[], щоби переміщувати видобуті ресурси від плазмового бурильника до ядра.\nНатисніть і простягніть, щоби розмістити декілька каналів.\n[accent]Прокрутіть[], щоб обернути. onset.ducts = Дослідіть і розмістіть \uf799 [accent]канали[], щоби переміщувати видобуті ресурси від плазмового бурильника до ядра.\nНатисніть і простягніть, щоби розмістити декілька каналів.\n[accent]Прокрутіть[], щоб обернути.
onset.ducts.mobile = Дослідіть і розмістіть \uf799 [accent]канали[], щоби переміщувати видобуті ресурси від плазмового бурильника до ядра.\n\nУтримуйте свій палець близько секунди і простягніть, щоби розмістити декілька каналів. onset.ducts.mobile = Дослідіть і розмістіть \uf799 [accent]канали[], щоби переміщувати видобуті ресурси від плазмового бурильника до ядра.\n\nУтримуйте свій палець близько секунди і простягніть, щоби розмістити декілька каналів.
@@ -1967,15 +1968,15 @@ onset.turrets = Одиниці ефективні, але [accent]башти[]
onset.turretammo = Забезпечте башту [accent]берилієвими боєприпасами[]. onset.turretammo = Забезпечте башту [accent]берилієвими боєприпасами[].
onset.walls = [accent]Стіни[] cможе запобігти потраплянню зустрічної шкоди на будівлі.\nРозмістіть декілька \uf6ee [accent]берилієвих стін[] навколо башти. onset.walls = [accent]Стіни[] cможе запобігти потраплянню зустрічної шкоди на будівлі.\nРозмістіть декілька \uf6ee [accent]берилієвих стін[] навколо башти.
onset.enemies = Ворог наступає, готуйтеся до оборони. onset.enemies = Ворог наступає, готуйтеся до оборони.
onset.defenses = [accent]Set up defenses:[lightgray] {0} onset.defenses = [accent]Підготуйте захист:[lightgray] {0}
onset.attack = Ворог беззахисний. Контратакуйте. onset.attack = Ворог беззахисний. Контратакуйте.
onset.cores = Нові ядра можуть бути розміщені на плитках [accent]зони ядра[].\nНові ядра функціонують як передові бази й мають спільний інвентар ресурсів з іншими ядрами.\nРозмістіть \uf725 ядро. onset.cores = Нові ядра можуть бути розміщені на плитках [accent]зони ядра[].\nНові ядра функціонують як передові бази й мають спільний інвентар ресурсів з іншими ядрами.\nРозмістіть \uf725 ядро.
onset.detect = Ворог зможе виявити вас за 2 хвилини.\nОрганізуйте оборону, видобуток корисних копалин та виробництво. onset.detect = Ворог зможе виявити вас за 2 хвилини.\nОрганізуйте оборону, видобуток корисних копалин та виробництво.
#Don't translate these yet! #Don't translate these yet!
onset.commandmode = Утримуйте [accent]Shift[], щоб увійти в [accent]режим командування[].\n[accent]Зажміть ЛКМ і потягніть,[] щоб обрати одиниці.\n[accent]Використовуйте ПКМ[], щоби наказати обраним одиницям рухатися чи атакувати. onset.commandmode = Утримуйте [accent]Shift[], щоб увійти в [accent]режим командування[].\n[accent]Зажміть ЛКМ і потягніть,[] щоб обрати одиниці.\n[accent]Використовуйте ПКМ[], щоби наказати обраним одиницям рухатися чи атакувати.
onset.commandmode.mobile = Натисніть кнопку [accent]Командувати[], щоб увійти [accent]в режим командування[].\nУтримуйте палець і [accent]потягніть[], щоб обрати одиниці.\n[accent] Зробіть коротке натискання[], щоби наказати обраним одиницям рухатися чи атакувати. onset.commandmode.mobile = Натисніть кнопку [accent]Командувати[], щоб увійти [accent]в режим командування[].\nУтримуйте палець і [accent]потягніть[], щоби вибрати одиниці.\n[accent] Зробіть коротке натискання[], щоби наказати обраним одиницям рухатися чи атакувати.
aegis.tungsten = Tungsten can be mined using an [accent]impact drill[].\nThis structure requires [accent]water[] and [accent]power[]. aegis.tungsten = Вольфрам можна видобувати за допомогою [accent]імпульсного буру[].\nЦя будівля потребує [accent]води[] та [accent]енергію[].
split.pickup = Деякі блоки можуть бути підібрані основною ядровою одиницею.\nПідніміть цей [accent]контейнер[] і помістіть його до [accent]вантажного завантажувача[].\n(Клавіші за замовчуванням - [[ і ] для підняття та скидання) split.pickup = Деякі блоки можуть бути підібрані основною ядровою одиницею.\nПідніміть цей [accent]контейнер[] і помістіть його до [accent]вантажного завантажувача[].\n(Клавіші за замовчуванням - [[ і ] для підняття та скидання)
split.pickup.mobile = Деякі блоки можуть бути підібрані основною ядровою одиницею.\nПідніміть цей [accent]контейнер[] і помістіть його до [accent]вантажного завантажувача[].\n(Щоб підняти або скинути щось, довго натискайте на це щось.) split.pickup.mobile = Деякі блоки можуть бути підібрані основною ядровою одиницею.\nПідніміть цей [accent]контейнер[] і помістіть його до [accent]вантажного завантажувача[].\n(Щоб підняти або скинути щось, довго натискайте на це щось.)
@@ -2299,7 +2300,7 @@ unit.risso.description = Англійська назва: Risso\nВистріл
unit.minke.description = Англійська назва: Minke\nВистрілює запальними снарядами та стандартними кулями по найближчих наземних цілях. unit.minke.description = Англійська назва: Minke\nВистрілює запальними снарядами та стандартними кулями по найближчих наземних цілях.
unit.bryde.description = Англійська назва: Bryde\nВистрілює у ворогів артилерійськими снарядами та ракетами великої дальності. unit.bryde.description = Англійська назва: Bryde\nВистрілює у ворогів артилерійськими снарядами та ракетами великої дальності.
unit.sei.description = Англійська назва: Sei\nВистрілює у ворогів шквалом ракет і бронебійних куль. unit.sei.description = Англійська назва: Sei\nВистрілює у ворогів шквалом ракет і бронебійних куль.
unit.omura.description = Англійська назва: Omura\nВистрілює у ворогів далекобійним болтом, що пробиває броню. Виробляє повітряних Фальшфеєрів. unit.omura.description = Англійська назва: Omura\nВистрілює у ворогів далекобійним болтом, що пробиває броню. Виробляє повітряних спалахів.
unit.alpha.description = Англійська назва: Alpha\nЗахищає ядро «Уламок» від противників. Будує споруди. unit.alpha.description = Англійська назва: Alpha\nЗахищає ядро «Уламок» від противників. Будує споруди.
unit.beta.description = Англійська назва: Beta\nЗахищає ядро «Штаб» від противників. Будує споруди. unit.beta.description = Англійська назва: Beta\nЗахищає ядро «Штаб» від противників. Будує споруди.
unit.gamma.description = Англійська назва: Gamma\nЗахищає ядро «Атом» від противників. Будує споруди. unit.gamma.description = Англійська назва: Gamma\nЗахищає ядро «Атом» від противників. Будує споруди.
@@ -2323,8 +2324,8 @@ unit.collaris.description = Англійська назва: Collaris\nВеде
unit.elude.description = Англійська назва: Elude\nСтріляє парами самонавідних куль по ворожих цілях. Може парити над об’єктами з рідиною. unit.elude.description = Англійська назва: Elude\nСтріляє парами самонавідних куль по ворожих цілях. Може парити над об’єктами з рідиною.
unit.avert.description = Англійська назва: Avert\nВеде вогонь по ворожих цілях закрученими парами куль. unit.avert.description = Англійська назва: Avert\nВеде вогонь по ворожих цілях закрученими парами куль.
unit.obviate.description = Англійська назва: Obviate\nСтріляє по ворожих цілях закрученими парами блискавичних куль. unit.obviate.description = Англійська назва: Obviate\nСтріляє по ворожих цілях закрученими парами блискавичних куль.
unit.quell.description = Англійська назва: Quell\nВеде вогонь далекобійними самонавідними ракетами по об’єктах противника. Блокує ремонтні пункти супротивника. unit.quell.description = Англійська назва: Quell\nВеде вогонь далекобійними самонавідними ракетами по об’єктах противника. Блокує ремонтні пункти супротивника. Атакує тільки наземні цілі.
unit.disrupt.description = Англійська назва: Disrupt\nВеде вогонь ракетами дальнього радіуса дії з самонаведенням по об’єктах противника. Блокує ремонтні пункти супротивника. unit.disrupt.description = Англійська назва: Disrupt\nВеде вогонь ракетами дальнього радіуса дії з самонаведенням по об’єктах противника. Блокує ремонтні пункти супротивника. Атакує тільки наземні цілі.
unit.evoke.description = Англійська назва: Evoke\nБудує споруди для захисту ядра «Бастіон». Ремонтує споруди за допомогою променя. unit.evoke.description = Англійська назва: Evoke\nБудує споруди для захисту ядра «Бастіон». Ремонтує споруди за допомогою променя.
unit.incite.description = Англійська назва: Incite\nБудує споруди для захисту ядра «Цитадель». Ремонтує споруди за допомогою променя. unit.incite.description = Англійська назва: Incite\nБудує споруди для захисту ядра «Цитадель». Ремонтує споруди за допомогою променя.
unit.emanate.description = Англійська назва: Emanate\nБудує споруди для захисту ядра «Акрополь». Ремонтує споруди за допомогою променя. unit.emanate.description = Англійська назва: Emanate\nБудує споруди для захисту ядра «Акрополь». Ремонтує споруди за допомогою променя.
@@ -2332,7 +2333,7 @@ unit.emanate.description = Англійська назва: Emanate\nБудує
lst.read = Зчитує число із з’єднаної комірки пам’яті. lst.read = Зчитує число із з’єднаної комірки пам’яті.
lst.write = Записує числу у з’єднану комірку пам’яті. lst.write = Записує числу у з’єднану комірку пам’яті.
lst.print = Додайте текст до буфера друку.\nНічого не відображає, поки [accent]Print Flush[] використовується. lst.print = Додайте текст до буфера друку.\nНічого не відображає, поки [accent]Print Flush[] використовується.
lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example" lst.format = Замінити наступний замінник у текстовому буфері значенням.\nНе робить нічого, якщо шаблон заповнювача є недійсним.\nШаблон заповнювача: "{[accent]number 0-9[]}"\nПриклад:\n[accent]print "test {0}"\nformat "example"
lst.draw = Додає операцію до буфера рисунка.\nНічого не відображає, поки [accent]Draw Flush[] використовується. lst.draw = Додає операцію до буфера рисунка.\nНічого не відображає, поки [accent]Draw Flush[] використовується.
lst.drawflush = Скидає буфер операцій [accent]Draw[] на дисплей. lst.drawflush = Скидає буфер операцій [accent]Draw[] на дисплей.
lst.printflush = Скидає буфер операцій [accent]Print[] у блок «Повідомлення». lst.printflush = Скидає буфер операцій [accent]Print[] у блок «Повідомлення».
@@ -2345,7 +2346,7 @@ lst.operation = Виконує операцію над 1-2 змінними.
lst.end = Перейти до верхньої частини стеку операцій. lst.end = Перейти до верхньої частини стеку операцій.
lst.wait = Чекати певну кількість секунд. lst.wait = Чекати певну кількість секунд.
lst.stop = Зупиняє виконання процесора. lst.stop = Зупиняє виконання процесора.
lst.lookup = Знайти тип предмета, рідини, одиниці чи блоку за ідентифікатором.\nМожна отримати доступ до загальної кількості кожного типу через \n[accent]@unitCount[] / [accent]@itemCount[] / [accent]@liquidCount[] / [accent]@blockCount[] lst.lookup = Знайти тип предмета, рідини, одиниці чи блоку за ідентифікатором.\nМожна отримати доступ до загальної кількості кожного типу через \n[accent]@unitCount[] / [accent]@itemCount[] / [accent]@liquidCount[] / [accent]@blockCount[]\nДля зворотної операції використовуйте [accent]@id[] об'єкта.
lst.jump = Умовне переходження до іншої операції. lst.jump = Умовне переходження до іншої операції.
lst.unitbind = Прив’язка до одиниці певного типу та його зберігання в [accent]@unit[]. lst.unitbind = Прив’язка до одиниці певного типу та його зберігання в [accent]@unit[].
lst.unitcontrol = Контролювати поточну прив’язану одиницю. lst.unitcontrol = Контролювати поточну прив’язану одиницю.
@@ -2368,49 +2369,49 @@ lst.cutscene = Керує камерою гравця.
lst.setflag = Установлює глобальний прапорець, який можуть прочитати усі процесори. lst.setflag = Установлює глобальний прапорець, який можуть прочитати усі процесори.
lst.getflag = Перевіряє, чи встановлено глобальний прапорець. lst.getflag = Перевіряє, чи встановлено глобальний прапорець.
lst.setprop = Установлює властивість одиниці чи будівлі. lst.setprop = Установлює властивість одиниці чи будівлі.
lst.effect = Create a particle effect. lst.effect = Створює ефект частинок.
lst.sync = Sync a variable across the network.\nOnly invoked 10 times a second at most. lst.sync = Синхронізувати змінну по мережі.\nВикликається щонайбільше 10 разів за секунду.
lst.makemarker = Create a new logic marker in the world.\nAn ID to identify this marker must be provided.\nMarkers currently limited to 20,000 per world. lst.makemarker = Створює новий логічний маркер у світі.\nПотрібно надати ідентифікатор для ідентифікації цього маркера.\nНаразі кількість маркерів на світ обмежена 20 тисячами.
lst.setmarker = Set a property for a marker.\nThe ID used must be the same as in the Make Marker instruction. lst.setmarker = Установлює властивість для маркера.\nВикористаний ідентифікатор має збігатися з інструкцією «Створити маркер».
lst.localeprint = Add map locale property value to the text buffer.\nTo set map locale bundles in map editor, check [accent]Map Info > Locale Bundles[].\nIf client is a mobile device, tries to print a property ending in ".mobile" first. lst.localeprint = Додає значення властивості мовного пакету мапи до текстового буфера.\nЩоби встановити мовного пакету мапи в редакторі мапи, перейдіть до [accent]Інформація про мапу > Мовні пакети [].\nЯкщо клієнтом є мобільний пристрій, то спочатку намагається надрукувати властивість, що закінчується на ".mobile".
lglobal.false = 0 lglobal.false = 0
lglobal.true = 1 lglobal.true = 1
lglobal.null = null lglobal.null = null
lglobal.@pi = The mathematical constant pi (3.141...) lglobal.@pi = Математична константа пі (3.141...)
lglobal.@e = The mathematical constant e (2.718...) lglobal.@e = Математична константа e (2.718...)
lglobal.@degToRad = Multiply by this number to convert degrees to radians lglobal.@degToRad = Помножте на це число, щоб перевести градуси в радіани
lglobal.@radToDeg = Multiply by this number to convert radians to degrees lglobal.@radToDeg = Помножте на це число, щоб перевести радіани в градуси
lglobal.@time = Playtime of current save, in milliseconds lglobal.@time = Час гри поточного збереження, у мілісекундах
lglobal.@tick = Playtime of current save, in ticks (1 second = 60 ticks) lglobal.@tick = Час гри поточного збереження, in ticks (1 секунда = 60 ticks)
lglobal.@second = Playtime of current save, in seconds lglobal.@second = Час гри поточного збереження, в секундах
lglobal.@minute = Playtime of current save, in minutes lglobal.@minute = Час гри поточного збереження, у хвилинах
lglobal.@waveNumber = Current wave number, if waves are enabled lglobal.@waveNumber = Поточний номер хвилі, якщо хвилі ввімкнено
lglobal.@waveTime = Countdown timer for waves, in seconds lglobal.@waveTime = Таймер зворотного відліку для хвиль, в секундах
lglobal.@mapw = Map width in tiles lglobal.@mapw = Ширина мапи в плитках
lglobal.@maph = Map height in tiles lglobal.@maph = Висота мапи в плитках
lglobal.sectionMap = Map lglobal.sectionMap = Мапа
lglobal.sectionGeneral = General lglobal.sectionGeneral = Загальне
lglobal.sectionNetwork = Network/Clientside [World Processor Only] lglobal.sectionNetwork = Мережа/Клієнтська частина [Тільки світовий процесор]
lglobal.sectionProcessor = Processor lglobal.sectionProcessor = Процесор
lglobal.sectionLookup = Lookup lglobal.sectionLookup = Пошук
lglobal.@this = The logic block executing the code lglobal.@this = Логічний блок, що виконує код
lglobal.@thisx = X coordinate of block executing the code lglobal.@thisx = X координата блоку, що виконує код
lglobal.@thisy = Y coordinate of block executing the code lglobal.@thisy = Y координата блоку, що виконує код
lglobal.@links = Total number of blocks linked to this processors lglobal.@links = Загальна кількість блоків, пов'язаних з цим процесором
lglobal.@ipt = Execution speed of the processor in instructions per tick (60 ticks = 1 second) lglobal.@ipt = Швидкість виконання процесора в інструкціях за тик (60 ticks = 1 секунда)
lglobal.@unitCount = Total number of types of unit content in the game; used with the lookup instruction lglobal.@unitCount = Загальна кількість типів вмісту одиниць у грі; використовується з інструкцією lookup
lglobal.@blockCount = Total number of types of block content in the game; used with the lookup instruction lglobal.@blockCount = Загальна кількість типів вмісту блоків у грі; використовується з інструкцією lookup
lglobal.@itemCount = Total number of types of item content in the game; used with the lookup instruction lglobal.@itemCount = Загальна кількість типів вмісту предметів у грі; використовується з інструкцією lookup
lglobal.@liquidCount = Total number of types of liquid content in the game; used with the lookup instruction lglobal.@liquidCount = Загальна кількість типів вмісту рідин у грі; використовується з інструкцією lookup
lglobal.@server = True if the code is running on a server or in singleplayer, false otherwise lglobal.@server = Істина, якщо код виконується на сервері або в одноосібній грі, інакше хиба
lglobal.@client = True if the code is running on a client connected to a server lglobal.@client = Істина, якщо код виконується на клієнті, підключеному до сервера
lglobal.@clientLocale = Locale of the client running the code. For example: en_US lglobal.@clientLocale = Локалізація клієнта, на якому виконується код. Наприклад: en_US чи uk_UA
lglobal.@clientUnit = Unit of client running the code lglobal.@clientUnit = Одиниця клієнта, що виконує код
lglobal.@clientName = Player name of client running the code lglobal.@clientName = Ім'я гравця клієнта, на якому запущено код
lglobal.@clientTeam = Team ID of client running the code lglobal.@clientTeam = Ідентифікатор команди клієнта, що запускає код
lglobal.@clientMobile = True is the client running the code is on mobile, false otherwise lglobal.@clientMobile = Істина, якщо клієнт, на якому виконується код, є мобільним, інакше хиба
logic.nounitbuild = [red]Будування за допомогою процесорів заборено. logic.nounitbuild = [red]Будування за допомогою процесорів заборонено.
lenum.type = Тип будівлі чи одиниці.\nНаприклад, для будь-якого маршрутизатора (англ. router), функція вертатиме [accent]@router[].\nНе є рядком. lenum.type = Тип будівлі чи одиниці.\nНаприклад, для будь-якого маршрутизатора (англ. router), функція вертатиме [accent]@router[].\nНе є рядком.
lenum.shoot = Стріляти в зазначену позицію. lenum.shoot = Стріляти в зазначену позицію.
@@ -2424,7 +2425,7 @@ laccess.dead = Чи є одиниця або будівля мертвою аб
laccess.controlled = Повертає \n[accent]@ctrlProcessor[] якщо одиниця контролюється процесором;\n[accent]@ctrlPlayer[] якщо одиниця чи будівля контролюєть гравцем\n[accent]@ctrlFormation[] якщо одиниця у загоні (формуванні)\nІнакше — 0. laccess.controlled = Повертає \n[accent]@ctrlProcessor[] якщо одиниця контролюється процесором;\n[accent]@ctrlPlayer[] якщо одиниця чи будівля контролюєть гравцем\n[accent]@ctrlFormation[] якщо одиниця у загоні (формуванні)\nІнакше — 0.
laccess.progress = Прогрес дії, від 0 до 1.\nПовертає виробництво, перезавантаження башти або хід будівництва. laccess.progress = Прогрес дії, від 0 до 1.\nПовертає виробництво, перезавантаження башти або хід будівництва.
laccess.speed = Максимальна швидкість одиниці, у плитках за секунду. laccess.speed = Максимальна швидкість одиниці, у плитках за секунду.
laccess.id = ID of a unit/block/item/liquid.\nThis is the inverse of the lookup operation. laccess.id = Ідентифікатор одиниці/блоку/предмету/рідини.\nЦе зворотна операція до операції пошуку.
lcategory.unknown = Невідома категорія lcategory.unknown = Невідома категорія
lcategory.unknown.description = Команди без категорії. lcategory.unknown.description = Команди без категорії.
@@ -2452,7 +2453,7 @@ graphicstype.poly = Залити кольором правильний бага
graphicstype.linepoly = Намалювати контур правильного багатокутника. graphicstype.linepoly = Намалювати контур правильного багатокутника.
graphicstype.triangle = Залити кольором трикутник. graphicstype.triangle = Залити кольором трикутник.
graphicstype.image = Намалювати зображення із деяким вмістом.\nНаприклад: [accent]@router[] чи [accent]@dagger[]. graphicstype.image = Намалювати зображення із деяким вмістом.\nНаприклад: [accent]@router[] чи [accent]@dagger[].
graphicstype.print = Draws text from the print buffer.\nClears the print buffer. graphicstype.print = Малює текст з буфера друку.\nОчищає буфер друку.
lenum.always = Завжди істинне. lenum.always = Завжди істинне.
lenum.idiv = Ціле ділення. lenum.idiv = Ціле ділення.
@@ -2472,7 +2473,7 @@ lenum.xor = Виключне АБО (XOR).
lenum.min = Мінімум з двох чисел. lenum.min = Мінімум з двох чисел.
lenum.max = Максимум з двох чисел. lenum.max = Максимум з двох чисел.
lenum.angle = Кут вектора у градусах. lenum.angle = Кут вектора у градусах.
lenum.anglediff = Absolute distance between two angles in degrees. lenum.anglediff = Абсолютна відстань між двома кутами в градусах.
lenum.len = Довжина вектора. lenum.len = Довжина вектора.
lenum.sin = Синус, у градусах. lenum.sin = Синус, у градусах.
@@ -2546,8 +2547,8 @@ lenum.stop = Зупинити або рух, або видобуток, або
lenum.unbind = Повністю вимикає усю логіку.\nПродовжує стандартний ШІ. lenum.unbind = Повністю вимикає усю логіку.\nПродовжує стандартний ШІ.
lenum.move = Перемістити в точне положення. lenum.move = Перемістити в точне положення.
lenum.approach = Наближення до позиції із зазначеним радіусом. lenum.approach = Наближення до позиції із зазначеним радіусом.
lenum.pathfind = Знайдення шляху до точки появи ворогів. lenum.pathfind = Знайдення шляху до певної позиції.
lenum.autopathfind = Automatically pathfinds to the nearest enemy core or drop point.\nThis is the same as standard wave enemy pathfinding. lenum.autopathfind = Автоматично прокладає шлях до найближчого ядра або точки скидання ворога.\nЦе те саме, що і стандартне прокладання шляху у ворогів з хвиль.
lenum.target = Стрільба в задану позицію. lenum.target = Стрільба в задану позицію.
lenum.targetp = Стріляти в ціль із передбаченням швидкості. lenum.targetp = Стріляти в ціль із передбаченням швидкості.
lenum.itemdrop = Викинути предмет. lenum.itemdrop = Викинути предмет.
@@ -2558,7 +2559,7 @@ lenum.payenter = Увійти чи вийти з вантажного блока
lenum.flag = Числовий прапорець одиниці. lenum.flag = Числовий прапорець одиниці.
lenum.mine = Видобувати у заданій позиції. lenum.mine = Видобувати у заданій позиції.
lenum.build = Побудувати будівлю. lenum.build = Побудувати будівлю.
lenum.getblock = Розпізнавання блока та його типа за координатами.\nОдиниця повинна знаходитися в межах досяжності.\nСуцільні не-будівлі матимуть тип [accent]@solid[]. lenum.getblock = Fetch building, floor and block type at coordinates.\nUnit must be in range of the position, otherwise null is returned.
lenum.within = Чи знаходиться одиниця біля позиції. lenum.within = Чи знаходиться одиниця біля позиції.
lenum.boost = Почати чи зупинити політ. lenum.boost = Почати чи зупинити політ.
lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle. lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle.

View File

@@ -833,7 +833,7 @@ sector.stainedMountains.description = Xa hơn trong đất liền là những ng
sector.overgrowth.description = Khu vực này phát triển quá mức, gần nguồn bào tử hơn.\nĐịch đã lập tiền đồn ở đây. Chế tạo đơn vị Mace. Phá hủy nó. sector.overgrowth.description = Khu vực này phát triển quá mức, gần nguồn bào tử hơn.\nĐịch đã lập tiền đồn ở đây. Chế tạo đơn vị Mace. Phá hủy nó.
sector.tarFields.description = Vùng ngoại ô của khu sản xuất dầu, nằm giữa núi và sa mạc. Một trong số ít khu vực có trữ lượng dầu có thể sử dụng được.\nMặc dù bị bỏ hoang, khu vực này có một số lực lượng địch nguy hiểm gần đó. Đừng đánh giá thấp chúng.\n\n[lightgray]Nghiên cứu công nghệ chế biến dầu nếu có thể. sector.tarFields.description = Vùng ngoại ô của khu sản xuất dầu, nằm giữa núi và sa mạc. Một trong số ít khu vực có trữ lượng dầu có thể sử dụng được.\nMặc dù bị bỏ hoang, khu vực này có một số lực lượng địch nguy hiểm gần đó. Đừng đánh giá thấp chúng.\n\n[lightgray]Nghiên cứu công nghệ chế biến dầu nếu có thể.
sector.desolateRift.description = Một vùng cực kỳ nguy hiểm. Tài nguyên dồi dào, nhưng ít không gian. Nguy cơ thất thủ cao. Xây dựng phòng thủ trên không và mặt đất sớm nhất có thể. Đừng để bị lừa bởi khoảng cách dài giữa các cuộc tấn công của kẻ địch. sector.desolateRift.description = Một vùng cực kỳ nguy hiểm. Tài nguyên dồi dào, nhưng ít không gian. Nguy cơ thất thủ cao. Xây dựng phòng thủ trên không và mặt đất sớm nhất có thể. Đừng để bị lừa bởi khoảng cách dài giữa các cuộc tấn công của kẻ địch.
sector.nuclearComplex.description = Một cơ sở từng sản xuất và chế biến thorium, đã biến thành đống đổ nát.\n[lightgray]Nghiên cứu thorium và nhiều công dụng của nó.\n\nKẻ địch có mặt ở đây với số lượng rất lớn, liên tục lùng sục những kẻ tấn công. sector.nuclearComplex.description = Một cơ sở từng sản xuất và chế biến thori, đã biến thành đống đổ nát.\n[lightgray]Nghiên cứu thori và nhiều công dụng của nó.\n\nKẻ địch có mặt ở đây với số lượng rất lớn, liên tục lùng sục những kẻ tấn công.
sector.fungalPass.description = Khu vực chuyển tiếp giữa vùng núi cao và vùng đất thấp hơn, đầy bào tử. Một căn cứ trinh sát nhỏ của địch được đặt tại đây.\nPhá hủy nó.\nSử dụng đơn vị Dagger và Crawler. Phá hủy hai lõi của địch. sector.fungalPass.description = Khu vực chuyển tiếp giữa vùng núi cao và vùng đất thấp hơn, đầy bào tử. Một căn cứ trinh sát nhỏ của địch được đặt tại đây.\nPhá hủy nó.\nSử dụng đơn vị Dagger và Crawler. Phá hủy hai lõi của địch.
sector.biomassFacility.description = Nguồn gốc của bào tử. Đây là cơ sở mà chúng được nghiên cứu và sản xuất ban đầu.\nNghiên cứu công nghệ có ở đây. Nuôi cấy bào tử để sản xuất nhiên liệu và chất dẻo.\n\n[lightgray]Khi cơ sở này sụp đổ, các bào tử đã được giải phóng. Không có gì trong hệ sinh thái địa phương có thể cạnh tranh với một dạng sống xâm lấn mạnh như vậy. sector.biomassFacility.description = Nguồn gốc của bào tử. Đây là cơ sở mà chúng được nghiên cứu và sản xuất ban đầu.\nNghiên cứu công nghệ có ở đây. Nuôi cấy bào tử để sản xuất nhiên liệu và chất dẻo.\n\n[lightgray]Khi cơ sở này sụp đổ, các bào tử đã được giải phóng. Không có gì trong hệ sinh thái địa phương có thể cạnh tranh với một dạng sống xâm lấn mạnh như vậy.
sector.windsweptIslands.description = Xa hơn đường bờ biển là chuỗi đảo xa xôi này. Hồ sơ cho thấy họ đã từng có công trình sản xuất [accent]Nhựa[].\n\nChống lại các lực lượng hải quân của kẻ địch. Thiết lập căn cứ trên quần đảo. Nghiên cứu các nhà máy này. sector.windsweptIslands.description = Xa hơn đường bờ biển là chuỗi đảo xa xôi này. Hồ sơ cho thấy họ đã từng có công trình sản xuất [accent]Nhựa[].\n\nChống lại các lực lượng hải quân của kẻ địch. Thiết lập căn cứ trên quần đảo. Nghiên cứu các nhà máy này.
@@ -872,9 +872,9 @@ sector.marsh.description = Khu vực này có trữ lượng lớn arkycite, nh
sector.peaks.description = Địa hình đồi núi của khu vực này khiến hầu hết các loại đơn vị vô dụng. Các loại đơn vị bay trở nên cần thiết.\nHãy cẩn thận với các công trình phòng thủ trên không của địch. Có thể bị vô hiệu hóa bằng cách tấn công các công trình hỗ trợ. sector.peaks.description = Địa hình đồi núi của khu vực này khiến hầu hết các loại đơn vị vô dụng. Các loại đơn vị bay trở nên cần thiết.\nHãy cẩn thận với các công trình phòng thủ trên không của địch. Có thể bị vô hiệu hóa bằng cách tấn công các công trình hỗ trợ.
sector.ravine.description = Một tuyến đường vận chuyển quan trọng cho kẻ địch. Không phát hiện lõi nào trong khu vực, nhưng dự đoán sẽ có nhiều loại kẻ địch đa dạng.\nSản xuất [accent]hợp kim[]. Xây dựng bệ súng [accent]Afflict[]. sector.ravine.description = Một tuyến đường vận chuyển quan trọng cho kẻ địch. Không phát hiện lõi nào trong khu vực, nhưng dự đoán sẽ có nhiều loại kẻ địch đa dạng.\nSản xuất [accent]hợp kim[]. Xây dựng bệ súng [accent]Afflict[].
sector.caldera-erekir.description = Các tài nguyên được phát hiện ở khu vực này được phân bố trên nhiều đảo.\nNghiên cứu và triển khai vận chuyển dựa trên máy bay không người lái. sector.caldera-erekir.description = Các tài nguyên được phát hiện ở khu vực này được phân bố trên nhiều đảo.\nNghiên cứu và triển khai vận chuyển dựa trên máy bay không người lái.
sector.stronghold.description = Các căn cứ của địch ở khu vực này đang bảo vệ một lượng lớn [accent]thorium[].\nSử dụng nó để phát triển các loại đơn vị và bệ súng cao cấp hơn. sector.stronghold.description = Các căn cứ của địch ở khu vực này đang bảo vệ một lượng lớn [accent]thori[].\nSử dụng nó để phát triển các loại đơn vị và bệ súng cao cấp hơn.
sector.crevice.description = Địch sẽ gửi các đơn vị tấn công mạnh mẽ để triệt hạ căn cứ của bạn ở khu vực này.\nPhát triển [accent]carbide[] và [accent]Máy nhiệt phân[] là điều cần thiết để sống sót. sector.crevice.description = Địch sẽ gửi các đơn vị tấn công mạnh mẽ để triệt hạ căn cứ của bạn ở khu vực này.\nPhát triển [accent]carbide[] và [accent]Máy nhiệt phân[] là điều cần thiết để sống sót.
sector.siege.description = Khu vực này có hai hẻm núi song song sẽ tạo ra một cuộc tấn công theo hai hướng.\nNghiên cứu [accent]cyanogen[] để có thể chế tạo những đơn vị xe tăng mạnh hơn.\nChú ý: Phát hiện tên lửa tầm xa của kẻ địch. Các tên lửa có thể bị bắn hạ trước khi va chạm. sector.siege.description = Khu vực này có hai hẻm núi song song sẽ tạo ra một cuộc tấn công theo hai hướng.\nNghiên cứu [accent]cyano[] để có thể chế tạo những đơn vị xe tăng mạnh hơn.\nChú ý: Phát hiện tên lửa tầm xa của kẻ địch. Các tên lửa có thể bị bắn hạ trước khi va chạm.
sector.crossroads.description = Các căn cứ của địch ở khu vực này được xây dựng trên các địa hình khác nhau. Nghiên cứu các loại đơn vị khác nhau sao cho phù hợp.\nNgoài ra, một số căn cứ được bảo vệ bởi các máy chiếu khiên chắn. Tìm hiểu cách chúng được cung cấp năng lượng. sector.crossroads.description = Các căn cứ của địch ở khu vực này được xây dựng trên các địa hình khác nhau. Nghiên cứu các loại đơn vị khác nhau sao cho phù hợp.\nNgoài ra, một số căn cứ được bảo vệ bởi các máy chiếu khiên chắn. Tìm hiểu cách chúng được cung cấp năng lượng.
sector.karst.description = Khu vực này có rất nhiều tài nguyên, nhưng sẽ bị địch tấn công khi một lõi mới đáp xuống.\nTận dụng các tài nguyên và nghiên cứu [accent]sợi lượng tử[]. sector.karst.description = Khu vực này có rất nhiều tài nguyên, nhưng sẽ bị địch tấn công khi một lõi mới đáp xuống.\nTận dụng các tài nguyên và nghiên cứu [accent]sợi lượng tử[].
sector.origin.description = Khu vực cuối cùng với sự hiện diện của địch rất lớn.\nKhông còn bất cứ thứ gì cần nghiên cứu - tập trung hoàn toàn vào việc tiêu diệt tất cả các lõi của địch. sector.origin.description = Khu vực cuối cùng với sự hiện diện của địch rất lớn.\nKhông còn bất cứ thứ gì cần nghiên cứu - tập trung hoàn toàn vào việc tiêu diệt tất cả các lõi của địch.
@@ -1336,6 +1336,7 @@ rules.schematic = Cho phép dùng bản thiết kế
rules.wavetimer = Đếm ngược đợt rules.wavetimer = Đếm ngược đợt
rules.wavesending = Gửi đợt rules.wavesending = Gửi đợt
rules.waves = Đợt rules.waves = Đợt
rules.airUseSpawns = Các đơn vị không quân dùng điểm xuất hiện
rules.attack = Chế độ tấn công rules.attack = Chế độ tấn công
rules.buildai = AI Xây dựng căn cứ rules.buildai = AI Xây dựng căn cứ
rules.buildaitier = Cấp độ AI xây dựng rules.buildaitier = Cấp độ AI xây dựng
@@ -1423,7 +1424,7 @@ item.scrap.name = Phế liệu
item.fissile-matter.name = Vật liệu phóng xạ item.fissile-matter.name = Vật liệu phóng xạ
item.beryllium.name = Beryli item.beryllium.name = Beryli
item.tungsten.name = Tungsten item.tungsten.name = Tungsten
item.oxide.name = Oxide item.oxide.name = Ôxit
item.carbide.name = Carbide item.carbide.name = Carbide
item.dormant-cyst.name = U nang bất hoạt item.dormant-cyst.name = U nang bất hoạt
@@ -1434,7 +1435,7 @@ liquid.cryofluid.name = Chất làm lạnh
liquid.neoplasm.name = Tế bào tân sinh liquid.neoplasm.name = Tế bào tân sinh
liquid.arkycite.name = Arkycite liquid.arkycite.name = Arkycite
liquid.gallium.name = Gali liquid.gallium.name = Gali
liquid.ozone.name = Ozone liquid.ozone.name = Ôzôn
liquid.hydrogen.name = Hydro liquid.hydrogen.name = Hydro
liquid.nitrogen.name = Nitro liquid.nitrogen.name = Nitro
liquid.cyanogen.name = Cyano liquid.cyanogen.name = Cyano
@@ -1789,7 +1790,7 @@ block.graphitic-wall.name = Tường than chì
block.silicon-arc-furnace.name = Lò tinh luyện Silicon block.silicon-arc-furnace.name = Lò tinh luyện Silicon
block.electrolyzer.name = Máy điện phân block.electrolyzer.name = Máy điện phân
block.atmospheric-concentrator.name = Máy tập trung khí quyển block.atmospheric-concentrator.name = Máy tập trung khí quyển
block.oxidation-chamber.name = Bể Oxi hoá block.oxidation-chamber.name = Bể Oxy hoá
block.electric-heater.name = Máy nhiệt từ điện block.electric-heater.name = Máy nhiệt từ điện
block.slag-heater.name = Máy nhiệt từ xỉ block.slag-heater.name = Máy nhiệt từ xỉ
block.phase-heater.name = Máy nhiệt từ lượng tử block.phase-heater.name = Máy nhiệt từ lượng tử
@@ -2026,7 +2027,7 @@ liquid.cryofluid.description = Được dùng như chất làm mát trong lò ph
#Erekir #Erekir
liquid.arkycite.description = Được dùng trong các phản ứng hóa học để phát điện và tổng hợp vật liệu. liquid.arkycite.description = Được dùng trong các phản ứng hóa học để phát điện và tổng hợp vật liệu.
liquid.ozone.description = Được sử dụng như một chất oxy hóa trong sản xuất vật liệu, và làm nhiên liệu. Gây nổ vừa phải. liquid.ozone.description = Được sử dụng như một chất ôxy hóa trong sản xuất vật liệu, và làm nhiên liệu. Gây nổ vừa phải.
liquid.hydrogen.description = Được dùng trong khai thác tài nguyên, sản xuất đơn vị và sửa chữa công trình. Dễ cháy. liquid.hydrogen.description = Được dùng trong khai thác tài nguyên, sản xuất đơn vị và sửa chữa công trình. Dễ cháy.
liquid.cyanogen.description = Được dùng cho đạn dược, xây dựng các đơn vị tiên tiến và các phản ứng khác nhau trong các khối tiên tiến. Rất dễ cháy. liquid.cyanogen.description = Được dùng cho đạn dược, xây dựng các đơn vị tiên tiến và các phản ứng khác nhau trong các khối tiên tiến. Rất dễ cháy.
liquid.nitrogen.description = Được dùng trong khai thác tài nguyên, tạo khí và sản xuất đơn vị. Trơ. liquid.nitrogen.description = Được dùng trong khai thác tài nguyên, tạo khí và sản xuất đơn vị. Trơ.
@@ -2044,7 +2045,7 @@ block.multi-press.description = Nén than thành than chì. Cần nước làm m
block.silicon-smelter.description = Tinh chế silicon từ cát và than. block.silicon-smelter.description = Tinh chế silicon từ cát và than.
block.kiln.description = Nấu chảy cát và chì thành thuỷ tinh. block.kiln.description = Nấu chảy cát và chì thành thuỷ tinh.
block.plastanium-compressor.description = Sản xuất nhựa từ dầu và titan. block.plastanium-compressor.description = Sản xuất nhựa từ dầu và titan.
block.phase-weaver.description = Tổng hợp sợi lượng tử từ thorium và cát. block.phase-weaver.description = Tổng hợp sợi lượng tử từ thori và cát.
block.surge-smelter.description = Hợp nhất titan, chì, silicon và đồng thành hợp kim. block.surge-smelter.description = Hợp nhất titan, chì, silicon và đồng thành hợp kim.
block.cryofluid-mixer.description = Trộn nước và bột titan mịn để sản xuất chất làm mát. block.cryofluid-mixer.description = Trộn nước và bột titan mịn để sản xuất chất làm mát.
block.blast-mixer.description = Tạo ra hợp chất nổ từ nhiệt thạch và vỏ bào tử. block.blast-mixer.description = Tạo ra hợp chất nổ từ nhiệt thạch và vỏ bào tử.
@@ -2199,18 +2200,18 @@ block.scathe.description = Phóng một tên lửa mạnh vào các mục tiêu
block.smite.description = Bắn viên đạn phát sáng nổ xuyên thấu. block.smite.description = Bắn viên đạn phát sáng nổ xuyên thấu.
block.malign.description = Bắn chùm hàng loạt những tia laser dẫn đường nhắm thẳng mục tiêu kẻ địch. Yêu cầu lượng nhệt lớn. block.malign.description = Bắn chùm hàng loạt những tia laser dẫn đường nhắm thẳng mục tiêu kẻ địch. Yêu cầu lượng nhệt lớn.
block.silicon-arc-furnace.description = Tinh chế silicone từ cát và than chì. block.silicon-arc-furnace.description = Tinh chế silicone từ cát và than chì.
block.oxidation-chamber.description = Chuyển đổi beryl và ozone thành oxide. Tạo ra nhiệt như sản phẩm phụ. block.oxidation-chamber.description = Chuyển đổi beryl và ôzôn thành ôxit. Tạo ra nhiệt như sản phẩm phụ.
block.electric-heater.description = Làm nóng công trình. Yêu cầu một lượng điện lớn. block.electric-heater.description = Làm nóng công trình. Yêu cầu một lượng điện lớn.
block.slag-heater.description = Làm nóng công trinh. Yêu cầu xỉ. block.slag-heater.description = Làm nóng công trinh. Yêu cầu xỉ.
block.phase-heater.description = Làm nóng công trình. Yêu cầu sợi lượng tử. block.phase-heater.description = Làm nóng công trình. Yêu cầu sợi lượng tử.
block.heat-redirector.description = Chuyển lượng nhiệt nhận được sang các khối khác. block.heat-redirector.description = Chuyển lượng nhiệt nhận được sang các khối khác.
block.heat-router.description = Phân phát nhiệt nhận được sang ba hướng đầu ra. block.heat-router.description = Phân phát nhiệt nhận được sang ba hướng đầu ra.
block.electrolyzer.description = Chuyển đổi nước thành hydro và ozon. Các khí xuất hai hướng đối nhau, được đánh dấu bằng các màu tương ứng. block.electrolyzer.description = Chuyển đổi nước thành hydro và ôzôn. Các khí xuất hai hướng đối nhau, được đánh dấu bằng các màu tương ứng.
block.atmospheric-concentrator.description = Cô đặc nitro từ khí quyển. Yêu cầu nhiệt. block.atmospheric-concentrator.description = Cô đặc nitro từ khí quyển. Yêu cầu nhiệt.
block.surge-crucible.description = Tinh chế hợp kim từ xỉ và silicon. Yêu cầu nhiệt. block.surge-crucible.description = Tinh chế hợp kim từ xỉ và silicon. Yêu cầu nhiệt.
block.phase-synthesizer.description = Tổng hợp sợi lượng tử từ thorium, cát, và ozon. Yêu cầu nhiệt. block.phase-synthesizer.description = Tổng hợp sợi lượng tử từ thori, cát, và ôzôn. Yêu cầu nhiệt.
block.carbide-crucible.description = Kết hợp than chì và tungsten để tạo ra carbide. Yêu cầu nhiệt. block.carbide-crucible.description = Kết hợp than chì và tungsten để tạo ra carbide. Yêu cầu nhiệt.
block.cyanogen-synthesizer.description = Tổng hợp cyanogen từ arkycite và than chì. Yêu cầu nhiệt. block.cyanogen-synthesizer.description = Tổng hợp cyano từ arkycite và than chì. Yêu cầu nhiệt.
block.slag-incinerator.description = Đốt các vật phẩm hoặc chất lỏng không bay hơi. Yêu cầu xỉ. block.slag-incinerator.description = Đốt các vật phẩm hoặc chất lỏng không bay hơi. Yêu cầu xỉ.
block.vent-condenser.description = Ngưng tụ khí từ lỗ hơi nước để tạo ra nước. Tiêu thụ điện. block.vent-condenser.description = Ngưng tụ khí từ lỗ hơi nước để tạo ra nước. Tiêu thụ điện.
block.plasma-bore.description = Khi được đặt đối diện với một bức tường quặng, sản xuất vô hạn vật phẩm. Yêu cầu một lượng điện nhỏ.\nTùy chọn sử dụng hydro để tăng hiệu suất. block.plasma-bore.description = Khi được đặt đối diện với một bức tường quặng, sản xuất vô hạn vật phẩm. Yêu cầu một lượng điện nhỏ.\nTùy chọn sử dụng hydro để tăng hiệu suất.
@@ -2249,7 +2250,7 @@ block.unit-cargo-unload-point.description = Hoạt động như một điểm th
block.beam-node.description = Truyền điện cho các khối khác theo hướng thẳng. Lưu trữ một lượng điện nhỏ. block.beam-node.description = Truyền điện cho các khối khác theo hướng thẳng. Lưu trữ một lượng điện nhỏ.
block.beam-tower.description = Truyền điện cho các khối khác theo hướng thẳng. Lưu trữ một lượng điện lớn. Có phạm vi rộng. block.beam-tower.description = Truyền điện cho các khối khác theo hướng thẳng. Lưu trữ một lượng điện lớn. Có phạm vi rộng.
block.turbine-condenser.description = Tạo ra điện khi được đặt trên các lỗ hơi nước. Tạo ra một lượng nước nhỏ. block.turbine-condenser.description = Tạo ra điện khi được đặt trên các lỗ hơi nước. Tạo ra một lượng nước nhỏ.
block.chemical-combustion-chamber.description = Tạo ra điện từ arkycite và ozon. block.chemical-combustion-chamber.description = Tạo ra điện từ arkycite và ôzôn.
block.pyrolysis-generator.description = Tạo ra một lượng điện lớn từ arkycite và xỉ nóng chảy. Tạo ra nước như một sản phẩm phụ. block.pyrolysis-generator.description = Tạo ra một lượng điện lớn từ arkycite và xỉ nóng chảy. Tạo ra nước như một sản phẩm phụ.
block.flux-reactor.description = Tạo ra một lượng điện lớn khi được làm nóng. Yêu cầu sử dụng cyano như một chất làm ổn định. Lượng điện tạo ra và lượng tiêu thụ cyano tỷ lệ thuận với lượng nhiệt nhận được.\nPhát nổ nếu không cung cấp đủ cyano. block.flux-reactor.description = Tạo ra một lượng điện lớn khi được làm nóng. Yêu cầu sử dụng cyano như một chất làm ổn định. Lượng điện tạo ra và lượng tiêu thụ cyano tỷ lệ thuận với lượng nhiệt nhận được.\nPhát nổ nếu không cung cấp đủ cyano.
block.neoplasia-reactor.description = Sử dụng arkycite, nước và sợi lượng tử để tạo ra lượng điện khổng lồ. Tạo ra nhiệt và lượng tế bào tân sinh nguy hiểm như sản phẩm phụ trong quá trình hoạt động.\nPhát nổ dữ dội nếu tế bào tân sinh không được loại bỏ khỏi lò phản ứng. block.neoplasia-reactor.description = Sử dụng arkycite, nước và sợi lượng tử để tạo ra lượng điện khổng lồ. Tạo ra nhiệt và lượng tế bào tân sinh nguy hiểm như sản phẩm phụ trong quá trình hoạt động.\nPhát nổ dữ dội nếu tế bào tân sinh không được loại bỏ khỏi lò phản ứng.
@@ -2273,7 +2274,7 @@ block.reinforced-payload-conveyor.description = Di chuyển khối hàng tiến
block.reinforced-payload-router.description = Phân chia các khối hàng vào các khối liền kề. Hoạt động như một bộ lọc khi được thiết lập. block.reinforced-payload-router.description = Phân chia các khối hàng vào các khối liền kề. Hoạt động như một bộ lọc khi được thiết lập.
block.payload-mass-driver.description = Công trình vận chuyển khối hàng tầm xa. Bắn các khối hàng nhận được đến các máy phóng từ trường được liên kết. block.payload-mass-driver.description = Công trình vận chuyển khối hàng tầm xa. Bắn các khối hàng nhận được đến các máy phóng từ trường được liên kết.
block.large-payload-mass-driver.description = Công trình vận chuyển khối hàng tầm xa. Bắn các khối hàng nhận được đến các máy phóng từ trường được liên kết. block.large-payload-mass-driver.description = Công trình vận chuyển khối hàng tầm xa. Bắn các khối hàng nhận được đến các máy phóng từ trường được liên kết.
block.unit-repair-tower.description = Sửa chữa tất cả các đơn vị trong phạm vi. Yêu cầu ozon. block.unit-repair-tower.description = Sửa chữa tất cả các đơn vị trong phạm vi. Yêu cầu ôzôn.
block.radar.description = Rà soát địa hình và đơn vị kẻ địch một cách từ từ trong môt phạm vi lớn. Yêu cầu điện. block.radar.description = Rà soát địa hình và đơn vị kẻ địch một cách từ từ trong môt phạm vi lớn. Yêu cầu điện.
block.shockwave-tower.description = Phá hủy và tiêu diệt các loại đạn của kẻ địch trong một phạm vi. Yêu cầu cyano. block.shockwave-tower.description = Phá hủy và tiêu diệt các loại đạn của kẻ địch trong một phạm vi. Yêu cầu cyano.
block.canvas.description = Hiển thị một hình ảnh đơn giản với một bảng màu được định sẵn. Có thể chỉnh sửa. block.canvas.description = Hiển thị một hình ảnh đơn giản với một bảng màu được định sẵn. Có thể chỉnh sửa.
@@ -2527,7 +2528,7 @@ lenum.factory = Khối biến đổi vật phẩm.
lenum.repair = Điểm sửa chữa. lenum.repair = Điểm sửa chữa.
lenum.battery = Bất kỳ pin. lenum.battery = Bất kỳ pin.
lenum.resupply = Điểm tiếp tế.\nChỉ phù hợp khi [accent]"Đơn vị cần đạn"[] được bật. lenum.resupply = Điểm tiếp tế.\nChỉ phù hợp khi [accent]"Đơn vị cần đạn"[] được bật.
lenum.reactor = Lò phản ứng Thorium/Nhiệt hạch. lenum.reactor = Lò phản ứng Thori/Nhiệt hạch.
lenum.turret = Súng bất kỳ. lenum.turret = Súng bất kỳ.
sensor.in = Công trình/Đơn vị để cảm biến. sensor.in = Công trình/Đơn vị để cảm biến.
@@ -2573,7 +2574,7 @@ lenum.payenter = Vào trong/hạ cánh trên khối hàng mà đơn vị đang
lenum.flag = Cờ đơn vị kiểu số. lenum.flag = Cờ đơn vị kiểu số.
lenum.mine = Đào tại một vị trí. lenum.mine = Đào tại một vị trí.
lenum.build = Xây một công trình. lenum.build = Xây một công trình.
lenum.getblock = Lấy một công trình, nền và kiểu tại tọa độ.\nĐơn vị phải nằm trong phạm vi của vị trí.\nKhối rắn không phải công trình có kiểu [accent]@solid[]. lenum.getblock = Lấy kiểu công trình, nền và khối tại tọa độ.\nĐơn vị phải nằm trong phạm vi của vị trí, ngược lại null được trả về.
lenum.within = Kiểm tra xem đơn vị có gần một vị trí không. lenum.within = Kiểm tra xem đơn vị có gần một vị trí không.
lenum.boost = Bắt đầu/Dừng tăng tốc. lenum.boost = Bắt đầu/Dừng tăng tốc.

View File

@@ -1328,6 +1328,7 @@ rules.schematic = 允许使用蓝图
rules.wavetimer = 波次计时器 rules.wavetimer = 波次计时器
rules.wavesending = 波次可跳波 rules.wavesending = 波次可跳波
rules.waves = 波次 rules.waves = 波次
rules.airUseSpawns = Air units use spawn points
rules.attack = 进攻模式 rules.attack = 进攻模式
rules.buildai = 基础建筑者 AI rules.buildai = 基础建筑者 AI
rules.buildaitier = 建筑者 AI 等级 rules.buildaitier = 建筑者 AI 等级
@@ -2559,7 +2560,7 @@ lenum.payenter = 进入/降落到单位下方的荷载方块中
lenum.flag = 给单位赋予数字形式的标记 lenum.flag = 给单位赋予数字形式的标记
lenum.mine = 从某个位置采集矿物 lenum.mine = 从某个位置采集矿物
lenum.build = 建造建筑 lenum.build = 建造建筑
lenum.getblock = 获取某个坐标处的建筑及其类型\n坐标需要在单位的感知范围内\n无建筑的地面返回[accent]@air[],墙壁返回[accent]@solid[] lenum.getblock = Fetch building, floor and block type at coordinates.\nUnit must be in range of the position, otherwise null is returned.
lenum.within = 检查单位是否接近了某个位置 lenum.within = 检查单位是否接近了某个位置
lenum.boost = 开始/停止助推 lenum.boost = 开始/停止助推
lenum.flushtext = 如果适用的话,将打印缓冲区的内容刷新到标记。\n如果 fetch 设置为 true则尝试从地图本地化包或游戏的包中获取属性。 lenum.flushtext = 如果适用的话,将打印缓冲区的内容刷新到标记。\n如果 fetch 设置为 true则尝试从地图本地化包或游戏的包中获取属性。

View File

@@ -1323,6 +1323,7 @@ rules.schematic = 允許使用藍圖
rules.wavetimer = 波次時間 rules.wavetimer = 波次時間
rules.wavesending = Wave Sending rules.wavesending = Wave Sending
rules.waves = 波次 rules.waves = 波次
rules.airUseSpawns = Air units use spawn points
rules.attack = 攻擊模式 rules.attack = 攻擊模式
rules.buildai = Base Builder AI rules.buildai = Base Builder AI
rules.buildaitier = Builder AI Tier rules.buildaitier = Builder AI Tier
@@ -2543,7 +2544,7 @@ lenum.payenter = 進入/降落到載重方塊
lenum.flag = 單位編號(可異) lenum.flag = 單位編號(可異)
lenum.mine = 挖指定位置的礦物 lenum.mine = 挖指定位置的礦物
lenum.build = 建造一個建築 lenum.build = 建造一個建築
lenum.getblock = 獲取指定位置的建築種類和該建築\n必須在單位的範圍內\n實體障礙物如高山會回傳[accent]@solid[] lenum.getblock = Fetch building, floor and block type at coordinates.\nUnit must be in range of the position, otherwise null is returned.
lenum.within = 單位是否在指定範圍內 lenum.within = 單位是否在指定範圍內
lenum.boost = 使用推進器 lenum.boost = 使用推進器
lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle. lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle.

View File

@@ -167,3 +167,4 @@ Redstonneur1256
ApsZoldat ApsZoldat
Mythril Mythril
hexagon-recursion hexagon-recursion
JasonP01

View File

@@ -1099,6 +1099,7 @@ public class ControlPathfinder implements Runnable{
destY = World.toTile(mainDestination.y), destY = World.toTile(mainDestination.y),
actualDestX = World.toTile(destination.x), actualDestX = World.toTile(destination.x),
actualDestY = World.toTile(destination.y), actualDestY = World.toTile(destination.y),
actualDestPos = actualDestX + actualDestY * wwidth,
destPos = destX + destY * wwidth; destPos = destX + destY * wwidth;
PathRequest request = unitRequests.get(unit); PathRequest request = unitRequests.get(unit);
@@ -1156,8 +1157,10 @@ public class ControlPathfinder implements Runnable{
int i = 0; int i = 0;
boolean recalc = false; boolean recalc = false;
if(packedPos == actualDestPos){
request.lastTargetTile = tileOn;
//TODO last pos can change if the flowfield changes. //TODO last pos can change if the flowfield changes.
if(initialTileOn.pos() != request.lastTile || request.lastTargetTile == null){ }else if(initialTileOn.pos() != request.lastTile || request.lastTargetTile == null){
boolean anyNearSolid = false; boolean anyNearSolid = false;
//find the next tile until one near a solid block is discovered //find the next tile until one near a solid block is discovered
@@ -1181,9 +1184,13 @@ public class ControlPathfinder implements Runnable{
anyNearSolid = true; anyNearSolid = true;
} }
if((value == 0 || otherCost < value) && otherCost != impassable && (otherCost != 0 || packed == destPos) && (current == null || otherCost < minCost) && passable(unit.team.id, cost, packed)){ if((value == 0 || otherCost < value) && otherCost != impassable && ((otherCost != 0 && (current == null || otherCost < minCost)) || packed == actualDestPos || packed == destPos) && passable(unit.team.id, cost, packed)){
current = other; current = other;
minCost = otherCost; minCost = otherCost;
//no need to keep searching.
if(packed == destPos || packed == actualDestPos){
break;
}
} }
} }
@@ -1205,7 +1212,9 @@ public class ControlPathfinder implements Runnable{
tileOn = current; tileOn = current;
any = true; any = true;
if(current.array() == destPos){ int a = current.array();
if(a == destPos || a == actualDestPos){
break; break;
} }
} }
@@ -1216,13 +1225,13 @@ public class ControlPathfinder implements Runnable{
} }
request.lastTargetTile = any ? tileOn : null; request.lastTargetTile = any ? tileOn : null;
if(showDebug && tileOn != null){ if(showDebug && tileOn != null && Core.graphics.getFrameId() % 30 == 0){
Fx.placeBlock.at(tileOn.worldx(), tileOn.worldy(), 1); Fx.placeBlock.at(tileOn.worldx(), tileOn.worldy(), 1);
} }
} }
if(request.lastTargetTile != null){ if(request.lastTargetTile != null){
if(showDebug){ if(showDebug && Core.graphics.getFrameId() % 30 == 0){
Fx.breakBlock.at(request.lastTargetTile.worldx(), request.lastTargetTile.worldy(), 1); Fx.breakBlock.at(request.lastTargetTile.worldx(), request.lastTargetTile.worldy(), 1);
} }
out.set(request.lastTargetTile); out.set(request.lastTargetTile);
@@ -1325,6 +1334,30 @@ public class ControlPathfinder implements Runnable{
return 0; return 0;
} }
/** @return 0 if nothing was hit, otherwise the packed coordinates. This is an internal function and will likely be moved - do not use!*/
public static int raycastFastAvoid(int team, PathCost type, int x1, int y1, int x2, int y2){
int ww = world.width(), wh = world.height();
int x = x1, dx = Math.abs(x2 - x), sx = x < x2 ? 1 : -1;
int y = y1, dy = Math.abs(y2 - y), sy = y < y2 ? 1 : -1;
int err = dx - dy;
while(x >= 0 && y >= 0 && x < ww && y < wh){
if(avoid(team, type, x + y * wwidth)) return Point2.pack(x, y);
if(x == x2 && y == y2) return 0;
//no diagonals
if(2 * err + dy > dx - 2 * err){
err -= dy;
x += sx;
}else{
err += dx;
y += sy;
}
}
return 0;
}
private static boolean overlap(int team, PathCost type, int x, int y, float startX, float startY, float endX, float endY, float rectSize){ private static boolean overlap(int team, PathCost type, int x, int y, float startX, float startY, float endX, float endY, float rectSize){
if(x < 0 || y < 0 || x >= wwidth || y >= wheight) return false; if(x < 0 || y < 0 || x >= wwidth || y >= wheight) return false;
if(!nearPassable(team, type, x + y * wwidth)){ if(!nearPassable(team, type, x + y * wwidth)){

View File

@@ -168,9 +168,9 @@ public class UnitGroup{
Unit unit = units.get(index); Unit unit = units.get(index);
PathCost cost = unit.type.pathCost; PathCost cost = unit.type.pathCost;
int res = ControlPathfinder.raycastFast(unit.team.id, cost, World.toTile(dest.x), World.toTile(dest.y), World.toTile(x), World.toTile(y)); int res = ControlPathfinder.raycastFastAvoid(unit.team.id, cost, World.toTile(dest.x), World.toTile(dest.y), World.toTile(x), World.toTile(y));
//collision found, make th destination the point right before the collision //collision found, make the destination the point right before the collision
if(res != 0){ if(res != 0){
v1.set(Point2.x(res) * Vars.tilesize - dest.x, Point2.y(res) * Vars.tilesize - dest.y); v1.set(Point2.x(res) * Vars.tilesize - dest.x, Point2.y(res) * Vars.tilesize - dest.y);
v1.setLength(Math.max(v1.len() - Vars.tilesize - 4f, 0)); v1.setLength(Math.max(v1.len() - Vars.tilesize - 4f, 0));

View File

@@ -152,14 +152,21 @@ public class WaveSpawner{
} }
private void eachFlyerSpawn(int filterPos, Floatc2 cons){ private void eachFlyerSpawn(int filterPos, Floatc2 cons){
boolean airUseSpawns = state.rules.airUseSpawns;
for(Tile tile : spawns){ for(Tile tile : spawns){
if(filterPos != -1 && filterPos != tile.pos()) continue; if(filterPos != -1 && filterPos != tile.pos()) continue;
float angle = Angles.angle(world.width() / 2f, world.height() / 2f, tile.x, tile.y); if(!airUseSpawns){
float trns = Math.max(world.width(), world.height()) * Mathf.sqrt2 * tilesize;
float spawnX = Mathf.clamp(world.width() * tilesize / 2f + Angles.trnsx(angle, trns), -margin, world.width() * tilesize + margin); float angle = Angles.angle(world.width() / 2f, world.height() / 2f, tile.x, tile.y);
float spawnY = Mathf.clamp(world.height() * tilesize / 2f + Angles.trnsy(angle, trns), -margin, world.height() * tilesize + margin); float trns = Math.max(world.width(), world.height()) * Mathf.sqrt2 * tilesize;
cons.get(spawnX, spawnY); float spawnX = Mathf.clamp(world.width() * tilesize / 2f + Angles.trnsx(angle, trns), -margin, world.width() * tilesize + margin);
float spawnY = Mathf.clamp(world.height() * tilesize / 2f + Angles.trnsy(angle, trns), -margin, world.height() * tilesize + margin);
cons.get(spawnX, spawnY);
}else{
cons.get(tile.worldx(), tile.worldy());
}
} }
if(state.rules.attackMode && state.teams.isActive(state.rules.waveTeam)){ if(state.rules.attackMode && state.teams.isActive(state.rules.waveTeam)){

View File

@@ -39,7 +39,7 @@ public class FlyingFollowAI extends FlyingAI{
@Override @Override
public void updateVisuals(){ public void updateVisuals(){
if(unit.isFlying()){ if(unit.isFlying()){
unit.wobble(); if(unit.type.wobble) unit.wobble();
if(!shouldFaceTarget()){ if(!shouldFaceTarget()){
unit.lookAt(unit.prefRotation()); unit.lookAt(unit.prefRotation());

View File

@@ -117,6 +117,8 @@ public class NetServer implements ApplicationListener{
private DataOutputStream dataStream = new DataOutputStream(syncStream); private DataOutputStream dataStream = new DataOutputStream(syncStream);
/** Packet handlers for custom types of messages. */ /** Packet handlers for custom types of messages. */
private ObjectMap<String, Seq<Cons2<Player, String>>> customPacketHandlers = new ObjectMap<>(); private ObjectMap<String, Seq<Cons2<Player, String>>> customPacketHandlers = new ObjectMap<>();
/** Packet handlers for logic client data */
private ObjectMap<String, Seq<Cons2<Player, Object>>> logicClientDataHandlers = new ObjectMap<>();
public NetServer(){ public NetServer(){
@@ -515,6 +517,10 @@ public class NetServer implements ApplicationListener{
return customPacketHandlers.get(type, Seq::new); return customPacketHandlers.get(type, Seq::new);
} }
public void addLogicDataHandler(String type, Cons2<Player, Object> handler){
logicClientDataHandlers.get(type, Seq::new).add(handler);
}
public static void onDisconnect(Player player, String reason){ public static void onDisconnect(Player player, String reason){
//singleplayer multiplayer weirdness //singleplayer multiplayer weirdness
if(player.con == null){ if(player.con == null){
@@ -583,6 +589,21 @@ public class NetServer implements ApplicationListener{
serverPacketReliable(player, type, contents); serverPacketReliable(player, type, contents);
} }
@Remote(targets = Loc.client)
public static void clientLogicDataReliable(Player player, String channel, Object value){
Seq<Cons2<Player, Object>> handlers = netServer.logicClientDataHandlers.get(channel);
if(handlers != null){
for(Cons2<Player, Object> handler : handlers){
handler.get(player, value);
}
}
}
@Remote(targets = Loc.client, unreliable = true)
public static void clientLogicDataUnreliable(Player player, String channel, Object value){
clientLogicDataReliable(player, channel, value);
}
private static boolean invalid(float f){ private static boolean invalid(float f){
return Float.isInfinite(f) || Float.isNaN(f); return Float.isInfinite(f) || Float.isNaN(f);
} }

View File

@@ -143,49 +143,7 @@ public interface Platform{
*/ */
default void showFileChooser(boolean open, String title, String extension, Cons<Fi> cons){ default void showFileChooser(boolean open, String title, String extension, Cons<Fi> cons){
if(OS.isWindows || OS.isMac){ if(OS.isWindows || OS.isMac){
String formatted = (title.startsWith("@") ? Core.bundle.get(title.substring(1)) : title).replaceAll("\"", "'"); showNativeFileChooser(open, title, cons, extension);
//native file dialog
Threads.daemon(() -> {
try{
FileDialogs.loadNatives();
String result;
//on MacOS, .msav is not properly recognized until I put garbage into the array?
String[] extensions = OS.isMac && open ? new String[]{"", "*." + extension} : new String[]{"*." + extension};
if(open){
result = FileDialogs.openFileDialog(formatted, FileChooser.getLastDirectory().absolutePath(), extensions, "." + extension + " files", false);
}else{
result = FileDialogs.saveFileDialog(formatted, FileChooser.getLastDirectory().child("file." + extension).absolutePath(), extensions, "." + extension + " files");
}
if(result == null) return;
if(result.length() > 1 && result.contains("\n")){
result = result.split("\n")[0];
}
//cancelled selection, ignore result
if(result.isEmpty() || result.equals("\n")) return;
if(result.endsWith("\n")) result = result.substring(0, result.length() - 1);
if(result.contains("\n")) throw new IOException("invalid input: \"" + result + "\"");
Fi file = Core.files.absolute(result);
Core.app.post(() -> {
FileChooser.setLastDirectory(file.isDirectory() ? file : file.parent());
if(!open){
cons.get(file.parent().child(file.nameWithoutExtension() + "." + extension));
}else{
cons.get(file);
}
});
}catch(Throwable error){
Log.err("Failure to execute native file chooser", error);
Core.app.post(() -> defaultFileDialog(open, title, extension, cons));
}
});
}else if(OS.isLinux && !OS.isAndroid){ }else if(OS.isLinux && !OS.isAndroid){
showZenity(open, title, new String[]{extension}, cons, () -> defaultFileDialog(open, title, extension, cons)); showZenity(open, title, new String[]{extension}, cons, () -> defaultFileDialog(open, title, extension, cons));
}else{ }else{
@@ -268,6 +226,8 @@ public interface Platform{
default void showMultiFileChooser(Cons<Fi> cons, String... extensions){ default void showMultiFileChooser(Cons<Fi> cons, String... extensions){
if(mobile){ if(mobile){
showFileChooser(true, extensions[0], cons); showFileChooser(true, extensions[0], cons);
}else if(OS.isWindows || OS.isMac){
showNativeFileChooser(true, "@open", cons, extensions);
}else if(OS.isLinux && !OS.isAndroid){ }else if(OS.isLinux && !OS.isAndroid){
showZenity(true, "@open", extensions, cons, () -> defaultMultiFileChooser(cons, extensions)); showZenity(true, "@open", extensions, cons, () -> defaultMultiFileChooser(cons, extensions));
}else{ }else{
@@ -279,6 +239,68 @@ public interface Platform{
new FileChooser("@open", file -> Structs.contains(extensions, file.extension().toLowerCase()), true, cons).show(); new FileChooser("@open", file -> Structs.contains(extensions, file.extension().toLowerCase()), true, cons).show();
} }
default void showNativeFileChooser(boolean open, String title, Cons<Fi> cons, String... shownExtensions){
String formatted = (title.startsWith("@") ? Core.bundle.get(title.substring(1)) : title).replaceAll("\"", "'");
//this should never happen unless someone is being dumb with the parameters
String[] ext = shownExtensions == null || shownExtensions.length == 0 ? new String[]{""} : shownExtensions;
//native file dialog
Threads.daemon(() -> {
try{
FileDialogs.loadNatives();
String result;
String[] patterns = new String[ext.length];
for(int i = 0; i < ext.length; i++){
patterns[i] = "*." + ext[i];
}
//on MacOS, .msav is not properly recognized until I put garbage into the array?
if(patterns.length == 1 && OS.isMac && open){
patterns = new String[]{"", "*." + ext[0]};
}
if(open){
result = FileDialogs.openFileDialog(formatted, FileChooser.getLastDirectory().absolutePath(), patterns, "." + ext[0] + " files", false);
}else{
result = FileDialogs.saveFileDialog(formatted, FileChooser.getLastDirectory().child("file." + ext[0]).absolutePath(), patterns, "." + ext[0] + " files");
}
if(result == null) return;
if(result.length() > 1 && result.contains("\n")){
result = result.split("\n")[0];
}
//cancelled selection, ignore result
if(result.isEmpty() || result.equals("\n")) return;
if(result.endsWith("\n")) result = result.substring(0, result.length() - 1);
if(result.contains("\n")) throw new IOException("invalid input: \"" + result + "\"");
Fi file = Core.files.absolute(result);
Core.app.post(() -> {
FileChooser.setLastDirectory(file.isDirectory() ? file : file.parent());
if(!open){
cons.get(file.parent().child(file.nameWithoutExtension() + "." + ext[0]));
}else{
cons.get(file);
}
});
}catch(Throwable error){
Log.err("Failure to execute native file chooser", error);
Core.app.post(() -> {
if(ext.length > 1){
defaultMultiFileChooser(cons, ext);
}else{
defaultFileDialog(open, title, ext[0], cons);
}
});
}
});
}
/** Hide the app. Android only. */ /** Hide the app. Android only. */
default void hide(){ default void hide(){
} }

View File

@@ -10,31 +10,24 @@ import mindustry.world.blocks.distribution.MassDriver.*;
import static mindustry.Vars.*; import static mindustry.Vars.*;
public class MassDriverBolt extends BulletType{ public class MassDriverBolt extends BasicBulletType{
public MassDriverBolt(){ public MassDriverBolt(){
super(1f, 75); super(1f, 75);
collidesTiles = false; collidesTiles = false;
lifetime = 1f; lifetime = 1f;
width = 11f;
height = 13f;
shrinkY = 0f;
sprite = "shell";
despawnEffect = Fx.smeltsmoke; despawnEffect = Fx.smeltsmoke;
hitEffect = Fx.hitBulletBig; hitEffect = Fx.hitBulletBig;
} }
@Override
public void draw(Bullet b){
float w = 11f, h = 13f;
Draw.color(Pal.bulletYellowBack);
Draw.rect("shell-back", b.x, b.y, w, h, b.rotation() + 90);
Draw.color(Pal.bulletYellow);
Draw.rect("shell", b.x, b.y, w, h, b.rotation() + 90);
Draw.reset();
}
@Override @Override
public void update(Bullet b){ public void update(Bullet b){
super.update(b);
//data MUST be an instance of DriverBulletData //data MUST be an instance of DriverBulletData
if(!(b.data() instanceof DriverBulletData data)){ if(!(b.data() instanceof DriverBulletData data)){
hit(b); hit(b);

View File

@@ -1915,6 +1915,7 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
case y -> World.conv(y); case y -> World.conv(y);
case color -> Color.toDoubleBits(team.color.r, team.color.g, team.color.b, 1f); case color -> Color.toDoubleBits(team.color.r, team.color.g, team.color.b, 1f);
case dead -> !isValid() ? 1 : 0; case dead -> !isValid() ? 1 : 0;
case solid -> block.solid || checkSolid() ? 1 : 0;
case team -> team.id; case team -> team.id;
case health -> health; case health -> health;
case maxHealth -> maxHealth; case maxHealth -> maxHealth;

View File

@@ -83,7 +83,7 @@ public class AIController implements UnitController{
public void updateVisuals(){ public void updateVisuals(){
if(unit.isFlying()){ if(unit.isFlying()){
unit.wobble(); if(unit.type.wobble) unit.wobble();
unit.lookAt(unit.prefRotation()); unit.lookAt(unit.prefRotation());
} }

View File

@@ -29,6 +29,8 @@ public class Rules{
public boolean waveSending = true; public boolean waveSending = true;
/** Whether waves are spawnable at all. */ /** Whether waves are spawnable at all. */
public boolean waves; public boolean waves;
/** Whether air units spawn at spawns instead of the edge of the map */
public boolean airUseSpawns = false;
/** Whether the game objective is PvP. Note that this enables automatic hosting. */ /** Whether the game objective is PvP. Note that this enables automatic hosting. */
public boolean pvp; public boolean pvp;
/** Whether is waiting for players enabled in PvP. */ /** Whether is waiting for players enabled in PvP. */
@@ -201,6 +203,8 @@ public class Rules{
public @Nullable PlanetParams planetBackground; public @Nullable PlanetParams planetBackground;
/** Rules from this planet are applied. If it's {@code sun}, mixed tech is enabled. */ /** Rules from this planet are applied. If it's {@code sun}, mixed tech is enabled. */
public Planet planet = Planets.serpulo; public Planet planet = Planets.serpulo;
/** If the `data` instruction is allowed for world processors */
public boolean allowLogicData = false;
/** Copies this ruleset exactly. Not efficient at all, do not use often. */ /** Copies this ruleset exactly. Not efficient at all, do not use often. */
public Rules copy(){ public Rules copy(){

View File

@@ -1038,14 +1038,19 @@ public class TypeIO{
} }
} }
public interface Boxed<T> {
T unbox();
}
/** Represents a building that has not been resolved yet. */ /** Represents a building that has not been resolved yet. */
public static class BuildingBox{ public static class BuildingBox implements Boxed<Building>{
public int pos; public int pos;
public BuildingBox(int pos){ public BuildingBox(int pos){
this.pos = pos; this.pos = pos;
} }
@Override
public Building unbox(){ public Building unbox(){
return world.build(pos); return world.build(pos);
} }
@@ -1059,13 +1064,14 @@ public class TypeIO{
} }
/** Represents a unit that has not been resolved yet. TODO unimplemented / unused*/ /** Represents a unit that has not been resolved yet. TODO unimplemented / unused*/
public static class UnitBox{ public static class UnitBox implements Boxed<Unit>{
public int id; public int id;
public UnitBox(int id){ public UnitBox(int id){
this.id = id; this.id = id;
} }
@Override
public Unit unbox(){ public Unit unbox(){
return Groups.unit.getByID(id); return Groups.unit.getByID(id);
} }

View File

@@ -8,11 +8,9 @@ import arc.math.*;
import arc.struct.*; import arc.struct.*;
import arc.util.*; import arc.util.*;
import mindustry.*; import mindustry.*;
import mindustry.content.*;
import mindustry.ctype.*; import mindustry.ctype.*;
import mindustry.gen.*; import mindustry.gen.*;
import mindustry.game.*; import mindustry.game.*;
import mindustry.logic.LExecutor.*;
import mindustry.type.*; import mindustry.type.*;
import mindustry.world.*; import mindustry.world.*;
import mindustry.world.blocks.legacy.*; import mindustry.world.blocks.legacy.*;
@@ -29,12 +27,11 @@ public class GlobalVars{
public static final Rand rand = new Rand(); public static final Rand rand = new Rand();
//non-constants that depend on state //non-constants that depend on state
private static int varTime, varTick, varSecond, varMinute, varWave, varWaveTime, varMapW, varMapH, varServer, varClient, varClientLocale, varClientUnit, varClientName, varClientTeam, varClientMobile; private static LVar varTime, varTick, varSecond, varMinute, varWave, varWaveTime, varMapW, varMapH, varServer, varClient, varClientLocale, varClientUnit, varClientName, varClientTeam, varClientMobile;
private ObjectIntMap<String> namesToIds = new ObjectIntMap<>(); private ObjectMap<String, LVar> vars = new ObjectMap<>();
private Seq<Var> vars = new Seq<>(Var.class);
private Seq<VarEntry> varEntries = new Seq<>(); private Seq<VarEntry> varEntries = new Seq<>();
private IntSet privilegedIds = new IntSet(); private ObjectSet<String> privilegedNames = new ObjectSet<>();
private UnlockableContent[][] logicIdToContent; private UnlockableContent[][] logicIdToContent;
private int[][] contentIdToLogicId; private int[][] contentIdToLogicId;
@@ -131,9 +128,6 @@ public class GlobalVars{
put("@color" + Strings.capitalize(entry.key), entry.value.toDoubleBits()); put("@color" + Strings.capitalize(entry.key), entry.value.toDoubleBits());
} }
//used as a special value for any environmental solid block
put("@solid", Blocks.stoneWall);
for(UnitType type : Vars.content.units()){ for(UnitType type : Vars.content.units()){
put("@" + type.name, type); put("@" + type.name, type);
} }
@@ -185,31 +179,31 @@ public class GlobalVars{
public void update(){ public void update(){
//set up time; note that @time is now only updated once every invocation and directly based off of @tick. //set up time; note that @time is now only updated once every invocation and directly based off of @tick.
//having time be based off of user system time was a very bad idea. //having time be based off of user system time was a very bad idea.
vars.items[varTime].numval = state.tick / 60.0 * 1000.0; varTime.numval = state.tick / 60.0 * 1000.0;
vars.items[varTick].numval = state.tick; varTick.numval = state.tick;
//shorthands for seconds/minutes spent in save //shorthands for seconds/minutes spent in save
vars.items[varSecond].numval = state.tick / 60f; varSecond.numval = state.tick / 60f;
vars.items[varMinute].numval = state.tick / 60f / 60f; varMinute.numval = state.tick / 60f / 60f;
//wave state //wave state
vars.items[varWave].numval = state.wave; varWave.numval = state.wave;
vars.items[varWaveTime].numval = state.wavetime / 60f; varWaveTime.numval = state.wavetime / 60f;
vars.items[varMapW].numval = world.width(); varMapW.numval = world.width();
vars.items[varMapH].numval = world.height(); varMapH.numval = world.height();
//network //network
vars.items[varServer].numval = (net.server() || !net.active()) ? 1 : 0; varServer.numval = (net.server() || !net.active()) ? 1 : 0;
vars.items[varClient].numval = net.client() ? 1 : 0; varClient.numval = net.client() ? 1 : 0;
//client //client
if(!net.server() && player != null){ if(!net.server() && player != null){
vars.items[varClientLocale].objval = player.locale(); varClientLocale.objval = player.locale();
vars.items[varClientUnit].objval = player.unit(); varClientUnit.objval = player.unit();
vars.items[varClientName].objval = player.name(); varClientName.objval = player.name();
vars.items[varClientTeam].numval = player.team().id; varClientTeam.numval = player.team().id;
vars.items[varClientMobile].numval = mobile ? 1 : 0; varClientMobile.numval = mobile ? 1 : 0;
} }
} }
@@ -230,84 +224,81 @@ public class GlobalVars{
} }
/** /**
* @return a constant ID > 0 if there is a constant with this name, otherwise -1. * @return a constant variable if there is a constant with this name, otherwise null.
* Attempt to get privileged variable id from non-privileged logic executor returns null constant id. * Attempt to get privileged variable from non-privileged logic executor returns null constant.
*/ */
public int get(String name){ public LVar get(String name){
return namesToIds.get(name, -1); return vars.get(name);
} }
/** /**
* @return a constant variable by ID. ID is not bound checked and must be positive. * @return a constant variable by name
* Attempt to get privileged variable from non-privileged logic executor returns null constant * Attempt to get privileged variable from non-privileged logic executor returns null constant.
*/ */
public Var get(int id, boolean privileged){ public LVar get(String name, boolean privileged){
if(!privileged && privilegedIds.contains(id)) return vars.get(namesToIds.get("null")); if(!privileged && privilegedNames.contains(name)) return vars.get("null");
return vars.items[id]; return vars.get(name);
} }
/** Sets a global variable by an ID returned from put(). */ /** Sets a global variable by name. */
public void set(int id, double value){ public void set(String name, double value){
get(id, true).numval = value; get(name, true).numval = value;
} }
/** Adds a constant value by name. */ /** Adds a constant value by name. */
public int put(String name, Object value, boolean privileged){ public LVar put(String name, Object value, boolean privileged){
return put(name, value, privileged, true); return put(name, value, privileged, true);
} }
/** Adds a constant value by name. */ /** Adds a constant value by name. */
public int put(String name, Object value, boolean privileged, boolean hidden){ public LVar put(String name, Object value, boolean privileged, boolean hidden){
int existingIdx = namesToIds.get(name, -1); LVar existingVar = vars.get(name);
if(existingIdx != -1){ //don't overwrite existing vars (see #6910) if(existingVar != null){ //don't overwrite existing vars (see #6910)
Log.debug("Failed to add global logic variable '@', as it already exists.", name); Log.debug("Failed to add global logic variable '@', as it already exists.", name);
return existingIdx; return existingVar;
} }
Var var = new Var(name); LVar var = new LVar(name);
var.constant = true; var.constant = true;
if(value instanceof Number num){ if(value instanceof Number num){
var.isobj = false;
var.numval = num.doubleValue(); var.numval = num.doubleValue();
}else{ }else{
var.isobj = true; var.isobj = true;
var.objval = value; var.objval = value;
} }
int index = vars.size; vars.put(name, var);
namesToIds.put(name, index); if(privileged) privilegedNames.add(name);
if(privileged) privilegedIds.add(index);
vars.add(var);
if(!hidden){ if(!hidden){
varEntries.add(new VarEntry(index, name, "", "", privileged)); varEntries.add(new VarEntry(name, "", "", privileged));
} }
return index; return var;
} }
public int put(String name, Object value){ public LVar put(String name, Object value){
return put(name, value, false); return put(name, value, false);
} }
public int putEntry(String name, Object value){ public LVar putEntry(String name, Object value){
return put(name, value, false, false); return put(name, value, false, false);
} }
public int putEntry(String name, Object value, boolean privileged){ public LVar putEntry(String name, Object value, boolean privileged){
return put(name, value, privileged, false); return put(name, value, privileged, false);
} }
public void putEntryOnly(String name){ public void putEntryOnly(String name){
varEntries.add(new VarEntry(0, name, "", "", false)); varEntries.add(new VarEntry(name, "", "", false));
} }
/** An entry that describes a variable for documentation purposes. This is *only* used inside UI for global variables. */ /** An entry that describes a variable for documentation purposes. This is *only* used inside UI for global variables. */
public static class VarEntry{ public static class VarEntry{
public int id;
public String name, description, icon; public String name, description, icon;
public boolean privileged; public boolean privileged;
public VarEntry(int id, String name, String description, String icon, boolean privileged){ public VarEntry(String name, String description, String icon, boolean privileged){
this.id = id;
this.name = name; this.name = name;
this.description = description; this.description = description;
this.icon = icon; this.icon = icon;

View File

@@ -5,12 +5,13 @@ import arc.graphics.*;
import arc.scene.ui.*; import arc.scene.ui.*;
import arc.scene.ui.layout.*; import arc.scene.ui.layout.*;
import arc.util.*; import arc.util.*;
import mindustry.*;
import mindustry.gen.*; import mindustry.gen.*;
import mindustry.graphics.*; import mindustry.graphics.*;
import mindustry.ui.*; import mindustry.ui.*;
import mindustry.ui.dialogs.*; import mindustry.ui.dialogs.*;
import static mindustry.Vars.*;
public class GlobalVarsDialog extends BaseDialog{ public class GlobalVarsDialog extends BaseDialog{
public GlobalVarsDialog(){ public GlobalVarsDialog(){
@@ -28,8 +29,7 @@ public class GlobalVarsDialog extends BaseDialog{
cont.pane(t -> { cont.pane(t -> {
t.margin(10f).marginRight(16f); t.margin(10f).marginRight(16f);
t.defaults().fillX().fillY(); t.defaults().fillX().fillY();
for(var entry : Vars.logicVars.getEntries()){ for(var entry : logicVars.getEntries()){
if(entry.name.startsWith("section")){ if(entry.name.startsWith("section")){
Color color = Pal.accent; Color color = Pal.accent;
t.add("@lglobal." + entry.name).fillX().center().labelAlign(Align.center).colspan(4).color(color).padTop(4f).padBottom(2f).row(); t.add("@lglobal." + entry.name).fillX().center().labelAlign(Align.center).colspan(4).color(color).padTop(4f).padBottom(2f).row();

View File

@@ -35,6 +35,7 @@ public enum LAccess{
cameraWidth, cameraWidth,
cameraHeight, cameraHeight,
size, size,
solid,
dead, dead,
range, range,
shooting, shooting,

View File

@@ -14,16 +14,15 @@ public class LAssembler{
private static final int invalidNum = Integer.MIN_VALUE; private static final int invalidNum = Integer.MIN_VALUE;
private int lastVar;
private boolean privileged; private boolean privileged;
/** Maps names to variable IDs. */ /** Maps names to variable. */
public ObjectMap<String, BVar> vars = new ObjectMap<>(); public OrderedMap<String, LVar> vars = new OrderedMap<>();
/** All instructions to be executed. */ /** All instructions to be executed. */
public LInstruction[] instructions; public LInstruction[] instructions;
public LAssembler(){ public LAssembler(){
//instruction counter //instruction counter
putVar("@counter").value = 0; putVar("@counter");
//currently controlled unit //currently controlled unit
putConst("@unit", null); putConst("@unit", null);
//reference to self //reference to self
@@ -57,20 +56,17 @@ public class LAssembler{
return new LParser(text, privileged).parse(); return new LParser(text, privileged).parse();
} }
/** @return a variable ID by name. /** @return a variable by name.
* This may be a constant variable referring to a number or object. */ * This may be a constant variable referring to a number or object. */
public int var(String symbol){ public LVar var(String symbol){
int constId = Vars.logicVars.get(symbol); LVar constVar = Vars.logicVars.get(symbol);
if(constId > 0){ if(constVar != null) return constVar;
//global constants are *negated* and stored separately
return -constId;
}
symbol = symbol.trim(); symbol = symbol.trim();
//string case //string case
if(!symbol.isEmpty() && symbol.charAt(0) == '\"' && symbol.charAt(symbol.length() - 1) == '\"'){ if(!symbol.isEmpty() && symbol.charAt(0) == '\"' && symbol.charAt(symbol.length() - 1) == '\"'){
return putConst("___" + symbol, symbol.substring(1, symbol.length() - 1).replace("\\n", "\n")).id; return putConst("___" + symbol, symbol.substring(1, symbol.length() - 1).replace("\\n", "\n"));
} }
//remove spaces for non-strings //remove spaces for non-strings
@@ -79,10 +75,10 @@ public class LAssembler{
double value = parseDouble(symbol); double value = parseDouble(symbol);
if(value == invalidNum){ if(value == invalidNum){
return putVar(symbol).id; return putVar(symbol);
}else{ }else{
//this creates a hidden const variable with the specified value //this creates a hidden const variable with the specified value
return putConst("___" + value, value).id; return putConst("___" + value, value);
} }
} }
@@ -106,48 +102,34 @@ public class LAssembler{
} }
/** Adds a constant value by name. */ /** Adds a constant value by name. */
public BVar putConst(String name, Object value){ public LVar putConst(String name, Object value){
BVar var = putVar(name); LVar var = putVar(name);
if(value instanceof Number number){
var.isobj = false;
var.numval = number.doubleValue();
var.objval = null;
}else{
var.isobj = true;
var.objval = value;
}
var.constant = true; var.constant = true;
var.value = value;
return var; return var;
} }
/** Registers a variable name mapping. */ /** Registers a variable name mapping. */
public BVar putVar(String name){ public LVar putVar(String name){
if(vars.containsKey(name)){ if(vars.containsKey(name)){
return vars.get(name); return vars.get(name);
}else{ }else{
BVar var = new BVar(lastVar++); LVar var = new LVar(name);
vars.put(name, var); vars.put(name, var);
return var; return var;
} }
} }
@Nullable @Nullable
public BVar getVar(String name){ public LVar getVar(String name){
return vars.get(name); return vars.get(name);
} }
/** A variable "builder". */
public static class BVar{
public int id;
public boolean constant;
public Object value;
public BVar(int id){
this.id = id;
}
BVar(){}
@Override
public String toString(){
return "BVar{" +
"id=" + id +
", constant=" + constant +
", value=" + value +
'}';
}
}
} }

File diff suppressed because it is too large Load Diff

View File

@@ -282,8 +282,8 @@ public class LStatements{
@Override @Override
public LInstruction build(LAssembler builder){ public LInstruction build(LAssembler builder){
return new DrawI((byte)type.ordinal(), 0, builder.var(x), builder.var(y), return new DrawI((byte)type.ordinal(), builder.var(x), builder.var(y),
type == GraphicsType.print ? nameToAlign.get(p1, Align.bottomLeft) : builder.var(p1), builder.var(p2), builder.var(p3), builder.var(p4)); type == GraphicsType.print ? new LVar(p1, nameToAlign.get(p1, Align.bottomLeft), true) : builder.var(p1), builder.var(p2), builder.var(p3), builder.var(p4));
} }
@Override @Override
@@ -1046,7 +1046,7 @@ public class LStatements{
@Override @Override
public LInstruction build(LAssembler builder){ public LInstruction build(LAssembler builder){
return new RadarI(target1, target2, target3, sort, LExecutor.varUnit, builder.var(sortOrder), builder.var(output)); return new RadarI(target1, target2, target3, sort, builder.var("@unit"), builder.var(sortOrder), builder.var(output));
} }
@Override @Override
@@ -1912,6 +1912,42 @@ public class LStatements{
} }
} }
@RegisterStatement("clientdata")
public static class ClientDataStatement extends LStatement{
public String channel = "\"frog\"", value = "\"bar\"", reliable = "0";
@Override
public void build(Table table){
table.add("send ");
fields(table, value, str -> value = str);
table.add(" on ");
fields(table, channel, str -> channel = str);
table.add(", reliable ");
fields(table, channel, str -> channel = str);
}
@Override
public boolean hidden(){
return true;
}
@Override
public boolean privileged(){
return true;
}
@Override
public LInstruction build(LAssembler builder){
if(!state.rules.allowLogicData) return null;
return new ClientDataI(builder.var(channel), builder.var(value), builder.var(reliable));
}
@Override
public LCategory category(){
return LCategory.world;
}
}
@RegisterStatement("getflag") @RegisterStatement("getflag")
public static class GetFlagStatement extends LStatement{ public static class GetFlagStatement extends LStatement{
public String result = "result", flag = "\"flag\""; public String result = "result", flag = "\"flag\"";

View File

@@ -0,0 +1,108 @@
package mindustry.logic;
import arc.util.*;
import mindustry.game.*;
import mindustry.gen.*;
public class LVar{
public final String name;
public int id;
public boolean isobj, constant;
public Object objval;
public double numval;
//ms timestamp for when this was last synced; used in the sync instruction
public long syncTime;
public LVar(String name){
this(name, -1);
}
public LVar(String name, int id){
this(name, id, false);
}
public LVar(String name, int id, boolean constant){
this.name = name;
this.id = id;
this.constant = constant;
}
public @Nullable Building building(){
return isobj && objval instanceof Building building ? building : null;
}
public @Nullable Object obj(){
return isobj ? objval : null;
}
public @Nullable Team team(){
if(isobj){
return objval instanceof Team t ? t : null;
}else{
int t = (int)numval;
if(t < 0 || t >= Team.all.length) return null;
return Team.all[t];
}
}
public boolean bool(){
return isobj ? objval != null : Math.abs(numval) >= 0.00001;
}
public double num(){
return isobj ? objval != null ? 1 : 0 : invalid(numval) ? 0 : numval;
}
/** Get num value from variable, convert null to NaN to handle it differently in some instructions */
public double numOrNan(){
return isobj ? objval != null ? 1 : Double.NaN : invalid(numval) ? 0 : numval;
}
public float numf(){
return isobj ? objval != null ? 1 : 0 : invalid(numval) ? 0 : (float)numval;
}
/** Get float value from variable, convert null to NaN to handle it differently in some instructions */
public float numfOrNan(){
return isobj ? objval != null ? 1 : Float.NaN : invalid(numval) ? 0 : (float)numval;
}
public int numi(){
return (int)num();
}
public void setbool(boolean value){
setnum(value ? 1 : 0);
}
public void setnum(double value){
if(constant) return;
if(invalid(value)){
objval = null;
isobj = true;
}else{
numval = value;
objval = null;
isobj = false;
}
}
public void setobj(Object value){
if(constant) return;
objval = value;
isobj = true;
}
public void setconst(Object value){
objval = value;
isobj = true;
}
public static boolean invalid(double d){
return Double.isNaN(d) || Double.isInfinite(d);
}
}

View File

@@ -53,7 +53,7 @@ public class LogicDialog extends BaseDialog{
add(buttons).growX().name("canvas"); add(buttons).growX().name("canvas");
} }
public static Color typeColor(Var s, Color color){ public static Color typeColor(LVar s, Color color){
return color.set( return color.set(
!s.isobj ? Pal.place : !s.isobj ? Pal.place :
s.objval == null ? Color.darkGray : s.objval == null ? Color.darkGray :
@@ -67,7 +67,7 @@ public class LogicDialog extends BaseDialog{
); );
} }
public static String typeName(Var s){ public static String typeName(LVar s){
return return
!s.isobj ? "number" : !s.isobj ? "number" :
s.objval == null ? "null" : s.objval == null ? "null" :

View File

@@ -954,6 +954,8 @@ public class ContentParser{
case "min" -> base.min(parser.readValue(PartProgress.class, data.get("other"))); case "min" -> base.min(parser.readValue(PartProgress.class, data.get("other")));
case "sin" -> base.sin(data.has("offset") ? data.getFloat("offset") : 0f, data.getFloat("scl"), data.getFloat("mag")); case "sin" -> base.sin(data.has("offset") ? data.getFloat("offset") : 0f, data.getFloat("scl"), data.getFloat("mag"));
case "absin" -> base.absin(data.getFloat("scl"), data.getFloat("mag")); case "absin" -> base.absin(data.getFloat("scl"), data.getFloat("mag"));
case "mod" -> base.mod(data.getFloat("amount"));
case "loop" -> base.loop(data.getFloat("time"));
case "curve" -> data.has("interp") ? base.curve(parser.readValue(Interp.class, data.get("interp"))) : base.curve(data.getFloat("offset"), data.getFloat("duration")); case "curve" -> data.has("interp") ? base.curve(parser.readValue(Interp.class, data.get("interp"))) : base.curve(data.getFloat("offset"), data.getFloat("duration"));
default -> throw new RuntimeException("Unknown operation '" + op + "', check PartProgress class for a list of methods."); default -> throw new RuntimeException("Unknown operation '" + op + "', check PartProgress class for a list of methods.");
}; };

View File

@@ -141,8 +141,10 @@ public class UnitType extends UnlockableContent implements Senseable{
/** if true, this unit counts as an enemy in the wave counter (usually false for support-only units) */ /** if true, this unit counts as an enemy in the wave counter (usually false for support-only units) */
public boolean isEnemy = true, public boolean isEnemy = true,
/** If true, the unit is always at elevation 1. */ /** if true, the unit is always at elevation 1 */
flying = false, flying = false,
/** whether this flying unit should wobble around */
wobble = true,
/** whether this unit tries to attack air units */ /** whether this unit tries to attack air units */
targetAir = true, targetAir = true,
/** whether this unit tries to attack ground units */ /** whether this unit tries to attack ground units */

View File

@@ -20,11 +20,10 @@ import arc.struct.*;
import arc.util.*; import arc.util.*;
import mindustry.*; import mindustry.*;
import mindustry.core.*; import mindustry.core.*;
import mindustry.ctype.*;
import mindustry.game.*; import mindustry.game.*;
import mindustry.gen.*; import mindustry.gen.*;
import java.util.*; import java.io.*;
public class Fonts{ public class Fonts{
private static final String mainFont = "fonts/font.woff"; private static final String mainFont = "fonts/font.woff";
@@ -33,15 +32,9 @@ public class Fonts{
private static IntMap<String> unicodeToName = new IntMap<>(); private static IntMap<String> unicodeToName = new IntMap<>();
private static ObjectMap<String, String> stringIcons = new ObjectMap<>(); private static ObjectMap<String, String> stringIcons = new ObjectMap<>();
private static ObjectMap<String, TextureRegion> largeIcons = new ObjectMap<>(); private static ObjectMap<String, TextureRegion> largeIcons = new ObjectMap<>();
private static TextureRegion[] iconTable;
private static int lastCid;
public static Font def, outline, icon, iconLarge, tech, logic; public static Font def, outline, icon, iconLarge, tech, logic;
public static TextureRegion logicIcon(int id){
return iconTable[id];
}
public static int getUnicode(String content){ public static int getUnicode(String content){
return unicodeIcons.get(content, 0); return unicodeIcons.get(content, 0);
} }
@@ -117,9 +110,9 @@ public class Fonts{
Texture uitex = Core.atlas.find("logo").texture; Texture uitex = Core.atlas.find("logo").texture;
int size = (int)(Fonts.def.getData().lineHeight/Fonts.def.getData().scaleY); int size = (int)(Fonts.def.getData().lineHeight/Fonts.def.getData().scaleY);
try(Scanner scan = new Scanner(Core.files.internal("icons/icons.properties").read(512))){ try(var reader = Core.files.internal("icons/icons.properties").reader(Vars.bufferSize)){
while(scan.hasNextLine()){ String line;
String line = scan.nextLine(); while((line = reader.readLine()) != null){
String[] split = line.split("="); String[] split = line.split("=");
String[] nametex = split[1].split("\\|"); String[] nametex = split[1].split("\\|");
String character = split[0], texture = nametex[1]; String character = split[0], texture = nametex[1];
@@ -154,32 +147,21 @@ public class Fonts{
glyph.page = 0; glyph.page = 0;
fonts.each(f -> f.getData().setGlyph(ch, glyph)); fonts.each(f -> f.getData().setGlyph(ch, glyph));
} }
}catch(IOException e){
throw new RuntimeException(e);
} }
stringIcons.put("alphachan", stringIcons.get("alphaaaa")); stringIcons.put("alphachan", stringIcons.get("alphaaaa"));
iconTable = new TextureRegion[512];
iconTable[0] = Core.atlas.find("error");
lastCid = 1;
Vars.content.each(c -> {
if(c instanceof UnlockableContent u){
TextureRegion region = Core.atlas.find(u.name + "-icon-logic");
if(region.found()){
iconTable[u.iconId = lastCid++] = region;
}
}
});
for(Team team : Team.baseTeams){ for(Team team : Team.baseTeams){
team.emoji = stringIcons.get(team.name, ""); team.emoji = stringIcons.get(team.name, "");
} }
} }
public static void loadContentIconsHeadless(){ public static void loadContentIconsHeadless(){
try(Scanner scan = new Scanner(Core.files.internal("icons/icons.properties").read(512))){ try(var reader = Core.files.internal("icons/icons.properties").reader(Vars.bufferSize)){
while(scan.hasNextLine()){ String line;
String line = scan.nextLine(); while((line = reader.readLine()) != null){
String[] split = line.split("="); String[] split = line.split("=");
String[] nametex = split[1].split("\\|"); String[] nametex = split[1].split("\\|");
String character = split[0]; String character = split[0];
@@ -188,6 +170,8 @@ public class Fonts{
unicodeIcons.put(nametex[0], ch); unicodeIcons.put(nametex[0], ch);
stringIcons.put(nametex[0], ((char)ch) + ""); stringIcons.put(nametex[0], ((char)ch) + "");
} }
}catch(IOException e){
throw new RuntimeException(e);
} }
stringIcons.put("alphachan", stringIcons.get("alphaaaa")); stringIcons.put("alphachan", stringIcons.get("alphaaaa"));

View File

@@ -215,6 +215,7 @@ public class CustomRulesDialog extends BaseDialog{
check("@rules.wavesending", b -> rules.waveSending = b, () -> rules.waveSending, () -> rules.waves); check("@rules.wavesending", b -> rules.waveSending = b, () -> rules.waveSending, () -> rules.waves);
check("@rules.wavetimer", b -> rules.waveTimer = b, () -> rules.waveTimer, () -> rules.waves); check("@rules.wavetimer", b -> rules.waveTimer = b, () -> rules.waveTimer, () -> rules.waves);
check("@rules.waitForWaveToEnd", b -> rules.waitEnemies = b, () -> rules.waitEnemies, () -> rules.waves && rules.waveTimer); check("@rules.waitForWaveToEnd", b -> rules.waitEnemies = b, () -> rules.waitEnemies, () -> rules.waves && rules.waveTimer);
check("@rules.airUseSpawns", b -> rules.airUseSpawns = b, () -> rules.airUseSpawns, () -> rules.waves);
numberi("@rules.wavelimit", f -> rules.winWave = f, () -> rules.winWave, () -> rules.waves, 0, Integer.MAX_VALUE); numberi("@rules.wavelimit", f -> rules.winWave = f, () -> rules.winWave, () -> rules.waves, 0, Integer.MAX_VALUE);
number("@rules.wavespacing", false, f -> rules.waveSpacing = f * 60f, () -> rules.waveSpacing / 60f, () -> rules.waves && rules.waveTimer, 1, Float.MAX_VALUE); number("@rules.wavespacing", false, f -> rules.waveSpacing = f * 60f, () -> rules.waveSpacing / 60f, () -> rules.waves && rules.waveTimer, 1, Float.MAX_VALUE);
//this is experimental, because it's not clear that 0 makes it default. //this is experimental, because it's not clear that 0 makes it default.

View File

@@ -519,6 +519,10 @@ public class Block extends UnlockableContent implements Senseable{
return rotate; return rotate;
} }
public boolean rotatedOutput(int fromX, int fromY, Tile destination){
return rotatedOutput(fromX, fromY);
}
public boolean synthetic(){ public boolean synthetic(){
return update || destructible; return update || destructible;
} }
@@ -1403,6 +1407,7 @@ public class Block extends UnlockableContent implements Senseable{
return switch(sensor){ return switch(sensor){
case color -> mapColor.toDoubleBits(); case color -> mapColor.toDoubleBits();
case health, maxHealth -> health; case health, maxHealth -> health;
case solid -> solid ? 1 : 0;
case size -> size; case size -> size;
case itemCapacity -> itemCapacity; case itemCapacity -> itemCapacity;
case liquidCapacity -> liquidCapacity; case liquidCapacity -> liquidCapacity;

View File

@@ -206,7 +206,7 @@ public interface Autotiler{
//block is facing the other //block is facing the other
Point2.equals(tile.x + Geometry.d4(rotation).x, tile.y + Geometry.d4(rotation).y, otherx, othery) || Point2.equals(tile.x + Geometry.d4(rotation).x, tile.y + Geometry.d4(rotation).y, otherx, othery) ||
//does not output to rotated direction //does not output to rotated direction
!otherblock.rotatedOutput(otherx, othery) || !otherblock.rotatedOutput(otherx, othery, tile) ||
//other block is facing this one //other block is facing this one
Point2.equals(otherx + Geometry.d4(otherrot).x, othery + Geometry.d4(otherrot).y, tile.x, tile.y); Point2.equals(otherx + Geometry.d4(otherrot).x, othery + Geometry.d4(otherrot).y, tile.x, tile.y);
} }

View File

@@ -20,8 +20,6 @@ import mindustry.graphics.*;
import mindustry.io.*; import mindustry.io.*;
import mindustry.io.TypeIO.*; import mindustry.io.TypeIO.*;
import mindustry.logic.*; import mindustry.logic.*;
import mindustry.logic.LAssembler.*;
import mindustry.logic.LExecutor.*;
import mindustry.ui.*; import mindustry.ui.*;
import mindustry.world.*; import mindustry.world.*;
import mindustry.world.blocks.ConstructBlock.*; import mindustry.world.blocks.ConstructBlock.*;
@@ -381,12 +379,14 @@ public class LogicBlock extends Block{
if(keep){ if(keep){
//store any older variables //store any older variables
for(Var var : executor.vars){ for(LVar var : executor.vars){
boolean unit = var.name.equals("@unit"); boolean unit = var.name.equals("@unit");
if(!var.constant || unit){ if(!var.constant || unit){
BVar dest = asm.getVar(var.name); LVar dest = asm.getVar(var.name);
if(dest != null && (!dest.constant || unit)){ if(dest != null && (!dest.constant || unit)){
dest.value = var.isobj ? var.objval : var.numval; dest.isobj = var.isobj;
dest.objval = var.objval;
dest.numval = var.numval;
} }
} }
} }
@@ -397,7 +397,7 @@ public class LogicBlock extends Block{
assemble.get(asm); assemble.get(asm);
} }
asm.getVar("@this").value = this; asm.getVar("@this").setconst(this);
asm.putConst("@thisx", World.conv(x)); asm.putConst("@thisx", World.conv(x));
asm.putConst("@thisy", World.conv(y)); asm.putConst("@thisy", World.conv(y));
@@ -682,17 +682,17 @@ public class LogicBlock extends Block{
write.b(compressed); write.b(compressed);
//write only the non-constant variables //write only the non-constant variables
int count = Structs.count(executor.vars, v -> (!v.constant || v == executor.vars[LExecutor.varUnit]) && !(v.isobj && v.objval == null)); int count = Structs.count(executor.vars, v -> (!v.constant || v == executor.unit) && !(v.isobj && v.objval == null));
write.i(count); write.i(count);
for(int i = 0; i < executor.vars.length; i++){ for(int i = 0; i < executor.vars.length; i++){
Var v = executor.vars[i]; LVar v = executor.vars[i];
//null is the default variable value, so waste no time serializing that //null is the default variable value, so waste no time serializing that
if(v.isobj && v.objval == null) continue; if(v.isobj && v.objval == null) continue;
//skip constants //skip constants
if(v.constant && i != LExecutor.varUnit) continue; if(v.constant && v != executor.unit) continue;
//write the name and the object value //write the name and the object value
write.str(v.name); write.str(v.name);
@@ -751,13 +751,9 @@ public class LogicBlock extends Block{
loadBlock = () -> updateCode(code, false, asm -> { loadBlock = () -> updateCode(code, false, asm -> {
//load up the variables that were stored //load up the variables that were stored
for(int i = 0; i < varcount; i++){ for(int i = 0; i < varcount; i++){
BVar dest = asm.getVar(names[i]); LVar var = asm.getVar(names[i]);
if(var.objval instanceof Boxed<?> boxed){
if(dest != null && (!dest.constant || dest.id == LExecutor.varUnit)){ var.objval = boxed.unbox();
dest.value =
values[i] instanceof BuildingBox box ? box.unbox() :
values[i] instanceof UnitBox box ? box.unbox() :
values[i];
} }
} }
}); });

View File

@@ -10,6 +10,7 @@ import arc.util.*;
import arc.util.io.*; import arc.util.io.*;
import mindustry.*; import mindustry.*;
import mindustry.annotations.Annotations.*; import mindustry.annotations.Annotations.*;
import mindustry.ctype.*;
import mindustry.gen.*; import mindustry.gen.*;
import mindustry.graphics.*; import mindustry.graphics.*;
import mindustry.ui.*; import mindustry.ui.*;
@@ -120,8 +121,10 @@ public class LogicDisplay extends Block{
case commandColor -> Draw.color(this.color = Color.toFloatBits(x, y, p1, p2)); case commandColor -> Draw.color(this.color = Color.toFloatBits(x, y, p1, p2));
case commandStroke -> Lines.stroke(this.stroke = x); case commandStroke -> Lines.stroke(this.stroke = x);
case commandImage -> { case commandImage -> {
var icon = Fonts.logicIcon(p1); if(p4 >= 0 && p4 < ContentType.all.length && Vars.content.getByID(ContentType.all[p4], p1) instanceof UnlockableContent u){
Draw.rect(Fonts.logicIcon(p1), x, y, p2, p2 / icon.ratio(), p3); var icon = u.fullIcon;
Draw.rect(icon, x, y, p2, p2 / icon.ratio(), p3);
}
} }
case commandPrint -> { case commandPrint -> {
var glyph = Fonts.logic.getData().getGlyph((char)p1); var glyph = Fonts.logic.getData().getGlyph((char)p1);

View File

@@ -13,6 +13,7 @@ import mindustry.gen.*;
import mindustry.logic.*; import mindustry.logic.*;
import mindustry.type.*; import mindustry.type.*;
import mindustry.world.*; import mindustry.world.*;
import mindustry.world.blocks.liquid.Conduit.*;
import mindustry.world.draw.*; import mindustry.world.draw.*;
import mindustry.world.meta.*; import mindustry.world.meta.*;
@@ -91,8 +92,17 @@ public class GenericCrafter extends Block{
} }
@Override @Override
public boolean rotatedOutput(int x, int y){ public boolean rotatedOutput(int fromX, int fromY, Tile destination){
return false; if(!(destination.build instanceof ConduitBuild)) return false;
Building crafter = world.build(fromX, fromY);
if(crafter == null) return false;
int relative = Mathf.mod(crafter.relativeTo(destination) - crafter.rotation, 4);
for(int dir : liquidOutputDirections){
if(dir == -1 || dir == relative) return false;
}
return true;
} }
@Override @Override

View File

@@ -25,4 +25,4 @@ org.gradle.caching=true
#used for slow jitpack builds; TODO see if this actually works #used for slow jitpack builds; TODO see if this actually works
org.gradle.internal.http.socketTimeout=100000 org.gradle.internal.http.socketTimeout=100000
org.gradle.internal.http.connectionTimeout=100000 org.gradle.internal.http.connectionTimeout=100000
archash=480129c79d archash=7a6694c636

View File

@@ -33,7 +33,7 @@
}, },
{ {
"name": "DontVin", "name": "DontVin",
"address": ["51.89.173.50:1316","51.89.173.50:1355","51.89.173.50:1384","51.89.173.50:1383","be.phoenix-network.dev:4200","be.phoenix-network.dev:6942","51.89.173.50:1327","51.89.173.50:1310","51.89.173.50:1382","51.89.173.50:1387","51.89.173.50:1386","51.89.173.50:1385"] "address": ["45.84.59.49:1342","45.137.205.185:1068","45.137.205.185:1190","45.137.205.185:1191","be.phoenix-network.dev:4200","be.phoenix-network.dev:6942","134.255.218.3:1142","45.137.205.185:1192","45.137.205.185:1193","45.137.205.185:1221"]
}, },
{ {
"name": "Crux's Citadel", "name": "Crux's Citadel",
@@ -149,7 +149,7 @@
}, },
{ {
"name": "Eradication Mindustry", "name": "Eradication Mindustry",
"address": ["140.238.246.78:7000", "140.238.246.78:7001", "140.238.246.78:7002", "140.238.246.78:7003", "140.238.246.78:7004", "130.61.22.183:7000", "130.61.22.183:7001", "130.61.22.183:7002", "130.61.22.183:7003", "130.61.22.183:7004", "130.61.22.183:7005", "62.30.47.117:7000", "62.30.47.117:7001", "62.30.47.117:7002", "62.30.47.117:7003", "62.30.47.117:7004"] "address": ["140.238.246.78:7000", "140.238.246.78:7001", "140.238.246.78:7002", "140.238.246.78:7003", "140.238.246.78:7004", "130.61.22.183:7000", "130.61.22.183:7001", "130.61.22.183:7002", "130.61.22.183:7003", "130.61.22.183:7004", "130.61.22.183:7005", "130.61.22.183:7006", "62.30.47.117:7000", "62.30.47.117:7001", "62.30.47.117:7002", "62.30.47.117:7003", "62.30.47.116:7000", "62.30.47.116:7001"]
}, },
{ {
"name": "Conservatory", "name": "Conservatory",
@@ -209,7 +209,7 @@
}, },
{ {
"name": "Realm of Serene Lime", "name": "Realm of Serene Lime",
"address": ["43.248.116.142:10627","n2.akiracloud.net:10686","n2.akiracloud.net:10486", "p12.simpfun.cn:8654", "n2.akiracloud.net:10385"] "address": ["mindustry.icu", "sx.mindustry.icu", "mod.mindustry.icu"]
}, },
{ {
"name": "CreateDustry", "name": "CreateDustry",
@@ -246,7 +246,7 @@
}, },
{ {
"name": "abcxyz remaster", "name": "abcxyz remaster",
"address": ["144.76.57.59:30302"] "address": ["144.76.57.59:30302", "srv24.godlike.club:27272"]
}, },
{ {
"name": "CroCraft Network", "name": "CroCraft Network",
@@ -282,7 +282,7 @@
}, },
{ {
"name": "AZDustry", "name": "AZDustry",
"address": ["23.175.144.70:25845"] "address": ["8.245.23.28:25874"]
}, },
{ {
"name": "Erepulo", "name": "Erepulo",
@@ -310,10 +310,14 @@
}, },
{ {
"name": "ArmyOFUkraine", "name": "ArmyOFUkraine",
"address": ["194.247.42.131:27715"] "address": ["194.247.42.131:27715", "194.247.42.131:26639"]
}, },
{ {
"name": "Natrition", "name": "SandBox",
"address": ["94.103.90.138"] "address": ["185.9.145.8:25993"]
},
{
"name": "Vndustry",
"address": ["vndustry.ddns.net"]
} }
] ]

View File

@@ -19,7 +19,6 @@ import mindustry.world.*;
import mindustry.world.blocks.*; import mindustry.world.blocks.*;
import mindustry.world.blocks.environment.*; import mindustry.world.blocks.environment.*;
import mindustry.world.blocks.legacy.*; import mindustry.world.blocks.legacy.*;
import mindustry.world.meta.*;
import java.util.concurrent.*; import java.util.concurrent.*;
@@ -27,7 +26,7 @@ import static mindustry.Vars.*;
import static mindustry.tools.ImagePacker.*; import static mindustry.tools.ImagePacker.*;
public class Generators{ public class Generators{
static final int logicIconSize = 64, maxUiIcon = 128; static final int maxUiIcon = 128;
private static float fluid(boolean gas, double x, double y, float frame){ private static float fluid(boolean gas, double x, double y, float frame){
int keyframes = gas ? 4 : 3; int keyframes = gas ? 4 : 3;
@@ -384,10 +383,6 @@ public class Generators{
} }
save(image, "../editor/" + block.name + "-icon-editor"); save(image, "../editor/" + block.name + "-icon-editor");
if(block.buildVisibility != BuildVisibility.hidden){
saveScaled(image, block.name + "-icon-logic", Math.min(32 * 3, image.width));
}
saveScaled(image, "../ui/block-" + block.name + "-ui", Math.min(image.width, maxUiIcon)); saveScaled(image, "../ui/block-" + block.name + "-ui", Math.min(image.width, maxUiIcon));
boolean hasEmpty = false; boolean hasEmpty = false;
@@ -464,7 +459,6 @@ public class Generators{
base = container.outline(Pal.gray, 3); base = container.outline(Pal.gray, 3);
} }
saveScaled(base, item.name + "-icon-logic", Math.min(logicIconSize, Math.min(base.width, base.height)));
save(base, "../ui/" + item.getContentType().name() + "-" + item.name + "-ui"); save(base, "../ui/" + item.getContentType().name() + "-" + item.name + "-ui");
} }
}); });
@@ -722,7 +716,6 @@ public class Generators{
Pixmap fit = new Pixmap(maxd, maxd); Pixmap fit = new Pixmap(maxd, maxd);
drawScaledFit(fit, image); drawScaledFit(fit, image);
saveScaled(fit, type.name + "-icon-logic", Math.min(logicIconSize, Math.min(fit.width, fit.height)));
save(fit, "../ui/unit-" + type.name + "-ui"); save(fit, "../ui/unit-" + type.name + "-ui");
}catch(IllegalArgumentException e){ }catch(IllegalArgumentException e){
Log.err("WARNING: Skipping unit @: @", type.name, e.getMessage()); Log.err("WARNING: Skipping unit @: @", type.name, e.getMessage());