Merge branch 'master' into patch-2

This commit is contained in:
Thomas Widyantoko
2020-10-20 05:55:02 +07:00
committed by GitHub
124 changed files with 2438 additions and 2294 deletions

View File

@@ -512,6 +512,7 @@ weather.rain.name = Rain
weather.snow.name = Snow
weather.sandstorm.name = Sandstorm
weather.sporestorm.name = Sporestorm
weather.fog.name = Fog
sectors.unexplored = [lightgray]Unexplored
sectors.resources = Resources:
@@ -581,50 +582,61 @@ error.title = [scarlet]An error has occured
error.crashtitle = An error has occured
unit.nobuild = [scarlet]Unit can't build
lastaccessed = [lightgray]Last Accessed: {0}
blocks.input = Input
blocks.output = Output
blocks.booster = Booster
blocks.tiles = Required Tiles
blocks.affinities = Affinities
block.unknown = [lightgray]???
blocks.powercapacity = Power Capacity
blocks.powershot = Power/Shot
blocks.damage = Damage
blocks.targetsair = Targets Air
blocks.targetsground = Targets Ground
blocks.itemsmoved = Move Speed
blocks.launchtime = Time Between Launches
blocks.shootrange = Range
blocks.size = Size
blocks.displaysize = Display Size
blocks.liquidcapacity = Liquid Capacity
blocks.powerrange = Power Range
blocks.linkrange = Link Range
blocks.instructions = Instructions
blocks.powerconnections = Max Connections
blocks.poweruse = Power Use
blocks.powerdamage = Power/Damage
blocks.itemcapacity = Item Capacity
blocks.memorycapacity = Memory Capacity
blocks.basepowergeneration = Base Power Generation
blocks.productiontime = Production Time
blocks.repairtime = Block Full Repair Time
blocks.speedincrease = Speed Increase
blocks.range = Range
blocks.drilltier = Drillables
blocks.drillspeed = Base Drill Speed
blocks.boosteffect = Boost Effect
blocks.maxunits = Max Active Units
blocks.health = Health
blocks.buildtime = Build Time
blocks.maxconsecutive = Max Consecutive
blocks.buildcost = Build Cost
blocks.inaccuracy = Inaccuracy
blocks.shots = Shots
blocks.reload = Shots/Second
blocks.ammo = Ammo
blocks.shieldhealth = Shield Health
blocks.cooldowntime = Cooldown Time
stat.input = Input
stat.output = Output
stat.booster = Booster
stat.tiles = Required Tiles
stat.affinities = Affinities
stat.powercapacity = Power Capacity
stat.powershot = Power/Shot
stat.damage = Damage
stat.targetsair = Targets Air
stat.targetsground = Targets Ground
stat.itemsmoved = Move Speed
stat.launchtime = Time Between Launches
stat.shootrange = Range
stat.size = Size
stat.displaysize = Display Size
stat.liquidcapacity = Liquid Capacity
stat.powerrange = Power Range
stat.linkrange = Link Range
stat.instructions = Instructions
stat.powerconnections = Max Connections
stat.poweruse = Power Use
stat.powerdamage = Power/Damage
stat.itemcapacity = Item Capacity
stat.memorycapacity = Memory Capacity
stat.basepowergeneration = Base Power Generation
stat.productiontime = Production Time
stat.repairtime = Block Full Repair Time
stat.speedincrease = Speed Increase
stat.range = Range
stat.drilltier = Drillables
stat.drillspeed = Base Drill Speed
stat.boosteffect = Boost Effect
stat.maxunits = Max Active Units
stat.health = Health
stat.buildtime = Build Time
stat.maxconsecutive = Max Consecutive
stat.buildcost = Build Cost
stat.inaccuracy = Inaccuracy
stat.shots = Shots
stat.reload = Shots/Second
stat.ammo = Ammo
stat.shieldhealth = Shield Health
stat.cooldowntime = Cooldown Time
stat.explosiveness = Explosiveness
stat.flammability = Flammability
stat.radioactivity = Radioactivity
stat.heatcapacity = HeatCapacity
stat.viscosity = Viscosity
stat.temperature = Temperature
stat.speed = Speed
stat.buildspeed = Build Speed
stat.minespeed = Mine Speed
stat.minetier = Mine Tier
bar.drilltierreq = Better Drill Required
bar.noresources = Missing Resources
@@ -875,6 +887,7 @@ content.item.name = Items
content.liquid.name = Liquids
content.unit.name = Units
content.block.name = Blocks
item.copper.name = Copper
item.lead.name = Lead
item.coal.name = Coal
@@ -896,23 +909,6 @@ liquid.slag.name = Slag
liquid.oil.name = Oil
liquid.cryofluid.name = Cryofluid
item.explosiveness = [lightgray]Explosiveness: {0}%
item.flammability = [lightgray]Flammability: {0}%
item.radioactivity = [lightgray]Radioactivity: {0}%
unit.health = [lightgray]Health: {0}
unit.speed = [lightgray]Speed: {0}
unit.weapon = [lightgray]Weapon: {0}
unit.itemcapacity = [lightgray]Item Capacity: {0}
unit.minespeed = [lightgray]Mining Speed: {0}%
unit.minepower = [lightgray]Mining Power: {0}
unit.ability = [lightgray]Ability: {0}
unit.buildspeed = [lightgray]Building Speed: {0}%
liquid.heatcapacity = [lightgray]Heat Capacity: {0}
liquid.viscosity = [lightgray]Viscosity: {0}
liquid.temperature = [lightgray]Temperature: {0}
unit.dagger.name = Dagger
unit.mace.name = Mace
unit.fortress.name = Fortress
@@ -1324,5 +1320,4 @@ block.cyclone.description = A large anti-air and anti-ground turret. Fires explo
block.spectre.description = A massive dual-barreled cannon. Shoots large armor-piercing bullets at air and ground targets.
block.meltdown.description = A massive laser cannon. Charges and fires a persistent laser beam at nearby enemies. Requires coolant to operate.
block.repair-point.description = Continuously heals the closest damaged unit in its vicinity.
block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.

View File

@@ -570,49 +570,49 @@ info.title = Інфармацыя
error.title = [crimson]Адбылася памылка
error.crashtitle = Адбылася памылка
unit.nobuild = [scarlet]Unit can't build
blocks.input = Уваход
blocks.output = Выхад
blocks.booster = Паскаральнік
blocks.tiles = Неабходныя пліткі
blocks.affinities = Павелічэнне эфектыўнасці
stat.input = Уваход
stat.output = Выхад
stat.booster = Паскаральнік
stat.tiles = Неабходныя пліткі
stat.affinities = Павелічэнне эфектыўнасці
block.unknown = [lightgray]???
blocks.powercapacity = Умяшчальнасць энергіі
blocks.powershot = Энергія/Выстрэл
blocks.damage = Страты
blocks.targetsair = Паветраныя мэты
blocks.targetsground = Наземныя мэты
blocks.itemsmoved = Хуткасць перамяшчэння
blocks.launchtime = Інтэрвал запускаў
blocks.shootrange = Радыус дзеяння
blocks.size = Памер
blocks.displaysize = Display Size
blocks.liquidcapacity = Умяшчальнасць вадкасці
blocks.powerrange = Далёкасць перадачы энергіі
blocks.linkrange = Link Range
blocks.instructions = Instructions
blocks.powerconnections = Колькасць злучэнняў
blocks.poweruse = Спажывае энергіі
blocks.powerdamage = Энергія/страты
blocks.itemcapacity = Умяшчальнасць прадметаў
blocks.basepowergeneration = Базавая генерацыя энергіі
blocks.productiontime = Час вытворчасці
blocks.repairtime = Час поўнай рэгенерацыі
blocks.speedincrease = Павелічэнне хуткасці
blocks.range = Радыус дзеяння
blocks.drilltier = Бурит
blocks.drillspeed = Базавая хуткасць свідравання
blocks.boosteffect = паскараўся эфект
blocks.maxunits = Максімальная колькасць актыўных адзінак
blocks.health = Здароўе
blocks.buildtime = Час будаўніцтва
blocks.maxconsecutive = Max Consecutive
blocks.buildcost = Кошт будаўніцтва
blocks.inaccuracy = Роскід
blocks.shots = Стрэлы
blocks.reload = Стрэлы/секунду
blocks.ammo = Боепрыпасы
blocks.shieldhealth = Shield Health
blocks.cooldowntime = Cooldown Time
stat.powercapacity = Умяшчальнасць энергіі
stat.powershot = Энергія/Выстрэл
stat.damage = Страты
stat.targetsair = Паветраныя мэты
stat.targetsground = Наземныя мэты
stat.itemsmoved = Хуткасць перамяшчэння
stat.launchtime = Інтэрвал запускаў
stat.shootrange = Радыус дзеяння
stat.size = Памер
stat.displaysize = Display Size
stat.liquidcapacity = Умяшчальнасць вадкасці
stat.powerrange = Далёкасць перадачы энергіі
stat.linkrange = Link Range
stat.instructions = Instructions
stat.powerconnections = Колькасць злучэнняў
stat.poweruse = Спажывае энергіі
stat.powerdamage = Энергія/страты
stat.itemcapacity = Умяшчальнасць прадметаў
stat.basepowergeneration = Базавая генерацыя энергіі
stat.productiontime = Час вытворчасці
stat.repairtime = Час поўнай рэгенерацыі
stat.speedincrease = Павелічэнне хуткасці
stat.range = Радыус дзеяння
stat.drilltier = Бурит
stat.drillspeed = Базавая хуткасць свідравання
stat.boosteffect = паскараўся эфект
stat.maxunits = Максімальная колькасць актыўных адзінак
stat.health = Здароўе
stat.buildtime = Час будаўніцтва
stat.maxconsecutive = Max Consecutive
stat.buildcost = Кошт будаўніцтва
stat.inaccuracy = Роскід
stat.shots = Стрэлы
stat.reload = Стрэлы/секунду
stat.ammo = Боепрыпасы
stat.shieldhealth = Shield Health
stat.cooldowntime = Cooldown Time
bar.drilltierreq = Патрабуецца свідар лепей
bar.noresources = Missing Resources
@@ -1302,4 +1302,4 @@ block.cyclone.description = Вялікая турэль, якая можа ве
block.spectre.description = Масіўная двуствольное гармата. Страляе буйнымі бранябойнымі кулямі па паветраных і наземных мэтах.
block.meltdown.description = Масіўная лазерная гармата. Зараджае і страляе пастаянным лазерным прамянём ў бліжэйшых ворагаў. Патрабуецца астуджальная вадкасць для працы.
block.repair-point.description = Бесперапынна лечыць бліжэйшую пашкоджаную баявую адзінку або мех у сваім радыусе.
block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.

View File

@@ -572,50 +572,50 @@ info.title = Informace
error.title = [scarlet]Objevila se chyba[]
error.crashtitle = Objevila se chyba
unit.nobuild = [scarlet]Jednotka nemůže stavět
blocks.input = Vstup
blocks.output = Výstup
blocks.booster = Posilovač
blocks.tiles = Vyžadované dlaždice
blocks.affinities = Synergie
stat.input = Vstup
stat.output = Výstup
stat.booster = Posilovač
stat.tiles = Vyžadované dlaždice
stat.affinities = Synergie
block.unknown = [lightgray]???[]
blocks.powercapacity = Kapacita energie
blocks.powershot = Energie na 1 výstřel
blocks.damage = Poškození
blocks.targetsair = Zaměřuje vzdušné jednotky
blocks.targetsground = Zaměřuje pozemní jednotky
blocks.itemsmoved = Rychlost pohybu
blocks.launchtime = Čas mezi vysláním
blocks.shootrange = Dostřel
blocks.size = Velikost
blocks.displaysize = Velikost zobrazovače
blocks.liquidcapacity = Kapacita kapalin
blocks.powerrange = Rozsah energie
blocks.linkrange = Dosah napojení
blocks.instructions = Instrukce
blocks.powerconnections = Nejvyšší počet spojení
blocks.poweruse = Spotřeba energie
blocks.powerdamage = Energie na jednotku poškození
blocks.itemcapacity = Kapacita předmětů
blocks.memorycapacity = Kapacita paměti
blocks.basepowergeneration = Základní generování energie
blocks.productiontime = Čas produkce
blocks.repairtime = Čas do úplné opravy
blocks.speedincrease = Zvýšení rychlosti
blocks.range = Dosah
blocks.drilltier = Lze těžit
blocks.drillspeed = Základní rychlost vrtu
blocks.boosteffect = Účinek posílení
blocks.maxunits = Nejvýše aktivních jednotek
blocks.health = Životy
blocks.buildtime = Čas stavby
blocks.maxconsecutive = Nejvýše po sobě
blocks.buildcost = Cena stavby
blocks.inaccuracy = Nepřesnost
blocks.shots = Střely
blocks.reload = Střel za 1s
blocks.ammo = Střelivo
blocks.shieldhealth = Zdraví štítu
blocks.cooldowntime = Čas na zchladnutí
stat.powercapacity = Kapacita energie
stat.powershot = Energie na 1 výstřel
stat.damage = Poškození
stat.targetsair = Zaměřuje vzdušné jednotky
stat.targetsground = Zaměřuje pozemní jednotky
stat.itemsmoved = Rychlost pohybu
stat.launchtime = Čas mezi vysláním
stat.shootrange = Dostřel
stat.size = Velikost
stat.displaysize = Velikost zobrazovače
stat.liquidcapacity = Kapacita kapalin
stat.powerrange = Rozsah energie
stat.linkrange = Dosah napojení
stat.instructions = Instrukce
stat.powerconnections = Nejvyšší počet spojení
stat.poweruse = Spotřeba energie
stat.powerdamage = Energie na jednotku poškození
stat.itemcapacity = Kapacita předmětů
stat.memorycapacity = Kapacita paměti
stat.basepowergeneration = Základní generování energie
stat.productiontime = Čas produkce
stat.repairtime = Čas do úplné opravy
stat.speedincrease = Zvýšení rychlosti
stat.range = Dosah
stat.drilltier = Lze těžit
stat.drillspeed = Základní rychlost vrtu
stat.boosteffect = Účinek posílení
stat.maxunits = Nejvýše aktivních jednotek
stat.health = Životy
stat.buildtime = Čas stavby
stat.maxconsecutive = Nejvýše po sobě
stat.buildcost = Cena stavby
stat.inaccuracy = Nepřesnost
stat.shots = Střely
stat.reload = Střel za 1s
stat.ammo = Střelivo
stat.shieldhealth = Zdraví štítu
stat.cooldowntime = Čas na zchladnutí
bar.drilltierreq = Je vyžadován lepší vrt
bar.noresources = Chybějí zdroje
@@ -1312,4 +1312,4 @@ block.cyclone.description = Velká protiletecká a protipozemní střílna. Pál
block.spectre.description = Velká střílna s kanónem s dvěma hlavněmi. Střílí velké náboje, které pronikají brněním jak pozemních, tak vzdušných nepřátelských cílů.
block.meltdown.description = Masivní laserový kanón. Nabije se a pak pálí nepřetržitý laserový paprsek na nepřátele v okolí. Vyžaduje ke své funkci chlazení.
block.repair-point.description = Nepřetržitě léčí nejbližší poškozenou jednotku v poli své působnosti.
block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.

View File

@@ -570,49 +570,49 @@ info.title = Info
error.title = [crimson]An error has occured
error.crashtitle = An error has occured
unit.nobuild = [scarlet]Unit can't build
blocks.input = Input
blocks.output = Output
blocks.booster = Booster
blocks.tiles = Required Tiles
blocks.affinities = Affinities
stat.input = Input
stat.output = Output
stat.booster = Booster
stat.tiles = Required Tiles
stat.affinities = Affinities
block.unknown = [lightgray]???
blocks.powercapacity = Power Capacity
blocks.powershot = Power/Shot
blocks.damage = Damage
blocks.targetsair = Targets Air
blocks.targetsground = Targets Ground
blocks.itemsmoved = Move Speed
blocks.launchtime = Time Between Launches
blocks.shootrange = Range
blocks.size = Size
blocks.displaysize = Display Size
blocks.liquidcapacity = Liquid Capacity
blocks.powerrange = Power Range
blocks.linkrange = Link Range
blocks.instructions = Instructions
blocks.powerconnections = Max Connections
blocks.poweruse = Power Use
blocks.powerdamage = Power/Damage
blocks.itemcapacity = Item Capacity
blocks.basepowergeneration = Base Power Generation
blocks.productiontime = Production Time
blocks.repairtime = Block Full Repair Time
blocks.speedincrease = Speed Increase
blocks.range = Range
blocks.drilltier = Drillables
blocks.drillspeed = Base Drill Speed
blocks.boosteffect = Boost Effect
blocks.maxunits = Max Active Units
blocks.health = Health
blocks.buildtime = Build Time
blocks.maxconsecutive = Max Consecutive
blocks.buildcost = Build Cost
blocks.inaccuracy = Inaccuracy
blocks.shots = Shots
blocks.reload = Shots/Second
blocks.ammo = Ammo
blocks.shieldhealth = Shield Health
blocks.cooldowntime = Cooldown Time
stat.powercapacity = Power Capacity
stat.powershot = Power/Shot
stat.damage = Damage
stat.targetsair = Targets Air
stat.targetsground = Targets Ground
stat.itemsmoved = Move Speed
stat.launchtime = Time Between Launches
stat.shootrange = Range
stat.size = Size
stat.displaysize = Display Size
stat.liquidcapacity = Liquid Capacity
stat.powerrange = Power Range
stat.linkrange = Link Range
stat.instructions = Instructions
stat.powerconnections = Max Connections
stat.poweruse = Power Use
stat.powerdamage = Power/Damage
stat.itemcapacity = Item Capacity
stat.basepowergeneration = Base Power Generation
stat.productiontime = Production Time
stat.repairtime = Block Full Repair Time
stat.speedincrease = Speed Increase
stat.range = Range
stat.drilltier = Drillables
stat.drillspeed = Base Drill Speed
stat.boosteffect = Boost Effect
stat.maxunits = Max Active Units
stat.health = Health
stat.buildtime = Build Time
stat.maxconsecutive = Max Consecutive
stat.buildcost = Build Cost
stat.inaccuracy = Inaccuracy
stat.shots = Shots
stat.reload = Shots/Second
stat.ammo = Ammo
stat.shieldhealth = Shield Health
stat.cooldowntime = Cooldown Time
bar.drilltierreq = Better Drill Required
bar.noresources = Missing Resources
@@ -1302,4 +1302,4 @@ block.cyclone.description = A large anti-air and anti-ground turret. Fires explo
block.spectre.description = A massive dual-barreled cannon. Shoots large armor-piercing bullets at air and ground targets.
block.meltdown.description = A massive laser cannon. Charges and fires a persistent laser beam at nearby enemies. Requires coolant to operate.
block.repair-point.description = Continuously heals the closest damaged unit in its vicinity.
block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.

View File

@@ -570,49 +570,49 @@ info.title = Info
error.title = [crimson]Ein Fehler ist aufgetreten
error.crashtitle = Ein Fehler ist aufgetreten!
unit.nobuild = [scarlet]Einheit kann nicht bauen!
blocks.input = Eingang
blocks.output = Ausgang
blocks.booster = Verstärkung
blocks.tiles = Required Tiles
blocks.affinities = Affinities
stat.input = Eingang
stat.output = Ausgang
stat.booster = Verstärkung
stat.tiles = Required Tiles
stat.affinities = Affinities
block.unknown = [lightgray]???
blocks.powercapacity = Kapazität
blocks.powershot = Stromverbrauch/Schuss
blocks.damage = Schaden
blocks.targetsair = Visiert Lufteinheiten an
blocks.targetsground = Visiert Bodeneinheiten an
blocks.itemsmoved = Bewegungsgeschwindigkeit
blocks.launchtime = Zeit zwischen Starts
blocks.shootrange = Reichweite
blocks.size = Größe
blocks.displaysize = Display Size
blocks.liquidcapacity = Flüssigkeitskapazität
blocks.powerrange = Stromreichweite
blocks.linkrange = Link Range
blocks.instructions = Instructions
blocks.powerconnections = Maximale Stromverbindungen
blocks.poweruse = Stromverbrauch
blocks.powerdamage = Stromverbrauch/Schadenspunkt
blocks.itemcapacity = Materialkapazität
blocks.basepowergeneration = Basis-Stromerzeugung
blocks.productiontime = Produktionszeit
blocks.repairtime = Zeit zur vollständigen Reparatur
blocks.speedincrease = Geschwindigkeitserhöhung
blocks.range = Reichweite
blocks.drilltier = Abbaubare Erze
blocks.drillspeed = Bohrgeschwindigkeit
blocks.boosteffect = Verstärkungseffekt
blocks.maxunits = Max. aktive Einheiten
blocks.health = Lebenspunkte
blocks.buildtime = Baudauer
blocks.maxconsecutive = Max Consecutive
blocks.buildcost = Baukosten
blocks.inaccuracy = Ungenauigkeit
blocks.shots = Schüsse
blocks.reload = Schüsse/Sekunde
blocks.ammo = Munition
blocks.shieldhealth = Shield Health
blocks.cooldowntime = Cooldown Time
stat.powercapacity = Kapazität
stat.powershot = Stromverbrauch/Schuss
stat.damage = Schaden
stat.targetsair = Visiert Lufteinheiten an
stat.targetsground = Visiert Bodeneinheiten an
stat.itemsmoved = Bewegungsgeschwindigkeit
stat.launchtime = Zeit zwischen Starts
stat.shootrange = Reichweite
stat.size = Größe
stat.displaysize = Display Size
stat.liquidcapacity = Flüssigkeitskapazität
stat.powerrange = Stromreichweite
stat.linkrange = Link Range
stat.instructions = Instructions
stat.powerconnections = Maximale Stromverbindungen
stat.poweruse = Stromverbrauch
stat.powerdamage = Stromverbrauch/Schadenspunkt
stat.itemcapacity = Materialkapazität
stat.basepowergeneration = Basis-Stromerzeugung
stat.productiontime = Produktionszeit
stat.repairtime = Zeit zur vollständigen Reparatur
stat.speedincrease = Geschwindigkeitserhöhung
stat.range = Reichweite
stat.drilltier = Abbaubare Erze
stat.drillspeed = Bohrgeschwindigkeit
stat.boosteffect = Verstärkungseffekt
stat.maxunits = Max. aktive Einheiten
stat.health = Lebenspunkte
stat.buildtime = Baudauer
stat.maxconsecutive = Max Consecutive
stat.buildcost = Baukosten
stat.inaccuracy = Ungenauigkeit
stat.shots = Schüsse
stat.reload = Schüsse/Sekunde
stat.ammo = Munition
stat.shieldhealth = Shield Health
stat.cooldowntime = Cooldown Time
bar.drilltierreq = Besserer Bohrer Benötigt
bar.noresources = Missing Resources
@@ -1302,4 +1302,4 @@ block.cyclone.description = Ein großer Schnellfeuer-Geschützturm.
block.spectre.description = Ein großer Geschützturm, der zwei starke Schüsse gleichzeitig abfeuert.
block.meltdown.description = Ein großer Geschützturm, der starke Strahlen mit großer Reichweite abfeuert.
block.repair-point.description = Heilt durchgehend die nächste befreundete, beschädigte Einheit in der Umgebung.
block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.

View File

@@ -570,49 +570,49 @@ info.title = [accent]Información
error.title = [crimson]Un error ha ocurrido.
error.crashtitle = Un error ha ocurrido.
unit.nobuild = [scarlet]Unit can't build
blocks.input = Entrada
blocks.output = Salida
blocks.booster = Potenciador
blocks.tiles = Tiles requeridos
blocks.affinities = Afinidades
stat.input = Entrada
stat.output = Salida
stat.booster = Potenciador
stat.tiles = Tiles requeridos
stat.affinities = Afinidades
block.unknown = [lightgray]???
blocks.powercapacity = Capacidad de Energía
blocks.powershot = Energía/Disparo
blocks.damage = Daño
blocks.targetsair = Apunta al Aire
blocks.targetsground = Apunta a Tierra
blocks.itemsmoved = Velocidad de movimiento
blocks.launchtime = Tiempo entre lanzamientos
blocks.shootrange = Rango de Disparo
blocks.size = Tamaño
blocks.displaysize = Display Size
blocks.liquidcapacity = Capacidad de Líquidos
blocks.powerrange = Rango de Energía
blocks.linkrange = Link Range
blocks.instructions = Instructions
blocks.powerconnections = Conexiones maximas
blocks.poweruse = Consumo de Energía
blocks.powerdamage = Energía/Daño
blocks.itemcapacity = Capacidad de Objetos
blocks.basepowergeneration = Generación de energía base
blocks.productiontime = Tiempo de producción
blocks.repairtime = Tiempo para Reparar Bloque Completamente
blocks.speedincrease = Aumento de Velocidad
blocks.range = Rango
blocks.drilltier = Taladrables
blocks.drillspeed = Velocidad Base del Taladro
blocks.boosteffect = Efecto del Potenciador
blocks.maxunits = Máximo de Unidades Activas
blocks.health = Vida
blocks.buildtime = Tiempo de construcción
blocks.maxconsecutive = Max Consecutive
blocks.buildcost = Coste de construcción
blocks.inaccuracy = Imprecisión
blocks.shots = Disparos
blocks.reload = Recarga
blocks.ammo = Munición
blocks.shieldhealth = Shield Health
blocks.cooldowntime = Cooldown Time
stat.powercapacity = Capacidad de Energía
stat.powershot = Energía/Disparo
stat.damage = Daño
stat.targetsair = Apunta al Aire
stat.targetsground = Apunta a Tierra
stat.itemsmoved = Velocidad de movimiento
stat.launchtime = Tiempo entre lanzamientos
stat.shootrange = Rango de Disparo
stat.size = Tamaño
stat.displaysize = Display Size
stat.liquidcapacity = Capacidad de Líquidos
stat.powerrange = Rango de Energía
stat.linkrange = Link Range
stat.instructions = Instructions
stat.powerconnections = Conexiones maximas
stat.poweruse = Consumo de Energía
stat.powerdamage = Energía/Daño
stat.itemcapacity = Capacidad de Objetos
stat.basepowergeneration = Generación de energía base
stat.productiontime = Tiempo de producción
stat.repairtime = Tiempo para Reparar Bloque Completamente
stat.speedincrease = Aumento de Velocidad
stat.range = Rango
stat.drilltier = Taladrables
stat.drillspeed = Velocidad Base del Taladro
stat.boosteffect = Efecto del Potenciador
stat.maxunits = Máximo de Unidades Activas
stat.health = Vida
stat.buildtime = Tiempo de construcción
stat.maxconsecutive = Max Consecutive
stat.buildcost = Coste de construcción
stat.inaccuracy = Imprecisión
stat.shots = Disparos
stat.reload = Recarga
stat.ammo = Munición
stat.shieldhealth = Shield Health
stat.cooldowntime = Cooldown Time
bar.drilltierreq = Se requiere un mejor taladro.
bar.noresources = Missing Resources
@@ -1302,4 +1302,4 @@ block.cyclone.description = Una torre grande anti-aérea y anti-terrestre. Dispa
block.spectre.description = Un cañon masivo de dos barriles. Dispara balas perforantes a objetivos de aire y tierra.
block.meltdown.description = Un cañon láser masivo. Carga y dispara un rayo láser constante a enemigos cercanos. Requiere enfriamiento para operar.
block.repair-point.description = Repara la unidad dañada más cercana a su alrededor.
block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.

View File

@@ -570,49 +570,49 @@ info.title = Info
error.title = [crimson]Viga
error.crashtitle = Viga
unit.nobuild = [scarlet]Unit can't build
blocks.input = Sisend
blocks.output = Väljund
blocks.booster = Kiirendaja
blocks.tiles = Required Tiles
blocks.affinities = Affinities
stat.input = Sisend
stat.output = Väljund
stat.booster = Kiirendaja
stat.tiles = Required Tiles
stat.affinities = Affinities
block.unknown = [lightgray]???
blocks.powercapacity = Energiamahtuvus
blocks.powershot = Energia ühikut/lasu kohta
blocks.damage = Hävituspunkte
blocks.targetsair = Sihib õhku
blocks.targetsground = Sihib maapinnale
blocks.itemsmoved = Transportimise kiirus
blocks.launchtime = Aeg lendutõusude vahel
blocks.shootrange = Ulatus
blocks.size = Suurus
blocks.displaysize = Display Size
blocks.liquidcapacity = Vedelike mahutavus
blocks.powerrange = Energia ulatus
blocks.linkrange = Link Range
blocks.instructions = Instructions
blocks.powerconnections = Max Connections
blocks.poweruse = Energiatarve
blocks.powerdamage = Energiatarve hävituspunkti kohta
blocks.itemcapacity = Ressursside mahutavus
blocks.basepowergeneration = Energiatootlus
blocks.productiontime = Tootmisaeg
blocks.repairtime = Täieliku parandamise aeg
blocks.speedincrease = Kiiruse suurenemine
blocks.range = Ulatus
blocks.drilltier = Kaevandatav
blocks.drillspeed = Puurimise kiirus
blocks.boosteffect = Kiirendaja mõju
blocks.maxunits = Maks. aktiivseid väeüksuseid
blocks.health = Elud
blocks.buildtime = Ehitamise aeg
blocks.maxconsecutive = Max Consecutive
blocks.buildcost = Ehitamise maksumus
blocks.inaccuracy = Ebatäpsus
blocks.shots = Laske
blocks.reload = Lasku/s
blocks.ammo = Laskemoon
blocks.shieldhealth = Shield Health
blocks.cooldowntime = Cooldown Time
stat.powercapacity = Energiamahtuvus
stat.powershot = Energia ühikut/lasu kohta
stat.damage = Hävituspunkte
stat.targetsair = Sihib õhku
stat.targetsground = Sihib maapinnale
stat.itemsmoved = Transportimise kiirus
stat.launchtime = Aeg lendutõusude vahel
stat.shootrange = Ulatus
stat.size = Suurus
stat.displaysize = Display Size
stat.liquidcapacity = Vedelike mahutavus
stat.powerrange = Energia ulatus
stat.linkrange = Link Range
stat.instructions = Instructions
stat.powerconnections = Max Connections
stat.poweruse = Energiatarve
stat.powerdamage = Energiatarve hävituspunkti kohta
stat.itemcapacity = Ressursside mahutavus
stat.basepowergeneration = Energiatootlus
stat.productiontime = Tootmisaeg
stat.repairtime = Täieliku parandamise aeg
stat.speedincrease = Kiiruse suurenemine
stat.range = Ulatus
stat.drilltier = Kaevandatav
stat.drillspeed = Puurimise kiirus
stat.boosteffect = Kiirendaja mõju
stat.maxunits = Maks. aktiivseid väeüksuseid
stat.health = Elud
stat.buildtime = Ehitamise aeg
stat.maxconsecutive = Max Consecutive
stat.buildcost = Ehitamise maksumus
stat.inaccuracy = Ebatäpsus
stat.shots = Laske
stat.reload = Lasku/s
stat.ammo = Laskemoon
stat.shieldhealth = Shield Health
stat.cooldowntime = Cooldown Time
bar.drilltierreq = Nõuab paremat puuri
bar.noresources = Missing Resources
@@ -1302,4 +1302,4 @@ block.cyclone.description = Suur lendavate ja maapealsete väeüksuste vastane k
block.spectre.description = Massiivne kaheraudne kahur, mis tulistab soomuskatteid läbistavaid mürske nii lendavate kui ka maapealsete väeüksuste pihta.
block.meltdown.description = Massiivne laserkahur, mis tekitab püsiva energiakiire. Vajab töötamiseks jahutusvedelikku.
block.repair-point.description = Parandab kõige lähemal asuvat liitlaste väeüksust.
block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.

View File

@@ -570,49 +570,49 @@ info.title = Informazioa
error.title = [crimson]Errore bat gertatu da
error.crashtitle = Errore bat gertatu da
unit.nobuild = [scarlet]Unit can't build
blocks.input = Sarrera
blocks.output = Irteera
blocks.booster = Indargarria
blocks.tiles = Required Tiles
blocks.affinities = Affinities
stat.input = Sarrera
stat.output = Irteera
stat.booster = Indargarria
stat.tiles = Required Tiles
stat.affinities = Affinities
block.unknown = [lightgray]???
blocks.powercapacity = Energia-edukiera
blocks.powershot = Energia/tiroko
blocks.damage = Kaltea
blocks.targetsair = Airera tirokatzen du
blocks.targetsground = Lurrera tirokatzen du
blocks.itemsmoved = Garraio-abiadura
blocks.launchtime = Egozketen arteko denbora
blocks.shootrange = Irismena
blocks.size = Neurria
blocks.displaysize = Display Size
blocks.liquidcapacity = Likido-edukiera
blocks.powerrange = Energia irismena
blocks.linkrange = Link Range
blocks.instructions = Instructions
blocks.powerconnections = Gehieneko konexioak
blocks.poweruse = Energia-erabilera
blocks.powerdamage = Energia/Kaltea
blocks.itemcapacity = Elementu-edukiera
blocks.basepowergeneration = Oinarrizko energia sorrera
blocks.productiontime = Eraikitze denbora
blocks.repairtime = Blokearen konpontze denbora osoa
blocks.speedincrease = Abiadura areagotzea
blocks.range = Irismena
blocks.drilltier = Ustiagarriak
blocks.drillspeed = Oinarrizko ustiatze-abiadura
blocks.boosteffect = Indartze-efektua
blocks.maxunits = Gehieneko unitate aktiboak
blocks.health = Osasuna
blocks.buildtime = Eraikitze-denbora
blocks.maxconsecutive = Max Consecutive
blocks.buildcost = Eraikitze-kostua
blocks.inaccuracy = Zehazgabetasuna
blocks.shots = Tiroak
blocks.reload = Tiroak/segundoko
blocks.ammo = Munizioa
blocks.shieldhealth = Shield Health
blocks.cooldowntime = Cooldown Time
stat.powercapacity = Energia-edukiera
stat.powershot = Energia/tiroko
stat.damage = Kaltea
stat.targetsair = Airera tirokatzen du
stat.targetsground = Lurrera tirokatzen du
stat.itemsmoved = Garraio-abiadura
stat.launchtime = Egozketen arteko denbora
stat.shootrange = Irismena
stat.size = Neurria
stat.displaysize = Display Size
stat.liquidcapacity = Likido-edukiera
stat.powerrange = Energia irismena
stat.linkrange = Link Range
stat.instructions = Instructions
stat.powerconnections = Gehieneko konexioak
stat.poweruse = Energia-erabilera
stat.powerdamage = Energia/Kaltea
stat.itemcapacity = Elementu-edukiera
stat.basepowergeneration = Oinarrizko energia sorrera
stat.productiontime = Eraikitze denbora
stat.repairtime = Blokearen konpontze denbora osoa
stat.speedincrease = Abiadura areagotzea
stat.range = Irismena
stat.drilltier = Ustiagarriak
stat.drillspeed = Oinarrizko ustiatze-abiadura
stat.boosteffect = Indartze-efektua
stat.maxunits = Gehieneko unitate aktiboak
stat.health = Osasuna
stat.buildtime = Eraikitze-denbora
stat.maxconsecutive = Max Consecutive
stat.buildcost = Eraikitze-kostua
stat.inaccuracy = Zehazgabetasuna
stat.shots = Tiroak
stat.reload = Tiroak/segundoko
stat.ammo = Munizioa
stat.shieldhealth = Shield Health
stat.cooldowntime = Cooldown Time
bar.drilltierreq = Zulagailu hobea behar da
bar.noresources = Missing Resources
@@ -1302,4 +1302,4 @@ block.cyclone.description = Aire zein lurreko defentsarako dorre handia. Torpedo
block.spectre.description = Kanoi bikoitz erraldoia. Blindajea zulatu dezaketen bala handiak tirokatzen ditu aireko zein lurreko xedeei.
block.meltdown.description = Laser kanoi erraldoia. Etengabeko laser izpi bat kargatu eta jauritzen die inguruko etsaiei. Hozgarria behar du jarduteko.
block.repair-point.description = Etengabe konpontzen du inguruko kaltetutako unitate hurbilena.
block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.

View File

@@ -570,49 +570,49 @@ info.title = Informaatio
error.title = [crimson]An error has occured
error.crashtitle = An error has occured
unit.nobuild = [scarlet]Unit can't build
blocks.input = Sisääntulo
blocks.output = Ulostulo
blocks.booster = Tehostaja
blocks.tiles = Required Tiles
blocks.affinities = Affinities
stat.input = Sisääntulo
stat.output = Ulostulo
stat.booster = Tehostaja
stat.tiles = Required Tiles
stat.affinities = Affinities
block.unknown = [lightgray]???
blocks.powercapacity = Energiakapasiteetti
blocks.powershot = Energiaa/Ammus
blocks.damage = Vahinko
blocks.targetsair = Hyökkää ilmaan
blocks.targetsground = Hyökkää maahan
blocks.itemsmoved = Liikkumisnopeus
blocks.launchtime = Aika laukaisujen välillä
blocks.shootrange = Kantama
blocks.size = Koko
blocks.displaysize = Display Size
blocks.liquidcapacity = Nestekapasiteetti
blocks.powerrange = Energiakantama
blocks.linkrange = Link Range
blocks.instructions = Instructions
blocks.powerconnections = Maksimimäärä yhdistyksiä
blocks.poweruse = Energian käyttö
blocks.powerdamage = Energia/Vahinko
blocks.itemcapacity = Tavarakapasiteetti
blocks.basepowergeneration = Perus energiantuotto
blocks.productiontime = Tuotantoaika
blocks.repairtime = Kokonaisen palikan korjausaika
blocks.speedincrease = Nopeuden kasvu
blocks.range = Etäisyys
blocks.drilltier = Porattavat
blocks.drillspeed = Kanta Poran Nopeus
blocks.boosteffect = Tehostamisem vaikutus
blocks.maxunits = Maksimimäärä yksikköjä
blocks.health = Elämäpisteet
blocks.buildtime = Rakentamisaika
blocks.maxconsecutive = Max Consecutive
blocks.buildcost = Rakentamishinta
blocks.inaccuracy = Epätarkkuus
blocks.shots = Ammusta
blocks.reload = Ammusta/sekunnissa
blocks.ammo = Ammus
blocks.shieldhealth = Shield Health
blocks.cooldowntime = Cooldown Time
stat.powercapacity = Energiakapasiteetti
stat.powershot = Energiaa/Ammus
stat.damage = Vahinko
stat.targetsair = Hyökkää ilmaan
stat.targetsground = Hyökkää maahan
stat.itemsmoved = Liikkumisnopeus
stat.launchtime = Aika laukaisujen välillä
stat.shootrange = Kantama
stat.size = Koko
stat.displaysize = Display Size
stat.liquidcapacity = Nestekapasiteetti
stat.powerrange = Energiakantama
stat.linkrange = Link Range
stat.instructions = Instructions
stat.powerconnections = Maksimimäärä yhdistyksiä
stat.poweruse = Energian käyttö
stat.powerdamage = Energia/Vahinko
stat.itemcapacity = Tavarakapasiteetti
stat.basepowergeneration = Perus energiantuotto
stat.productiontime = Tuotantoaika
stat.repairtime = Kokonaisen palikan korjausaika
stat.speedincrease = Nopeuden kasvu
stat.range = Etäisyys
stat.drilltier = Porattavat
stat.drillspeed = Kanta Poran Nopeus
stat.boosteffect = Tehostamisem vaikutus
stat.maxunits = Maksimimäärä yksikköjä
stat.health = Elämäpisteet
stat.buildtime = Rakentamisaika
stat.maxconsecutive = Max Consecutive
stat.buildcost = Rakentamishinta
stat.inaccuracy = Epätarkkuus
stat.shots = Ammusta
stat.reload = Ammusta/sekunnissa
stat.ammo = Ammus
stat.shieldhealth = Shield Health
stat.cooldowntime = Cooldown Time
bar.drilltierreq = Parempi pora vaadittu
bar.noresources = Missing Resources
@@ -1302,4 +1302,4 @@ block.cyclone.description = A large anti-air and anti-ground turret. Fires explo
block.spectre.description = A massive dual-barreled cannon. Shoots large armor-piercing bullets at air and ground targets.
block.meltdown.description = A massive laser cannon. Charges and fires a persistent laser beam at nearby enemies. Requires coolant to operate.
block.repair-point.description = Continuously heals the closest damaged unit in its vicinity.
block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.

View File

@@ -570,49 +570,49 @@ info.title = Info
error.title = [scarlet]An error has occured
error.crashtitle = An error has occured
unit.nobuild = [scarlet]Unit can't build
blocks.input = Input
blocks.output = Output
blocks.booster = Booster
blocks.tiles = Required Tiles
blocks.affinities = Affinities
stat.input = Input
stat.output = Output
stat.booster = Booster
stat.tiles = Required Tiles
stat.affinities = Affinities
block.unknown = [lightgray]???
blocks.powercapacity = Power Capacity
blocks.powershot = Power/Shot
blocks.damage = Damage
blocks.targetsair = Targets Air
blocks.targetsground = Targets Ground
blocks.itemsmoved = Move Speed
blocks.launchtime = Time Between Launches
blocks.shootrange = Range
blocks.size = Size
blocks.displaysize = Display Size
blocks.liquidcapacity = Liquid Capacity
blocks.powerrange = Power Range
blocks.linkrange = Link Range
blocks.instructions = Instructions
blocks.powerconnections = Max Connections
blocks.poweruse = Power Use
blocks.powerdamage = Power/Damage
blocks.itemcapacity = Item Capacity
blocks.basepowergeneration = Base Power Generation
blocks.productiontime = Production Time
blocks.repairtime = Block Full Repair Time
blocks.speedincrease = Speed Increase
blocks.range = Range
blocks.drilltier = Drillables
blocks.drillspeed = Base Drill Speed
blocks.boosteffect = Boost Effect
blocks.maxunits = Max Active Units
blocks.health = Health
blocks.buildtime = Build Time
blocks.maxconsecutive = Max Consecutive
blocks.buildcost = Build Cost
blocks.inaccuracy = Inaccuracy
blocks.shots = Shots
blocks.reload = Shots/Second
blocks.ammo = Ammo
blocks.shieldhealth = Shield Health
blocks.cooldowntime = Cooldown Time
stat.powercapacity = Power Capacity
stat.powershot = Power/Shot
stat.damage = Damage
stat.targetsair = Targets Air
stat.targetsground = Targets Ground
stat.itemsmoved = Move Speed
stat.launchtime = Time Between Launches
stat.shootrange = Range
stat.size = Size
stat.displaysize = Display Size
stat.liquidcapacity = Liquid Capacity
stat.powerrange = Power Range
stat.linkrange = Link Range
stat.instructions = Instructions
stat.powerconnections = Max Connections
stat.poweruse = Power Use
stat.powerdamage = Power/Damage
stat.itemcapacity = Item Capacity
stat.basepowergeneration = Base Power Generation
stat.productiontime = Production Time
stat.repairtime = Block Full Repair Time
stat.speedincrease = Speed Increase
stat.range = Range
stat.drilltier = Drillables
stat.drillspeed = Base Drill Speed
stat.boosteffect = Boost Effect
stat.maxunits = Max Active Units
stat.health = Health
stat.buildtime = Build Time
stat.maxconsecutive = Max Consecutive
stat.buildcost = Build Cost
stat.inaccuracy = Inaccuracy
stat.shots = Shots
stat.reload = Shots/Second
stat.ammo = Ammo
stat.shieldhealth = Shield Health
stat.cooldowntime = Cooldown Time
bar.drilltierreq = Better Drill Required
bar.noresources = Missing Resources
@@ -1302,4 +1302,4 @@ block.cyclone.description = A large anti-air and anti-ground turret. Fires explo
block.spectre.description = A massive dual-barreled cannon. Shoots large armor-piercing bullets at air and ground targets.
block.meltdown.description = A massive laser cannon. Charges and fires a persistent laser beam at nearby enemies. Requires coolant to operate.
block.repair-point.description = Continuously heals the closest damaged unit in its vicinity.
block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.

View File

@@ -570,49 +570,49 @@ info.title = Info
error.title = [crimson]Une erreur s'est produite
error.crashtitle = Une erreur s'est produite
unit.nobuild = [scarlet]Cette unité ne peut construire
blocks.input = Entrée
blocks.output = Sortie
blocks.booster = Booster
blocks.tiles = Pré-requis
blocks.affinities = Affinités
stat.input = Entrée
stat.output = Sortie
stat.booster = Booster
stat.tiles = Pré-requis
stat.affinities = Affinités
block.unknown = [lightgray]???
blocks.powercapacity = Capacité d'énergie
blocks.powershot = Énergie/Tir
blocks.damage = Dégâts
blocks.targetsair = Cibles Aériennes
blocks.targetsground = Cibles Terrestres
blocks.itemsmoved = Vitesse de Déplacement
blocks.launchtime = Temps entre chaque lancement
blocks.shootrange = Portée de tir
blocks.size = Taille
blocks.displaysize = Display Size
blocks.liquidcapacity = Capacité liquide
blocks.powerrange = Portée électrique
blocks.linkrange = Link Range
blocks.instructions = Instructions
blocks.powerconnections = Nombre maximal de connections
blocks.poweruse = Énergie utilisée
blocks.powerdamage = Dégâts d'énergie
blocks.itemcapacity = Stockage
blocks.basepowergeneration = Production d'énergie
blocks.productiontime = Durée de production
blocks.repairtime = Durée de réparation complète du Bloc
blocks.speedincrease = Accélération
blocks.range = Portée
blocks.drilltier = Forable
blocks.drillspeed = Vitesse de forage de base
blocks.boosteffect = Effet du Boost
blocks.maxunits = Unités actives max
blocks.health = Santé
blocks.buildtime = Durée de construction
blocks.maxconsecutive = Max Consecutive
blocks.buildcost = Coût de construction
blocks.inaccuracy = Imprécision
blocks.shots = Tirs
blocks.reload = Tirs/Seconde
blocks.ammo = Munitions
blocks.shieldhealth = Shield Health
blocks.cooldowntime = Cooldown Time
stat.powercapacity = Capacité d'énergie
stat.powershot = Énergie/Tir
stat.damage = Dégâts
stat.targetsair = Cibles Aériennes
stat.targetsground = Cibles Terrestres
stat.itemsmoved = Vitesse de Déplacement
stat.launchtime = Temps entre chaque lancement
stat.shootrange = Portée de tir
stat.size = Taille
stat.displaysize = Display Size
stat.liquidcapacity = Capacité liquide
stat.powerrange = Portée électrique
stat.linkrange = Link Range
stat.instructions = Instructions
stat.powerconnections = Nombre maximal de connections
stat.poweruse = Énergie utilisée
stat.powerdamage = Dégâts d'énergie
stat.itemcapacity = Stockage
stat.basepowergeneration = Production d'énergie
stat.productiontime = Durée de production
stat.repairtime = Durée de réparation complète du Bloc
stat.speedincrease = Accélération
stat.range = Portée
stat.drilltier = Forable
stat.drillspeed = Vitesse de forage de base
stat.boosteffect = Effet du Boost
stat.maxunits = Unités actives max
stat.health = Santé
stat.buildtime = Durée de construction
stat.maxconsecutive = Max Consecutive
stat.buildcost = Coût de construction
stat.inaccuracy = Imprécision
stat.shots = Tirs
stat.reload = Tirs/Seconde
stat.ammo = Munitions
stat.shieldhealth = Shield Health
stat.cooldowntime = Cooldown Time
bar.drilltierreq = Meilleure Foreuse Requise
bar.noresources = Missing Resources
@@ -1302,4 +1302,4 @@ block.cyclone.description = Une grande tourelle qui tire rapidement des débris
block.spectre.description = Une tourelle massive à double cannon et qui tire de puissantes balles perce-blindages simultanément.
block.meltdown.description = Une tourelle massive chargeant et tirant de puissants rayons lasers. Nécessite un liquide de refroidissement.
block.repair-point.description = Soigne en permanence l'unité endommagée la plus proche à proximité.
block.segment.description = Endommage et détruit les tirs ennemis. Cependant, les lasers ne peuvent pas être ciblés.
block.segment.description = Endommage et détruit les tirs ennemis. Cependant, les lasers ne peuvent pas être ciblés.

View File

@@ -570,49 +570,49 @@ info.title = Info
error.title = [crimson]Une erreur s'est produite
error.crashtitle = Une erreur s'est produite
unit.nobuild = [scarlet]Unit can't build
blocks.input = Ressource(s) requise(s)
blocks.output = Ressource(s) produite(s)
blocks.booster = Booster
blocks.tiles = Required Tiles
blocks.affinities = Affinities
stat.input = Ressource(s) requise(s)
stat.output = Ressource(s) produite(s)
stat.booster = Booster
stat.tiles = Required Tiles
stat.affinities = Affinities
block.unknown = [lightgray]Inconnu
blocks.powercapacity = Capacité d'énergie
blocks.powershot = Énergie/Tir
blocks.damage = Damage
blocks.targetsair = Cible les unités aériennes
blocks.targetsground = Cible les unités terrestres
blocks.itemsmoved = Vitesse de déplacement
blocks.launchtime = Temps entre chaque lancement
blocks.shootrange = Portée
blocks.size = Taille
blocks.displaysize = Display Size
blocks.liquidcapacity = Capacité en liquide
blocks.powerrange = Distance de transmission
blocks.linkrange = Link Range
blocks.instructions = Instructions
blocks.powerconnections = Max Connections
blocks.poweruse = Énergie utilisée
blocks.powerdamage = Énergie/Dégâts
blocks.itemcapacity = Stockage
blocks.basepowergeneration = Production d'énergie de base
blocks.productiontime = Temps de production
blocks.repairtime = Temps pour la réparation totale du bloc
blocks.speedincrease = Augmentation de la vitesse
blocks.range = Portée
blocks.drilltier = Forable
blocks.drillspeed = Vitesse de forage de base
blocks.boosteffect = Effet boostant
blocks.maxunits = Maximum d'unitée active
blocks.health = Santé
blocks.buildtime = Temps de construction
blocks.maxconsecutive = Max Consecutive
blocks.buildcost = Coût de construction
blocks.inaccuracy = Précision
blocks.shots = Tirs
blocks.reload = Tirs/Seconde
blocks.ammo = Munition
blocks.shieldhealth = Shield Health
blocks.cooldowntime = Cooldown Time
stat.powercapacity = Capacité d'énergie
stat.powershot = Énergie/Tir
stat.damage = Damage
stat.targetsair = Cible les unités aériennes
stat.targetsground = Cible les unités terrestres
stat.itemsmoved = Vitesse de déplacement
stat.launchtime = Temps entre chaque lancement
stat.shootrange = Portée
stat.size = Taille
stat.displaysize = Display Size
stat.liquidcapacity = Capacité en liquide
stat.powerrange = Distance de transmission
stat.linkrange = Link Range
stat.instructions = Instructions
stat.powerconnections = Max Connections
stat.poweruse = Énergie utilisée
stat.powerdamage = Énergie/Dégâts
stat.itemcapacity = Stockage
stat.basepowergeneration = Production d'énergie de base
stat.productiontime = Temps de production
stat.repairtime = Temps pour la réparation totale du bloc
stat.speedincrease = Augmentation de la vitesse
stat.range = Portée
stat.drilltier = Forable
stat.drillspeed = Vitesse de forage de base
stat.boosteffect = Effet boostant
stat.maxunits = Maximum d'unitée active
stat.health = Santé
stat.buildtime = Temps de construction
stat.maxconsecutive = Max Consecutive
stat.buildcost = Coût de construction
stat.inaccuracy = Précision
stat.shots = Tirs
stat.reload = Tirs/Seconde
stat.ammo = Munition
stat.shieldhealth = Shield Health
stat.cooldowntime = Cooldown Time
bar.drilltierreq = Better Drill Required
bar.noresources = Missing Resources
@@ -1302,4 +1302,4 @@ block.cyclone.description = Une grande tourelle à tir rapide.
block.spectre.description = Une grande tourelle qui tire deux balles puissantes à la fois.
block.meltdown.description = Une grande tourelle qui tire de puissants faisceaux à longue portée.
block.repair-point.description = Soigne en permanence l'unité endommagée la plus proche à proximité.
block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.

View File

@@ -570,49 +570,49 @@ info.title = Info
error.title = [crimson]An error has occured
error.crashtitle = An error has occured
unit.nobuild = [scarlet]Unit can't build
blocks.input = Input
blocks.output = Output
blocks.booster = Booster
blocks.tiles = Required Tiles
blocks.affinities = Affinities
stat.input = Input
stat.output = Output
stat.booster = Booster
stat.tiles = Required Tiles
stat.affinities = Affinities
block.unknown = [lightgray]???
blocks.powercapacity = Power Capacity
blocks.powershot = Power/Shot
blocks.damage = Damage
blocks.targetsair = Targets Air
blocks.targetsground = Targets Ground
blocks.itemsmoved = Move Speed
blocks.launchtime = Time Between Launches
blocks.shootrange = Range
blocks.size = Size
blocks.displaysize = Display Size
blocks.liquidcapacity = Liquid Capacity
blocks.powerrange = Power Range
blocks.linkrange = Link Range
blocks.instructions = Instructions
blocks.powerconnections = Max Connections
blocks.poweruse = Power Use
blocks.powerdamage = Power/Damage
blocks.itemcapacity = Item Capacity
blocks.basepowergeneration = Base Power Generation
blocks.productiontime = Production Time
blocks.repairtime = Block Full Repair Time
blocks.speedincrease = Speed Increase
blocks.range = Range
blocks.drilltier = Drillables
blocks.drillspeed = Base Drill Speed
blocks.boosteffect = Boost Effect
blocks.maxunits = Max Active Units
blocks.health = Health
blocks.buildtime = Build Time
blocks.maxconsecutive = Max Consecutive
blocks.buildcost = Build Cost
blocks.inaccuracy = Inaccuracy
blocks.shots = Shots
blocks.reload = Shots/Second
blocks.ammo = Ammo
blocks.shieldhealth = Shield Health
blocks.cooldowntime = Cooldown Time
stat.powercapacity = Power Capacity
stat.powershot = Power/Shot
stat.damage = Damage
stat.targetsair = Targets Air
stat.targetsground = Targets Ground
stat.itemsmoved = Move Speed
stat.launchtime = Time Between Launches
stat.shootrange = Range
stat.size = Size
stat.displaysize = Display Size
stat.liquidcapacity = Liquid Capacity
stat.powerrange = Power Range
stat.linkrange = Link Range
stat.instructions = Instructions
stat.powerconnections = Max Connections
stat.poweruse = Power Use
stat.powerdamage = Power/Damage
stat.itemcapacity = Item Capacity
stat.basepowergeneration = Base Power Generation
stat.productiontime = Production Time
stat.repairtime = Block Full Repair Time
stat.speedincrease = Speed Increase
stat.range = Range
stat.drilltier = Drillables
stat.drillspeed = Base Drill Speed
stat.boosteffect = Boost Effect
stat.maxunits = Max Active Units
stat.health = Health
stat.buildtime = Build Time
stat.maxconsecutive = Max Consecutive
stat.buildcost = Build Cost
stat.inaccuracy = Inaccuracy
stat.shots = Shots
stat.reload = Shots/Second
stat.ammo = Ammo
stat.shieldhealth = Shield Health
stat.cooldowntime = Cooldown Time
bar.drilltierreq = Better Drill Required
bar.noresources = Missing Resources
@@ -1302,4 +1302,4 @@ block.cyclone.description = A large anti-air and anti-ground turret. Fires explo
block.spectre.description = A massive dual-barreled cannon. Shoots large armor-piercing bullets at air and ground targets.
block.meltdown.description = A massive laser cannon. Charges and fires a persistent laser beam at nearby enemies. Requires coolant to operate.
block.repair-point.description = Continuously heals the closest damaged unit in its vicinity.
block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.

View File

@@ -512,6 +512,7 @@ weather.rain.name = Hujan
weather.snow.name = Salju
weather.sandstorm.name = Badai Pasir
weather.sporestorm.name = Badai Spora
weather.fog.name = Kabut
sectors.unexplored = [lightgray]Belum Ditelusuri
sectors.resources = Sumber Daya:
@@ -581,50 +582,61 @@ error.title = [crimson]Sebuah kesalahan telah terjadi
error.crashtitle = Sebuah kesalahan telah terjadi
unit.nobuild = [scarlet]Unit tidak dapat membangun
lastaccessed = [lightgray]Terakhir Diakses: {0}
blocks.input = Masukan
blocks.output = Pengeluaran
blocks.booster = Pendorong
blocks.tiles = Kotak yang dibutuhkan
blocks.affinities = Afinitas
block.unknown = [lightgray]???
blocks.powercapacity = Kapasitas Tenaga
blocks.powershot = Tenaga/Tembakan
blocks.damage = Kerusakan
blocks.targetsair = Menargetkan Udara
blocks.targetsground = Menargetkan Darat
blocks.itemsmoved = Kecepatan Gerak
blocks.launchtime = Waktu Diantara Peluncuran
blocks.shootrange = Jarak
blocks.size = Ukuran
blocks.displaysize = Ukuran Tampilan
blocks.liquidcapacity = Kapasitas Zat Cair
blocks.powerrange = Jarak Tenaga
blocks.linkrange = Jarak Tautan
blocks.instructions = Instruksi
blocks.powerconnections = Koneksi Maksimal
blocks.poweruse = Penggunaan Tenaga
blocks.powerdamage = Tenaga/Pukulan
blocks.itemcapacity = Kapasitas Item
blocks.memorycapacity = Kapasitas Memori
blocks.basepowergeneration = Basis Generasi Tenaga
blocks.productiontime = Waktu Produksi
blocks.repairtime = Waktu Memperbaiki Blok Penuh
blocks.speedincrease = Tambahan Kecepatan
blocks.range = Jarak
blocks.drilltier = Sumber Daya yang Bisa di Bor
blocks.drillspeed = Basis Kecepatan Bor
blocks.boosteffect = Efek Pendorong
blocks.maxunits = Maks Unit Aktif
blocks.health = Darah
blocks.buildtime = Waktu Pembuatan
blocks.maxconsecutive = Max Consecutive
blocks.buildcost = Biaya Bangunan
blocks.inaccuracy = Jarak Melenceng
blocks.shots = Tembakan
blocks.reload = Tembakan/Detik
blocks.ammo = Amunisi
blocks.shieldhealth = Darah Perisai
blocks.cooldowntime = Cooldown Time
stat.input = Masukan
stat.output = Pengeluaran
stat.booster = Pendorong
stat.tiles = Kotak yang dibutuhkan
stat.affinities = Afinitas
stat.powercapacity = Kapasitas Tenaga
stat.powershot = Tenaga/Tembakan
stat.damage = Kerusakan
stat.targetsair = Menargetkan Udara
stat.targetsground = Menargetkan Darat
stat.itemsmoved = Kecepatan Gerak
stat.launchtime = Waktu Diantara Peluncuran
stat.shootrange = Jarak
stat.size = Ukuran
stat.displaysize = Ukuran Tampilan
stat.liquidcapacity = Kapasitas Zat Cair
stat.powerrange = Jarak Tenaga
stat.linkrange = Jarak Tautan
stat.instructions = Instruksi
stat.powerconnections = Koneksi Maksimal
stat.poweruse = Penggunaan Tenaga
stat.powerdamage = Tenaga/Pukulan
stat.itemcapacity = Kapasitas Item
stat.memorycapacity = Kapasitas Memori
stat.basepowergeneration = Basis Generasi Tenaga
stat.productiontime = Waktu Produksi
stat.repairtime = Waktu Memperbaiki Blok Penuh
stat.speedincrease = Tambahan Kecepatan
stat.range = Jarak
stat.drilltier = Sumber Daya yang Bisa di Bor
stat.drillspeed = Basis Kecepatan Bor
stat.boosteffect = Efek Pendorong
stat.maxunits = Maks Unit Aktif
stat.health = Darah
stat.buildtime = Waktu Pembuatan
stat.maxconsecutive = Max Consecutive
stat.buildcost = Biaya Bangunan
stat.inaccuracy = Jarak Melenceng
stat.shots = Tembakan
stat.reload = Tembakan/Detik
stat.ammo = Amunisi
stat.shieldhealth = Darah Perisai
stat.cooldowntime = Cooldown Time
stat.explosiveness = Explosiveness
stat.flammability = Flammability
stat.radioactivity = Radioactivity
stat.heatcapacity = HeatCapacity
stat.viscosity = Viscosity
stat.temperature = Temperature
stat.speed = Speed
stat.buildspeed = Build Speed
stat.minespeed = Mine Speed
stat.minetier = Mine Tier
bar.drilltierreq = Membutuhkan Bor yang Lebih Baik
bar.noresources = Sumber Daya Tidak Ditemukan
@@ -875,6 +887,7 @@ content.item.name = Item
content.liquid.name = Zat Cair
content.unit.name = Unit
content.block.name = Blok
item.copper.name = Tembaga
item.lead.name = Timah
item.coal.name = Batu Bara
@@ -896,23 +909,6 @@ liquid.slag.name = Terak
liquid.oil.name = Minyak
liquid.cryofluid.name = Cairan Pendingin
item.explosiveness = [lightgray]Tingkat Keledakan: {0}%
item.flammability = [lightgray]Tingkat Kebakaran: {0}%
item.radioactivity = [lightgray]Tingkat Radioaktif: {0}%
unit.health = [lightgray]Darah: {0}
unit.speed = [lightgray]Kecepatan: {0}
unit.weapon = [lightgray]Senjata: {0}
unit.itemcapacity = [lightgray]Kapasitas Item: {0}
unit.minespeed = [lightgray]Kecepatan Menambang: {0}%
unit.minepower = [lightgray]Kekuatan Menambang: {0}
unit.ability = [lightgray]Kemampuan: {0}
unit.buildspeed = [lightgray]Kecepatan Membangun: {0}%
liquid.heatcapacity = [lightgray]Kapasitas Panas: {0}
liquid.viscosity = [lightgray]Kelekatan: {0}
liquid.temperature = [lightgray]Suhu: {0}
unit.dagger.name = Dagger
unit.mace.name = Mace
unit.fortress.name = Fortress
@@ -949,18 +945,18 @@ unit.corvus.name = Corvus
block.resupply-point.name = Titik Pemasok Ulang
block.parallax.name = Parallax
block.cliff.name = Jurang
block.cliff.name = Cliff
block.sand-boulder.name = Batu Pasir Besar
block.grass.name = Rumput
block.slag.name = Slag
block.space.name = Ruang Angkasa
block.space.name = Luar Angkasa
block.salt.name = Garam
block.salt-wall.name = Dinding Garam
block.salt-wall.name = Bukit Garam
block.pebbles.name = Kerikil
block.tendrils.name = Sulur
block.sand-wall.name = Dinding Pasir
block.sand-wall.name = Bukit Pasir
block.spore-pine.name = Cemara Spora
block.spore-wall.name = Dinding Spora
block.spore-wall.name = Bukit Spora
block.boulder.name = Batu Besar
block.snow-boulder.name = Batu Salju Besar
block.snow-pine.name = Pinus Salju
@@ -969,7 +965,7 @@ block.shale-boulder.name = Serpihan Batu Besar
block.moss.name = Lumut
block.shrubs.name = Semak-Semak
block.spore-moss.name = Lumut Spora
block.shale-wall.name = Dinding Serpih
block.shale-wall.name = Bukit Serpih
block.scrap-wall.name = Dinding Kepingan
block.scrap-wall-large.name = Dinding Kepingan Besar 1
block.scrap-wall-huge.name = Dinding Kepingan Besar 2
@@ -1324,4 +1320,4 @@ block.cyclone.description = Menara penembak beruntun besar.
block.spectre.description = Menara besar yang menembak dua peluru kuat sekaligus.
block.meltdown.description = Menara besar ini menembak sinar panjang yang kuat.
block.repair-point.description = Terus menerus memulihkan unit terluka disekitar.
block.segment.description = Merusakkan dan menghancurkan proyektil yang datang. Proyektil laser tidak akan ditargetkan.
block.segment.description = Merusakkan dan menghancurkan proyektil yang datang. Proyektil laser tidak akan ditargetkan.

View File

@@ -570,49 +570,49 @@ info.title = Info
error.title = [crimson]Si è verificato un errore
error.crashtitle = Si è verificato un errore
unit.nobuild = [scarlet]L'unità non può costruire
blocks.input = Ingresso
blocks.output = Uscita
blocks.booster = Potenziamenti
blocks.tiles = Blocchi Richiesti
blocks.affinities = Affinità
stat.input = Ingresso
stat.output = Uscita
stat.booster = Potenziamenti
stat.tiles = Blocchi Richiesti
stat.affinities = Affinità
block.unknown = [lightgray]???
blocks.powercapacity = Capacità Energetica
blocks.powershot = Danno/Colpo
blocks.damage = Danno
blocks.targetsair = Attacca Nemici Aerei
blocks.targetsground = Attacca Nemici Terreni
blocks.itemsmoved = Velocità di Movimento
blocks.launchtime = Tempo fra Decolli
blocks.shootrange = Raggio
blocks.size = Dimensioni
blocks.displaysize = Display Size
blocks.liquidcapacity = Capacità del Liquido
blocks.powerrange = Raggio Energia
blocks.linkrange = Link Range
blocks.instructions = Instructions
blocks.powerconnections = Connessioni Massime
blocks.poweruse = Utilizzo Energia
blocks.powerdamage = Energia/Danno
blocks.itemcapacity = Capacità
blocks.basepowergeneration = Generazione Energia di Base
blocks.productiontime = Tempo di Produzione
blocks.repairtime = Tempo di Riparazione Completa
blocks.speedincrease = Aumento Velocità
blocks.range = Raggio
blocks.drilltier = Scavabili
blocks.drillspeed = Velocità di Scavo Stabile
blocks.boosteffect = Effetto Boost
blocks.maxunits = Unità Attive Max
blocks.health = Salute
blocks.buildtime = Tempo di Costruzione
blocks.maxconsecutive = Max Consecutive
blocks.buildcost = Costo di Costruzione
blocks.inaccuracy = Inaccuratezza
blocks.shots = Colpi
blocks.reload = Ricarica
blocks.ammo = Munizioni
blocks.shieldhealth = Shield Health
blocks.cooldowntime = Cooldown Time
stat.powercapacity = Capacità Energetica
stat.powershot = Danno/Colpo
stat.damage = Danno
stat.targetsair = Attacca Nemici Aerei
stat.targetsground = Attacca Nemici Terreni
stat.itemsmoved = Velocità di Movimento
stat.launchtime = Tempo fra Decolli
stat.shootrange = Raggio
stat.size = Dimensioni
stat.displaysize = Display Size
stat.liquidcapacity = Capacità del Liquido
stat.powerrange = Raggio Energia
stat.linkrange = Link Range
stat.instructions = Instructions
stat.powerconnections = Connessioni Massime
stat.poweruse = Utilizzo Energia
stat.powerdamage = Energia/Danno
stat.itemcapacity = Capacità
stat.basepowergeneration = Generazione Energia di Base
stat.productiontime = Tempo di Produzione
stat.repairtime = Tempo di Riparazione Completa
stat.speedincrease = Aumento Velocità
stat.range = Raggio
stat.drilltier = Scavabili
stat.drillspeed = Velocità di Scavo Stabile
stat.boosteffect = Effetto Boost
stat.maxunits = Unità Attive Max
stat.health = Salute
stat.buildtime = Tempo di Costruzione
stat.maxconsecutive = Max Consecutive
stat.buildcost = Costo di Costruzione
stat.inaccuracy = Inaccuratezza
stat.shots = Colpi
stat.reload = Ricarica
stat.ammo = Munizioni
stat.shieldhealth = Shield Health
stat.cooldowntime = Cooldown Time
bar.drilltierreq = Miglior Trivella Richiesta
bar.noresources = Missing Resources
@@ -1302,4 +1302,4 @@ block.cyclone.description = Una grande torretta a fuoco rapido.
block.spectre.description = Una grande torretta che spara due potenti proiettili contemporaneamente.
block.meltdown.description = Una grande torretta che spara un potente laser a lungo raggio.
block.repair-point.description = Cura continuamente l'unità danneggiata più vicina.
block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.

View File

@@ -570,49 +570,49 @@ info.title = 情報
error.title = [crimson]エラーが発生しました
error.crashtitle = エラーが発生しました
unit.nobuild = [scarlet]ユニットを構築できません
blocks.input = 搬入
blocks.output = 搬出
blocks.booster = ブースト
blocks.tiles = 必要なタイル
blocks.affinities = 親和性
stat.input = 搬入
stat.output = 搬出
stat.booster = ブースト
stat.tiles = 必要なタイル
stat.affinities = 親和性
block.unknown = [lightgray]???
blocks.powercapacity = 電力容量
blocks.powershot = 電力/ショット
blocks.damage = ダメージ
blocks.targetsair = 対空攻撃
blocks.targetsground = 対地攻撃
blocks.itemsmoved = 輸送速度
blocks.launchtime = 発射の待機時間
blocks.shootrange = 範囲
blocks.size = 大きさ
blocks.displaysize = Display Size
blocks.liquidcapacity = 液体容量
blocks.powerrange = 電力範囲
blocks.linkrange = Link Range
blocks.instructions = Instructions
blocks.powerconnections = 最大接続数
blocks.poweruse = 電力使用量
blocks.powerdamage = 電力/ダメージ
blocks.itemcapacity = アイテム容量
blocks.basepowergeneration = 基本発電量
blocks.productiontime = 製造速度
blocks.repairtime = ブロックの完全修復速度
blocks.speedincrease = 速度向上
blocks.range = 範囲
blocks.drilltier = ドリル
blocks.drillspeed = 基本採掘速度
blocks.boosteffect = ブースト効果
blocks.maxunits = 最大ユニット数
blocks.health = 耐久値
blocks.buildtime = 建設時間
blocks.maxconsecutive = Max Consecutive
blocks.buildcost = 建設費用
blocks.inaccuracy = 誤差
blocks.shots = ショット
blocks.reload = リロード速度
blocks.ammo = 弾薬
blocks.shieldhealth = Shield Health
blocks.cooldowntime = Cooldown Time
stat.powercapacity = 電力容量
stat.powershot = 電力/ショット
stat.damage = ダメージ
stat.targetsair = 対空攻撃
stat.targetsground = 対地攻撃
stat.itemsmoved = 輸送速度
stat.launchtime = 発射の待機時間
stat.shootrange = 範囲
stat.size = 大きさ
stat.displaysize = Display Size
stat.liquidcapacity = 液体容量
stat.powerrange = 電力範囲
stat.linkrange = Link Range
stat.instructions = Instructions
stat.powerconnections = 最大接続数
stat.poweruse = 電力使用量
stat.powerdamage = 電力/ダメージ
stat.itemcapacity = アイテム容量
stat.basepowergeneration = 基本発電量
stat.productiontime = 製造速度
stat.repairtime = ブロックの完全修復速度
stat.speedincrease = 速度向上
stat.range = 範囲
stat.drilltier = ドリル
stat.drillspeed = 基本採掘速度
stat.boosteffect = ブースト効果
stat.maxunits = 最大ユニット数
stat.health = 耐久値
stat.buildtime = 建設時間
stat.maxconsecutive = Max Consecutive
stat.buildcost = 建設費用
stat.inaccuracy = 誤差
stat.shots = ショット
stat.reload = リロード速度
stat.ammo = 弾薬
stat.shieldhealth = Shield Health
stat.cooldowntime = Cooldown Time
bar.drilltierreq = より高性能なドリルを使用してください
bar.noresources = Missing Resources
@@ -1302,4 +1302,4 @@ block.cyclone.description = 大型の連射型ターレットです。
block.spectre.description = 一度に2発の強力な弾を放つ大型のターレットです。
block.meltdown.description = 強力な長距離攻撃が可能な大型のターレットです。
block.repair-point.description = 近くの負傷したユニットを修復します。
block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.

View File

@@ -570,49 +570,49 @@ info.title = 정보
error.title = [scarlet]오류가 발생했습니다.
error.crashtitle = 오류가 발생했습니다
unit.nobuild = [scarlet]이 유닛은 건설할 수 없습니다.
blocks.input = 입력
blocks.output = 출력
blocks.booster = 가속
blocks.tiles = 필요한 타일
blocks.affinities = 친화력
stat.input = 입력
stat.output = 출력
stat.booster = 가속
stat.tiles = 필요한 타일
stat.affinities = 친화력
block.unknown = [lightgray]???
blocks.powercapacity = 전력 용량
blocks.powershot = 전력/발
blocks.damage = 공격력
blocks.targetsair = 공중 공격
blocks.targetsground = 지상 공격
blocks.itemsmoved = 이동 속도
blocks.launchtime = 출격 간격
blocks.shootrange = 사거리
blocks.size = 크기
blocks.displaysize = Display Size
blocks.liquidcapacity = 액체 용량
blocks.powerrange = 전력 범위
blocks.linkrange = Link Range
blocks.instructions = Instructions
blocks.powerconnections = 최대 연결 수
blocks.poweruse = 전력 사용
blocks.powerdamage = 전력/데미지
blocks.itemcapacity = 저장 용량
blocks.basepowergeneration = 기본 전력 생성량
blocks.productiontime = 제작 시간
blocks.repairtime = 전체 블록 수리시간
blocks.speedincrease = 속도 증가
blocks.range = 사거리
blocks.drilltier = 드릴
blocks.drillspeed = 기본 드릴 속도
blocks.boosteffect = 가속 효과
blocks.maxunits = 최대 활성 유닛수
blocks.health = 체력
blocks.buildtime = 건설 시간
blocks.maxconsecutive = Max Consecutive
blocks.buildcost = 건설 재료
blocks.inaccuracy = 오차각
blocks.shots = 공격 속도
blocks.reload = 발/초
blocks.ammo = 탄약
blocks.shieldhealth = 보호막 체력
blocks.cooldowntime = Cooldown Time
stat.powercapacity = 전력 용량
stat.powershot = 전력/발
stat.damage = 공격력
stat.targetsair = 공중 공격
stat.targetsground = 지상 공격
stat.itemsmoved = 이동 속도
stat.launchtime = 출격 간격
stat.shootrange = 사거리
stat.size = 크기
stat.displaysize = Display Size
stat.liquidcapacity = 액체 용량
stat.powerrange = 전력 범위
stat.linkrange = Link Range
stat.instructions = Instructions
stat.powerconnections = 최대 연결 수
stat.poweruse = 전력 사용
stat.powerdamage = 전력/데미지
stat.itemcapacity = 저장 용량
stat.basepowergeneration = 기본 전력 생성량
stat.productiontime = 제작 시간
stat.repairtime = 전체 블록 수리시간
stat.speedincrease = 속도 증가
stat.range = 사거리
stat.drilltier = 드릴
stat.drillspeed = 기본 드릴 속도
stat.boosteffect = 가속 효과
stat.maxunits = 최대 활성 유닛수
stat.health = 체력
stat.buildtime = 건설 시간
stat.maxconsecutive = Max Consecutive
stat.buildcost = 건설 재료
stat.inaccuracy = 오차각
stat.shots = 공격 속도
stat.reload = 발/초
stat.ammo = 탄약
stat.shieldhealth = 보호막 체력
stat.cooldowntime = Cooldown Time
bar.drilltierreq = 더 좋은 드릴이 필요
bar.noresources = 자원 부족
@@ -1302,4 +1302,4 @@ block.cyclone.description = 대공 및 대지 포탑. 근처 유닛에게 폭발
block.spectre.description = 거대한 이중 배럴 대포. 공중 및 지상 목표물에 큰 관통 철갑탄을 발사합니다.
block.meltdown.description = 거대한 레이저 대포. 근처의 적에게 지속적인 레이버 빔을 충전하여 발사합니다. 냉각수가 있어야 작동합니다.
block.repair-point.description = 주변에서 가장 가까운 유닛을 지속적으로 치료합니다.
block.segment.description = 날아오는 발사체를 요격합니다. 레이저는 목표 대상이 아닙니다.
block.segment.description = 날아오는 발사체를 요격합니다. 레이저는 목표 대상이 아닙니다.

View File

@@ -570,49 +570,49 @@ info.title = Informacija
error.title = [crimson]Įvyko klaida
error.crashtitle = Įvyko klaida
unit.nobuild = [scarlet]Unit can't build
blocks.input = Įeiga
blocks.output = Išeiga
blocks.booster = Stiprintuvas
blocks.tiles = Privalomi
blocks.affinities = Affinities
stat.input = Įeiga
stat.output = Išeiga
stat.booster = Stiprintuvas
stat.tiles = Privalomi
stat.affinities = Affinities
block.unknown = [lightgray]???
blocks.powercapacity = Energijos Talpumas
blocks.powershot = Energija per šūvį
blocks.damage = Žala
blocks.targetsair = Šaudo į oro taikinius
blocks.targetsground = Šaudo į žemės taikinius
blocks.itemsmoved = Judėjimo Greitis
blocks.launchtime = Laikas Tarp Paleidimų
blocks.shootrange = Atstumas
blocks.size = Dydis
blocks.displaysize = Display Size
blocks.liquidcapacity = Skysčių Talpumas
blocks.powerrange = Energijos Skleidimo Atstumas
blocks.linkrange = Link Range
blocks.instructions = Instructions
blocks.powerconnections = Maks. Jungčių Kiekis
blocks.poweruse = Energijos Suvartojimas
blocks.powerdamage = Power/Damage
blocks.itemcapacity = Daiktų Talpumas
blocks.basepowergeneration = Bazinis Energijos Generavimas
blocks.productiontime = Gamybos Laikas
blocks.repairtime = Pilnas bloko sutaisymo laikas
blocks.speedincrease = Greičio Padidėjimas
blocks.range = Atstumas
blocks.drilltier = Gręžiama
blocks.drillspeed = Bazinis Grąžto Greitis
blocks.boosteffect = Pastiprinimo Efektas
blocks.maxunits = Maks. Aktyvių Vienetų Kiekis
blocks.health = Gyvybės
blocks.buildtime = Statymo Laikas
blocks.maxconsecutive = Max Consecutive
blocks.buildcost = Statymo Kaina
blocks.inaccuracy = Netikslumas
blocks.shots = Šūviai
blocks.reload = Šūviai per sekundę
blocks.ammo = Šoviniai
blocks.shieldhealth = Shield Health
blocks.cooldowntime = Cooldown Time
stat.powercapacity = Energijos Talpumas
stat.powershot = Energija per šūvį
stat.damage = Žala
stat.targetsair = Šaudo į oro taikinius
stat.targetsground = Šaudo į žemės taikinius
stat.itemsmoved = Judėjimo Greitis
stat.launchtime = Laikas Tarp Paleidimų
stat.shootrange = Atstumas
stat.size = Dydis
stat.displaysize = Display Size
stat.liquidcapacity = Skysčių Talpumas
stat.powerrange = Energijos Skleidimo Atstumas
stat.linkrange = Link Range
stat.instructions = Instructions
stat.powerconnections = Maks. Jungčių Kiekis
stat.poweruse = Energijos Suvartojimas
stat.powerdamage = Power/Damage
stat.itemcapacity = Daiktų Talpumas
stat.basepowergeneration = Bazinis Energijos Generavimas
stat.productiontime = Gamybos Laikas
stat.repairtime = Pilnas bloko sutaisymo laikas
stat.speedincrease = Greičio Padidėjimas
stat.range = Atstumas
stat.drilltier = Gręžiama
stat.drillspeed = Bazinis Grąžto Greitis
stat.boosteffect = Pastiprinimo Efektas
stat.maxunits = Maks. Aktyvių Vienetų Kiekis
stat.health = Gyvybės
stat.buildtime = Statymo Laikas
stat.maxconsecutive = Max Consecutive
stat.buildcost = Statymo Kaina
stat.inaccuracy = Netikslumas
stat.shots = Šūviai
stat.reload = Šūviai per sekundę
stat.ammo = Šoviniai
stat.shieldhealth = Shield Health
stat.cooldowntime = Cooldown Time
bar.drilltierreq = Privalomas Geresnis Grąžtas
bar.noresources = Missing Resources
@@ -1302,4 +1302,4 @@ block.cyclone.description = Didelis bokštas puolantis, tiek žemę, tiek orą.
block.spectre.description = Milžiniškas dvivamzdis bokštas. Šaudo didelius, kiaurai per šarvus einančius šovinius į taikinius esančius ant žemės ir ore.
block.meltdown.description = Milžiniška lazerinė patranka. Užsikrauna ir šaudo lazerinius spindulius į aplinkinius priešus. Veikimui reikalingas aušinimo skystis.
block.repair-point.description = Pastoviai gydo artimiausius netoliese esančius vienetus.
block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.

View File

@@ -570,49 +570,49 @@ info.title = Informatie
error.title = [crimson]Een fout is opgetreden
error.crashtitle = Een fout is opgetreden
unit.nobuild = [scarlet]Unit can't build
blocks.input = Input
blocks.output = Output
blocks.booster = Booster
blocks.tiles = Required Tiles
blocks.affinities = Affinities
stat.input = Input
stat.output = Output
stat.booster = Booster
stat.tiles = Required Tiles
stat.affinities = Affinities
block.unknown = [lightgray]???
blocks.powercapacity = Stroomcapaciteit
blocks.powershot = Stroom/Schot
blocks.damage = Schade
blocks.targetsair = Luchtdoelwitten
blocks.targetsground = Gronddoelwitten
blocks.itemsmoved = Beweegingssnelheid
blocks.launchtime = Tijd tussen lanceringen
blocks.shootrange = Bereik
blocks.size = Formaat
blocks.displaysize = Display Size
blocks.liquidcapacity = Vloeistofcapaciteit
blocks.powerrange = Stroombereik
blocks.linkrange = Link Range
blocks.instructions = Instructions
blocks.powerconnections = Maximale Hoeveelheid Connecties
blocks.poweruse = Stroomverbruik
blocks.powerdamage = Stroom/Schade
blocks.itemcapacity = Materiaalcapaciteit
blocks.basepowergeneration = Standaard Stroom Generatie
blocks.productiontime = Productie Tijd
blocks.repairtime = Volledige Blok Repareertijd
blocks.speedincrease = Snelheidsverhoging
blocks.range = Bereik
blocks.drilltier = Valt te delven
blocks.drillspeed = Standaard mine snelheid
blocks.boosteffect = Boost Effect
blocks.maxunits = Maximaal Actieve Units
blocks.health = Levenspunten
blocks.buildtime = Bouwtijd
blocks.maxconsecutive = Max Consecutive
blocks.buildcost = Bouwkosten
blocks.inaccuracy = Onnauwkeurigheid
blocks.shots = Shoten
blocks.reload = Schoten/Seconde
blocks.ammo = Ammunitie
blocks.shieldhealth = Shield Health
blocks.cooldowntime = Cooldown Time
stat.powercapacity = Stroomcapaciteit
stat.powershot = Stroom/Schot
stat.damage = Schade
stat.targetsair = Luchtdoelwitten
stat.targetsground = Gronddoelwitten
stat.itemsmoved = Beweegingssnelheid
stat.launchtime = Tijd tussen lanceringen
stat.shootrange = Bereik
stat.size = Formaat
stat.displaysize = Display Size
stat.liquidcapacity = Vloeistofcapaciteit
stat.powerrange = Stroombereik
stat.linkrange = Link Range
stat.instructions = Instructions
stat.powerconnections = Maximale Hoeveelheid Connecties
stat.poweruse = Stroomverbruik
stat.powerdamage = Stroom/Schade
stat.itemcapacity = Materiaalcapaciteit
stat.basepowergeneration = Standaard Stroom Generatie
stat.productiontime = Productie Tijd
stat.repairtime = Volledige Blok Repareertijd
stat.speedincrease = Snelheidsverhoging
stat.range = Bereik
stat.drilltier = Valt te delven
stat.drillspeed = Standaard mine snelheid
stat.boosteffect = Boost Effect
stat.maxunits = Maximaal Actieve Units
stat.health = Levenspunten
stat.buildtime = Bouwtijd
stat.maxconsecutive = Max Consecutive
stat.buildcost = Bouwkosten
stat.inaccuracy = Onnauwkeurigheid
stat.shots = Shoten
stat.reload = Schoten/Seconde
stat.ammo = Ammunitie
stat.shieldhealth = Shield Health
stat.cooldowntime = Cooldown Time
bar.drilltierreq = Betere miner nodig
bar.noresources = Missing Resources
@@ -1302,4 +1302,4 @@ block.cyclone.description = A large rapid fire turret.
block.spectre.description = A large turret which shoots two powerful bullets at once.
block.meltdown.description = A large turret which shoots powerful long-range beams.
block.repair-point.description = Continuously heals the closest damaged unit in its vicinity.
block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.

View File

@@ -570,49 +570,49 @@ info.title = Info
error.title = [crimson]An error has occured
error.crashtitle = An error has occured
unit.nobuild = [scarlet]Unit can't build
blocks.input = Input
blocks.output = Output
blocks.booster = Booster
blocks.tiles = Required Tiles
blocks.affinities = Affinities
stat.input = Input
stat.output = Output
stat.booster = Booster
stat.tiles = Required Tiles
stat.affinities = Affinities
block.unknown = [lightgray]???
blocks.powercapacity = Power Capacity
blocks.powershot = Power/Shot
blocks.damage = Damage
blocks.targetsair = Targets Air
blocks.targetsground = Targets Ground
blocks.itemsmoved = Move Speed
blocks.launchtime = Time Between Launches
blocks.shootrange = Range
blocks.size = Size
blocks.displaysize = Display Size
blocks.liquidcapacity = Liquid Capacity
blocks.powerrange = Power Range
blocks.linkrange = Link Range
blocks.instructions = Instructions
blocks.powerconnections = Max Connections
blocks.poweruse = Power Use
blocks.powerdamage = Power/Damage
blocks.itemcapacity = Item Capacity
blocks.basepowergeneration = Base Power Generation
blocks.productiontime = Production Time
blocks.repairtime = Block Full Repair Time
blocks.speedincrease = Speed Increase
blocks.range = Range
blocks.drilltier = Drillables
blocks.drillspeed = Base Drill Speed
blocks.boosteffect = Boost Effect
blocks.maxunits = Max Active Units
blocks.health = Health
blocks.buildtime = Build Time
blocks.maxconsecutive = Max Consecutive
blocks.buildcost = Build Cost
blocks.inaccuracy = Inaccuracy
blocks.shots = Shots
blocks.reload = Shots/Second
blocks.ammo = Ammo
blocks.shieldhealth = Shield Health
blocks.cooldowntime = Cooldown Time
stat.powercapacity = Power Capacity
stat.powershot = Power/Shot
stat.damage = Damage
stat.targetsair = Targets Air
stat.targetsground = Targets Ground
stat.itemsmoved = Move Speed
stat.launchtime = Time Between Launches
stat.shootrange = Range
stat.size = Size
stat.displaysize = Display Size
stat.liquidcapacity = Liquid Capacity
stat.powerrange = Power Range
stat.linkrange = Link Range
stat.instructions = Instructions
stat.powerconnections = Max Connections
stat.poweruse = Power Use
stat.powerdamage = Power/Damage
stat.itemcapacity = Item Capacity
stat.basepowergeneration = Base Power Generation
stat.productiontime = Production Time
stat.repairtime = Block Full Repair Time
stat.speedincrease = Speed Increase
stat.range = Range
stat.drilltier = Drillables
stat.drillspeed = Base Drill Speed
stat.boosteffect = Boost Effect
stat.maxunits = Max Active Units
stat.health = Health
stat.buildtime = Build Time
stat.maxconsecutive = Max Consecutive
stat.buildcost = Build Cost
stat.inaccuracy = Inaccuracy
stat.shots = Shots
stat.reload = Shots/Second
stat.ammo = Ammo
stat.shieldhealth = Shield Health
stat.cooldowntime = Cooldown Time
bar.drilltierreq = Better Drill Required
bar.noresources = Missing Resources
@@ -1302,4 +1302,4 @@ block.cyclone.description = A large rapid fire turret.
block.spectre.description = A large turret which shoots two powerful bullets at once.
block.meltdown.description = A large turret which shoots powerful long-range beams.
block.repair-point.description = Continuously heals the closest damaged unit in its vicinity.
block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.

View File

@@ -570,49 +570,49 @@ info.title = Informacje
error.title = [crimson]Wystąpił błąd
error.crashtitle = Wystąpił błąd
unit.nobuild = [scarlet]Jednostka nie może budować
blocks.input = Wejście
blocks.output = Wyjście
blocks.booster = Wzmacniacz
blocks.tiles = Wymagane Pola
blocks.affinities = Uwydajnienie
stat.input = Wejście
stat.output = Wyjście
stat.booster = Wzmacniacz
stat.tiles = Wymagane Pola
stat.affinities = Uwydajnienie
block.unknown = [lightgray]???
blocks.powercapacity = Pojemność mocy
blocks.powershot = moc/strzał
blocks.damage = Obrażenia
blocks.targetsair = Namierzanie wrogów powietrznych
blocks.targetsground = Namierzanie wrogów lądowych
blocks.itemsmoved = Prędkość poruszania się
blocks.launchtime = Czas pomiędzy wystrzeleniami
blocks.shootrange = Zasięg
blocks.size = Rozmiar
blocks.displaysize = Display Size
blocks.liquidcapacity = Pojemność cieczy
blocks.powerrange = Zakres mocy
blocks.linkrange = Link Range
blocks.instructions = Instructions
blocks.powerconnections = Maksymalna ilość połączeń
blocks.poweruse = Zużycie prądu
blocks.powerdamage = Moc/Zniszczenia
blocks.itemcapacity = Pojemność przedmiotów
blocks.basepowergeneration = Podstawowa generacja mocy
blocks.productiontime = Czas produkcji
blocks.repairtime = Czas pełnej naprawy bloku
blocks.speedincrease = Zwiększenie prędkości
blocks.range = Zasięg
blocks.drilltier = Co może wykopać
blocks.drillspeed = Podstawowa szybkość kopania
blocks.boosteffect = Efekt wzmocnienia
blocks.maxunits = Maksymalna ilość jednostek
blocks.health = Zdrowie
blocks.buildtime = Czas budowy
blocks.maxconsecutive = Max Consecutive
blocks.buildcost = Koszt budowy
blocks.inaccuracy = Niecelność
blocks.shots = Strzały
blocks.reload = Strzałów/sekundę
blocks.ammo = Amunicja
blocks.shieldhealth = Shield Health
blocks.cooldowntime = Cooldown Time
stat.powercapacity = Pojemność mocy
stat.powershot = moc/strzał
stat.damage = Obrażenia
stat.targetsair = Namierzanie wrogów powietrznych
stat.targetsground = Namierzanie wrogów lądowych
stat.itemsmoved = Prędkość poruszania się
stat.launchtime = Czas pomiędzy wystrzeleniami
stat.shootrange = Zasięg
stat.size = Rozmiar
stat.displaysize = Display Size
stat.liquidcapacity = Pojemność cieczy
stat.powerrange = Zakres mocy
stat.linkrange = Link Range
stat.instructions = Instructions
stat.powerconnections = Maksymalna ilość połączeń
stat.poweruse = Zużycie prądu
stat.powerdamage = Moc/Zniszczenia
stat.itemcapacity = Pojemność przedmiotów
stat.basepowergeneration = Podstawowa generacja mocy
stat.productiontime = Czas produkcji
stat.repairtime = Czas pełnej naprawy bloku
stat.speedincrease = Zwiększenie prędkości
stat.range = Zasięg
stat.drilltier = Co może wykopać
stat.drillspeed = Podstawowa szybkość kopania
stat.boosteffect = Efekt wzmocnienia
stat.maxunits = Maksymalna ilość jednostek
stat.health = Zdrowie
stat.buildtime = Czas budowy
stat.maxconsecutive = Max Consecutive
stat.buildcost = Koszt budowy
stat.inaccuracy = Niecelność
stat.shots = Strzały
stat.reload = Strzałów/sekundę
stat.ammo = Amunicja
stat.shieldhealth = Shield Health
stat.cooldowntime = Cooldown Time
bar.drilltierreq = Wymagane Lepsze Wiertło
bar.noresources = Missing Resources
@@ -1302,4 +1302,4 @@ block.cyclone.description = Duża szybkostrzelna wieża.
block.spectre.description = Duże działo dwulufowe, które strzela potężnymi pociskami przebijającymi pancerz w jednostki naziemne i powietrzne.
block.meltdown.description = Duże działo laserowe, które strzela potężnymi wiązkami dalekiego zasięgu. Wymaga chłodzenia.
block.repair-point.description = Bez przerw naprawia najbliższą uszkodzoną jednostkę w jego zasięgu.
block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.

View File

@@ -570,49 +570,49 @@ info.title = [accent]Informação
error.title = [crimson]Ocorreu um Erro.
error.crashtitle = Ocorreu um Erro
unit.nobuild = [scarlet]Unit can't build
blocks.input = Entrada
blocks.output = Saída
blocks.booster = Apoio
blocks.tiles = Required Tiles
blocks.affinities = Affinities
stat.input = Entrada
stat.output = Saída
stat.booster = Apoio
stat.tiles = Required Tiles
stat.affinities = Affinities
block.unknown = [lightgray]???
blocks.powercapacity = Capacidade de Energia
blocks.powershot = Energia/tiro
blocks.damage = Dano
blocks.targetsair = Mira no ar
blocks.targetsground = Mira no chão
blocks.itemsmoved = Velocidade de movimento
blocks.launchtime = Tempo entre Disparos.
blocks.shootrange = Alcance
blocks.size = Tamanho
blocks.displaysize = Display Size
blocks.liquidcapacity = Capacidade de Líquido
blocks.powerrange = Alcance da Energia
blocks.linkrange = Link Range
blocks.instructions = Instructions
blocks.powerconnections = Conexões Máximas
blocks.poweruse = Uso de energia
blocks.powerdamage = Dano/Poder
blocks.itemcapacity = Capacidade de Itens
blocks.basepowergeneration = Geração de poder base
blocks.productiontime = Tempo de produção
blocks.repairtime = Tempo de reparo total do bloco
blocks.speedincrease = Aumento de velocidade
blocks.range = Distância
blocks.drilltier = Brocas
blocks.drillspeed = Velocidade base da Broca
blocks.boosteffect = Efeito do Impulso
blocks.maxunits = Máximo de unidades ativas
blocks.health = Saúde
blocks.buildtime = Tempo de construção
blocks.maxconsecutive = Max Consecutive
blocks.buildcost = Custo de construção
blocks.inaccuracy = Imprecisão
blocks.shots = Tiros
blocks.reload = Tiros por segundo
blocks.ammo = Munição
blocks.shieldhealth = Shield Health
blocks.cooldowntime = Cooldown Time
stat.powercapacity = Capacidade de Energia
stat.powershot = Energia/tiro
stat.damage = Dano
stat.targetsair = Mira no ar
stat.targetsground = Mira no chão
stat.itemsmoved = Velocidade de movimento
stat.launchtime = Tempo entre Disparos.
stat.shootrange = Alcance
stat.size = Tamanho
stat.displaysize = Display Size
stat.liquidcapacity = Capacidade de Líquido
stat.powerrange = Alcance da Energia
stat.linkrange = Link Range
stat.instructions = Instructions
stat.powerconnections = Conexões Máximas
stat.poweruse = Uso de energia
stat.powerdamage = Dano/Poder
stat.itemcapacity = Capacidade de Itens
stat.basepowergeneration = Geração de poder base
stat.productiontime = Tempo de produção
stat.repairtime = Tempo de reparo total do bloco
stat.speedincrease = Aumento de velocidade
stat.range = Distância
stat.drilltier = Brocas
stat.drillspeed = Velocidade base da Broca
stat.boosteffect = Efeito do Impulso
stat.maxunits = Máximo de unidades ativas
stat.health = Saúde
stat.buildtime = Tempo de construção
stat.maxconsecutive = Max Consecutive
stat.buildcost = Custo de construção
stat.inaccuracy = Imprecisão
stat.shots = Tiros
stat.reload = Tiros por segundo
stat.ammo = Munição
stat.shieldhealth = Shield Health
stat.cooldowntime = Cooldown Time
bar.drilltierreq = Broca melhor necessária.
bar.noresources = Missing Resources
@@ -1302,4 +1302,4 @@ block.cyclone.description = Uma grande torre que dispara balas explosivas que se
block.spectre.description = Um grande canhão massivo. Dispara grandes tiros perfuradores de blindagem em inimigos aéreos e terrestres.
block.meltdown.description = Um grande canhão laser massivo. Carrega e dispara um poderoso e persistente feixe nos seus inimigos. Requer uma refrigeração para ser operada.
block.repair-point.description = Continuamente repara a unidade danificada mais proxima.
block.segment.description = Destrói projéteis inimigos. Projéteis de laser não são afetados.
block.segment.description = Destrói projéteis inimigos. Projéteis de laser não são afetados.

View File

@@ -570,49 +570,49 @@ info.title = [accent]Informação
error.title = [crimson]Ocorreu um Erro.
error.crashtitle = Ocorreu um Erro
unit.nobuild = [scarlet]Unit can't build
blocks.input = Entrada
blocks.output = Saida
blocks.booster = Booster
blocks.tiles = Telhas Requeridas
blocks.affinities = Afinidades
stat.input = Entrada
stat.output = Saida
stat.booster = Booster
stat.tiles = Telhas Requeridas
stat.affinities = Afinidades
block.unknown = [lightgray]???
blocks.powercapacity = Capacidade de Energia
blocks.powershot = Energia/tiro
blocks.damage = Dano
blocks.targetsair = Mirar no ar
blocks.targetsground = Mirar no chão
blocks.itemsmoved = Velocidade de movimento
blocks.launchtime = Tempo entre tiros
blocks.shootrange = Alcance
blocks.size = Tamanho
blocks.displaysize = Display Size
blocks.liquidcapacity = Capacidade de Líquido
blocks.powerrange = Alcance da Energia
blocks.linkrange = Link Range
blocks.instructions = Instructions
blocks.powerconnections = Max Connections
blocks.poweruse = Uso de energia
blocks.powerdamage = Dano/Poder
blocks.itemcapacity = Capacidade de Itens
blocks.basepowergeneration = Geração de poder base
blocks.productiontime = Tempo de produção
blocks.repairtime = Tempo de reparo total do bloco
blocks.speedincrease = Aumento de velocidade
blocks.range = Distância
blocks.drilltier = Furáveis
blocks.drillspeed = Velocidade da broca base
blocks.boosteffect = Efeito do Boost
blocks.maxunits = Máximo de unidades ativas
blocks.health = Saúde
blocks.buildtime = Tempo de construção
blocks.maxconsecutive = Max Consecutive
blocks.buildcost = Custo de construção
blocks.inaccuracy = Imprecisão
blocks.shots = Tiros
blocks.reload = Tiros por segundo
blocks.ammo = Munição
blocks.shieldhealth = Shield Health
blocks.cooldowntime = Cooldown Time
stat.powercapacity = Capacidade de Energia
stat.powershot = Energia/tiro
stat.damage = Dano
stat.targetsair = Mirar no ar
stat.targetsground = Mirar no chão
stat.itemsmoved = Velocidade de movimento
stat.launchtime = Tempo entre tiros
stat.shootrange = Alcance
stat.size = Tamanho
stat.displaysize = Display Size
stat.liquidcapacity = Capacidade de Líquido
stat.powerrange = Alcance da Energia
stat.linkrange = Link Range
stat.instructions = Instructions
stat.powerconnections = Max Connections
stat.poweruse = Uso de energia
stat.powerdamage = Dano/Poder
stat.itemcapacity = Capacidade de Itens
stat.basepowergeneration = Geração de poder base
stat.productiontime = Tempo de produção
stat.repairtime = Tempo de reparo total do bloco
stat.speedincrease = Aumento de velocidade
stat.range = Distância
stat.drilltier = Furáveis
stat.drillspeed = Velocidade da broca base
stat.boosteffect = Efeito do Boost
stat.maxunits = Máximo de unidades ativas
stat.health = Saúde
stat.buildtime = Tempo de construção
stat.maxconsecutive = Max Consecutive
stat.buildcost = Custo de construção
stat.inaccuracy = Imprecisão
stat.shots = Tiros
stat.reload = Tiros por segundo
stat.ammo = Munição
stat.shieldhealth = Shield Health
stat.cooldowntime = Cooldown Time
bar.drilltierreq = Broca melhor necessária.
bar.noresources = Missing Resources
@@ -1302,4 +1302,4 @@ block.cyclone.description = Uma grande torre de tiro rapido.
block.spectre.description = Uma grande torre que da dois tiros poderosos ao mesmo tempo.
block.meltdown.description = Uma grande torre que atira dois raios poderosos ao mesmo tempo.
block.repair-point.description = Continuamente repara a unidade danificada mais proxima.
block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.

View File

@@ -569,50 +569,50 @@ error.title = [scarlet]A apărut o eroare.
error.crashtitle = A apărut o eroare.
unit.nobuild = [scarlet]Unitatea nu poate construi.
lastaccessed = [lightgray]Ultima Accesare: {0}
blocks.input = Necesită
blocks.output = Produce
blocks.booster = Booster
blocks.tiles = Teren Necesar
blocks.affinities = Efecte Teren
stat.input = Necesită
stat.output = Produce
stat.booster = Booster
stat.tiles = Teren Necesar
stat.affinities = Efecte Teren
block.unknown = [lightgray]???
blocks.powercapacity = Capacitate electrică
blocks.powershot = Electricitate/Glonț
blocks.damage = Forță
blocks.targetsair = Lovește Aeronave
blocks.targetsground = Lovește Artilerie
blocks.itemsmoved = Viteza de Mișcare a Materialelor
blocks.launchtime = Timp între Lansări
blocks.shootrange = Rază
blocks.size = Mărime
blocks.displaysize = Mărimea Monitorului Logic
blocks.liquidcapacity = Capacitate Lichid
blocks.powerrange = Raza Electrică
blocks.linkrange = Raza Legăturilor
blocks.instructions = Instrucțiuni
blocks.powerconnections = Maxim Conexiuni
blocks.poweruse = Consum Electricitate
blocks.powerdamage = Electricitate/Forța Glonțului
blocks.itemcapacity = Capacitate Materiale
blocks.memorycapacity = Capacitate Memorie
blocks.basepowergeneration = Generare Electricitate (Bază)
blocks.productiontime = Timp Producție
blocks.repairtime = Durata Reparării Blocului
blocks.speedincrease = Creștere Viteză
blocks.range = Rază
blocks.drilltier = Minabile
blocks.drillspeed = Viteză Burghiu (Bază)
blocks.boosteffect = Efect de Boost
blocks.maxunits = Maxim Unități Active
blocks.health = Viață
blocks.buildtime = Timp Construcție
blocks.maxconsecutive = Maxim Consecutive
blocks.buildcost = Cost Construcție
blocks.inaccuracy = Inacuratețe
blocks.shots = Lovituri
blocks.reload = Lovituri/Secundă
blocks.ammo = Muniție
blocks.shieldhealth = Viața Scutului
blocks.cooldowntime = Timp de Reîncărcare
stat.powercapacity = Capacitate electrică
stat.powershot = Electricitate/Glonț
stat.damage = Forță
stat.targetsair = Lovește Aeronave
stat.targetsground = Lovește Artilerie
stat.itemsmoved = Viteza de Mișcare a Materialelor
stat.launchtime = Timp între Lansări
stat.shootrange = Rază
stat.size = Mărime
stat.displaysize = Mărimea Monitorului Logic
stat.liquidcapacity = Capacitate Lichid
stat.powerrange = Raza Electrică
stat.linkrange = Raza Legăturilor
stat.instructions = Instrucțiuni
stat.powerconnections = Maxim Conexiuni
stat.poweruse = Consum Electricitate
stat.powerdamage = Electricitate/Forța Glonțului
stat.itemcapacity = Capacitate Materiale
stat.memorycapacity = Capacitate Memorie
stat.basepowergeneration = Generare Electricitate (Bază)
stat.productiontime = Timp Producție
stat.repairtime = Durata Reparării Blocului
stat.speedincrease = Creștere Viteză
stat.range = Rază
stat.drilltier = Minabile
stat.drillspeed = Viteză Burghiu (Bază)
stat.boosteffect = Efect de Boost
stat.maxunits = Maxim Unități Active
stat.health = Viață
stat.buildtime = Timp Construcție
stat.maxconsecutive = Maxim Consecutive
stat.buildcost = Cost Construcție
stat.inaccuracy = Inacuratețe
stat.shots = Lovituri
stat.reload = Lovituri/Secundă
stat.ammo = Muniție
stat.shieldhealth = Viața Scutului
stat.cooldowntime = Timp de Reîncărcare
bar.drilltierreq = Burghiu Mai Bun Necesar
bar.noresources = Resurse lipsă
@@ -1311,4 +1311,4 @@ block.cyclone.description = O mare armă anti-artilerie și anti-aer. Trage cu g
block.spectre.description = O armă masivă cu două țevi. Trage cu gloanțe mari care găuresc armurile țintelor aeriene și artileriei.
block.meltdown.description = O armă cu laser masivă. Trage cu un laser continuu la inamicii din apropiere. Necesită răcitor pt a opera.
block.repair-point.description = Repară încontinuu cea mai deteriorată unitate din vecinătate.
block.segment.description = Deteriorează și distruge proiectilele din apropiere. Laserele nu sunt afectate.
block.segment.description = Deteriorează și distruge proiectilele din apropiere. Laserele nu sunt afectate.

View File

@@ -576,50 +576,50 @@ error.title = [scarlet]Произошла ошибка
error.crashtitle = Произошла ошибка
unit.nobuild = [scarlet]Боевая единица не может строить
lastaccessed = [lightgray]Последняя конфигурация от {0}
blocks.input = Вход
blocks.output = Выход
blocks.booster = Ускоритель
blocks.tiles = Необходимые плитки
blocks.affinities = Увеличение эффективности
stat.input = Вход
stat.output = Выход
stat.booster = Ускоритель
stat.tiles = Необходимые плитки
stat.affinities = Увеличение эффективности
block.unknown = [lightgray]???
blocks.powercapacity = Вместимость энергии
blocks.powershot = Энергия/Выстрел
blocks.damage = Урон
blocks.targetsair = Воздушные цели
blocks.targetsground = Наземные цели
blocks.itemsmoved = Скорость перемещения
blocks.launchtime = Интервал запусков
blocks.shootrange = Радиус действия
blocks.size = Размер
blocks.displaysize = Размер дисплея
blocks.liquidcapacity = Вместимость жидкости
blocks.powerrange = Дальность передачи энергии
blocks.linkrange = Дальность связи
blocks.instructions = Инструкции
blocks.powerconnections = Количество соединений
blocks.poweruse = Потребляет энергии
blocks.powerdamage = Энергия/урон
blocks.itemcapacity = Вместимость предметов
blocks.memorycapacity = Размер памяти
blocks.basepowergeneration = Базовая генерация энергии
blocks.productiontime = Время производства
blocks.repairtime = Время полной регенерации
blocks.speedincrease = Увеличение скорости
blocks.range = Радиус действия
blocks.drilltier = Бурит
blocks.drillspeed = Базовая скорость бурения
blocks.boosteffect = Ускоряющий эффект
blocks.maxunits = Максимальное количество активных единиц
blocks.health = Прочность
blocks.buildtime = Время строительства
blocks.maxconsecutive = Макс. последовательность
blocks.buildcost = Стоимость строительства
blocks.inaccuracy = Разброс
blocks.shots = Выстрелы
blocks.reload = Выстрелы/секунду
blocks.ammo = Боеприпасы
blocks.shieldhealth = Прочность щита
blocks.cooldowntime = Время восстановления
stat.powercapacity = Вместимость энергии
stat.powershot = Энергия/Выстрел
stat.damage = Урон
stat.targetsair = Воздушные цели
stat.targetsground = Наземные цели
stat.itemsmoved = Скорость перемещения
stat.launchtime = Интервал запусков
stat.shootrange = Радиус действия
stat.size = Размер
stat.displaysize = Размер дисплея
stat.liquidcapacity = Вместимость жидкости
stat.powerrange = Дальность передачи энергии
stat.linkrange = Дальность связи
stat.instructions = Инструкции
stat.powerconnections = Количество соединений
stat.poweruse = Потребляет энергии
stat.powerdamage = Энергия/урон
stat.itemcapacity = Вместимость предметов
stat.memorycapacity = Размер памяти
stat.basepowergeneration = Базовая генерация энергии
stat.productiontime = Время производства
stat.repairtime = Время полной регенерации
stat.speedincrease = Увеличение скорости
stat.range = Радиус действия
stat.drilltier = Бурит
stat.drillspeed = Базовая скорость бурения
stat.boosteffect = Ускоряющий эффект
stat.maxunits = Максимальное количество активных единиц
stat.health = Прочность
stat.buildtime = Время строительства
stat.maxconsecutive = Макс. последовательность
stat.buildcost = Стоимость строительства
stat.inaccuracy = Разброс
stat.shots = Выстрелы
stat.reload = Выстрелы/секунду
stat.ammo = Боеприпасы
stat.shieldhealth = Прочность щита
stat.cooldowntime = Время восстановления
bar.drilltierreq = Требуется бур получше
bar.noresources = Недостаточно ресурсов
@@ -1321,5 +1321,4 @@ block.cyclone.description = Большая турель, которая може
block.spectre.description = Массивная двуствольная пушка. Стреляет крупными бронебойными снарядами по воздушным и наземным целям.
block.meltdown.description = Массивная лазерная пушка. Заряжает и стреляет постоянным лазерным лучом в ближайших врагов. Требуется охлаждающая жидкость для работы.
block.repair-point.description = Непрерывно лечит ближайшую поврежденную боевую единицу или мех в своём радиусе.
block.segment.description = Повреждает и разрушает приближающиеся снаряды. Не взаимодействует с лазерными лучами.
block.segment.description = Повреждает и разрушает приближающиеся снаряды. Не взаимодействует с лазерными лучами.

View File

@@ -570,49 +570,49 @@ info.title = Info
error.title = [crimson]An error has occured
error.crashtitle = An error has occured
unit.nobuild = [scarlet]Unit can't build
blocks.input = Inmatning
blocks.output = Utmatning
blocks.booster = Booster
blocks.tiles = Required Tiles
blocks.affinities = Affinities
stat.input = Inmatning
stat.output = Utmatning
stat.booster = Booster
stat.tiles = Required Tiles
stat.affinities = Affinities
block.unknown = [lightgray]???
blocks.powercapacity = Power Capacity
blocks.powershot = Power/Shot
blocks.damage = Skada
blocks.targetsair = Targets Air
blocks.targetsground = Targets Ground
blocks.itemsmoved = Move Speed
blocks.launchtime = Time Between Launches
blocks.shootrange = Range
blocks.size = Storlek
blocks.displaysize = Display Size
blocks.liquidcapacity = Liquid Capacity
blocks.powerrange = Power Range
blocks.linkrange = Link Range
blocks.instructions = Instructions
blocks.powerconnections = Max Connections
blocks.poweruse = Power Use
blocks.powerdamage = Power/Damage
blocks.itemcapacity = Item Capacity
blocks.basepowergeneration = Base Power Generation
blocks.productiontime = Production Time
blocks.repairtime = Block Full Repair Time
blocks.speedincrease = Speed Increase
blocks.range = Range
blocks.drilltier = Drillables
blocks.drillspeed = Base Drill Speed
blocks.boosteffect = Boost Effect
blocks.maxunits = Max Active Units
blocks.health = Health
blocks.buildtime = Build Time
blocks.maxconsecutive = Max Consecutive
blocks.buildcost = Build Cost
blocks.inaccuracy = Inaccuracy
blocks.shots = Skott
blocks.reload = Shots/Second
blocks.ammo = Ammunition
blocks.shieldhealth = Shield Health
blocks.cooldowntime = Cooldown Time
stat.powercapacity = Power Capacity
stat.powershot = Power/Shot
stat.damage = Skada
stat.targetsair = Targets Air
stat.targetsground = Targets Ground
stat.itemsmoved = Move Speed
stat.launchtime = Time Between Launches
stat.shootrange = Range
stat.size = Storlek
stat.displaysize = Display Size
stat.liquidcapacity = Liquid Capacity
stat.powerrange = Power Range
stat.linkrange = Link Range
stat.instructions = Instructions
stat.powerconnections = Max Connections
stat.poweruse = Power Use
stat.powerdamage = Power/Damage
stat.itemcapacity = Item Capacity
stat.basepowergeneration = Base Power Generation
stat.productiontime = Production Time
stat.repairtime = Block Full Repair Time
stat.speedincrease = Speed Increase
stat.range = Range
stat.drilltier = Drillables
stat.drillspeed = Base Drill Speed
stat.boosteffect = Boost Effect
stat.maxunits = Max Active Units
stat.health = Health
stat.buildtime = Build Time
stat.maxconsecutive = Max Consecutive
stat.buildcost = Build Cost
stat.inaccuracy = Inaccuracy
stat.shots = Skott
stat.reload = Shots/Second
stat.ammo = Ammunition
stat.shieldhealth = Shield Health
stat.cooldowntime = Cooldown Time
bar.drilltierreq = Bättre Borr Krävs
bar.noresources = Missing Resources
@@ -1302,4 +1302,4 @@ block.cyclone.description = A large anti-air and anti-ground turret. Fires explo
block.spectre.description = A massive dual-barreled cannon. Shoots large armor-piercing bullets at air and ground targets.
block.meltdown.description = A massive laser cannon. Charges and fires a persistent laser beam at nearby enemies. Requires coolant to operate.
block.repair-point.description = Continuously heals the closest damaged unit in its vicinity.
block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.

View File

@@ -570,49 +570,49 @@ info.title = ข้อมูล
error.title = [crimson]มีบางอย่างผิดพลาดเกิดขึ้น
error.crashtitle = มีบางอย่างผิดพลาดเกิดขึ้น
unit.nobuild = [scarlet]Unit can't build
blocks.input = นำเข้า
blocks.output = ส่งออก
blocks.booster = บูสเตอร์
blocks.tiles = Required Tiles
blocks.affinities = Affinities
stat.input = นำเข้า
stat.output = ส่งออก
stat.booster = บูสเตอร์
stat.tiles = Required Tiles
stat.affinities = Affinities
block.unknown = [lightgray]???
blocks.powercapacity = ความจุพลังงาน
blocks.powershot = หน่วยพลังงาน/นัด
blocks.damage = ดาเมจ
blocks.targetsair = ยิงอากาศยาน
blocks.targetsground = ยิงภาคพื้นดิน
blocks.itemsmoved = ความเร็วเคลื่อนที่
blocks.launchtime = เวลาระหว่างการส่ง
blocks.shootrange = ระยะยิง
blocks.size = ขนาด
blocks.displaysize = Display Size
blocks.liquidcapacity = จุของเหลว
blocks.powerrange = ระยะพลังงาน
blocks.linkrange = Link Range
blocks.instructions = Instructions
blocks.powerconnections = จำนวนการเชื่อมต่อสูงสุด
blocks.poweruse = ใช้พลังงาน
blocks.powerdamage = หน่วยพลังงาน/ดาเมจ
blocks.itemcapacity = จุไอเท็ม
blocks.basepowergeneration = กำเนิดพลังงานพื้นฐาน
blocks.productiontime = เวลาที่ใช้ในการผลิต
blocks.repairtime = เวลาที่ใช้ในการซ่อมแซมให้สมบูรณ์
blocks.speedincrease = เพิ่มความเร็ว
blocks.range = ระยะ
blocks.drilltier = ขุดได้
blocks.drillspeed = ความเร็วขุดพื้นฐาน
blocks.boosteffect = แอฟเฟ็คของบูสต์
blocks.maxunits = จำนวนยูนิตสูงสุด
blocks.health = เลือด
blocks.buildtime = เวลาในการสร้าง
blocks.maxconsecutive = Max Consecutive
blocks.buildcost = ใช้
blocks.inaccuracy = ความคลาดเคลื่อน
blocks.shots = นัด
blocks.reload = นัด/วินาที
blocks.ammo = กระสุน
blocks.shieldhealth = Shield Health
blocks.cooldowntime = Cooldown Time
stat.powercapacity = ความจุพลังงาน
stat.powershot = หน่วยพลังงาน/นัด
stat.damage = ดาเมจ
stat.targetsair = ยิงอากาศยาน
stat.targetsground = ยิงภาคพื้นดิน
stat.itemsmoved = ความเร็วเคลื่อนที่
stat.launchtime = เวลาระหว่างการส่ง
stat.shootrange = ระยะยิง
stat.size = ขนาด
stat.displaysize = Display Size
stat.liquidcapacity = จุของเหลว
stat.powerrange = ระยะพลังงาน
stat.linkrange = Link Range
stat.instructions = Instructions
stat.powerconnections = จำนวนการเชื่อมต่อสูงสุด
stat.poweruse = ใช้พลังงาน
stat.powerdamage = หน่วยพลังงาน/ดาเมจ
stat.itemcapacity = จุไอเท็ม
stat.basepowergeneration = กำเนิดพลังงานพื้นฐาน
stat.productiontime = เวลาที่ใช้ในการผลิต
stat.repairtime = เวลาที่ใช้ในการซ่อมแซมให้สมบูรณ์
stat.speedincrease = เพิ่มความเร็ว
stat.range = ระยะ
stat.drilltier = ขุดได้
stat.drillspeed = ความเร็วขุดพื้นฐาน
stat.boosteffect = แอฟเฟ็คของบูสต์
stat.maxunits = จำนวนยูนิตสูงสุด
stat.health = เลือด
stat.buildtime = เวลาในการสร้าง
stat.maxconsecutive = Max Consecutive
stat.buildcost = ใช้
stat.inaccuracy = ความคลาดเคลื่อน
stat.shots = นัด
stat.reload = นัด/วินาที
stat.ammo = กระสุน
stat.shieldhealth = Shield Health
stat.cooldowntime = Cooldown Time
bar.drilltierreq = จำเป็นต้องใช้เครื่องขุดที่ดีกว่า
bar.noresources = Missing Resources
@@ -1302,4 +1302,4 @@ block.cyclone.description = ป้อมปืนต่อต้านอาก
block.spectre.description = ปืนใหญ่ลำกล้องคูขนาดยักษ์. ยิงกระสุนเจาะเกราะใส่ศัตรูทั้งบนอากาศและภาดพื้นดิน.
block.meltdown.description = ปืนใหญ่เลเซอร์ขนาดยักษ์. ชาร์จแล้วยิงลำแสงเลเซอร์ใส่ศัตรูที่อยู่ใกล้. จำเป็นต้องใช้สารหล่อเย็น.
block.repair-point.description = ซ่อมแซมยูนิตที่อยู่ในรัศมีอย่างต่อเนื่อง.
block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.

View File

@@ -570,49 +570,49 @@ info.title = [accent]Bilgi
error.title = [crimson]Bir hata olustu
error.crashtitle = Bir hata olustu
unit.nobuild = [scarlet]Unit can't build
blocks.input = Input
blocks.output = Output
blocks.booster = Booster
blocks.tiles = Required Tiles
blocks.affinities = Affinities
stat.input = Input
stat.output = Output
stat.booster = Booster
stat.tiles = Required Tiles
stat.affinities = Affinities
block.unknown = [lightgray]???
blocks.powercapacity = Guc kapasitesi
blocks.powershot = Guc/Saldiri hizi
blocks.damage = Damage
blocks.targetsair = Havayi hedef alir mi?
blocks.targetsground = Targets Ground
blocks.itemsmoved = Move Speed
blocks.launchtime = Time Between Launches
blocks.shootrange = Menzil
blocks.size = Buyukluk
blocks.displaysize = Display Size
blocks.liquidcapacity = Sivi kapasitesi
blocks.powerrange = Menzil
blocks.linkrange = Link Range
blocks.instructions = Instructions
blocks.powerconnections = Max Connections
blocks.poweruse = Guc kullanimi
blocks.powerdamage = Power/Damage
blocks.itemcapacity = Esya kapasitesi
blocks.basepowergeneration = Base Power Generation
blocks.productiontime = Production Time
blocks.repairtime = Block Full Repair Time
blocks.speedincrease = Speed Increase
blocks.range = Range
blocks.drilltier = Kazilabilirler
blocks.drillspeed = Ana kazma hizi
blocks.boosteffect = Boost Effect
blocks.maxunits = Max Active Units
blocks.health = Can
blocks.buildtime = Build Time
blocks.maxconsecutive = Max Consecutive
blocks.buildcost = Build Cost
blocks.inaccuracy = sekme
blocks.shots = vuruslar
blocks.reload = Yeniden doldurma
blocks.ammo = Ammo
blocks.shieldhealth = Shield Health
blocks.cooldowntime = Cooldown Time
stat.powercapacity = Guc kapasitesi
stat.powershot = Guc/Saldiri hizi
stat.damage = Damage
stat.targetsair = Havayi hedef alir mi?
stat.targetsground = Targets Ground
stat.itemsmoved = Move Speed
stat.launchtime = Time Between Launches
stat.shootrange = Menzil
stat.size = Buyukluk
stat.displaysize = Display Size
stat.liquidcapacity = Sivi kapasitesi
stat.powerrange = Menzil
stat.linkrange = Link Range
stat.instructions = Instructions
stat.powerconnections = Max Connections
stat.poweruse = Guc kullanimi
stat.powerdamage = Power/Damage
stat.itemcapacity = Esya kapasitesi
stat.basepowergeneration = Base Power Generation
stat.productiontime = Production Time
stat.repairtime = Block Full Repair Time
stat.speedincrease = Speed Increase
stat.range = Range
stat.drilltier = Kazilabilirler
stat.drillspeed = Ana kazma hizi
stat.boosteffect = Boost Effect
stat.maxunits = Max Active Units
stat.health = Can
stat.buildtime = Build Time
stat.maxconsecutive = Max Consecutive
stat.buildcost = Build Cost
stat.inaccuracy = sekme
stat.shots = vuruslar
stat.reload = Yeniden doldurma
stat.ammo = Ammo
stat.shieldhealth = Shield Health
stat.cooldowntime = Cooldown Time
bar.drilltierreq = Better Drill Required
bar.noresources = Missing Resources
@@ -1302,4 +1302,4 @@ block.cyclone.description = A large rapid fire turret.
block.spectre.description = A large turret which shoots two powerful bullets at once.
block.meltdown.description = A large turret which shoots powerful long-range beams.
block.repair-point.description = Continuously heals the closest damaged unit in its vicinity.
block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.

View File

@@ -570,49 +570,49 @@ info.title = Bilgi
error.title = [crimson]Bir hata oldu
error.crashtitle = Bir hata oldu
unit.nobuild = [scarlet]Unit can't build
blocks.input = Giriş
blocks.output = Çıkış
blocks.booster = Güçlendirici
blocks.tiles = Required Tiles
blocks.affinities = Affinities
stat.input = Giriş
stat.output = Çıkış
stat.booster = Güçlendirici
stat.tiles = Required Tiles
stat.affinities = Affinities
block.unknown = [lightgray]???
blocks.powercapacity = Enerji Kapasitesi
blocks.powershot = Enerji/Atış
blocks.damage = Hasar
blocks.targetsair = Havayı Hedefler Mi
blocks.targetsground = Yeri Hedefler Mi
blocks.itemsmoved = Hareket Hızı
blocks.launchtime = Fırlatmalar Arasındaki Süre
blocks.shootrange = Menzil
blocks.size = Boyut
blocks.displaysize = Display Size
blocks.liquidcapacity = Sıvı Kapasitesi
blocks.powerrange = Enerji Menzili
blocks.linkrange = Link Range
blocks.instructions = Instructions
blocks.powerconnections = Bağlantı sayısı
blocks.poweruse = Enerji Kullanımı
blocks.powerdamage = Enerji/Hasar
blocks.itemcapacity = Eşya Kapasitesi
blocks.basepowergeneration = Temel Enerji Üretimi
blocks.productiontime = Üretim Süresi
blocks.repairtime = Tamir Tamir Edilme Süresi
blocks.speedincrease = Hız Artışı
blocks.range = Menzil
blocks.drilltier = Kazılabilenler
blocks.drillspeed = Temel Matkap Hızı
blocks.boosteffect = Hızlandırma Efekti
blocks.maxunits = Maksimum Aktif Birim
blocks.health = Can
blocks.buildtime = İnşaat Süresi
blocks.maxconsecutive = Max Consecutive
blocks.buildcost = İnşaat Fiyatı
blocks.inaccuracy = İskalama Oranı
blocks.shots = Atışlar
blocks.reload = Atışlar/Sn
blocks.ammo = Mermi
blocks.shieldhealth = Shield Health
blocks.cooldowntime = Cooldown Time
stat.powercapacity = Enerji Kapasitesi
stat.powershot = Enerji/Atış
stat.damage = Hasar
stat.targetsair = Havayı Hedefler Mi
stat.targetsground = Yeri Hedefler Mi
stat.itemsmoved = Hareket Hızı
stat.launchtime = Fırlatmalar Arasındaki Süre
stat.shootrange = Menzil
stat.size = Boyut
stat.displaysize = Display Size
stat.liquidcapacity = Sıvı Kapasitesi
stat.powerrange = Enerji Menzili
stat.linkrange = Link Range
stat.instructions = Instructions
stat.powerconnections = Bağlantı sayısı
stat.poweruse = Enerji Kullanımı
stat.powerdamage = Enerji/Hasar
stat.itemcapacity = Eşya Kapasitesi
stat.basepowergeneration = Temel Enerji Üretimi
stat.productiontime = Üretim Süresi
stat.repairtime = Tamir Tamir Edilme Süresi
stat.speedincrease = Hız Artışı
stat.range = Menzil
stat.drilltier = Kazılabilenler
stat.drillspeed = Temel Matkap Hızı
stat.boosteffect = Hızlandırma Efekti
stat.maxunits = Maksimum Aktif Birim
stat.health = Can
stat.buildtime = İnşaat Süresi
stat.maxconsecutive = Max Consecutive
stat.buildcost = İnşaat Fiyatı
stat.inaccuracy = İskalama Oranı
stat.shots = Atışlar
stat.reload = Atışlar/Sn
stat.ammo = Mermi
stat.shieldhealth = Shield Health
stat.cooldowntime = Cooldown Time
bar.drilltierreq = Daha İyi Matkap Gerekli
bar.noresources = Missing Resources
@@ -1302,4 +1302,4 @@ block.cyclone.description = Büyük bir anti hava ve anti kara tareti. Yakının
block.spectre.description = Dev bir çift namlulu top. Hava ve kara birimlerine iri, zırh delici mermiler atar.
block.meltdown.description = Dev bir lazer topu. Yüklenip yakındaki düşmanlara uzun süreli lazer ışınları yollar. Çalışması için soğutucu gerekir.
block.repair-point.description = Kendisine en yakın hasarlı birimi tamir eder.
block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.

View File

@@ -565,50 +565,50 @@ info.title = Інформація
error.title = [crimson]Виникла помилка
error.crashtitle = Виникла помилка
unit.nobuild = [scarlet]Ця одиниця не може будувати
blocks.input = Ввід
blocks.output = Вивід
blocks.booster = Прискорювач
blocks.tiles = Необхідні плитки
blocks.affinities = Збільшення ефективності
stat.input = Ввід
stat.output = Вивід
stat.booster = Прискорювач
stat.tiles = Необхідні плитки
stat.affinities = Збільшення ефективності
block.unknown = [lightgray]???
blocks.powercapacity = Місткість енергії
blocks.powershot = Енергія за постріл
blocks.damage = Шкода
blocks.targetsair = Повітряні противники
blocks.targetsground = Наземні противники
blocks.itemsmoved = Швидкість переміщення
blocks.launchtime = Час між запусками
blocks.shootrange = Радіус дії
blocks.size = Розмір
blocks.displaysize = Розмір дисплею
blocks.liquidcapacity = Рідинна місткість
blocks.powerrange = Радіус передачі енергії
blocks.linkrange = Радіус з’єднання
blocks.instructions = Інструкції
blocks.powerconnections = Максимальна кількість з’єднань
blocks.poweruse = Енергії використовує
blocks.powerdamage = Енергії за од. шкоди
blocks.itemcapacity = Місткість предметів
blocks.memorycapacity = Ємність пам’яті
blocks.basepowergeneration = Базова генерація енергії
blocks.productiontime = Час виробництва
blocks.repairtime = Час повного відновлення блоку
blocks.speedincrease = Збільшення швидкості
blocks.range = Радіус дії
blocks.drilltier = Видобуває
blocks.drillspeed = Базова швидкість буріння
blocks.boosteffect = Прискорювальний ефект
blocks.maxunits = Максимальна кількість активних одиниць
blocks.health = Здоров’я
blocks.buildtime = Час будування
blocks.maxconsecutive = Максимальна послідовність
blocks.buildcost = Вартість будування
blocks.inaccuracy = Розкид
blocks.shots = Постріли
blocks.reload = Постріли/секунду
blocks.ammo = Боєприпаси
blocks.shieldhealth = Міцність щита
blocks.cooldowntime = Тривалість охолодження
stat.powercapacity = Місткість енергії
stat.powershot = Енергія за постріл
stat.damage = Шкода
stat.targetsair = Повітряні противники
stat.targetsground = Наземні противники
stat.itemsmoved = Швидкість переміщення
stat.launchtime = Час між запусками
stat.shootrange = Радіус дії
stat.size = Розмір
stat.displaysize = Розмір дисплею
stat.liquidcapacity = Рідинна місткість
stat.powerrange = Радіус передачі енергії
stat.linkrange = Радіус з’єднання
stat.instructions = Інструкції
stat.powerconnections = Максимальна кількість з’єднань
stat.poweruse = Енергії використовує
stat.powerdamage = Енергії за од. шкоди
stat.itemcapacity = Місткість предметів
stat.memorycapacity = Ємність пам’яті
stat.basepowergeneration = Базова генерація енергії
stat.productiontime = Час виробництва
stat.repairtime = Час повного відновлення блоку
stat.speedincrease = Збільшення швидкості
stat.range = Радіус дії
stat.drilltier = Видобуває
stat.drillspeed = Базова швидкість буріння
stat.boosteffect = Прискорювальний ефект
stat.maxunits = Максимальна кількість активних одиниць
stat.health = Здоров’я
stat.buildtime = Час будування
stat.maxconsecutive = Максимальна послідовність
stat.buildcost = Вартість будування
stat.inaccuracy = Розкид
stat.shots = Постріли
stat.reload = Постріли/секунду
stat.ammo = Боєприпаси
stat.shieldhealth = Міцність щита
stat.cooldowntime = Тривалість охолодження
bar.drilltierreq = Потребується кращий бур
bar.noresources = Бракує ресурсів
@@ -1300,4 +1300,4 @@ block.cyclone.description = Велика протиповітряна та пр
block.spectre.description = Масивна двоствольна гармата. Стріляє великими бронебійними кулями в повітряні та наземні цілі.
block.meltdown.description = Масивна лазерна гармата. Заряджає і стріляє лазерним променем у найближчих противників. Для роботи потрібен теплоносій.
block.repair-point.description = Безперервно ремонтує найближчу пошкоджену бойову одиницю.
block.segment.description = Пошкоджує та руйнує вхідні снаряди. Окрім лазерних.
block.segment.description = Пошкоджує та руйнує вхідні снаряди. Окрім лазерних.

View File

@@ -570,49 +570,49 @@ info.title = [accent]详情
error.title = [crimson]发生了一个错误
error.crashtitle = 发生了一个错误
unit.nobuild = [scarlet]单位未能建造
blocks.input = 输入
blocks.output = 输出
blocks.booster = 增强物品/液体
blocks.tiles = 所需地型
blocks.affinities = 相关
stat.input = 输入
stat.output = 输出
stat.booster = 增强物品/液体
stat.tiles = 所需地型
stat.affinities = 相关
block.unknown = [lightgray]???
blocks.powercapacity = 能量容量
blocks.powershot = 能量/发射
blocks.damage = 伤害
blocks.targetsair = 攻击空中单位
blocks.targetsground = 攻击地面单位
blocks.itemsmoved = 移动速度
blocks.launchtime = 发射间隔时间
blocks.shootrange = 范围
blocks.size = 尺寸
blocks.displaysize = 显示尺寸
blocks.liquidcapacity = 液体容量
blocks.powerrange = 能量范围
blocks.linkrange = 连接范围
blocks.instructions = 指令数量
blocks.powerconnections = 最多连接
blocks.poweruse = 使用能量
blocks.powerdamage = 功率/损伤
blocks.itemcapacity = 物品容量
blocks.basepowergeneration = 基础能源输出
blocks.productiontime = 生产时间
blocks.repairtime = 建筑完全修复时间
blocks.speedincrease = 提速
blocks.range = 范围
blocks.drilltier = 可钻探矿物
blocks.drillspeed = 基础钻探速度
blocks.boosteffect = 增强效果
blocks.maxunits = 最大单位数量
blocks.health = 生命值
blocks.buildtime = 建造时间
blocks.maxconsecutive = 最大连续
blocks.buildcost = 建造花费
blocks.inaccuracy = 误差
blocks.shots = 发射数
blocks.reload = 每秒发射数
blocks.ammo = 弹药
blocks.shieldhealth = 盾容
blocks.cooldowntime = 冷却时间
stat.powercapacity = 能量容量
stat.powershot = 能量/发射
stat.damage = 伤害
stat.targetsair = 攻击空中单位
stat.targetsground = 攻击地面单位
stat.itemsmoved = 移动速度
stat.launchtime = 发射间隔时间
stat.shootrange = 范围
stat.size = 尺寸
stat.displaysize = 显示尺寸
stat.liquidcapacity = 液体容量
stat.powerrange = 能量范围
stat.linkrange = 连接范围
stat.instructions = 指令数量
stat.powerconnections = 最多连接
stat.poweruse = 使用能量
stat.powerdamage = 功率/损伤
stat.itemcapacity = 物品容量
stat.basepowergeneration = 基础能源输出
stat.productiontime = 生产时间
stat.repairtime = 建筑完全修复时间
stat.speedincrease = 提速
stat.range = 范围
stat.drilltier = 可钻探矿物
stat.drillspeed = 基础钻探速度
stat.boosteffect = 增强效果
stat.maxunits = 最大单位数量
stat.health = 生命值
stat.buildtime = 建造时间
stat.maxconsecutive = 最大连续
stat.buildcost = 建造花费
stat.inaccuracy = 误差
stat.shots = 发射数
stat.reload = 每秒发射数
stat.ammo = 弹药
stat.shieldhealth = 盾容
stat.cooldowntime = 冷却时间
bar.drilltierreq = 需要更好的钻头
bar.noresources = 缺失资源
@@ -1302,4 +1302,4 @@ block.cyclone.description = 大型炮塔,对空对地,发射在敌人周围
block.spectre.description = 超大型炮塔,对空对地,一次射出两颗强大的破甲弹。
block.meltdown.description = 超大型激光炮塔,充能之后持续发射光束,需要冷却剂。
block.repair-point.description = 持续治疗其附近受损最严重的单位。
block.segment.description = 摧毁袭来的除激光以外的子弹或导弹.
block.segment.description = 摧毁袭来的除激光以外的子弹或导弹.

View File

@@ -570,49 +570,49 @@ info.title = 資訊
error.title = [crimson]發生錯誤
error.crashtitle = 發生錯誤
unit.nobuild = [scarlet]單位不能建造
blocks.input = 輸入
blocks.output = 輸出
blocks.booster = 強化
blocks.tiles = 需求方塊
blocks.affinities = 親和方塊
stat.input = 輸入
stat.output = 輸出
stat.booster = 強化
stat.tiles = 需求方塊
stat.affinities = 親和方塊
block.unknown = [lightgray]
blocks.powercapacity = 蓄電量
blocks.powershot = 能量/射擊
blocks.damage = 傷害
blocks.targetsair = 攻擊空中目標
blocks.targetsground = 攻擊地面目標
blocks.itemsmoved = 移動速度
blocks.launchtime = 發射間隔
blocks.shootrange = 範圍
blocks.size = 尺寸
blocks.displaysize = Display Size
blocks.liquidcapacity = 液體容量
blocks.powerrange = 輸出範圍
blocks.linkrange = Link Range
blocks.instructions = Instructions
blocks.powerconnections = 最大連接數
blocks.poweruse = 能量使用
blocks.powerdamage = 能量/傷害
blocks.itemcapacity = 物品容量
blocks.basepowergeneration = 基礎能量生產
blocks.productiontime = 生產時間
blocks.repairtime = 方塊完全修復時間
blocks.speedincrease = 速度提升
blocks.range = 範圍
blocks.drilltier = 可鑽取礦物
blocks.drillspeed = 基本鑽取速度
blocks.boosteffect = 提升效應
blocks.maxunits = 最大活躍單位
blocks.health = 耐久度
blocks.buildtime = 建設時間
blocks.maxconsecutive = Max Consecutive
blocks.buildcost = 建造成本
blocks.inaccuracy = 誤差
blocks.shots = 射擊數
blocks.reload = 射擊次數/秒
blocks.ammo = 彈藥
blocks.shieldhealth = Shield Health
blocks.cooldowntime = Cooldown Time
stat.powercapacity = 蓄電量
stat.powershot = 能量/射擊
stat.damage = 傷害
stat.targetsair = 攻擊空中目標
stat.targetsground = 攻擊地面目標
stat.itemsmoved = 移動速度
stat.launchtime = 發射間隔
stat.shootrange = 範圍
stat.size = 尺寸
stat.displaysize = Display Size
stat.liquidcapacity = 液體容量
stat.powerrange = 輸出範圍
stat.linkrange = Link Range
stat.instructions = Instructions
stat.powerconnections = 最大連接數
stat.poweruse = 能量使用
stat.powerdamage = 能量/傷害
stat.itemcapacity = 物品容量
stat.basepowergeneration = 基礎能量生產
stat.productiontime = 生產時間
stat.repairtime = 方塊完全修復時間
stat.speedincrease = 速度提升
stat.range = 範圍
stat.drilltier = 可鑽取礦物
stat.drillspeed = 基本鑽取速度
stat.boosteffect = 提升效應
stat.maxunits = 最大活躍單位
stat.health = 耐久度
stat.buildtime = 建設時間
stat.maxconsecutive = Max Consecutive
stat.buildcost = 建造成本
stat.inaccuracy = 誤差
stat.shots = 射擊數
stat.reload = 射擊次數/秒
stat.ammo = 彈藥
stat.shieldhealth = Shield Health
stat.cooldowntime = Cooldown Time
bar.drilltierreq = 需要更好的鑽頭
bar.noresources = Missing Resources
@@ -1302,4 +1302,4 @@ block.cyclone.description = 一種對空和對地的大型砲塔。向附近單
block.spectre.description = 一種雙炮管的巨型砲塔。向空中及地面敵人發射大型的穿甲彈。
block.meltdown.description = 一種巨型激光砲塔。充能並發射持續性的激光光束。需要冷卻液以運作。
block.repair-point.description = 持續治療附近最近的受損單位。
block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.

Binary file not shown.

View File

@@ -0,0 +1,9 @@
varying lowp vec4 v_color;
varying lowp vec4 v_mix_color;
varying vec2 v_texCoords;
uniform sampler2D u_texture;
void main(){
vec4 c = texture2D(u_texture, v_texCoords);
gl_FragColor = v_color * mix(c, vec4(v_mix_color.rgb, c.a), v_mix_color.a);
}

BIN
core/assets/sprites/fog.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

View File

@@ -72,6 +72,11 @@ public class BaseAI{
int wx = (int)(World.toTile(pos.getX()) + Tmp.v1.x), wy = (int)(World.toTile(pos.getY()) + Tmp.v1.y);
Tile tile = world.tiles.getc(wx, wy);
//try not to block the spawn point
if(spawner.getSpawns().contains(t -> t.within(tile, tilesize * 40f))){
continue;
}
Seq<BasePart> parts = null;
//pick a completely random base part, and place it a random location

View File

@@ -80,7 +80,7 @@ public class WaveSpawner{
Unit unit = group.createUnit(state.rules.waveTeam, state.wave - 1);
unit.set(spawnX + Tmp.v1.x, spawnY + Tmp.v1.y);
Time.run(Math.min(i * 5, 60 * 2), () -> spawnEffect(unit));
spawnEffect(unit);
}
});
}

View File

@@ -34,10 +34,10 @@ public class FlyingAI extends AIController{
Teamc result = target(x, y, range, air, ground);
if(result != null) return result;
if(ground) result = targetFlag(x, y, BlockFlag.producer, true);
if(ground) result = targetFlag(x, y, BlockFlag.generator, true);
if(result != null) return result;
if(ground) result = targetFlag(x, y, BlockFlag.turret, true);
if(ground) result = targetFlag(x, y, BlockFlag.core, true);
if(result != null) return result;
return null;

View File

@@ -14,6 +14,8 @@ import mindustry.world.blocks.*;
import mindustry.world.blocks.campaign.*;
import mindustry.world.blocks.defense.*;
import mindustry.world.blocks.defense.turrets.*;
import mindustry.world.blocks.defense.turrets.PointDefenseTurret;
import mindustry.world.blocks.defense.turrets.TractorBeamTurret;
import mindustry.world.blocks.distribution.*;
import mindustry.world.blocks.environment.*;
import mindustry.world.blocks.experimental.*;

View File

@@ -1293,6 +1293,14 @@ public class Fx{
});
}),
coreBurn = new Effect(23, e -> {
randLenVectors(e.id, 5, e.fin() * 9f, (x, y) -> {
float len = e.fout() * 4f;
color(Pal.accent, Color.gray, e.fin());
Fill.circle(e.x + x, e.y + y, len/2f);
});
}),
plasticburn = new Effect(40, e -> {
randLenVectors(e.id, 5, 3f + e.fin() * 5f, (x, y) -> {
color(Color.valueOf("e9ead3"), Color.gray, e.fin());

View File

@@ -10,6 +10,7 @@ import mindustry.entities.bullet.*;
import mindustry.gen.*;
import mindustry.graphics.*;
import mindustry.type.*;
import mindustry.world.meta.*;
import static mindustry.Vars.*;
@@ -897,6 +898,7 @@ public class UnitTypes implements ContentList{
range = 140f;
faceTarget = false;
armor = 4f;
targetFlag = BlockFlag.factory;
weapons.add(new Weapon(){{
minShootVelocity = 0.75f;
@@ -977,6 +979,7 @@ public class UnitTypes implements ContentList{
engineOffset = 21;
engineSize = 5.3f;
hitSize = 56f;
targetFlag = BlockFlag.battery;
BulletType missiles = new MissileBulletType(2.7f, 10){{
width = 8f;
@@ -1051,6 +1054,7 @@ public class UnitTypes implements ContentList{
hitSize = 58f;
destructibleWreck = false;
armor = 13f;
targetFlag = BlockFlag.reactor;
BulletType fragBullet = new FlakBulletType(4f, 5){{
shootEffect = Fx.shootBig;
@@ -1196,7 +1200,6 @@ public class UnitTypes implements ContentList{
mineTier = 3;
health = 500;
armor = 2f;
armor = 5f;
speed = 1.8f;
accel = 0.06f;
@@ -1246,6 +1249,7 @@ public class UnitTypes implements ContentList{
buildSpeed = 2.5f;
range = 140f;
targetAir = false;
targetFlag = BlockFlag.battery;
ammoType = AmmoTypes.powerHigh;
@@ -1650,11 +1654,11 @@ public class UnitTypes implements ContentList{
mineTier = 1;
buildSpeed = 0.5f;
drag = 0.05f;
speed = 2.8f;
speed = 3f;
rotateSpeed = 15f;
accel = 0.1f;
itemCapacity = 30;
health = 120f;
health = 150f;
engineOffset = 6f;
hitSize = 8f;
commandLimit = 3;
@@ -1665,13 +1669,13 @@ public class UnitTypes implements ContentList{
y = 1f;
top = false;
bullet = new BasicBulletType(2.5f, 9){{
bullet = new BasicBulletType(2.5f, 10){{
width = 7f;
height = 9f;
lifetime = 60f;
shootEffect = Fx.shootSmall;
smokeEffect = Fx.shootSmallSmoke;
tileDamageMultiplier = 0.09f;
tileDamageMultiplier = 0.03f;
}};
}});
}};
@@ -1685,11 +1689,11 @@ public class UnitTypes implements ContentList{
mineTier = 1;
buildSpeed = 0.75f;
drag = 0.05f;
speed = 3f;
speed = 3.3f;
rotateSpeed = 17f;
accel = 0.1f;
itemCapacity = 50;
health = 150f;
health = 170f;
engineOffset = 6f;
hitSize = 9f;
rotateShooting = false;
@@ -1706,13 +1710,13 @@ public class UnitTypes implements ContentList{
shotDelay = 4f;
spacing = 0f;
bullet = new BasicBulletType(3f, 9){{
bullet = new BasicBulletType(3f, 10){{
width = 7f;
height = 9f;
lifetime = 60f;
shootEffect = Fx.shootSmall;
smokeEffect = Fx.shootSmallSmoke;
tileDamageMultiplier = 0.1f;
tileDamageMultiplier = 0.03f;
}};
}});
}};
@@ -1726,11 +1730,11 @@ public class UnitTypes implements ContentList{
mineTier = 2;
buildSpeed = 1f;
drag = 0.05f;
speed = 3.5f;
speed = 3.55f;
rotateSpeed = 19f;
accel = 0.11f;
itemCapacity = 70;
health = 190f;
health = 220f;
engineOffset = 6f;
hitSize = 10f;
commandLimit = 7;
@@ -1745,13 +1749,13 @@ public class UnitTypes implements ContentList{
inaccuracy = 3f;
shotDelay = 3f;
bullet = new BasicBulletType(3.5f, 9){{
bullet = new BasicBulletType(3.5f, 10){{
width = 6.5f;
height = 11f;
lifetime = 70f;
shootEffect = Fx.shootSmall;
smokeEffect = Fx.shootSmallSmoke;
tileDamageMultiplier = 0.1f;
tileDamageMultiplier = 0.03f;
homingPower = 0.04f;
}};
}});

View File

@@ -1,339 +1,89 @@
package mindustry.content;
import arc.*;
import arc.graphics.*;
import arc.graphics.Texture.*;
import arc.graphics.g2d.*;
import arc.math.*;
import arc.util.*;
import mindustry.ctype.*;
import mindustry.gen.*;
import mindustry.type.*;
import mindustry.world.*;
import mindustry.type.weather.*;
import mindustry.world.meta.*;
import static mindustry.Vars.*;
public class Weathers implements ContentList{
public static Weather
rain,
snow,
sandstorm,
sporestorm;
sporestorm,
fog;
@Override
public void load(){
snow = new Weather("snow"){
TextureRegion region;
float yspeed = 2f, xspeed = 0.25f, padding = 16f, size = 12f, density = 1200f;
snow = new ParticleWeather("snow"){{
sizeMax = 13f;
sizeMin = 2.6f;
density = 1200f;
attrs.set(Attribute.light, -0.15f);
}};
{
attrs.set(Attribute.light, -0.15f);
}
rain = new RainWeather("rain"){{
attrs.set(Attribute.light, -0.2f);
attrs.set(Attribute.water, 0.2f);
status = StatusEffects.wet;
}};
@Override
public void load(){
super.load();
sandstorm = new ParticleWeather("sandstorm"){{
color = noiseColor = Color.valueOf("f7cba4");
drawNoise = true;
useWindVector = true;
sizeMax = 140f;
sizeMin = 70f;
minAlpha = 0f;
maxAlpha = 0.2f;
density = 1500f;
baseSpeed = 6.1f;
attrs.set(Attribute.light, -0.1f);
attrs.set(Attribute.water, -0.1f);
opacityMultiplier = 0.8f;
force = 0.1f;
}};
region = Core.atlas.find("circle-shadow");
}
sporestorm = new ParticleWeather("sporestorm"){{
color = noiseColor = Color.valueOf("7457ce");
particleRegion = "circle";
drawNoise = true;
statusGround = false;
useWindVector = true;
sizeMax = 5f;
sizeMin = 2.5f;
minAlpha = 0.1f;
maxAlpha = 0.8f;
density = 2000f;
baseSpeed = 4.3f;
attrs.set(Attribute.spores, 1f);
attrs.set(Attribute.light, -0.15f);
status = StatusEffects.sporeSlowed;
opacityMultiplier = 0.85f;
force = 0.1f;
}};
@Override
public void drawOver(WeatherState state){
rand.setSeed(0);
Tmp.r1.setCentered(Core.camera.position.x, Core.camera.position.y, Core.graphics.getWidth() / renderer.minScale(), Core.graphics.getHeight() / renderer.minScale());
Tmp.r1.grow(padding);
Core.camera.bounds(Tmp.r2);
int total = (int)(Tmp.r1.area() / density * state.intensity());
for(int i = 0; i < total; i++){
float scl = rand.random(0.5f, 1f);
float scl2 = rand.random(0.5f, 1f);
float sscl = rand.random(0.2f, 1f);
float x = (rand.random(0f, world.unitWidth()) + Time.time() * xspeed * scl2);
float y = (rand.random(0f, world.unitHeight()) - Time.time() * yspeed * scl);
x += Mathf.sin(y, rand.random(30f, 80f), rand.random(1f, 7f));
x -= Tmp.r1.x;
y -= Tmp.r1.y;
x = Mathf.mod(x, Tmp.r1.width);
y = Mathf.mod(y, Tmp.r1.height);
x += Tmp.r1.x;
y += Tmp.r1.y;
if(Tmp.r3.setCentered(x, y, size * sscl).overlaps(Tmp.r2)){
Draw.rect(region, x, y, size * sscl, size * sscl);
}
}
}
};
rain = new Weather("rain"){
float yspeed = 5f, xspeed = 1.5f, padding = 16f, size = 40f, density = 1200f;
TextureRegion[] splashes = new TextureRegion[12];
{
attrs.set(Attribute.light, -0.2f);
attrs.set(Attribute.water, 0.2f);
status = StatusEffects.wet;
}
@Override
public void load(){
super.load();
for(int i = 0; i < splashes.length; i++){
splashes[i] = Core.atlas.find("splash-" + i);
}
}
@Override
public void drawOver(WeatherState state){
Tmp.r1.setCentered(Core.camera.position.x, Core.camera.position.y, Core.graphics.getWidth() / renderer.minScale(), Core.graphics.getHeight() / renderer.minScale());
Tmp.r1.grow(padding);
Core.camera.bounds(Tmp.r2);
int total = (int)(Tmp.r1.area() / density * state.intensity());
Lines.stroke(0.75f);
float alpha = Draw.getColor().a;
Draw.color(Color.royal, Color.white, 0.3f);
for(int i = 0; i < total; i++){
float scl = rand.random(0.5f, 1f);
float scl2 = rand.random(0.5f, 1f);
float sscl = rand.random(0.2f, 1f);
float x = (rand.random(0f, world.unitWidth()) + Time.time() * xspeed * scl2);
float y = (rand.random(0f, world.unitHeight()) - Time.time() * yspeed * scl);
float tint = rand.random(1f) * alpha;
x -= Tmp.r1.x;
y -= Tmp.r1.y;
x = Mathf.mod(x, Tmp.r1.width);
y = Mathf.mod(y, Tmp.r1.height);
x += Tmp.r1.x;
y += Tmp.r1.y;
if(Tmp.r3.setCentered(x, y, size * sscl).overlaps(Tmp.r2)){
Draw.alpha(tint);
Lines.lineAngle(x, y, Angles.angle(xspeed * scl2, - yspeed * scl), size*sscl/2f);
}
}
}
@Override
public void drawUnder(WeatherState state){
Tmp.r1.setCentered(Core.camera.position.x, Core.camera.position.y, Core.graphics.getWidth() / renderer.minScale(), Core.graphics.getHeight() / renderer.minScale());
Tmp.r1.grow(padding);
Core.camera.bounds(Tmp.r2);
int total = (int)(Tmp.r1.area() / density * state.intensity()) / 2;
Lines.stroke(0.75f);
float t = Time.time() / 22f;
for(int i = 0; i < total; i++){
float offset = rand.random(0f, 1f);
float time = t + offset;
int pos = (int)((time));
float life = time % 1f;
float x = (rand.random(0f, world.unitWidth()) + pos*953);
float y = (rand.random(0f, world.unitHeight()) - pos*453);
x -= Tmp.r1.x;
y -= Tmp.r1.y;
x = Mathf.mod(x, Tmp.r1.width);
y = Mathf.mod(y, Tmp.r1.height);
x += Tmp.r1.x;
y += Tmp.r1.y;
if(Tmp.r3.setCentered(x, y, life * 4f).overlaps(Tmp.r2)){
Tile tile = world.tileWorld(x, y);
if(tile != null && tile.floor().liquidDrop == Liquids.water){
Draw.color(Tmp.c1.set(tile.floor().mapColor).mul(1.5f).a(state.opacity()));
Draw.rect(splashes[(int)(life * (splashes.length - 1))], x, y);
}else if(tile != null && tile.floor().liquidDrop == null && !tile.floor().solid){
Draw.color(Color.royal, Color.white, 0.3f);
Draw.alpha(Mathf.slope(life) * state.opacity());
float space = 45f;
for(int j : new int[]{-1, 1}){
Tmp.v1.trns(90f + j*space, 1f + 5f * life);
Lines.lineAngle(x + Tmp.v1.x, y + Tmp.v1.y, 90f + j*space, 3f * (1f - life));
}
}
}
}
}
};
sandstorm = new Weather("sandstorm"){
TextureRegion region;
float size = 140f, padding = size, invDensity = 1500f, baseSpeed = 6.1f;
float force = 0.4f * 0;
Color color = Color.valueOf("f7cba4");
Texture noise;
{
attrs.set(Attribute.light, -0.1f);
opacityMultiplier = 0.8f;
}
@Override
public void load(){
region = Core.atlas.find("circle-shadow");
noise = new Texture("sprites/noiseAlpha.png");
noise.setWrap(TextureWrap.repeat);
noise.setFilter(TextureFilter.linear);
}
@Override
public void dispose(){
noise.dispose();
}
@Override
public void update(WeatherState state){
float speed = force * state.intensity;
float windx = state.windVector.x * speed, windy = state.windVector.y * speed;
for(Unit unit : Groups.unit){
unit.impulse(windx, windy);
}
}
@Override
public void drawOver(WeatherState state){
Draw.tint(color);
float speed = baseSpeed * state.intensity;
float windx = state.windVector.x * speed, windy = state.windVector.y * speed;
float scale = 1f / 2000f;
float scroll = Time.time() * scale;
Tmp.tr1.texture = noise;
Core.camera.bounds(Tmp.r1);
Tmp.tr1.set(Tmp.r1.x*scale, Tmp.r1.y*scale, (Tmp.r1.x + Tmp.r1.width)*scale, (Tmp.r1.y + Tmp.r1.height)*scale);
Tmp.tr1.scroll(-windx * scroll, windy * scroll);
Draw.rect(Tmp.tr1, Core.camera.position.x, Core.camera.position.y, Core.camera.width, -Core.camera.height);
rand.setSeed(0);
Tmp.r1.setCentered(Core.camera.position.x, Core.camera.position.y, Core.graphics.getWidth() / renderer.minScale(), Core.graphics.getHeight() / renderer.minScale());
Tmp.r1.grow(padding);
Core.camera.bounds(Tmp.r2);
int total = (int)(Tmp.r1.area() / invDensity * state.intensity());
Draw.tint(color);
float baseAlpha = Draw.getColor().a;
for(int i = 0; i < total; i++){
float scl = rand.random(0.5f, 1f);
float scl2 = rand.random(0.5f, 1f);
float sscl = rand.random(0.5f, 1f);
float x = (rand.random(0f, world.unitWidth()) + Time.time() * windx * scl2);
float y = (rand.random(0f, world.unitHeight()) + Time.time() * windy * scl);
float alpha = rand.random(0.2f);
x += Mathf.sin(y, rand.random(30f, 80f), rand.random(1f, 7f));
x -= Tmp.r1.x;
y -= Tmp.r1.y;
x = Mathf.mod(x, Tmp.r1.width);
y = Mathf.mod(y, Tmp.r1.height);
x += Tmp.r1.x;
y += Tmp.r1.y;
if(Tmp.r3.setCentered(x, y, size * sscl).overlaps(Tmp.r2)){
Draw.alpha(alpha * baseAlpha);
Draw.rect(region, x, y, size * sscl, size * sscl);
}
}
}
};
sporestorm = new Weather("sporestorm"){
TextureRegion region;
float size = 5f, padding = size, invDensity = 2000f, baseSpeed = 4.3f, force = 0.28f * 0;
Color color = Color.valueOf("7457ce");
Texture noise;
{
attrs.set(Attribute.spores, 1f);
attrs.set(Attribute.light, -0.15f);
status = StatusEffects.sporeSlowed;
statusGround = false;
opacityMultiplier = 0.85f;
}
@Override
public void load(){
region = Core.atlas.find("circle-shadow");
noise = new Texture("sprites/noiseAlpha.png");
noise.setWrap(TextureWrap.repeat);
noise.setFilter(TextureFilter.linear);
}
@Override
public void update(WeatherState state){
float speed = force * state.intensity;
float windx = state.windVector.x * speed, windy = state.windVector.y * speed;
for(Unit unit : Groups.unit){
unit.impulse(windx, windy);
}
}
@Override
public void dispose(){
noise.dispose();
}
@Override
public void drawOver(WeatherState state){
Draw.alpha(state.opacity * 0.8f);
Draw.tint(color);
float speed = baseSpeed * state.intensity;
float windx = state.windVector.x * speed, windy = state.windVector.y * speed;
float scale = 1f / 2000f;
float scroll = Time.time() * scale;
Tmp.tr1.texture = noise;
Core.camera.bounds(Tmp.r1);
Tmp.tr1.set(Tmp.r1.x*scale, Tmp.r1.y*scale, (Tmp.r1.x + Tmp.r1.width)*scale, (Tmp.r1.y + Tmp.r1.height)*scale);
Tmp.tr1.scroll(-windx * scroll, windy * scroll);
Draw.rect(Tmp.tr1, Core.camera.position.x, Core.camera.position.y, Core.camera.width, -Core.camera.height);
rand.setSeed(0);
Tmp.r1.setCentered(Core.camera.position.x, Core.camera.position.y, Core.graphics.getWidth() / renderer.minScale(), Core.graphics.getHeight() / renderer.minScale());
Tmp.r1.grow(padding);
Core.camera.bounds(Tmp.r2);
int total = (int)(Tmp.r1.area() / invDensity * state.intensity());
Draw.tint(color);
float baseAlpha = state.opacity;
Draw.alpha(baseAlpha);
for(int i = 0; i < total; i++){
float scl = rand.random(0.5f, 1f);
float scl2 = rand.random(0.5f, 1f);
float sscl = rand.random(0.5f, 1f);
float x = (rand.random(0f, world.unitWidth()) + Time.time() * windx * scl2);
float y = (rand.random(0f, world.unitHeight()) + Time.time() * windy * scl);
float alpha = rand.random(0.1f, 0.8f);
x += Mathf.sin(y, rand.random(30f, 80f), rand.random(1f, 7f));
x -= Tmp.r1.x;
y -= Tmp.r1.y;
x = Mathf.mod(x, Tmp.r1.width);
y = Mathf.mod(y, Tmp.r1.height);
x += Tmp.r1.x;
y += Tmp.r1.y;
if(Tmp.r3.setCentered(x, y, size * sscl).overlaps(Tmp.r2)){
Draw.alpha(alpha * baseAlpha);
Fill.circle(x, y, size * sscl / 2f);
}
}
}
};
fog = new ParticleWeather("fog"){{
duration = 15f * Time.toMinutes;
noiseLayers = 3;
noiseLayerSclM = 0.8f;
noiseLayerAlphaM = 0.7f;
noiseLayerSpeedM = 2f;
noiseLayerSclM = 0.6f;
baseSpeed = 0.05f;
color = noiseColor = Color.grays(0.4f);
noiseScale = 1100f;
noisePath = "fog";
drawParticles = false;
drawNoise = true;
useWindVector = false;
xspeed = 1f;
yspeed = 0.01f;
attrs.set(Attribute.light, -0.3f);
attrs.set(Attribute.water, 0.05f);
opacityMultiplier = 0.45f;
}};
}
}

View File

@@ -23,7 +23,7 @@ public class GameState{
/** The current game rules. */
public Rules rules = new Rules();
/** Statistics for this save/game. Displayed after game over. */
public Stats stats = new Stats();
public GameStats stats = new GameStats();
/** Global attributes of the environment, calculated by weather. */
public Attributes envAttrs = new Attributes();
/** Sector information. Only valid in the campaign. */

View File

@@ -310,7 +310,7 @@ public class World{
//TODO bad code
boolean hasSnow = floors[0].name.contains("ice") || floors[0].name.contains("snow");
boolean hasRain = !hasSnow && floors[0].name.contains("water");
boolean hasRain = !hasSnow && content.contains(Liquids.water) && !floors[0].name.contains("sand");
boolean hasDesert = !hasSnow && !hasRain && floors[0].name.contains("sand");
boolean hasSpores = floors[0].name.contains("spore") || floors[0].name.contains("moss") || floors[0].name.contains("tainted");
@@ -320,6 +320,7 @@ public class World{
if(hasRain){
state.rules.weather.add(new WeatherEntry(Weathers.rain));
state.rules.weather.add(new WeatherEntry(Weathers.fog));
}
if(hasDesert){

View File

@@ -10,11 +10,14 @@ import mindustry.game.EventType.*;
import mindustry.graphics.*;
import mindustry.type.*;
import mindustry.ui.*;
import mindustry.world.meta.*;
import static mindustry.Vars.*;
/** Base interface for an unlockable content type. */
public abstract class UnlockableContent extends MappableContent{
/** Stat storage for this content. Initialized on demand. */
public Stats stats = new Stats();
/** Localized, formal name. Never null. Set to internal name if not found in bundle. */
public String localizedName;
/** Localized description. May be null. */
@@ -38,6 +41,18 @@ public abstract class UnlockableContent extends MappableContent{
return minfo.mod == null ? description : description + "\n" + Core.bundle.format("mod.display", minfo.mod.meta.displayName());
}
/** Checks stat initialization state. Call before displaying stats. */
public void checkStats(){
if(!stats.intialized){
setStats();
stats.intialized = true;
}
}
/** Intializes stats on demand. Should only be called once. Only called before something is displayed. */
public void setStats(){
}
/** Generate any special icons for this content. Called asynchronously.*/
@CallSuper
public void createIcons(MultiPacker packer){
@@ -73,7 +88,9 @@ public abstract class UnlockableContent extends MappableContent{
}
/** This should show all necessary info about this content in the specified table. */
public abstract void displayInfo(Table table);
public void display(Table table){
}
/** Called when this content is unlocked. Use this to unlock other related content. */
public void onUnlock(){

View File

@@ -98,7 +98,7 @@ abstract class PuddleComp implements Posc, Puddlec, Drawc{
boolean onLiquid = tile.floor().isLiquid;
float f = Mathf.clamp(amount / (maxLiquid / 1.5f));
float smag = onLiquid ? 0.8f : 0f;
float sscl = 20f;
float sscl = 25f;
Draw.color(tmp.set(liquid.color).shiftValue(-0.05f));
Fill.circle(x + Mathf.sin(Time.time() + seeds * 532, sscl, smag), y + Mathf.sin(Time.time() + seeds * 53, sscl, smag), f * 8f);

View File

@@ -89,7 +89,7 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I
case rotation -> rotation;
case health -> health;
case maxHealth -> maxHealth;
case ammo -> state.rules.unitAmmo ? type.ammoCapacity : ammo;
case ammo -> !state.rules.unitAmmo ? type.ammoCapacity : ammo;
case ammoCapacity -> type.ammoCapacity;
case x -> World.conv(x);
case y -> World.conv(y);

View File

@@ -6,7 +6,7 @@ import mindustry.type.*;
//TODO more stats:
//- units constructed
public class Stats{
public class GameStats{
/** Total items delivered to global resoure counter. Campaign only. */
public ObjectIntMap<Item> itemsDelivered = new ObjectIntMap<>();
/** Enemy (red team) units destroyed. */

View File

@@ -187,7 +187,7 @@ public class Universe{
}
//add production, making sure that it's capped
sector.info.production.each((item, stat) -> sector.info.items.add(item, Math.min((int)(stat.mean * seconds * scl), sector.info.storageCapacity - sector.info.items.get(item))));
sector.info.production.each((item, stat) -> sector.info.items.add(item, Math.min((int)(stat.mean * newSecondsPassed * scl), sector.info.storageCapacity - sector.info.items.get(item))));
sector.saveInfo();
}

View File

@@ -352,6 +352,8 @@ public class DesktopInput extends InputHandler{
table.button(Icon.map, Styles.clearPartiali, () -> {
ui.planet.show();
}).visible(() -> state.isCampaign()).tooltip("@planetmap");
table.add();
}
void pollInput(){

View File

@@ -105,7 +105,7 @@ public abstract class SaveVersion extends SaveFileReader{
state.wave = map.getInt("wave");
state.wavetime = map.getFloat("wavetime", state.rules.waveSpacing);
state.stats = JsonIO.read(Stats.class, map.get("stats", "{}"));
state.stats = JsonIO.read(GameStats.class, map.get("stats", "{}"));
state.rules = JsonIO.read(Rules.class, map.get("rules", "{}"));
if(state.rules.spawns.isEmpty()) state.rules.spawns = defaultWaves.get();
lastReadBuild = map.getInt("build", -1);

View File

@@ -190,6 +190,7 @@ public class ContentParser{
"mindustry.world.blocks.defense",
"mindustry.world.blocks.defense.turrets",
"mindustry.world.blocks.distribution",
"mindustry.world.blocks.environment",
"mindustry.world.blocks.liquid",
"mindustry.world.blocks.logic",
"mindustry.world.blocks.power",
@@ -302,6 +303,20 @@ public class ContentParser{
return unit;
},
ContentType.weather, (TypeParser<Weather>)(mod, name, value) -> {
Weather item;
if(locate(ContentType.weather, name) != null){
item = locate(ContentType.weather, name);
readBundle(ContentType.weather, name, value);
}else{
readBundle(ContentType.weather, name, value);
Class<? extends Weather> type = resolve(getType(value), "mindustry.type.weather");
item = make(type);
}
currentContent = item;
read(() -> readFields(item, value));
return item;
},
ContentType.item, parser(ContentType.item, Item::new),
ContentType.liquid, parser(ContentType.liquid, Liquid::new)
//ContentType.sector, parser(ContentType.sector, SectorPreset::new)

View File

@@ -41,7 +41,7 @@ public class AmmoTypes implements ContentList{
@Override
public void resupply(Unit unit){
float range = unit.hitSize + 60f;
Tile closest = Vars.indexer.findClosestFlag(unit.x, unit.y, unit.team, BlockFlag.powerRes);
Tile closest = Vars.indexer.findClosestFlag(unit.x, unit.y, unit.team, BlockFlag.battery);
if(closest != null && closest.build != null && unit.within(closest.build, range) && closest.build.power != null){
var build = closest.build;

View File

@@ -1,16 +1,15 @@
package mindustry.type;
import arc.graphics.*;
import arc.scene.ui.layout.*;
import arc.struct.*;
import mindustry.ctype.*;
import mindustry.ui.*;
import mindustry.world.blocks.environment.*;
import mindustry.world.meta.*;
import static mindustry.Vars.*;
public class Item extends UnlockableContent{
public final Color color;
public Color color;
/** how explosive this item is. */
public float explosiveness = 0f;
@@ -36,8 +35,10 @@ public class Item extends UnlockableContent{
}
@Override
public void displayInfo(Table table){
ContentDisplay.displayItem(table, this);
public void setStats(){
stats.addPercent(Stat.explosiveness, explosiveness);
stats.addPercent(Stat.flammability, flammability);
stats.addPercent(Stat.radioactivity, radioactivity);
}
@Override

View File

@@ -1,15 +1,14 @@
package mindustry.type;
import arc.graphics.*;
import arc.scene.ui.layout.*;
import arc.util.*;
import mindustry.content.*;
import mindustry.ctype.*;
import mindustry.ui.*;
import mindustry.world.meta.*;
public class Liquid extends UnlockableContent{
/** Color used in pipes and on the ground. */
public final Color color;
public Color color;
/** Color used in bars. */
public @Nullable Color barColor;
/** Color used to draw lights. Note that the alpha channel is used to dictate brightness. */
@@ -46,8 +45,12 @@ public class Liquid extends UnlockableContent{
}
@Override
public void displayInfo(Table table){
ContentDisplay.displayLiquid(table, this);
public void setStats(){
stats.addPercent(Stat.explosiveness, explosiveness);
stats.addPercent(Stat.flammability, flammability);
stats.addPercent(Stat.temperature, temperature);
stats.addPercent(Stat.heatCapacity, heatCapacity);
stats.addPercent(Stat.viscosity, viscosity);
}
@Override

View File

@@ -5,7 +5,6 @@ import arc.func.*;
import arc.graphics.*;
import arc.math.*;
import arc.math.geom.*;
import arc.scene.ui.layout.*;
import arc.struct.*;
import arc.util.*;
import arc.util.noise.*;
@@ -259,11 +258,6 @@ public class Planet extends UnlockableContent{
return true;
}
@Override
public void displayInfo(Table table){
}
@Override
public ContentType getContentType(){
return ContentType.planet;

View File

@@ -2,7 +2,6 @@ package mindustry.type;
import arc.func.*;
import arc.graphics.g2d.*;
import arc.scene.ui.layout.*;
import mindustry.ctype.*;
import mindustry.game.*;
import mindustry.gen.*;
@@ -39,11 +38,6 @@ public class SectorPreset extends UnlockableContent{
return true;
}
//neither of these are implemented, as zones are not displayed in a normal fashion... yet
@Override
public void displayInfo(Table table){
}
@Override
public ContentType getContentType(){
return ContentType.sector;

View File

@@ -28,6 +28,8 @@ import mindustry.world.blocks.environment.*;
import mindustry.world.blocks.payloads.*;
import mindustry.world.blocks.units.*;
import mindustry.world.consumers.*;
import mindustry.world.meta.*;
import mindustry.world.meta.values.*;
import static mindustry.Vars.*;
@@ -41,7 +43,7 @@ public class UnitType extends UnlockableContent{
public Prov<? extends UnitController> defaultController = () -> !flying ? new GroundAI() : new FlyingAI();
public float speed = 1.1f, boostMultiplier = 1f, rotateSpeed = 5f, baseRotateSpeed = 5f;
public float drag = 0.3f, accel = 0.5f, landShake = 0f, rippleScale = 1f, fallSpeed = 0.018f;
public float health = 200f, range = -1, armor = 0f;
public float health = 200f, range = -1, armor = 0f, maxRange = -1f;
public float crashDamageMultiplier = 1f;
public boolean targetAir = true, targetGround = true;
public boolean faceTarget = true, rotateShooting = true, isCounted = true, lowAltitude = false;
@@ -58,6 +60,7 @@ public class UnitType extends UnlockableContent{
public Effect fallEffect = Fx.fallSmoke;
public Effect fallThrusterEffect = Fx.fallSmoke;
public Seq<Ability> abilities = new Seq<>();
public BlockFlag targetFlag = BlockFlag.generator;
public int legCount = 4, legGroupSize = 2;
public float legLength = 10f, legSpeed = 0.1f, legTrns = 1f, legBaseOffset = 0f, legMoveSpace = 1f, legExtension = 0, legPairOffset = 0, legLengthScl = 1f, kinematicScl = 1f, maxStretch = 1.75f;
@@ -156,11 +159,11 @@ public class UnitType extends UnlockableContent{
table.table(bars -> {
bars.defaults().growX().height(20f).pad(4);
bars.add(new Bar("blocks.health", Pal.health, unit::healthf).blink(Color.white));
bars.add(new Bar("stat.health", Pal.health, unit::healthf).blink(Color.white));
bars.row();
if(state.rules.unitAmmo){
bars.add(new Bar(ammoType.icon + " " + Core.bundle.get("blocks.ammo"), ammoType.barColor, () -> unit.ammo / ammoCapacity));
bars.add(new Bar(ammoType.icon + " " + Core.bundle.get("stat.ammo"), ammoType.barColor, () -> unit.ammo / ammoCapacity));
bars.row();
}
}).growX();
@@ -188,10 +191,21 @@ public class UnitType extends UnlockableContent{
}
}
@Override
public void displayInfo(Table table){
ContentDisplay.displayUnit(table, this);
public void setStats(){
Unit inst = constructor.get();
stats.add(Stat.health, health);
stats.add(Stat.speed, speed);
stats.add(Stat.itemCapacity, health);
stats.add(Stat.range, (int)(maxRange / tilesize), StatUnit.blocks);
//TODO abilities, maybe try something like DPS
if(inst instanceof Minerc && mineTier >= 1){
stats.addPercent(Stat.mineSpeed, mineSpeed);
stats.add(Stat.mineTier, new BlockFilterValue(b -> b instanceof Floor f && f.itemDrop != null && f.itemDrop.hardness <= mineTier && !f.playerUnmineable));
}
if(inst instanceof Builderc) stats.addPercent(Stat.buildSpeed, buildSpeed);
}
@CallSuper
@@ -217,8 +231,10 @@ public class UnitType extends UnlockableContent{
//set up default range
if(range < 0){
range = Float.MAX_VALUE;
maxRange = 0f;
for(Weapon weapon : weapons){
range = Math.min(range, weapon.bullet.range() + hitSize /2f);
maxRange = Math.max(maxRange, weapon.bullet.range() + hitSize /2f);
}
}
@@ -322,7 +338,7 @@ public class UnitType extends UnlockableContent{
if(stacks != null){
ItemStack[] out = new ItemStack[stacks.length];
for(int i = 0; i < out.length; i++){
out[i] = new ItemStack(stacks[i].item, UI.roundAmount((int)(Math.pow(stacks[i].amount, 1.1) * 50)));
out[i] = new ItemStack(stacks[i].item, UI.roundAmount((int)(Math.pow(stacks[i].amount, 1) * 50)));
}
return out;

View File

@@ -1,16 +1,18 @@
package mindustry.type;
import arc.*;
import arc.func.*;
import arc.graphics.*;
import arc.graphics.g2d.*;
import arc.math.*;
import arc.math.geom.*;
import arc.scene.ui.layout.*;
import arc.util.*;
import mindustry.annotations.Annotations.*;
import mindustry.content.*;
import mindustry.ctype.*;
import mindustry.gen.*;
import mindustry.graphics.*;
import mindustry.world.*;
import mindustry.world.blocks.*;
import static mindustry.Vars.*;
@@ -91,9 +93,136 @@ public abstract class Weather extends UnlockableContent{
}
@Override
public void displayInfo(Table table){
//do not
public void drawParticles(TextureRegion region, Color color,
float sizeMin, float sizeMax,
float density, float intensity, float opacity,
float windx, float windy,
float minAlpha, float maxAlpha,
float sinSclMin, float sinSclMax, float sinMagMin, float sinMagMax){
rand.setSeed(0);
Tmp.r1.setCentered(Core.camera.position.x, Core.camera.position.y, Core.graphics.getWidth() / renderer.minScale(), Core.graphics.getHeight() / renderer.minScale());
Tmp.r1.grow(sizeMax * 1.5f);
Core.camera.bounds(Tmp.r2);
int total = (int)(Tmp.r1.area() / density * intensity);
Draw.color(color, opacity);
for(int i = 0; i < total; i++){
float scl = rand.random(0.5f, 1f);
float scl2 = rand.random(0.5f, 1f);
float size = rand.random(sizeMin, sizeMax);
float x = (rand.random(0f, world.unitWidth()) + Time.time() * windx * scl2);
float y = (rand.random(0f, world.unitHeight()) + Time.time() * windy * scl);
float alpha = rand.random(minAlpha, maxAlpha);
x += Mathf.sin(y, rand.random(sinSclMin, sinSclMax), rand.random(sinMagMin, sinMagMax));
x -= Tmp.r1.x;
y -= Tmp.r1.y;
x = Mathf.mod(x, Tmp.r1.width);
y = Mathf.mod(y, Tmp.r1.height);
x += Tmp.r1.x;
y += Tmp.r1.y;
if(Tmp.r3.setCentered(x, y, size).overlaps(Tmp.r2)){
Draw.alpha(alpha * opacity);
Draw.rect(region, x, y, size, size);
}
}
}
public void drawRain(float sizeMin, float sizeMax, float xspeed, float yspeed, float density, float intensity, float stroke, Color color){
float padding = sizeMax*0.9f;
Tmp.r1.setCentered(Core.camera.position.x, Core.camera.position.y, Core.graphics.getWidth() / renderer.minScale(), Core.graphics.getHeight() / renderer.minScale());
Tmp.r1.grow(padding);
Core.camera.bounds(Tmp.r2);
int total = (int)(Tmp.r1.area() / density * intensity);
Lines.stroke(stroke);
float alpha = Draw.getColor().a;
Draw.color(color);
for(int i = 0; i < total; i++){
float scl = rand.random(0.5f, 1f);
float scl2 = rand.random(0.5f, 1f);
float size = rand.random(sizeMin, sizeMax);
float x = (rand.random(0f, world.unitWidth()) + Time.time() * xspeed * scl2);
float y = (rand.random(0f, world.unitHeight()) - Time.time() * yspeed * scl);
float tint = rand.random(1f) * alpha;
x -= Tmp.r1.x;
y -= Tmp.r1.y;
x = Mathf.mod(x, Tmp.r1.width);
y = Mathf.mod(y, Tmp.r1.height);
x += Tmp.r1.x;
y += Tmp.r1.y;
if(Tmp.r3.setCentered(x, y, size).overlaps(Tmp.r2)){
Draw.alpha(tint);
Lines.lineAngle(x, y, Angles.angle(xspeed * scl2, - yspeed * scl), size/2f);
}
}
}
public void drawSplashes(TextureRegion[] splashes, float padding, float density, float intensity, float opacity, float timeScale, float stroke, Color color, Liquid splasher){
Tmp.r1.setCentered(Core.camera.position.x, Core.camera.position.y, Core.graphics.getWidth() / renderer.minScale(), Core.graphics.getHeight() / renderer.minScale());
Tmp.r1.grow(padding);
Core.camera.bounds(Tmp.r2);
int total = (int)(Tmp.r1.area() / density * intensity) / 2;
Lines.stroke(stroke);
float t = Time.time() / timeScale;
for(int i = 0; i < total; i++){
float offset = rand.random(0f, 1f);
float time = t + offset;
int pos = (int)((time));
float life = time % 1f;
float x = (rand.random(0f, world.unitWidth()) + pos*953);
float y = (rand.random(0f, world.unitHeight()) - pos*453);
x -= Tmp.r1.x;
y -= Tmp.r1.y;
x = Mathf.mod(x, Tmp.r1.width);
y = Mathf.mod(y, Tmp.r1.height);
x += Tmp.r1.x;
y += Tmp.r1.y;
if(Tmp.r3.setCentered(x, y, life * 4f).overlaps(Tmp.r2)){
Tile tile = world.tileWorld(x, y);
//only create splashes on specific liquid.
if(tile != null && tile.floor().liquidDrop == splasher){
Draw.color(Tmp.c1.set(tile.floor().mapColor).mul(1.5f).a(opacity));
Draw.rect(splashes[(int)(life * (splashes.length - 1))], x, y);
}else if(tile != null && tile.floor().liquidDrop == null && !tile.floor().solid){
Draw.color(color);
Draw.alpha(Mathf.slope(life) * opacity);
float space = 45f;
for(int j : new int[]{-1, 1}){
Tmp.v1.trns(90f + j*space, 1f + 5f * life);
Lines.lineAngle(x + Tmp.v1.x, y + Tmp.v1.y, 90f + j*space, 3f * (1f - life));
}
}
}
}
}
public void drawNoise(Texture noise, Color color, float noisescl, float opacity, float baseSpeed, float intensity, float vwindx, float vwindy, float offset){
Draw.alpha(opacity);
Draw.tint(color);
float speed = baseSpeed * intensity;
float windx = vwindx * speed, windy = vwindy * speed;
float scale = 1f / noisescl;
float scroll = Time.time() * scale + offset;
Tmp.tr1.texture = noise;
Core.camera.bounds(Tmp.r1);
Tmp.tr1.set(Tmp.r1.x*scale, Tmp.r1.y*scale, (Tmp.r1.x + Tmp.r1.width)*scale, (Tmp.r1.y + Tmp.r1.height)*scale);
Tmp.tr1.scroll(-windx * scroll, -windy * scroll);
Draw.rect(Tmp.tr1, Core.camera.position.x, Core.camera.position.y, Core.camera.width, -Core.camera.height);
}
@Override

View File

@@ -0,0 +1,90 @@
package mindustry.type.weather;
import arc.*;
import arc.graphics.*;
import arc.graphics.Texture.*;
import arc.graphics.g2d.*;
import arc.util.*;
import mindustry.gen.*;
import mindustry.type.*;
public class ParticleWeather extends Weather{
public String particleRegion = "circle-shadow";
public Color color = Color.white.cpy();
public TextureRegion region;
public float yspeed = -2f, xspeed = 0.25f, padding = 16f, sizeMin = 2.4f, sizeMax = 12f, density = 1200f, minAlpha = 1f, maxAlpha = 1f, force = 0, noiseScale = 2000f, baseSpeed = 6.1f;
public float sinSclMin = 30f, sinSclMax = 80f, sinMagMin = 1f, sinMagMax = 7f;
public Color noiseColor = color;
public boolean drawNoise = false, drawParticles = true, useWindVector = false;
public int noiseLayers = 1;
public float noiseLayerSpeedM = 1.1f, noiseLayerAlphaM = 0.8f, noiseLayerSclM = 0.99f, noiseLayerColorM = 1f;
public String noisePath = "noiseAlpha";
public @Nullable Texture noise;
public ParticleWeather(String name){
super(name);
}
@Override
public void load(){
super.load();
region = Core.atlas.find(particleRegion);
//load noise texture
//TODO mod support
if(drawNoise){
Core.assets.load("sprites/" + noisePath + ".png", Texture.class);
}
}
@Override
public void update(WeatherState state){
float speed = force * state.intensity;
if(speed > 0.001f){
float windx = state.windVector.x * speed, windy = state.windVector.y * speed;
for(Unit unit : Groups.unit){
unit.impulse(windx, windy);
}
}
}
@Override
public void drawOver(WeatherState state){
float windx, windy;
if(useWindVector){
float speed = baseSpeed * state.intensity;
windx = state.windVector.x * speed;
windy = state.windVector.y * speed;
}else{
windx = this.xspeed;
windy = this.yspeed;
}
if(drawNoise){
if(noise == null){
noise = Core.assets.get("sprites/" + noisePath + ".png", Texture.class);
noise.setWrap(TextureWrap.repeat);
noise.setFilter(TextureFilter.linear);
}
float sspeed = 1f, sscl = 1f, salpha = 1f, offset = 0f;
Color col = Tmp.c1.set(noiseColor);
for(int i = 0; i < noiseLayers; i++){
drawNoise(noise, noiseColor, noiseScale * sscl, state.opacity * salpha * opacityMultiplier, baseSpeed * sspeed, state.intensity, windx, windy, offset);
sspeed *= noiseLayerSpeedM;
salpha *= noiseLayerAlphaM;
sscl *= noiseLayerSclM;
offset += 0.29f;
col.mul(noiseLayerColorM);
}
}
if(drawParticles){
drawParticles(region, color, sizeMin, sizeMax, density, state.intensity, state.opacity, windx, windy, minAlpha, maxAlpha, sinSclMin, sinSclMax, sinMagMin, sinMagMax);
}
}
}

View File

@@ -0,0 +1,38 @@
package mindustry.type.weather;
import arc.*;
import arc.graphics.*;
import arc.graphics.g2d.*;
import mindustry.content.*;
import mindustry.gen.*;
import mindustry.type.*;
public class RainWeather extends Weather{
public float yspeed = 5f, xspeed = 1.5f, padding = 16f, density = 1200f, stroke = 0.75f, sizeMin = 8f, sizeMax = 40f, splashTimeScale = 22f;
public Liquid liquid = Liquids.water;
public TextureRegion[] splashes = new TextureRegion[12];
public Color color = Color.valueOf("7a95eaff");
public RainWeather(String name){
super(name);
}
@Override
public void load(){
super.load();
for(int i = 0; i < splashes.length; i++){
splashes[i] = Core.atlas.find("splash-" + i);
}
}
@Override
public void drawOver(WeatherState state){
drawRain(sizeMin, sizeMax, xspeed, yspeed, density, state.intensity, stroke, color);
}
@Override
public void drawUnder(WeatherState state){
drawSplashes(splashes, sizeMax, density, state.intensity, state.opacity, splashTimeScale, stroke, color, liquid);
}
}

View File

@@ -1,165 +0,0 @@
package mindustry.ui;
import arc.*;
import arc.graphics.*;
import arc.scene.ui.layout.*;
import arc.struct.*;
import arc.util.*;
import mindustry.gen.*;
import mindustry.graphics.*;
import mindustry.type.*;
import mindustry.world.*;
import mindustry.world.meta.*;
public class ContentDisplay{
public static void displayBlock(Table table, Block block){
table.table(title -> {
int size = 8 * 6;
title.image(block.icon(Cicon.xlarge)).size(size);
title.add("[accent]" + block.localizedName).padLeft(5);
});
table.row();
table.image().height(3).color(Color.lightGray).pad(8).padLeft(0).padRight(0).fillX();
table.row();
if(block.description != null){
table.add(block.displayDescription()).padLeft(5).padRight(5).width(400f).wrap().fillX();
table.row();
table.image().height(3).color(Color.lightGray).pad(8).padLeft(0).padRight(0).fillX();
table.row();
}
BlockStats stats = block.stats;
for(StatCategory cat : stats.toMap().keys()){
OrderedMap<BlockStat, Seq<StatValue>> map = stats.toMap().get(cat);
if(map.size == 0) continue;
table.add("@category." + cat.name()).color(Pal.accent).fillX();
table.row();
for(BlockStat stat : map.keys()){
table.table(inset -> {
inset.left();
inset.add("[lightgray]" + stat.localized() + ":[] ").left();
Seq<StatValue> arr = map.get(stat);
for(StatValue value : arr){
value.display(inset);
inset.add().size(10f);
}
}).fillX().padLeft(10);
table.row();
}
}
}
public static void displayItem(Table table, Item item){
table.table(title -> {
title.image(item.icon(Cicon.xlarge)).size(8 * 6);
title.add("[accent]" + item.localizedName).padLeft(5);
});
table.row();
table.image().height(3).color(Color.lightGray).pad(15).padLeft(0).padRight(0).fillX();
table.row();
if(item.description != null){
table.add(item.displayDescription()).padLeft(5).padRight(5).width(400f).wrap().fillX();
table.row();
table.image().height(3).color(Color.lightGray).pad(15).padLeft(0).padRight(0).fillX();
table.row();
}
table.left().defaults().fillX();
table.add(Core.bundle.format("item.explosiveness", (int)(item.explosiveness * 100)));
table.row();
table.add(Core.bundle.format("item.flammability", (int)(item.flammability * 100)));
table.row();
table.add(Core.bundle.format("item.radioactivity", (int)(item.radioactivity * 100)));
table.row();
}
public static void displayLiquid(Table table, Liquid liquid){
table.table(title -> {
title.image(liquid.icon(Cicon.xlarge)).size(8 * 6);
title.add("[accent]" + liquid.localizedName).padLeft(5);
});
table.row();
table.image().height(3).color(Color.lightGray).pad(15).padLeft(0).padRight(0).fillX();
table.row();
if(liquid.description != null){
table.add(liquid.displayDescription()).padLeft(5).padRight(5).width(400f).wrap().fillX();
table.row();
table.image().height(3).color(Color.lightGray).pad(15).padLeft(0).padRight(0).fillX();
table.row();
}
table.left().defaults().fillX();
table.add(Core.bundle.format("item.explosiveness", (int)(liquid.explosiveness * 100)));
table.row();
table.add(Core.bundle.format("item.flammability", (int)(liquid.flammability * 100)));
table.row();
table.add(Core.bundle.format("liquid.heatcapacity", (int)(liquid.heatCapacity * 100)));
table.row();
table.add(Core.bundle.format("liquid.temperature", (int)(liquid.temperature * 100)));
table.row();
table.add(Core.bundle.format("liquid.viscosity", (int)(liquid.viscosity * 100)));
table.row();
}
public static void displayUnit(Table table, UnitType unit){
table.table(title -> {
title.image(unit.icon(Cicon.xlarge)).size(8 * 6).scaling(Scaling.fit);
title.add("[accent]" + unit.localizedName).padLeft(5);
});
table.row();
table.image().height(3).color(Color.lightGray).pad(15).padLeft(0).padRight(0).fillX();
table.row();
if(unit.description != null){
table.add(unit.displayDescription()).padLeft(5).padRight(5).width(400f).wrap().fillX();
table.row();
table.image().height(3).color(Color.lightGray).pad(15).padLeft(0).padRight(0).fillX();
table.row();
}
table.left().defaults().fillX();
Unit inst = unit.constructor.get();
//TODO more stats
table.add(Core.bundle.format("unit.health", unit.health)).row();
table.add(Core.bundle.format("unit.speed", Strings.fixed(unit.speed, 1))).row();
table.add(Core.bundle.format("unit.itemcapacity", unit.itemCapacity)).row();
if(inst instanceof Minerc) table.add(Core.bundle.format("unit.minespeed", (int)(unit.mineSpeed * 100f))).row();
if(inst instanceof Builderc) table.add(Core.bundle.format("unit.buildspeed", (int)(unit.buildSpeed * 100f))).row();
table.row();
}
}

View File

@@ -1,8 +1,14 @@
package mindustry.ui.dialogs;
import arc.graphics.*;
import arc.scene.ui.*;
import arc.scene.ui.layout.*;
import arc.struct.*;
import arc.util.*;
import mindustry.ctype.*;
import mindustry.graphics.*;
import mindustry.ui.*;
import mindustry.world.meta.*;
public class ContentInfoDialog extends BaseDialog{
@@ -18,11 +24,62 @@ public class ContentInfoDialog extends BaseDialog{
Table table = new Table();
table.margin(10);
content.displayInfo(table);
//initialize stats if they haven't been yet
content.checkStats();
table.table(title1 -> {
int size = 8 * 6;
title1.image(content.icon(Cicon.xlarge)).size(size).scaling(Scaling.fit);
title1.add("[accent]" + content.localizedName).padLeft(5);
});
table.row();
table.image().height(3).color(Color.lightGray).pad(8).padLeft(0).padRight(0).fillX();
table.row();
if(content.description != null){
table.add(content.displayDescription()).padLeft(5).padRight(5).width(400f).wrap().fillX();
table.row();
table.image().height(3).color(Color.lightGray).pad(8).padLeft(0).padRight(0).fillX();
table.row();
}
Stats stats = content.stats;
for(StatCat cat : stats.toMap().keys()){
OrderedMap<Stat, Seq<StatValue>> map = stats.toMap().get(cat);
if(map.size == 0) continue;
//TODO check
if(stats.useCategories){
table.add("@category." + cat.name()).color(Pal.accent).fillX();
table.row();
}
for(Stat stat : map.keys()){
table.table(inset -> {
inset.left();
inset.add("[lightgray]" + stat.localized() + ":[] ").left();
Seq<StatValue> arr = map.get(stat);
for(StatValue value : arr){
value.display(inset);
inset.add().size(10f);
}
}).fillX().padLeft(10);
table.row();
}
}
ScrollPane pane = new ScrollPane(table);
cont.add(pane);
show();
}
}

View File

@@ -2,7 +2,7 @@ package mindustry.ui.dialogs;
import arc.*;
import mindustry.game.EventType.*;
import mindustry.game.Stats.*;
import mindustry.game.GameStats.*;
import mindustry.game.*;
import mindustry.type.*;
import mindustry.ui.*;

View File

@@ -457,18 +457,23 @@ public class PlanetDialog extends BaseDialog implements PlanetInterfaceRenderer{
if(mode == look && !sector.hasBase()){
shouldHide = false;
Sector from = findLauncher(sector);
CoreBlock block = from.info.bestCoreType instanceof CoreBlock b ? b : (CoreBlock)Blocks.coreShard;
if(from == null){
//free launch.
control.playSector(sector);
}else{
CoreBlock block = from.info.bestCoreType instanceof CoreBlock b ? b : (CoreBlock)Blocks.coreShard;
loadouts.show(block, from, () -> {
from.removeItems(universe.getLastLoadout().requirements());
from.removeItems(universe.getLaunchResources());
loadouts.show(block, from, () -> {
from.removeItems(universe.getLastLoadout().requirements());
from.removeItems(universe.getLaunchResources());
launching = true;
zoom = 0.5f;
launching = true;
zoom = 0.5f;
ui.hudfrag.showLaunchDirect();
Time.runTask(launchDuration, () -> control.playSector(from, sector));
});
ui.hudfrag.showLaunchDirect();
Time.runTask(launchDuration, () -> control.playSector(from, sector));
});
}
}else if(mode == select){
listener.get(sector);
}else{

View File

@@ -51,7 +51,6 @@ public class Block extends UnlockableContent{
public float liquidCapacity = 10f;
public float liquidPressure = 1f;
public final BlockStats stats = new BlockStats();
public final BlockBars bars = new BlockBars();
public final Consumers consumes = new Consumers();
@@ -321,27 +320,30 @@ public class Block extends UnlockableContent{
return update || destructible;
}
@Override
public void setStats(){
stats.add(BlockStat.size, "@x@", size, size);
stats.add(BlockStat.health, health, StatUnit.none);
super.setStats();
stats.add(Stat.size, "@x@", size, size);
stats.add(Stat.health, health, StatUnit.none);
if(canBeBuilt()){
stats.add(BlockStat.buildTime, buildCost / 60, StatUnit.seconds);
stats.add(BlockStat.buildCost, new ItemListValue(false, requirements));
stats.add(Stat.buildTime, buildCost / 60, StatUnit.seconds);
stats.add(Stat.buildCost, new ItemListValue(false, requirements));
}
if(instantTransfer){
stats.add(BlockStat.maxConsecutive, 2, StatUnit.none);
stats.add(Stat.maxConsecutive, 2, StatUnit.none);
}
consumes.display(stats);
// Note: Power stats are added by the consumers.
if(hasLiquids) stats.add(BlockStat.liquidCapacity, liquidCapacity, StatUnit.liquidUnits);
if(hasItems && itemCapacity > 0) stats.add(BlockStat.itemCapacity, itemCapacity, StatUnit.items);
//Note: Power stats are added by the consumers.
if(hasLiquids) stats.add(Stat.liquidCapacity, liquidCapacity, StatUnit.liquidUnits);
if(hasItems && itemCapacity > 0) stats.add(Stat.itemCapacity, itemCapacity, StatUnit.items);
}
public void setBars(){
bars.add("health", entity -> new Bar("blocks.health", Pal.health, entity::healthf).blink(Color.white));
bars.add("health", entity -> new Bar("stat.health", Pal.health, entity::healthf).blink(Color.white));
if(hasLiquids){
Func<Building, Liquid> current;
@@ -634,11 +636,6 @@ public class Block extends UnlockableContent{
}
}
@Override
public void displayInfo(Table table){
ContentDisplay.displayBlock(table, this);
}
@Override
public ContentType getContentType(){
return ContentType.block;
@@ -669,9 +666,10 @@ public class Block extends UnlockableContent{
if(consumes.has(ConsumeType.item)) hasItems = true;
if(consumes.has(ConsumeType.liquid)) hasLiquids = true;
setStats();
setBars();
stats.useCategories = true;
consumes.init();
if(!outputsPower && consumes.hasPower() && consumes.getPower().buffered){

View File

@@ -42,7 +42,7 @@ public class LaunchPad extends Block{
public void setStats(){
super.setStats();
stats.add(BlockStat.launchTime, launchTime / 60f, StatUnit.seconds);
stats.add(Stat.launchTime, launchTime / 60f, StatUnit.seconds);
}
@Override

View File

@@ -61,11 +61,11 @@ public class ForceProjector extends Block{
@Override
public void setStats(){
super.setStats();
stats.add(BlockStat.shieldHealth, breakage, StatUnit.none);
stats.add(BlockStat.cooldownTime, (int) (breakage / cooldownBrokenBase / 60f), StatUnit.seconds);
stats.add(BlockStat.powerUse, basePowerDraw * 60f, StatUnit.powerSecond);
stats.add(BlockStat.boostEffect, phaseRadiusBoost / tilesize, StatUnit.blocks);
stats.add(BlockStat.boostEffect, phaseShieldBoost, StatUnit.shieldHealth);
stats.add(Stat.shieldHealth, breakage, StatUnit.none);
stats.add(Stat.cooldownTime, (int) (breakage / cooldownBrokenBase / 60f), StatUnit.seconds);
stats.add(Stat.powerUse, basePowerDraw * 60f, StatUnit.powerSecond);
stats.add(Stat.boostEffect, phaseRadiusBoost / tilesize, StatUnit.blocks);
stats.add(Stat.boostEffect, phaseShieldBoost, StatUnit.shieldHealth);
}
@Override

View File

@@ -44,11 +44,11 @@ public class MendProjector extends Block{
public void setStats(){
super.setStats();
stats.add(BlockStat.repairTime, (int)(100f / healPercent * reload / 60f), StatUnit.seconds);
stats.add(BlockStat.range, range / tilesize, StatUnit.blocks);
stats.add(Stat.repairTime, (int)(100f / healPercent * reload / 60f), StatUnit.seconds);
stats.add(Stat.range, range / tilesize, StatUnit.blocks);
stats.add(BlockStat.boostEffect, phaseRangeBoost / tilesize, StatUnit.blocks);
stats.add(BlockStat.boostEffect, (phaseBoost + healPercent) / healPercent, StatUnit.timesSpeed);
stats.add(Stat.boostEffect, phaseRangeBoost / tilesize, StatUnit.blocks);
stats.add(Stat.boostEffect, (phaseBoost + healPercent) / healPercent, StatUnit.timesSpeed);
}
@Override

View File

@@ -51,13 +51,13 @@ public class OverdriveProjector extends Block{
public void setStats(){
super.setStats();
stats.add(BlockStat.speedIncrease, (int)(100f * speedBoost), StatUnit.percent);
stats.add(BlockStat.range, range / tilesize, StatUnit.blocks);
stats.add(BlockStat.productionTime, useTime / 60f, StatUnit.seconds);
stats.add(Stat.speedIncrease, (int)(100f * speedBoost), StatUnit.percent);
stats.add(Stat.range, range / tilesize, StatUnit.blocks);
stats.add(Stat.productionTime, useTime / 60f, StatUnit.seconds);
if(hasBoost){
stats.add(BlockStat.boostEffect, phaseRangeBoost / tilesize, StatUnit.blocks);
stats.add(BlockStat.boostEffect, (int)((speedBoost + speedBoostPhase) * 100f), StatUnit.percent);
stats.add(Stat.boostEffect, phaseRangeBoost / tilesize, StatUnit.blocks);
stats.add(Stat.boostEffect, (int)((speedBoost + speedBoostPhase) * 100f), StatUnit.percent);
}
}

View File

@@ -0,0 +1,67 @@
package mindustry.world.blocks.defense.turrets;
import mindustry.content.*;
import mindustry.entities.*;
import mindustry.gen.*;
import mindustry.graphics.*;
import mindustry.logic.*;
import mindustry.world.*;
import mindustry.world.consumers.*;
import mindustry.world.meta.*;
import static mindustry.Vars.*;
public abstract class BaseTurret extends Block{
public float range = 80f;
public float rotateSpeed = 5;
public boolean acceptCoolant = true;
/** Effect displayed when coolant is used. */
public Effect coolEffect = Fx.fuelburn;
/** How much reload is lowered by for each unit of liquid of heat capacity. */
public float coolantMultiplier = 5f;
public BaseTurret(String name){
super(name);
update = true;
solid = true;
outlineIcon = true;
}
@Override
public void init(){
if(acceptCoolant && !consumes.has(ConsumeType.liquid)){
hasLiquids = true;
consumes.add(new ConsumeLiquidFilter(liquid -> liquid.temperature <= 0.5f && liquid.flammability < 0.1f, 0.2f)).update(false).boost();
}
super.init();
}
@Override
public void drawPlace(int x, int y, int rotation, boolean valid){
Drawf.dashCircle(x * tilesize + offset, y * tilesize + offset, range, Pal.placing);
}
@Override
public void setStats(){
super.setStats();
stats.add(Stat.shootRange, range / tilesize, StatUnit.blocks);
}
public class BaseTurretBuild extends Building implements Ranged{
public float rotation = 90;
@Override
public float range(){
return range;
}
@Override
public void drawSelect(){
Drawf.dashCircle(x, y, range, team.color);
}
}
}

View File

@@ -35,8 +35,8 @@ public class ItemTurret extends Turret{
public void setStats(){
super.setStats();
stats.remove(BlockStat.itemCapacity);
stats.add(BlockStat.ammo, new AmmoListValue<>(ammoTypes));
stats.remove(Stat.itemCapacity);
stats.add(Stat.ammo, new AmmoListValue<>(ammoTypes));
consumes.add(new ConsumeItemFilter(i -> ammoTypes.containsKey(i)){
@Override
public void build(Building tile, Table table){
@@ -54,7 +54,7 @@ public class ItemTurret extends Turret{
}
@Override
public void display(BlockStats stats){
public void display(Stats stats){
//don't display
}
});

View File

@@ -33,11 +33,11 @@ public class LaserTurret extends PowerTurret{
public void setStats(){
super.setStats();
stats.remove(BlockStat.booster);
stats.add(BlockStat.input, new BoosterListValue(reloadTime, consumes.<ConsumeLiquidBase>get(ConsumeType.liquid).amount, coolantMultiplier, false, l -> consumes.liquidfilters.get(l.id)));
stats.remove(BlockStat.damage);
stats.remove(Stat.booster);
stats.add(Stat.input, new BoosterListValue(reloadTime, consumes.<ConsumeLiquidBase>get(ConsumeType.liquid).amount, coolantMultiplier, false, l -> consumes.liquidfilters.get(l.id)));
stats.remove(Stat.damage);
//damages every 5 ticks, at least in meltdown's case
stats.add(BlockStat.damage, shootType.damage * 60f / 5f, StatUnit.perSecond);
stats.add(Stat.damage, shootType.damage * 60f / 5f, StatUnit.perSecond);
}
public class LaserTurretBuild extends PowerTurretBuild{

View File

@@ -36,7 +36,7 @@ public class LiquidTurret extends Turret{
public void setStats(){
super.setStats();
stats.add(BlockStat.ammo, new AmmoListValue<>(ammoTypes));
stats.add(Stat.ammo, new AmmoListValue<>(ammoTypes));
consumes.add(new ConsumeLiquidFilter(i -> ammoTypes.containsKey(i), 1f){
@Override
public boolean valid(Building entity){
@@ -49,7 +49,7 @@ public class LiquidTurret extends Turret{
}
@Override
public void display(BlockStats stats){
public void display(Stats stats){
}
});

View File

@@ -1,4 +1,4 @@
package mindustry.world.blocks.defense;
package mindustry.world.blocks.defense.turrets;
import arc.graphics.*;
import arc.graphics.g2d.*;
@@ -11,12 +11,9 @@ import mindustry.content.*;
import mindustry.entities.*;
import mindustry.gen.*;
import mindustry.graphics.*;
import mindustry.world.*;
import mindustry.world.meta.*;
import static mindustry.Vars.*;
public class PointDefenseTurret extends Block{
public class PointDefenseTurret extends ReloadTurret{
public final int timerTarget = timers++;
public float retargetTime = 5f;
@@ -27,9 +24,6 @@ public class PointDefenseTurret extends Block{
public Effect hitEffect = Fx.pointHit;
public Effect shootEffect = Fx.sparkShoot;
public float range = 80f;
public float reloadTime = 30f;
public float rotateSpeed = 20;
public float shootCone = 5f;
public float bulletDamage = 10f;
public float shootLength = 3f;
@@ -37,13 +31,12 @@ public class PointDefenseTurret extends Block{
public PointDefenseTurret(String name){
super(name);
outlineIcon = true;
update = true;
}
rotateSpeed = 20f;
reloadTime = 30f;
@Override
public void drawPlace(int x, int y, int rotation, boolean valid){
Drawf.dashCircle(x * tilesize + offset, y * tilesize + offset, range, Pal.accent);
coolantMultiplier = 2f;
//disabled due to version mismatch problems
acceptCoolant = false;
}
@Override
@@ -55,12 +48,10 @@ public class PointDefenseTurret extends Block{
public void setStats(){
super.setStats();
stats.add(BlockStat.shootRange, range / tilesize, StatUnit.blocks);
stats.add(BlockStat.reload, 60f / reloadTime, StatUnit.none);
stats.add(Stat.reload, 60f / reloadTime, StatUnit.none);
}
public class PointDefenseBuild extends Building{
public float rotation = 90, reload;
public class PointDefenseBuild extends ReloadTurretBuild{
public @Nullable Bullet target;
@Override
@@ -76,14 +67,18 @@ public class PointDefenseTurret extends Block{
target = null;
}
if(acceptCoolant){
updateCooling();
}
//look at target
if(target != null && target.within(this, range) && target.team != team && target.type() != null && target.type().hittable){
float dest = angleTo(target);
rotation = Angles.moveToward(rotation, dest, rotateSpeed * edelta());
reload -= edelta();
reload += edelta();
//shoot when possible
if(Angles.within(rotation, dest, shootCone) && reload <= 0f){
if(Angles.within(rotation, dest, shootCone) && reload >= reloadTime){
if(target.damage() > bulletDamage){
target.damage(target.damage() - bulletDamage);
}else{
@@ -95,18 +90,13 @@ public class PointDefenseTurret extends Block{
beamEffect.at(x + Tmp.v1.x, y + Tmp.v1.y, rotation, color, new Vec2().set(target));
shootEffect.at(x + Tmp.v1.x, y + Tmp.v1.y, rotation, color);
hitEffect.at(target.x, target.y, color);
reload = reloadTime;
reload = 0;
}
}else{
target = null;
}
}
@Override
public void drawSelect(){
Drawf.dashCircle(x, y, range, Pal.accent);
}
@Override
public void draw(){
Draw.rect(baseRegion, x, y);

View File

@@ -16,7 +16,7 @@ public class PowerTurret extends Turret{
@Override
public void setStats(){
super.setStats();
stats.add(BlockStat.damage, shootType.damage, StatUnit.none);
stats.add(Stat.damage, shootType.damage, StatUnit.none);
}
@Override

View File

@@ -0,0 +1,49 @@
package mindustry.world.blocks.defense.turrets;
import arc.math.*;
import arc.util.*;
import mindustry.type.*;
import mindustry.world.consumers.*;
import mindustry.world.meta.*;
import mindustry.world.meta.values.*;
import static mindustry.Vars.*;
public abstract class ReloadTurret extends BaseTurret{
public float reloadTime = 10f;
public ReloadTurret(String name){
super(name);
}
@Override
public void setStats(){
super.setStats();
if(acceptCoolant){
stats.add(Stat.booster, new BoosterListValue(reloadTime, consumes.<ConsumeLiquidBase>get(ConsumeType.liquid).amount, coolantMultiplier, true, l -> consumes.liquidfilters.get(l.id)));
}
}
public class ReloadTurretBuild extends BaseTurretBuild{
public float reload;
protected void updateCooling(){
float maxUsed = consumes.<ConsumeLiquidBase>get(ConsumeType.liquid).amount;
Liquid liquid = liquids.current();
float used = Math.min(Math.min(liquids.get(liquid), maxUsed * Time.delta), Math.max(0, ((reloadTime - reload) / coolantMultiplier) / liquid.heatCapacity)) * baseReloadSpeed();
reload += used * liquid.heatCapacity * coolantMultiplier;
liquids.remove(liquid, used);
if(Mathf.chance(0.06 * used)){
coolEffect.at(x + Mathf.range(size * tilesize / 2f), y + Mathf.range(size * tilesize / 2f));
}
}
protected float baseReloadSpeed(){
return efficiency();
}
}
}

View File

@@ -1,4 +1,4 @@
package mindustry.world.blocks.defense;
package mindustry.world.blocks.defense.turrets;
import arc.graphics.*;
import arc.graphics.g2d.*;
@@ -9,12 +9,13 @@ import mindustry.annotations.Annotations.*;
import mindustry.entities.*;
import mindustry.gen.*;
import mindustry.graphics.*;
import mindustry.world.*;
import mindustry.type.*;
import mindustry.world.consumers.*;
import mindustry.world.meta.*;
import static mindustry.Vars.*;
public class TractorBeamTurret extends Block{
public class TractorBeamTurret extends BaseTurret{
public final int timerTarget = timers++;
public float retargetTime = 5f;
@@ -22,8 +23,6 @@ public class TractorBeamTurret extends Block{
public @Load("@-laser") TextureRegion laser;
public @Load("@-laser-end") TextureRegion laserEnd;
public float range = 80f;
public float rotateSpeed = 10;
public float shootCone = 6f;
public float laserWidth = 0.6f;
public float force = 0.3f;
@@ -35,14 +34,11 @@ public class TractorBeamTurret extends Block{
public TractorBeamTurret(String name){
super(name);
update = true;
solid = true;
outlineIcon = true;
}
rotateSpeed = 10f;
coolantMultiplier = 1f;
@Override
public void drawPlace(int x, int y, int rotation, boolean valid){
Drawf.dashCircle(x * tilesize + offset, y * tilesize + offset, range, Pal.accent);
//disabled due to version mismatch problems
acceptCoolant = false;
}
@Override
@@ -54,17 +50,16 @@ public class TractorBeamTurret extends Block{
public void setStats(){
super.setStats();
stats.add(BlockStat.shootRange, range / tilesize, StatUnit.blocks);
stats.add(BlockStat.targetsAir, targetAir);
stats.add(BlockStat.targetsGround, targetGround);
stats.add(BlockStat.damage, damage * 60f, StatUnit.perSecond);
stats.add(Stat.targetsAir, targetAir);
stats.add(Stat.targetsGround, targetGround);
stats.add(Stat.damage, damage * 60f, StatUnit.perSecond);
}
public class TractorBeamBuild extends Building{
public float rotation = 90;
public class TractorBeamBuild extends BaseTurretBuild{
public @Nullable Unit target;
public float lastX, lastY, strength;
public boolean any;
public float coolant = 1f;
@Override
public void updateTile(){
@@ -74,6 +69,23 @@ public class TractorBeamTurret extends Block{
target = Units.closestEnemy(team, x, y, range, u -> u.checkTarget(targetAir, targetGround));
}
//consume coolant
if(target != null && acceptCoolant){
float maxUsed = consumes.<ConsumeLiquidBase>get(ConsumeType.liquid).amount;
Liquid liquid = liquids.current();
float used = Math.min(Math.min(liquids.get(liquid), maxUsed * Time.delta), Math.max(0, (1f / coolantMultiplier) / liquid.heatCapacity));
liquids.remove(liquid, used);
if(Mathf.chance(0.06 * used)){
coolEffect.at(x + Mathf.range(size * tilesize / 2f), y + Mathf.range(size * tilesize / 2f));
}
coolant = 1f + (used * liquid.heatCapacity * coolantMultiplier);
}
//look at target
if(target != null && target.within(this, range) && target.team() != team && target.type.flying && efficiency() > 0.01f){
any = true;
@@ -98,8 +110,8 @@ public class TractorBeamTurret extends Block{
}
@Override
public void drawSelect(){
Drawf.dashCircle(x, y, range, Pal.accent);
public float efficiency() {
return super.efficiency() * coolant;
}
@Override

View File

@@ -21,7 +21,6 @@ import mindustry.gen.*;
import mindustry.graphics.*;
import mindustry.logic.*;
import mindustry.type.*;
import mindustry.world.*;
import mindustry.world.blocks.*;
import mindustry.world.consumers.*;
import mindustry.world.meta.*;
@@ -29,7 +28,7 @@ import mindustry.world.meta.values.*;
import static mindustry.Vars.*;
public abstract class Turret extends Block{
public abstract class Turret extends ReloadTurret{
//after being logic-controlled and this amount of time passes, the turret will resume normal AI
public final static float logicControlCooldown = 60 * 2;
@@ -45,8 +44,6 @@ public abstract class Turret extends Block{
public int maxAmmo = 30;
public int ammoPerShot = 1;
public float ammoEjectBack = 1f;
public float range = 50f;
public float reloadTime = 10f;
public float inaccuracy = 0f;
public float velocityInaccuracy = 0f;
public int shots = 1;
@@ -54,7 +51,6 @@ public abstract class Turret extends Block{
public float recoilAmount = 1f;
public float restitution = 0.02f;
public float cooldown = 0.02f;
public float rotateSpeed = 5f; //in degrees per tick
public float shootCone = 8f;
public float shootShake = 0f;
public float xRand = 0f;
@@ -65,10 +61,7 @@ public abstract class Turret extends Block{
public boolean targetAir = true;
public boolean targetGround = true;
public boolean acceptCoolant = true;
/** How much reload is lowered by for each unit of liquid of heat capacity. */
public float coolantMultiplier = 5f;
/** Effect displayed when coolant is used. */
public Effect coolEffect = Fx.fuelburn;
public Sortf unitSort = Unit::dst2;
protected Vec2 tr = new Vec2();
@@ -108,14 +101,13 @@ public abstract class Turret extends Block{
public void setStats(){
super.setStats();
stats.add(BlockStat.shootRange, range / tilesize, StatUnit.blocks);
stats.add(BlockStat.inaccuracy, (int)inaccuracy, StatUnit.degrees);
stats.add(BlockStat.reload, 60f / reloadTime * shots, StatUnit.none);
stats.add(BlockStat.targetsAir, targetAir);
stats.add(BlockStat.targetsGround, targetGround);
stats.add(Stat.inaccuracy, (int)inaccuracy, StatUnit.degrees);
stats.add(Stat.reload, 60f / reloadTime * shots, StatUnit.none);
stats.add(Stat.targetsAir, targetAir);
stats.add(Stat.targetsGround, targetGround);
if(acceptCoolant){
stats.add(BlockStat.booster, new BoosterListValue(reloadTime, consumes.<ConsumeLiquidBase>get(ConsumeType.liquid).amount, coolantMultiplier, true, l -> consumes.liquidfilters.get(l.id)));
stats.add(Stat.booster, new BoosterListValue(reloadTime, consumes.<ConsumeLiquidBase>get(ConsumeType.liquid).amount, coolantMultiplier, true, l -> consumes.liquidfilters.get(l.id)));
}
}
@@ -134,32 +126,22 @@ public abstract class Turret extends Block{
return new TextureRegion[]{baseRegion, region};
}
@Override
public void drawPlace(int x, int y, int rotation, boolean valid){
Drawf.dashCircle(x * tilesize + offset, y * tilesize + offset, range, Pal.placing);
}
public static abstract class AmmoEntry{
public int amount;
public abstract BulletType type();
}
public class TurretBuild extends Building implements ControlBlock, Ranged{
public class TurretBuild extends ReloadTurretBuild implements ControlBlock{
public Seq<AmmoEntry> ammo = new Seq<>();
public int totalAmmo;
public float reload, rotation = 90, recoil, heat, logicControlTime = -1;
public float recoil, heat, logicControlTime = -1;
public int shotCounter;
public boolean logicShooting = false;
public @Nullable Posc target;
public Vec2 targetPos = new Vec2();
public BlockUnitc unit = Nulls.blockUnit;
@Override
public float range(){
return range;
}
@Override
public void created(){
unit = (BlockUnitc)UnitTypes.block.create(team);
@@ -197,8 +179,8 @@ public abstract class Turret extends Block{
case ammo -> totalAmmo;
case ammoCapacity -> maxAmmo;
case rotation -> rotation;
case shootX -> targetPos.x;
case shootY -> targetPos.y;
case shootX -> World.conv(targetPos.x);
case shootY -> World.conv(targetPos.y);
case shooting -> (isControlled() ? unit.isShooting() : logicControlled() ? logicShooting : validateTarget()) ? 1 : 0;
default -> super.sense(sensor);
};
@@ -301,11 +283,6 @@ public abstract class Turret extends Block{
}
}
@Override
public void drawSelect(){
Drawf.dashCircle(x, y, range, team.color);
}
@Override
public void handleLiquid(Building source, Liquid liquid, float amount){
if(acceptCoolant && liquids.currentAmount() <= 0.001f){
@@ -315,20 +292,6 @@ public abstract class Turret extends Block{
super.handleLiquid(source, liquid, amount);
}
protected void updateCooling(){
float maxUsed = consumes.<ConsumeLiquidBase>get(ConsumeType.liquid).amount;
Liquid liquid = liquids.current();
float used = Math.min(Math.min(liquids.get(liquid), maxUsed * Time.delta), Math.max(0, ((reloadTime - reload) / coolantMultiplier) / liquid.heatCapacity)) * baseReloadSpeed();
reload += used * liquid.heatCapacity * coolantMultiplier;
liquids.remove(liquid, used);
if(Mathf.chance(0.06 * used)){
coolEffect.at(x + Mathf.range(size * tilesize / 2f), y + Mathf.range(size * tilesize / 2f));
}
}
protected boolean validateTarget(){
return !Units.invalidateTarget(target, team, x, y) || isControlled() || logicControlled();
}
@@ -453,10 +416,6 @@ public abstract class Turret extends Block{
ammoUseEffect.at(x - Angles.trnsx(rotation, ammoEjectBack), y - Angles.trnsy(rotation, ammoEjectBack), rotation);
}
protected float baseReloadSpeed(){
return efficiency();
}
@Override
public void write(Writes write){
super.write(write);

View File

@@ -52,7 +52,7 @@ public class Conveyor extends Block implements Autotiler{
super.setStats();
//have to add a custom calculated speed, since the actual movement speed is apparently not linear
stats.add(BlockStat.itemsMoved, displayedSpeed, StatUnit.itemsSecond);
stats.add(Stat.itemsMoved, displayedSpeed, StatUnit.itemsSecond);
}
@Override

View File

@@ -336,16 +336,18 @@ public class ItemBridge extends Block{
Tile other = world.tile(link);
if(items.total() >= itemCapacity) return false;
if(linked(source)) return true;
if(linkValid(tile, other)){
int rel = relativeTo(other);
int rel2 = relativeTo(Edges.getFacingEdge(source, this));
if(rel == rel2) return false;
}else{
return linked(source) && items.total() < itemCapacity;
return rel != rel2;
}
return items.total() < itemCapacity;
return false;
}
@Override
@@ -359,16 +361,18 @@ public class ItemBridge extends Block{
Tile other = world.tile(link);
if(!(liquids.current() == liquid || liquids.get(liquids.current()) < 0.2f)) return false;
if(linked(source)) return true;
if(linkValid(tile, other)){
int rel = relativeTo(other.x, other.y);
int rel2 = relativeTo(Edges.getFacingEdge(source, this));
if(rel == rel2) return false;
}else if(!(linked(source))){
return false;
return rel != rel2;
}
return (liquids.current() == liquid || liquids.get(liquids.current()) < 0.2f);
return false;
}
protected boolean linked(Building source){

View File

@@ -53,7 +53,7 @@ public class StackConveyor extends Block implements Autotiler{
public void setStats(){
super.setStats();
stats.add(BlockStat.itemsMoved, Mathf.round(itemCapacity * speed * 60), StatUnit.itemsSecond);
stats.add(Stat.itemsMoved, Mathf.round(itemCapacity * speed * 60), StatUnit.itemsSecond);
}
@Override

View File

@@ -14,7 +14,7 @@ public class LiquidJunction extends LiquidBlock{
@Override
public void setStats(){
super.setStats();
stats.remove(BlockStat.liquidCapacity);
stats.remove(Stat.liquidCapacity);
}
@Override

View File

@@ -117,8 +117,8 @@ public class LogicBlock extends Block{
public void setStats(){
super.setStats();
stats.add(BlockStat.linkRange, range / 8, StatUnit.blocks);
stats.add(BlockStat.instructions, instructionsPerTick * 60, StatUnit.perSecond);
stats.add(Stat.linkRange, range / 8, StatUnit.blocks);
stats.add(Stat.instructions, instructionsPerTick * 60, StatUnit.perSecond);
}
@Override

View File

@@ -38,7 +38,7 @@ public class LogicDisplay extends Block{
public void setStats(){
super.setStats();
stats.add(BlockStat.displaySize, "@x@", displaySize, displaySize);
stats.add(Stat.displaySize, "@x@", displaySize, displaySize);
}
public class LogicDisplayBuild extends Building{

View File

@@ -18,7 +18,7 @@ public class MemoryBlock extends Block{
public void setStats(){
super.setStats();
stats.add(BlockStat.memoryCapacity, memoryCapacity, StatUnit.none);
stats.add(Stat.memoryCapacity, memoryCapacity, StatUnit.none);
}
public class MemoryBuild extends Building{

View File

@@ -20,7 +20,7 @@ public class Battery extends PowerDistributor{
super(name);
outputsPower = true;
consumesPower = true;
flags = EnumSet.of(BlockFlag.powerRes);
flags = EnumSet.of(BlockFlag.battery);
}
public class BatteryBuild extends Building{

View File

@@ -55,7 +55,7 @@ public class ImpactReactor extends PowerGenerator{
super.setStats();
if(hasItems){
stats.add(BlockStat.productionTime, itemDuration / 60f, StatUnit.seconds);
stats.add(Stat.productionTime, itemDuration / 60f, StatUnit.seconds);
}
}

View File

@@ -72,7 +72,7 @@ public class ItemLiquidGenerator extends PowerGenerator{
super.setStats();
if(hasItems){
stats.add(BlockStat.productionTime, itemDuration / 60f, StatUnit.seconds);
stats.add(Stat.productionTime, itemDuration / 60f, StatUnit.seconds);
}
}

View File

@@ -5,6 +5,7 @@ import arc.graphics.*;
import arc.graphics.g2d.*;
import arc.math.*;
import arc.math.geom.*;
import arc.struct.*;
import arc.util.*;
import arc.util.io.*;
import mindustry.annotations.Annotations.*;
@@ -47,6 +48,7 @@ public class NuclearReactor extends PowerGenerator{
hasItems = true;
hasLiquids = true;
rebuildable = false;
flags = EnumSet.of(BlockFlag.reactor);
}
@Override
@@ -54,7 +56,7 @@ public class NuclearReactor extends PowerGenerator{
super.setStats();
if(hasItems){
stats.add(BlockStat.productionTime, itemDuration / 60f, StatUnit.seconds);
stats.add(Stat.productionTime, itemDuration / 60f, StatUnit.seconds);
}
}

View File

@@ -12,13 +12,13 @@ import mindustry.world.meta.*;
public class PowerGenerator extends PowerDistributor{
/** The amount of power produced per tick in case of an efficiency of 1.0, which represents 100%. */
public float powerProduction;
public BlockStat generationType = BlockStat.basePowerGeneration;
public Stat generationType = Stat.basePowerGeneration;
public PowerGenerator(String name){
super(name);
sync = true;
baseExplosiveness = 5f;
flags = EnumSet.of(BlockFlag.producer);
flags = EnumSet.of(BlockFlag.generator);
}
@Override

View File

@@ -124,8 +124,8 @@ public class PowerNode extends PowerBlock{
public void setStats(){
super.setStats();
stats.add(BlockStat.powerRange, laserRange, StatUnit.blocks);
stats.add(BlockStat.powerConnections, maxNodes, StatUnit.none);
stats.add(Stat.powerRange, laserRange, StatUnit.blocks);
stats.add(Stat.powerConnections, maxNodes, StatUnit.none);
}
@Override

View File

@@ -22,7 +22,7 @@ public class ThermalGenerator extends PowerGenerator{
public void setStats(){
super.setStats();
stats.add(BlockStat.tiles, attribute, floating);
stats.add(Stat.tiles, attribute, floating);
}
@Override

View File

@@ -37,7 +37,7 @@ public class AttributeSmelter extends GenericSmelter{
public void setStats(){
super.setStats();
stats.add(BlockStat.affinities, attribute, boostScale);
stats.add(Stat.affinities, attribute, boostScale);
}
public class AttributeSmelterBuild extends SmelterBuild{

View File

@@ -42,7 +42,7 @@ public class Cultivator extends GenericCrafter{
public void setStats(){
super.setStats();
stats.add(BlockStat.affinities, attribute);
stats.add(Stat.affinities, attribute);
}
@Override

View File

@@ -16,7 +16,9 @@ import mindustry.graphics.*;
import mindustry.type.*;
import mindustry.ui.*;
import mindustry.world.*;
import mindustry.world.blocks.environment.*;
import mindustry.world.meta.*;
import mindustry.world.meta.values.*;
import static mindustry.Vars.*;
@@ -135,29 +137,11 @@ public class Drill extends Block{
public void setStats(){
super.setStats();
stats.add(BlockStat.drillTier, table -> {
Seq<Block> list = content.blocks().select(b -> b.isFloor() && b.asFloor().itemDrop != null && b.asFloor().itemDrop.hardness <= tier);
stats.add(Stat.drillTier, new BlockFilterValue(b -> b instanceof Floor f && f.itemDrop != null && f.itemDrop.hardness <= tier));
table.table(l -> {
l.left();
for(int i = 0; i < list.size; i++){
Block item = list.get(i);
l.image(item.icon(Cicon.small)).size(8 * 3).padRight(2).padLeft(2).padTop(3).padBottom(3);
l.add(item.localizedName).left().padLeft(1).padRight(4);
if(i % 5 == 4){
l.row();
}
}
});
});
stats.add(BlockStat.drillSpeed, 60f / drillTime * size * size, StatUnit.itemsSecond);
stats.add(Stat.drillSpeed, 60f / drillTime * size * size, StatUnit.itemsSecond);
if(liquidBoostIntensity != 1){
stats.add(BlockStat.boostEffect, liquidBoostIntensity * liquidBoostIntensity, StatUnit.timesSpeed);
stats.add(Stat.boostEffect, liquidBoostIntensity * liquidBoostIntensity, StatUnit.timesSpeed);
}
}

View File

@@ -21,7 +21,7 @@ public class Fracker extends SolidPump{
public void setStats(){
super.setStats();
stats.add(BlockStat.productionTime, itemUseTime / 60f, StatUnit.seconds);
stats.add(Stat.productionTime, itemUseTime / 60f, StatUnit.seconds);
}
@Override

View File

@@ -2,6 +2,7 @@ package mindustry.world.blocks.production;
import arc.graphics.g2d.*;
import arc.math.*;
import arc.struct.*;
import arc.util.io.*;
import mindustry.content.*;
import mindustry.entities.*;
@@ -23,9 +24,6 @@ public class GenericCrafter extends Block{
public DrawBlock drawer = new DrawBlock();
//public Cons<GenericCrafterEntity> drawer = null;
//public Prov<TextureRegion[]> drawIcons = null;
public GenericCrafter(String name){
super(name);
update = true;
@@ -34,6 +32,7 @@ public class GenericCrafter extends Block{
idleSound = Sounds.machine;
sync = true;
idleSoundVolume = 0.03f;
flags = EnumSet.of(BlockFlag.factory);
}
@Override
@@ -44,14 +43,14 @@ public class GenericCrafter extends Block{
}
super.setStats();
stats.add(BlockStat.productionTime, craftTime / 60f, StatUnit.seconds);
stats.add(Stat.productionTime, craftTime / 60f, StatUnit.seconds);
if(outputItem != null){
stats.add(BlockStat.output, outputItem);
stats.add(Stat.output, outputItem);
}
if(outputLiquid != null){
stats.add(BlockStat.output, outputLiquid.liquid, outputLiquid.amount, false);
stats.add(Stat.output, outputLiquid.liquid, outputLiquid.amount, false);
}
}

View File

@@ -26,8 +26,8 @@ public class LiquidConverter extends GenericCrafter{
@Override
public void setStats(){
super.setStats();
stats.remove(BlockStat.output);
stats.add(BlockStat.output, outputLiquid.liquid, outputLiquid.amount * craftTime, false);
stats.remove(Stat.output);
stats.add(Stat.output, outputLiquid.liquid, outputLiquid.amount * craftTime, false);
}
public class LiquidConverterBuild extends GenericCrafterBuild{

View File

@@ -26,7 +26,7 @@ public class Pump extends LiquidBlock{
@Override
public void setStats(){
super.setStats();
stats.add(BlockStat.output, 60f * pumpAmount * size * size, StatUnit.liquidSecond);
stats.add(Stat.output, 60f * pumpAmount * size * size, StatUnit.liquidSecond);
}
@Override

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