diff --git a/build.gradle b/build.gradle index 2285fad3e3..f0040925ea 100644 --- a/build.gradle +++ b/build.gradle @@ -113,7 +113,7 @@ allprojects{ def output = 'en\n' def bundles = new File(project(':core').projectDir, 'assets/bundles/') bundles.list().sort().each{ name -> - if(name == "bundle.properties") return + if(name == "bundle.properties" || name == "global.properties") return output += name.substring("bundle".length() + 1, name.lastIndexOf('.')) + "\n" } new File(project(':core').projectDir, 'assets/locales').text = output diff --git a/core/assets-raw/sprites/blocks/environment/ore-wall-graphite1.png b/core/assets-raw/sprites/blocks/environment/ore-wall-graphite1.png new file mode 100644 index 0000000000..42506a971a Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/ore-wall-graphite1.png differ diff --git a/core/assets-raw/sprites/blocks/environment/ore-wall-graphite2.png b/core/assets-raw/sprites/blocks/environment/ore-wall-graphite2.png new file mode 100644 index 0000000000..b1ad32bd59 Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/ore-wall-graphite2.png differ diff --git a/core/assets-raw/sprites/blocks/environment/ore-wall-graphite3.png b/core/assets-raw/sprites/blocks/environment/ore-wall-graphite3.png new file mode 100644 index 0000000000..0c54a49527 Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/ore-wall-graphite3.png differ diff --git a/core/assets-raw/sprites/blocks/environment/rune-overlay/rune-overlay-crux89.png b/core/assets-raw/sprites/blocks/environment/rune-overlay/rune-overlay-crux89.png index f6b1b44303..f15fb43a33 100644 Binary files a/core/assets-raw/sprites/blocks/environment/rune-overlay/rune-overlay-crux89.png and b/core/assets-raw/sprites/blocks/environment/rune-overlay/rune-overlay-crux89.png differ diff --git a/core/assets-raw/sprites/blocks/environment/rune-overlay/rune-overlay89.png b/core/assets-raw/sprites/blocks/environment/rune-overlay/rune-overlay89.png index 3b974efaf3..b8b178367d 100644 Binary files a/core/assets-raw/sprites/blocks/environment/rune-overlay/rune-overlay89.png and b/core/assets-raw/sprites/blocks/environment/rune-overlay/rune-overlay89.png differ diff --git a/core/assets-raw/sprites/ui/sectors/sector-fallenVessel.png b/core/assets-raw/sprites/ui/sectors/sector-fallenVessel.png new file mode 100644 index 0000000000..007d10eb79 Binary files /dev/null and b/core/assets-raw/sprites/ui/sectors/sector-fallenVessel.png differ diff --git a/core/assets-raw/sprites/ui/sectors/sector-seaPort.png b/core/assets-raw/sprites/ui/sectors/sector-perilousHarbor.png similarity index 100% rename from core/assets-raw/sprites/ui/sectors/sector-seaPort.png rename to core/assets-raw/sprites/ui/sectors/sector-perilousHarbor.png diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index 6cc516ca9a..9d4759a2d4 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -101,6 +101,7 @@ coreattack = < Core is under attack! > nearpoint = [[ [scarlet]LEAVE DROP POINT IMMEDIATELY[] ]\nannihilation imminent database = Core Database database.button = Database +database.patched = Modified by data patches. viewfields = View Content Fields savegame = Save Game loadgame = Load Game @@ -883,13 +884,14 @@ sector.facility32m.name = Facility 32 M sector.taintedWoods.name = Tainted Woods sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Planetary Launch Terminal -sector.coastline.name = Coastline +sector.coastline.name = Humid Coastline sector.navalFortress.name = Naval Fortress sector.polarAerodrome.name = Polar Aerodrome sector.atolls.name = Atolls sector.testingGrounds.name = Testing Grounds -sector.seaPort.name = Sea Port +sector.perilousHarbor.name = Perilous Harbor sector.weatheredChannels.name = Weathered Channels +sector.fallenVessel.name = Fallen Vessel sector.mycelialBastion.name = Mycelial Bastion sector.frontier.name = Frontier sector.sunkenPier.name = Sunken Pier @@ -915,21 +917,6 @@ sector.planetaryTerminal.description = The final target.\n\nThis coastal base co sector.coastline.description = Remnants of naval unit technology have been detected at this location. Repel the enemy attacks, capture this sector, and acquire the technology. sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. -#do not translate -sector.facility32m.description = WIP, map submission by Stormride_R -sector.taintedWoods.description = WIP, map submission by Stormride_R -sector.sunkenPier.description = WIP, map submission by Stormride_R -sector.atolls.description = WIP, map submission by Stormride_R -sector.frontier.description = WIP, map submission by Stormride_R -sector.infestedCanyons.description = WIP, map submission by Skeledragon -sector.polarAerodrome.description = WIP, map submission by hhh i 17 -sector.testingGrounds.description = WIP, map submission by dnx2019 -sector.seaPort.description = WIP, map submission by inkognito626 -sector.weatheredChannels.description = WIP, map submission by Skeledragon -sector.mycelialBastion.description = WIP, map submission by Skeledragon -sector.cruxscape.description = WIP, map submission by Stormride_R -sector.geothermalStronghold.description = WIP, map submission by Skeledragon - sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Lake @@ -948,6 +935,12 @@ sector.crossroads.name = Crossroads sector.karst.name = Karst sector.origin.name = Origin +sector.origin.credit = Mechanical Fishe +sector.karst.credit = Mechanical Fishe +sector.caldera-erekir.credit = hhh i 17 +sector.siege.credit = hhh i 17 +sector.ravine.credit = Bepis + sector.onset.description = Commence the conquest of Erekir. Gather resources, produce units, and begin researching technology. sector.aegis.description = This sector contains deposits of tungsten.\nResearch the [accent]Impact Drill[] to mine this resource, and destroy the enemy base in the area. sector.lake.description = This sector's slag lake greatly limits viable units. A hover unit is the only option.\nResearch the [accent]ship fabricator[] and produce an [accent]elude[] unit as soon as possible. @@ -2128,6 +2121,7 @@ hint.waveFire = [accent]Wave[] turrets with water as ammunition will automatical hint.generator = :combustion-generator: [accent]Combustion Generators[] burn coal and transmit power to adjacent blocks.\n\nPower transmission range can be extended with :power-node: [accent]Power Nodes[]. hint.guardian = [accent]Guardian[] units are armored. Weak ammo such as [accent]Copper[] and [accent]Lead[] is [scarlet]not effective[].\n\nUse higher tier turrets or :graphite: [accent]Graphite[] :duo:Duo/:salvo:Salvo ammunition to take Guardians down. hint.coreUpgrade = Cores can be upgraded by [accent]placing higher-tier cores over them[].\n\nPlace a :core-foundation: [accent]Foundation[] core over the :core-shard: [accent]Shard[] core. Make sure it is free from nearby obstructions. +hint.serpuloCoreZone = Additional :core-shard: [accent]Cores[] may be constructed on :core-zone: [accent]Core Zone[] tiles. hint.cannotUpgrade = A [red]:tree:[] icon over a payload unit indicates that its upgraded version is not researched yet.\n\nUnit upgrades must be researched in the [accent]:tree: tech tree[] before they can be produced in reconstructors. hint.presetLaunch = Gray [accent]landing zone sectors[], such as [accent]Frozen Forest[], can be launched to from anywhere. They do not require capture of nearby territory.\n\n[accent]Numbered sectors[], such as this one, are [accent]optional[]. hint.presetDifficulty = This sector has a [scarlet]high enemy threat level[].\nLaunching to such sectors is [accent]not recommended[] without proper technology and preparation. @@ -2156,6 +2150,34 @@ gz.zone2 = Anything built in the radius is destroyed when a wave starts. gz.zone3 = A wave will begin now.\nGet ready. gz.finish = Build more turrets, mine more resources,\nand defend against all the waves to [accent]capture the sector[]. +fungalpass.tutorial1 = Use [accent]units[] to defend buildings and attack the enemy.\nResearch and place a :ground-factory: [accent]ground factory[]. +fungalpass.tutorial2 = Select :dagger: [accent]Dagger[] units in the factory.\nProduce 3 units. + +frontier.tutorial1 = The :additive-reconstructor: [accent]Additive Reconstructor[]\nupgrades tier 1 units to tier 2\nusing :silicon: silicon and :graphite: graphite.\n\n[accent]Research and reconstruct\na []:dagger:[accent] dagger to a []:mace:[accent] mace. +frontier.tutorial2 = Enemy waves send [accent]infinitely[] until all enemy cores are [unlaunched]destroyed. +frontier.tutorial3 = [accent]Attack the enemy base fast to prevent waves from getting too high[]. + +atolls.destroy1 = Destroy the 2 enemy [accent]foundation cores[] first.\n[accent]Gain access to thorium[]. +atolls.mega1 = Enter [accent]command mode[] and select the :mega:[accent]Mega[] units. +atolls.mega2 = Select the  [accent]Load Units[] command to have Mega units to pick up ground units. +atolls.mega3 = Move the Mega units [accent]above[] ground units to load them in. +atolls.mega4 = [accent]Drop ground units here to attack. +atolls.mega5 = Select the  [accent]Unload Payload[] command to have Mega units drop their carried units. +atolls.mega6 = Units will be [accent]automatically dropped[] while the  Unload Payload command is selected. +atolls.mega7 = Mega units [accent]will not[] drop ground units while they are above walls or deep water. +atolls.mega8 = [accent]Drop naval units here to attack.[] +atolls.attack1 = 1: Drop ground units here to attack from this location. +atolls.attack2 = 2: Alternatively, drop naval units here to launch a surprise attack. +atolls.carry1 = Carrying ground units requires :mega:[accent]Mega[] units. +atolls.carry2 = 1: Command Mega units to [accent]move over[] the ground units. +atolls.carry3 = 2: Select the  [accent]Load Units[] command in order to pick up the ground units with the Mega units. +atolls.carry4 = 3: Command and move the Mega carriers [accent]loaded with units[]. +atolls.carry5 = 4: Select the  [accent]'Unload Payload'[] command in order for the Mega units to drop the ground units. +atolls.carry6 = These steps can be reviewed [accent]here[]. +atolls.carry7 = Follow these instructions to airdrop more units near the enemy base. +atolls.noairunit = This base is too well-fortified to destroy with air units. +atolls.2strategies = There are two strategies to destroy this base. + onset.mine = Click to mine :beryllium: [accent]beryllium[] from walls.\n\nUse [accent][[WASD] to move. onset.mine.mobile = Tap to mine :beryllium: [accent]beryllium[] from walls. onset.research = Open the :tree: tech tree.\nResearch, then place a :turbine-condenser: [accent]turbine condenser[] on the vent.\nThis will generate [accent]power[]. @@ -2184,7 +2206,7 @@ aegis.tungsten = Tungsten can be mined using an [accent]impact drill[].\nThis st split.pickup = Some blocks can be picked up by the core unit.\nPick up this [accent]container[] and place it onto the [accent]payload loader[].\n(Default keys are [[ and ] to pick up and drop) split.pickup.mobile = Some blocks can be picked up by the core unit.\nPick up this [accent]container[] and place it onto the [accent]payload loader[].\n(To pick up or drop something, long-press it.) -split.acquire = You must acquire some tungsten to build units. +split.acquire = Acquire some tungsten to build units. split.build = Units must be transported to the other side of the wall.\nPlace two [accent]Payload Mass Drivers[], one on each side of the wall.\nSet up the link by pressing one of them, then selecting the other. split.container = Similar to the container, units can also be transported using a [accent]Payload Mass Driver[].\nPlace a unit fabricator adjacent to a mass driver to load them, then send them across the wall to attack the enemy base. @@ -2655,6 +2677,7 @@ laccess.displaywidth = Width of a display block in pixels. laccess.displayheight = Height of a display block in pixels. laccess.buffersize = For messages: Length of the contents.\nFor displays: Number of unprocessed graphics commands. laccess.operations = Number of operations performed on the block.\nFor displays, returns the number of drawflush operations. +laccess.maxunits = Maximum units that a team can have.\nCan only be sensed from cores. lcategory.unknown = Unknown lcategory.unknown.description = Uncategorized instructions. diff --git a/core/assets/bundles/bundle_be.properties b/core/assets/bundles/bundle_be.properties index 6f608c3dfe..f16c96fa12 100644 --- a/core/assets/bundles/bundle_be.properties +++ b/core/assets/bundles/bundle_be.properties @@ -101,6 +101,7 @@ coreattack = < Ядро знаходзіцца пад атакай! > nearpoint = [[ [scarlet]ПАКІНЬЦЕ КРОПКУ ВЫСАДКІ НЕАДКЛАДНА[] ]\nанігіляцыя непазбежна database = База дадзеных ядра database.button = База Дадзеных +database.patched = Modified by data patches. viewfields = View Content Fields savegame = Захаваць Гульню loadgame = Спампаваць Гульню @@ -885,8 +886,9 @@ sector.navalFortress.name = Марская Крэпасць sector.polarAerodrome.name = Polar Aerodrome sector.atolls.name = Atolls sector.testingGrounds.name = Testing Grounds -sector.seaPort.name = Sea Port +sector.perilousHarbor.name = Perilous Harbor sector.weatheredChannels.name = Weathered Channels +sector.fallenVessel.name = Fallen Vessel sector.mycelialBastion.name = Mycelial Bastion sector.frontier.name = Frontier sector.sunkenPier.name = Sunken Pier @@ -912,21 +914,6 @@ sector.planetaryTerminal.description = The final target.\n\nThis coastal base co sector.coastline.description = Remnants of naval unit technology have been detected at this location. Repel the enemy attacks, capture this sector, and acquire the technology. sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. -#do not translate -sector.facility32m.description = WIP, map submission by Stormride_R -sector.taintedWoods.description = WIP, map submission by Stormride_R -sector.sunkenPier.description = WIP, map submission by Stormride_R -sector.atolls.description = WIP, map submission by Stormride_R -sector.frontier.description = WIP, map submission by Stormride_R -sector.infestedCanyons.description = WIP, map submission by Skeledragon -sector.polarAerodrome.description = WIP, map submission by hhh i 17 -sector.testingGrounds.description = WIP, map submission by dnx2019 -sector.seaPort.description = WIP, map submission by inkognito626 -sector.weatheredChannels.description = WIP, map submission by Skeledragon -sector.mycelialBastion.description = WIP, map submission by Skeledragon -sector.cruxscape.description = WIP, map submission by Stormride_R -sector.geothermalStronghold.description = WIP, map submission by Skeledragon - sector.onset.name = Пачатак sector.aegis.name = Ахова sector.lake.name = Рака @@ -945,6 +932,12 @@ sector.crossroads.name = Crossroads sector.karst.name = Karst sector.origin.name = Origin +sector.origin.credit = Mechanical Fishe +sector.karst.credit = Mechanical Fishe +sector.caldera-erekir.credit = hhh i 17 +sector.siege.credit = hhh i 17 +sector.ravine.credit = Bepis + sector.onset.description = Commence the conquest of Erekir. Gather resources, produce units, and begin researching technology. sector.aegis.description = This sector contains deposits of tungsten.\nResearch the [accent]Impact Drill[] to mine this resource, and destroy the enemy base in the area. sector.lake.description = This sector's slag lake greatly limits viable units. A hover unit is the only option.\nResearch the [accent]ship fabricator[] and produce an [accent]elude[] unit as soon as possible. @@ -2125,6 +2118,7 @@ hint.waveFire = Турэлі [accent]Хваля[] заражаныя вадой hint.generator = :combustion-generator: [accent]Генератары Згарання[] падпальваюць вугаль і перанакіраванне энергію суседнім блокам.\n\nРадыюс перадачы энергіі можа быць пашыраны з дапамогай :power-node: [accent]Энергетычных Вузлоў[]. hint.guardian = Адзінкі [accent]Вартаўнік[] браніраваныя. Слабыя патроны такія як [accent]Медзь[] і [accent]Свінец[] [scarlet]не эфетўныя[].\n\nВыкарыстоўвайце больш моцныя турэлі або :graphite: [accent]Графіт[] у :duo:Двайных Турэлях/:salvo:Залпах каб знішчыць Вартаўніка. hint.coreUpgrade = Ядра могуць быць палепшаны [accent]размяшчэннем больш моцных паверх другіх[].\n\nРазмясціце ядро :core-foundation: [accent]Штаб[] паверх ядра :core-shard: [accent]Аскепак[]. Пераканайцеся, што гэта свабодна ад канструкцый побач. +hint.serpuloCoreZone = Additional cores may be constructed on :core-zone: [accent]Core Zone[] tiles. hint.cannotUpgrade = A [red]:tree:[] icon over a payload unit indicates that its upgraded version is not researched yet.\n\nUnit upgrades must be researched in the [accent]:tree: tech tree[] before they can be produced in reconstructors. hint.presetLaunch = Серыя [accent]сектара зоны пасадкі[], такія як [accent]Ледзяны Лес[], можна запусціць з любога месца. Яны не патрабуюць захапляць тэрыторыі побач.\n\n[accent]Пранумараваныя сектары[], такія як гэты, [accent]неабавязковыя[]. hint.presetDifficulty = На гэтым сектары [scarlet]вялікі узровень впрожай пагрозы[].\nЗапуск на такія сектары [accent]не рэкамендуецца[] без належнай тэхналогіі і падрыхтоўкі. @@ -2153,6 +2147,34 @@ gz.zone2 = Усё што пастроена ў гэтай вобласцт бу gz.zone3 = Хваля амаль пачалася.\nПрыгатуйцеся. gz.finish = Пабудуйце больш турэляў, дабудзьце больш рэсурсаў,\nі вытрывайце ад усе хвалі каб [accent]захапіць гэты сектар[]. +fungalpass.tutorial1 = Use [accent]units[] to defend buildings and attack the enemy.\nResearch and place a :ground-factory: [accent]ground factory[]. +fungalpass.tutorial2 = Select :dagger: [accent]Dagger[] units in the factory.\nProduce 3 units. + +frontier.tutorial1 = The :additive-reconstructor: [accent]Additive Reconstructor[]\nupgrades tier 1 units to tier 2\nusing :silicon: silicon and :graphite: graphite.\n\n[accent]Research and reconstruct\na []:dagger:[accent] dagger to a []:mace:[accent] mace. +frontier.tutorial2 = Enemy waves send [accent]infinitely[] until all enemy cores are [unlaunched]destroyed. +frontier.tutorial3 = [accent]Attack the enemy base fast to prevent waves from getting too high[]. + +atolls.destroy1 = Destroy the 2 enemy [accent]foundation cores[] first.\n[accent]Gain access to thorium[]. +atolls.mega1 = Enter [accent]command mode[] and select the :mega:[accent]Mega[] units. +atolls.mega2 = Select the \ue87b [accent]Load Units[] command to have Mega units to pick up ground units. +atolls.mega3 = Move the Mega units [accent]above[] ground units to load them in. +atolls.mega4 = [accent]Drop ground units here to attack. +atolls.mega5 = Select the \ue879 [accent]Unload Payload[] command to have Mega units drop their carried units. +atolls.mega6 = Units will be [accent]automatically dropped[] while the \ue879 Unload Payload command is selected. +atolls.mega7 = Mega units [accent]will not[] drop ground units while they are above walls or deep water. +atolls.mega8 = [accent]Drop naval units here to attack.[] +atolls.attack1 = 1: Drop ground units here to attack from this location. +atolls.attack2 = 2: Alternatively, drop naval units here to launch a surprise attack. +atolls.carry1 = Carrying ground units requires :mega:[accent]Mega[] units. +atolls.carry2 = 1: Command Mega units to [accent]move over[] the ground units. +atolls.carry3 = 2: Select the \ue87b [accent]Load Units[] command in order to pick up the ground units with the Mega units. +atolls.carry4 = 3: Command and move the Mega carriers [accent]loaded with units[]. +atolls.carry5 = 4: Select the \ue879 [accent]'Unload Payload'[] command in order for the Mega units to drop the ground units. +atolls.carry6 = These steps can be reviewed [accent]here[]. +atolls.carry7 = Follow these instructions to airdrop more units near the enemy base. +atolls.noairunit = This base is too well-fortified to destroy with air units. +atolls.2strategies = There are two strategies to destroy this base. + onset.mine = Нажміце каб дабываць :beryllium: [accent]берылій[] са сцен.\n\nВыкарыстоўвайце [accent][[WASD] каб рухацца. onset.mine.mobile = Націсніце каб дабываць :beryllium: [accent]берылій[] са сцен. onset.research = Адчыніце :tree: дрэва тэхналогій.\nДаследуйце, а пасля размясціце :mechanical-drill: [accent]Турбінны Кандэнсатар[], на гейзеры.\nЁн будзе генераваць [accent]энергію[]. @@ -2652,6 +2674,7 @@ laccess.displaywidth = Width of a display block in pixels. laccess.displayheight = Height of a display block in pixels. laccess.buffersize = Number of unprocessed commands in the graphics buffer of a display. laccess.operations = Number of operations performed on the block.\nFor displays, returns the number of drawflush operations. +laccess.maxunits = Maximum units that a team can have.\nCan only be sensed from cores. lcategory.unknown = Unknown lcategory.unknown.description = Uncategorized instructions. diff --git a/core/assets/bundles/bundle_bg.properties b/core/assets/bundles/bundle_bg.properties index 0ddcf9b8c0..10cdbd8332 100644 --- a/core/assets/bundles/bundle_bg.properties +++ b/core/assets/bundles/bundle_bg.properties @@ -101,6 +101,7 @@ coreattack = < Ядрото е нападнато! > nearpoint = [[ [scarlet]НАПУСНЕТЕ ОПАСНАТА ЗОНА МОМЕНТАЛНО[] ]\nредстои унижощение database = Енциклопедия database.button = База данни +database.patched = Modified by data patches. viewfields = View Content Fields savegame = Запази Игра loadgame = Зареди Игра @@ -885,8 +886,9 @@ sector.navalFortress.name = Крайморска крепост sector.polarAerodrome.name = Polar Aerodrome sector.atolls.name = Atolls sector.testingGrounds.name = Testing Grounds -sector.seaPort.name = Sea Port +sector.perilousHarbor.name = Perilous Harbor sector.weatheredChannels.name = Weathered Channels +sector.fallenVessel.name = Fallen Vessel sector.mycelialBastion.name = Mycelial Bastion sector.frontier.name = Frontier sector.sunkenPier.name = Sunken Pier @@ -912,21 +914,6 @@ sector.planetaryTerminal.description = Крайна цел.\n\nТази край sector.coastline.description = На това място са засечени останките от технология за производството на морски единици. Отблъснете вражеските атаки, завладейте този сектор и присвоете технологията. sector.navalFortress.description = Врагът е установил база на отдалечен, естествено укрепен остров. Унищожете базите им. Придобийте напредналата им морска технология и я проучете. -#do not translate -sector.facility32m.description = WIP, map submission by Stormride_R -sector.taintedWoods.description = WIP, map submission by Stormride_R -sector.sunkenPier.description = WIP, map submission by Stormride_R -sector.atolls.description = WIP, map submission by Stormride_R -sector.frontier.description = WIP, map submission by Stormride_R -sector.infestedCanyons.description = WIP, map submission by Skeledragon -sector.polarAerodrome.description = WIP, map submission by hhh i 17 -sector.testingGrounds.description = WIP, map submission by dnx2019 -sector.seaPort.description = WIP, map submission by inkognito626 -sector.weatheredChannels.description = WIP, map submission by Skeledragon -sector.mycelialBastion.description = WIP, map submission by Skeledragon -sector.cruxscape.description = WIP, map submission by Stormride_R -sector.geothermalStronghold.description = WIP, map submission by Skeledragon - sector.onset.name = Началото sector.aegis.name = Егида sector.lake.name = Езеро @@ -945,6 +932,12 @@ sector.crossroads.name = Кръстопът sector.karst.name = Карст sector.origin.name = Произход +sector.origin.credit = Mechanical Fishe +sector.karst.credit = Mechanical Fishe +sector.caldera-erekir.credit = hhh i 17 +sector.siege.credit = hhh i 17 +sector.ravine.credit = Bepis + sector.onset.description = Започнете овладяването на Ерекир. Събирайте ресурси, произвеждайте единици и започнете да проучвате технологии. sector.aegis.description = Този сектор съдържа депозит от волфрам.\nПроучете [accent]Пробивния свредел[], за да изкопавате този ресурс и унищожете вражеската база в района. sector.lake.description = Количеството слаг в този сектор значително ограничава подходящите единици. Единствено летците са възможни.\nПроучете [accent]Фабриката за кораби[] и произведете тази [accent]гъвкава[] единица час по-скоро. @@ -2125,6 +2118,7 @@ hint.waveFire = Оръдията [accent]Вълна[] заредени със в hint.generator = \uf879 [accent]Горивните генератори[] горят въглища и зареждат с електроенергия съседни блокове.\n\nРазстоянието за предаване на енергия може да се увеличи чрез \uf87f [accent]Електрически възли[]. hint.guardian = [accent]Пазителите[] са единици с повече броня. Слаби боеприпаси като [accent]Мед[] и [accent]Олово[] са [scarlet]неподходящи[] срещу тях.\n\nИзползвайте по-мощни оръдия или заредете Вашите \uf861Дуо/\uf859Салво с \uf835 [accent]Графит[], за да ги повалите. hint.coreUpgrade = Ядрата могат да бъдат подобрявани като [accent]поставите по-добро ядро върху тях[].\n\nПоставете \uf868 [accent]Фондация[] върху \uf869 ядрото [accent]Частица[]. Уверете се че няма други препятствия там, където поставяте ядрото. +hint.serpuloCoreZone = Additional cores may be constructed on :core-zone: [accent]Core Zone[] tiles. hint.cannotUpgrade = A [red]:tree:[] icon over a payload unit indicates that its upgraded version is not researched yet.\n\nUnit upgrades must be researched in the [accent]:tree: tech tree[] before they can be produced in reconstructors. hint.presetLaunch = Към сивите [accent]сектори за кацане[], какъвто е [accent]Замръзнала Гора[] можете да изстреляте ядро отвсякъде. Не е необходимо да превземате съседна територия.\n\n[accent]Номерираните сектори[], като този, са [accent]пожелателни[]. hint.presetDifficulty = Този сектор има [scarlet]висока вражеска заплаха[].\nИзстрелването към такива сектори е [accent]нежелателно[] без нухната технология и подготовка. @@ -2153,6 +2147,34 @@ gz.zone2 = Всичко построено в нейния радиус ще б gz.zone3 = Сега ще започне една такава вълна.\nПригответе се. gz.finish = Издигнете още оръдия, изкопайте повече ресурси\nи се защитете от всички прииждащи вълни, за да [accent]завладеете този сектор[]. +fungalpass.tutorial1 = Use [accent]units[] to defend buildings and attack the enemy.\nResearch and place a :ground-factory: [accent]ground factory[]. +fungalpass.tutorial2 = Select :dagger: [accent]Dagger[] units in the factory.\nProduce 3 units. + +frontier.tutorial1 = The :additive-reconstructor: [accent]Additive Reconstructor[]\nupgrades tier 1 units to tier 2\nusing :silicon: silicon and :graphite: graphite.\n\n[accent]Research and reconstruct\na []:dagger:[accent] dagger to a []:mace:[accent] mace. +frontier.tutorial2 = Enemy waves send [accent]infinitely[] until all enemy cores are [unlaunched]destroyed. +frontier.tutorial3 = [accent]Attack the enemy base fast to prevent waves from getting too high[]. + +atolls.destroy1 = Destroy the 2 enemy [accent]foundation cores[] first.\n[accent]Gain access to thorium[]. +atolls.mega1 = Enter [accent]command mode[] and select the :mega:[accent]Mega[] units. +atolls.mega2 = Select the \ue87b [accent]Load Units[] command to have Mega units to pick up ground units. +atolls.mega3 = Move the Mega units [accent]above[] ground units to load them in. +atolls.mega4 = [accent]Drop ground units here to attack. +atolls.mega5 = Select the \ue879 [accent]Unload Payload[] command to have Mega units drop their carried units. +atolls.mega6 = Units will be [accent]automatically dropped[] while the \ue879 Unload Payload command is selected. +atolls.mega7 = Mega units [accent]will not[] drop ground units while they are above walls or deep water. +atolls.mega8 = [accent]Drop naval units here to attack.[] +atolls.attack1 = 1: Drop ground units here to attack from this location. +atolls.attack2 = 2: Alternatively, drop naval units here to launch a surprise attack. +atolls.carry1 = Carrying ground units requires :mega:[accent]Mega[] units. +atolls.carry2 = 1: Command Mega units to [accent]move over[] the ground units. +atolls.carry3 = 2: Select the \ue87b [accent]Load Units[] command in order to pick up the ground units with the Mega units. +atolls.carry4 = 3: Command and move the Mega carriers [accent]loaded with units[]. +atolls.carry5 = 4: Select the \ue879 [accent]'Unload Payload'[] command in order for the Mega units to drop the ground units. +atolls.carry6 = These steps can be reviewed [accent]here[]. +atolls.carry7 = Follow these instructions to airdrop more units near the enemy base. +atolls.noairunit = This base is too well-fortified to destroy with air units. +atolls.2strategies = There are two strategies to destroy this base. + onset.mine = Цъкнете, за да копаете \uf748 [accent]берилий[] от стените.\n\nИзползвайте [accent][[WASD], за да се придвижвате. onset.mine.mobile = Натиснете, за да копаете \uf748 [accent]берилий[] от стените. onset.research = Отворете \ue875 технологичния план.\nПроучете, после поставете \uf73e [accent]турбинен сгъстител[] върху отвора.\nТова ще генерира [accent]електричество[]. @@ -2652,6 +2674,7 @@ laccess.displaywidth = Width of a display block in pixels. laccess.displayheight = Height of a display block in pixels. laccess.buffersize = Number of unprocessed commands in the graphics buffer of a display. laccess.operations = Number of operations performed on the block.\nFor displays, returns the number of drawflush operations. +laccess.maxunits = Maximum units that a team can have.\nCan only be sensed from cores. lcategory.unknown = Неизвестно lcategory.unknown.description = Некатегоризирани указания. diff --git a/core/assets/bundles/bundle_ca.properties b/core/assets/bundles/bundle_ca.properties index 067d92c96b..6d9d658a7d 100644 --- a/core/assets/bundles/bundle_ca.properties +++ b/core/assets/bundles/bundle_ca.properties @@ -101,6 +101,7 @@ coreattack = < Estan atacant el nucli! > nearpoint = [[ [scarlet]ABANDONEU EL PUNT D’ATERRATGE IMMEDIATAMENT[] ]\nAniquilació imminent database = Base de dades del nucli database.button = Base de dades +database.patched = Modified by data patches. viewfields = View Content Fields savegame = Desa la partida loadgame = Carrega una partida @@ -885,8 +886,9 @@ sector.navalFortress.name = Fortalesa naval sector.polarAerodrome.name = Polar Aerodrome sector.atolls.name = Atolls sector.testingGrounds.name = Testing Grounds -sector.seaPort.name = Sea Port +sector.perilousHarbor.name = Perilous Harbor sector.weatheredChannels.name = Weathered Channels +sector.fallenVessel.name = Fallen Vessel sector.mycelialBastion.name = Mycelial Bastion sector.frontier.name = Frontier sector.sunkenPier.name = Sunken Pier @@ -912,21 +914,6 @@ sector.planetaryTerminal.description = L’objectiu final.\n\nAquesta base coste sector.coastline.description = S’han detectat restes de tecnologia naval a prop. Repel·liu els atacs enemics, captureu el sector i aconseguiu la tecnologia. sector.navalFortress.description = L’enemic ha establert una base en una illa distant amb defenses geològiques naturals. Destruïu el post avançat i aconseguiu i investigueu les seves tecnologies navals avançades. -#do not translate -sector.facility32m.description = WIP, map submission by Stormride_R -sector.taintedWoods.description = WIP, map submission by Stormride_R -sector.sunkenPier.description = WIP, map submission by Stormride_R -sector.atolls.description = WIP, map submission by Stormride_R -sector.frontier.description = WIP, map submission by Stormride_R -sector.infestedCanyons.description = WIP, map submission by Skeledragon -sector.polarAerodrome.description = WIP, map submission by hhh i 17 -sector.testingGrounds.description = WIP, map submission by dnx2019 -sector.seaPort.description = WIP, map submission by inkognito626 -sector.weatheredChannels.description = WIP, map submission by Skeledragon -sector.mycelialBastion.description = WIP, map submission by Skeledragon -sector.cruxscape.description = WIP, map submission by Stormride_R -sector.geothermalStronghold.description = WIP, map submission by Skeledragon - sector.onset.name = El principi sector.aegis.name = L’ègida sector.lake.name = El llac @@ -945,6 +932,12 @@ sector.crossroads.name = L’encreuament sector.karst.name = El carst sector.origin.name = Origen +sector.origin.credit = Mechanical Fishe +sector.karst.credit = Mechanical Fishe +sector.caldera-erekir.credit = hhh i 17 +sector.siege.credit = hhh i 17 +sector.ravine.credit = Bepis + sector.onset.description = El sector del tutorial. Encara no s’ha establert cap objectiu. Manteniu-vos a l’espera per a rebre més informació. sector.aegis.description = L’enemic està protegit per escuts. S’ha detectat un mòdul experimental antiescuts al sector.\nLocalitzeu-lo i abastiu-lo amb tungstè per a destruir la base enemiga. sector.lake.description = El llac de residus d’aquest sector limita el nombre d’unitats viables. Les unitats aèries són l’única via possible.\nRecerqueu la tecnologia per a construir [accent]muntadores de naus[] i produïu una unitat [accent]Elude[] tan aviat com pugueu. @@ -2125,6 +2118,7 @@ hint.waveFire = Les torretes de tipus [accent]Wave[] que usin aigua com munició hint.generator = Els :combustion-generator: [accent]Generadors a combustió[] cremen carbó i transmeten energia als blocs adjacents.\n\nL’abast de la transmissió d’energia es pot expandir amb :power-node: [accent]node d’energia[]. hint.guardian = Les unitats de tipus [accent]Guardià[] són unitats blindades. La munició dèbil com ara el [accent]Coure[] i el [accent]Plom[] [scarlet]no és efectiva[].\n\nEmpreu torretes de nivell més alt o carregueu torretes :duo:Duo/:salvo:Salvo amb :graphite: [accent]Grafit[] per a destruir-los. hint.coreUpgrade = Els nuclis es poden millorar [accent]construint-hi a sobre nuclis amb millors característiques[].\n\nSitueu un nucli de tipus [accent]Fonament[] a sobre del nucli [accent]Estella[]. Assegureu-vos que no hi hagin obstruccions properes. +hint.serpuloCoreZone = Additional cores may be constructed on :core-zone: [accent]Core Zone[] tiles. hint.cannotUpgrade = A [red]:tree:[] icon over a payload unit indicates that its upgraded version is not researched yet.\n\nUnit upgrades must be researched in the [accent]:tree: tech tree[] before they can be produced in reconstructors. hint.presetLaunch = Als [accent]sectors amb zones d’aterratge[] de color gris, com ara [accent]El bosc gelat[], s’hi pot accedir des de qualsevol lloc. No cal capturar cap territori proper.\n\nEls [accent]sectors numerats[], com aquest, són [accent]opcionals[]. hint.presetDifficulty = Aquest sector té un [accent]nivell d’amenaça enemiga elevat[].\n[accent]No es recomana[] aterrar a aquests sectors sense les tecnologies i la preparació adequades. @@ -2153,6 +2147,34 @@ gz.zone2 = Tot el que es construeixi a dins es destruirà quan comenci la proper gz.zone3 = Ara comença una onada.\nPrepareu-vos. gz.finish = Construïu més torretes, extraieu més recursos \ni defense-vos contra totes les onades per a [accent]capturar el sector[]. +fungalpass.tutorial1 = Use [accent]units[] to defend buildings and attack the enemy.\nResearch and place a :ground-factory: [accent]ground factory[]. +fungalpass.tutorial2 = Select :dagger: [accent]Dagger[] units in the factory.\nProduce 3 units. + +frontier.tutorial1 = The :additive-reconstructor: [accent]Additive Reconstructor[]\nupgrades tier 1 units to tier 2\nusing :silicon: silicon and :graphite: graphite.\n\n[accent]Research and reconstruct\na []:dagger:[accent] dagger to a []:mace:[accent] mace. +frontier.tutorial2 = Enemy waves send [accent]infinitely[] until all enemy cores are [unlaunched]destroyed. +frontier.tutorial3 = [accent]Attack the enemy base fast to prevent waves from getting too high[]. + +atolls.destroy1 = Destroy the 2 enemy [accent]foundation cores[] first.\n[accent]Gain access to thorium[]. +atolls.mega1 = Enter [accent]command mode[] and select the :mega:[accent]Mega[] units. +atolls.mega2 = Select the \ue87b [accent]Load Units[] command to have Mega units to pick up ground units. +atolls.mega3 = Move the Mega units [accent]above[] ground units to load them in. +atolls.mega4 = [accent]Drop ground units here to attack. +atolls.mega5 = Select the \ue879 [accent]Unload Payload[] command to have Mega units drop their carried units. +atolls.mega6 = Units will be [accent]automatically dropped[] while the \ue879 Unload Payload command is selected. +atolls.mega7 = Mega units [accent]will not[] drop ground units while they are above walls or deep water. +atolls.mega8 = [accent]Drop naval units here to attack.[] +atolls.attack1 = 1: Drop ground units here to attack from this location. +atolls.attack2 = 2: Alternatively, drop naval units here to launch a surprise attack. +atolls.carry1 = Carrying ground units requires :mega:[accent]Mega[] units. +atolls.carry2 = 1: Command Mega units to [accent]move over[] the ground units. +atolls.carry3 = 2: Select the \ue87b [accent]Load Units[] command in order to pick up the ground units with the Mega units. +atolls.carry4 = 3: Command and move the Mega carriers [accent]loaded with units[]. +atolls.carry5 = 4: Select the \ue879 [accent]'Unload Payload'[] command in order for the Mega units to drop the ground units. +atolls.carry6 = These steps can be reviewed [accent]here[]. +atolls.carry7 = Follow these instructions to airdrop more units near the enemy base. +atolls.noairunit = This base is too well-fortified to destroy with air units. +atolls.2strategies = There are two strategies to destroy this base. + onset.mine = Feu clic als murs per a extraure :beryllium: [accent]beril·li[].\n\nFeu servir [accent][[WASD] per a moure-vos. onset.mine.mobile = Toqueu per a extraure :beryllium: [accent]beril·li[] dels murs. onset.research = Obriu :tree: l’arbre tecnològic.\nInvestigueu i després construïu una :turbine-condenser: [accent]turbina condensadora[] a la fumarola.\nAixí aconseguireu generar [accent]energia[]. @@ -2652,6 +2674,7 @@ laccess.displaywidth = Width of a display block in pixels. laccess.displayheight = Height of a display block in pixels. laccess.buffersize = Number of unprocessed commands in the graphics buffer of a display. laccess.operations = Number of operations performed on the block.\nFor displays, returns the number of drawflush operations. +laccess.maxunits = Maximum units that a team can have.\nCan only be sensed from cores. lcategory.unknown = Desconegut lcategory.unknown.description = Instruccions sense categoria. diff --git a/core/assets/bundles/bundle_cs.properties b/core/assets/bundles/bundle_cs.properties index d85f0b4cf3..cc1ecdef60 100644 --- a/core/assets/bundles/bundle_cs.properties +++ b/core/assets/bundles/bundle_cs.properties @@ -101,6 +101,7 @@ coreattack = < Jádro je pod útokem! > nearpoint = [ [scarlet]IHNED OPUSŤTE PROSTOR VÝSADKU[] ]\nNebezpečí okamžité smrti! database = Katalog objektů database.button = Databáze +database.patched = Modified by data patches. viewfields = View Content Fields savegame = Uložit hru loadgame = Načíst hru @@ -885,8 +886,9 @@ sector.navalFortress.name = Námořní pevnost sector.polarAerodrome.name = Polární aerodrom sector.atolls.name = Atoly sector.testingGrounds.name = Testovací zázemí -sector.seaPort.name = Mořský přístav +sector.perilousHarbor.name = Perilous Harbor sector.weatheredChannels.name = Zvětralé údolí +sector.fallenVessel.name = Fallen Vessel sector.mycelialBastion.name = Pevnost podhoubí sector.frontier.name = Fronta sector.sunkenPier.name = Potopené molo @@ -912,21 +914,6 @@ sector.planetaryTerminal.description = Konečný cíl.\n\nTato pobřežní zákl sector.coastline.description = V této lokaci byly objeveny pozůstatky techniky námořních jednotek. Odražte nepřátelské útoky, dobijte tento sektor a získejte technologii. sector.navalFortress.description = Nepřítel si vybudoval základnu na odlehlém, přírodou opevněném ostrově. Zničte tuto základnu. Získejte jejich pokročilou technologii námořních plavidel a vyzkoumejte ji. -#do not translate -sector.facility32m.description = WIP, map submission by Stormride_R -sector.taintedWoods.description = WIP, map submission by Stormride_R -sector.sunkenPier.description = WIP, map submission by Stormride_R -sector.atolls.description = WIP, map submission by Stormride_R -sector.frontier.description = WIP, map submission by Stormride_R -sector.infestedCanyons.description = WIP, map submission by Skeledragon -sector.polarAerodrome.description = WIP, map submission by hhh i 17 -sector.testingGrounds.description = WIP, map submission by dnx2019 -sector.seaPort.description = WIP, map submission by inkognito626 -sector.weatheredChannels.description = WIP, map submission by Skeledragon -sector.mycelialBastion.description = WIP, map submission by Skeledragon -sector.cruxscape.description = WIP, map submission by Stormride_R -sector.geothermalStronghold.description = WIP, map submission by Skeledragon - sector.onset.name = Nástup sector.aegis.name = Aegis sector.lake.name = Jezero @@ -945,6 +932,12 @@ sector.crossroads.name = Křižovatka sector.karst.name = Kras sector.origin.name = Původ +sector.origin.credit = Mechanical Fishe +sector.karst.credit = Mechanical Fishe +sector.caldera-erekir.credit = hhh i 17 +sector.siege.credit = hhh i 17 +sector.ravine.credit = Bepis + sector.onset.description = Zahajte dobývání Erekiru. Shromážděte zdroje, vyrobte jednotky a začněte zkoumat technologie. sector.aegis.description = Tento sektor obsahuje ložiska wolframu.\nVyzkoumej [accent]Nárazový vrták[] k vytěžení této suroviny, a znič nepřátelskou základnu. sector.lake.description = Jezero strusky v tomto sektoru značně omezuje použitelné jednotky. Jedinou možností je vznášecí jednotka.\nVyzkoumej [accent]továrna na výrobu lodí[] a vyrob [accent]Elude[] jednotku co nejdříve @@ -2125,6 +2118,7 @@ hint.waveFire = [accent]Naplň[] věže vodou místo munice pro automatické ha hint.generator = \uf879 [accent]Spalovací generátory[] pálí uhlí a přenášení energii do sousedících bloků.\n\nPřenos energie na delší vzdálenost se provádí pomocí \uf87f [accent]Energetických uzlů[]. hint.guardian = Jednotky [accent]Strážce[] jsou obrněné. Měkká munice, jako je například [accent]měď[] a [accent]olovo[] je [scarlet]neefektivní[].\n\nPoužij vylepšené věže nebo \uf835 [accent]grafitovou[] munici pro \uf861 Střílnu Duo/\uf859 Salvu, abys Strážce sejmul. hint.coreUpgrade = Jádro může být vylepšeno [accent]překrytím jádrem vyšší úrovně[].\n\nUmísti jádro typu [accent]Základ[] přes jádro typu [accent]Odštěpek[]. Ujisti se, že v okolí nejsou žádné překážky. +hint.serpuloCoreZone = Additional cores may be constructed on :core-zone: [accent]Core Zone[] tiles. hint.cannotUpgrade = A [red]:tree:[] icon over a payload unit indicates that its upgraded version is not researched yet.\n\nUnit upgrades must be researched in the [accent]:tree: tech tree[] before they can be produced in reconstructors. hint.presetLaunch = Na šedé [accent]sektory v přistávací zóně[], jako je například [accent]Zamrzlý les[], se lze vyslat kdykoli. Nevyžadují polapení okolního teritoria.\n\n[accent]Číslované sektory[], jako je tento, jsou [accent]volitelné[]. hint.presetDifficulty = Tento sektor má [scarlet]vysokou úroveň nepřátelského ohrožření[].\nSpouštení do takových sektorů se [accent]nedoporučuje[] bez náležité technologie a přípravy. @@ -2153,6 +2147,34 @@ gz.zone2 = Vše, postaveno v tomto okruhu bude zničeno při začátku příět gz.zone3 = A wave will begin now.\nGet ready. gz.finish = Build more turrets, mine more resources,\nand defend against all the waves to [accent]capture the sector[]. +fungalpass.tutorial1 = Use [accent]units[] to defend buildings and attack the enemy.\nResearch and place a :ground-factory: [accent]ground factory[]. +fungalpass.tutorial2 = Select :dagger: [accent]Dagger[] units in the factory.\nProduce 3 units. + +frontier.tutorial1 = The :additive-reconstructor: [accent]Additive Reconstructor[]\nupgrades tier 1 units to tier 2\nusing :silicon: silicon and :graphite: graphite.\n\n[accent]Research and reconstruct\na []:dagger:[accent] dagger to a []:mace:[accent] mace. +frontier.tutorial2 = Enemy waves send [accent]infinitely[] until all enemy cores are [unlaunched]destroyed. +frontier.tutorial3 = [accent]Attack the enemy base fast to prevent waves from getting too high[]. + +atolls.destroy1 = Destroy the 2 enemy [accent]foundation cores[] first.\n[accent]Gain access to thorium[]. +atolls.mega1 = Enter [accent]command mode[] and select the :mega:[accent]Mega[] units. +atolls.mega2 = Select the \ue87b [accent]Load Units[] command to have Mega units to pick up ground units. +atolls.mega3 = Move the Mega units [accent]above[] ground units to load them in. +atolls.mega4 = [accent]Drop ground units here to attack. +atolls.mega5 = Select the \ue879 [accent]Unload Payload[] command to have Mega units drop their carried units. +atolls.mega6 = Units will be [accent]automatically dropped[] while the \ue879 Unload Payload command is selected. +atolls.mega7 = Mega units [accent]will not[] drop ground units while they are above walls or deep water. +atolls.mega8 = [accent]Drop naval units here to attack.[] +atolls.attack1 = 1: Drop ground units here to attack from this location. +atolls.attack2 = 2: Alternatively, drop naval units here to launch a surprise attack. +atolls.carry1 = Carrying ground units requires :mega:[accent]Mega[] units. +atolls.carry2 = 1: Command Mega units to [accent]move over[] the ground units. +atolls.carry3 = 2: Select the \ue87b [accent]Load Units[] command in order to pick up the ground units with the Mega units. +atolls.carry4 = 3: Command and move the Mega carriers [accent]loaded with units[]. +atolls.carry5 = 4: Select the \ue879 [accent]'Unload Payload'[] command in order for the Mega units to drop the ground units. +atolls.carry6 = These steps can be reviewed [accent]here[]. +atolls.carry7 = Follow these instructions to airdrop more units near the enemy base. +atolls.noairunit = This base is too well-fortified to destroy with air units. +atolls.2strategies = There are two strategies to destroy this base. + onset.mine = Click to mine \uf748 [accent]beryllium[] from walls.\n\nUse [accent][[WASD] to move. onset.mine.mobile = Stiskni pro těžení :beryllium: [accent]beryllium[] ze stěn. onset.research = Open the \ue875 tech tree.\nResearch, then place a \uf73e [accent]turbine condenser[] on the vent.\nThis will generate [accent]power[]. @@ -2652,6 +2674,7 @@ laccess.displaywidth = Šířka displeje v pixelech. laccess.displayheight = Výška displeje v pixelech. laccess.buffersize = Počet nezpracovaných příkazů ve vyrovnávací paměti displeje. laccess.operations = Number of operations performed on the block.\nFor displays, returns the number of drawflush operations. +laccess.maxunits = Maximum units that a team can have.\nCan only be sensed from cores. lcategory.unknown = Neznámé lcategory.unknown.description = Nezařazené instrukce. diff --git a/core/assets/bundles/bundle_da.properties b/core/assets/bundles/bundle_da.properties index bda3260bf8..3076b4b2f5 100644 --- a/core/assets/bundles/bundle_da.properties +++ b/core/assets/bundles/bundle_da.properties @@ -101,6 +101,7 @@ coreattack = < Kerne er under angreb! > nearpoint = [[ [scarlet]FORLAD INVASIONSZONE OMGÅENDE[] ]\n Fare for udslettelse database = Kerne-database database.button = Database +database.patched = Modified by data patches. viewfields = View Content Fields savegame = Gem spil loadgame = Hent spil @@ -880,13 +881,14 @@ sector.facility32m.name = Facility 32 M sector.taintedWoods.name = Tainted Woods sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Planetary Launch Terminal -sector.coastline.name = Coastline +sector.coastline.name = Humid Coastline sector.navalFortress.name = Naval Fortress sector.polarAerodrome.name = Polar Aerodrome sector.atolls.name = Atolls sector.testingGrounds.name = Testing Grounds -sector.seaPort.name = Sea Port +sector.perilousHarbor.name = Perilous Harbor sector.weatheredChannels.name = Weathered Channels +sector.fallenVessel.name = Fallen Vessel sector.mycelialBastion.name = Mycelial Bastion sector.frontier.name = Frontier sector.sunkenPier.name = Sunken Pier @@ -912,21 +914,6 @@ sector.planetaryTerminal.description = The final target.\n\nThis coastal base co sector.coastline.description = Remnants of naval unit technology have been detected at this location. Repel the enemy attacks, capture this sector, and acquire the technology. sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. -#do not translate -sector.facility32m.description = WIP, map submission by Stormride_R -sector.taintedWoods.description = WIP, map submission by Stormride_R -sector.sunkenPier.description = WIP, map submission by Stormride_R -sector.atolls.description = WIP, map submission by Stormride_R -sector.frontier.description = WIP, map submission by Stormride_R -sector.infestedCanyons.description = WIP, map submission by Skeledragon -sector.polarAerodrome.description = WIP, map submission by hhh i 17 -sector.testingGrounds.description = WIP, map submission by dnx2019 -sector.seaPort.description = WIP, map submission by inkognito626 -sector.weatheredChannels.description = WIP, map submission by Skeledragon -sector.mycelialBastion.description = WIP, map submission by Skeledragon -sector.cruxscape.description = WIP, map submission by Stormride_R -sector.geothermalStronghold.description = WIP, map submission by Skeledragon - sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Lake @@ -945,6 +932,12 @@ sector.crossroads.name = Crossroads sector.karst.name = Karst sector.origin.name = Origin +sector.origin.credit = Mechanical Fishe +sector.karst.credit = Mechanical Fishe +sector.caldera-erekir.credit = hhh i 17 +sector.siege.credit = hhh i 17 +sector.ravine.credit = Bepis + sector.onset.description = Commence the conquest of Erekir. Gather resources, produce units, and begin researching technology. sector.aegis.description = This sector contains deposits of tungsten.\nResearch the [accent]Impact Drill[] to mine this resource, and destroy the enemy base in the area. sector.lake.description = This sector's slag lake greatly limits viable units. A hover unit is the only option.\nResearch the [accent]ship fabricator[] and produce an [accent]elude[] unit as soon as possible. @@ -2125,6 +2118,7 @@ hint.waveFire = [accent]Wave[] turrets with water as ammunition will automatical hint.generator = :combustion-generator: [accent]Combustion Generators[] burn coal and transmit power to adjacent blocks.\n\nPower transmission range can be extended with :power-node: [accent]Power Nodes[]. hint.guardian = [accent]Guardian[] units are armored. Weak ammo such as [accent]Copper[] and [accent]Lead[] is [scarlet]not effective[].\n\nUse higher tier turrets or :graphite: [accent]Graphite[] :duo:Duo/:salvo:Salvo ammunition to take Guardians down. hint.coreUpgrade = Cores can be upgraded by [accent]placing higher-tier cores over them[].\n\nPlace a :core-foundation: [accent]Foundation[] core over the :core-shard: [accent]Shard[] core. Make sure it is free from nearby obstructions. +hint.serpuloCoreZone = Additional cores may be constructed on :core-zone: [accent]Core Zone[] tiles. hint.cannotUpgrade = A [red]:tree:[] icon over a payload unit indicates that its upgraded version is not researched yet.\n\nUnit upgrades must be researched in the [accent]:tree: tech tree[] before they can be produced in reconstructors. hint.presetLaunch = Gray [accent]landing zone sectors[], such as [accent]Frozen Forest[], can be launched to from anywhere. They do not require capture of nearby territory.\n\n[accent]Numbered sectors[], such as this one, are [accent]optional[]. hint.presetDifficulty = This sector has a [scarlet]high enemy threat level[].\nLaunching to such sectors is [accent]not recommended[] without proper technology and preparation. @@ -2153,6 +2147,34 @@ gz.zone2 = Anything built in the radius is destroyed when a wave starts. gz.zone3 = A wave will begin now.\nGet ready. gz.finish = Build more turrets, mine more resources,\nand defend against all the waves to [accent]capture the sector[]. +fungalpass.tutorial1 = Use [accent]units[] to defend buildings and attack the enemy.\nResearch and place a :ground-factory: [accent]ground factory[]. +fungalpass.tutorial2 = Select :dagger: [accent]Dagger[] units in the factory.\nProduce 3 units. + +frontier.tutorial1 = The :additive-reconstructor: [accent]Additive Reconstructor[]\nupgrades tier 1 units to tier 2\nusing :silicon: silicon and :graphite: graphite.\n\n[accent]Research and reconstruct\na []:dagger:[accent] dagger to a []:mace:[accent] mace. +frontier.tutorial2 = Enemy waves send [accent]infinitely[] until all enemy cores are [unlaunched]destroyed. +frontier.tutorial3 = [accent]Attack the enemy base fast to prevent waves from getting too high[]. + +atolls.destroy1 = Destroy the 2 enemy [accent]foundation cores[] first.\n[accent]Gain access to thorium[]. +atolls.mega1 = Enter [accent]command mode[] and select the :mega:[accent]Mega[] units. +atolls.mega2 = Select the \ue87b [accent]Load Units[] command to have Mega units to pick up ground units. +atolls.mega3 = Move the Mega units [accent]above[] ground units to load them in. +atolls.mega4 = [accent]Drop ground units here to attack. +atolls.mega5 = Select the \ue879 [accent]Unload Payload[] command to have Mega units drop their carried units. +atolls.mega6 = Units will be [accent]automatically dropped[] while the \ue879 Unload Payload command is selected. +atolls.mega7 = Mega units [accent]will not[] drop ground units while they are above walls or deep water. +atolls.mega8 = [accent]Drop naval units here to attack.[] +atolls.attack1 = 1: Drop ground units here to attack from this location. +atolls.attack2 = 2: Alternatively, drop naval units here to launch a surprise attack. +atolls.carry1 = Carrying ground units requires :mega:[accent]Mega[] units. +atolls.carry2 = 1: Command Mega units to [accent]move over[] the ground units. +atolls.carry3 = 2: Select the \ue87b [accent]Load Units[] command in order to pick up the ground units with the Mega units. +atolls.carry4 = 3: Command and move the Mega carriers [accent]loaded with units[]. +atolls.carry5 = 4: Select the \ue879 [accent]'Unload Payload'[] command in order for the Mega units to drop the ground units. +atolls.carry6 = These steps can be reviewed [accent]here[]. +atolls.carry7 = Follow these instructions to airdrop more units near the enemy base. +atolls.noairunit = This base is too well-fortified to destroy with air units. +atolls.2strategies = There are two strategies to destroy this base. + onset.mine = Click to mine :beryllium: [accent]beryllium[] from walls.\n\nUse [accent][[WASD] to move. onset.mine.mobile = Tap to mine :beryllium: [accent]beryllium[] from walls. onset.research = Open the :tree: tech tree.\nResearch, then place a :turbine-condenser: [accent]turbine condenser[] on the vent.\nThis will generate [accent]power[]. @@ -2652,6 +2674,7 @@ laccess.displaywidth = Width of a display block in pixels. laccess.displayheight = Height of a display block in pixels. laccess.buffersize = Number of unprocessed commands in the graphics buffer of a display. laccess.operations = Number of operations performed on the block.\nFor displays, returns the number of drawflush operations. +laccess.maxunits = Maximum units that a team can have.\nCan only be sensed from cores. lcategory.unknown = Unknown lcategory.unknown.description = Uncategorized instructions. diff --git a/core/assets/bundles/bundle_de.properties b/core/assets/bundles/bundle_de.properties index 0415776250..d9e6927da5 100644 --- a/core/assets/bundles/bundle_de.properties +++ b/core/assets/bundles/bundle_de.properties @@ -101,6 +101,7 @@ coreattack = < Der Kern wird angegriffen! > nearpoint = [[ [scarlet]SOFORT DEN SPAWNPUNKT VERLASSEN[] ]\nVernichtung droht database = Kern-Datenbank database.button = Datenbank +database.patched = Modified by data patches. viewfields = View Content Fields savegame = Spiel speichern loadgame = Spiel laden @@ -885,8 +886,9 @@ sector.navalFortress.name = Marinefestung sector.polarAerodrome.name = Polarer Flugplatz sector.atolls.name = Atolle sector.testingGrounds.name = Testgelände -sector.seaPort.name = Hafen +sector.perilousHarbor.name = Perilous Harbor sector.weatheredChannels.name = Verwitterte Kanäle +sector.fallenVessel.name = Fallen Vessel sector.mycelialBastion.name = Myzel-Festung sector.frontier.name = Frontlinie sector.sunkenPier.name = Sunken Pier @@ -912,21 +914,6 @@ sector.planetaryTerminal.description = Das Endziel.\n\nDiese Uferbasis besitzt e sector.coastline.description = Überreste alter Schiffstechnologien wurden hier entdeckt. Wehre dich gegen die gegnischen Angriffe, erobere den Sektor und erforsche diese Technologie. sector.navalFortress.description = Der Gegner hat auf einer abgelegenen, von Natur aus sicheren Insel eine Basis aufgebaut. Zerstöre diesen Außenposten. Finde deren fortgeschrittene Schiffstechnologien und erforsche diese weiter. -#do not translate -sector.facility32m.description = WIP, map submission by Stormride_R -sector.taintedWoods.description = WIP, map submission by Stormride_R -sector.sunkenPier.description = WIP, map submission by Stormride_R -sector.atolls.description = WIP, map submission by Stormride_R -sector.frontier.description = WIP, map submission by Stormride_R -sector.infestedCanyons.description = WIP, map submission by Skeledragon -sector.polarAerodrome.description = WIP, map submission by hhh i 17 -sector.testingGrounds.description = WIP, map submission by dnx2019 -sector.seaPort.description = WIP, map submission by inkognito626 -sector.weatheredChannels.description = WIP, map submission by Skeledragon -sector.mycelialBastion.description = WIP, map submission by Skeledragon -sector.cruxscape.description = WIP, map submission by Stormride_R -sector.geothermalStronghold.description = WIP, map submission by Skeledragon - sector.onset.name = Der Anfang sector.aegis.name = Aegis sector.lake.name = See @@ -945,6 +932,12 @@ sector.crossroads.name = Kreuzung sector.karst.name = Karst sector.origin.name = Ursprung +sector.origin.credit = Mechanical Fishe +sector.karst.credit = Mechanical Fishe +sector.caldera-erekir.credit = hhh i 17 +sector.siege.credit = hhh i 17 +sector.ravine.credit = Bepis + sector.onset.description = Der Einführungssektor. Dieser Sektor hat noch kein Ziel. Erwarte weitere Informationen. sector.aegis.description = In disem Sektor gibt es Wolframvorkommen.\nErforsche den [accent]Schlagbohrer[], um diese Abzubauen und den Feind zu zerstören. sector.lake.description = Der Schlackesee in diesem Sektor begrenzt die Menge nützlicher Einheiten. Eine Flugeinheit ist die einzige Möglichkeit.\nErforsche den [accent]Schiffhersteller[] und erstelle so schnell wie möglich einen [accent]Elud[]. @@ -2125,6 +2118,7 @@ hint.waveFire = [accent]Wellen[]-Geschütze mit Wassermunition löschen automati hint.generator = :combustion-generator: [accent]Verbrennungsgeneratoren[] verbrennen Kohle und übertragen diesen Strom in angrenzende Blöcke.\n\nDie Reichweite der Stromübertragung kann mit :power-node: [accent]Stromknoten[] erweitert werden. hint.guardian = [accent]Boss[]-Einheiten sind gepanzert. Schwache Munition wie [accent]Kupfer[] und [accent]Blei[] sind [scarlet]nicht effektiv[].\n\nBenutze bessere Geschütze oder :graphite: [accent]Graphit[] als :duo:Duo-/:salvo:Salvenmunition um einen Boss zu besiegen. hint.coreUpgrade = Kerne können aufgerüstet werden, indem man [accent]bessere Kerne über sie platziert[].\n\nPlatziere einen :core-foundation: [accent]Fundament[]-Kern über einen :core-shard: [accent]Scherben[]-Kern. Stelle sicher, dass ausreichend Platz verfügbar ist. +hint.serpuloCoreZone = Additional cores may be constructed on :core-zone: [accent]Core Zone[] tiles. hint.cannotUpgrade = A [red]:tree:[] icon over a payload unit indicates that its upgraded version is not researched yet.\n\nUnit upgrades must be researched in the [accent]:tree: tech tree[] before they can be produced in reconstructors. hint.presetLaunch = Zu grauen [accent]Sektoren[] wie dem [accent]Frozen Forest[] kann man von überall aus hin starten. Es ist nicht nötig, benachbarte Sektoren zu erobern.\n\n[accent]Nummerierte Sektoren[] wie dieser hier sind [accent]optional[]. hint.presetDifficulty = Dieser Sektor hat eine [scarlet]hohe Gefahrenstufe[].\nOhne richtige Technologie und Vorbereitung ist es [accent]nicht empfohlen[], zu diesem Sektor zu starten. @@ -2153,6 +2147,34 @@ gz.zone2 = Alle Blöcke in der Zone werden zerstört, wenn eine Welle kommt. gz.zone3 = Jetzt kommt eine Welle.\nBereite dich vor. gz.finish = Baue mehr Geschütze, sammele mehr Ressourcen\nund besiege alle Wellen, um den [accent]Sektor zu erobern[]. +fungalpass.tutorial1 = Use [accent]units[] to defend buildings and attack the enemy.\nResearch and place a :ground-factory: [accent]ground factory[]. +fungalpass.tutorial2 = Select :dagger: [accent]Dagger[] units in the factory.\nProduce 3 units. + +frontier.tutorial1 = The :additive-reconstructor: [accent]Additive Reconstructor[]\nupgrades tier 1 units to tier 2\nusing :silicon: silicon and :graphite: graphite.\n\n[accent]Research and reconstruct\na []:dagger:[accent] dagger to a []:mace:[accent] mace. +frontier.tutorial2 = Enemy waves send [accent]infinitely[] until all enemy cores are [unlaunched]destroyed. +frontier.tutorial3 = [accent]Attack the enemy base fast to prevent waves from getting too high[]. + +atolls.destroy1 = Destroy the 2 enemy [accent]foundation cores[] first.\n[accent]Gain access to thorium[]. +atolls.mega1 = Enter [accent]command mode[] and select the :mega:[accent]Mega[] units. +atolls.mega2 = Select the \ue87b [accent]Load Units[] command to have Mega units to pick up ground units. +atolls.mega3 = Move the Mega units [accent]above[] ground units to load them in. +atolls.mega4 = [accent]Drop ground units here to attack. +atolls.mega5 = Select the \ue879 [accent]Unload Payload[] command to have Mega units drop their carried units. +atolls.mega6 = Units will be [accent]automatically dropped[] while the \ue879 Unload Payload command is selected. +atolls.mega7 = Mega units [accent]will not[] drop ground units while they are above walls or deep water. +atolls.mega8 = [accent]Drop naval units here to attack.[] +atolls.attack1 = 1: Drop ground units here to attack from this location. +atolls.attack2 = 2: Alternatively, drop naval units here to launch a surprise attack. +atolls.carry1 = Carrying ground units requires :mega:[accent]Mega[] units. +atolls.carry2 = 1: Command Mega units to [accent]move over[] the ground units. +atolls.carry3 = 2: Select the \ue87b [accent]Load Units[] command in order to pick up the ground units with the Mega units. +atolls.carry4 = 3: Command and move the Mega carriers [accent]loaded with units[]. +atolls.carry5 = 4: Select the \ue879 [accent]'Unload Payload'[] command in order for the Mega units to drop the ground units. +atolls.carry6 = These steps can be reviewed [accent]here[]. +atolls.carry7 = Follow these instructions to airdrop more units near the enemy base. +atolls.noairunit = This base is too well-fortified to destroy with air units. +atolls.2strategies = There are two strategies to destroy this base. + onset.mine = Klicke, um :beryllium: [accent]Beryllium[] aus Wänden abzubauen.\n\nBenutze [accent][WASD], um dich zu bewegen. onset.mine.mobile = Tippe, um :beryllium: [accent]Beryllium[] aus Wänden abzubauen. onset.research = Öffne das :tree: Forschungsmenü.\nErforsche und platziere einen :turbine-condenser: [accent]Turbinenkondensator[] auf einen Schlot.\nDieser erzeugt [accent]Strom[]. @@ -2652,6 +2674,7 @@ laccess.displaywidth = Width of a display block in pixels. laccess.displayheight = Height of a display block in pixels. laccess.buffersize = Number of unprocessed commands in the graphics buffer of a display. laccess.operations = Number of operations performed on the block.\nFor displays, returns the number of drawflush operations. +laccess.maxunits = Maximum units that a team can have.\nCan only be sensed from cores. lcategory.unknown = Unbekannt lcategory.unknown.description = Unbekannte Anweisungen diff --git a/core/assets/bundles/bundle_es.properties b/core/assets/bundles/bundle_es.properties index d78d1f7f0e..6c0b3cc698 100644 --- a/core/assets/bundles/bundle_es.properties +++ b/core/assets/bundles/bundle_es.properties @@ -101,6 +101,7 @@ coreattack = < ¡El núcleo está bajo ataque! > nearpoint = [[ [scarlet]ABANDONA EL PUNTO DE ATERRIZAJE INMEDIATAMENTE[] ]\nAniquilación inminente database = Base de datos del núcleo database.button = Base de datos +database.patched = Modified by data patches. viewfields = Ver campos del contenido savegame = Guardar partida loadgame = Cargar partida @@ -885,8 +886,9 @@ sector.navalFortress.name = Fortaleza Naval sector.polarAerodrome.name = Aeródromo Polar sector.atolls.name = Atolones sector.testingGrounds.name = Campo de Pruebas -sector.seaPort.name = Puerto Marítimo +sector.perilousHarbor.name = Perilous Harbor sector.weatheredChannels.name = Canales Erosionados +sector.fallenVessel.name = Fallen Vessel sector.mycelialBastion.name = Bastión Infestado sector.frontier.name = Frontera sector.sunkenPier.name = Muelle Hundido @@ -912,21 +914,6 @@ sector.planetaryTerminal.description = El objetivo final.\n\nEsta base costera a sector.coastline.description = Se han detectado restos de tecnología de unidades navales en esta ubicación. Repele los ataques enemigos, captura este sector, y consigue esa tecnología. sector.navalFortress.description = El enemigo ha establecido una base en una remota isla naturalmente fortificada. Destruye este puesto de avanzada. Hazte con su tecnología naval avanzada, e investígala. -#do not translate -sector.facility32m.description = WIP, map submission by Stormride_R -sector.taintedWoods.description = WIP, map submission by Stormride_R -sector.sunkenPier.description = WIP, map submission by Stormride_R -sector.atolls.description = WIP, map submission by Stormride_R -sector.frontier.description = WIP, map submission by Stormride_R -sector.infestedCanyons.description = WIP, map submission by Skeledragon -sector.polarAerodrome.description = WIP, map submission by hhh i 17 -sector.testingGrounds.description = WIP, map submission by dnx2019 -sector.seaPort.description = WIP, map submission by inkognito626 -sector.weatheredChannels.description = WIP, map submission by Skeledragon -sector.mycelialBastion.description = WIP, map submission by Skeledragon -sector.cruxscape.description = WIP, map submission by Stormride_R -sector.geothermalStronghold.description = WIP, map submission by Skeledragon - sector.onset.name = El Inicio sector.aegis.name = Égida sector.lake.name = Lago @@ -945,6 +932,12 @@ sector.crossroads.name = Encrucijada sector.karst.name = Kárstico sector.origin.name = Origen +sector.origin.credit = Mechanical Fishe +sector.karst.credit = Mechanical Fishe +sector.caldera-erekir.credit = hhh i 17 +sector.siege.credit = hhh i 17 +sector.ravine.credit = Bepis + sector.onset.description = Comienza la conquista de Erekir. Reúne recursos, produce unidades y empieza a investigar tecnología. sector.aegis.description = Este sector contiene depósitos de tungsteno.\nInvestiga el [accent]taladro de impacto[] para extraer este recurso, y destruye la base enemiga de este área. sector.lake.description = El lago de magma de este sector limitará en gran medida la eficacia de varias unidades. Las unidades aéreas son la única opción viable.\nInvestiga el [accent]fabricador de naves[] y ensambla una unidad [accent]Elude[] tan pronto como sea posible. @@ -2125,6 +2118,7 @@ hint.waveFire = Cuando las torretas [accent]Wave[] usen agua como munición, apa hint.generator = Los [accent]Generadores de combustión[] querman carbón para transmitir energía a bloques adyacentes.\n\nEl alcance de transmisión de energía se puede extender usando [accent]Nodos de energía[]. hint.guardian = Los [accent]Guardianes[] poseen una robusta armadura. Municiones débiles como el [accent]Cobre[] o el [accent]Plomo[] no son [scarlet]effectivas[] contra él.\n\nUsa torretas de mayor categoría o por ejemplo, munición de [accent]Grafito[] en torretas [accent]Salvo[] para derribar a los Guardianes con más facilidad. hint.coreUpgrade = Los núcleos se pueden mejorar [accent]construyendo núcleos de mayor calidad encima[].\n\nColoca un núcleo [accent]Foundation[] sobre el núcleo [accent]Shard[]. Asegúrate de que no hay obstáculos cerca. +hint.serpuloCoreZone = Additional cores may be constructed on :core-zone: [accent]Core Zone[] tiles. hint.cannotUpgrade = Un ícono [red]:tree:[] sobre una unidad dentro de la carga indica que su versión mejorada no se ha investigado aún.\n\nLas mejoras de unidades deben investigarse en el [accent]:tree: arbol de tecnologías[] antes de poder ser producidas en los reconstructores. hint.presetLaunch = Las zonas de aterrizaje de los [accent]sectores grises[], como el [accent]Bosque Congelado[], son accesibles desde cualquier lugar. No requieren capturar sectores adyacentes.\n\nLos [accent]sectores numerados[], como este, son [accent]opcionales[]. hint.presetDifficulty = Este sector tiene un [scarlet]alto nivel de amenaza enemiga[].\n[accent]No es recomendable[] viajar a sectores como estos sin las tecnologías adecuadas y preparación. @@ -2153,6 +2147,34 @@ gz.zone2 = Cualquier estructura en el área será destruida al comenzar una olea gz.zone3 = Ahora comenzará una oleada.\nPrepárate. gz.finish = Construye más torretas, extrae más recursos,\ny defiéndete de todas las oleadas para [accent]capturar este sector[]. +fungalpass.tutorial1 = Use [accent]units[] to defend buildings and attack the enemy.\nResearch and place a :ground-factory: [accent]ground factory[]. +fungalpass.tutorial2 = Select :dagger: [accent]Dagger[] units in the factory.\nProduce 3 units. + +frontier.tutorial1 = The :additive-reconstructor: [accent]Additive Reconstructor[]\nupgrades tier 1 units to tier 2\nusing :silicon: silicon and :graphite: graphite.\n\n[accent]Research and reconstruct\na []:dagger:[accent] dagger to a []:mace:[accent] mace. +frontier.tutorial2 = Enemy waves send [accent]infinitely[] until all enemy cores are [unlaunched]destroyed. +frontier.tutorial3 = [accent]Attack the enemy base fast to prevent waves from getting too high[]. + +atolls.destroy1 = Destroy the 2 enemy [accent]foundation cores[] first.\n[accent]Gain access to thorium[]. +atolls.mega1 = Enter [accent]command mode[] and select the :mega:[accent]Mega[] units. +atolls.mega2 = Select the \ue87b [accent]Load Units[] command to have Mega units to pick up ground units. +atolls.mega3 = Move the Mega units [accent]above[] ground units to load them in. +atolls.mega4 = [accent]Drop ground units here to attack. +atolls.mega5 = Select the \ue879 [accent]Unload Payload[] command to have Mega units drop their carried units. +atolls.mega6 = Units will be [accent]automatically dropped[] while the \ue879 Unload Payload command is selected. +atolls.mega7 = Mega units [accent]will not[] drop ground units while they are above walls or deep water. +atolls.mega8 = [accent]Drop naval units here to attack.[] +atolls.attack1 = 1: Drop ground units here to attack from this location. +atolls.attack2 = 2: Alternatively, drop naval units here to launch a surprise attack. +atolls.carry1 = Carrying ground units requires :mega:[accent]Mega[] units. +atolls.carry2 = 1: Command Mega units to [accent]move over[] the ground units. +atolls.carry3 = 2: Select the \ue87b [accent]Load Units[] command in order to pick up the ground units with the Mega units. +atolls.carry4 = 3: Command and move the Mega carriers [accent]loaded with units[]. +atolls.carry5 = 4: Select the \ue879 [accent]'Unload Payload'[] command in order for the Mega units to drop the ground units. +atolls.carry6 = These steps can be reviewed [accent]here[]. +atolls.carry7 = Follow these instructions to airdrop more units near the enemy base. +atolls.noairunit = This base is too well-fortified to destroy with air units. +atolls.2strategies = There are two strategies to destroy this base. + onset.mine = Haz clic para minar :beryllium: [accent]berilio[] de las paredes.\n\nUsa [accent][[WASD] para moverte. onset.mine.mobile = Toca para minar :beryllium: [accent]berilio[] de las paredes. onset.research = Abre el :tree: menú de investigaciones.\nInvestiga y construye una :turbine-condenser: [accent]turbina condensadora[] en la grieta.\nEsto generará [accent]energía[]. @@ -2652,6 +2674,7 @@ laccess.displaywidth = Ancho de un bloque de pantalla, en pixeles. laccess.displayheight = Alto de un bloque de pantalla, en pixeles. laccess.buffersize = Número de comandos sin ejecutar en el buffer gráfico de una pantalla. laccess.operations = Número de operaciones ejecutadas en el bloque.\nPara pantallas, retorna el número de operaciones drawflush. +laccess.maxunits = Maximum units that a team can have.\nCan only be sensed from cores. lcategory.unknown = Desconocido lcategory.unknown.description = Instrucciones no clasificadas. diff --git a/core/assets/bundles/bundle_et.properties b/core/assets/bundles/bundle_et.properties index 50fbc89397..2904a3b621 100644 --- a/core/assets/bundles/bundle_et.properties +++ b/core/assets/bundles/bundle_et.properties @@ -101,6 +101,7 @@ coreattack = < Tuum on rünnaku all! > nearpoint = [[ [scarlet]LAHKU KOHESELT MAANDUMISPLATSILT[] ]\nVaenlaste maandumisel hävib siin kõik. database = Tuumandmebaas database.button = Andmebaas +database.patched = Modified by data patches. viewfields = View Content Fields savegame = Salvesta Mäng loadgame = Lae Mäng @@ -880,13 +881,14 @@ sector.facility32m.name = Facility 32 M sector.taintedWoods.name = Tainted Woods sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Planetary Launch Terminal -sector.coastline.name = Coastline +sector.coastline.name = Humid Coastline sector.navalFortress.name = Naval Fortress sector.polarAerodrome.name = Polar Aerodrome sector.atolls.name = Atolls sector.testingGrounds.name = Testing Grounds -sector.seaPort.name = Sea Port +sector.perilousHarbor.name = Perilous Harbor sector.weatheredChannels.name = Weathered Channels +sector.fallenVessel.name = Fallen Vessel sector.mycelialBastion.name = Mycelial Bastion sector.frontier.name = Frontier sector.sunkenPier.name = Sunken Pier @@ -912,21 +914,6 @@ sector.planetaryTerminal.description = The final target.\n\nThis coastal base co sector.coastline.description = Remnants of naval unit technology have been detected at this location. Repel the enemy attacks, capture this sector, and acquire the technology. sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. -#do not translate -sector.facility32m.description = WIP, map submission by Stormride_R -sector.taintedWoods.description = WIP, map submission by Stormride_R -sector.sunkenPier.description = WIP, map submission by Stormride_R -sector.atolls.description = WIP, map submission by Stormride_R -sector.frontier.description = WIP, map submission by Stormride_R -sector.infestedCanyons.description = WIP, map submission by Skeledragon -sector.polarAerodrome.description = WIP, map submission by hhh i 17 -sector.testingGrounds.description = WIP, map submission by dnx2019 -sector.seaPort.description = WIP, map submission by inkognito626 -sector.weatheredChannels.description = WIP, map submission by Skeledragon -sector.mycelialBastion.description = WIP, map submission by Skeledragon -sector.cruxscape.description = WIP, map submission by Stormride_R -sector.geothermalStronghold.description = WIP, map submission by Skeledragon - sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Lake @@ -945,6 +932,12 @@ sector.crossroads.name = Crossroads sector.karst.name = Karst sector.origin.name = Origin +sector.origin.credit = Mechanical Fishe +sector.karst.credit = Mechanical Fishe +sector.caldera-erekir.credit = hhh i 17 +sector.siege.credit = hhh i 17 +sector.ravine.credit = Bepis + sector.onset.description = Commence the conquest of Erekir. Gather resources, produce units, and begin researching technology. sector.aegis.description = This sector contains deposits of tungsten.\nResearch the [accent]Impact Drill[] to mine this resource, and destroy the enemy base in the area. sector.lake.description = This sector's slag lake greatly limits viable units. A hover unit is the only option.\nResearch the [accent]ship fabricator[] and produce an [accent]elude[] unit as soon as possible. @@ -2125,6 +2118,7 @@ hint.waveFire = [accent]Wave[] turrets with water as ammunition will automatical hint.generator = :combustion-generator: [accent]Combustion Generators[] burn coal and transmit power to adjacent blocks.\n\nPower transmission range can be extended with :power-node: [accent]Power Nodes[]. hint.guardian = [accent]Guardian[] units are armored. Weak ammo such as [accent]Copper[] and [accent]Lead[] is [scarlet]not effective[].\n\nUse higher tier turrets or :graphite: [accent]Graphite[] :duo:Duo/:salvo:Salvo ammunition to take Guardians down. hint.coreUpgrade = Cores can be upgraded by [accent]placing higher-tier cores over them[].\n\nPlace a :core-foundation: [accent]Foundation[] core over the :core-shard: [accent]Shard[] core. Make sure it is free from nearby obstructions. +hint.serpuloCoreZone = Additional cores may be constructed on :core-zone: [accent]Core Zone[] tiles. hint.cannotUpgrade = A [red]:tree:[] icon over a payload unit indicates that its upgraded version is not researched yet.\n\nUnit upgrades must be researched in the [accent]:tree: tech tree[] before they can be produced in reconstructors. hint.presetLaunch = Gray [accent]landing zone sectors[], such as [accent]Frozen Forest[], can be launched to from anywhere. They do not require capture of nearby territory.\n\n[accent]Numbered sectors[], such as this one, are [accent]optional[]. hint.presetDifficulty = This sector has a [scarlet]high enemy threat level[].\nLaunching to such sectors is [accent]not recommended[] without proper technology and preparation. @@ -2153,6 +2147,34 @@ gz.zone2 = Anything built in the radius is destroyed when a wave starts. gz.zone3 = A wave will begin now.\nGet ready. gz.finish = Build more turrets, mine more resources,\nand defend against all the waves to [accent]capture the sector[]. +fungalpass.tutorial1 = Use [accent]units[] to defend buildings and attack the enemy.\nResearch and place a :ground-factory: [accent]ground factory[]. +fungalpass.tutorial2 = Select :dagger: [accent]Dagger[] units in the factory.\nProduce 3 units. + +frontier.tutorial1 = The :additive-reconstructor: [accent]Additive Reconstructor[]\nupgrades tier 1 units to tier 2\nusing :silicon: silicon and :graphite: graphite.\n\n[accent]Research and reconstruct\na []:dagger:[accent] dagger to a []:mace:[accent] mace. +frontier.tutorial2 = Enemy waves send [accent]infinitely[] until all enemy cores are [unlaunched]destroyed. +frontier.tutorial3 = [accent]Attack the enemy base fast to prevent waves from getting too high[]. + +atolls.destroy1 = Destroy the 2 enemy [accent]foundation cores[] first.\n[accent]Gain access to thorium[]. +atolls.mega1 = Enter [accent]command mode[] and select the :mega:[accent]Mega[] units. +atolls.mega2 = Select the \ue87b [accent]Load Units[] command to have Mega units to pick up ground units. +atolls.mega3 = Move the Mega units [accent]above[] ground units to load them in. +atolls.mega4 = [accent]Drop ground units here to attack. +atolls.mega5 = Select the \ue879 [accent]Unload Payload[] command to have Mega units drop their carried units. +atolls.mega6 = Units will be [accent]automatically dropped[] while the \ue879 Unload Payload command is selected. +atolls.mega7 = Mega units [accent]will not[] drop ground units while they are above walls or deep water. +atolls.mega8 = [accent]Drop naval units here to attack.[] +atolls.attack1 = 1: Drop ground units here to attack from this location. +atolls.attack2 = 2: Alternatively, drop naval units here to launch a surprise attack. +atolls.carry1 = Carrying ground units requires :mega:[accent]Mega[] units. +atolls.carry2 = 1: Command Mega units to [accent]move over[] the ground units. +atolls.carry3 = 2: Select the \ue87b [accent]Load Units[] command in order to pick up the ground units with the Mega units. +atolls.carry4 = 3: Command and move the Mega carriers [accent]loaded with units[]. +atolls.carry5 = 4: Select the \ue879 [accent]'Unload Payload'[] command in order for the Mega units to drop the ground units. +atolls.carry6 = These steps can be reviewed [accent]here[]. +atolls.carry7 = Follow these instructions to airdrop more units near the enemy base. +atolls.noairunit = This base is too well-fortified to destroy with air units. +atolls.2strategies = There are two strategies to destroy this base. + onset.mine = Click to mine :beryllium: [accent]beryllium[] from walls.\n\nUse [accent][[WASD] to move. onset.mine.mobile = Tap to mine :beryllium: [accent]beryllium[] from walls. onset.research = Open the :tree: tech tree.\nResearch, then place a :turbine-condenser: [accent]turbine condenser[] on the vent.\nThis will generate [accent]power[]. @@ -2652,6 +2674,7 @@ laccess.displaywidth = Width of a display block in pixels. laccess.displayheight = Height of a display block in pixels. laccess.buffersize = Number of unprocessed commands in the graphics buffer of a display. laccess.operations = Number of operations performed on the block.\nFor displays, returns the number of drawflush operations. +laccess.maxunits = Maximum units that a team can have.\nCan only be sensed from cores. lcategory.unknown = Unknown lcategory.unknown.description = Uncategorized instructions. diff --git a/core/assets/bundles/bundle_eu.properties b/core/assets/bundles/bundle_eu.properties index 836025c45e..ddf2943626 100644 --- a/core/assets/bundles/bundle_eu.properties +++ b/core/assets/bundles/bundle_eu.properties @@ -101,6 +101,7 @@ coreattack = < Muina erasopean dago! > nearpoint = [[ [scarlet]ATERA ERRUNTZE EREMUTIK ATOAN[] ]\nDeuseztapena berehalakoa database = Muinaren datu-basea database.button = Database +database.patched = Modified by data patches. viewfields = View Content Fields savegame = Gorde partida loadgame = Kargatu partida @@ -880,13 +881,14 @@ sector.facility32m.name = Facility 32 M sector.taintedWoods.name = Tainted Woods sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Planetary Launch Terminal -sector.coastline.name = Coastline +sector.coastline.name = Humid Coastline sector.navalFortress.name = Naval Fortress sector.polarAerodrome.name = Polar Aerodrome sector.atolls.name = Atolls sector.testingGrounds.name = Testing Grounds -sector.seaPort.name = Sea Port +sector.perilousHarbor.name = Perilous Harbor sector.weatheredChannels.name = Weathered Channels +sector.fallenVessel.name = Fallen Vessel sector.mycelialBastion.name = Mycelial Bastion sector.frontier.name = Frontier sector.sunkenPier.name = Sunken Pier @@ -912,21 +914,6 @@ sector.planetaryTerminal.description = The final target.\n\nThis coastal base co sector.coastline.description = Remnants of naval unit technology have been detected at this location. Repel the enemy attacks, capture this sector, and acquire the technology. sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. -#do not translate -sector.facility32m.description = WIP, map submission by Stormride_R -sector.taintedWoods.description = WIP, map submission by Stormride_R -sector.sunkenPier.description = WIP, map submission by Stormride_R -sector.atolls.description = WIP, map submission by Stormride_R -sector.frontier.description = WIP, map submission by Stormride_R -sector.infestedCanyons.description = WIP, map submission by Skeledragon -sector.polarAerodrome.description = WIP, map submission by hhh i 17 -sector.testingGrounds.description = WIP, map submission by dnx2019 -sector.seaPort.description = WIP, map submission by inkognito626 -sector.weatheredChannels.description = WIP, map submission by Skeledragon -sector.mycelialBastion.description = WIP, map submission by Skeledragon -sector.cruxscape.description = WIP, map submission by Stormride_R -sector.geothermalStronghold.description = WIP, map submission by Skeledragon - sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Lake @@ -945,6 +932,12 @@ sector.crossroads.name = Crossroads sector.karst.name = Karst sector.origin.name = Origin +sector.origin.credit = Mechanical Fishe +sector.karst.credit = Mechanical Fishe +sector.caldera-erekir.credit = hhh i 17 +sector.siege.credit = hhh i 17 +sector.ravine.credit = Bepis + sector.onset.description = Commence the conquest of Erekir. Gather resources, produce units, and begin researching technology. sector.aegis.description = This sector contains deposits of tungsten.\nResearch the [accent]Impact Drill[] to mine this resource, and destroy the enemy base in the area. sector.lake.description = This sector's slag lake greatly limits viable units. A hover unit is the only option.\nResearch the [accent]ship fabricator[] and produce an [accent]elude[] unit as soon as possible. @@ -2125,6 +2118,7 @@ hint.waveFire = [accent]Wave[] turrets with water as ammunition will automatical hint.generator = :combustion-generator: [accent]Combustion Generators[] burn coal and transmit power to adjacent blocks.\n\nPower transmission range can be extended with :power-node: [accent]Power Nodes[]. hint.guardian = [accent]Guardian[] units are armored. Weak ammo such as [accent]Copper[] and [accent]Lead[] is [scarlet]not effective[].\n\nUse higher tier turrets or :graphite: [accent]Graphite[] :duo:Duo/:salvo:Salvo ammunition to take Guardians down. hint.coreUpgrade = Cores can be upgraded by [accent]placing higher-tier cores over them[].\n\nPlace a :core-foundation: [accent]Foundation[] core over the :core-shard: [accent]Shard[] core. Make sure it is free from nearby obstructions. +hint.serpuloCoreZone = Additional cores may be constructed on :core-zone: [accent]Core Zone[] tiles. hint.cannotUpgrade = A [red]:tree:[] icon over a payload unit indicates that its upgraded version is not researched yet.\n\nUnit upgrades must be researched in the [accent]:tree: tech tree[] before they can be produced in reconstructors. hint.presetLaunch = Gray [accent]landing zone sectors[], such as [accent]Frozen Forest[], can be launched to from anywhere. They do not require capture of nearby territory.\n\n[accent]Numbered sectors[], such as this one, are [accent]optional[]. hint.presetDifficulty = This sector has a [scarlet]high enemy threat level[].\nLaunching to such sectors is [accent]not recommended[] without proper technology and preparation. @@ -2153,6 +2147,34 @@ gz.zone2 = Anything built in the radius is destroyed when a wave starts. gz.zone3 = A wave will begin now.\nGet ready. gz.finish = Build more turrets, mine more resources,\nand defend against all the waves to [accent]capture the sector[]. +fungalpass.tutorial1 = Use [accent]units[] to defend buildings and attack the enemy.\nResearch and place a :ground-factory: [accent]ground factory[]. +fungalpass.tutorial2 = Select :dagger: [accent]Dagger[] units in the factory.\nProduce 3 units. + +frontier.tutorial1 = The :additive-reconstructor: [accent]Additive Reconstructor[]\nupgrades tier 1 units to tier 2\nusing :silicon: silicon and :graphite: graphite.\n\n[accent]Research and reconstruct\na []:dagger:[accent] dagger to a []:mace:[accent] mace. +frontier.tutorial2 = Enemy waves send [accent]infinitely[] until all enemy cores are [unlaunched]destroyed. +frontier.tutorial3 = [accent]Attack the enemy base fast to prevent waves from getting too high[]. + +atolls.destroy1 = Destroy the 2 enemy [accent]foundation cores[] first.\n[accent]Gain access to thorium[]. +atolls.mega1 = Enter [accent]command mode[] and select the :mega:[accent]Mega[] units. +atolls.mega2 = Select the \ue87b [accent]Load Units[] command to have Mega units to pick up ground units. +atolls.mega3 = Move the Mega units [accent]above[] ground units to load them in. +atolls.mega4 = [accent]Drop ground units here to attack. +atolls.mega5 = Select the \ue879 [accent]Unload Payload[] command to have Mega units drop their carried units. +atolls.mega6 = Units will be [accent]automatically dropped[] while the \ue879 Unload Payload command is selected. +atolls.mega7 = Mega units [accent]will not[] drop ground units while they are above walls or deep water. +atolls.mega8 = [accent]Drop naval units here to attack.[] +atolls.attack1 = 1: Drop ground units here to attack from this location. +atolls.attack2 = 2: Alternatively, drop naval units here to launch a surprise attack. +atolls.carry1 = Carrying ground units requires :mega:[accent]Mega[] units. +atolls.carry2 = 1: Command Mega units to [accent]move over[] the ground units. +atolls.carry3 = 2: Select the \ue87b [accent]Load Units[] command in order to pick up the ground units with the Mega units. +atolls.carry4 = 3: Command and move the Mega carriers [accent]loaded with units[]. +atolls.carry5 = 4: Select the \ue879 [accent]'Unload Payload'[] command in order for the Mega units to drop the ground units. +atolls.carry6 = These steps can be reviewed [accent]here[]. +atolls.carry7 = Follow these instructions to airdrop more units near the enemy base. +atolls.noairunit = This base is too well-fortified to destroy with air units. +atolls.2strategies = There are two strategies to destroy this base. + onset.mine = Click to mine :beryllium: [accent]beryllium[] from walls.\n\nUse [accent][[WASD] to move. onset.mine.mobile = Tap to mine :beryllium: [accent]beryllium[] from walls. onset.research = Open the :tree: tech tree.\nResearch, then place a :turbine-condenser: [accent]turbine condenser[] on the vent.\nThis will generate [accent]power[]. @@ -2652,6 +2674,7 @@ laccess.displaywidth = Width of a display block in pixels. laccess.displayheight = Height of a display block in pixels. laccess.buffersize = Number of unprocessed commands in the graphics buffer of a display. laccess.operations = Number of operations performed on the block.\nFor displays, returns the number of drawflush operations. +laccess.maxunits = Maximum units that a team can have.\nCan only be sensed from cores. lcategory.unknown = Unknown lcategory.unknown.description = Uncategorized instructions. diff --git a/core/assets/bundles/bundle_fi.properties b/core/assets/bundles/bundle_fi.properties index a0a121e903..2ee284fafb 100644 --- a/core/assets/bundles/bundle_fi.properties +++ b/core/assets/bundles/bundle_fi.properties @@ -101,6 +101,7 @@ coreattack = < Ytimeen hyökätään! > nearpoint = [[ [scarlet]POISTU VIHOLLISEN PUDOTUSPISTEELTÄ VÄLITTÖMÄSTI[]\nvälitön tuhoutuminen database = Ytimen tietokanta database.button = Tietokanta +database.patched = Modified by data patches. viewfields = View Content Fields savegame = Tallenna peli loadgame = Lataa peli @@ -885,8 +886,9 @@ sector.navalFortress.name = Laivastolinnoitus sector.polarAerodrome.name = Polar Aerodrome sector.atolls.name = Atolls sector.testingGrounds.name = Testing Grounds -sector.seaPort.name = Sea Port +sector.perilousHarbor.name = Perilous Harbor sector.weatheredChannels.name = Weathered Channels +sector.fallenVessel.name = Fallen Vessel sector.mycelialBastion.name = Mycelial Bastion sector.frontier.name = Frontier sector.sunkenPier.name = Sunken Pier @@ -912,21 +914,6 @@ sector.planetaryTerminal.description = Viimeinen kohde.\n\nTämä rannikkotukiko sector.coastline.description = Tällä alueella on havaittu jälkiä meriyksikköjen teknologiasta. Torju vihollisen hyökkäykset, valtaa tämä sektori ja hanki teknologia. sector.navalFortress.description = Vihollinen on perustanut tukikohdan syrjäiselle, luonnostaan linnoitetulle saarelle. Tuhoa tämä etuvartioasema. Hanki heidän kehittynyt merialusteknologiansa ja tutki se. -#do not translate -sector.facility32m.description = WIP, map submission by Stormride_R -sector.taintedWoods.description = WIP, map submission by Stormride_R -sector.sunkenPier.description = WIP, map submission by Stormride_R -sector.atolls.description = WIP, map submission by Stormride_R -sector.frontier.description = WIP, map submission by Stormride_R -sector.infestedCanyons.description = WIP, map submission by Skeledragon -sector.polarAerodrome.description = WIP, map submission by hhh i 17 -sector.testingGrounds.description = WIP, map submission by dnx2019 -sector.seaPort.description = WIP, map submission by inkognito626 -sector.weatheredChannels.description = WIP, map submission by Skeledragon -sector.mycelialBastion.description = WIP, map submission by Skeledragon -sector.cruxscape.description = WIP, map submission by Stormride_R -sector.geothermalStronghold.description = WIP, map submission by Skeledragon - sector.onset.name = Alku sector.aegis.name = Aegis sector.lake.name = Lake @@ -945,6 +932,12 @@ sector.crossroads.name = Crossroads sector.karst.name = Karst sector.origin.name = Origin +sector.origin.credit = Mechanical Fishe +sector.karst.credit = Mechanical Fishe +sector.caldera-erekir.credit = hhh i 17 +sector.siege.credit = hhh i 17 +sector.ravine.credit = Bepis + sector.onset.description = Aloita Erekirin valloitus. Kerää resursseja, tuota yksiköitä ja aloita teknologian tutkiminen. sector.aegis.description = Tässä sektorissa on volfram-esiintymiä.\nTutki [accent]iskupora[] louhiaksesi tätä resurssia ja tuhoa alueen vihollistukikohta. sector.lake.description = Tämän sektorin kuona-järvi rajoittaa merkittävästi käyttökelpoisia yksiköitä. Ilma-alus on ainoa vaihtoehto.\nTutki [accent]Ilma-alusrakentaja[] ja valmista elude -yksikkö mahdollisimman pian. @@ -2125,6 +2118,7 @@ hint.waveFire = [accent]Aalto[]-tykit, jotka on ladattu vedellä, sammuttavat ka hint.generator = :combustion-generator: [accent]Aggregaatit[] polttavat hiiltä ja lähettävät energiaa viereisille palikoille.\n\nEnergiansiirtokantamaa voi laajentaa :power-node:[accent]Sähkötolpilla[]. hint.guardian = [accent]Vartija[]yksiköt ovat haarniskoituja. Heikot ammukset kuten [accent]kupari[] ja [accent]lyijy[][scarlet]eivät ole tehokkaita[].\n\nKäytä korkeamman tason tykkejä tai :graphite:[accent]Grafiittia[] :duo:Duon/:salvo:Salvon ammuksena voittaaksesi vartijan. hint.coreUpgrade = Ytimen voi päivittää [accent]sijoittamalla suuremman tason ytimen niiden päälle[].\n\nSijoita :core-foundation:[accent]Pohjaus[]-ydin :core-shard:[accent]Siru[]-ytimen päälle. Varmista, että tiellä ei ole esteitä. +hint.serpuloCoreZone = Additional cores may be constructed on :core-zone: [accent]Core Zone[] tiles. hint.cannotUpgrade = A [red]:tree:[] icon over a payload unit indicates that its upgraded version is not researched yet.\n\nUnit upgrades must be researched in the [accent]:tree: tech tree[] before they can be produced in reconstructors. hint.presetLaunch = Harmaisiin [accent]laskeutumisaluesektoreihin[], kuten [accent]Jäätyneisiin metsiin[], voi laukaista kaikkialta. Ne eivät vaadi valtausta tai läheistä aluetta.\n\n[accent]Numeroidut sektorit[], kuten tämä, ovat [accent]valinnaisia[]. hint.presetDifficulty = Tässä sektorissa on [scarlet]korkea uhkataso[].\nLaukaiseminen korkean uhkatason sektoreihin [accent]ei ole suositeltua[] ilman asianmukaista teknologiaa ja valmistautumista. @@ -2153,6 +2147,34 @@ gz.zone2 = Anything built in the radius is destroyed when a wave starts. gz.zone3 = A wave will begin now.\nGet ready. gz.finish = Build more turrets, mine more resources,\nand defend against all the waves to [accent]capture the sector[]. +fungalpass.tutorial1 = Use [accent]units[] to defend buildings and attack the enemy.\nResearch and place a :ground-factory: [accent]ground factory[]. +fungalpass.tutorial2 = Select :dagger: [accent]Dagger[] units in the factory.\nProduce 3 units. + +frontier.tutorial1 = The :additive-reconstructor: [accent]Additive Reconstructor[]\nupgrades tier 1 units to tier 2\nusing :silicon: silicon and :graphite: graphite.\n\n[accent]Research and reconstruct\na []:dagger:[accent] dagger to a []:mace:[accent] mace. +frontier.tutorial2 = Enemy waves send [accent]infinitely[] until all enemy cores are [unlaunched]destroyed. +frontier.tutorial3 = [accent]Attack the enemy base fast to prevent waves from getting too high[]. + +atolls.destroy1 = Destroy the 2 enemy [accent]foundation cores[] first.\n[accent]Gain access to thorium[]. +atolls.mega1 = Enter [accent]command mode[] and select the :mega:[accent]Mega[] units. +atolls.mega2 = Select the \ue87b [accent]Load Units[] command to have Mega units to pick up ground units. +atolls.mega3 = Move the Mega units [accent]above[] ground units to load them in. +atolls.mega4 = [accent]Drop ground units here to attack. +atolls.mega5 = Select the \ue879 [accent]Unload Payload[] command to have Mega units drop their carried units. +atolls.mega6 = Units will be [accent]automatically dropped[] while the \ue879 Unload Payload command is selected. +atolls.mega7 = Mega units [accent]will not[] drop ground units while they are above walls or deep water. +atolls.mega8 = [accent]Drop naval units here to attack.[] +atolls.attack1 = 1: Drop ground units here to attack from this location. +atolls.attack2 = 2: Alternatively, drop naval units here to launch a surprise attack. +atolls.carry1 = Carrying ground units requires :mega:[accent]Mega[] units. +atolls.carry2 = 1: Command Mega units to [accent]move over[] the ground units. +atolls.carry3 = 2: Select the \ue87b [accent]Load Units[] command in order to pick up the ground units with the Mega units. +atolls.carry4 = 3: Command and move the Mega carriers [accent]loaded with units[]. +atolls.carry5 = 4: Select the \ue879 [accent]'Unload Payload'[] command in order for the Mega units to drop the ground units. +atolls.carry6 = These steps can be reviewed [accent]here[]. +atolls.carry7 = Follow these instructions to airdrop more units near the enemy base. +atolls.noairunit = This base is too well-fortified to destroy with air units. +atolls.2strategies = There are two strategies to destroy this base. + onset.mine = Click to mine :beryllium: [accent]beryllium[] from walls.\n\nUse [accent][[WASD] to move. onset.mine.mobile = Tap to mine :beryllium: [accent]beryllium[] from walls. onset.research = Open the :tree: tech tree.\nResearch, then place a :turbine-condenser: [accent]turbine condenser[] on the vent.\nThis will generate [accent]power[]. @@ -2652,6 +2674,7 @@ laccess.displaywidth = Width of a display block in pixels. laccess.displayheight = Height of a display block in pixels. laccess.buffersize = Number of unprocessed commands in the graphics buffer of a display. laccess.operations = Number of operations performed on the block.\nFor displays, returns the number of drawflush operations. +laccess.maxunits = Maximum units that a team can have.\nCan only be sensed from cores. lcategory.unknown = Tuntematon lcategory.unknown.description = Luokittelemattomat ohjeet. diff --git a/core/assets/bundles/bundle_fil.properties b/core/assets/bundles/bundle_fil.properties index 1ce828969a..2f4b35992c 100644 --- a/core/assets/bundles/bundle_fil.properties +++ b/core/assets/bundles/bundle_fil.properties @@ -101,6 +101,7 @@ coreattack = < Ang core ay inaatake! > nearpoint = [[ [scarlet]UMALIS KAAGAD SA DROP POINT[] ]\nmamamatay ka... database = Talaan ng Core database.button = Talaan +database.patched = Modified by data patches. viewfields = View Content Fields savegame = Ibago ang Laro loadgame = Ibukas ang Laro @@ -880,13 +881,14 @@ sector.facility32m.name = Pasilidad 32 M sector.taintedWoods.name = Tainted Woods sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Planetary Launch Terminal -sector.coastline.name = Coastline +sector.coastline.name = Humid Coastline sector.navalFortress.name = Kutang Pantubig sector.polarAerodrome.name = Polar Aerodrome sector.atolls.name = Atolls sector.testingGrounds.name = Testing Grounds -sector.seaPort.name = Sea Port +sector.perilousHarbor.name = Perilous Harbor sector.weatheredChannels.name = Weathered Channels +sector.fallenVessel.name = Fallen Vessel sector.mycelialBastion.name = Mycelial Bastion sector.frontier.name = Frontier sector.sunkenPier.name = Sunken Pier @@ -912,21 +914,6 @@ sector.planetaryTerminal.description = Ang huling target.\n\nAng coastal base na sector.coastline.description = Remnants of naval unit technology have been detected at this location. Repel the enemy attacks, capture this sector, and acquire the technology. sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. -#do not translate -sector.facility32m.description = WIP, map submission by Stormride_R -sector.taintedWoods.description = WIP, map submission by Stormride_R -sector.sunkenPier.description = WIP, map submission by Stormride_R -sector.atolls.description = WIP, map submission by Stormride_R -sector.frontier.description = WIP, map submission by Stormride_R -sector.infestedCanyons.description = WIP, map submission by Skeledragon -sector.polarAerodrome.description = WIP, map submission by hhh i 17 -sector.testingGrounds.description = WIP, map submission by dnx2019 -sector.seaPort.description = WIP, map submission by inkognito626 -sector.weatheredChannels.description = WIP, map submission by Skeledragon -sector.mycelialBastion.description = WIP, map submission by Skeledragon -sector.cruxscape.description = WIP, map submission by Stormride_R -sector.geothermalStronghold.description = WIP, map submission by Skeledragon - sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Lawa @@ -945,6 +932,12 @@ sector.crossroads.name = Sangang Daanan sector.karst.name = Karst sector.origin.name = Pinaggalingan +sector.origin.credit = Mechanical Fishe +sector.karst.credit = Mechanical Fishe +sector.caldera-erekir.credit = hhh i 17 +sector.siege.credit = hhh i 17 +sector.ravine.credit = Bepis + sector.onset.description = Ang tutorial sector. Ang objective ay hindi pa nagawa. Maghintay para sa kinabukasang impormasyon. sector.aegis.description = Itong sector ay may merong deposit ng mga tungsten.\nIresearch ang [accent]Impact Drill[] para makuha ang resource, at tanggalin ang enemy base sa lugar dito sector.lake.description = Itong sektor na lawa na slag greatly limits viable na unit. Ang hover unit ay ang huling paraan.\nIresearch ang[accent]ship fabricator[] at gumawa ng mga [accent]elude[] unit as soon as possible. @@ -2125,6 +2118,7 @@ hint.waveFire = [accent]Wave[] turrets with water as ammunition will automatical hint.generator = :combustion-generator: [accent]Combustion Generators[] burn coal and transmit power to adjacent blocks.\n\nPower transmission range can be extended with :power-node: [accent]Power Nodes[]. hint.guardian = [accent]Guardian[] units are armored. Weak ammo such as [accent]Copper[] and [accent]Lead[] is [scarlet]not effective[].\n\nUse higher tier turrets or :graphite: [accent]Graphite[] :duo:Duo/:salvo:Salvo ammunition to take Guardians down. hint.coreUpgrade = Cores can be upgraded by [accent]placing higher-tier cores over them[].\n\nPlace a :core-foundation: [accent]Foundation[] core over the :core-shard: [accent]Shard[] core. Make sure it is free from nearby obstructions. +hint.serpuloCoreZone = Additional cores may be constructed on :core-zone: [accent]Core Zone[] tiles. hint.cannotUpgrade = A [red]:tree:[] icon over a payload unit indicates that its upgraded version is not researched yet.\n\nUnit upgrades must be researched in the [accent]:tree: tech tree[] before they can be produced in reconstructors. hint.presetLaunch = Gray [accent]landing zone sectors[], such as [accent]Frozen Forest[], can be launched to from anywhere. They do not require capture of nearby territory.\n\n[accent]Numbered sectors[], such as this one, are [accent]optional[]. hint.presetDifficulty = This sector has a [scarlet]high enemy threat level[].\nLaunching to such sectors is [accent]not recommended[] without proper technology and preparation. @@ -2153,6 +2147,34 @@ gz.zone2 = Anything built in the radius is destroyed when a wave starts. gz.zone3 = A wave will begin now.\nGet ready. gz.finish = Build more turrets, mine more resources,\nand defend against all the waves to [accent]capture the sector[]. +fungalpass.tutorial1 = Use [accent]units[] to defend buildings and attack the enemy.\nResearch and place a :ground-factory: [accent]ground factory[]. +fungalpass.tutorial2 = Select :dagger: [accent]Dagger[] units in the factory.\nProduce 3 units. + +frontier.tutorial1 = The :additive-reconstructor: [accent]Additive Reconstructor[]\nupgrades tier 1 units to tier 2\nusing :silicon: silicon and :graphite: graphite.\n\n[accent]Research and reconstruct\na []:dagger:[accent] dagger to a []:mace:[accent] mace. +frontier.tutorial2 = Enemy waves send [accent]infinitely[] until all enemy cores are [unlaunched]destroyed. +frontier.tutorial3 = [accent]Attack the enemy base fast to prevent waves from getting too high[]. + +atolls.destroy1 = Destroy the 2 enemy [accent]foundation cores[] first.\n[accent]Gain access to thorium[]. +atolls.mega1 = Enter [accent]command mode[] and select the :mega:[accent]Mega[] units. +atolls.mega2 = Select the \ue87b [accent]Load Units[] command to have Mega units to pick up ground units. +atolls.mega3 = Move the Mega units [accent]above[] ground units to load them in. +atolls.mega4 = [accent]Drop ground units here to attack. +atolls.mega5 = Select the \ue879 [accent]Unload Payload[] command to have Mega units drop their carried units. +atolls.mega6 = Units will be [accent]automatically dropped[] while the \ue879 Unload Payload command is selected. +atolls.mega7 = Mega units [accent]will not[] drop ground units while they are above walls or deep water. +atolls.mega8 = [accent]Drop naval units here to attack.[] +atolls.attack1 = 1: Drop ground units here to attack from this location. +atolls.attack2 = 2: Alternatively, drop naval units here to launch a surprise attack. +atolls.carry1 = Carrying ground units requires :mega:[accent]Mega[] units. +atolls.carry2 = 1: Command Mega units to [accent]move over[] the ground units. +atolls.carry3 = 2: Select the \ue87b [accent]Load Units[] command in order to pick up the ground units with the Mega units. +atolls.carry4 = 3: Command and move the Mega carriers [accent]loaded with units[]. +atolls.carry5 = 4: Select the \ue879 [accent]'Unload Payload'[] command in order for the Mega units to drop the ground units. +atolls.carry6 = These steps can be reviewed [accent]here[]. +atolls.carry7 = Follow these instructions to airdrop more units near the enemy base. +atolls.noairunit = This base is too well-fortified to destroy with air units. +atolls.2strategies = There are two strategies to destroy this base. + onset.mine = Click to mine :beryllium: [accent]beryllium[] from walls.\n\nUse [accent][[WASD] to move. onset.mine.mobile = Tap to mine :beryllium: [accent]beryllium[] from walls. onset.research = Open the :tree: tech tree.\nResearch, then place a :turbine-condenser: [accent]turbine condenser[] on the vent.\nThis will generate [accent]power[]. @@ -2652,6 +2674,7 @@ laccess.displaywidth = Width of a display block in pixels. laccess.displayheight = Height of a display block in pixels. laccess.buffersize = Number of unprocessed commands in the graphics buffer of a display. laccess.operations = Number of operations performed on the block.\nFor displays, returns the number of drawflush operations. +laccess.maxunits = Maximum units that a team can have.\nCan only be sensed from cores. lcategory.unknown = Unknown lcategory.unknown.description = Uncategorized instructions. diff --git a/core/assets/bundles/bundle_fr.properties b/core/assets/bundles/bundle_fr.properties index 6ff6eb10c9..dbe7ebff29 100644 --- a/core/assets/bundles/bundle_fr.properties +++ b/core/assets/bundles/bundle_fr.properties @@ -101,6 +101,7 @@ coreattack = [scarlet]< Le Noyau est attaqué ! > nearpoint = [[ [scarlet]QUITTEZ LE POINT D'APPARITION ENNEMI IMMÉDIATEMENT[] ]\nannihilation imminente database = Base de données database.button = Base de données +database.patched = Modified by data patches. viewfields = View Content Fields savegame = Sauvegarder la partie loadgame = Charger une partie @@ -880,13 +881,14 @@ sector.facility32m.name = Facility 32 M sector.taintedWoods.name = Tainted Woods sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Planetary Launch Terminal -sector.coastline.name = Coastline +sector.coastline.name = Humid Coastline sector.navalFortress.name = Naval Fortress sector.polarAerodrome.name = Polar Aerodrome sector.atolls.name = Atolls sector.testingGrounds.name = Testing Grounds -sector.seaPort.name = Sea Port +sector.perilousHarbor.name = Perilous Harbor sector.weatheredChannels.name = Weathered Channels +sector.fallenVessel.name = Fallen Vessel sector.mycelialBastion.name = Mycelial Bastion sector.frontier.name = Frontier sector.sunkenPier.name = Sunken Pier @@ -912,21 +914,6 @@ sector.planetaryTerminal.description = La cible finale.\n\nCette base côtière sector.coastline.description = Des restes d’unités navales ont été détectés à cet endroit. Repoussez les attaques ennemies, capturez ce secteur, et obtenez cette technologie. sector.navalFortress.description = L’ennemi a établi une base sur une île isolée, avec des défenses naturelles. Détruisez cet avant-poste. Acquérez leur technologie navale avancée. -#do not translate -sector.facility32m.description = WIP, map submission by Stormride_R -sector.taintedWoods.description = WIP, map submission by Stormride_R -sector.sunkenPier.description = WIP, map submission by Stormride_R -sector.atolls.description = WIP, map submission by Stormride_R -sector.frontier.description = WIP, map submission by Stormride_R -sector.infestedCanyons.description = WIP, map submission by Skeledragon -sector.polarAerodrome.description = WIP, map submission by hhh i 17 -sector.testingGrounds.description = WIP, map submission by dnx2019 -sector.seaPort.description = WIP, map submission by inkognito626 -sector.weatheredChannels.description = WIP, map submission by Skeledragon -sector.mycelialBastion.description = WIP, map submission by Skeledragon -sector.cruxscape.description = WIP, map submission by Stormride_R -sector.geothermalStronghold.description = WIP, map submission by Skeledragon - sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Lake @@ -945,6 +932,12 @@ sector.crossroads.name = Crossroads sector.karst.name = Karst sector.origin.name = Origin +sector.origin.credit = Mechanical Fishe +sector.karst.credit = Mechanical Fishe +sector.caldera-erekir.credit = hhh i 17 +sector.siege.credit = hhh i 17 +sector.ravine.credit = Bepis + sector.onset.description = Le secteur de tutoriel. Cet objectif n'a pas encore été créé. Attendez pour des informations futures. sector.aegis.description = L'ennemi est protégé par des boucliers. Un module expérimental de briseur de bouclier a été détecté dans ce secteur.\nLocalisez cette structure, approvisionnez-la avec des munitions de tungstène et détruisez la base ennemie. sector.lake.description = Le lac de scories du secteur limite les unités utilisables. Les troupes volantes sont la seule option.\nRecherchez le [accent]fabricateur de vaisseaux[] et produisez un [accent]elude[] aussi tôt que possible. @@ -2125,6 +2118,7 @@ hint.waveFire = [accent]Les tourelles à liquides[], approvisionnées en eau en hint.generator = :combustion-generator: Les [accent]Générateurs à combustion[] brûlent du Charbon et transmettent de l'énergie aux blocs adjacents.\n\nLa transmission d'énergie peut être étendue avec des :power-node: [accent]Transmetteurs Énergétiques[]. hint.guardian = Les [accent]Gardiens[] sont protégés par un bouclier. Les munitions faibles telles que le [accent]Cuivre[] et le [accent]Plomb[] ne seront [scarlet]pas efficaces[].\n\nUtilisez des tourelles de plus haut niveau, ou de meilleures munitions comme le :graphite: [accent]Graphite[] avec un :duo:Duo/:salvo:Salve pour pouvoir tuer le gardien. hint.coreUpgrade = Les Noyaux peuvent être améliorés [accent]en plaçant un Noyau de plus haut niveau sur eux[].\n\nPlacez un :core-foundation: Noyau [accent]Fondation[] sur le :core-shard: Noyau [accent]Fragment[]. Soyez sûrs que rien n'obstrue la construction. +hint.serpuloCoreZone = Additional cores may be constructed on :core-zone: [accent]Core Zone[] tiles. hint.cannotUpgrade = A [red]:tree:[] icon over a payload unit indicates that its upgraded version is not researched yet.\n\nUnit upgrades must be researched in the [accent]:tree: tech tree[] before they can be produced in reconstructors. hint.presetLaunch = Les [accent]secteurs[] gris, tels que [accent]Frozen Forest[], peuvent être lancés de n'importe où. Ils ne requièrent pas la capture d'un secteur adjacent.\n\n[accent]Il y a beaucoup de secteurs[] comme celui-ci, qui sont [accent]optionnels[]. hint.presetDifficulty = Ce secteur a un niveau de menace ennemi [scarlet]élevé[].\nIl n'est [accent]pas recommandé[] de se lancer dans de tels secteurs sans la technologie et la préparation appropriées. @@ -2153,6 +2147,34 @@ gz.zone2 = Tout ce qui est construit dans le rayon est détruit lors du commence gz.zone3 = Une vague va commencer maintenant.\nPréparez-vous. gz.finish = Construisez plus de tourelles, minez plus de resources,\net défendez-vous contre toutes les vagues ennemies afin de [accent]capturer ce secteur[]. +fungalpass.tutorial1 = Use [accent]units[] to defend buildings and attack the enemy.\nResearch and place a :ground-factory: [accent]ground factory[]. +fungalpass.tutorial2 = Select :dagger: [accent]Dagger[] units in the factory.\nProduce 3 units. + +frontier.tutorial1 = The :additive-reconstructor: [accent]Additive Reconstructor[]\nupgrades tier 1 units to tier 2\nusing :silicon: silicon and :graphite: graphite.\n\n[accent]Research and reconstruct\na []:dagger:[accent] dagger to a []:mace:[accent] mace. +frontier.tutorial2 = Enemy waves send [accent]infinitely[] until all enemy cores are [unlaunched]destroyed. +frontier.tutorial3 = [accent]Attack the enemy base fast to prevent waves from getting too high[]. + +atolls.destroy1 = Destroy the 2 enemy [accent]foundation cores[] first.\n[accent]Gain access to thorium[]. +atolls.mega1 = Enter [accent]command mode[] and select the :mega:[accent]Mega[] units. +atolls.mega2 = Select the \ue87b [accent]Load Units[] command to have Mega units to pick up ground units. +atolls.mega3 = Move the Mega units [accent]above[] ground units to load them in. +atolls.mega4 = [accent]Drop ground units here to attack. +atolls.mega5 = Select the \ue879 [accent]Unload Payload[] command to have Mega units drop their carried units. +atolls.mega6 = Units will be [accent]automatically dropped[] while the \ue879 Unload Payload command is selected. +atolls.mega7 = Mega units [accent]will not[] drop ground units while they are above walls or deep water. +atolls.mega8 = [accent]Drop naval units here to attack.[] +atolls.attack1 = 1: Drop ground units here to attack from this location. +atolls.attack2 = 2: Alternatively, drop naval units here to launch a surprise attack. +atolls.carry1 = Carrying ground units requires :mega:[accent]Mega[] units. +atolls.carry2 = 1: Command Mega units to [accent]move over[] the ground units. +atolls.carry3 = 2: Select the \ue87b [accent]Load Units[] command in order to pick up the ground units with the Mega units. +atolls.carry4 = 3: Command and move the Mega carriers [accent]loaded with units[]. +atolls.carry5 = 4: Select the \ue879 [accent]'Unload Payload'[] command in order for the Mega units to drop the ground units. +atolls.carry6 = These steps can be reviewed [accent]here[]. +atolls.carry7 = Follow these instructions to airdrop more units near the enemy base. +atolls.noairunit = This base is too well-fortified to destroy with air units. +atolls.2strategies = There are two strategies to destroy this base. + onset.mine = Cliquez pour miner le :beryllium: [accent]béryllium[] contenu dans les murs.\n\nUtilisez [accent][[ZQSD] pour bouger. onset.mine.mobile = Tapez pour miner le :beryllium: [accent]béryllium[] contenu dans les murs. onset.research = Ouvrez :tree: l'arbre technologique.\nRecherchez et placez un :turbine-condenser: [accent]condenseur à turbine[] sur l'évent.\nCela va générer de [accent]l'énergie[]. @@ -2652,6 +2674,7 @@ laccess.displaywidth = Width of a display block in pixels. laccess.displayheight = Height of a display block in pixels. laccess.buffersize = Number of unprocessed commands in the graphics buffer of a display. laccess.operations = Number of operations performed on the block.\nFor displays, returns the number of drawflush operations. +laccess.maxunits = Maximum units that a team can have.\nCan only be sensed from cores. lcategory.unknown = Inconnu lcategory.unknown.description = Instructions sans catégorie. diff --git a/core/assets/bundles/bundle_hu.properties b/core/assets/bundles/bundle_hu.properties index 69a1afa16f..d809b4f693 100644 --- a/core/assets/bundles/bundle_hu.properties +++ b/core/assets/bundles/bundle_hu.properties @@ -101,6 +101,7 @@ coreattack = < A támaszpont támadás alatt áll! > nearpoint = [[ [scarlet]AZONNAL HAGYD EL A LEDOBÁSI PONTOT[] ]\nA megsemmisülés fenyeget! database = Támaszpont adatbázisa database.button = Adatbázis +database.patched = Modified by data patches. viewfields = Tartalmi mezők megtekintése savegame = Játék mentése loadgame = Játék betöltése @@ -885,8 +886,9 @@ sector.navalFortress.name = Haditengerészeti erőd sector.polarAerodrome.name = Sarkvidéki légikikötő sector.atolls.name = Atollok sector.testingGrounds.name = Gyakorlótér -sector.seaPort.name = Tengeri kikötő +sector.perilousHarbor.name = Perilous Harbor sector.weatheredChannels.name = Viharvert csatornák +sector.fallenVessel.name = Fallen Vessel sector.mycelialBastion.name = Micéliumbástya sector.frontier.name = Frontvidék sector.sunkenPier.name = Elsüllyedt móló @@ -912,21 +914,6 @@ sector.planetaryTerminal.description = A végső célpont.\n\nEzen a vízparti b sector.coastline.description = Ezen a helyen egy haditengerészeti egység technológiájának maradványait azonosították. Verd vissza az ellenséges támadásokat, foglald el ezt a szektort, és szerezd meg a technológiát. sector.navalFortress.description = Az ellenség bázist létesített egy távoli, természetes erődítményes szigeten. Pusztítsd el ezt az előőrsöt. Szerezd meg a fejlett hadihajó-technológiájukat, és fejleszd ki te is. -#do not translate -sector.facility32m.description = WIP, map submission by Stormride_R -sector.taintedWoods.description = WIP, map submission by Stormride_R -sector.sunkenPier.description = WIP, map submission by Stormride_R -sector.atolls.description = WIP, map submission by Stormride_R -sector.frontier.description = WIP, map submission by Stormride_R -sector.infestedCanyons.description = WIP, map submission by Skeledragon -sector.polarAerodrome.description = WIP, map submission by hhh i 17 -sector.testingGrounds.description = WIP, map submission by dnx2019 -sector.seaPort.description = WIP, map submission by inkognito626 -sector.weatheredChannels.description = WIP, map submission by Skeledragon -sector.mycelialBastion.description = WIP, map submission by Skeledragon -sector.cruxscape.description = WIP, map submission by Stormride_R -sector.geothermalStronghold.description = WIP, map submission by Skeledragon - sector.onset.name = A kezdet sector.aegis.name = Égisz sector.lake.name = Tó @@ -945,6 +932,12 @@ sector.crossroads.name = Keresztutak sector.karst.name = Karszt sector.origin.name = Eredet +sector.origin.credit = Mechanical Fishe +sector.karst.credit = Mechanical Fishe +sector.caldera-erekir.credit = hhh i 17 +sector.siege.credit = hhh i 17 +sector.ravine.credit = Bepis + sector.onset.description = Kezdd meg az Erekir meghódítását. Gyűjts nyersanyagokat, állíts elő egységeket, és kezdd el a technológiai fejlesztéseket. sector.aegis.description = Ez a szektor volfrám-lelőhelyeket tartalmaz.\nFejleszd ki az [accent]ütvefúrót[], hogy ki tudd bányászni ezt a nyersanyagot, és pusztítsd el az ellenséges bázist a szektorban. sector.lake.description = Az ebben a szektorban lévő salakos tó nagymértékben korlátozza a használható egységeket. A lebegőegységek használata az egyetlen lehetőség.\nFejleszd ki a [accent]repülőgépgyártót[], és állíts elő egy [accent]Elude[] egységet, amilyen hamar csak lehet. @@ -2125,6 +2118,7 @@ hint.waveFire = A vizet lőszerként használó [accent]Wave[] lövegtornyok aut hint.generator = Az :combustion-generator: [accent]égetőerőmű[] szenet éget, és áramot ad át a vele érintkező épületeknek.\n\nAz áramszállítás távolsága további \uf87f [accent]villanyoszlopokkal[] növelhető. hint.guardian = Az [accent]őrzők[] páncélozottak. A gyenge lövedékek, mint a [accent]réz[] vagy az [accent]ólom[] [scarlet]nem hatásosak[] az Őrző páncéljával szemben.\n\nHasználj magasabb szintű lövegtornyokat, vagy juttass :graphite: [accent]grafitot[] a :duo: Duo / \uf859 Salvo lövegtornyokba, hogy leszedd az őrzőket. hint.coreUpgrade = A támaszpont úgy fejleszthető, hogy [accent]magasabb szintű támaszpontot teszel rá[].\n\nHelyezz egy :core-foundation: [accent]alapítvány[] támaszpontot a \uf869 [accent]szilánk[] támaszpontra. Figyelj rá, hogy ne legyenek az új támaszpont területén épületek. +hint.serpuloCoreZone = Additional cores may be constructed on :core-zone: [accent]Core Zone[] tiles. hint.cannotUpgrade = Egy [red]:tree:[] ikon azt jelzi a raktérrel rendelkező egységek felett, hogy a továbbfejlesztett verziójuk még nem lett kifejlesztve.\n\nAz egységek fejlesztéseit a [accent]:tree: technológiafán[] kell elvégezni, mielőtt azok az újratervezőkben előállíthatók lennének. hint.presetLaunch = A szürke [accent]landolási zónát tartalmazó szektorokba[], amilyen például a [accent]Fagyott erdő[], bárhonnan kilőhetsz. Nem szükséges hozzá szomszédos területet elfoglalnod.\n\nA [accent]számozott szektorokat[], mint ez is, a játékmenet szempontjából [accent]nem fontos[] elfoglalni. hint.presetDifficulty = Ebben a szektorban [scarlet]magas az ellenséges fenyegetettségi szint[].\nAz ilyen szektorokba való indulás [accent]nem ajánlott[] megfelelő technológia és felkészülés nélkül. @@ -2153,6 +2147,34 @@ gz.zone2 = Bármi, ami a hatósugarában épült, elpusztul, amikor egy hullám gz.zone3 = Egy hullám most kezdődik.\nKészülj fel. gz.finish = Építs több lövegtornyot, bányássz több nyersanyagot,\nés védekezz az ellenséges hullámok ellen, hogy [accent]elfoglald a szektort[]. +fungalpass.tutorial1 = Use [accent]units[] to defend buildings and attack the enemy.\nResearch and place a :ground-factory: [accent]ground factory[]. +fungalpass.tutorial2 = Select :dagger: [accent]Dagger[] units in the factory.\nProduce 3 units. + +frontier.tutorial1 = The :additive-reconstructor: [accent]Additive Reconstructor[]\nupgrades tier 1 units to tier 2\nusing :silicon: silicon and :graphite: graphite.\n\n[accent]Research and reconstruct\na []:dagger:[accent] dagger to a []:mace:[accent] mace. +frontier.tutorial2 = Enemy waves send [accent]infinitely[] until all enemy cores are [unlaunched]destroyed. +frontier.tutorial3 = [accent]Attack the enemy base fast to prevent waves from getting too high[]. + +atolls.destroy1 = Destroy the 2 enemy [accent]foundation cores[] first.\n[accent]Gain access to thorium[]. +atolls.mega1 = Enter [accent]command mode[] and select the :mega:[accent]Mega[] units. +atolls.mega2 = Select the \ue87b [accent]Load Units[] command to have Mega units to pick up ground units. +atolls.mega3 = Move the Mega units [accent]above[] ground units to load them in. +atolls.mega4 = [accent]Drop ground units here to attack. +atolls.mega5 = Select the \ue879 [accent]Unload Payload[] command to have Mega units drop their carried units. +atolls.mega6 = Units will be [accent]automatically dropped[] while the \ue879 Unload Payload command is selected. +atolls.mega7 = Mega units [accent]will not[] drop ground units while they are above walls or deep water. +atolls.mega8 = [accent]Drop naval units here to attack.[] +atolls.attack1 = 1: Drop ground units here to attack from this location. +atolls.attack2 = 2: Alternatively, drop naval units here to launch a surprise attack. +atolls.carry1 = Carrying ground units requires :mega:[accent]Mega[] units. +atolls.carry2 = 1: Command Mega units to [accent]move over[] the ground units. +atolls.carry3 = 2: Select the \ue87b [accent]Load Units[] command in order to pick up the ground units with the Mega units. +atolls.carry4 = 3: Command and move the Mega carriers [accent]loaded with units[]. +atolls.carry5 = 4: Select the \ue879 [accent]'Unload Payload'[] command in order for the Mega units to drop the ground units. +atolls.carry6 = These steps can be reviewed [accent]here[]. +atolls.carry7 = Follow these instructions to airdrop more units near the enemy base. +atolls.noairunit = This base is too well-fortified to destroy with air units. +atolls.2strategies = There are two strategies to destroy this base. + onset.mine = Kattints bal egérgombbal a :beryllium: [accent]berillium[] kibányászáshoz a falakból.\n\nA mozgáshoz használd a [accent][[WASD] gombokat. onset.mine.mobile = Koppints a :beryllium: [accent]berillium[] kibányászáshoz a falakból. onset.research = Nyisd meg a :tree: Technológiafát.\nFejleszd ki, és építs egy :turbine-condenser: [accent]kondenzációs turbinát[] a kürtőn.\nEz [accent]áramot[] fog termelni. @@ -2652,6 +2674,7 @@ laccess.displaywidth = Egy kijelzőblokk szélessége pixelben. laccess.displayheight = Egy kijelzőblokk magassága pixelben. laccess.buffersize = Üzenetek esetén: A tartalom hossza.\nKijelzők esetén: A feldolgozatlan grafikus parancsok száma. laccess.operations = A blokkon végrehajtott műveletek száma.\nKijelzők esetén a drawflush-műveletek számát adja vissza. +laccess.maxunits = Maximum units that a team can have.\nCan only be sensed from cores. lcategory.unknown = Ismeretlen lcategory.unknown.description = Nem kategorizált utasítások. diff --git a/core/assets/bundles/bundle_id_ID.properties b/core/assets/bundles/bundle_id_ID.properties index 2dce8ca1a5..455b8c2565 100644 --- a/core/assets/bundles/bundle_id_ID.properties +++ b/core/assets/bundles/bundle_id_ID.properties @@ -101,6 +101,7 @@ coreattack = < Inti sedang diserang! > nearpoint = [[ [scarlet]TINGGALKAN TITIK PENDARATAN SEGERA[] ]\npemusnahan akan terjadi database = Basis Data Inti database.button = Basis Data +database.patched = Modified by data patches. viewfields = Lihat Bidang Konten savegame = Simpan Permainan loadgame = Muat Permainan @@ -885,8 +886,9 @@ sector.navalFortress.name = Benteng Laut sector.polarAerodrome.name = Pangkalan Kutub sector.atolls.name = Atol sector.testingGrounds.name = Kawasan Uji Coba -sector.seaPort.name = Pelabuhan Laut +sector.perilousHarbor.name = Perilous Harbor sector.weatheredChannels.name = Selat Terkikis +sector.fallenVessel.name = Fallen Vessel sector.mycelialBastion.name = Benteng Pertahanan Miselium sector.frontier.name = Perbatasan sector.sunkenPier.name = Dermaga Karam @@ -912,21 +914,6 @@ sector.planetaryTerminal.description = Target terakhir.\n\nMarkas pesisir pantai sector.coastline.description = Sisa-sisa teknologi Unit Laut telah terdeteksi di lokasi ini. Tolak serangan musuh, rebut sektor ini, dan dapatkan teknologinya. sector.navalFortress.description = Musuh telah mendirikan markas di sebuah pulau terpencil, dibentengi secara alami. Hancurkan pangkalan ini. Dapatkan teknologi Unit Laut mereka yang canggih, dan telitilah -#do not translate -sector.facility32m.description = WIP, map submission by Stormride_R -sector.taintedWoods.description = WIP, map submission by Stormride_R -sector.sunkenPier.description = WIP, map submission by Stormride_R -sector.atolls.description = WIP, map submission by Stormride_R -sector.frontier.description = WIP, map submission by Stormride_R -sector.infestedCanyons.description = WIP, map submission by Skeledragon -sector.polarAerodrome.description = WIP, map submission by hhh i 17 -sector.testingGrounds.description = WIP, map submission by dnx2019 -sector.seaPort.description = WIP, map submission by inkognito626 -sector.weatheredChannels.description = WIP, map submission by Skeledragon -sector.mycelialBastion.description = WIP, map submission by Skeledragon -sector.cruxscape.description = WIP, map submission by Stormride_R -sector.geothermalStronghold.description = WIP, map submission by Skeledragon - sector.onset.name = Serangan Awal sector.aegis.name = Aegis sector.lake.name = Danau @@ -945,6 +932,12 @@ sector.crossroads.name = Simpangan sector.karst.name = Kars sector.origin.name = Origin +sector.origin.credit = Mechanical Fishe +sector.karst.credit = Mechanical Fishe +sector.caldera-erekir.credit = hhh i 17 +sector.siege.credit = hhh i 17 +sector.ravine.credit = Bepis + sector.onset.description = Permulaan Penaklukan Erekir. Kumpulkan sumber daya, produksi unit, dan mulailah meneliti teknologi. sector.aegis.description = Sektor ini mengandung deposit tungsten.\nRiset [accent]Bor Tumbukan[] untuk menambang sumber daya ini, dan hancurkan markas musuh di area tersebut. sector.lake.description = Danau lava di sektor ini sangat membatasi pilihan unit yang kita gunakan. Unit Kapal adalah satu-satunya pilihan.\nRiset [accent]pabrikator kapal[] dan produksi unit [accent]elude[] secepat mungkin. @@ -2125,6 +2118,7 @@ hint.waveFire = Menara [accent]Wave[] yang terisi dengan air akan memadamkan api hint.generator = :combustion-generator: [accent]Generator Pembakar[] membakar batu bara dan menghasilkan energi ke blok yang berdekatan.\n\nTransmisi energi dapat diperluas dengan :power-node: [accent]Simpul Daya[]. hint.guardian = Unit [accent]Penjaga[] adalah unit yang diperkuat. Amunisi lemah seperti [accent]Tembaga[] dan [accent]Timah[] [scarlet]tidak efektif[].\n\nGunakan menara yang lebih bagus atau amunisi yang lebih kuat seperti :graphite: [accent]Grafit[] :duo:Duo/:salvo:Salvo untuk menghancurkan Penjaga. hint.coreUpgrade = Inti dapat ditingkatkan dengan cara [accent]meletakkan Inti yang lebih besar di atasnya[].\n\nLetakkan sebuah inti :core-foundation: [accent]Foundation[] diatas inti :core-shard: [accent]Shard[]. Pastikan terdapat ruang kosong dari bangunan yang lain. +hint.serpuloCoreZone = Additional cores may be constructed on :core-zone: [accent]Core Zone[] tiles. hint.cannotUpgrade = Ikon [red]:tree:[] di atas pabrik unit menunjukkan bahwa versi yang ditingkatkan belum diteliti.\n\nPeningkatan unit harus diteliti di [accent]:tree: pohon teknologi[] sebelum dapat diproduksi di rekonstruktor. hint.presetLaunch = [accent]Zona pendaratan[] yang berwarna abu-abu, seperti [accent]Hutan Beku[] dapat diluncurkan dari mana saja. Sektor seperti ini tidak perlu diluncurkan dari sektor terdekat milik Anda.\n\n[accent]Sektor yang bernomor[], seperti yang ini, bersifat [accent]opsional[]. hint.presetDifficulty = Sektor ini memiliki [scarlet]tingkat ancaman musuh yang tinggi[].\nMeluncurkan ke sektor tersebut [accent]tidak disarankan[] tanpa teknologi yang sesuai dan persiapan yang matang. @@ -2153,6 +2147,34 @@ gz.zone2 = Apa pun yang dibangun dalam radius tersebut \nakan hancur ketika gelo gz.zone3 = Gelombang akan dimulai sekarang. Bersiaplah. gz.finish = Bangun lebih banyak menara, tambang lebih banyak sumber daya,\ndan bertahanlah terhadap semua gelombang untuk [accent]menaklukkan sektor[]. +fungalpass.tutorial1 = Use [accent]units[] to defend buildings and attack the enemy.\nResearch and place a :ground-factory: [accent]ground factory[]. +fungalpass.tutorial2 = Select :dagger: [accent]Dagger[] units in the factory.\nProduce 3 units. + +frontier.tutorial1 = The :additive-reconstructor: [accent]Additive Reconstructor[]\nupgrades tier 1 units to tier 2\nusing :silicon: silicon and :graphite: graphite.\n\n[accent]Research and reconstruct\na []:dagger:[accent] dagger to a []:mace:[accent] mace. +frontier.tutorial2 = Enemy waves send [accent]infinitely[] until all enemy cores are [unlaunched]destroyed. +frontier.tutorial3 = [accent]Attack the enemy base fast to prevent waves from getting too high[]. + +atolls.destroy1 = Destroy the 2 enemy [accent]foundation cores[] first.\n[accent]Gain access to thorium[]. +atolls.mega1 = Enter [accent]command mode[] and select the :mega:[accent]Mega[] units. +atolls.mega2 = Select the \ue87b [accent]Load Units[] command to have Mega units to pick up ground units. +atolls.mega3 = Move the Mega units [accent]above[] ground units to load them in. +atolls.mega4 = [accent]Drop ground units here to attack. +atolls.mega5 = Select the \ue879 [accent]Unload Payload[] command to have Mega units drop their carried units. +atolls.mega6 = Units will be [accent]automatically dropped[] while the \ue879 Unload Payload command is selected. +atolls.mega7 = Mega units [accent]will not[] drop ground units while they are above walls or deep water. +atolls.mega8 = [accent]Drop naval units here to attack.[] +atolls.attack1 = 1: Drop ground units here to attack from this location. +atolls.attack2 = 2: Alternatively, drop naval units here to launch a surprise attack. +atolls.carry1 = Carrying ground units requires :mega:[accent]Mega[] units. +atolls.carry2 = 1: Command Mega units to [accent]move over[] the ground units. +atolls.carry3 = 2: Select the \ue87b [accent]Load Units[] command in order to pick up the ground units with the Mega units. +atolls.carry4 = 3: Command and move the Mega carriers [accent]loaded with units[]. +atolls.carry5 = 4: Select the \ue879 [accent]'Unload Payload'[] command in order for the Mega units to drop the ground units. +atolls.carry6 = These steps can be reviewed [accent]here[]. +atolls.carry7 = Follow these instructions to airdrop more units near the enemy base. +atolls.noairunit = This base is too well-fortified to destroy with air units. +atolls.2strategies = There are two strategies to destroy this base. + onset.mine = Klik untuk menambang :beryllium: [accent]berilium[] dari dinding.\n\nGunakan tombol [accent][[WASD] untuk bergerak. onset.mine.mobile = Ketuk untuk menambang :beryllium: [accent]berilium[] dari dinding. onset.research = Buka :tree: pohon teknologi.\nRiset, dan tempatkan :turbine-condenser: [accent]kondensor turbin[] di ventilasi.\nIni akan menghasilkan [accent]tenaga[]. @@ -2652,6 +2674,7 @@ laccess.displaywidth = Lebar blok tampilan logika dalam piksel. laccess.displayheight = Tinggi blok tampilan logika dalam piksel. laccess.buffersize = Untuk pesan: Panjang dari isi pesan.\nUntuk tampilan: Jumlah dari perintah grafis mentah. laccess.operations = Jumlah operasi yang dilakukan pada blok.\nUntuk tampilan, mengembalikan jumlah dari operasi drawflush. +laccess.maxunits = Maximum units that a team can have.\nCan only be sensed from cores. lcategory.unknown = Tak Diketahui lcategory.unknown.description = Instruksi tanpa kategori. diff --git a/core/assets/bundles/bundle_it.properties b/core/assets/bundles/bundle_it.properties index b446f9e775..b2c0e6e8a4 100644 --- a/core/assets/bundles/bundle_it.properties +++ b/core/assets/bundles/bundle_it.properties @@ -41,7 +41,7 @@ be.ignore = Ignora be.noupdates = Nessun aggiornamento disponibile. be.check = Verifica aggiornamenti -mods.browser = Mod Browser +mods.browser = Esplora Mod mods.browser.selected = Mod selezionata mods.browser.add = Installa mod mods.browser.reinstall = Reinstalla mod @@ -101,6 +101,7 @@ coreattack = < Il Nucleo è sotto attacco! > nearpoint = [[ [scarlet]LASCIA LA ZONA NEMICA IMMEDIATAMENTE[] ]\nautodistruzione imminente database = Database Nucleo database.button = Database +database.patched = Modified by data patches. viewfields = View Content Fields savegame = Salva loadgame = Carica @@ -135,7 +136,7 @@ mods.initfailed = [red]⚠[] L'ultimo avvio di Mindustry non è riuscito. Questo mods = Mod mods.name = Mod: mods.none = [lightgray]Nessuna mod trovata! -mods.guide = Guida per il modding +mods.guide = Guida al modding mods.report = Segnala un Bug mods.openfolder = Apri Cartella mods.viewcontent = Vedi contenuto @@ -147,7 +148,7 @@ mod.enabled = [lightgray]Abilitato mod.disabled = [scarlet]Disabilitato mod.multiplayer.compatible = [gray]Multiplayer Compatible mod.disable = Disabilita -mod.version = Version: +mod.version = Versione: mod.content = Contenuto: mod.delete.error = Impossibile eliminare questa mod. Il file potrebbe essere in uso. @@ -160,12 +161,12 @@ mod.circulardependencies = [red]Circular Dependencies mod.incompletedependencies = [red]Incomplete Dependencies mod.requiresversion.details = Richiede la versione del gioco: [accent]{0}[]\nIl tuo gioco è obsoleto. Questa mod richiede una versione più recente del gioco (possibilmente una versione beta/alpha) per funzionare. -mod.incompatiblemod.details = This mod is incompatible with the latest version of the game. The author must update it, and add [accent]minGameVersion: 154[] to its [accent]mod.json[] file. +mod.incompatiblemod.details = Questa mod non è compatibile con l'ultima versione del gioco. L'autore deve aggiornarla, e aggiungere [accent]minGameVersion: 154[] nel file [accent]mod.json[]. mod.blacklisted.details = Questa mod è stata messa manualmente nella blacklist perchè provoca crash o altri problemi in questa versione del gioco. Non usarla. -mod.missingdependencies.details = This mod is missing dependencies: {0} -mod.erroredcontent.details = This game caused errors when loading. Ask the mod author to fix them. -mod.circulardependencies.details = This mod has dependencies that depends on each other. -mod.incompletedependencies.details = This mod is unable to be loaded due to invalid or missing dependencies: {0}. +mod.missingdependencies.details = Questa mod richiede queste dipendenze: {0} +mod.erroredcontent.details = Il caricamento del gioco ha causato degli errori. Chiedi all'autore della mod di correggerli. +mod.circulardependencies.details = Questa mod ha dipendenze che dipendono fra loro. +mod.incompletedependencies.details = Questa mod non è in grado di essere caricata per dipendenze non valide o mancanti: {0}. mod.requiresversion = Requires game version: [red]{0} @@ -210,7 +211,7 @@ campaign.select = Select Starting Campaign campaign.none = [lightgray]Select a planet to start on.\nThis can be switched at any time. campaign.erekir = Newer, more polished content. Mostly linear campaign progression.\n\nHigher quality maps and overall experience. campaign.serpulo = Older content; the classic experience. More open-ended.\n\nPotentially unbalanced maps and campaign mechanics. Less polished. -campaign.difficulty = Difficulty +campaign.difficulty = Difficoltà completed = [accent]Completato techtree = Albero Scoperte techtree.select = Seleziona albero delle scoperte @@ -286,9 +287,9 @@ player.ban = Ban player.kick = Kick player.trace = Trace player.admin = Toggle Admin -player.team = Change Team +player.team = Cambia Squadra -server.bans = Lista Bans +server.bans = Lista Ban server.bans.none = Nessun giocatore bandito trovato! server.admins = Amministratori server.admins.none = Nessun amministratore trovato! @@ -369,7 +370,7 @@ command.queue = [lightgray][Queuing] command.mine = Mina command.repair = Ripara command.rebuild = Ricostruisci -command.assist = Aiuta giocatore +command.assist = Aiuta Giocatore command.move = Muovi command.boost = Boost command.enterPayload = Enter Payload Block @@ -386,7 +387,7 @@ stance.ram = Stance: Ram\n[lightgray]Straight line movement, no pathfinding stance.mineauto = Automatic Mining stance.mine = Mine Item: {0} openlink = Apri Link -copylink = Copia link +copylink = Copia Link back = Indietro max = Max objective = Map Objective @@ -449,9 +450,9 @@ publish.confirm = Sei sicuro di volerlo pubblicare?\n\n[lightgray]Assicurati di publish.error = Errore nella pubblicazione del prodotto: {0} steam.error = Impossibile inizializzare i servizi di Steam.\nErrore: {0} -editor.showblocks = Show Blocks -editor.showterrain = Show Terrain -editor.showfloor = Show Floor +editor.showblocks = Mostra Blocchi +editor.showterrain = Mostra Terreno +editor.showfloor = Mostra Pavimentazione editor.planet = Pianeta: editor.sector = Settore: editor.seed = Seme: @@ -466,7 +467,7 @@ editor.nodescription = Una mappa deve avere una descrizione di almeno 4 caratter editor.waves = Ondate: editor.rules = Regole: editor.generation = Generazione: -editor.objectives = Obbiettivi +editor.objectives = Obiettivi editor.locales = Locale Bundles editor.patches.guide = Patch Guide editor.patches = Content Patches @@ -524,8 +525,8 @@ waves.sort.reverse = Inverti ordine waves.sort.begin = Inizia waves.sort.health = Salute waves.sort.type = Tipo -waves.search = Search waves... -waves.filter = Unit Filter +waves.search = Cerca ondate... +waves.filter = Filtro Unità waves.units.hide = Nascondi tutto waves.units.show = Mostra tutto @@ -761,7 +762,7 @@ resources = Risorse resources.max = Max bannedblocks = Blocchi Banditi unbannedblocks = Unbanned Blocks -objectives = Obbiettivi +objectives = Obiettivi bannedunits = Unità bandite unbannedunits = Unbanned Units bannedunits.whitelist = Banned Units As Whitelist @@ -800,11 +801,11 @@ campaign.complete = [accent]Congratulations.\n\nThe enemy on {0} has been defeat sectorlist = Settore sectorlist.attacked = {0} sotto attacco sectors.unexplored = [lightgray]Inesplorato -sectors.attempts = Attempts: +sectors.attempts = Tentativi: sectors.resources = Risorse: sectors.production = Produzione: -sectors.export = Merce: -sectors.import = Importa: +sectors.export = Esportazione: +sectors.import = Importazione: sectors.time = Tempo: sectors.threat = Minaccia: sectors.wave = Ondata: @@ -831,7 +832,7 @@ sector.missingresources = [scarlet]Risorse del Nucleo Insufficienti sector.attacked = Settore [accent]{0}[white] sotto attacco! sector.lost = Settore [accent]{0}[white] perso! sector.capture = Sector [accent]{0}[white]Captured! -sector.capture.current = Sector Captured! +sector.capture.current = Settore Catturato! sector.changeicon = Cambia icona sector.noswitch.title = Impossibile cambiare settore sector.noswitch = Non puoi cambiare settore mentre sei sotto attacco.\n\nSectore: [accent]{0}[] on [accent]{1}[] @@ -844,10 +845,10 @@ threat.high = Alta threat.extreme = Estrema threat.eradication = Catastrofe -difficulty.casual = Casual -difficulty.easy = Easy -difficulty.normal = Normal -difficulty.hard = Hard +difficulty.casual = Molto Facile +difficulty.easy = Facile +difficulty.normal = Normale +difficulty.hard = Difficile difficulty.eradication = Eradication difficulty.enemyHealthMultiplier = Enemy Health: {0} @@ -880,18 +881,19 @@ sector.facility32m.name = Facility 32 M sector.taintedWoods.name = Tainted Woods sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Terminale di Lancio Planetario -sector.coastline.name = Coastline -sector.navalFortress.name = Fortezza navale -sector.polarAerodrome.name = Polar Aerodrome -sector.atolls.name = Atolls -sector.testingGrounds.name = Testing Grounds -sector.seaPort.name = Sea Port -sector.weatheredChannels.name = Weathered Channels -sector.mycelialBastion.name = Mycelial Bastion -sector.frontier.name = Frontier -sector.sunkenPier.name = Sunken Pier +sector.coastline.name = Linea Costiera +sector.navalFortress.name = Fortezza Navale +sector.polarAerodrome.name = Aerodromo Polare +sector.atolls.name = Atolli +sector.testingGrounds.name = Terreni di Prova +sector.perilousHarbor.name = Perilous Harbor +sector.weatheredChannels.name = Canali Logorati +sector.fallenVessel.name = Nave Affondata +sector.mycelialBastion.name = Bastione del Micelio +sector.frontier.name = Frontiera +sector.sunkenPier.name = Molo Sommerso sector.cruxscape.name = Cruxscape -sector.geothermalStronghold.name = Geothermal Stronghold +sector.geothermalStronghold.name = Roccaforte Geotermica sector.groundZero.description = La posizione ottimale per ricominciare. Bassa minaccia nemica. Poche risorse.\nRaccogli quanto più piombo e rame possibile.\nParti. sector.frozenForest.description = Anche qui, più vicino alle montagne, le spore si sono diffuse. Le temperature gelide non possono contenerle per sempre.\n\nInizia l'avventura nell'energia. Costruisci generatori a combustione. Impara a usare i riparatori. @@ -912,21 +914,6 @@ sector.planetaryTerminal.description = Il bersaglio finale.\n\nQuesta base costi sector.coastline.description = In questo settore sono stati rilevati resti di tecnologia di unità navali. Respingi gli attacchi nemici, cattura il settore e acquisisci la tecnologia. sector.navalFortress.description = Il nemico ha stabilito una base su un'isola remota e fortificata naturalmente. Distruggi questo avamposto. Acquisisci la loro tecnologia navale avanzata e fate ricerche. -#do not translate -sector.facility32m.description = WIP, map submission by Stormride_R -sector.taintedWoods.description = WIP, map submission by Stormride_R -sector.sunkenPier.description = WIP, map submission by Stormride_R -sector.atolls.description = WIP, map submission by Stormride_R -sector.frontier.description = WIP, map submission by Stormride_R -sector.infestedCanyons.description = WIP, map submission by Skeledragon -sector.polarAerodrome.description = WIP, map submission by hhh i 17 -sector.testingGrounds.description = WIP, map submission by dnx2019 -sector.seaPort.description = WIP, map submission by inkognito626 -sector.weatheredChannels.description = WIP, map submission by Skeledragon -sector.mycelialBastion.description = WIP, map submission by Skeledragon -sector.cruxscape.description = WIP, map submission by Stormride_R -sector.geothermalStronghold.description = WIP, map submission by Skeledragon - sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Nome @@ -945,7 +932,13 @@ sector.crossroads.name = Crossroads sector.karst.name = Karst sector.origin.name = Origin -sector.onset.description = Settore di prova. Questo obbiettivo non è ancora stato creato. Aspetta ulteriori informazioni. +sector.origin.credit = Mechanical Fishe +sector.karst.credit = Mechanical Fishe +sector.caldera-erekir.credit = hhh i 17 +sector.siege.credit = hhh i 17 +sector.ravine.credit = Bepis + +sector.onset.description = Settore di prova. Questo obiettivo non è ancora stato creato. Aspetta ulteriori informazioni. sector.aegis.description = This sector contains deposits of tungsten.\nResearch the [accent]Impact Drill[] to mine this resource, and destroy the enemy base in the area. sector.lake.description = This sector's slag lake greatly limits viable units. A hover unit is the only option.\nResearch the [accent]ship fabricator[] and produce an [accent]elude[] unit as soon as possible. sector.intersect.description = Scans suggest that this sector will be attacked from multiple sides soon after landing.\nSet up defenses quickly and expand as soon as possible.\n[accent]Mech[] units will be required for the area's rough terrain. @@ -1118,7 +1111,7 @@ ability.armorplate.description = Reduces damage taken while shooting ability.shieldarc = Shield Arc ability.shieldarc.description = Projects a force shield in an arc that absorbs bullets ability.suppressionfield = Regen Suppression Field -ability.suppressionfield.description = Stops nearby repair buildings +ability.suppressionfield.description = Ferma gli edifici di riparazione limitrofi ability.energyfield = Campo energetico ability.energyfield.description = Zaps nearby enemies ability.energyfield.healdescription = Zaps nearby enemies and heals allies @@ -1132,19 +1125,19 @@ ability.liquidexplode = Death Spillage ability.liquidexplode.description = Spills liquid on death ability.stat.firingrate = [stat]{0}/sec[lightgray] firing rate -ability.stat.regen = [stat]{0}[lightgray] health/sec -ability.stat.pulseregen = [stat]{0}[lightgray] health/pulse -ability.stat.shield = [stat]{0}[lightgray] shield -ability.stat.repairspeed = [stat]{0}/sec[lightgray] repair speed +ability.stat.regen = [stat]{0}[lightgray] salute/sec +ability.stat.pulseregen = [stat]{0}[lightgray] salute/impulso +ability.stat.shield = [stat]{0}[lightgray] scudo +ability.stat.repairspeed = [stat]{0}/sec[lightgray] velocità riparazione ability.stat.deflectchance = [stat]{0}%[lightgray] deflect chance ability.stat.slurpheal = [stat]{0}[lightgray] health/liquid unit -ability.stat.cooldown = [stat]{0} sec[lightgray] cooldown -ability.stat.maxtargets = [stat]{0}[lightgray] max targets +ability.stat.cooldown = [stat]{0} sec[lightgray] ripresa +ability.stat.maxtargets = [stat]{0}[lightgray] obiettivi max ability.stat.sametypehealmultiplier = [stat]{0}%[lightgray] same type repair amount -ability.stat.damagereduction = [stat]{0}%[lightgray] damage reduction -ability.stat.minspeed = [stat]{0} tiles/sec[lightgray] min speed -ability.stat.duration = [stat]{0} sec[lightgray] duration -ability.stat.buildtime = [stat]{0} sec[lightgray] build time +ability.stat.damagereduction = [stat]{0}%[lightgray] riduzione danno +ability.stat.minspeed = [stat]{0} tiles/sec[lightgray] velocità min +ability.stat.duration = [stat]{0} sec[lightgray] durata +ability.stat.buildtime = [stat]{0} sec[lightgray] tempo di costruzione bar.displaytoolarge = Dimensions too large\n(Max: {0}x{0}) bar.onlycoredeposit = Concesso solo il deposito al nucleo @@ -1158,7 +1151,7 @@ bar.drillspeed = Velocità Scavo: {0}/s bar.pumpspeed = Velocità di Pompaggio: {0}/s bar.efficiency = Efficienza: {0}% bar.boost = Boost: +{0}% -bar.powerbuffer = Battery Power: {0}/{1} +bar.powerbuffer = Potenza Batterie: {0}/{1} bar.powerbalance = Energia: {0}/s bar.powerstored = Immagazzinata: {0}/{1} bar.poweramount = Energia: {0} @@ -1169,7 +1162,7 @@ bar.capacity = Capacità: {0} bar.unitcap = {0} {1}/{2} bar.liquid = Liquido bar.heat = Calore -bar.cooldown = Cooldown +bar.cooldown = Ripresa bar.instability = Instabilità bar.heatamount = Calore: {0} bar.heatpercent = Calore: {0} ({1}%) @@ -1181,8 +1174,8 @@ bar.input = Entrata bar.output = Uscita bar.strength = [stat]{0}[lightgray]x forza bar.regenerationrate = [stat]{0}/sec[lightgray] regen rate -bar.activationtimer = Activates in {0} -bar.activated = Activated +bar.activationtimer = Attivazione in {0} +bar.activated = Attivato units.processorcontrol = [lightgray]Controllato dal Processore @@ -1194,7 +1187,7 @@ bullet.armorpierce = [stat]perforazione alle armature bullet.armorweakness = [red]{0}%[lightgray] armor weakness bullet.armorpiercing = [stat]{0}%[lightgray] armor piercing bullet.antiarmor = [stat]{0}x[lightgray] anti-armor -bullet.maxdamagefraction = [stat]{0}%[lightgray] damage limit +bullet.maxdamagefraction = [stat]{0}%[lightgray] limite danno bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles bullet.interval = [stat]{0}/sec[lightgray] interval bullets: bullet.frags = [stat]{0}[lightgray]x frammentazione: @@ -1353,7 +1346,7 @@ keybind.boost.name = Scatto keybind.command_mode.name = Modalità di comando keybind.command_queue.name = Unit Command Queue keybind.create_control_group.name = Create Control Group -keybind.cancel_orders.name = Cancel Orders +keybind.cancel_orders.name = Annulla Ordini keybind.unit_stance_shoot.name = Unit Stance: Shoot keybind.unit_stance_hold_fire.name = Unit Stance: Hold Fire @@ -1410,12 +1403,12 @@ keybind.shoot.name = Spara keybind.zoom.name = Zoom keybind.menu.name = Menu keybind.pause.name = Pausa -keybind.skip_wave.name = Skip Wave +keybind.skip_wave.name = Salta Ondata keybind.pause_building.name = Interrompi/Riprendi Costruzione keybind.minimap.name = Minimappa keybind.planet_map.name = Mappa Pianeta keybind.research.name = Albero Scoperte -keybind.block_info.name = Block Info +keybind.block_info.name = Info Blocco keybind.chat.name = Chat keybind.player_list.name = Lista dei Giocatori keybind.console.name = Console @@ -1455,7 +1448,7 @@ rules.coreincinerates = Core Incinerates Overflow rules.disableworldprocessors = Disabilita processori rules.schematic = Schematiche Consentite rules.wavetimer = Timer Ondate -rules.wavesending = Wave Sending +rules.wavesending = Invio Ondate rules.allowedit = Allow Editing Rules rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. rules.alloweditworldprocessors = Allow Editing World Processors @@ -1487,7 +1480,7 @@ rules.enemyCheat = Risorse AI (squadra Rossa) Infinite rules.blockhealthmultiplier = Moltiplicatore Salute Blocco rules.blockdamagemultiplier = Moltiplicatore Danno Blocco rules.unitbuildspeedmultiplier = Moltiplicatore Velocità Costruzione Unità -rules.unitcostmultiplier = Unit Cost Multiplier +rules.unitcostmultiplier = Moltiplicatore Costo Unità rules.unithealthmultiplier = Moltiplicatore Vita Unità rules.unitdamagemultiplier = Moltiplicatore Danno Unità rules.unitcrashdamagemultiplier = Unit Crash Damage Multiplier @@ -1851,7 +1844,7 @@ block.solar-panel.name = Pannello Solare block.solar-panel-large.name = Pannello Solare Grande block.oil-extractor.name = Estrattore di Petrolio block.repair-point.name = Punto di Riparazione -block.repair-turret.name = Repair Turret +block.repair-turret.name = Torretta Riparatrice block.pulse-conduit.name = Condotto a Impulsi block.plated-conduit.name = Condotto Placcato block.phase-conduit.name = Condotto di Fase @@ -1883,8 +1876,8 @@ block.meltdown.name = Fusione block.foreshadow.name = Tenebra block.container.name = Contenitore block.launch-pad.name = Ascensore Spaziale -block.advanced-launch-pad.name = Launch Pad -block.landing-pad.name = Landing Pad +block.advanced-launch-pad.name = Ascensore Spaziale +block.landing-pad.name = Piattaforma di Atterraggio block.segment.name = Segmentatore block.ground-factory.name = Fabbrica Terrestre @@ -1896,7 +1889,7 @@ block.exponential-reconstructor.name = Ricostruttore Esponenziale block.tetrative-reconstructor.name = Ricostruttore Tetrattivo block.payload-conveyor.name = Trasportatore di Massa block.payload-router.name = Distributore di Carico -block.duct.name = Duct +block.duct.name = Condotto block.duct-router.name = Duct Router block.duct-bridge.name = Duct Bridge block.large-payload-mass-driver.name = Large Payload Mass Driver @@ -1906,18 +1899,18 @@ block.disassembler.name = Disassemblatore block.silicon-crucible.name = Crogiolo per Silicio block.overdrive-dome.name = Cupola di Overdrive block.interplanetary-accelerator.name = Acceleratore Interplanetario -block.constructor.name = Constructor -block.constructor.description = Fabricates structures up to 2x2 tiles in size. -block.large-constructor.name = Large Constructor -block.large-constructor.description = Fabricates structures up to 4x4 tiles in size. -block.deconstructor.name = Deconstructor -block.deconstructor.description = Deconstructs structures and units. Returns 100% of build cost. +block.constructor.name = Costruttore +block.constructor.description = Fabbrica strutture fino a 2x2 tasselli di grandezza. +block.large-constructor.name = Costruttore Grande +block.large-constructor.description = Fabbrica strutture fino a 4x4 tasselli di grandezza. +block.deconstructor.name = Demolitore +block.deconstructor.description = Demolisce strutture e unità. Restituisce il 100% del costo di costruzione. block.payload-loader.name = Payload Loader block.payload-loader.description = Load liquids and items into blocks. block.payload-unloader.name = Payload Unloader block.payload-unloader.description = Unloads liquids and items from blocks. -block.heat-source.name = Heat Source -block.heat-source.description = A 1x1 block that gives virtualy infinite heat. +block.heat-source.name = Fonte di Calore +block.heat-source.description = Un blocco 1x1 che fornisce un calore virtualmente infinito. #Erekir block.empty.name = Empty @@ -2125,6 +2118,7 @@ hint.waveFire = [accent]Idrogetto[] torrette con acqua per munizioni spegneranno hint.generator = \uf879 [accent]Generatori a Combustibile[] bruciano carbone e trasferiscono energia ai blocchi adiacenti.\n\nIl raggio di trasmissione dell'enrgia può essere esteso con \uf87f [accent]Nodo Energetico[]. hint.guardian = Unità [accent]Guardiano[] sono corazzate. Munizioni deboli come [accent]Rame[] e [accent]Piombo[] sono [scarlet]inefficaci[].\n\nUsa torrette di grado superiore o \uf835 [accent]Grafite[] \uf861Duo/\uf859Cannone Leggero per buttare giù il boss. hint.coreUpgrade = I nuclei possono essere aggiornati [accent]piazzando nuclei di un livello superiore sopra di loro[].\n\nPiazzia un nucleo \uf868 [accent]Fondazione[] sopra il nucleo \uf869 [accent]Frammento[]. Assicurati che sia libero da ostacoli. +hint.serpuloCoreZone = Additional cores may be constructed on :core-zone: [accent]Core Zone[] tiles. hint.cannotUpgrade = A [red]:tree:[] icon over a payload unit indicates that its upgraded version is not researched yet.\n\nUnit upgrades must be researched in the [accent]:tree: tech tree[] before they can be produced in reconstructors. hint.presetLaunch = [accent]Settori grigi d'atterraggio[], come [accent]Foresta Ghiacciata[], possono essere lanciati da ovunque. Non richiedono la cattura nei terrotori circostanti.\n\n[accent]Settori numerati[], come questo qui, sono [accent]opzionali[]. hint.presetDifficulty = This sector has a [scarlet]high enemy threat level[].\nLaunching to such sectors is [accent]not recommended[] without proper technology and preparation. @@ -2153,6 +2147,34 @@ gz.zone2 = Anything built in the radius is destroyed when a wave starts. gz.zone3 = A wave will begin now.\nGet ready. gz.finish = Build more turrets, mine more resources,\nand defend against all the waves to [accent]capture the sector[]. +fungalpass.tutorial1 = Use [accent]units[] to defend buildings and attack the enemy.\nResearch and place a :ground-factory: [accent]ground factory[]. +fungalpass.tutorial2 = Select :dagger: [accent]Dagger[] units in the factory.\nProduce 3 units. + +frontier.tutorial1 = The :additive-reconstructor: [accent]Additive Reconstructor[]\nupgrades tier 1 units to tier 2\nusing :silicon: silicon and :graphite: graphite.\n\n[accent]Research and reconstruct\na []:dagger:[accent] dagger to a []:mace:[accent] mace. +frontier.tutorial2 = Enemy waves send [accent]infinitely[] until all enemy cores are [unlaunched]destroyed. +frontier.tutorial3 = [accent]Attack the enemy base fast to prevent waves from getting too high[]. + +atolls.destroy1 = Destroy the 2 enemy [accent]foundation cores[] first.\n[accent]Gain access to thorium[]. +atolls.mega1 = Enter [accent]command mode[] and select the :mega:[accent]Mega[] units. +atolls.mega2 = Select the \ue87b [accent]Load Units[] command to have Mega units to pick up ground units. +atolls.mega3 = Move the Mega units [accent]above[] ground units to load them in. +atolls.mega4 = [accent]Drop ground units here to attack. +atolls.mega5 = Select the \ue879 [accent]Unload Payload[] command to have Mega units drop their carried units. +atolls.mega6 = Units will be [accent]automatically dropped[] while the \ue879 Unload Payload command is selected. +atolls.mega7 = Mega units [accent]will not[] drop ground units while they are above walls or deep water. +atolls.mega8 = [accent]Drop naval units here to attack.[] +atolls.attack1 = 1: Drop ground units here to attack from this location. +atolls.attack2 = 2: Alternatively, drop naval units here to launch a surprise attack. +atolls.carry1 = Carrying ground units requires :mega:[accent]Mega[] units. +atolls.carry2 = 1: Command Mega units to [accent]move over[] the ground units. +atolls.carry3 = 2: Select the \ue87b [accent]Load Units[] command in order to pick up the ground units with the Mega units. +atolls.carry4 = 3: Command and move the Mega carriers [accent]loaded with units[]. +atolls.carry5 = 4: Select the \ue879 [accent]'Unload Payload'[] command in order for the Mega units to drop the ground units. +atolls.carry6 = These steps can be reviewed [accent]here[]. +atolls.carry7 = Follow these instructions to airdrop more units near the enemy base. +atolls.noairunit = This base is too well-fortified to destroy with air units. +atolls.2strategies = There are two strategies to destroy this base. + onset.mine = Click to mine \uf748 [accent]beryllium[] from walls.\n\nUse [accent][[WASD] to move. onset.mine.mobile = Tap to mine \uf748 [accent]beryllium[] from walls. onset.research = Open the \ue875 tech tree.\nResearch, then place a \uf73e [accent]turbine condenser[] on the vent.\nThis will generate [accent]power[]. @@ -2193,7 +2215,7 @@ item.metaglass.description = Usato nelle strutture per il trasporto/immagazzinam item.graphite.description = Usato nei componenti elettrici e come munizione per le torrette. item.sand.description = Usata per la produzione di altri materiali raffinati. item.coal.description = Usato per la produzione di combustibili e materiali più raffinati. -item.coal.details = Sembra siano resti organici fossilizzati di piante, formato prima dell'evento di semina. +item.coal.details = Sembra siano resti organici fossilizzati di piante, formati prima dell'evento di semina. item.titanium.description = Usato nelle strutture per il trasporto dei liquidi e per le trivelle. item.thorium.description = Utilizzato per la costruzione delle strutture più robuste e come combustibile nucleare. item.scrap.description = Utilizzato nel fonditore e nel polverizzatore per essere raffinato in altri materiali. @@ -2203,7 +2225,7 @@ item.plastanium.description = Utilizzato per le unità avanzate e come munizione item.phase-fabric.description = Usato nei circuiti avanzati e per le strutture autoriparanti. item.surge-alloy.description = Usato come munizione per torrette avanzate. item.spore-pod.description = Utilizzato per la conversione in petrolio, esplosivi e carburante. -item.spore-pod.details = Spore. Probabilmente una forma di vita sintetica. Emettono gas tossici alle vita biologica. Estremamente invasive. Altamente infiammabili in certe condizioni. +item.spore-pod.details = Spore. Probabilmente una forma di vita sintetica. Emettono gas tossici per altre vite biologiche. Estremamente invasive. Altamente infiammabili in certe condizioni. item.blast-compound.description = Un composto altamente volatile, utilizzato nella produzione di bombe ed esplosivi. Può essere utilizzato come combustibile anche se non è consigliabile. item.pyratite.description = Una sostanza molto infiammabile che viene utilizzata nelle armi da fuoco. @@ -2231,7 +2253,7 @@ block.derelict = \uf77e [lightgray]Derelict block.armored-conveyor.description = Trasporta gli oggetti. Non accetta oggetti dai lati. block.illuminator.description = Emette luce. block.message.description = Memorizza un messaggio per le comunicazioni tra alleati. -block.reinforced-message.description = Stores a message for communication between allies. +block.reinforced-message.description = Memorizza un messaggio per le comunicazioni tra alleati. block.world-message.description = A message block for use in mapmaking. Cannot be destroyed. block.graphite-press.description = Comprime il carbone in grafite. block.multi-press.description = Comprime il carbone in grafite. Necessite di acqua come refrigerante. @@ -2471,7 +2493,7 @@ block.tank-refabricator.description = Upgrades inputted tank units to the second block.ship-refabricator.description = Upgrades inputted ship units to the second tier. block.mech-refabricator.description = Upgrades inputted mech units to the second tier. block.prime-refabricator.description = Upgrades inputted units to the third tier. -block.basic-assembler-module.description = Increases assembler tier when placed next to a construction boundary. Requires power. Can be used as a payload input. +block.basic-assembler-module.description = Incrementa gli assemblatori alla generazione successiva quando è piazzato di fianco ad un perimetro di costruzione. Richiede energia. Può essere usato come ingresso di materiale. block.small-deconstructor.description = Deconstructs inputted structures and units. Returns 100% of the build cost. block.reinforced-payload-conveyor.description = Moves payloads forward. block.reinforced-payload-router.description = Distributes payloads into adjacent blocks. Functions as a sorter when a filter is set. @@ -2550,14 +2572,14 @@ lst.draw = Add an operation to the drawing buffer.\nDoes not display anything un lst.drawflush = Flush queued [accent]Draw[] operations to a display. lst.printflush = Flush queued [accent]Print[] operations to a message block. lst.getlink = Get a processor link by index. Starts at 0. -lst.control = Control a building. -lst.radar = Locate units around a building with range. -lst.sensor = Get data from a building or unit. -lst.set = Set a variable. -lst.operation = Perform an operation on 1-2 variables. +lst.control = Controlla un edificio. +lst.radar = Geolocalizza unità attorno ad un edificio, dato un certo raggio. +lst.sensor = Ottieni informazioni da un edificio o da unità. +lst.set = Imposta una variabile. +lst.operation = Esegui un'operazione su 1-2 variabili. lst.end = Jump to the top of the instruction stack. -lst.wait = Wait a certain number of seconds. -lst.stop = Halt execution of this processor. +lst.wait = Attendi un certo numero di secondi. +lst.stop = Interrompi l'esecuzione di questo processore. lst.lookup = Look up an item/liquid/unit/block type by ID.\nTotal counts of each type can be accessed with:\n[accent]@unitCount[] / [accent]@itemCount[] / [accent]@liquidCount[] / [accent]@blockCount[] lst.jump = Conditionally jump to another statement. lst.unitbind = Bind to the next unit of a type, and store it in [accent]@unit[]. @@ -2652,6 +2674,7 @@ laccess.displaywidth = Width of a display block in pixels. laccess.displayheight = Height of a display block in pixels. laccess.buffersize = Number of unprocessed commands in the graphics buffer of a display. laccess.operations = Number of operations performed on the block.\nFor displays, returns the number of drawflush operations. +laccess.maxunits = Maximum units that a team can have.\nCan only be sensed from cores. lcategory.unknown = Unknown lcategory.unknown.description = Uncategorized instructions. diff --git a/core/assets/bundles/bundle_ja.properties b/core/assets/bundles/bundle_ja.properties index b49fa93b8a..799eaa8d2c 100644 --- a/core/assets/bundles/bundle_ja.properties +++ b/core/assets/bundles/bundle_ja.properties @@ -101,6 +101,7 @@ coreattack = < コアが攻撃を受けています! > nearpoint = [[ [scarlet]直ちに出現ポイントより離脱せよ[] ]\n殲滅されます database = コアデータベース database.button = データベース +database.patched = Modified by data patches. viewfields = View Content Fields savegame = 保存 loadgame = 読み込む @@ -885,8 +886,9 @@ sector.navalFortress.name = 海軍要塞 sector.polarAerodrome.name = 極地飛行場 sector.atolls.name = 環礁 sector.testingGrounds.name = 実験地 -sector.seaPort.name = 港 +sector.perilousHarbor.name = Perilous Harbor sector.weatheredChannels.name = Weathered Channels +sector.fallenVessel.name = Fallen Vessel sector.mycelialBastion.name = Mycelial Bastion sector.frontier.name = 辺境辺境 sector.sunkenPier.name = Sunken Pier @@ -912,21 +914,6 @@ sector.planetaryTerminal.description = 最終目標です。\n\nこの沿岸基 sector.coastline.description = ここで、海軍技術の残骸が発見されました。\n敵の攻撃を退け、占領し、その技術を獲得しましょう。 sector.navalFortress.description = 敵は、自然の要塞になる離島に基地を設けています。この前哨基地を破壊せよ。\n彼らの高度な艦艇技術を入手し、研究せよ。 -#do not translate -sector.facility32m.description = WIP, map submission by Stormride_R -sector.taintedWoods.description = WIP, map submission by Stormride_R -sector.sunkenPier.description = WIP, map submission by Stormride_R -sector.atolls.description = WIP, map submission by Stormride_R -sector.frontier.description = WIP, map submission by Stormride_R -sector.infestedCanyons.description = WIP, map submission by Skeledragon -sector.polarAerodrome.description = WIP, map submission by hhh i 17 -sector.testingGrounds.description = WIP, map submission by dnx2019 -sector.seaPort.description = WIP, map submission by inkognito626 -sector.weatheredChannels.description = WIP, map submission by Skeledragon -sector.mycelialBastion.description = WIP, map submission by Skeledragon -sector.cruxscape.description = WIP, map submission by Stormride_R -sector.geothermalStronghold.description = WIP, map submission by Skeledragon - sector.onset.name = オンセット sector.aegis.name = イージス sector.lake.name = 池 @@ -945,6 +932,12 @@ sector.crossroads.name = クロスロード sector.karst.name = カルスト sector.origin.name = 起点 +sector.origin.credit = Mechanical Fishe +sector.karst.credit = Mechanical Fishe +sector.caldera-erekir.credit = hhh i 17 +sector.siege.credit = hhh i 17 +sector.ravine.credit = Bepis + sector.onset.description = エレキルの制圧を開始します。資源を集め、ユニットを生産し、技術の研究を始めよ。 sector.aegis.description = このセクターには、タングステンの鉱床があります。\nこの資源を採掘するための[accent]インパクトドリル[]を研究し、その地域の敵基地を破壊せよ。 sector.lake.description = このセクターには溶岩の湖があり、使用可能なユニットが限られています。\n[accent]軍艦工場[]を研究し、一刻も早く[accent]エリュード[]を生産しましょう。 @@ -2125,6 +2118,7 @@ hint.waveFire = [accent]ウェーブ[]タレットは水を搬入すると、近 hint.generator = :combustion-generator: [accent]火力発電機[]石炭を燃やし、隣接するブロックに電力を供給します。\n\n電力供給範囲は:power-node: [accent]電源ノード[]で拡張できます。 hint.guardian = [accent]ガーディアン[]ユニットは装甲を搭載しています。[accent]銅[]や[accent]鉛[]などの弱い弾薬は[scarlet]効果がありません[]。\n\n強力なターレット、または:duo:デュオ/:salvo:サルボーの弾薬に:graphite: [accent]黒鉛[]を使用してガーディアンを撃破してください。 hint.coreUpgrade = コアは [accent]上位のコアを配置することでアップグレードできます[]。\n\n :core-shard: [accent]シャード[]コアの上に、 :core-foundation: [accent]ファンデーション[]コアを置きます。近くに障害物がないことを確認してください。 +hint.serpuloCoreZone = Additional cores may be constructed on :core-zone: [accent]Core Zone[] tiles. hint.cannotUpgrade = A [red]:tree:[] icon over a payload unit indicates that its upgraded version is not researched yet.\n\nUnit upgrades must be researched in the [accent]:tree: tech tree[] before they can be produced in reconstructors. hint.presetLaunch = [accent]フローズン · フォレスト[]などの灰色の[accent]着陸ゾーンセクター[]には、どこからでも発射できるため近くの領土を確保する必要はありません。\n\nしかし、このような[accent]数字のセクター[]では[accent]この限りではありません[]。 hint.presetDifficulty = このセクターは[scarlet]敵の脅威レベルが高いです[]。\nこのようなセクターへの出撃は、適切な技術と準備なしには[accent]お勧めできません[]。 @@ -2153,6 +2147,34 @@ gz.zone2 = ウェーブが始まると、円の中に構築されたものはす gz.zone3 = もうすぐウェーブが始まります。\n準備をしてください。 gz.finish = より多くのタレットを建設し、より多くの資源を採掘し、\nすべてのウェーブから防御して[accent]セクターを占領[]してください。 +fungalpass.tutorial1 = Use [accent]units[] to defend buildings and attack the enemy.\nResearch and place a :ground-factory: [accent]ground factory[]. +fungalpass.tutorial2 = Select :dagger: [accent]Dagger[] units in the factory.\nProduce 3 units. + +frontier.tutorial1 = The :additive-reconstructor: [accent]Additive Reconstructor[]\nupgrades tier 1 units to tier 2\nusing :silicon: silicon and :graphite: graphite.\n\n[accent]Research and reconstruct\na []:dagger:[accent] dagger to a []:mace:[accent] mace. +frontier.tutorial2 = Enemy waves send [accent]infinitely[] until all enemy cores are [unlaunched]destroyed. +frontier.tutorial3 = [accent]Attack the enemy base fast to prevent waves from getting too high[]. + +atolls.destroy1 = Destroy the 2 enemy [accent]foundation cores[] first.\n[accent]Gain access to thorium[]. +atolls.mega1 = Enter [accent]command mode[] and select the :mega:[accent]Mega[] units. +atolls.mega2 = Select the \ue87b [accent]Load Units[] command to have Mega units to pick up ground units. +atolls.mega3 = Move the Mega units [accent]above[] ground units to load them in. +atolls.mega4 = [accent]Drop ground units here to attack. +atolls.mega5 = Select the \ue879 [accent]Unload Payload[] command to have Mega units drop their carried units. +atolls.mega6 = Units will be [accent]automatically dropped[] while the \ue879 Unload Payload command is selected. +atolls.mega7 = Mega units [accent]will not[] drop ground units while they are above walls or deep water. +atolls.mega8 = [accent]Drop naval units here to attack.[] +atolls.attack1 = 1: Drop ground units here to attack from this location. +atolls.attack2 = 2: Alternatively, drop naval units here to launch a surprise attack. +atolls.carry1 = Carrying ground units requires :mega:[accent]Mega[] units. +atolls.carry2 = 1: Command Mega units to [accent]move over[] the ground units. +atolls.carry3 = 2: Select the \ue87b [accent]Load Units[] command in order to pick up the ground units with the Mega units. +atolls.carry4 = 3: Command and move the Mega carriers [accent]loaded with units[]. +atolls.carry5 = 4: Select the \ue879 [accent]'Unload Payload'[] command in order for the Mega units to drop the ground units. +atolls.carry6 = These steps can be reviewed [accent]here[]. +atolls.carry7 = Follow these instructions to airdrop more units near the enemy base. +atolls.noairunit = This base is too well-fortified to destroy with air units. +atolls.2strategies = There are two strategies to destroy this base. + onset.mine = クリックして :beryllium: [accent]ベリリウム[] を壁から採掘しましょう。\n\n移動するには [accent][[WASD] を使用してください。 onset.mine.mobile = 壁から:beryllium: [accent]ベリリウム[]を採掘するにはタップしてください。 onset.research = :tree: 技術ツリーを開きます。\n :turbine-condenser: [accent]タービンコンデンサー[] を研究し、ジェットホールに配置しましょう。\nこれにより [accent]電力[] が生成されます。 @@ -2652,6 +2674,7 @@ laccess.displaywidth = Width of a display block in pixels. laccess.displayheight = Height of a display block in pixels. laccess.buffersize = Number of unprocessed commands in the graphics buffer of a display. laccess.operations = Number of operations performed on the block.\nFor displays, returns the number of drawflush operations. +laccess.maxunits = Maximum units that a team can have.\nCan only be sensed from cores. lcategory.unknown = 不明 lcategory.unknown.description = 未分類の指示です。 diff --git a/core/assets/bundles/bundle_ko.properties b/core/assets/bundles/bundle_ko.properties index ac2a69552c..244625bd89 100644 --- a/core/assets/bundles/bundle_ko.properties +++ b/core/assets/bundles/bundle_ko.properties @@ -101,6 +101,7 @@ coreattack = < 코어가 공격을 받고 있습니다! > nearpoint = [[ [scarlet]즉시 적 착륙 지점에서 떠나세요[] ]\n점멸이 임박됨 database = 코어 데이터베이스 database.button = 데이터베이스 +database.patched = Modified by data patches. viewfields = 콘텐츠 필드 보기 savegame = 게임 저장 loadgame = 게임 불러오기 @@ -885,8 +886,9 @@ sector.navalFortress.name = 해군 요새 sector.polarAerodrome.name = 극지 비행장 sector.atolls.name = 환초섬 sector.testingGrounds.name = 시험장 -sector.seaPort.name = 바다 항구 +sector.perilousHarbor.name = Perilous Harbor sector.weatheredChannels.name = 풍화된 수로 +sector.fallenVessel.name = Fallen Vessel sector.mycelialBastion.name = 균사 성채 sector.frontier.name = 국경 지방 sector.sunkenPier.name = 가라앉은 부두 @@ -912,21 +914,6 @@ sector.planetaryTerminal.description = 최종 목표입니다.\n\n적이 필사 sector.coastline.description = 이 장소에서 해상 유닛 기술의 잔재가 발견되었습니다. 적의 공격을 격퇴하고, 이 지역을 점령하고, 기술을 습득하십시오. sector.navalFortress.description = 적은 자연적으로 요새화된 외딴 섬에 기지를 세웠습니다. 이 전초기지를 파괴하여 적의 발전된 해군 건조 기술을 습득하고 연구하십시오. -#do not translate -sector.facility32m.description = WIP, map submission by Stormride_R -sector.taintedWoods.description = WIP, map submission by Stormride_R -sector.sunkenPier.description = WIP, map submission by Stormride_R -sector.atolls.description = WIP, map submission by Stormride_R -sector.frontier.description = WIP, map submission by Stormride_R -sector.infestedCanyons.description = WIP, map submission by Skeledragon -sector.polarAerodrome.description = WIP, map submission by hhh i 17 -sector.testingGrounds.description = WIP, map submission by dnx2019 -sector.seaPort.description = WIP, map submission by inkognito626 -sector.weatheredChannels.description = WIP, map submission by Skeledragon -sector.mycelialBastion.description = WIP, map submission by Skeledragon -sector.cruxscape.description = WIP, map submission by Stormride_R -sector.geothermalStronghold.description = WIP, map submission by Skeledragon - sector.onset.name = 시작 sector.aegis.name = 보호 sector.lake.name = 호수 @@ -945,6 +932,12 @@ sector.crossroads.name = 교차로 sector.karst.name = 카르스트 sector.origin.name = 근원 +sector.origin.credit = Mechanical Fishe +sector.karst.credit = Mechanical Fishe +sector.caldera-erekir.credit = hhh i 17 +sector.siege.credit = hhh i 17 +sector.ravine.credit = Bepis + sector.onset.description = 에러키얼 정복을 시작하세요. 자원을 모으고, 유닛을 생산하고, 기술 연구를 시작하세요. sector.aegis.description = 이 구역에는 텅스텐 매장지가 있습니다.\n[accent]충격 드릴[]을 연구해 이 자원을 채굴하고 해당 지역의 적 기지를 파괴하세요. sector.lake.description = 이 지역의 광재 호수는 유닛의 활동 범위를 크게 제한시킵니다. 호버링 유닛만이 유일한 선택지입니다.\n[accent]함선 재구성기[]를 연구하고 [accent]일루드[]를 가능한 한 빨리 생산하여야 합니다. @@ -2125,6 +2118,7 @@ hint.waveFire = [accent]웨이브[] 포탑에 물을 공급하면 주변에 발 hint.generator = \uf879 [accent]화력 발전기[]는 석탄을 태워서 주변 블록에 전력을 전달합니다.\n\n \uf87f 더 넓은 범위의 블록에 전력을 전달하려면 [accent]전력 노드[]를 활용하십시오. hint.guardian = [accent]수호자[] 유닛은 높은 체력과 방어력을 가졌습니다. [accent]구리[]와 [accent]납[]처럼 약한 탄약으로는 [scarlet]아무런 효과도 없습니다[].\n\n수호자를 제거하려면 높은 단계의 포탑 또는 \uf835 [accent]흑연[]을 탄약으로 넣은 \uf861듀오/\uf859살보를 사용하십시오. hint.coreUpgrade = 코어는 [accent]상위 코어를 위에 설치[]하여 업그레이드할 수 있습니다.\n\n [accent]기반[] 코어를 [accent]조각[] 코어 위에 설치하십시오. 주변에 장애물이 없는지 확인하십시오. +hint.serpuloCoreZone = Additional cores may be constructed on :core-zone: [accent]Core Zone[] tiles. hint.cannotUpgrade = 만약 재구성기 위에 [red]:tree:[] 아이콘이 있는 경우 업그레이드된 버전이 아직 연구되지 않았음을 나타냅니다.\n\n유닛 업그레이드는 재구성기에서 생산되기 전에 [accent]:tree: 연구 기록[]에서 반드시 연구해야 합니다. hint.presetLaunch = [accent]얼어붙은 숲[]과 같은 회색[accent]캠페인 지역[]은 어디에서나 출격해서 올 수 있습니다. 주변 지역을 점령하지 않아도 됩니다.\n\n이와 같은 [accent]네임드 지역[]들은 [accent]선택적[]입니다. hint.presetDifficulty = 이 지역은 [scarlet]위험도가 높은[] 지역입니다.\n적절한 기술과 준비 없이 이런 지역들로 출격하는건 [accent]추천하지 않습니다[]. @@ -2153,6 +2147,34 @@ gz.zone2 = 반경에 세워진 모든 것은 단계가 시작되면 파괴됩니 gz.zone3 = 단계가 지금 시작됩니다.\n준비하세요. gz.finish = 포탑을 더 건설하고, 자원을 더 채굴하고,\n그리고 모든 단계를 막아내어 [accent]이 지역을 점령[]하세요. 이것으로 튜토리얼을 마칩니다. 행운을 빕니다. +fungalpass.tutorial1 = Use [accent]units[] to defend buildings and attack the enemy.\nResearch and place a :ground-factory: [accent]ground factory[]. +fungalpass.tutorial2 = Select :dagger: [accent]Dagger[] units in the factory.\nProduce 3 units. + +frontier.tutorial1 = The :additive-reconstructor: [accent]Additive Reconstructor[]\nupgrades tier 1 units to tier 2\nusing :silicon: silicon and :graphite: graphite.\n\n[accent]Research and reconstruct\na []:dagger:[accent] dagger to a []:mace:[accent] mace. +frontier.tutorial2 = Enemy waves send [accent]infinitely[] until all enemy cores are [unlaunched]destroyed. +frontier.tutorial3 = [accent]Attack the enemy base fast to prevent waves from getting too high[]. + +atolls.destroy1 = Destroy the 2 enemy [accent]foundation cores[] first.\n[accent]Gain access to thorium[]. +atolls.mega1 = Enter [accent]command mode[] and select the :mega:[accent]Mega[] units. +atolls.mega2 = Select the \ue87b [accent]Load Units[] command to have Mega units to pick up ground units. +atolls.mega3 = Move the Mega units [accent]above[] ground units to load them in. +atolls.mega4 = [accent]Drop ground units here to attack. +atolls.mega5 = Select the \ue879 [accent]Unload Payload[] command to have Mega units drop their carried units. +atolls.mega6 = Units will be [accent]automatically dropped[] while the \ue879 Unload Payload command is selected. +atolls.mega7 = Mega units [accent]will not[] drop ground units while they are above walls or deep water. +atolls.mega8 = [accent]Drop naval units here to attack.[] +atolls.attack1 = 1: Drop ground units here to attack from this location. +atolls.attack2 = 2: Alternatively, drop naval units here to launch a surprise attack. +atolls.carry1 = Carrying ground units requires :mega:[accent]Mega[] units. +atolls.carry2 = 1: Command Mega units to [accent]move over[] the ground units. +atolls.carry3 = 2: Select the \ue87b [accent]Load Units[] command in order to pick up the ground units with the Mega units. +atolls.carry4 = 3: Command and move the Mega carriers [accent]loaded with units[]. +atolls.carry5 = 4: Select the \ue879 [accent]'Unload Payload'[] command in order for the Mega units to drop the ground units. +atolls.carry6 = These steps can be reviewed [accent]here[]. +atolls.carry7 = Follow these instructions to airdrop more units near the enemy base. +atolls.noairunit = This base is too well-fortified to destroy with air units. +atolls.2strategies = There are two strategies to destroy this base. + onset.mine = 벽에 붙어있는 \uf748 [accent]베릴륨[]을 클릭하여 채굴하세요.\n\n[accent][WASD]로 움직이세요. onset.mine.mobile = 벽에 붙어있는 \uf748 [accent]베릴륨[]을 눌러서 채굴하세요. onset.research = \ue875 연구 기록을 여세요.\n \uf73e [accent]터빈 응결기[]를 연구하고, 연구 기록을 다시 닫은 다음, 구덩이 위에 배치하세요.\n터빈 응결기는 [accent]전력[]을 생산합니다. @@ -2652,6 +2674,7 @@ laccess.displaywidth = 디스플레이 블록의 픽셀 단위 너비. laccess.displayheight = 디스플레이 블록의 픽셀 단위 높이. laccess.buffersize = 디스플레이의 그래픽 버퍼에 있는 처리되지 않은 명령의 수. laccess.operations = 블록에서 수행된 작업 수입니다.\n디스플레이의 경우, drawflush 작업 수를 반환합니다. +laccess.maxunits = Maximum units that a team can have.\nCan only be sensed from cores. lcategory.unknown = 알 수 없음 lcategory.unknown.description = 분류되지 않은 설명 diff --git a/core/assets/bundles/bundle_lt.properties b/core/assets/bundles/bundle_lt.properties index 668d45d949..4c74322979 100644 --- a/core/assets/bundles/bundle_lt.properties +++ b/core/assets/bundles/bundle_lt.properties @@ -101,6 +101,7 @@ coreattack = < Branduolys yra puolamas! > nearpoint = [[ [scarlet]NEDELSDAMI PALIKITE IŠMETIMO ZONĄ[] ]\nneišvengiamas sunaikinimas database = Branduolio duomenų dazė database.button = Database +database.patched = Modified by data patches. viewfields = View Content Fields savegame = Išsaugoti žaidimą loadgame = Užkrauti žaidimą @@ -880,13 +881,14 @@ sector.facility32m.name = Facility 32 M sector.taintedWoods.name = Tainted Woods sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Planetary Launch Terminal -sector.coastline.name = Coastline +sector.coastline.name = Humid Coastline sector.navalFortress.name = Naval Fortress sector.polarAerodrome.name = Polar Aerodrome sector.atolls.name = Atolls sector.testingGrounds.name = Testing Grounds -sector.seaPort.name = Sea Port +sector.perilousHarbor.name = Perilous Harbor sector.weatheredChannels.name = Weathered Channels +sector.fallenVessel.name = Fallen Vessel sector.mycelialBastion.name = Mycelial Bastion sector.frontier.name = Frontier sector.sunkenPier.name = Sunken Pier @@ -912,21 +914,6 @@ sector.planetaryTerminal.description = The final target.\n\nThis coastal base co sector.coastline.description = Remnants of naval unit technology have been detected at this location. Repel the enemy attacks, capture this sector, and acquire the technology. sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. -#do not translate -sector.facility32m.description = WIP, map submission by Stormride_R -sector.taintedWoods.description = WIP, map submission by Stormride_R -sector.sunkenPier.description = WIP, map submission by Stormride_R -sector.atolls.description = WIP, map submission by Stormride_R -sector.frontier.description = WIP, map submission by Stormride_R -sector.infestedCanyons.description = WIP, map submission by Skeledragon -sector.polarAerodrome.description = WIP, map submission by hhh i 17 -sector.testingGrounds.description = WIP, map submission by dnx2019 -sector.seaPort.description = WIP, map submission by inkognito626 -sector.weatheredChannels.description = WIP, map submission by Skeledragon -sector.mycelialBastion.description = WIP, map submission by Skeledragon -sector.cruxscape.description = WIP, map submission by Stormride_R -sector.geothermalStronghold.description = WIP, map submission by Skeledragon - sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Lake @@ -945,6 +932,12 @@ sector.crossroads.name = Crossroads sector.karst.name = Karst sector.origin.name = Origin +sector.origin.credit = Mechanical Fishe +sector.karst.credit = Mechanical Fishe +sector.caldera-erekir.credit = hhh i 17 +sector.siege.credit = hhh i 17 +sector.ravine.credit = Bepis + sector.onset.description = Commence the conquest of Erekir. Gather resources, produce units, and begin researching technology. sector.aegis.description = This sector contains deposits of tungsten.\nResearch the [accent]Impact Drill[] to mine this resource, and destroy the enemy base in the area. sector.lake.description = This sector's slag lake greatly limits viable units. A hover unit is the only option.\nResearch the [accent]ship fabricator[] and produce an [accent]elude[] unit as soon as possible. @@ -2125,6 +2118,7 @@ hint.waveFire = [accent]Wave[] turrets with water as ammunition will automatical hint.generator = :combustion-generator: [accent]Combustion Generators[] burn coal and transmit power to adjacent blocks.\n\nPower transmission range can be extended with :power-node: [accent]Power Nodes[]. hint.guardian = [accent]Guardian[] units are armored. Weak ammo such as [accent]Copper[] and [accent]Lead[] is [scarlet]not effective[].\n\nUse higher tier turrets or :graphite: [accent]Graphite[] :duo:Duo/:salvo:Salvo ammunition to take Guardians down. hint.coreUpgrade = Cores can be upgraded by [accent]placing higher-tier cores over them[].\n\nPlace a :core-foundation: [accent]Foundation[] core over the :core-shard: [accent]Shard[] core. Make sure it is free from nearby obstructions. +hint.serpuloCoreZone = Additional cores may be constructed on :core-zone: [accent]Core Zone[] tiles. hint.cannotUpgrade = A [red]:tree:[] icon over a payload unit indicates that its upgraded version is not researched yet.\n\nUnit upgrades must be researched in the [accent]:tree: tech tree[] before they can be produced in reconstructors. hint.presetLaunch = Gray [accent]landing zone sectors[], such as [accent]Frozen Forest[], can be launched to from anywhere. They do not require capture of nearby territory.\n\n[accent]Numbered sectors[], such as this one, are [accent]optional[]. hint.presetDifficulty = This sector has a [scarlet]high enemy threat level[].\nLaunching to such sectors is [accent]not recommended[] without proper technology and preparation. @@ -2153,6 +2147,34 @@ gz.zone2 = Anything built in the radius is destroyed when a wave starts. gz.zone3 = A wave will begin now.\nGet ready. gz.finish = Build more turrets, mine more resources,\nand defend against all the waves to [accent]capture the sector[]. +fungalpass.tutorial1 = Use [accent]units[] to defend buildings and attack the enemy.\nResearch and place a :ground-factory: [accent]ground factory[]. +fungalpass.tutorial2 = Select :dagger: [accent]Dagger[] units in the factory.\nProduce 3 units. + +frontier.tutorial1 = The :additive-reconstructor: [accent]Additive Reconstructor[]\nupgrades tier 1 units to tier 2\nusing :silicon: silicon and :graphite: graphite.\n\n[accent]Research and reconstruct\na []:dagger:[accent] dagger to a []:mace:[accent] mace. +frontier.tutorial2 = Enemy waves send [accent]infinitely[] until all enemy cores are [unlaunched]destroyed. +frontier.tutorial3 = [accent]Attack the enemy base fast to prevent waves from getting too high[]. + +atolls.destroy1 = Destroy the 2 enemy [accent]foundation cores[] first.\n[accent]Gain access to thorium[]. +atolls.mega1 = Enter [accent]command mode[] and select the :mega:[accent]Mega[] units. +atolls.mega2 = Select the \ue87b [accent]Load Units[] command to have Mega units to pick up ground units. +atolls.mega3 = Move the Mega units [accent]above[] ground units to load them in. +atolls.mega4 = [accent]Drop ground units here to attack. +atolls.mega5 = Select the \ue879 [accent]Unload Payload[] command to have Mega units drop their carried units. +atolls.mega6 = Units will be [accent]automatically dropped[] while the \ue879 Unload Payload command is selected. +atolls.mega7 = Mega units [accent]will not[] drop ground units while they are above walls or deep water. +atolls.mega8 = [accent]Drop naval units here to attack.[] +atolls.attack1 = 1: Drop ground units here to attack from this location. +atolls.attack2 = 2: Alternatively, drop naval units here to launch a surprise attack. +atolls.carry1 = Carrying ground units requires :mega:[accent]Mega[] units. +atolls.carry2 = 1: Command Mega units to [accent]move over[] the ground units. +atolls.carry3 = 2: Select the \ue87b [accent]Load Units[] command in order to pick up the ground units with the Mega units. +atolls.carry4 = 3: Command and move the Mega carriers [accent]loaded with units[]. +atolls.carry5 = 4: Select the \ue879 [accent]'Unload Payload'[] command in order for the Mega units to drop the ground units. +atolls.carry6 = These steps can be reviewed [accent]here[]. +atolls.carry7 = Follow these instructions to airdrop more units near the enemy base. +atolls.noairunit = This base is too well-fortified to destroy with air units. +atolls.2strategies = There are two strategies to destroy this base. + onset.mine = Click to mine :beryllium: [accent]beryllium[] from walls.\n\nUse [accent][[WASD] to move. onset.mine.mobile = Tap to mine :beryllium: [accent]beryllium[] from walls. onset.research = Open the :tree: tech tree.\nResearch, then place a :turbine-condenser: [accent]turbine condenser[] on the vent.\nThis will generate [accent]power[]. @@ -2652,6 +2674,7 @@ laccess.displaywidth = Width of a display block in pixels. laccess.displayheight = Height of a display block in pixels. laccess.buffersize = Number of unprocessed commands in the graphics buffer of a display. laccess.operations = Number of operations performed on the block.\nFor displays, returns the number of drawflush operations. +laccess.maxunits = Maximum units that a team can have.\nCan only be sensed from cores. lcategory.unknown = Unknown lcategory.unknown.description = Uncategorized instructions. diff --git a/core/assets/bundles/bundle_nl.properties b/core/assets/bundles/bundle_nl.properties index 3252cf5794..940a7ee28c 100644 --- a/core/assets/bundles/bundle_nl.properties +++ b/core/assets/bundles/bundle_nl.properties @@ -101,6 +101,7 @@ coreattack = < Core wordt aangevallen! > nearpoint = [[ [scarlet]VERLAAT DE LANDINGSZONE ONMIDDELIJK[] ]\nlevensgevaarlijk database = Core Database database.button = Database +database.patched = Modified by data patches. viewfields = View Content Fields savegame = Opslaan loadgame = Laden @@ -880,13 +881,14 @@ sector.facility32m.name = Facility 32 M sector.taintedWoods.name = Tainted Woods sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Planetery Launch Terminal -sector.coastline.name = Coastline +sector.coastline.name = Humid Coastline sector.navalFortress.name = Naval Fortress sector.polarAerodrome.name = Polar Aerodrome sector.atolls.name = Atolls sector.testingGrounds.name = Testing Grounds -sector.seaPort.name = Sea Port +sector.perilousHarbor.name = Perilous Harbor sector.weatheredChannels.name = Weathered Channels +sector.fallenVessel.name = Fallen Vessel sector.mycelialBastion.name = Mycelial Bastion sector.frontier.name = Frontier sector.sunkenPier.name = Sunken Pier @@ -912,21 +914,6 @@ sector.planetaryTerminal.description = Het einddoel.\n\nDeze kustbasis bevat een sector.coastline.description = Op deze locatie zijn resten van marinetechnologie gedetecteerd. Sla de vijandelijke aanvallen af, verover deze sector en verkrijg de technologie. sector.navalFortress.description = De vijand heeft een basis gevestigd op een afgelegen, natuurlijk versterkt eiland. Vernietig deze voorpost. Verkrijg hun geavanceerde marinetechnologie en onderzoek die. -#do not translate -sector.facility32m.description = WIP, map submission by Stormride_R -sector.taintedWoods.description = WIP, map submission by Stormride_R -sector.sunkenPier.description = WIP, map submission by Stormride_R -sector.atolls.description = WIP, map submission by Stormride_R -sector.frontier.description = WIP, map submission by Stormride_R -sector.infestedCanyons.description = WIP, map submission by Skeledragon -sector.polarAerodrome.description = WIP, map submission by hhh i 17 -sector.testingGrounds.description = WIP, map submission by dnx2019 -sector.seaPort.description = WIP, map submission by inkognito626 -sector.weatheredChannels.description = WIP, map submission by Skeledragon -sector.mycelialBastion.description = WIP, map submission by Skeledragon -sector.cruxscape.description = WIP, map submission by Stormride_R -sector.geothermalStronghold.description = WIP, map submission by Skeledragon - sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Lake @@ -945,6 +932,12 @@ sector.crossroads.name = Crossroads sector.karst.name = Karst sector.origin.name = Origin +sector.origin.credit = Mechanical Fishe +sector.karst.credit = Mechanical Fishe +sector.caldera-erekir.credit = hhh i 17 +sector.siege.credit = hhh i 17 +sector.ravine.credit = Bepis + sector.onset.description = Begin de verovering van Erekir. Verzamel grondstoffen, produceer eenheden, en begin onderzoek naar technologie. sector.aegis.description = Deze sector bevat afzettingen van wolfraam.\nOnderzoek de [accent]Klopboormachine[] om deze bron te mijnen en vernietig de vijandelijke basis in het gebied. sector.lake.description = Het lava meer in deze sector beperkt de levensvatbare eenheden enorm. Een zwevende eenheid is de enige optie.\nOnderzoek de [accent]scheepsbouwerij[] en produceer zo snel mogelijk een [accent]elude[] eenheid. @@ -2125,6 +2118,7 @@ hint.waveFire = [accent]Wave[] turrets with water as ammunition will automatical hint.generator = :combustion-generator: [accent]Combustion Generators[] burn coal and transmit power to adjacent blocks.\n\nPower transmission range can be extended with :power-node: [accent]Power Nodes[]. hint.guardian = [accent]Guardian[] units are armored. Weak ammo such as [accent]Copper[] and [accent]Lead[] is [scarlet]not effective[].\n\nUse higher tier turrets or :graphite: [accent]Graphite[] :duo:Duo/:salvo:Salvo ammunition to take Guardians down. hint.coreUpgrade = Cores can be upgraded by [accent]placing higher-tier cores over them[].\n\nPlace a :core-foundation: [accent]Foundation[] core over the :core-shard: [accent]Shard[] core. Make sure it is free from nearby obstructions. +hint.serpuloCoreZone = Additional cores may be constructed on :core-zone: [accent]Core Zone[] tiles. hint.cannotUpgrade = A [red]:tree:[] icon over a payload unit indicates that its upgraded version is not researched yet.\n\nUnit upgrades must be researched in the [accent]:tree: tech tree[] before they can be produced in reconstructors. hint.presetLaunch = Gray [accent]landing zone sectors[], such as [accent]Frozen Forest[], can be launched to from anywhere. They do not require capture of nearby territory.\n\n[accent]Numbered sectors[], such as this one, are [accent]optional[]. hint.presetDifficulty = This sector has a [scarlet]high enemy threat level[].\nLaunching to such sectors is [accent]not recommended[] without proper technology and preparation. @@ -2153,6 +2147,34 @@ gz.zone2 = Anything built in the radius is destroyed when a wave starts. gz.zone3 = A wave will begin now.\nGet ready. gz.finish = Build more turrets, mine more resources,\nand defend against all the waves to [accent]capture the sector[]. +fungalpass.tutorial1 = Use [accent]units[] to defend buildings and attack the enemy.\nResearch and place a :ground-factory: [accent]ground factory[]. +fungalpass.tutorial2 = Select :dagger: [accent]Dagger[] units in the factory.\nProduce 3 units. + +frontier.tutorial1 = The :additive-reconstructor: [accent]Additive Reconstructor[]\nupgrades tier 1 units to tier 2\nusing :silicon: silicon and :graphite: graphite.\n\n[accent]Research and reconstruct\na []:dagger:[accent] dagger to a []:mace:[accent] mace. +frontier.tutorial2 = Enemy waves send [accent]infinitely[] until all enemy cores are [unlaunched]destroyed. +frontier.tutorial3 = [accent]Attack the enemy base fast to prevent waves from getting too high[]. + +atolls.destroy1 = Destroy the 2 enemy [accent]foundation cores[] first.\n[accent]Gain access to thorium[]. +atolls.mega1 = Enter [accent]command mode[] and select the :mega:[accent]Mega[] units. +atolls.mega2 = Select the \ue87b [accent]Load Units[] command to have Mega units to pick up ground units. +atolls.mega3 = Move the Mega units [accent]above[] ground units to load them in. +atolls.mega4 = [accent]Drop ground units here to attack. +atolls.mega5 = Select the \ue879 [accent]Unload Payload[] command to have Mega units drop their carried units. +atolls.mega6 = Units will be [accent]automatically dropped[] while the \ue879 Unload Payload command is selected. +atolls.mega7 = Mega units [accent]will not[] drop ground units while they are above walls or deep water. +atolls.mega8 = [accent]Drop naval units here to attack.[] +atolls.attack1 = 1: Drop ground units here to attack from this location. +atolls.attack2 = 2: Alternatively, drop naval units here to launch a surprise attack. +atolls.carry1 = Carrying ground units requires :mega:[accent]Mega[] units. +atolls.carry2 = 1: Command Mega units to [accent]move over[] the ground units. +atolls.carry3 = 2: Select the \ue87b [accent]Load Units[] command in order to pick up the ground units with the Mega units. +atolls.carry4 = 3: Command and move the Mega carriers [accent]loaded with units[]. +atolls.carry5 = 4: Select the \ue879 [accent]'Unload Payload'[] command in order for the Mega units to drop the ground units. +atolls.carry6 = These steps can be reviewed [accent]here[]. +atolls.carry7 = Follow these instructions to airdrop more units near the enemy base. +atolls.noairunit = This base is too well-fortified to destroy with air units. +atolls.2strategies = There are two strategies to destroy this base. + onset.mine = Click to mine :beryllium: [accent]beryllium[] from walls.\n\nUse [accent][[WASD] to move. onset.mine.mobile = Tap to mine :beryllium: [accent]beryllium[] from walls. onset.research = Open the :tree: tech tree.\nResearch, then place a :turbine-condenser: [accent]turbine condenser[] on the vent.\nThis will generate [accent]power[]. @@ -2652,6 +2674,7 @@ laccess.displaywidth = Width of a display block in pixels. laccess.displayheight = Height of a display block in pixels. laccess.buffersize = Number of unprocessed commands in the graphics buffer of a display. laccess.operations = Number of operations performed on the block.\nFor displays, returns the number of drawflush operations. +laccess.maxunits = Maximum units that a team can have.\nCan only be sensed from cores. lcategory.unknown = Unknown lcategory.unknown.description = Uncategorized instructions. diff --git a/core/assets/bundles/bundle_nl_BE.properties b/core/assets/bundles/bundle_nl_BE.properties index 63e1d8b7f4..aa25276599 100644 --- a/core/assets/bundles/bundle_nl_BE.properties +++ b/core/assets/bundles/bundle_nl_BE.properties @@ -101,6 +101,7 @@ coreattack = < Kern wordt aangevallen! > nearpoint = [[ [scarlet]VERLAAT dit gebied onmiddelijk[] ]\nDirecte vernietiging... database = Kern Database database.button = Database +database.patched = Modified by data patches. viewfields = View Content Fields savegame = Opslaan loadgame = Openen @@ -880,13 +881,14 @@ sector.facility32m.name = Facility 32 M sector.taintedWoods.name = Tainted Woods sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Planetary Launch Terminal -sector.coastline.name = Coastline +sector.coastline.name = Humid Coastline sector.navalFortress.name = Naval Fortress sector.polarAerodrome.name = Polar Aerodrome sector.atolls.name = Atolls sector.testingGrounds.name = Testing Grounds -sector.seaPort.name = Sea Port +sector.perilousHarbor.name = Perilous Harbor sector.weatheredChannels.name = Weathered Channels +sector.fallenVessel.name = Fallen Vessel sector.mycelialBastion.name = Mycelial Bastion sector.frontier.name = Frontier sector.sunkenPier.name = Sunken Pier @@ -912,21 +914,6 @@ sector.planetaryTerminal.description = The final target.\n\nThis coastal base co sector.coastline.description = Remnants of naval unit technology have been detected at this location. Repel the enemy attacks, capture this sector, and acquire the technology. sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. -#do not translate -sector.facility32m.description = WIP, map submission by Stormride_R -sector.taintedWoods.description = WIP, map submission by Stormride_R -sector.sunkenPier.description = WIP, map submission by Stormride_R -sector.atolls.description = WIP, map submission by Stormride_R -sector.frontier.description = WIP, map submission by Stormride_R -sector.infestedCanyons.description = WIP, map submission by Skeledragon -sector.polarAerodrome.description = WIP, map submission by hhh i 17 -sector.testingGrounds.description = WIP, map submission by dnx2019 -sector.seaPort.description = WIP, map submission by inkognito626 -sector.weatheredChannels.description = WIP, map submission by Skeledragon -sector.mycelialBastion.description = WIP, map submission by Skeledragon -sector.cruxscape.description = WIP, map submission by Stormride_R -sector.geothermalStronghold.description = WIP, map submission by Skeledragon - sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Lake @@ -945,6 +932,12 @@ sector.crossroads.name = Crossroads sector.karst.name = Karst sector.origin.name = Origin +sector.origin.credit = Mechanical Fishe +sector.karst.credit = Mechanical Fishe +sector.caldera-erekir.credit = hhh i 17 +sector.siege.credit = hhh i 17 +sector.ravine.credit = Bepis + sector.onset.description = Commence the conquest of Erekir. Gather resources, produce units, and begin researching technology. sector.aegis.description = This sector contains deposits of tungsten.\nResearch the [accent]Impact Drill[] to mine this resource, and destroy the enemy base in the area. sector.lake.description = This sector's slag lake greatly limits viable units. A hover unit is the only option.\nResearch the [accent]ship fabricator[] and produce an [accent]elude[] unit as soon as possible. @@ -2125,6 +2118,7 @@ hint.waveFire = [accent]Wave[] turrets with water as ammunition will automatical hint.generator = :combustion-generator: [accent]Combustion Generators[] burn coal and transmit power to adjacent blocks.\n\nPower transmission range can be extended with :power-node: [accent]Power Nodes[]. hint.guardian = [accent]Guardian[] units are armored. Weak ammo such as [accent]Copper[] and [accent]Lead[] is [scarlet]not effective[].\n\nUse higher tier turrets or :graphite: [accent]Graphite[] :duo:Duo/:salvo:Salvo ammunition to take Guardians down. hint.coreUpgrade = Cores can be upgraded by [accent]placing higher-tier cores over them[].\n\nPlace a :core-foundation: [accent]Foundation[] core over the :core-shard: [accent]Shard[] core. Make sure it is free from nearby obstructions. +hint.serpuloCoreZone = Additional cores may be constructed on :core-zone: [accent]Core Zone[] tiles. hint.cannotUpgrade = A [red]:tree:[] icon over a payload unit indicates that its upgraded version is not researched yet.\n\nUnit upgrades must be researched in the [accent]:tree: tech tree[] before they can be produced in reconstructors. hint.presetLaunch = Gray [accent]landing zone sectors[], such as [accent]Frozen Forest[], can be launched to from anywhere. They do not require capture of nearby territory.\n\n[accent]Numbered sectors[], such as this one, are [accent]optional[]. hint.presetDifficulty = This sector has a [scarlet]high enemy threat level[].\nLaunching to such sectors is [accent]not recommended[] without proper technology and preparation. @@ -2153,6 +2147,34 @@ gz.zone2 = Anything built in the radius is destroyed when a wave starts. gz.zone3 = A wave will begin now.\nGet ready. gz.finish = Build more turrets, mine more resources,\nand defend against all the waves to [accent]capture the sector[]. +fungalpass.tutorial1 = Use [accent]units[] to defend buildings and attack the enemy.\nResearch and place a :ground-factory: [accent]ground factory[]. +fungalpass.tutorial2 = Select :dagger: [accent]Dagger[] units in the factory.\nProduce 3 units. + +frontier.tutorial1 = The :additive-reconstructor: [accent]Additive Reconstructor[]\nupgrades tier 1 units to tier 2\nusing :silicon: silicon and :graphite: graphite.\n\n[accent]Research and reconstruct\na []:dagger:[accent] dagger to a []:mace:[accent] mace. +frontier.tutorial2 = Enemy waves send [accent]infinitely[] until all enemy cores are [unlaunched]destroyed. +frontier.tutorial3 = [accent]Attack the enemy base fast to prevent waves from getting too high[]. + +atolls.destroy1 = Destroy the 2 enemy [accent]foundation cores[] first.\n[accent]Gain access to thorium[]. +atolls.mega1 = Enter [accent]command mode[] and select the :mega:[accent]Mega[] units. +atolls.mega2 = Select the \ue87b [accent]Load Units[] command to have Mega units to pick up ground units. +atolls.mega3 = Move the Mega units [accent]above[] ground units to load them in. +atolls.mega4 = [accent]Drop ground units here to attack. +atolls.mega5 = Select the \ue879 [accent]Unload Payload[] command to have Mega units drop their carried units. +atolls.mega6 = Units will be [accent]automatically dropped[] while the \ue879 Unload Payload command is selected. +atolls.mega7 = Mega units [accent]will not[] drop ground units while they are above walls or deep water. +atolls.mega8 = [accent]Drop naval units here to attack.[] +atolls.attack1 = 1: Drop ground units here to attack from this location. +atolls.attack2 = 2: Alternatively, drop naval units here to launch a surprise attack. +atolls.carry1 = Carrying ground units requires :mega:[accent]Mega[] units. +atolls.carry2 = 1: Command Mega units to [accent]move over[] the ground units. +atolls.carry3 = 2: Select the \ue87b [accent]Load Units[] command in order to pick up the ground units with the Mega units. +atolls.carry4 = 3: Command and move the Mega carriers [accent]loaded with units[]. +atolls.carry5 = 4: Select the \ue879 [accent]'Unload Payload'[] command in order for the Mega units to drop the ground units. +atolls.carry6 = These steps can be reviewed [accent]here[]. +atolls.carry7 = Follow these instructions to airdrop more units near the enemy base. +atolls.noairunit = This base is too well-fortified to destroy with air units. +atolls.2strategies = There are two strategies to destroy this base. + onset.mine = Click to mine :beryllium: [accent]beryllium[] from walls.\n\nUse [accent][[WASD] to move. onset.mine.mobile = Tap to mine :beryllium: [accent]beryllium[] from walls. onset.research = Open the :tree: tech tree.\nResearch, then place a :turbine-condenser: [accent]turbine condenser[] on the vent.\nThis will generate [accent]power[]. @@ -2652,6 +2674,7 @@ laccess.displaywidth = Width of a display block in pixels. laccess.displayheight = Height of a display block in pixels. laccess.buffersize = Number of unprocessed commands in the graphics buffer of a display. laccess.operations = Number of operations performed on the block.\nFor displays, returns the number of drawflush operations. +laccess.maxunits = Maximum units that a team can have.\nCan only be sensed from cores. lcategory.unknown = Unknown lcategory.unknown.description = Uncategorized instructions. diff --git a/core/assets/bundles/bundle_pl.properties b/core/assets/bundles/bundle_pl.properties index 1ce592f6c0..c8e77fb416 100644 --- a/core/assets/bundles/bundle_pl.properties +++ b/core/assets/bundles/bundle_pl.properties @@ -101,6 +101,7 @@ coreattack = < Rdzeń jest atakowany! > nearpoint = [[ [scarlet]NATYCHMIAST OPUŚĆ PUNKT ZRZUTU[] ]\nnadciąga zniszczenie database = Centralna baza danych database.button = Baza Danych +database.patched = Modified by data patches. viewfields = View Content Fields savegame = Zapisz Grę loadgame = Wczytaj Grę @@ -885,8 +886,9 @@ sector.navalFortress.name = Morska Forteca sector.polarAerodrome.name = Polar Aerodrome sector.atolls.name = Atolls sector.testingGrounds.name = Testing Grounds -sector.seaPort.name = Sea Port +sector.perilousHarbor.name = Perilous Harbor sector.weatheredChannels.name = Weathered Channels +sector.fallenVessel.name = Fallen Vessel sector.mycelialBastion.name = Mycelial Bastion sector.frontier.name = Frontier sector.sunkenPier.name = Sunken Pier @@ -912,21 +914,6 @@ sector.planetaryTerminal.description = Ostatni cel.\n\nTa baza przybrzeżna zawi sector.coastline.description = W tej lokalizacji zostały znalezione resztki technologii jednostek morskich. Odeprzyj ataki wroga, przejmij ten sektor i zdobądź technologię. sector.navalFortress.description = Wróg założył bazę na odległej, naturalnie ufortyfikowanej wyspie. Zniszcz tę bazę. Zdobądź zaawansowaną technologię statków morskich i zbadaj ją. -#do not translate -sector.facility32m.description = WIP, map submission by Stormride_R -sector.taintedWoods.description = WIP, map submission by Stormride_R -sector.sunkenPier.description = WIP, map submission by Stormride_R -sector.atolls.description = WIP, map submission by Stormride_R -sector.frontier.description = WIP, map submission by Stormride_R -sector.infestedCanyons.description = WIP, map submission by Skeledragon -sector.polarAerodrome.description = WIP, map submission by hhh i 17 -sector.testingGrounds.description = WIP, map submission by dnx2019 -sector.seaPort.description = WIP, map submission by inkognito626 -sector.weatheredChannels.description = WIP, map submission by Skeledragon -sector.mycelialBastion.description = WIP, map submission by Skeledragon -sector.cruxscape.description = WIP, map submission by Stormride_R -sector.geothermalStronghold.description = WIP, map submission by Skeledragon - sector.onset.name = Początek sector.aegis.name = Egida sector.lake.name = Jezioro @@ -945,6 +932,12 @@ sector.crossroads.name = Rozdroże sector.karst.name = Kras sector.origin.name = Zalążek +sector.origin.credit = Mechanical Fishe +sector.karst.credit = Mechanical Fishe +sector.caldera-erekir.credit = hhh i 17 +sector.siege.credit = hhh i 17 +sector.ravine.credit = Bepis + sector.onset.description = Samouczkowy sektor. Cel nie został jeszcze ustalony. Oczekuj dalszych informacji. sector.aegis.description = Wróg jest chroniony przez tarcze. Prototyp Niszczyciela tarcz znajduje się na tym sektorze.\n Znajdź go. Wypełnij go wolframem i zniszcz tarcze wrogów. sector.lake.description = Jezioro żużlu znajdujące się na tym sektorze znacznie ogranicza rodzaje jednostek, jakich można użyć. Statki są jedyną sensowną opcją. Odkryj [accent] Fabrykator Statków[] i wytwórz [accent] Wymykacze[] najszybciej jak się da. @@ -2125,6 +2118,7 @@ hint.waveFire = [accent]Strumień[] wypełniony wodą będzie gasić pobiskie po hint.generator = :combustion-generator: [accent]Generatory Spalinowe[] spalają węgiel i przekazują moc do pobliskich bloków.\n\nMożesz powiększyć odległość transmitowanej mocy używając :power-node: [accent]Węzły Prądu[]. hint.guardian = Jednostki [accent]Strażnicze[] są uzbrojone. Słaba amunicja - taka jak [accent]Miedź[] czy [accent]Ołów[] [scarlet]nie jest efektywna[].\n\nUżyj lepszych działek takich jak naładowane :graphite: [accent]Grafitem[] :duo: [accent]Podwójne Działka[]/:salvo: [accent]Działa Salwowe[] by pozbyć się strażników. hint.coreUpgrade = Rdzenie mogą być ulepszone poprzez [accent]postawienie na nich rdzenia wyższej generacji[].\n\nPostaw :core-foundation: Rdzeń: [accent]Podstawę[] na :core-shard: Rdzeń: [accent]Odłamek[]. Żadna przeszkoda ani blok nie może stać na miejscu nowego rdzenia. +hint.serpuloCoreZone = Additional cores may be constructed on :core-zone: [accent]Core Zone[] tiles. hint.cannotUpgrade = A [red]:tree:[] icon over a payload unit indicates that its upgraded version is not researched yet.\n\nUnit upgrades must be researched in the [accent]:tree: tech tree[] before they can be produced in reconstructors. hint.presetLaunch = Szare [accent]sektory[], takie jak [accent]Zamrożony Las[], to sektory do których możesz dotrzeć z każdego miejsca. Nie wymagają podbicia pobliskiego terenu.\n\n[accent]Ponumerowane sektory[], takie jak ten, [accent]są dodatkowe[]. hint.presetDifficulty = Ten sektor ma [scarlet]wysoki poziom zagrożenia przez wroga[].\nWystrzeliwanie do takich sektorów jest [accent]nie zalecane[] bez odpowiedniej technologii i przygotowania. @@ -2153,6 +2147,34 @@ gz.zone2 = Wszytko co jest zbudowane w promieniu strefy zrzutu zostaje zniszczon gz.zone3 = Teraz zacznie się fala.\nPrzygotuj się. gz.finish = Wybuduj więcej działek, wykop więcej surowców\ni obroń się przed wszystkimi falami żeby [accent]przejąć sektor[]. +fungalpass.tutorial1 = Use [accent]units[] to defend buildings and attack the enemy.\nResearch and place a :ground-factory: [accent]ground factory[]. +fungalpass.tutorial2 = Select :dagger: [accent]Dagger[] units in the factory.\nProduce 3 units. + +frontier.tutorial1 = The :additive-reconstructor: [accent]Additive Reconstructor[]\nupgrades tier 1 units to tier 2\nusing :silicon: silicon and :graphite: graphite.\n\n[accent]Research and reconstruct\na []:dagger:[accent] dagger to a []:mace:[accent] mace. +frontier.tutorial2 = Enemy waves send [accent]infinitely[] until all enemy cores are [unlaunched]destroyed. +frontier.tutorial3 = [accent]Attack the enemy base fast to prevent waves from getting too high[]. + +atolls.destroy1 = Destroy the 2 enemy [accent]foundation cores[] first.\n[accent]Gain access to thorium[]. +atolls.mega1 = Enter [accent]command mode[] and select the :mega:[accent]Mega[] units. +atolls.mega2 = Select the \ue87b [accent]Load Units[] command to have Mega units to pick up ground units. +atolls.mega3 = Move the Mega units [accent]above[] ground units to load them in. +atolls.mega4 = [accent]Drop ground units here to attack. +atolls.mega5 = Select the \ue879 [accent]Unload Payload[] command to have Mega units drop their carried units. +atolls.mega6 = Units will be [accent]automatically dropped[] while the \ue879 Unload Payload command is selected. +atolls.mega7 = Mega units [accent]will not[] drop ground units while they are above walls or deep water. +atolls.mega8 = [accent]Drop naval units here to attack.[] +atolls.attack1 = 1: Drop ground units here to attack from this location. +atolls.attack2 = 2: Alternatively, drop naval units here to launch a surprise attack. +atolls.carry1 = Carrying ground units requires :mega:[accent]Mega[] units. +atolls.carry2 = 1: Command Mega units to [accent]move over[] the ground units. +atolls.carry3 = 2: Select the \ue87b [accent]Load Units[] command in order to pick up the ground units with the Mega units. +atolls.carry4 = 3: Command and move the Mega carriers [accent]loaded with units[]. +atolls.carry5 = 4: Select the \ue879 [accent]'Unload Payload'[] command in order for the Mega units to drop the ground units. +atolls.carry6 = These steps can be reviewed [accent]here[]. +atolls.carry7 = Follow these instructions to airdrop more units near the enemy base. +atolls.noairunit = This base is too well-fortified to destroy with air units. +atolls.2strategies = There are two strategies to destroy this base. + onset.mine = Naćiśnij żeby wydobywać :beryllium: [accent]beryl[] ze ścian.\n\nUżyj [accent][[WASD] aby się poruszać. onset.mine.mobile = Kliknij żeby wydobywać :beryllium: [accent]beryl[] ze ścian. onset.research = Otwórz:tree: drzewo technologiczne.\nZbadaj, a następnie postaw :turbine-condenser: [accent]turbinę parową[] na gejzerze.\nTo zacznie generować [accent]prąd[]. @@ -2652,6 +2674,7 @@ laccess.displaywidth = Width of a display block in pixels. laccess.displayheight = Height of a display block in pixels. laccess.buffersize = Number of unprocessed commands in the graphics buffer of a display. laccess.operations = Number of operations performed on the block.\nFor displays, returns the number of drawflush operations. +laccess.maxunits = Maximum units that a team can have.\nCan only be sensed from cores. lcategory.unknown = Inne lcategory.unknown.description = Niezkategoryzowane instrukcje. diff --git a/core/assets/bundles/bundle_pt_BR.properties b/core/assets/bundles/bundle_pt_BR.properties index e1b166c23c..b6eec5c89f 100644 --- a/core/assets/bundles/bundle_pt_BR.properties +++ b/core/assets/bundles/bundle_pt_BR.properties @@ -101,6 +101,7 @@ coreattack = < O Núcleo está sob ataque! > nearpoint = [[ [scarlet]SAIA DO PONTO DE QUEDA IMEDIATAMENTE[] ]\naniquilação iminente database = Banco de Dados do Núcleo database.button = Banco de Dados +database.patched = Modified by data patches. viewfields = View Content Fields savegame = Salvar Jogo loadgame = Carregar Jogo @@ -885,8 +886,9 @@ sector.navalFortress.name = Fortaleza Naval sector.polarAerodrome.name = Polar Aerodrome sector.atolls.name = Atolls sector.testingGrounds.name = Testing Grounds -sector.seaPort.name = Sea Port +sector.perilousHarbor.name = Perilous Harbor sector.weatheredChannels.name = Weathered Channels +sector.fallenVessel.name = Fallen Vessel sector.mycelialBastion.name = Mycelial Bastion sector.frontier.name = Frontier sector.sunkenPier.name = Sunken Pier @@ -912,21 +914,6 @@ sector.planetaryTerminal.description = O último alvo.\n\nEssa base costeira con sector.coastline.description = Remnants of naval unit technology have been detected at this location. Repel the enemy attacks, capture this sector, and acquire the technology. sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. -#do not translate -sector.facility32m.description = WIP, map submission by Stormride_R -sector.taintedWoods.description = WIP, map submission by Stormride_R -sector.sunkenPier.description = WIP, map submission by Stormride_R -sector.atolls.description = WIP, map submission by Stormride_R -sector.frontier.description = WIP, map submission by Stormride_R -sector.infestedCanyons.description = WIP, map submission by Skeledragon -sector.polarAerodrome.description = WIP, map submission by hhh i 17 -sector.testingGrounds.description = WIP, map submission by dnx2019 -sector.seaPort.description = WIP, map submission by inkognito626 -sector.weatheredChannels.description = WIP, map submission by Skeledragon -sector.mycelialBastion.description = WIP, map submission by Skeledragon -sector.cruxscape.description = WIP, map submission by Stormride_R -sector.geothermalStronghold.description = WIP, map submission by Skeledragon - sector.onset.name = O Começo sector.aegis.name = Aegis sector.lake.name = O Lago @@ -945,6 +932,12 @@ sector.crossroads.name = Crossroads sector.karst.name = Karst sector.origin.name = Origin +sector.origin.credit = Mechanical Fishe +sector.karst.credit = Mechanical Fishe +sector.caldera-erekir.credit = hhh i 17 +sector.siege.credit = hhh i 17 +sector.ravine.credit = Bepis + sector.onset.description = O setor de tutorial. Este objetivo ainda não foi criado. Aguarde mais informações. sector.aegis.description = O inimigo é protegido por escudos. Um módulo de quebra-escudos experimental foi detectado neste setor.\nLocalize esta estrutura. Forneça munição de tungstênio e destrua a base inimiga. sector.lake.description = O lago de escória deste setor limita muito as unidades viáveis. Uma unidade flutuante é a única opção.\nPesquise o [accent]construtor de naves[] e produza uma unidade [accent]elude[] o mais rápido possível. @@ -2125,6 +2118,7 @@ hint.waveFire = Torretas [accent]Onda[] com munição de água vão apagar autom hint.generator = :combustion-generator: [accent]Geradores a Combustão[] queimam carvão e transmitem energia aos blocos ao lado.\n\nO alcance da transmissão de energia pode ser aumentado com :power-node: [accent]Células de Energia[]. hint.guardian = Unidades [accent]Guardião[] são blindadas. Munições fracas como [accent]Cobre[] e [accent]Chumbo[] são [scarlet]não efetivas[].\n\nUse torretas melhores ou :graphite: [accent]Grafite[] :duo:Duo/:salvo:Salvo como munição para derrotar Guardiões. hint.coreUpgrade = Núcleos podem ser melhorados [accent]colocando núcelos melhores sobre eles[].\n\nColoque uma :core-foundation: [accent]Fundação do Núcleo[] sobre o :core-shard: [accent]Fragmento do Núcleo[]. Tenha certeza de que está livre de obstruções próximas. +hint.serpuloCoreZone = Additional cores may be constructed on :core-zone: [accent]Core Zone[] tiles. hint.cannotUpgrade = A [red]:tree:[] icon over a payload unit indicates that its upgraded version is not researched yet.\n\nUnit upgrades must be researched in the [accent]:tree: tech tree[] before they can be produced in reconstructors. hint.presetLaunch = [accent]Zona de setores[] cinzas, como a [accent]Floresta Congelada[], podem ser lançadas de qualquer lugar. Elas não precisam da captura de território próximo.\n\n[accent]Setores numerados[], como esse aqui, são [accent]opcionais[]. hint.presetDifficulty = Esse setor tem um [scarlet]alto nível de ameaça inimiga[].\nIr para esse setores [accent]não é recomendado[] sem ter tecnologia e preparação adequadas. @@ -2153,6 +2147,34 @@ gz.zone2 = Qualquer coisa construida nesta área será destruida quando uma hord gz.zone3 = Uma horda vai começar agora\nSe prepare. gz.finish = Construa mais torretas, minere mais recursos,\ne se defenda de todas as hordas para [accent]capturar o setor[]. +fungalpass.tutorial1 = Use [accent]units[] to defend buildings and attack the enemy.\nResearch and place a :ground-factory: [accent]ground factory[]. +fungalpass.tutorial2 = Select :dagger: [accent]Dagger[] units in the factory.\nProduce 3 units. + +frontier.tutorial1 = The :additive-reconstructor: [accent]Additive Reconstructor[]\nupgrades tier 1 units to tier 2\nusing :silicon: silicon and :graphite: graphite.\n\n[accent]Research and reconstruct\na []:dagger:[accent] dagger to a []:mace:[accent] mace. +frontier.tutorial2 = Enemy waves send [accent]infinitely[] until all enemy cores are [unlaunched]destroyed. +frontier.tutorial3 = [accent]Attack the enemy base fast to prevent waves from getting too high[]. + +atolls.destroy1 = Destroy the 2 enemy [accent]foundation cores[] first.\n[accent]Gain access to thorium[]. +atolls.mega1 = Enter [accent]command mode[] and select the :mega:[accent]Mega[] units. +atolls.mega2 = Select the \ue87b [accent]Load Units[] command to have Mega units to pick up ground units. +atolls.mega3 = Move the Mega units [accent]above[] ground units to load them in. +atolls.mega4 = [accent]Drop ground units here to attack. +atolls.mega5 = Select the \ue879 [accent]Unload Payload[] command to have Mega units drop their carried units. +atolls.mega6 = Units will be [accent]automatically dropped[] while the \ue879 Unload Payload command is selected. +atolls.mega7 = Mega units [accent]will not[] drop ground units while they are above walls or deep water. +atolls.mega8 = [accent]Drop naval units here to attack.[] +atolls.attack1 = 1: Drop ground units here to attack from this location. +atolls.attack2 = 2: Alternatively, drop naval units here to launch a surprise attack. +atolls.carry1 = Carrying ground units requires :mega:[accent]Mega[] units. +atolls.carry2 = 1: Command Mega units to [accent]move over[] the ground units. +atolls.carry3 = 2: Select the \ue87b [accent]Load Units[] command in order to pick up the ground units with the Mega units. +atolls.carry4 = 3: Command and move the Mega carriers [accent]loaded with units[]. +atolls.carry5 = 4: Select the \ue879 [accent]'Unload Payload'[] command in order for the Mega units to drop the ground units. +atolls.carry6 = These steps can be reviewed [accent]here[]. +atolls.carry7 = Follow these instructions to airdrop more units near the enemy base. +atolls.noairunit = This base is too well-fortified to destroy with air units. +atolls.2strategies = There are two strategies to destroy this base. + onset.mine = Clique para minerar :beryllium: [accent]berílio[] das paredes.\n\nUse [accent][[WASD] para se mover. onset.mine.mobile = Toque para minerar :beryllium: [accent]berílio[] das paredes. onset.research = Abra a :tree: árvore tecnológica.\nPesquise, e então coloque um :turbine-condenser: [accent]Condensador de Turbina[] na ventilação.\nIsso vai gerar [accent]energia[]. @@ -2652,6 +2674,7 @@ laccess.displaywidth = Width of a display block in pixels. laccess.displayheight = Height of a display block in pixels. laccess.buffersize = Number of unprocessed commands in the graphics buffer of a display. laccess.operations = Number of operations performed on the block.\nFor displays, returns the number of drawflush operations. +laccess.maxunits = Maximum units that a team can have.\nCan only be sensed from cores. lcategory.unknown = Desconhecido lcategory.unknown.description = Instruções não categorizadas. diff --git a/core/assets/bundles/bundle_pt_PT.properties b/core/assets/bundles/bundle_pt_PT.properties index f1ed9e9a58..b8030317d4 100644 --- a/core/assets/bundles/bundle_pt_PT.properties +++ b/core/assets/bundles/bundle_pt_PT.properties @@ -101,6 +101,7 @@ coreattack = < O núcleo está sobre ataque! > nearpoint = [[ [scarlet]SAIA DO PONTO DE SPAWN IMEDIATAMENTE[] ]\nAniquilação iminente database = Banco de Dados do núcleo database.button = Banco de Dados +database.patched = Modified by data patches. viewfields = View Content Fields savegame = Salvar Jogo loadgame = Carregar Jogo @@ -880,13 +881,14 @@ sector.facility32m.name = Facility 32 M sector.taintedWoods.name = Tainted Woods sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Planetary Launch Terminal -sector.coastline.name = Coastline +sector.coastline.name = Humid Coastline sector.navalFortress.name = Naval Fortress sector.polarAerodrome.name = Polar Aerodrome sector.atolls.name = Atolls sector.testingGrounds.name = Testing Grounds -sector.seaPort.name = Sea Port +sector.perilousHarbor.name = Perilous Harbor sector.weatheredChannels.name = Weathered Channels +sector.fallenVessel.name = Fallen Vessel sector.mycelialBastion.name = Mycelial Bastion sector.frontier.name = Frontier sector.sunkenPier.name = Sunken Pier @@ -912,21 +914,6 @@ sector.planetaryTerminal.description = O último alvo.\n\nEssa base costeira con sector.coastline.description = Restos de tecnologia de unidades navais foram detetados nesta localização. Repele os ataques inimigos, captura o setor, e adquire a tecnologia. sector.navalFortress.description = O inimigo estabeleceu uma base numa ilha remota e naturalmente fortificada. Destrói este posto. Adquire a tecnologia avançada de construção naval deles, e desenvolve-a. -#do not translate -sector.facility32m.description = WIP, map submission by Stormride_R -sector.taintedWoods.description = WIP, map submission by Stormride_R -sector.sunkenPier.description = WIP, map submission by Stormride_R -sector.atolls.description = WIP, map submission by Stormride_R -sector.frontier.description = WIP, map submission by Stormride_R -sector.infestedCanyons.description = WIP, map submission by Skeledragon -sector.polarAerodrome.description = WIP, map submission by hhh i 17 -sector.testingGrounds.description = WIP, map submission by dnx2019 -sector.seaPort.description = WIP, map submission by inkognito626 -sector.weatheredChannels.description = WIP, map submission by Skeledragon -sector.mycelialBastion.description = WIP, map submission by Skeledragon -sector.cruxscape.description = WIP, map submission by Stormride_R -sector.geothermalStronghold.description = WIP, map submission by Skeledragon - sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Lake @@ -945,6 +932,12 @@ sector.crossroads.name = Crossroads sector.karst.name = Karst sector.origin.name = Origin +sector.origin.credit = Mechanical Fishe +sector.karst.credit = Mechanical Fishe +sector.caldera-erekir.credit = hhh i 17 +sector.siege.credit = hhh i 17 +sector.ravine.credit = Bepis + sector.onset.description = Inicia a conquista de Erekir. Reúne recursos, produz unidades e começa a pesquisar tecnologia. sector.aegis.description = Este setor contém depósitos de tungsténio.\nDesenvolve a [accent]Broca de Impacto[] para minerar este recurso, e destrói a base inimiga nesta área. sector.lake.description = O lago de escória neste setor limita muito as unidades viáveis. Uma unidade flutuante é a única opção.\nPesquisa o [accent]Construtor de Naves[] e produza uma unidade [accent]Elude[] o mais rápido possível. @@ -2125,6 +2118,7 @@ hint.waveFire = Torretas [accent]Onda[] com munição de água vão apagar autom hint.generator = \uf879 [accent]Geradores a Combustão[] queimam carvão e transmitem energia aos blocos ao lado.\n\nO alcance da transmissão de energia pode ser aumentado com \uf87f [accent]Células de Energia[]. hint.guardian = Unidades [accent]Guardião[] são blindadas. Munições fracas como [accent]Cobre[] e [accent]Chumbo[] são [scarlet]não efetivas[].\n\nUse torretas melhores ou \uf835 [accent]Grafite[] \uf861Duo/\uf859Salvo como munição para derrotar Guardiões. hint.coreUpgrade = Núcleos podem ser melhorados [accent]colocando núcelos melhores sobre eles[].\n\nColoque uma \uf868 [accent]Fundação do Núcleo[] sobre o \uf869 [accent]Fragmento do Núcleo[]. Tenha certeza de que está livre de obstruções próximas. +hint.serpuloCoreZone = Additional cores may be constructed on :core-zone: [accent]Core Zone[] tiles. hint.cannotUpgrade = A [red]:tree:[] icon over a payload unit indicates that its upgraded version is not researched yet.\n\nUnit upgrades must be researched in the [accent]:tree: tech tree[] before they can be produced in reconstructors. hint.presetLaunch = [accent]Zona de setores[] cinzas, como a [accent]Floresta Congelada[], podem ser lançadas de qualquer lugar. Elas não precisam da captura de território próximo.\n\n[accent]Setores numerados[], como esse aqui, são [accent]opcionais[]. hint.presetDifficulty = Esse setor tem um [scarlet]alto nível de ameaça inimiga[].\nIr para esse setores [accent]não é recomendado[] sem ter tecnologia e preparação adequadas. @@ -2153,6 +2147,34 @@ gz.zone2 = Qualquer coisa construida nesta área será destruida quando uma hord gz.zone3 = Uma horda vai começar agora\nSe prepare. gz.finish = Construa mais torretas, minere mais recursos,\ne se defenda de todas as hordas para [accent]capturar o setor[]. +fungalpass.tutorial1 = Use [accent]units[] to defend buildings and attack the enemy.\nResearch and place a :ground-factory: [accent]ground factory[]. +fungalpass.tutorial2 = Select :dagger: [accent]Dagger[] units in the factory.\nProduce 3 units. + +frontier.tutorial1 = The :additive-reconstructor: [accent]Additive Reconstructor[]\nupgrades tier 1 units to tier 2\nusing :silicon: silicon and :graphite: graphite.\n\n[accent]Research and reconstruct\na []:dagger:[accent] dagger to a []:mace:[accent] mace. +frontier.tutorial2 = Enemy waves send [accent]infinitely[] until all enemy cores are [unlaunched]destroyed. +frontier.tutorial3 = [accent]Attack the enemy base fast to prevent waves from getting too high[]. + +atolls.destroy1 = Destroy the 2 enemy [accent]foundation cores[] first.\n[accent]Gain access to thorium[]. +atolls.mega1 = Enter [accent]command mode[] and select the :mega:[accent]Mega[] units. +atolls.mega2 = Select the \ue87b [accent]Load Units[] command to have Mega units to pick up ground units. +atolls.mega3 = Move the Mega units [accent]above[] ground units to load them in. +atolls.mega4 = [accent]Drop ground units here to attack. +atolls.mega5 = Select the \ue879 [accent]Unload Payload[] command to have Mega units drop their carried units. +atolls.mega6 = Units will be [accent]automatically dropped[] while the \ue879 Unload Payload command is selected. +atolls.mega7 = Mega units [accent]will not[] drop ground units while they are above walls or deep water. +atolls.mega8 = [accent]Drop naval units here to attack.[] +atolls.attack1 = 1: Drop ground units here to attack from this location. +atolls.attack2 = 2: Alternatively, drop naval units here to launch a surprise attack. +atolls.carry1 = Carrying ground units requires :mega:[accent]Mega[] units. +atolls.carry2 = 1: Command Mega units to [accent]move over[] the ground units. +atolls.carry3 = 2: Select the \ue87b [accent]Load Units[] command in order to pick up the ground units with the Mega units. +atolls.carry4 = 3: Command and move the Mega carriers [accent]loaded with units[]. +atolls.carry5 = 4: Select the \ue879 [accent]'Unload Payload'[] command in order for the Mega units to drop the ground units. +atolls.carry6 = These steps can be reviewed [accent]here[]. +atolls.carry7 = Follow these instructions to airdrop more units near the enemy base. +atolls.noairunit = This base is too well-fortified to destroy with air units. +atolls.2strategies = There are two strategies to destroy this base. + onset.mine = Clique para minerar \uf748 [accent]berílio[] das paredes.\n\nUse [accent][[WASD] para se mover. onset.mine.mobile = Toque para minerar \uf748 [accent]berílio[] das paredes. onset.research = Abra a \ue875 árvore tecnológica.\nPesquise, e então coloque um \uf73e [accent]Condensador de Turbina[] na ventilação.\nIsso vai gerar [accent]energia[]. @@ -2652,6 +2674,7 @@ laccess.displaywidth = Width of a display block in pixels. laccess.displayheight = Height of a display block in pixels. laccess.buffersize = Number of unprocessed commands in the graphics buffer of a display. laccess.operations = Number of operations performed on the block.\nFor displays, returns the number of drawflush operations. +laccess.maxunits = Maximum units that a team can have.\nCan only be sensed from cores. lcategory.unknown = Desconhecido lcategory.unknown.description = Instruções não categorizadas. diff --git a/core/assets/bundles/bundle_ro.properties b/core/assets/bundles/bundle_ro.properties index d55a272719..c7d034728b 100644 --- a/core/assets/bundles/bundle_ro.properties +++ b/core/assets/bundles/bundle_ro.properties @@ -101,6 +101,7 @@ coreattack = < Nucleul este atacat! > nearpoint = [[ [scarlet]PLEACĂ DE LA PUNCTUL DE LANSARE IMEDIAT[] ]\nanihilare imminentă database = Datele Nucleului database.button = Bază de date +database.patched = Modified by data patches. viewfields = View Content Fields savegame = Salvează Jocul loadgame = Încarcă Jocul @@ -885,8 +886,9 @@ sector.navalFortress.name = Fortăreața Navală sector.polarAerodrome.name = Polar Aerodrome sector.atolls.name = Atolls sector.testingGrounds.name = Testing Grounds -sector.seaPort.name = Sea Port +sector.perilousHarbor.name = Perilous Harbor sector.weatheredChannels.name = Weathered Channels +sector.fallenVessel.name = Fallen Vessel sector.mycelialBastion.name = Mycelial Bastion sector.frontier.name = Frontier sector.sunkenPier.name = Sunken Pier @@ -912,21 +914,6 @@ sector.planetaryTerminal.description = Ținta finală.\n\nAceastă bază de coas sector.coastline.description = Remnants of naval unit technology have been detected at this location. Repel the enemy attacks, capture this sector, and acquire the technology. sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. -#do not translate -sector.facility32m.description = WIP, map submission by Stormride_R -sector.taintedWoods.description = WIP, map submission by Stormride_R -sector.sunkenPier.description = WIP, map submission by Stormride_R -sector.atolls.description = WIP, map submission by Stormride_R -sector.frontier.description = WIP, map submission by Stormride_R -sector.infestedCanyons.description = WIP, map submission by Skeledragon -sector.polarAerodrome.description = WIP, map submission by hhh i 17 -sector.testingGrounds.description = WIP, map submission by dnx2019 -sector.seaPort.description = WIP, map submission by inkognito626 -sector.weatheredChannels.description = WIP, map submission by Skeledragon -sector.mycelialBastion.description = WIP, map submission by Skeledragon -sector.cruxscape.description = WIP, map submission by Stormride_R -sector.geothermalStronghold.description = WIP, map submission by Skeledragon - sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Lake @@ -945,6 +932,12 @@ sector.crossroads.name = Crossroads sector.karst.name = Karst sector.origin.name = Origin +sector.origin.credit = Mechanical Fishe +sector.karst.credit = Mechanical Fishe +sector.caldera-erekir.credit = hhh i 17 +sector.siege.credit = hhh i 17 +sector.ravine.credit = Bepis + sector.onset.description = Commence the conquest of Erekir. Gather resources, produce units, and begin researching technology. sector.aegis.description = This sector contains deposits of tungsten.\nResearch the [accent]Impact Drill[] to mine this resource, and destroy the enemy base in the area. sector.lake.description = This sector's slag lake greatly limits viable units. A hover unit is the only option.\nResearch the [accent]ship fabricator[] and produce an [accent]elude[] unit as soon as possible. @@ -2125,6 +2118,7 @@ hint.waveFire = Armele [accent]Wave[] încărcate cu apă vor stinge incendiile hint.generator = :combustion-generator: [accent]Generatoarele pe Combustie[] ard cărbunele și transmit electricitatea blocurilor învecinate.\n\nElectricitatea poate fi transmisă pe distanțe lungi folosind :power-node: [accent]Noduri Electrice[]. hint.guardian = Unitățile [accent]Gardian[] au armuri puternice. Munițiile slabe precum [accent]Cuprul[] și [accent]Plumbul[] [scarlet]nu sunt eficiente[].\n\nFolosește arme mai bune sau muniție de :graphite: [accent]Grafit[] pt :duo:Duo/:salvo:Salvo pt a nimici Gardianul. hint.coreUpgrade = Un nucleu poate pot fi îmbunătățit [accent]plasând o alt nucleu mai bun peste el[].\n\nPlasează un nucleu :core-foundation: [accent]Foundation[] peste nucleul :core-shard: [accent]Shard[]. Nucleul nu poate fi plasat decât pe alte nuclee. Asigură-te că nu sunt alte benzi sau obstacole care să împiedice plasarea. +hint.serpuloCoreZone = Additional cores may be constructed on :core-zone: [accent]Core Zone[] tiles. hint.cannotUpgrade = A [red]:tree:[] icon over a payload unit indicates that its upgraded version is not researched yet.\n\nUnit upgrades must be researched in the [accent]:tree: tech tree[] before they can be produced in reconstructors. hint.presetLaunch = Poți lansa de oriunde în sectoarele gri, precum [accent]Pădurea Glacială[]. Ele sunt [accent]zone[] speciale [accent]de aterizare[]. Nu ai nevoie să capturezi sectoarele învecinate pt a lansa.\n\n[accent]Sectoarele numerotate[], ca acesta, sunt [accent]opționale[]. hint.presetDifficulty = Acest sector are un [scarlet]nivel ridicat de amenințare inamică[].\n[accent]Nu e recomandat[] să lansezi în asemenea sectoare fără pregătiri sau tehnologie adecvată. @@ -2153,6 +2147,34 @@ gz.zone2 = Anything built in the radius is destroyed when a wave starts. gz.zone3 = A wave will begin now.\nGet ready. gz.finish = Build more turrets, mine more resources,\nand defend against all the waves to [accent]capture the sector[]. +fungalpass.tutorial1 = Use [accent]units[] to defend buildings and attack the enemy.\nResearch and place a :ground-factory: [accent]ground factory[]. +fungalpass.tutorial2 = Select :dagger: [accent]Dagger[] units in the factory.\nProduce 3 units. + +frontier.tutorial1 = The :additive-reconstructor: [accent]Additive Reconstructor[]\nupgrades tier 1 units to tier 2\nusing :silicon: silicon and :graphite: graphite.\n\n[accent]Research and reconstruct\na []:dagger:[accent] dagger to a []:mace:[accent] mace. +frontier.tutorial2 = Enemy waves send [accent]infinitely[] until all enemy cores are [unlaunched]destroyed. +frontier.tutorial3 = [accent]Attack the enemy base fast to prevent waves from getting too high[]. + +atolls.destroy1 = Destroy the 2 enemy [accent]foundation cores[] first.\n[accent]Gain access to thorium[]. +atolls.mega1 = Enter [accent]command mode[] and select the :mega:[accent]Mega[] units. +atolls.mega2 = Select the \ue87b [accent]Load Units[] command to have Mega units to pick up ground units. +atolls.mega3 = Move the Mega units [accent]above[] ground units to load them in. +atolls.mega4 = [accent]Drop ground units here to attack. +atolls.mega5 = Select the \ue879 [accent]Unload Payload[] command to have Mega units drop their carried units. +atolls.mega6 = Units will be [accent]automatically dropped[] while the \ue879 Unload Payload command is selected. +atolls.mega7 = Mega units [accent]will not[] drop ground units while they are above walls or deep water. +atolls.mega8 = [accent]Drop naval units here to attack.[] +atolls.attack1 = 1: Drop ground units here to attack from this location. +atolls.attack2 = 2: Alternatively, drop naval units here to launch a surprise attack. +atolls.carry1 = Carrying ground units requires :mega:[accent]Mega[] units. +atolls.carry2 = 1: Command Mega units to [accent]move over[] the ground units. +atolls.carry3 = 2: Select the \ue87b [accent]Load Units[] command in order to pick up the ground units with the Mega units. +atolls.carry4 = 3: Command and move the Mega carriers [accent]loaded with units[]. +atolls.carry5 = 4: Select the \ue879 [accent]'Unload Payload'[] command in order for the Mega units to drop the ground units. +atolls.carry6 = These steps can be reviewed [accent]here[]. +atolls.carry7 = Follow these instructions to airdrop more units near the enemy base. +atolls.noairunit = This base is too well-fortified to destroy with air units. +atolls.2strategies = There are two strategies to destroy this base. + onset.mine = Click to mine :beryllium: [accent]beryllium[] from walls.\n\nUse [accent][[WASD] to move. onset.mine.mobile = Tap to mine :beryllium: [accent]beryllium[] from walls. onset.research = Open the :tree: tech tree.\nResearch, then place a :turbine-condenser: [accent]turbine condenser[] on the vent.\nThis will generate [accent]power[]. @@ -2652,6 +2674,7 @@ laccess.displaywidth = Width of a display block in pixels. laccess.displayheight = Height of a display block in pixels. laccess.buffersize = Number of unprocessed commands in the graphics buffer of a display. laccess.operations = Number of operations performed on the block.\nFor displays, returns the number of drawflush operations. +laccess.maxunits = Maximum units that a team can have.\nCan only be sensed from cores. lcategory.unknown = Unknown lcategory.unknown.description = Uncategorized instructions. diff --git a/core/assets/bundles/bundle_ru.properties b/core/assets/bundles/bundle_ru.properties index 135650e071..bd09afcb86 100644 --- a/core/assets/bundles/bundle_ru.properties +++ b/core/assets/bundles/bundle_ru.properties @@ -101,6 +101,7 @@ coreattack = < Ядро находится под атакой! > nearpoint = [[ [scarlet]ПОКИНЬТЕ ТОЧКУ ВЫСАДКИ НЕМЕДЛЕННО[] ]\nаннигиляция неизбежна database = База данных ядра database.button = База данных +database.patched = Modified by data patches. viewfields = View Content Fields savegame = Сохранить игру loadgame = Загрузить игру @@ -885,8 +886,9 @@ sector.navalFortress.name = Прибрежная крепость sector.polarAerodrome.name = Полярный аэродром sector.atolls.name = Атоллы sector.testingGrounds.name = Испытательные площадки -sector.seaPort.name = Морской порт +sector.perilousHarbor.name = Perilous Harbor sector.weatheredChannels.name = Размытые протоки +sector.fallenVessel.name = Fallen Vessel sector.mycelialBastion.name = Мицелиальный бастион sector.frontier.name = Граница sector.sunkenPier.name = Sunken Pier @@ -912,21 +914,6 @@ sector.planetaryTerminal.description = Конечная цель.\n\nЭта бе sector.coastline.description = В этом месте были обнаружены остатки древней военно-морской технологии. Отбейте атаки противника, захватите этот сектор и изучите эту технологию. sector.navalFortress.description = Враг возвел базу на удаленном острове с естественными укреплениями. Уничтожьте её. Овладейте их технологией по производству кораблей и изучите ее. -#do not translate -sector.facility32m.description = WIP, map submission by Stormride_R -sector.taintedWoods.description = WIP, map submission by Stormride_R -sector.sunkenPier.description = WIP, map submission by Stormride_R -sector.atolls.description = WIP, map submission by Stormride_R -sector.frontier.description = WIP, map submission by Stormride_R -sector.infestedCanyons.description = WIP, map submission by Skeledragon -sector.polarAerodrome.description = WIP, map submission by hhh i 17 -sector.testingGrounds.description = WIP, map submission by dnx2019 -sector.seaPort.description = WIP, map submission by inkognito626 -sector.weatheredChannels.description = WIP, map submission by Skeledragon -sector.mycelialBastion.description = WIP, map submission by Skeledragon -sector.cruxscape.description = WIP, map submission by Stormride_R -sector.geothermalStronghold.description = WIP, map submission by Skeledragon - sector.onset.name = Начало sector.aegis.name = Защита sector.lake.name = Озеро @@ -945,6 +932,12 @@ sector.crossroads.name = Распутье sector.karst.name = Карст sector.origin.name = Источник +sector.origin.credit = Mechanical Fishe +sector.karst.credit = Mechanical Fishe +sector.caldera-erekir.credit = hhh i 17 +sector.siege.credit = hhh i 17 +sector.ravine.credit = Bepis + sector.onset.description = Собирайте ресурсы, исследуйте технологии для автоматизации производства.\nНачните атаку. sector.aegis.description = В этом секторе есть залежи вольфрама.\nИсследуйте [accent]Ударную дрель[], чтобы добыть этот ресурс и уничтожить вражескую базу в этом регионе. sector.lake.description = Шлаковое озеро в этом секторе сильно ограничивает вас в выборе боевых единиц. Единственным вариантом являются парящие единицы.\nИсследуйте [accent]Сборщик кораблей[] и произведите единицы [accent]Уклонение[] как можно скорее. @@ -2125,6 +2118,7 @@ hint.waveFire = Турели [accent]Волна[] при подаче воды hint.generator = :combustion-generator: [accent]Генераторы внутреннего сгорания[] сжигают уголь и передают энергию рядом стоящим блокам.\n\nДальность передачи энергии может быть увеличена при помощи :power-node: [accent]силовых узлов[]. hint.guardian = [accent]Стражи[] бронированы. Слабые боеприпасы, такие как [accent]медь[] и [accent]свинец[], [scarlet]не эффективны[].\n\nИспользуйте турели высокого уровня или :graphite: [accent]графитные[] боеприпасы в :duo:двойных турелях/:salvo:залпах, чтобы уничтожить Стража. hint.coreUpgrade = Ядра могут быть улучшены путем [accent]размещения над ними ядер более высокого уровня[].\n\nПоместите ядро :core-foundation: [accent]Штаб[] поверх ядра :core-shard: [accent]Осколок[]. Убедитесь, что никакие препятствия не мешают ему. +hint.serpuloCoreZone = Additional cores may be constructed on :core-zone: [accent]Core Zone[] tiles. hint.cannotUpgrade = A [red]:tree:[] icon over a payload unit indicates that its upgraded version is not researched yet.\n\nUnit upgrades must be researched in the [accent]:tree: tech tree[] before they can be produced in reconstructors. hint.presetLaunch = В серые [accent]секторы с посадочными зонами[], такие как [accent]Ледяной лес[], можно запускаться из любого места. Они не требуют захвата близлежащей территории.\n\n[accent]Нумерованные секторы[], такие как этот, [accent]не обязательны[] для прохождения. hint.presetDifficulty = У этого сектора [scarlet]высокий уровень угрозы[].\nЗапуск на такие сектора [accent]не рекомендуется[] без достаточных технологий и подготовки. @@ -2153,6 +2147,34 @@ gz.zone2 = Все, что построено в её радиусе, будет gz.zone3 = Волна начнётся прямо сейчас.\nПриготовьтесь. gz.finish = Постройте больше турелей, добудьте больше ресурсов,\nи отстойте все волны, чтобы [accent]захватить сектор[]. +fungalpass.tutorial1 = Use [accent]units[] to defend buildings and attack the enemy.\nResearch and place a :ground-factory: [accent]ground factory[]. +fungalpass.tutorial2 = Select :dagger: [accent]Dagger[] units in the factory.\nProduce 3 units. + +frontier.tutorial1 = The :additive-reconstructor: [accent]Additive Reconstructor[]\nupgrades tier 1 units to tier 2\nusing :silicon: silicon and :graphite: graphite.\n\n[accent]Research and reconstruct\na []:dagger:[accent] dagger to a []:mace:[accent] mace. +frontier.tutorial2 = Enemy waves send [accent]infinitely[] until all enemy cores are [unlaunched]destroyed. +frontier.tutorial3 = [accent]Attack the enemy base fast to prevent waves from getting too high[]. + +atolls.destroy1 = Destroy the 2 enemy [accent]foundation cores[] first.\n[accent]Gain access to thorium[]. +atolls.mega1 = Enter [accent]command mode[] and select the :mega:[accent]Mega[] units. +atolls.mega2 = Select the \ue87b [accent]Load Units[] command to have Mega units to pick up ground units. +atolls.mega3 = Move the Mega units [accent]above[] ground units to load them in. +atolls.mega4 = [accent]Drop ground units here to attack. +atolls.mega5 = Select the \ue879 [accent]Unload Payload[] command to have Mega units drop their carried units. +atolls.mega6 = Units will be [accent]automatically dropped[] while the \ue879 Unload Payload command is selected. +atolls.mega7 = Mega units [accent]will not[] drop ground units while they are above walls or deep water. +atolls.mega8 = [accent]Drop naval units here to attack.[] +atolls.attack1 = 1: Drop ground units here to attack from this location. +atolls.attack2 = 2: Alternatively, drop naval units here to launch a surprise attack. +atolls.carry1 = Carrying ground units requires :mega:[accent]Mega[] units. +atolls.carry2 = 1: Command Mega units to [accent]move over[] the ground units. +atolls.carry3 = 2: Select the \ue87b [accent]Load Units[] command in order to pick up the ground units with the Mega units. +atolls.carry4 = 3: Command and move the Mega carriers [accent]loaded with units[]. +atolls.carry5 = 4: Select the \ue879 [accent]'Unload Payload'[] command in order for the Mega units to drop the ground units. +atolls.carry6 = These steps can be reviewed [accent]here[]. +atolls.carry7 = Follow these instructions to airdrop more units near the enemy base. +atolls.noairunit = This base is too well-fortified to destroy with air units. +atolls.2strategies = There are two strategies to destroy this base. + onset.mine = Нажмите, чтобы добыть :beryllium: [accent]бериллий[] из стен.\n\nИспользуйте [accent][[WASD] для передвижения. onset.mine.mobile = Нажмите, чтобы добыть :beryllium: [accent]бериллий[] из стен. onset.research = Откройте :tree: дерево исследований.\nИсследуйте, затем поставьте :turbine-condenser: [accent]турбинный конденсатор[] на жерло.\nОна будет производить [accent]энергию[]. @@ -2652,6 +2674,7 @@ laccess.displaywidth = Ширина дисплея, в пикселях. laccess.displayheight = Высота дисплея, в пикселях. laccess.buffersize = Количество необработанных команд в графическом буфере дисплея. laccess.operations = Количество операций, выполненных в блоке.\nДля дисплеев, возвращает количество выполненных операций drawflush. +laccess.maxunits = Maximum units that a team can have.\nCan only be sensed from cores. lcategory.unknown = Неизвестно lcategory.unknown.description = Нет категории. diff --git a/core/assets/bundles/bundle_sr.properties b/core/assets/bundles/bundle_sr.properties index 978dea6411..2f3db61665 100644 --- a/core/assets/bundles/bundle_sr.properties +++ b/core/assets/bundles/bundle_sr.properties @@ -101,6 +101,7 @@ coreattack = < Jezgro je napadnuto! > nearpoint = [[ [scarlet]NAPUSTI ZONU DOLASKA ODMAH[] ]\nauništenje je neizostavno database = Baza Podataka database.button = Baza Podataka +database.patched = Modified by data patches. viewfields = View Content Fields savegame = Snimi Igru loadgame = Učitaj Igru @@ -885,8 +886,9 @@ sector.navalFortress.name = Pomorska Tvrđava sector.polarAerodrome.name = Polar Aerodrome sector.atolls.name = Atolls sector.testingGrounds.name = Testing Grounds -sector.seaPort.name = Sea Port +sector.perilousHarbor.name = Perilous Harbor sector.weatheredChannels.name = Weathered Channels +sector.fallenVessel.name = Fallen Vessel sector.mycelialBastion.name = Mycelial Bastion sector.frontier.name = Frontier sector.sunkenPier.name = Sunken Pier @@ -912,21 +914,6 @@ sector.planetaryTerminal.description = Krajnji cilj.\n\nOva obalska struktura im sector.coastline.description = Ostaci tehnologije pomorskih jedinica su detektovani u ovom sektoru. Odbijte neprijateljske napade, zauzmite ovaj sektor, i preuzmite tehnologiju. sector.navalFortress.description = Neprijatelj je sagradio bazu na dalekom, prirodno-formiranom ostrvu. Uništite ovu bazu. Preuzmite njihovu naprednu pomorsku tehnologiju, i izuči te je. -#do not translate -sector.facility32m.description = WIP, map submission by Stormride_R -sector.taintedWoods.description = WIP, map submission by Stormride_R -sector.sunkenPier.description = WIP, map submission by Stormride_R -sector.atolls.description = WIP, map submission by Stormride_R -sector.frontier.description = WIP, map submission by Stormride_R -sector.infestedCanyons.description = WIP, map submission by Skeledragon -sector.polarAerodrome.description = WIP, map submission by hhh i 17 -sector.testingGrounds.description = WIP, map submission by dnx2019 -sector.seaPort.description = WIP, map submission by inkognito626 -sector.weatheredChannels.description = WIP, map submission by Skeledragon -sector.mycelialBastion.description = WIP, map submission by Skeledragon -sector.cruxscape.description = WIP, map submission by Stormride_R -sector.geothermalStronghold.description = WIP, map submission by Skeledragon - sector.onset.name = Žačetak sector.aegis.name = Okrilje sector.lake.name = Jezero @@ -945,6 +932,12 @@ sector.crossroads.name = Raskrsnica sector.karst.name = Karst sector.origin.name = Poreklo +sector.origin.credit = Mechanical Fishe +sector.karst.credit = Mechanical Fishe +sector.caldera-erekir.credit = hhh i 17 +sector.siege.credit = hhh i 17 +sector.ravine.credit = Bepis + sector.onset.description = Tutorijalni sektor. Ovaj zadatak još nije izrađen. Sakečajte za dodatne informacije. sector.aegis.description = Ovaj sektor sadrži rude Volframa.\nIzuči [accent]Udarnu Drobilicu[] da bi ste mogli iskopati ovu rudu, takođe uništite obližnju neprijateljsku bazu. sector.lake.description = Istopljen metali u ovom sektoru smanjuje količinu korisnih jedinica. Lebdeća jedinica je jedina opcija.\nIzuči [accent]fabrikator brodova[] i proizvedi [accent]izvrda[] jedinicu što pre moguće. @@ -2125,6 +2118,7 @@ hint.waveFire = [accent]Talas[] platforma sa vodom kao municiom automatski gasi hint.generator = :combustion-generator: [accent]Generatori Sagorevanja[] sagorevaju ugalj i proizvode energiju.\n\nDomet prenosa energije se može povećati preko :power-node: [accent]Strujnog Čvora[]. hint.guardian = [accent]Čuvari[] kao jedinice su oklopljenje. Slaba municija potput [accent]Bakra[] i [accent]Olovo[] [scarlet]nije efikasan[].\n\nKoristi platforme većeg tijera ili:graphite: [accent]Grafit[] :duo:Duo/:salvo:Salvo municiju da bi se rešio čuvara. hint.coreUpgrade = Jezgra mogu da se unaprede [accent]postavljanjem većih jezgara preko njih[].\n\nPostavi [accent]Temelj[] preko [accent]Krhotina[] jezgra. Osigurajte da bude planiran prostor čist. +hint.serpuloCoreZone = Additional cores may be constructed on :core-zone: [accent]Core Zone[] tiles. hint.cannotUpgrade = A [red]:tree:[] icon over a payload unit indicates that its upgraded version is not researched yet.\n\nUnit upgrades must be researched in the [accent]:tree: tech tree[] before they can be produced in reconstructors. hint.presetLaunch = [accent]Sektori sa ivicom[] sive boje, kao [accent]Zamrznutna Šuma[], se mogu lansiradi svuda. Oni ne zahtevaju zauzetu obljižnju teritoriju.\n\n[accent]Numerisani sektori[], potput ovog, su [accent]opcionalni[]. hint.presetDifficulty = This sector has a [scarlet]high enemy threat level[].\nLaunching to such sectors is [accent]not recommended[] without proper technology and preparation. @@ -2153,6 +2147,34 @@ gz.zone2 = Sve sagrađeno u njoj će biti uništeno kada se započne talas. gz.zone3 = Talas će uskoro započeti.\nSpremi se. gz.finish = Build more turrets, mine more resources,\nand defend against all the waves to [accent]capture the sector[]. +fungalpass.tutorial1 = Use [accent]units[] to defend buildings and attack the enemy.\nResearch and place a :ground-factory: [accent]ground factory[]. +fungalpass.tutorial2 = Select :dagger: [accent]Dagger[] units in the factory.\nProduce 3 units. + +frontier.tutorial1 = The :additive-reconstructor: [accent]Additive Reconstructor[]\nupgrades tier 1 units to tier 2\nusing :silicon: silicon and :graphite: graphite.\n\n[accent]Research and reconstruct\na []:dagger:[accent] dagger to a []:mace:[accent] mace. +frontier.tutorial2 = Enemy waves send [accent]infinitely[] until all enemy cores are [unlaunched]destroyed. +frontier.tutorial3 = [accent]Attack the enemy base fast to prevent waves from getting too high[]. + +atolls.destroy1 = Destroy the 2 enemy [accent]foundation cores[] first.\n[accent]Gain access to thorium[]. +atolls.mega1 = Enter [accent]command mode[] and select the :mega:[accent]Mega[] units. +atolls.mega2 = Select the \ue87b [accent]Load Units[] command to have Mega units to pick up ground units. +atolls.mega3 = Move the Mega units [accent]above[] ground units to load them in. +atolls.mega4 = [accent]Drop ground units here to attack. +atolls.mega5 = Select the \ue879 [accent]Unload Payload[] command to have Mega units drop their carried units. +atolls.mega6 = Units will be [accent]automatically dropped[] while the \ue879 Unload Payload command is selected. +atolls.mega7 = Mega units [accent]will not[] drop ground units while they are above walls or deep water. +atolls.mega8 = [accent]Drop naval units here to attack.[] +atolls.attack1 = 1: Drop ground units here to attack from this location. +atolls.attack2 = 2: Alternatively, drop naval units here to launch a surprise attack. +atolls.carry1 = Carrying ground units requires :mega:[accent]Mega[] units. +atolls.carry2 = 1: Command Mega units to [accent]move over[] the ground units. +atolls.carry3 = 2: Select the \ue87b [accent]Load Units[] command in order to pick up the ground units with the Mega units. +atolls.carry4 = 3: Command and move the Mega carriers [accent]loaded with units[]. +atolls.carry5 = 4: Select the \ue879 [accent]'Unload Payload'[] command in order for the Mega units to drop the ground units. +atolls.carry6 = These steps can be reviewed [accent]here[]. +atolls.carry7 = Follow these instructions to airdrop more units near the enemy base. +atolls.noairunit = This base is too well-fortified to destroy with air units. +atolls.2strategies = There are two strategies to destroy this base. + onset.mine = Klikni da bi iskopao :beryllium: [accent]berilijum[] iz zidova.\nKoristi [accent][[WASD] za kretanje. onset.mine.mobile = Pritisni da bi iskopao :beryllium: [accent]berilijum[] iz zidova. onset.research = Otvori :tree: drvo tehnologija.\nIzuči, i pritom postavi :turbine-condenser: [accent]Turbinski Kondezator[] na ventil.\nOvo će da proizvodi [accent]energiju[]. @@ -2652,6 +2674,7 @@ laccess.displaywidth = Width of a display block in pixels. laccess.displayheight = Height of a display block in pixels. laccess.buffersize = Number of unprocessed commands in the graphics buffer of a display. laccess.operations = Number of operations performed on the block.\nFor displays, returns the number of drawflush operations. +laccess.maxunits = Maximum units that a team can have.\nCan only be sensed from cores. lcategory.unknown = Nepoznato lcategory.unknown.description = Uncategorized instructions. diff --git a/core/assets/bundles/bundle_sv.properties b/core/assets/bundles/bundle_sv.properties index 20c45fc86c..a6a1bcf208 100644 --- a/core/assets/bundles/bundle_sv.properties +++ b/core/assets/bundles/bundle_sv.properties @@ -101,6 +101,7 @@ coreattack = < Kärnan är under attack! > nearpoint = [[ [scarlet]LÄMNA DROPPZONEN OMEDELBART[] ]\nförintelse oundviklig database = Kärndatabas database.button = Databas +database.patched = Modified by data patches. viewfields = View Content Fields savegame = Spara Spel loadgame = Importera Spel @@ -880,13 +881,14 @@ sector.facility32m.name = Facility 32 M sector.taintedWoods.name = Tainted Woods sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Planetary Launch Terminal -sector.coastline.name = Coastline +sector.coastline.name = Humid Coastline sector.navalFortress.name = Naval Fortress sector.polarAerodrome.name = Polar Aerodrome sector.atolls.name = Atolls sector.testingGrounds.name = Testing Grounds -sector.seaPort.name = Sea Port +sector.perilousHarbor.name = Perilous Harbor sector.weatheredChannels.name = Weathered Channels +sector.fallenVessel.name = Fallen Vessel sector.mycelialBastion.name = Mycelial Bastion sector.frontier.name = Frontier sector.sunkenPier.name = Sunken Pier @@ -912,21 +914,6 @@ sector.planetaryTerminal.description = The final target.\n\nThis coastal base co sector.coastline.description = Remnants of naval unit technology have been detected at this location. Repel the enemy attacks, capture this sector, and acquire the technology. sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. -#do not translate -sector.facility32m.description = WIP, map submission by Stormride_R -sector.taintedWoods.description = WIP, map submission by Stormride_R -sector.sunkenPier.description = WIP, map submission by Stormride_R -sector.atolls.description = WIP, map submission by Stormride_R -sector.frontier.description = WIP, map submission by Stormride_R -sector.infestedCanyons.description = WIP, map submission by Skeledragon -sector.polarAerodrome.description = WIP, map submission by hhh i 17 -sector.testingGrounds.description = WIP, map submission by dnx2019 -sector.seaPort.description = WIP, map submission by inkognito626 -sector.weatheredChannels.description = WIP, map submission by Skeledragon -sector.mycelialBastion.description = WIP, map submission by Skeledragon -sector.cruxscape.description = WIP, map submission by Stormride_R -sector.geothermalStronghold.description = WIP, map submission by Skeledragon - sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Lake @@ -945,6 +932,12 @@ sector.crossroads.name = Crossroads sector.karst.name = Karst sector.origin.name = Origin +sector.origin.credit = Mechanical Fishe +sector.karst.credit = Mechanical Fishe +sector.caldera-erekir.credit = hhh i 17 +sector.siege.credit = hhh i 17 +sector.ravine.credit = Bepis + sector.onset.description = Commence the conquest of Erekir. Gather resources, produce units, and begin researching technology. sector.aegis.description = This sector contains deposits of tungsten.\nResearch the [accent]Impact Drill[] to mine this resource, and destroy the enemy base in the area. sector.lake.description = This sector's slag lake greatly limits viable units. A hover unit is the only option.\nResearch the [accent]ship fabricator[] and produce an [accent]elude[] unit as soon as possible. @@ -2125,6 +2118,7 @@ hint.waveFire = [accent]Wave[] turrets with water as ammunition will automatical hint.generator = :combustion-generator: [accent]Combustion Generators[] burn coal and transmit power to adjacent blocks.\n\nPower transmission range can be extended with :power-node: [accent]Power Nodes[]. hint.guardian = [accent]Guardian[] units are armored. Weak ammo such as [accent]Copper[] and [accent]Lead[] is [scarlet]not effective[].\n\nUse higher tier turrets or :graphite: [accent]Graphite[] :duo:Duo/:salvo:Salvo ammunition to take Guardians down. hint.coreUpgrade = Cores can be upgraded by [accent]placing higher-tier cores over them[].\n\nPlace a :core-foundation: [accent]Foundation[] core over the :core-shard: [accent]Shard[] core. Make sure it is free from nearby obstructions. +hint.serpuloCoreZone = Additional cores may be constructed on :core-zone: [accent]Core Zone[] tiles. hint.cannotUpgrade = A [red]:tree:[] icon over a payload unit indicates that its upgraded version is not researched yet.\n\nUnit upgrades must be researched in the [accent]:tree: tech tree[] before they can be produced in reconstructors. hint.presetLaunch = Gray [accent]landing zone sectors[], such as [accent]Frozen Forest[], can be launched to from anywhere. They do not require capture of nearby territory.\n\n[accent]Numbered sectors[], such as this one, are [accent]optional[]. hint.presetDifficulty = This sector has a [scarlet]high enemy threat level[].\nLaunching to such sectors is [accent]not recommended[] without proper technology and preparation. @@ -2153,6 +2147,34 @@ gz.zone2 = Anything built in the radius is destroyed when a wave starts. gz.zone3 = A wave will begin now.\nGet ready. gz.finish = Build more turrets, mine more resources,\nand defend against all the waves to [accent]capture the sector[]. +fungalpass.tutorial1 = Use [accent]units[] to defend buildings and attack the enemy.\nResearch and place a :ground-factory: [accent]ground factory[]. +fungalpass.tutorial2 = Select :dagger: [accent]Dagger[] units in the factory.\nProduce 3 units. + +frontier.tutorial1 = The :additive-reconstructor: [accent]Additive Reconstructor[]\nupgrades tier 1 units to tier 2\nusing :silicon: silicon and :graphite: graphite.\n\n[accent]Research and reconstruct\na []:dagger:[accent] dagger to a []:mace:[accent] mace. +frontier.tutorial2 = Enemy waves send [accent]infinitely[] until all enemy cores are [unlaunched]destroyed. +frontier.tutorial3 = [accent]Attack the enemy base fast to prevent waves from getting too high[]. + +atolls.destroy1 = Destroy the 2 enemy [accent]foundation cores[] first.\n[accent]Gain access to thorium[]. +atolls.mega1 = Enter [accent]command mode[] and select the :mega:[accent]Mega[] units. +atolls.mega2 = Select the \ue87b [accent]Load Units[] command to have Mega units to pick up ground units. +atolls.mega3 = Move the Mega units [accent]above[] ground units to load them in. +atolls.mega4 = [accent]Drop ground units here to attack. +atolls.mega5 = Select the \ue879 [accent]Unload Payload[] command to have Mega units drop their carried units. +atolls.mega6 = Units will be [accent]automatically dropped[] while the \ue879 Unload Payload command is selected. +atolls.mega7 = Mega units [accent]will not[] drop ground units while they are above walls or deep water. +atolls.mega8 = [accent]Drop naval units here to attack.[] +atolls.attack1 = 1: Drop ground units here to attack from this location. +atolls.attack2 = 2: Alternatively, drop naval units here to launch a surprise attack. +atolls.carry1 = Carrying ground units requires :mega:[accent]Mega[] units. +atolls.carry2 = 1: Command Mega units to [accent]move over[] the ground units. +atolls.carry3 = 2: Select the \ue87b [accent]Load Units[] command in order to pick up the ground units with the Mega units. +atolls.carry4 = 3: Command and move the Mega carriers [accent]loaded with units[]. +atolls.carry5 = 4: Select the \ue879 [accent]'Unload Payload'[] command in order for the Mega units to drop the ground units. +atolls.carry6 = These steps can be reviewed [accent]here[]. +atolls.carry7 = Follow these instructions to airdrop more units near the enemy base. +atolls.noairunit = This base is too well-fortified to destroy with air units. +atolls.2strategies = There are two strategies to destroy this base. + onset.mine = Click to mine :beryllium: [accent]beryllium[] from walls.\n\nUse [accent][[WASD] to move. onset.mine.mobile = Tap to mine :beryllium: [accent]beryllium[] from walls. onset.research = Open the :tree: tech tree.\nResearch, then place a :turbine-condenser: [accent]turbine condenser[] on the vent.\nThis will generate [accent]power[]. @@ -2652,6 +2674,7 @@ laccess.displaywidth = Width of a display block in pixels. laccess.displayheight = Height of a display block in pixels. laccess.buffersize = Number of unprocessed commands in the graphics buffer of a display. laccess.operations = Number of operations performed on the block.\nFor displays, returns the number of drawflush operations. +laccess.maxunits = Maximum units that a team can have.\nCan only be sensed from cores. lcategory.unknown = Unknown lcategory.unknown.description = Uncategorized instructions. diff --git a/core/assets/bundles/bundle_th.properties b/core/assets/bundles/bundle_th.properties index 458d2c2843..0dec563992 100644 --- a/core/assets/bundles/bundle_th.properties +++ b/core/assets/bundles/bundle_th.properties @@ -101,6 +101,7 @@ coreattack = < แกนกลางถูกโจมตี! > nearpoint = [[ [scarlet]ออกจากจุดเกิดด่วน![] ]\nการทำลายล้างกำลังใกล้เข้ามา database = ฐานข้อมูลแกนกลาง database.button = ฐานข้อมูล +database.patched = Modified by data patches. viewfields = View Content Fields savegame = เซฟเกม loadgame = โหลดเกม @@ -885,8 +886,9 @@ sector.navalFortress.name = ปราการแห่งวารี sector.polarAerodrome.name = ฐานบินขั้วโลก sector.atolls.name = อะทอลส์ sector.testingGrounds.name = Testing Grounds -sector.seaPort.name = Sea Port +sector.perilousHarbor.name = Perilous Harbor sector.weatheredChannels.name = Weathered Channels +sector.fallenVessel.name = Fallen Vessel sector.mycelialBastion.name = Mycelial Bastion sector.frontier.name = Frontier sector.sunkenPier.name = Sunken Pier @@ -912,21 +914,6 @@ sector.planetaryTerminal.description = เป้าหมายสุดท้ sector.coastline.description = ถัดมาจากที่ราบเกลือ เป็นที่ตั้งของแนวชายฝั่ง พบเศษซากของเทคโนโลยียูนิตเรือที่ล้ำหน้าอยู่ในพื้นที่แห่งนี้\nขับไล่ศัตรูออกไป ยึดพื้นที่นี้มา วิจัยเทคโนโลยีนั้น sector.navalFortress.description = ศัตรูได้ตั้งฐานทัพอยู่บนเกาะห่างไกลที่มีกำแพงธรรมชาติปกป้องฐานเอาไว้ ทำลายฐานทัพ ยึดและวิจัยเทคโนโลยีเรือรบที่ล้ำหน้านั้นมา -#do not translate -sector.facility32m.description = WIP, map submission by Stormride_R -sector.taintedWoods.description = WIP, map submission by Stormride_R -sector.sunkenPier.description = WIP, map submission by Stormride_R -sector.atolls.description = WIP, map submission by Stormride_R -sector.frontier.description = WIP, map submission by Stormride_R -sector.infestedCanyons.description = WIP, map submission by Skeledragon -sector.polarAerodrome.description = WIP, map submission by hhh i 17 -sector.testingGrounds.description = WIP, map submission by dnx2019 -sector.seaPort.description = WIP, map submission by inkognito626 -sector.weatheredChannels.description = WIP, map submission by Skeledragon -sector.mycelialBastion.description = WIP, map submission by Skeledragon -sector.cruxscape.description = WIP, map submission by Stormride_R -sector.geothermalStronghold.description = WIP, map submission by Skeledragon - sector.onset.name = การเริ่มต้น sector.aegis.name = อีจีส sector.lake.name = ทะเลสาบสีชาด @@ -945,6 +932,12 @@ sector.crossroads.name = ทางเชื่อม sector.karst.name = คาสต์ sector.origin.name = ต้นกำเนิด +sector.origin.credit = Mechanical Fishe +sector.karst.credit = Mechanical Fishe +sector.caldera-erekir.credit = hhh i 17 +sector.siege.credit = hhh i 17 +sector.ravine.credit = Bepis + sector.onset.description = ตั้งต้นการบุกโจมตีเพื่อพิชิตดาว[accent]เอเรเกียร์[] เก็บทรัพยากร สร้างยูนิต และเริ่มค้นคว้าวิจัยเทคโนโลยี sector.aegis.description = พบการสะสมของแหล่งแร่ทังสเตนในพื้นที่นี้\nวิจัย[accent]เครื่องขุดแรงกระแทก[]เพื่อขุดทรัพยากรนี้ และทำลายฐานทัพศัตรูที่อยู่ในพื้นที่ sector.lake.description = ทะเลสาบแร่หลอมในพื้นที่นี้ทำให้ไม่สามารถใช้ยูนิตธรรมดาได้ จะต้องมียูนิตที่ลอยตัวเหนื้อพื้นดินเพื่อที่จะผ่านไปได้\nวิจัย[accent]เครื่องสรรค์สร้างยานบิน[]และผลิตยูนิต[accent]เอลูด[]ให้เร็วที่สุดเท่าที่จะเป็นไปได้ @@ -2125,6 +2118,7 @@ hint.waveFire = ป้อมปืน[accent]คลื่นน้ำ[]หาก hint.generator = :combustion-generator: [accent]เครื่องกำเนิดไฟฟ้าเผาไหม้[]จะเผาถ่านและส่งพลังงานไปยังบล็อกที่อยู่ใกล้ๆ\n\nระยะของพลังงานสามารถขยายได้ด้วย :power-node: [accent]ตัวจ่ายพลังงาน[] hint.guardian = หน่วย[accent]ผู้พิทักษ์[]มีเกราะป้องกันหนาแน่น กระสุนเปราะบางอย่าง[accent]ทองแดง[]และ[accent]ตะกั่ว[][scarlet]ไม่มีประสิทธิภาพ[]\n\nควรใช้ป้อมปืนที่ดีกว่านี้หรือใช้ :graphite: [accent]กราไฟท์[]ใส่ใน :duo: ดูโอ/ :salvo: ซัลโวเป็นกระสุนเพื่อทำลายผู้พิทักษ์ hint.coreUpgrade = สามารถอัปเกรดแกนกลางได้โดย[accent]วางแกนกลางที่ใหญ่กว่าทับมัน[]\n\nวาง :core-foundation: [accent]แกนกลาง: ฟาวน์เดชั่น[]ทับ :core-shard: [accent]แกนกลาง: ชาร์ด[] ต้องแน่ใจว่ารอบข้างมีที่ว่างก่อนจะวาง +hint.serpuloCoreZone = Additional cores may be constructed on :core-zone: [accent]Core Zone[] tiles. hint.cannotUpgrade = A [red]:tree:[] icon over a payload unit indicates that its upgraded version is not researched yet.\n\nUnit upgrades must be researched in the [accent]:tree: tech tree[] before they can be produced in reconstructors. hint.presetLaunch = [accent]เซ็กเตอร์ลงจอด[]สีเทา อย่างเช่น[accent]ป่าหนาวเหน็บ[] สามารถลงจอดจากที่ไหนที่ได้ในแผนที่ พวกนั้นไม่จำเป็นต้องยืดครองเซ็กเตอร์รอบข้างเพื่อส่งแกนกลางไป\n\n[accent]เซ็กเตอร์ที่มีเลข[] อย่างเช่นอันนี้[accent]ไม่จำเป็น[]ต้องยืดครอง hint.presetDifficulty = เซ็กเตอร์นี้มี[scarlet]ระดับภัยคุกคามศัตรูสูง[]\n[accent]ไม่แนะนำ[]ให้ลงจอดไปยังเซ็กเซอร์พวกนั้นหากไม่มีการเตรียมพร้อมและเทคโนโลยี @@ -2153,6 +2147,34 @@ gz.zone2 = สิ่งก่อสร้างทุกอย่างในร gz.zone3 = คลื่นกำลังจะเริ่มขึ้นแล้ว\nเตรียมตัวให้พร้อม gz.finish = สร้างป้อมปืนเพิ่ม ขุดทรัพยากรให้ได้มากกว่านี้\nแล้วป้องกันคลื่นทั้งหมดเพื่อ[accent]ยึดครองเซ็กเตอร์[] +fungalpass.tutorial1 = Use [accent]units[] to defend buildings and attack the enemy.\nResearch and place a :ground-factory: [accent]ground factory[]. +fungalpass.tutorial2 = Select :dagger: [accent]Dagger[] units in the factory.\nProduce 3 units. + +frontier.tutorial1 = The :additive-reconstructor: [accent]Additive Reconstructor[]\nupgrades tier 1 units to tier 2\nusing :silicon: silicon and :graphite: graphite.\n\n[accent]Research and reconstruct\na []:dagger:[accent] dagger to a []:mace:[accent] mace. +frontier.tutorial2 = Enemy waves send [accent]infinitely[] until all enemy cores are [unlaunched]destroyed. +frontier.tutorial3 = [accent]Attack the enemy base fast to prevent waves from getting too high[]. + +atolls.destroy1 = Destroy the 2 enemy [accent]foundation cores[] first.\n[accent]Gain access to thorium[]. +atolls.mega1 = Enter [accent]command mode[] and select the :mega:[accent]Mega[] units. +atolls.mega2 = Select the \ue87b [accent]Load Units[] command to have Mega units to pick up ground units. +atolls.mega3 = Move the Mega units [accent]above[] ground units to load them in. +atolls.mega4 = [accent]Drop ground units here to attack. +atolls.mega5 = Select the \ue879 [accent]Unload Payload[] command to have Mega units drop their carried units. +atolls.mega6 = Units will be [accent]automatically dropped[] while the \ue879 Unload Payload command is selected. +atolls.mega7 = Mega units [accent]will not[] drop ground units while they are above walls or deep water. +atolls.mega8 = [accent]Drop naval units here to attack.[] +atolls.attack1 = 1: Drop ground units here to attack from this location. +atolls.attack2 = 2: Alternatively, drop naval units here to launch a surprise attack. +atolls.carry1 = Carrying ground units requires :mega:[accent]Mega[] units. +atolls.carry2 = 1: Command Mega units to [accent]move over[] the ground units. +atolls.carry3 = 2: Select the \ue87b [accent]Load Units[] command in order to pick up the ground units with the Mega units. +atolls.carry4 = 3: Command and move the Mega carriers [accent]loaded with units[]. +atolls.carry5 = 4: Select the \ue879 [accent]'Unload Payload'[] command in order for the Mega units to drop the ground units. +atolls.carry6 = These steps can be reviewed [accent]here[]. +atolls.carry7 = Follow these instructions to airdrop more units near the enemy base. +atolls.noairunit = This base is too well-fortified to destroy with air units. +atolls.2strategies = There are two strategies to destroy this base. + onset.mine = กดคลิ๊กซ้ายเพื่อขุด :beryllium: [accent]เบริลเลี่ยม[] จากกำแพง\n\nกด [accent][[WASD][] เพื่อขยับ onset.mine.mobile = กดที่หน้าจอเพื่อขุด :beryllium: [accent]เบริลเลี่ยม[] จากกำแพง onset.research = เปิดหน้า :tree: ต้นไม้แห่งเทคโนโลยี\nวิจัย แล้ววาง :turbine-condenser: [accent]เครื่องควบแน่นกังหัน[] บนปล่อง\nเครื่องนี้จะผลิต[accent]พลังงาน[] @@ -2652,6 +2674,7 @@ laccess.displaywidth = Width of a display block in pixels. laccess.displayheight = Height of a display block in pixels. laccess.buffersize = Number of unprocessed commands in the graphics buffer of a display. laccess.operations = Number of operations performed on the block.\nFor displays, returns the number of drawflush operations. +laccess.maxunits = Maximum units that a team can have.\nCan only be sensed from cores. lcategory.unknown = ไม่ทราบ lcategory.unknown.description = คำสั่งที่ไม่อยู่ในหมวดหมู่ใดๆเลย diff --git a/core/assets/bundles/bundle_tk.properties b/core/assets/bundles/bundle_tk.properties index 2424fcb29a..56aa180713 100644 --- a/core/assets/bundles/bundle_tk.properties +++ b/core/assets/bundles/bundle_tk.properties @@ -101,6 +101,7 @@ coreattack = < Cekirdek Saldiri altinda! > nearpoint = [[ [scarlet]LEAVE DROP POINT IMMEDIATELY[] ]\nannihilation imminent database = Core Database database.button = Database +database.patched = Modified by data patches. viewfields = View Content Fields savegame = Oyunu kaydet loadgame = Devam et @@ -880,13 +881,14 @@ sector.facility32m.name = Facility 32 M sector.taintedWoods.name = Tainted Woods sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Planetary Launch Terminal -sector.coastline.name = Coastline +sector.coastline.name = Humid Coastline sector.navalFortress.name = Naval Fortress sector.polarAerodrome.name = Polar Aerodrome sector.atolls.name = Atolls sector.testingGrounds.name = Testing Grounds -sector.seaPort.name = Sea Port +sector.perilousHarbor.name = Perilous Harbor sector.weatheredChannels.name = Weathered Channels +sector.fallenVessel.name = Fallen Vessel sector.mycelialBastion.name = Mycelial Bastion sector.frontier.name = Frontier sector.sunkenPier.name = Sunken Pier @@ -912,21 +914,6 @@ sector.planetaryTerminal.description = The final target.\n\nThis coastal base co sector.coastline.description = Remnants of naval unit technology have been detected at this location. Repel the enemy attacks, capture this sector, and acquire the technology. sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. -#do not translate -sector.facility32m.description = WIP, map submission by Stormride_R -sector.taintedWoods.description = WIP, map submission by Stormride_R -sector.sunkenPier.description = WIP, map submission by Stormride_R -sector.atolls.description = WIP, map submission by Stormride_R -sector.frontier.description = WIP, map submission by Stormride_R -sector.infestedCanyons.description = WIP, map submission by Skeledragon -sector.polarAerodrome.description = WIP, map submission by hhh i 17 -sector.testingGrounds.description = WIP, map submission by dnx2019 -sector.seaPort.description = WIP, map submission by inkognito626 -sector.weatheredChannels.description = WIP, map submission by Skeledragon -sector.mycelialBastion.description = WIP, map submission by Skeledragon -sector.cruxscape.description = WIP, map submission by Stormride_R -sector.geothermalStronghold.description = WIP, map submission by Skeledragon - sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Lake @@ -945,6 +932,12 @@ sector.crossroads.name = Crossroads sector.karst.name = Karst sector.origin.name = Origin +sector.origin.credit = Mechanical Fishe +sector.karst.credit = Mechanical Fishe +sector.caldera-erekir.credit = hhh i 17 +sector.siege.credit = hhh i 17 +sector.ravine.credit = Bepis + sector.onset.description = Commence the conquest of Erekir. Gather resources, produce units, and begin researching technology. sector.aegis.description = This sector contains deposits of tungsten.\nResearch the [accent]Impact Drill[] to mine this resource, and destroy the enemy base in the area. sector.lake.description = This sector's slag lake greatly limits viable units. A hover unit is the only option.\nResearch the [accent]ship fabricator[] and produce an [accent]elude[] unit as soon as possible. @@ -2125,6 +2118,7 @@ hint.waveFire = [accent]Wave[] turrets with water as ammunition will automatical hint.generator = :combustion-generator: [accent]Combustion Generators[] burn coal and transmit power to adjacent blocks.\n\nPower transmission range can be extended with :power-node: [accent]Power Nodes[]. hint.guardian = [accent]Guardian[] units are armored. Weak ammo such as [accent]Copper[] and [accent]Lead[] is [scarlet]not effective[].\n\nUse higher tier turrets or :graphite: [accent]Graphite[] :duo:Duo/:salvo:Salvo ammunition to take Guardians down. hint.coreUpgrade = Cores can be upgraded by [accent]placing higher-tier cores over them[].\n\nPlace a :core-foundation: [accent]Foundation[] core over the :core-shard: [accent]Shard[] core. Make sure it is free from nearby obstructions. +hint.serpuloCoreZone = Additional cores may be constructed on :core-zone: [accent]Core Zone[] tiles. hint.cannotUpgrade = A [red]:tree:[] icon over a payload unit indicates that its upgraded version is not researched yet.\n\nUnit upgrades must be researched in the [accent]:tree: tech tree[] before they can be produced in reconstructors. hint.presetLaunch = Gray [accent]landing zone sectors[], such as [accent]Frozen Forest[], can be launched to from anywhere. They do not require capture of nearby territory.\n\n[accent]Numbered sectors[], such as this one, are [accent]optional[]. hint.presetDifficulty = This sector has a [scarlet]high enemy threat level[].\nLaunching to such sectors is [accent]not recommended[] without proper technology and preparation. @@ -2153,6 +2147,34 @@ gz.zone2 = Anything built in the radius is destroyed when a wave starts. gz.zone3 = A wave will begin now.\nGet ready. gz.finish = Build more turrets, mine more resources,\nand defend against all the waves to [accent]capture the sector[]. +fungalpass.tutorial1 = Use [accent]units[] to defend buildings and attack the enemy.\nResearch and place a :ground-factory: [accent]ground factory[]. +fungalpass.tutorial2 = Select :dagger: [accent]Dagger[] units in the factory.\nProduce 3 units. + +frontier.tutorial1 = The :additive-reconstructor: [accent]Additive Reconstructor[]\nupgrades tier 1 units to tier 2\nusing :silicon: silicon and :graphite: graphite.\n\n[accent]Research and reconstruct\na []:dagger:[accent] dagger to a []:mace:[accent] mace. +frontier.tutorial2 = Enemy waves send [accent]infinitely[] until all enemy cores are [unlaunched]destroyed. +frontier.tutorial3 = [accent]Attack the enemy base fast to prevent waves from getting too high[]. + +atolls.destroy1 = Destroy the 2 enemy [accent]foundation cores[] first.\n[accent]Gain access to thorium[]. +atolls.mega1 = Enter [accent]command mode[] and select the :mega:[accent]Mega[] units. +atolls.mega2 = Select the \ue87b [accent]Load Units[] command to have Mega units to pick up ground units. +atolls.mega3 = Move the Mega units [accent]above[] ground units to load them in. +atolls.mega4 = [accent]Drop ground units here to attack. +atolls.mega5 = Select the \ue879 [accent]Unload Payload[] command to have Mega units drop their carried units. +atolls.mega6 = Units will be [accent]automatically dropped[] while the \ue879 Unload Payload command is selected. +atolls.mega7 = Mega units [accent]will not[] drop ground units while they are above walls or deep water. +atolls.mega8 = [accent]Drop naval units here to attack.[] +atolls.attack1 = 1: Drop ground units here to attack from this location. +atolls.attack2 = 2: Alternatively, drop naval units here to launch a surprise attack. +atolls.carry1 = Carrying ground units requires :mega:[accent]Mega[] units. +atolls.carry2 = 1: Command Mega units to [accent]move over[] the ground units. +atolls.carry3 = 2: Select the \ue87b [accent]Load Units[] command in order to pick up the ground units with the Mega units. +atolls.carry4 = 3: Command and move the Mega carriers [accent]loaded with units[]. +atolls.carry5 = 4: Select the \ue879 [accent]'Unload Payload'[] command in order for the Mega units to drop the ground units. +atolls.carry6 = These steps can be reviewed [accent]here[]. +atolls.carry7 = Follow these instructions to airdrop more units near the enemy base. +atolls.noairunit = This base is too well-fortified to destroy with air units. +atolls.2strategies = There are two strategies to destroy this base. + onset.mine = Click to mine :beryllium: [accent]beryllium[] from walls.\n\nUse [accent][[WASD] to move. onset.mine.mobile = Tap to mine :beryllium: [accent]beryllium[] from walls. onset.research = Open the :tree: tech tree.\nResearch, then place a :turbine-condenser: [accent]turbine condenser[] on the vent.\nThis will generate [accent]power[]. @@ -2652,6 +2674,7 @@ laccess.displaywidth = Width of a display block in pixels. laccess.displayheight = Height of a display block in pixels. laccess.buffersize = Number of unprocessed commands in the graphics buffer of a display. laccess.operations = Number of operations performed on the block.\nFor displays, returns the number of drawflush operations. +laccess.maxunits = Maximum units that a team can have.\nCan only be sensed from cores. lcategory.unknown = Unknown lcategory.unknown.description = Uncategorized instructions. diff --git a/core/assets/bundles/bundle_tr.properties b/core/assets/bundles/bundle_tr.properties index fe1481ef75..2640441b13 100644 --- a/core/assets/bundles/bundle_tr.properties +++ b/core/assets/bundles/bundle_tr.properties @@ -101,6 +101,7 @@ coreattack = < Merkez saldırı altında! > nearpoint = [[ [scarlet]İNİŞ PİSTİNDEN AYRIL[] ]\nimha tehlikesi database = Merkez Veritabanı database.button = Veritabanı +database.patched = Modified by data patches. viewfields = View Content Fields savegame = Oyunu Kaydet loadgame = Oyunu Yükle @@ -885,8 +886,9 @@ sector.navalFortress.name = Deniz Kalesi sector.polarAerodrome.name = Polar Havaalanı sector.atolls.name = Atoller sector.testingGrounds.name = Test Arazisi -sector.seaPort.name = Deniz Limanı +sector.perilousHarbor.name = Perilous Harbor sector.weatheredChannels.name = Erezyonlu Kanallar +sector.fallenVessel.name = Fallen Vessel sector.mycelialBastion.name = Mantar Kale sector.frontier.name = Öncü Üs sector.sunkenPier.name = Sunken Pier @@ -912,21 +914,6 @@ sector.planetaryTerminal.description = Son aşama.\n\nBu üs, başka gezegenlere sector.coastline.description = Bu bölgede denizel birim teknoloji kalıntıları tespit edildi. Düşman saldırılarını püskürt, sektörü ele geçir ve teknolojiyi kurtar. sector.navalFortress.description = Düşman bu uzak adaya doğal olarak korunan bir üs kurmuş. Bu üssü yok et. Onların gelişmiş savaş gemisi teknolojilerini elde et ve araştır. -#do not translate -sector.facility32m.description = WIP, map submission by Stormride_R -sector.taintedWoods.description = WIP, map submission by Stormride_R -sector.sunkenPier.description = WIP, map submission by Stormride_R -sector.atolls.description = WIP, map submission by Stormride_R -sector.frontier.description = WIP, map submission by Stormride_R -sector.infestedCanyons.description = WIP, map submission by Skeledragon -sector.polarAerodrome.description = WIP, map submission by hhh i 17 -sector.testingGrounds.description = WIP, map submission by dnx2019 -sector.seaPort.description = WIP, map submission by inkognito626 -sector.weatheredChannels.description = WIP, map submission by Skeledragon -sector.mycelialBastion.description = WIP, map submission by Skeledragon -sector.cruxscape.description = WIP, map submission by Stormride_R -sector.geothermalStronghold.description = WIP, map submission by Skeledragon - sector.onset.name = Yeni Başlangıç sector.aegis.name = Siper sector.lake.name = Göletçik @@ -945,6 +932,12 @@ sector.crossroads.name = Kavşak sector.karst.name = Karst sector.origin.name = Başlangıç +sector.origin.credit = Mechanical Fishe +sector.karst.credit = Mechanical Fishe +sector.caldera-erekir.credit = hhh i 17 +sector.siege.credit = hhh i 17 +sector.ravine.credit = Bepis + sector.onset.description = Öğretici Sektör. Bu Sektörün Görevleri daha belirlenmedi. Daha fazla bilgi için beklemede kal. sector.aegis.description = Düşman Kalkanların arkasına Sığınmış Durumda! Bu Sektörde Deneysel bir Kalkan Kırıcı Bulunmakta.\nBu Yapıyı Bul, Tungsten ile çalıştır ve Düşman Base i Fethet! sector.lake.description = Bu Sektörün Cürüf Gölü, birimleri büyük oranda engelliyor. Bir Hovercraft tek seçeneğin.\n[accent]Gemi Fabrikatörünü[] araştır ve [accent]elude[] birimini olabildiğince kısa sürede üret! @@ -2125,6 +2118,7 @@ hint.waveFire = [accent]Wave[] tareti su ile dolu olduğu zaman etrafta çıkan hint.generator = \uf879 [accent]Termik Jeneratör[] kömür yakarak enerji üretir.\n\nEnerjiyi bir yerden başka bir yere götürmek için \uf87f [accent]Enerji Noktalarını[] kullanırız. hint.guardian = [accent]Gardiyan[] birimleri güçlü bir zırha sahiptir. [accent]bakır[] ve [accent]kurşun[] gibi mermilere karşı [scarlet]Dayanıklıdır[].\n\nGardiyanları öldürmek için [accent]salvo[] gibi daha güçlü taretleri ve \uf835 [accent]grafit[] gibi daha çok hasar veren mermileri kullanın. hint.coreUpgrade = Merkezinizi, [accent]merkezinizin üstüne daha gelişmiş bir merkez[] koyarak geliştirebilirsiniz. \n\n[accent]Parçacık[] olarak adlandırılan fakirhanenizin üstüne [accent]Temel[] olarak adlandırılan merkezinizi koyun. Merkezinizin etrafında hiçbir yapı olmamalıdır. +hint.serpuloCoreZone = Additional cores may be constructed on :core-zone: [accent]Core Zone[] tiles. hint.cannotUpgrade = A [red]:tree:[] icon over a payload unit indicates that its upgraded version is not researched yet.\n\nUnit upgrades must be researched in the [accent]:tree: tech tree[] before they can be produced in reconstructors. hint.presetLaunch = [accent]Donmuş Ormanlar[] gibi [accent]ana sektörlere iniş[] herhangi bir yerden yapılabilir. Yakındaki bir sektörden fırlatma gerektirmez.\n\nBunun gibi [accent]sayı ile isimlendirilmiş[] sektörleri ele geçirmek [accent]isteğe bağlıdır.[]. hint.presetDifficulty = Bu sektör, [scarlet]yüksek tehlike[] barındırıyor.\nBöyle bir sektöre hazırlıksız fırlatış yapmak [accent]tavsiye edilmez[]. @@ -2153,6 +2147,34 @@ gz.zone2 = Buraya inşa edilien her şey otomatik yok edilir! gz.zone3 = Dalga başlamak üzere.\nHazır ol. Dikkat! ... Korkma sönmez bu şafak- gz.finish = Daha fazla taret inşa et, daha fazla maden kaz\nve tüm dalgaları yenerek [accent]sektörü feth et[]. Bol şans, RTOmega. +fungalpass.tutorial1 = Use [accent]units[] to defend buildings and attack the enemy.\nResearch and place a :ground-factory: [accent]ground factory[]. +fungalpass.tutorial2 = Select :dagger: [accent]Dagger[] units in the factory.\nProduce 3 units. + +frontier.tutorial1 = The :additive-reconstructor: [accent]Additive Reconstructor[]\nupgrades tier 1 units to tier 2\nusing :silicon: silicon and :graphite: graphite.\n\n[accent]Research and reconstruct\na []:dagger:[accent] dagger to a []:mace:[accent] mace. +frontier.tutorial2 = Enemy waves send [accent]infinitely[] until all enemy cores are [unlaunched]destroyed. +frontier.tutorial3 = [accent]Attack the enemy base fast to prevent waves from getting too high[]. + +atolls.destroy1 = Destroy the 2 enemy [accent]foundation cores[] first.\n[accent]Gain access to thorium[]. +atolls.mega1 = Enter [accent]command mode[] and select the :mega:[accent]Mega[] units. +atolls.mega2 = Select the \ue87b [accent]Load Units[] command to have Mega units to pick up ground units. +atolls.mega3 = Move the Mega units [accent]above[] ground units to load them in. +atolls.mega4 = [accent]Drop ground units here to attack. +atolls.mega5 = Select the \ue879 [accent]Unload Payload[] command to have Mega units drop their carried units. +atolls.mega6 = Units will be [accent]automatically dropped[] while the \ue879 Unload Payload command is selected. +atolls.mega7 = Mega units [accent]will not[] drop ground units while they are above walls or deep water. +atolls.mega8 = [accent]Drop naval units here to attack.[] +atolls.attack1 = 1: Drop ground units here to attack from this location. +atolls.attack2 = 2: Alternatively, drop naval units here to launch a surprise attack. +atolls.carry1 = Carrying ground units requires :mega:[accent]Mega[] units. +atolls.carry2 = 1: Command Mega units to [accent]move over[] the ground units. +atolls.carry3 = 2: Select the \ue87b [accent]Load Units[] command in order to pick up the ground units with the Mega units. +atolls.carry4 = 3: Command and move the Mega carriers [accent]loaded with units[]. +atolls.carry5 = 4: Select the \ue879 [accent]'Unload Payload'[] command in order for the Mega units to drop the ground units. +atolls.carry6 = These steps can be reviewed [accent]here[]. +atolls.carry7 = Follow these instructions to airdrop more units near the enemy base. +atolls.noairunit = This base is too well-fortified to destroy with air units. +atolls.2strategies = There are two strategies to destroy this base. + onset.mine = Tıklayarak, duvarlardan\uf748 [accent]berillyum[] kaz.\n\n[accent][[WASD] ile hareket et. onset.mine.mobile = Tıklayarak, duvarlardan\uf748 [accent]berillyum[] kaz. onset.research = \ue875 Teknoloji Ağacını aç.\n\uf73e [accent]Türbin Sıkıştırıcı[]'sını aç ve bir bacanın üstüne yerleştir.\nBu [accent]enerji[] üretecktir. @@ -2652,6 +2674,7 @@ laccess.displaywidth = Width of a display block in pixels. laccess.displayheight = Height of a display block in pixels. laccess.buffersize = Number of unprocessed commands in the graphics buffer of a display. laccess.operations = Number of operations performed on the block.\nFor displays, returns the number of drawflush operations. +laccess.maxunits = Maximum units that a team can have.\nCan only be sensed from cores. lcategory.unknown = ??? lcategory.unknown.description = Kategorize edilmemiş talimatlar diff --git a/core/assets/bundles/bundle_uk_UA.properties b/core/assets/bundles/bundle_uk_UA.properties index 48d0670540..9f3c667270 100644 --- a/core/assets/bundles/bundle_uk_UA.properties +++ b/core/assets/bundles/bundle_uk_UA.properties @@ -101,6 +101,7 @@ coreattack = < Ядро перебуває під атакою! > nearpoint = [[ [scarlet]ЗАЛИШТЕ ЗОНУ ВИСАДКИ НЕГАЙНО[] ]\nанігіляція неминуча database = База даних ядра database.button = База даних +database.patched = Modified by data patches. viewfields = View Content Fields savegame = Зберегти гру loadgame = Завантажити гру @@ -885,8 +886,9 @@ sector.navalFortress.name = Морська фортеця sector.polarAerodrome.name = Polar Aerodrome sector.atolls.name = Atolls sector.testingGrounds.name = Testing Grounds -sector.seaPort.name = Sea Port +sector.perilousHarbor.name = Perilous Harbor sector.weatheredChannels.name = Weathered Channels +sector.fallenVessel.name = Fallen Vessel sector.mycelialBastion.name = Mycelial Bastion sector.frontier.name = Frontier sector.sunkenPier.name = Sunken Pier @@ -912,21 +914,6 @@ sector.planetaryTerminal.description = Кінцева мета.\n\nЦя приб sector.coastline.description = На цьому місці виявлено залишки військово-морських одиниць. Відбийте атаки супротивника, захопіть цей сектор та заволодійте технологією. sector.navalFortress.description = Ворог створив базу на віддаленому, природно-укріпленому острові. Знищте цей форпост. Заволодійте їхніми передовими технологіями морських кораблів і дослідіть їх. -#do not translate -sector.facility32m.description = WIP, map submission by Stormride_R -sector.taintedWoods.description = WIP, map submission by Stormride_R -sector.sunkenPier.description = WIP, map submission by Stormride_R -sector.atolls.description = WIP, map submission by Stormride_R -sector.frontier.description = WIP, map submission by Stormride_R -sector.infestedCanyons.description = WIP, map submission by Skeledragon -sector.polarAerodrome.description = WIP, map submission by hhh i 17 -sector.testingGrounds.description = WIP, map submission by dnx2019 -sector.seaPort.description = WIP, map submission by inkognito626 -sector.weatheredChannels.description = WIP, map submission by Skeledragon -sector.mycelialBastion.description = WIP, map submission by Skeledragon -sector.cruxscape.description = WIP, map submission by Stormride_R -sector.geothermalStronghold.description = WIP, map submission by Skeledragon - sector.onset.name = Перший наступ sector.aegis.name = Егіда sector.lake.name = Озеро @@ -945,6 +932,12 @@ sector.crossroads.name = Перехрестя sector.karst.name = Карст sector.origin.name = Джерело +sector.origin.credit = Mechanical Fishe +sector.karst.credit = Mechanical Fishe +sector.caldera-erekir.credit = hhh i 17 +sector.siege.credit = hhh i 17 +sector.ravine.credit = Bepis + sector.onset.description = Зберіть ресурси і дослідіть технології для автоматизації виробництва.\nПочніть атаку.\n sector.aegis.description = Ворог захищений щитами. У цьому секторі виявлено експериментальний модуль зламувача щитів.\nЗнайдіть цю будівлю. Забезпечте її вольфрамовими боєприпасами та знищіть ворожу базу. sector.lake.description = Шлакове озеро в цьому секторі значно обмежує вибір одиниць. Єдиний варіант — одиниця, що може підтримувати себе над землею.\nДослідіть [accent]корабельний виробник[] і виготовте одиницю [accent]Ухиляч[] якомога швидше. @@ -2125,6 +2118,7 @@ hint.waveFire = Башта [accent]хвиля[] з водою буде авто hint.generator = :combustion-generator: [accent]Генератори внутрішнього згорання[] спалюють вугілля і передають енергію прилеглим блокам.\n\nРадіус передачі енергії можна збільшити за допомогою :power-node: [accent]силових вузлів[]. hint.guardian = [accent]Вартові[] одиниці броньовані. Слабкі боєприпаси, як-от [accent]мідь[] чи [accent]свинець[], [scarlet]не є ефективними[].\n\nВикористовуйте башти вищого рангу чи :graphite: [accent]графітові боєприпаси[] для Подвійної башти чи:salvo:Залпу, щоб убити Вартових. hint.coreUpgrade = Ядро можна покращити, якщо [accent]розмістити поверх нього ядро вищого рівня[].\n\nРозмістіть :core-foundation: ядро [accent]«Штаб»[] поверх :core-shard: ядра [accent]«Уламок»[]. Переконайтесь, що поблизу ядер немає перешкод (зайвих блоків). +hint.serpuloCoreZone = Additional cores may be constructed on :core-zone: [accent]Core Zone[] tiles. hint.cannotUpgrade = A [red]:tree:[] icon over a payload unit indicates that its upgraded version is not researched yet.\n\nUnit upgrades must be researched in the [accent]:tree: tech tree[] before they can be produced in reconstructors. hint.presetLaunch = Сірі [accent]сектори зони посадки[], як-от [accent]Крижаний ліс[], можна запустити з будь-якого місця. Вони не вимагають захоплення сусідньої території.\n\n[accent]Нумеровані сектори[], як цей, [accent]необов’язкові[]. hint.presetDifficulty = Цей сектор має [scarlet]високий рівень ворожої загрози[].\nРобити запуск в такі [accent]не рекомендується[] без належних технологій та підготовки. @@ -2153,6 +2147,34 @@ gz.zone2 = Усе, що побудовано в цьому радіусі, зн gz.zone3 = Зараз почнеться хвиля.\nПриготуйется gz.finish = Збудуйте більше башт, видобудьте більше ресурсів \nі захистіться проти всіх хвиль, щоби [accent]захопити сектор[]. +fungalpass.tutorial1 = Use [accent]units[] to defend buildings and attack the enemy.\nResearch and place a :ground-factory: [accent]ground factory[]. +fungalpass.tutorial2 = Select :dagger: [accent]Dagger[] units in the factory.\nProduce 3 units. + +frontier.tutorial1 = The :additive-reconstructor: [accent]Additive Reconstructor[]\nupgrades tier 1 units to tier 2\nusing :silicon: silicon and :graphite: graphite.\n\n[accent]Research and reconstruct\na []:dagger:[accent] dagger to a []:mace:[accent] mace. +frontier.tutorial2 = Enemy waves send [accent]infinitely[] until all enemy cores are [unlaunched]destroyed. +frontier.tutorial3 = [accent]Attack the enemy base fast to prevent waves from getting too high[]. + +atolls.destroy1 = Destroy the 2 enemy [accent]foundation cores[] first.\n[accent]Gain access to thorium[]. +atolls.mega1 = Enter [accent]command mode[] and select the :mega:[accent]Mega[] units. +atolls.mega2 = Select the \ue87b [accent]Load Units[] command to have Mega units to pick up ground units. +atolls.mega3 = Move the Mega units [accent]above[] ground units to load them in. +atolls.mega4 = [accent]Drop ground units here to attack. +atolls.mega5 = Select the \ue879 [accent]Unload Payload[] command to have Mega units drop their carried units. +atolls.mega6 = Units will be [accent]automatically dropped[] while the \ue879 Unload Payload command is selected. +atolls.mega7 = Mega units [accent]will not[] drop ground units while they are above walls or deep water. +atolls.mega8 = [accent]Drop naval units here to attack.[] +atolls.attack1 = 1: Drop ground units here to attack from this location. +atolls.attack2 = 2: Alternatively, drop naval units here to launch a surprise attack. +atolls.carry1 = Carrying ground units requires :mega:[accent]Mega[] units. +atolls.carry2 = 1: Command Mega units to [accent]move over[] the ground units. +atolls.carry3 = 2: Select the \ue87b [accent]Load Units[] command in order to pick up the ground units with the Mega units. +atolls.carry4 = 3: Command and move the Mega carriers [accent]loaded with units[]. +atolls.carry5 = 4: Select the \ue879 [accent]'Unload Payload'[] command in order for the Mega units to drop the ground units. +atolls.carry6 = These steps can be reviewed [accent]here[]. +atolls.carry7 = Follow these instructions to airdrop more units near the enemy base. +atolls.noairunit = This base is too well-fortified to destroy with air units. +atolls.2strategies = There are two strategies to destroy this base. + onset.mine = Натисніть, щоби видобути :beryllium: [accent]берилій[]зі стін.\n\nДля переміщення використовуйте [accent][[WASD]. onset.mine.mobile = Торкніться, щоби видобути :beryllium: [accent]берилій[]зі стін. onset.research = Відкрийте :tree: дерево технологій.\nДослідіть, а потім розмістіть :turbine-condenser: [accent]Турбінний кондесатор[] на джерелі (отворі).\nЦе буде генерувати [accent]енергію[]. @@ -2652,6 +2674,7 @@ laccess.displaywidth = Width of a display block in pixels. laccess.displayheight = Height of a display block in pixels. laccess.buffersize = Number of unprocessed commands in the graphics buffer of a display. laccess.operations = Number of operations performed on the block.\nFor displays, returns the number of drawflush operations. +laccess.maxunits = Maximum units that a team can have.\nCan only be sensed from cores. lcategory.unknown = Невідома категорія lcategory.unknown.description = Команди без категорії. diff --git a/core/assets/bundles/bundle_vi.properties b/core/assets/bundles/bundle_vi.properties index 373b689961..49c7c2e7af 100644 --- a/core/assets/bundles/bundle_vi.properties +++ b/core/assets/bundles/bundle_vi.properties @@ -101,6 +101,7 @@ coreattack = < Lõi đang bị tấn công! > nearpoint = [[ [scarlet]RỜI KHỎI ĐIỂM ĐÁP NGAY LẬP TỨC[] ]\nsự hủy diệt sắp xảy ra database = Cơ sở dữ liệu cốt lõi database.button = Cơ sở dữ liệu +database.patched = Modified by data patches. viewfields = Xem Các Trường Nội Dung savegame = Lưu trò chơi loadgame = Tải lại màn chơi @@ -880,13 +881,14 @@ sector.facility32m.name = Facility 32 M sector.taintedWoods.name = Tainted Woods sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Planetary Launch Terminal -sector.coastline.name = Coastline +sector.coastline.name = Humid Coastline sector.navalFortress.name = Naval Fortress sector.polarAerodrome.name = Polar Aerodrome sector.atolls.name = Atolls sector.testingGrounds.name = Testing Grounds -sector.seaPort.name = Sea Port +sector.perilousHarbor.name = Perilous Harbor sector.weatheredChannels.name = Weathered Channels +sector.fallenVessel.name = Fallen Vessel sector.mycelialBastion.name = Mycelial Bastion sector.frontier.name = Frontier sector.sunkenPier.name = Sunken Pier @@ -912,21 +914,6 @@ sector.planetaryTerminal.description = Mục tiêu cuối cùng.\n\nCăn cứ ve sector.coastline.description = Phát hiện tàn dư công nghệ của các đơn vị hải quân tại địa điểm này. Đẩy lùi các cuộc tấn công của kẻ địch, chiếm phân khu này, và lấy công nghệ. sector.navalFortress.description = Kẻ địch đã thiết lập một căn cứ từ xa, trên đảo tự nhiên. Phá hủy tiền đồn này. Chiếm công nghệ chế tạo đơn vị hải quân tiên tiến của địch và nghiên cứu nó. -#do not translate -sector.facility32m.description = WIP, map submission by Stormride_R -sector.taintedWoods.description = WIP, map submission by Stormride_R -sector.sunkenPier.description = WIP, map submission by Stormride_R -sector.atolls.description = WIP, map submission by Stormride_R -sector.frontier.description = WIP, map submission by Stormride_R -sector.infestedCanyons.description = WIP, map submission by Skeledragon -sector.polarAerodrome.description = WIP, map submission by hhh i 17 -sector.testingGrounds.description = WIP, map submission by dnx2019 -sector.seaPort.description = WIP, map submission by inkognito626 -sector.weatheredChannels.description = WIP, map submission by Skeledragon -sector.mycelialBastion.description = WIP, map submission by Skeledragon -sector.cruxscape.description = WIP, map submission by Stormride_R -sector.geothermalStronghold.description = WIP, map submission by Skeledragon - sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Lake @@ -945,6 +932,12 @@ sector.crossroads.name = Crossroads sector.karst.name = Karst sector.origin.name = Origin +sector.origin.credit = Mechanical Fishe +sector.karst.credit = Mechanical Fishe +sector.caldera-erekir.credit = hhh i 17 +sector.siege.credit = hhh i 17 +sector.ravine.credit = Bepis + sector.onset.description = Bắt đầu hành trình chinh phục Erekir. Thu thập tài nguyên, sản xuất đơn vị, và bắt đầu nghiên cứu công nghệ. sector.aegis.description = Phân khu này chứa các kho lưu trữ của tungsten.\nNghiên cứu [accent]Máy khoan động lực[] để khai thác tài nguyên này, và phá hủy căn cứ của địch ở khu vực. sector.lake.description = Hồ xỉ nóng chảy của khu vực này giới hạn rất nhiều các loại đơn vị. Một loại đơn vị lướt được là sự lựa chọn duy nhất.\nNghiên cứu [accent]Máy chế tạo phi thuyền[] và sản xuất một đơn vị [accent]elude[] nhanh nhất có thể. @@ -1070,7 +1063,7 @@ stat.ammo = Đạn stat.shieldhealth = Độ bền khiên stat.cooldowntime = Thời gian hồi phục stat.regenerationrate = Tốc Độ Hồi Phục -stat.activationtime = Activation Time +stat.activationtime = Thời Gian Kích Hoạt stat.explosiveness = Gây nổ stat.basedeflectchance = Tỷ lệ phản đạn stat.lightningchance = Tỷ lệ phóng điện @@ -1181,8 +1174,8 @@ bar.input = Đầu vào bar.output = Đầu ra bar.strength = [stat]{0}[lightgray]x sức mạnh bar.regenerationrate = [stat]{0}/sec[lightgray] tốc độ hồi phục -bar.activationtimer = Activates in {0} -bar.activated = Activated +bar.activationtimer = Kích hoạt trong {0} +bar.activated = Đã kích hoạt units.processorcontrol = [lightgray]Điều khiển bởi bộ xử lý @@ -1191,9 +1184,9 @@ bullet.splashdamage = [stat]{0}[lightgray] sát thương diện rộng ~[stat] { bullet.incendiary = [stat]gây cháy bullet.homing = [stat]truy đuổi bullet.armorpierce = [stat]xuyên giáp -bullet.armorweakness = [red]{0}%[lightgray] armor weakness -bullet.armorpiercing = [stat]{0}%[lightgray] armor piercing -bullet.antiarmor = [stat]{0}x[lightgray] anti-armor +bullet.armorweakness = [red]{0}%[lightgray] giảm giáp +bullet.armorpiercing = [stat]{0}%[lightgray] xuyên giáp +bullet.antiarmor = [stat]{0}x[lightgray] kháng giáp bullet.maxdamagefraction = [stat]{0}%[lightgray] giới hạn sát thương bullet.suppression = [stat]{0}[lightgray] giây ngăn sửa chữa ~ [stat]{1}[lightgray] ô bullet.interval = [stat]{0}/giây[lightgray] đạn ngắt quãng: @@ -1447,8 +1440,8 @@ rules.hidebannedblocks = Ẩn Các Khối Bị Cấm rules.infiniteresources = Tài Nguyên Vô Hạn rules.fillitems = Lấp Đầy Lõi Bởi Vật Phẩm rules.onlydepositcore = Chỉ Cho Phép Đưa Tài Nguyên Vào Lõi -rules.coreunloaders = Allow Core Unloaders -rules.coreunloaders.info = When enabled, Serpulo unloaders can take items from the core.\nDoes not affect Erekir unloaders. +rules.coreunloaders = Cho Phép Điểm Dỡ Hàng Từ Lõi +rules.coreunloaders.info = Khi bật, điểm dỡ hàng của Serpulo có thể lấy vật phẩm từ lõi.\nKhông ảnh hưởng đến điểm dỡ hàng của Erekir. rules.derelictrepair = Cho Phép Sửa Khối Bỏ Hoang rules.reactorexplosions = Nổ Nò Phản Ứng rules.coreincinerates = Hủy Vật Phẩm Khi Lõi Đầy @@ -1479,10 +1472,10 @@ rules.cleanupdeadteams = Dọn Sạch Công Trình Của Đội Bị Đánh Bạ rules.corecapture = Chiếm Lõi Khi Phá Hủy rules.polygoncoreprotection = Bảo Vệ Lõi Kiểu Đa Giác rules.placerangecheck = Kiểm Tra Phạm Vi Xây Dựng -rules.protectcores = Protect Cores -rules.protectcores.info = When disabled, the core no-build radius won't affect this team.\nPlayers won't be assigned to unprotected teams. -rules.checkplacement = Check Placement -rules.checkplacement.info = When disabled, buildings of this team are ignored in placement range checks. +rules.protectcores = Bảo Vệ Lõi +rules.protectcores.info = Khi tắt, bán cấm xây từ lõi sẽ không ảnh hưởng đến đội này.\nNgười chơi sẽ không được gán vào những đội không được bảo vệ. +rules.checkplacement = Kiểm Tra Nơi Đặt +rules.checkplacement.info = Khi tắt, công trình của đội này được phớt lờ kiểm tra tầm cho đặt. rules.enemyCheat = Tài Nguyên Kẻ Địch Vô Hạn rules.blockhealthmultiplier = Hệ Số Độ Bền Khối rules.blockdamagemultiplier = Hệ Số Sát Thương Của Khối @@ -1492,8 +1485,8 @@ rules.unithealthmultiplier = Hệ Số Độ Bền Của Đơn Vị rules.unitdamagemultiplier = Hệ Số Sát Thương Của Đơn Vị rules.unitcrashdamagemultiplier = Hệ Số Sát Thương Của Đơn Vị Khi Bị Bắn Rơi rules.unitminespeedmultiplier = Hệ Số Tốc Độ Khai Khoáng Đơn Vị -rules.logicunitbuild = Logic Unit Building -rules.logicunitdeconstruct = Logic Unit Deconstruction +rules.logicunitbuild = Logic Đơn Vị Xây Dựng +rules.logicunitdeconstruct = Logic Đơn Vị Phá Dỡ rules.solarmultiplier = Hệ Số Năng Lượng Mặt Trời rules.unitcapvariable = Lõi Tăng Giới Hạn Đơn Vị rules.unitpayloadsexplode = Khối Hàng Mang Theo Phát Nổ Cùng Đơn Vị @@ -1541,27 +1534,27 @@ rules.randomwaveai.info = Làm các đơn vị xuất hiện trong các lượt rules.placerangecheck.info = Ngăn chặn người chơi khỏi việc đặt bất kỳ thứ gì gần công trình kẻ địch. Khi cố đặt một tháp súng, phạm vi sẽ bị tăng lên, để tháp súng không thể bắn tới kẻ địch. rules.onlydepositcore.info = Ngăn chặn các đơn vị khỏi việc thả vật phẩm vào bất kỳ công trình nào ngoài lõi. -database-category.item = Items -database-category.liquid = Fluids -database-category.unit = Units -database-category.block = Blocks -database-category.status = Status Effects -database-category.sector = Sectors -database-category.team = Factions +database-category.item = Vật phẩm +database-category.liquid = Chất lỏng +database-category.unit = Đơn vị +database-category.block = Khối +database-category.status = Hiệu ứng trạng thái +database-category.sector = Phân khu +database-category.team = Phe -database-tag.turret = Turret -database-tag.production = Production -database-tag.distribution = Distribution -database-tag.liquid = Liquid -database-tag.power = Power -database-tag.defense = Defense -database-tag.crafting = Crafting -database-tag.units = Units -database-tag.effect = Utility +database-tag.turret = Trụ súng +database-tag.production = Sản xuất +database-tag.distribution = Phân phối +database-tag.liquid = Chất lỏng +database-tag.power = Năng lượng +database-tag.defense = Phòng thủ +database-tag.crafting = Chế tạo +database-tag.units = Đơn vị +database-tag.effect = Tiện ích database-tag.logic = Logic -database-tag.unit-air = Air -database-tag.unit-naval = Naval -database-tag.unit-ground = Ground +database-tag.unit-air = Không quân +database-tag.unit-naval = Thủy quân +database-tag.unit-ground = Lục quân wallore = (Tường) @@ -2125,6 +2118,7 @@ hint.waveFire = Tháp súng [accent]Wave[] có nước làm đạn sẽ tự đ hint.generator = :combustion-generator: [accent]Máy phát điện đốt cháy[] đốt than và truyền năng lượng cho các khối liền kề.\n\nPhạm vi truyền tải năng lượng có thể được mở rộng với :power-node: [accent]Chốt điện[]. hint.guardian = [accent]Trùm[] được bọc giáp. Sử dụng loại đạn yếu chẳng hạn như [accent]Đồng[] và [accent]Chì[] là [scarlet]không hiệu quả[].\n\nSử dụng tháp súng tiên tiến hơn hoặc sử dụng :graphite: [accent]Than chì[] làm đạn :duo:Duo/:salvo:Salvo đạn dược để hạ gục Trùm. hint.coreUpgrade = Các lõi có thể được nâng cấp bằng cách [accent]đặt lõi cấp cao hơn trên chúng[].\n\nĐặt một lõi :core-foundation: [accent]Trụ sở[] trên lõi :core-shard: [accent]Cơ sở[]. Đảm bảo không có vật cản gần đó. +hint.serpuloCoreZone = Additional cores may be constructed on :core-zone: [accent]Core Zone[] tiles. hint.cannotUpgrade = Một biểu tượng [red]:tree:[] phía trên một gói hàng đơn vị thể hiện rằng phiên bản nâng cấp chưa được nghiên cứu.\n\nĐơn vị nâng cấp phải được nghiên cứu trong [accent]:tree: cây công nghệ[] trước khi chúng được sản xuất trong các máy tái thiết. hint.presetLaunch = [accent]Khu vực đáp[] xám, như [accent]Frozen Forest[], có thể được phóng đến từ bất cứ đâu. Nó không yêu cầu chiếm các vùng đất lân cận.\n\n[accent]Các phân khu được đánh số[], chẳng hạn như cái này, là [accent]không bắt buộc[]. hint.presetDifficulty = Phân khu này có [scarlet]mối đe dọa thù địch cao[].\nPhóng đến phân khu như vậy [accent]không được khuyến khích[] nếu không có công nghệ và chuẩn bị phù hợp. @@ -2153,6 +2147,34 @@ gz.zone2 = Bất kỳ thứ gì được xây dựng trong bán kính này sẽ gz.zone3 = Một đợt sẽ bắt đầu ngay bây giờ.\nHãy chuẩn bị. gz.finish = Đặt thêm các tháp súng, khai thác thêm nguyên liệu,\nvà vượt qua tất cả các đợt để [accent]chiếm phân khu[]. +fungalpass.tutorial1 = Use [accent]units[] to defend buildings and attack the enemy.\nResearch and place a :ground-factory: [accent]ground factory[]. +fungalpass.tutorial2 = Select :dagger: [accent]Dagger[] units in the factory.\nProduce 3 units. + +frontier.tutorial1 = The :additive-reconstructor: [accent]Additive Reconstructor[]\nupgrades tier 1 units to tier 2\nusing :silicon: silicon and :graphite: graphite.\n\n[accent]Research and reconstruct\na []:dagger:[accent] dagger to a []:mace:[accent] mace. +frontier.tutorial2 = Enemy waves send [accent]infinitely[] until all enemy cores are [unlaunched]destroyed. +frontier.tutorial3 = [accent]Attack the enemy base fast to prevent waves from getting too high[]. + +atolls.destroy1 = Destroy the 2 enemy [accent]foundation cores[] first.\n[accent]Gain access to thorium[]. +atolls.mega1 = Enter [accent]command mode[] and select the :mega:[accent]Mega[] units. +atolls.mega2 = Select the \ue87b [accent]Load Units[] command to have Mega units to pick up ground units. +atolls.mega3 = Move the Mega units [accent]above[] ground units to load them in. +atolls.mega4 = [accent]Drop ground units here to attack. +atolls.mega5 = Select the \ue879 [accent]Unload Payload[] command to have Mega units drop their carried units. +atolls.mega6 = Units will be [accent]automatically dropped[] while the \ue879 Unload Payload command is selected. +atolls.mega7 = Mega units [accent]will not[] drop ground units while they are above walls or deep water. +atolls.mega8 = [accent]Drop naval units here to attack.[] +atolls.attack1 = 1: Drop ground units here to attack from this location. +atolls.attack2 = 2: Alternatively, drop naval units here to launch a surprise attack. +atolls.carry1 = Carrying ground units requires :mega:[accent]Mega[] units. +atolls.carry2 = 1: Command Mega units to [accent]move over[] the ground units. +atolls.carry3 = 2: Select the \ue87b [accent]Load Units[] command in order to pick up the ground units with the Mega units. +atolls.carry4 = 3: Command and move the Mega carriers [accent]loaded with units[]. +atolls.carry5 = 4: Select the \ue879 [accent]'Unload Payload'[] command in order for the Mega units to drop the ground units. +atolls.carry6 = These steps can be reviewed [accent]here[]. +atolls.carry7 = Follow these instructions to airdrop more units near the enemy base. +atolls.noairunit = This base is too well-fortified to destroy with air units. +atolls.2strategies = There are two strategies to destroy this base. + onset.mine = Nhấn để khai thác :beryllium: [accent]beryl[] từ tường.\n\nSử dụng [accent][[WASD] để di chuyển. onset.mine.mobile = Nhấp để khai thác :beryllium: [accent]beryl[] từ tường. onset.research = Mở :tree: cây công nghệ.\nNghiên cứu, sau đó đặt :turbine-condenser: [accent]tua-bin điện tụ nước[] trên lỗ hơi nước.\nĐiều này sẽ tạo ra [accent]điện[]. @@ -2511,7 +2533,7 @@ unit.risso.description = Bắn chùm tên lửa và đạn vào các mục tiêu unit.minke.description = Bắn chùm đạn và đạn tiêu chuẩn vào các mục tiêu kẻ địch trên mặt đất. unit.bryde.description = Bắn đạn tầm xa và tên lửa vào các mục tiêu kẻ địch. unit.sei.description = Bắn chùm tên lửa và đạn xuyên giáp vào các mục tiêu kẻ địch. -unit.omura.description = Bắn đạn điện trường xuyên giáp tầm xa vào các mục tiêu kẻ địch. Tạo ra các đơn vị Flare. +unit.omura.description = Bắn đạn điện trường xuyên giáp tầm xa vào các mục tiêu kẻ địch. unit.alpha.description = Bảo vệ lõi Cơ sở khỏi kẻ địch. Có thể xây dựng. unit.beta.description = Bảo vệ lõi Trụ sở khỏi kẻ địch. Có thể xây dựng. unit.gamma.description = Bảo vệ lõi Trung tâm khỏi kẻ địch. Có thể xây dựng. @@ -2652,6 +2674,7 @@ laccess.displaywidth = Độ rộng của một khối hiển thị tính bằng laccess.displayheight = Độ cao của một khối hiển thị tính bằng pixel. laccess.buffersize = Với khối thông điệp: Độ dài của nội dung.\nVới khối hiển thị: Số lượng chỉ lệnh đồ họa chưa thực hiện. laccess.operations = Số thao tác thực hiện trên khối.\nVới khối hiển thị, trả về số thao tác drawflush. +laccess.maxunits = Maximum units that a team can have.\nCan only be sensed from cores. lcategory.unknown = Không xác định lcategory.unknown.description = Chỉ lệnh không được phân loại. @@ -2678,7 +2701,7 @@ graphicstype.linerect = Vẽ đường viền một hình chữ nhật. graphicstype.poly = Tô một đa giác đều. graphicstype.linepoly = Vẽ đường viền một đa giác đều. graphicstype.triangle = Tô một hình tam giác. -graphicstype.image = Vẽ hình ảnh một số nội dung.\nVí dụ: [accent]@router[] hoặc [accent]@dagger[]. +graphicstype.image = Vẽ hình ảnh một số nội dung hoặc sao chép màn hình hiển thị khác.\nVí dụ: nội dung [accent]@router[], [accent]@dagger[] hoặc một màn hình [accent]display1[]. graphicstype.print = Vẽ văn bản từ bộ đệm in.\nChỉ được phép dùng các kí tự ASCII.\nLàm sạch bộ đệm. lenum.always = Luôn đúng. diff --git a/core/assets/bundles/bundle_zh_CN.properties b/core/assets/bundles/bundle_zh_CN.properties index a987a73a90..03c0a3379f 100644 --- a/core/assets/bundles/bundle_zh_CN.properties +++ b/core/assets/bundles/bundle_zh_CN.properties @@ -101,6 +101,7 @@ coreattack = < 核心正在遭受攻击! > nearpoint = [[ [scarlet]立即离开敌人出生点[] ]\n摧毁在即 database = 核心数据库 database.button = 数据库 +database.patched = Modified by data patches. viewfields = View Content Fields savegame = 保存游戏 loadgame = 载入游戏 @@ -885,8 +886,9 @@ sector.navalFortress.name = 海军要塞 sector.polarAerodrome.name = 极地空港 sector.atolls.name = 环礁群岛 sector.testingGrounds.name = 实验禁区 -sector.seaPort.name = 边海港口 +sector.perilousHarbor.name = Perilous Harbor sector.weatheredChannels.name = 风化海峡 +sector.fallenVessel.name = Fallen Vessel sector.mycelialBastion.name = 菌丝堡垒 sector.frontier.name = 边陲哨站 sector.sunkenPier.name = 沉没码头 @@ -912,21 +914,6 @@ sector.planetaryTerminal.description = 最终目标。\n\n这个海岸基地有 sector.coastline.description = 在这个地点发现了海军单位科技的遗迹。击退敌人的进攻,夺取这个区域,并研究科技。 sector.navalFortress.description = 敌人在一个偏远且自然防御的岛屿上建立了基地。摧毁这个前哨,获得高级海军科技并进行研究。 -#do not translate -sector.facility32m.description = WIP,map submission by Stormride_R -sector.taintedWoods.description = WIP,map submission by Stormride_R -sector.sunkenPier.description = WIP, map submission by Stormride_R -sector.atolls.description = WIP,map submission by Stormride_R -sector.frontier.description = WIP,map submission by Stormride_R -sector.infestedCanyons.description = WIP,map submission by Skeledragon -sector.polarAerodrome.description = WIP,map submission by hhh i 17 -sector.testingGrounds.description = WIP,map submission by dnx2019 -sector.seaPort.description = WIP,map submission by inkognito626 -sector.weatheredChannels.description = WIP,map submission by Skeledragon -sector.mycelialBastion.description = WIP,map submission by Skeledragon -sector.cruxscape.description = WIP, map submission by Stormride_R -sector.geothermalStronghold.description = WIP, map submission by Skeledragon - sector.onset.name = 始发地区 sector.aegis.name = 庇护前哨 sector.lake.name = 岩浆湖 @@ -945,6 +932,12 @@ sector.crossroads.name = 十字路口 sector.karst.name = 岩溶洞穴 sector.origin.name = 起源 +sector.origin.credit = Mechanical Fishe +sector.karst.credit = Mechanical Fishe +sector.caldera-erekir.credit = hhh i 17 +sector.siege.credit = hhh i 17 +sector.ravine.credit = Bepis + sector.onset.description = 收集资源,研究科技以自动化生产。\n开始进攻。 sector.aegis.description = 这个区块有钨矿床分布。\n研究[accent]冲击钻头[]挖掘钨,并摧毁这里的敌方基地。 sector.lake.description = 这个区块的岩浆湖限制了大部分单位的移动,悬浮单位是唯一选择。\n尽快研究[accent]飞船制造厂[]并生产一个[accent]挣脱[]。 @@ -2125,6 +2118,7 @@ hint.waveFire = [accent]波浪[]炮塔以水作弹药时,会自动扑灭附近 hint.generator = :combustion-generator: [accent]火力发电机[]燃煤发电,并将电力输送至相邻建筑。\n\n用 :power-node: [accent]电力节点[]可以扩展电力输送范围。 hint.guardian = [accent]Boss[]单位装甲厚重。[accent]铜[]和[accent]铅[]这类较弱的子弹对其[scarlet]作用不佳[]。\n\n使用高级别炮塔或使用 :graphite: [accent]石墨[]作为 :duo: 双管炮及 :salvo: 齐射炮的弹药来消灭 Boss。 hint.coreUpgrade = 核心可以通过[accent]在上面覆盖更高等级的核心[]进行升级。\n\n在 :core-shard: [accent]初代核心[]上放置一个 :core-foundation: [accent]次代核心[]。确保周围没有障碍物。 +hint.serpuloCoreZone = Additional cores may be constructed on :core-zone: [accent]Core Zone[] tiles. hint.cannotUpgrade = 如果你看到运输单位上方有一个 [red]:tree:[] 图标,说明它的升级版本尚未在科技树中解锁。\n\n必须先在 [accent]:tree: 科技树[] 中完成对应单位的升级研究,才能在重构工厂中生产它。 hint.presetLaunch = 灰色的[accent]着陆区块[],如[accent]冰冻森林[],从其他任何地方发射都可以到达,不需要先占领邻近的区块。\n\n[accent]数字编号的区块[],比如这个,可以[accent]选择性[]占领。 hint.presetDifficulty = 这个区块受敌人[scarlet]威胁程度很高[]。\n解锁适当的科技,并做好充分准备,否则[accent]不建议[]向这里发射。 @@ -2153,6 +2147,34 @@ gz.zone2 = 波次开始时,范围内的所有建筑都会被摧毁。 gz.zone3 = 波次即将开始。\n做好准备。 gz.finish = 建造更多炮塔,挖掘更多资源,\n击退所有波次以[accent]占领区块[]。 +fungalpass.tutorial1 = Use [accent]units[] to defend buildings and attack the enemy.\nResearch and place a :ground-factory: [accent]ground factory[]. +fungalpass.tutorial2 = Select :dagger: [accent]Dagger[] units in the factory.\nProduce 3 units. + +frontier.tutorial1 = The :additive-reconstructor: [accent]Additive Reconstructor[]\nupgrades tier 1 units to tier 2\nusing :silicon: silicon and :graphite: graphite.\n\n[accent]Research and reconstruct\na []:dagger:[accent] dagger to a []:mace:[accent] mace. +frontier.tutorial2 = Enemy waves send [accent]infinitely[] until all enemy cores are [unlaunched]destroyed. +frontier.tutorial3 = [accent]Attack the enemy base fast to prevent waves from getting too high[]. + +atolls.destroy1 = Destroy the 2 enemy [accent]foundation cores[] first.\n[accent]Gain access to thorium[]. +atolls.mega1 = Enter [accent]command mode[] and select the :mega:[accent]Mega[] units. +atolls.mega2 = Select the \ue87b [accent]Load Units[] command to have Mega units to pick up ground units. +atolls.mega3 = Move the Mega units [accent]above[] ground units to load them in. +atolls.mega4 = [accent]Drop ground units here to attack. +atolls.mega5 = Select the \ue879 [accent]Unload Payload[] command to have Mega units drop their carried units. +atolls.mega6 = Units will be [accent]automatically dropped[] while the \ue879 Unload Payload command is selected. +atolls.mega7 = Mega units [accent]will not[] drop ground units while they are above walls or deep water. +atolls.mega8 = [accent]Drop naval units here to attack.[] +atolls.attack1 = 1: Drop ground units here to attack from this location. +atolls.attack2 = 2: Alternatively, drop naval units here to launch a surprise attack. +atolls.carry1 = Carrying ground units requires :mega:[accent]Mega[] units. +atolls.carry2 = 1: Command Mega units to [accent]move over[] the ground units. +atolls.carry3 = 2: Select the \ue87b [accent]Load Units[] command in order to pick up the ground units with the Mega units. +atolls.carry4 = 3: Command and move the Mega carriers [accent]loaded with units[]. +atolls.carry5 = 4: Select the \ue879 [accent]'Unload Payload'[] command in order for the Mega units to drop the ground units. +atolls.carry6 = These steps can be reviewed [accent]here[]. +atolls.carry7 = Follow these instructions to airdrop more units near the enemy base. +atolls.noairunit = This base is too well-fortified to destroy with air units. +atolls.2strategies = There are two strategies to destroy this base. + onset.mine = 点击墙壁上的 :beryllium: [accent]铍矿[]以手动开采。\n\n使用[accent][[WASD]移动。 onset.mine.mobile = 点击墙壁上的 :beryllium: [accent]铍矿[]以手动开采。 onset.research = 打开 :tree: 科技树。\n研究 :turbine-condenser: [accent]涡轮冷凝器[],并放置在喷口上。\n它可以产生[accent]电力[]。 @@ -2652,6 +2674,7 @@ laccess.displaywidth = 显示屏的宽度(以像素为单位)。 laccess.displayheight = 显示屏的高度(以像素为单位)。 laccess.buffersize = 显示器图形缓冲区中未处理的命令数。 laccess.operations = 方块执行操作的次数。\n对于显示屏,返回 drawflush 调用次数。 +laccess.maxunits = Maximum units that a team can have.\nCan only be sensed from cores. lcategory.unknown = 未知 lcategory.unknown.description = 未分类的指令 diff --git a/core/assets/bundles/bundle_zh_TW.properties b/core/assets/bundles/bundle_zh_TW.properties index 13dce3f0cf..3c57d24652 100644 --- a/core/assets/bundles/bundle_zh_TW.properties +++ b/core/assets/bundles/bundle_zh_TW.properties @@ -101,6 +101,7 @@ coreattack = 〈核心正在受到攻擊!〉 nearpoint = 【[scarlet]立即離開空降區[]】\n湮滅即將來臨 database = 核心資料庫 database.button = 資料庫 +database.patched = Modified by data patches. viewfields = View Content Fields savegame = 儲存遊戲 loadgame = 載入遊戲 @@ -885,8 +886,9 @@ sector.navalFortress.name = 海上要塞 sector.polarAerodrome.name = Polar Aerodrome sector.atolls.name = Atolls sector.testingGrounds.name = Testing Grounds -sector.seaPort.name = Sea Port +sector.perilousHarbor.name = Perilous Harbor sector.weatheredChannels.name = Weathered Channels +sector.fallenVessel.name = Fallen Vessel sector.mycelialBastion.name = Mycelial Bastion sector.frontier.name = Frontier sector.sunkenPier.name = Sunken Pier @@ -912,21 +914,6 @@ sector.planetaryTerminal.description = 最終目標。\n\n這麼濱海基地具 sector.coastline.description = 偵測到海軍單位科技的遺跡。擊退敵人的進攻,佔領地區,並獲得科技。 sector.navalFortress.description = 敵人已在這個有天然防禦屏障的偏遠島嶼設置了一座海軍基地。摧毀它。獲得海上科技的進階科技。 -#do not translate -sector.facility32m.description = WIP, map submission by Stormride_R -sector.taintedWoods.description = WIP, map submission by Stormride_R -sector.sunkenPier.description = WIP, map submission by Stormride_R -sector.atolls.description = WIP, map submission by Stormride_R -sector.frontier.description = WIP, map submission by Stormride_R -sector.infestedCanyons.description = WIP, map submission by Skeledragon -sector.polarAerodrome.description = WIP, map submission by hhh i 17 -sector.testingGrounds.description = WIP, map submission by dnx2019 -sector.seaPort.description = WIP, map submission by inkognito626 -sector.weatheredChannels.description = WIP, map submission by Skeledragon -sector.mycelialBastion.description = WIP, map submission by Skeledragon -sector.cruxscape.description = WIP, map submission by Stormride_R -sector.geothermalStronghold.description = WIP, map submission by Skeledragon - sector.onset.name = 啟程之處 sector.aegis.name = 神盾領域 sector.lake.name = 岩漿之湖 @@ -945,6 +932,12 @@ sector.crossroads.name = 十字路口 sector.karst.name = 岩溶洞窟 sector.origin.name = 終局之戰 +sector.origin.credit = Mechanical Fishe +sector.karst.credit = Mechanical Fishe +sector.caldera-erekir.credit = hhh i 17 +sector.siege.credit = hhh i 17 +sector.ravine.credit = Bepis + sector.onset.description = 新手教學地區。尚無作戰目標,請等候後續指示。 sector.aegis.description = 敵人受護盾保護。一個在實驗階段的護盾破壞器坐落在此區域,找到並提供鎢原料啟用它。摧毀敵方基地。 sector.lake.description = 本地區的熔渣湖嚴重限縮普通單位的機動性。懸浮艇是唯一選擇。\n研究 [accent]飛船兵工廠[] 並盡早生產 [accent]掙脫[] 單位。 @@ -2125,6 +2118,7 @@ hint.waveFire = 以[accent]水[]裝填的[accent]波浪[]會自動撲滅附近 hint.generator = \uf879 [accent]燃燒發電機[]消耗煤炭產生電力給相鄰的方塊。\n\n使用\uf87f[accent]能量節點[]增加電力涵蓋範圍。 hint.guardian = [accent]頭目[]擁有厚實的裝甲。較弱的彈藥如[accent]銅[]和[accent]鉛[]並[scarlet]沒有效果[].\n\n使用更高等的砲臺或以\uf835 [accent]石墨[]配合\uf861雙砲、\uf859齊射砲摧毀頭目。 hint.coreUpgrade = 核心可以透過在上面[accent]覆蓋一個更高等級的核心[]來升級。\n\n放置 \uf868 [accent]核心:基地[] 到 \uf869 [accent]核心:碎片[] 上. 確保沒有其他障礙物。 +hint.serpuloCoreZone = Additional cores may be constructed on :core-zone: [accent]Core Zone[] tiles. hint.cannotUpgrade = A [red]:tree:[] icon over a payload unit indicates that its upgraded version is not researched yet.\n\nUnit upgrades must be researched in the [accent]:tree: tech tree[] before they can be produced in reconstructors. hint.presetLaunch = 灰色的[accent]降落地區[],例如[accent]冰凍森林[],可由任何地區發射。這類地區無須由相鄰地區進攻。\n\n[accent]數字編號地區[]則是一般的區域,可自由佔領,不影響戰役的完成。 hint.presetDifficulty = 此地區為[scarlet]高危險等級[]區域。\n[accent]不建議[]在準備好科技和資源以前發射至此區域。 @@ -2153,6 +2147,34 @@ gz.zone2 = 波次開始時,範圍內的所有建築都會被摧毀。 gz.zone3 = 波次即將開始。\n做好準備。 gz.finish = 建造更多砲塔,挖掘更多資源,\n擊退所有波次以[accent]佔領區域[]。 +fungalpass.tutorial1 = Use [accent]units[] to defend buildings and attack the enemy.\nResearch and place a :ground-factory: [accent]ground factory[]. +fungalpass.tutorial2 = Select :dagger: [accent]Dagger[] units in the factory.\nProduce 3 units. + +frontier.tutorial1 = The :additive-reconstructor: [accent]Additive Reconstructor[]\nupgrades tier 1 units to tier 2\nusing :silicon: silicon and :graphite: graphite.\n\n[accent]Research and reconstruct\na []:dagger:[accent] dagger to a []:mace:[accent] mace. +frontier.tutorial2 = Enemy waves send [accent]infinitely[] until all enemy cores are [unlaunched]destroyed. +frontier.tutorial3 = [accent]Attack the enemy base fast to prevent waves from getting too high[]. + +atolls.destroy1 = Destroy the 2 enemy [accent]foundation cores[] first.\n[accent]Gain access to thorium[]. +atolls.mega1 = Enter [accent]command mode[] and select the :mega:[accent]Mega[] units. +atolls.mega2 = Select the \ue87b [accent]Load Units[] command to have Mega units to pick up ground units. +atolls.mega3 = Move the Mega units [accent]above[] ground units to load them in. +atolls.mega4 = [accent]Drop ground units here to attack. +atolls.mega5 = Select the \ue879 [accent]Unload Payload[] command to have Mega units drop their carried units. +atolls.mega6 = Units will be [accent]automatically dropped[] while the \ue879 Unload Payload command is selected. +atolls.mega7 = Mega units [accent]will not[] drop ground units while they are above walls or deep water. +atolls.mega8 = [accent]Drop naval units here to attack.[] +atolls.attack1 = 1: Drop ground units here to attack from this location. +atolls.attack2 = 2: Alternatively, drop naval units here to launch a surprise attack. +atolls.carry1 = Carrying ground units requires :mega:[accent]Mega[] units. +atolls.carry2 = 1: Command Mega units to [accent]move over[] the ground units. +atolls.carry3 = 2: Select the \ue87b [accent]Load Units[] command in order to pick up the ground units with the Mega units. +atolls.carry4 = 3: Command and move the Mega carriers [accent]loaded with units[]. +atolls.carry5 = 4: Select the \ue879 [accent]'Unload Payload'[] command in order for the Mega units to drop the ground units. +atolls.carry6 = These steps can be reviewed [accent]here[]. +atolls.carry7 = Follow these instructions to airdrop more units near the enemy base. +atolls.noairunit = This base is too well-fortified to destroy with air units. +atolls.2strategies = There are two strategies to destroy this base. + onset.mine = 點擊牆上的\uf748[accent]鈹礦[]進行手動開採。\n\n使用[accent][[WASD]移動。 onset.mine.mobile = 點擊牆上的\uf748[accent]鈹礦[]進行手動開採。 onset.research = 打開\ue875科技樹。\n研究\uf73e[accent]渦輪冷凝器[],然後將其放置在噴口上。\n這將產生[accent]電力[]。 @@ -2652,6 +2674,7 @@ laccess.displaywidth = Width of a display block in pixels. laccess.displayheight = Height of a display block in pixels. laccess.buffersize = Number of unprocessed commands in the graphics buffer of a display. laccess.operations = Number of operations performed on the block.\nFor displays, returns the number of drawflush operations. +laccess.maxunits = Maximum units that a team can have.\nCan only be sensed from cores. lcategory.unknown = 未知 lcategory.unknown.description = Uncategorized instructions. diff --git a/core/assets/bundles/global.properties b/core/assets/bundles/global.properties new file mode 100644 index 0000000000..deedd40271 --- /dev/null +++ b/core/assets/bundles/global.properties @@ -0,0 +1,45 @@ +# This file contains special global strings that don't need to be translated. +# The contents of this bundle are merged into Core.bundle, and otherwise act as normal translated strings. + +sector.frozenForest.credit = Elixias Adrys +sector.facility32m.credit = Stormride_R +sector.taintedWoods.credit = Stormride_R +sector.sunkenPier.credit = Stormride_R +sector.atolls.credit = Stormride_R +sector.frontier.credit = Stormride_R +sector.infestedCanyons.credit = Skeledragon +sector.polarAerodrome.credit = hhh i 17 +sector.testingGrounds.credit = Stormride_R +sector.perilousHarbor.credit = inkognito626 +sector.weatheredChannels.credit = Skeledragon +sector.fallenVessel.credit = wpx, Stormride_R, Nahan +sector.mycelialBastion.credit = Skeledragon +sector.planetaryTerminal.credit = Skeledragon +sector.cruxscape.credit = Stormride_R +sector.geothermalStronghold.credit = Skeledragon +sector.overgrowth.credit = Skeledragon +sector.stainedMountains.credit = Pitchblende +sector.ruinousShores.credit = Pitchblende +sector.nuclearComplex.credit = Pitchblende +sector.coastline.credit = Stormride_R +sector.tarFields.credit = Dexapnow +sector.saltFlats.credit = Dexapnow +sector.windsweptIslands.credit = Stormride_R, Anuke +sector.navalFortress.credit = blackberry2093 +sector.desolateRift.credit = hhh i 17 + +#TODO: remove, create a proper description, move into bundle.properties +sector.facility32m.description = WIP +sector.taintedWoods.description = WIP +sector.sunkenPier.description = WIP +sector.atolls.description = WIP +sector.frontier.description = WIP +sector.infestedCanyons.description = WIP +sector.polarAerodrome.description = WIP +sector.testingGrounds.description = WIP +sector.perilousHarbor.description = WIP +sector.weatheredChannels.description = WIP +sector.fallenVessel.description = WIP +sector.mycelialBastion.description = WIP +sector.cruxscape.description = WIP +sector.geothermalStronghold.description = WIP \ No newline at end of file diff --git a/core/assets/contributors b/core/assets/contributors index 0b6b9cbed0..3906467e94 100644 --- a/core/assets/contributors +++ b/core/assets/contributors @@ -187,3 +187,5 @@ Iniquit DSFdsfWxp Someone's Shadow buj +Agzam4 +ItsKirby69 \ No newline at end of file diff --git a/core/assets/fonts/font.woff b/core/assets/fonts/font.woff index 4a1327f383..75f8ae819d 100644 Binary files a/core/assets/fonts/font.woff and b/core/assets/fonts/font.woff differ diff --git a/core/assets/icons/icons.properties b/core/assets/icons/icons.properties index a9ed6ad37a..6f053f02d2 100755 --- a/core/assets/icons/icons.properties +++ b/core/assets/icons/icons.properties @@ -622,3 +622,4 @@ 63060=metal-wall-2|block-metal-wall-2-ui 63059=metal-tiles-13|block-metal-tiles-13-ui 63058=metal-wall-3|block-metal-wall-3-ui +63057=ore-wall-graphite|block-ore-wall-graphite-ui diff --git a/core/assets/maps/atolls.msav b/core/assets/maps/atolls.msav deleted file mode 100644 index 7179c010c5..0000000000 Binary files a/core/assets/maps/atolls.msav and /dev/null differ diff --git a/core/assets/maps/coastline.msav b/core/assets/maps/coastline.msav deleted file mode 100644 index 63f46969a1..0000000000 Binary files a/core/assets/maps/coastline.msav and /dev/null differ diff --git a/core/assets/maps/archipelago.msav b/core/assets/maps/default/archipelago.msav similarity index 100% rename from core/assets/maps/archipelago.msav rename to core/assets/maps/default/archipelago.msav diff --git a/core/assets/maps/caldera.msav b/core/assets/maps/default/caldera.msav similarity index 100% rename from core/assets/maps/caldera.msav rename to core/assets/maps/default/caldera.msav diff --git a/core/assets/maps/canyon.msav b/core/assets/maps/default/canyon.msav similarity index 100% rename from core/assets/maps/canyon.msav rename to core/assets/maps/default/canyon.msav diff --git a/core/assets/maps/debrisField.msav b/core/assets/maps/default/debrisField.msav similarity index 100% rename from core/assets/maps/debrisField.msav rename to core/assets/maps/default/debrisField.msav diff --git a/core/assets/maps/domain.msav b/core/assets/maps/default/domain.msav similarity index 100% rename from core/assets/maps/domain.msav rename to core/assets/maps/default/domain.msav diff --git a/core/assets/maps/fork.msav b/core/assets/maps/default/fork.msav similarity index 100% rename from core/assets/maps/fork.msav rename to core/assets/maps/default/fork.msav diff --git a/core/assets/maps/fortress.msav b/core/assets/maps/default/fortress.msav similarity index 100% rename from core/assets/maps/fortress.msav rename to core/assets/maps/default/fortress.msav diff --git a/core/assets/maps/glacier.msav b/core/assets/maps/default/glacier.msav similarity index 100% rename from core/assets/maps/glacier.msav rename to core/assets/maps/default/glacier.msav diff --git a/core/assets/maps/islands.msav b/core/assets/maps/default/islands.msav similarity index 100% rename from core/assets/maps/islands.msav rename to core/assets/maps/default/islands.msav diff --git a/core/assets/maps/labyrinth.msav b/core/assets/maps/default/labyrinth.msav similarity index 100% rename from core/assets/maps/labyrinth.msav rename to core/assets/maps/default/labyrinth.msav diff --git a/core/assets/maps/maze.msav b/core/assets/maps/default/maze.msav similarity index 100% rename from core/assets/maps/maze.msav rename to core/assets/maps/default/maze.msav diff --git a/core/assets/maps/moltenLake.msav b/core/assets/maps/default/moltenLake.msav similarity index 100% rename from core/assets/maps/moltenLake.msav rename to core/assets/maps/default/moltenLake.msav diff --git a/core/assets/maps/mudFlats.msav b/core/assets/maps/default/mudFlats.msav similarity index 100% rename from core/assets/maps/mudFlats.msav rename to core/assets/maps/default/mudFlats.msav diff --git a/core/assets/maps/passage.msav b/core/assets/maps/default/passage.msav similarity index 100% rename from core/assets/maps/passage.msav rename to core/assets/maps/default/passage.msav diff --git a/core/assets/maps/shattered.msav b/core/assets/maps/default/shattered.msav similarity index 100% rename from core/assets/maps/shattered.msav rename to core/assets/maps/default/shattered.msav diff --git a/core/assets/maps/tendrils.msav b/core/assets/maps/default/tendrils.msav similarity index 100% rename from core/assets/maps/tendrils.msav rename to core/assets/maps/default/tendrils.msav diff --git a/core/assets/maps/triad.msav b/core/assets/maps/default/triad.msav similarity index 100% rename from core/assets/maps/triad.msav rename to core/assets/maps/default/triad.msav diff --git a/core/assets/maps/veins.msav b/core/assets/maps/default/veins.msav similarity index 100% rename from core/assets/maps/veins.msav rename to core/assets/maps/default/veins.msav diff --git a/core/assets/maps/wasteland.msav b/core/assets/maps/default/wasteland.msav similarity index 100% rename from core/assets/maps/wasteland.msav rename to core/assets/maps/default/wasteland.msav diff --git a/core/assets/maps/aegis.msav b/core/assets/maps/erekir/aegis.msav similarity index 100% rename from core/assets/maps/aegis.msav rename to core/assets/maps/erekir/aegis.msav diff --git a/core/assets/maps/atlas.msav b/core/assets/maps/erekir/atlas.msav similarity index 100% rename from core/assets/maps/atlas.msav rename to core/assets/maps/erekir/atlas.msav diff --git a/core/assets/maps/basin.msav b/core/assets/maps/erekir/basin.msav similarity index 100% rename from core/assets/maps/basin.msav rename to core/assets/maps/erekir/basin.msav diff --git a/core/assets/maps/caldera-erekir.msav b/core/assets/maps/erekir/caldera-erekir.msav similarity index 100% rename from core/assets/maps/caldera-erekir.msav rename to core/assets/maps/erekir/caldera-erekir.msav diff --git a/core/assets/maps/crevice.msav b/core/assets/maps/erekir/crevice.msav similarity index 100% rename from core/assets/maps/crevice.msav rename to core/assets/maps/erekir/crevice.msav diff --git a/core/assets/maps/crossroads.msav b/core/assets/maps/erekir/crossroads.msav similarity index 100% rename from core/assets/maps/crossroads.msav rename to core/assets/maps/erekir/crossroads.msav diff --git a/core/assets/maps/intersect.msav b/core/assets/maps/erekir/intersect.msav similarity index 100% rename from core/assets/maps/intersect.msav rename to core/assets/maps/erekir/intersect.msav diff --git a/core/assets/maps/karst.msav b/core/assets/maps/erekir/karst.msav similarity index 100% rename from core/assets/maps/karst.msav rename to core/assets/maps/erekir/karst.msav diff --git a/core/assets/maps/lake.msav b/core/assets/maps/erekir/lake.msav similarity index 100% rename from core/assets/maps/lake.msav rename to core/assets/maps/erekir/lake.msav diff --git a/core/assets/maps/marsh.msav b/core/assets/maps/erekir/marsh.msav similarity index 100% rename from core/assets/maps/marsh.msav rename to core/assets/maps/erekir/marsh.msav diff --git a/core/assets/maps/onset.msav b/core/assets/maps/erekir/onset.msav similarity index 100% rename from core/assets/maps/onset.msav rename to core/assets/maps/erekir/onset.msav diff --git a/core/assets/maps/origin.msav b/core/assets/maps/erekir/origin.msav similarity index 100% rename from core/assets/maps/origin.msav rename to core/assets/maps/erekir/origin.msav diff --git a/core/assets/maps/peaks.msav b/core/assets/maps/erekir/peaks.msav similarity index 100% rename from core/assets/maps/peaks.msav rename to core/assets/maps/erekir/peaks.msav diff --git a/core/assets/maps/ravine.msav b/core/assets/maps/erekir/ravine.msav similarity index 100% rename from core/assets/maps/ravine.msav rename to core/assets/maps/erekir/ravine.msav diff --git a/core/assets/maps/siege.msav b/core/assets/maps/erekir/siege.msav similarity index 100% rename from core/assets/maps/siege.msav rename to core/assets/maps/erekir/siege.msav diff --git a/core/assets/maps/split.msav b/core/assets/maps/erekir/split.msav similarity index 100% rename from core/assets/maps/split.msav rename to core/assets/maps/erekir/split.msav diff --git a/core/assets/maps/stronghold.msav b/core/assets/maps/erekir/stronghold.msav similarity index 100% rename from core/assets/maps/stronghold.msav rename to core/assets/maps/erekir/stronghold.msav diff --git a/core/assets/maps/extractionOutpost.msav b/core/assets/maps/extractionOutpost.msav deleted file mode 100644 index 34be21a803..0000000000 Binary files a/core/assets/maps/extractionOutpost.msav and /dev/null differ diff --git a/core/assets/maps/frontier.msav b/core/assets/maps/frontier.msav deleted file mode 100644 index 0e9fa445fa..0000000000 Binary files a/core/assets/maps/frontier.msav and /dev/null differ diff --git a/core/assets/maps/fungalPass.msav b/core/assets/maps/fungalPass.msav deleted file mode 100644 index a8f41b5fb4..0000000000 Binary files a/core/assets/maps/fungalPass.msav and /dev/null differ diff --git a/core/assets/maps/polarAerodrome.msav b/core/assets/maps/polarAerodrome.msav deleted file mode 100644 index b960bbd922..0000000000 Binary files a/core/assets/maps/polarAerodrome.msav and /dev/null differ diff --git a/core/assets/maps/ruinousShores.msav b/core/assets/maps/ruinousShores.msav deleted file mode 100644 index 5b1a0dd1ec..0000000000 Binary files a/core/assets/maps/ruinousShores.msav and /dev/null differ diff --git a/core/assets/maps/serpulo/atolls.msav b/core/assets/maps/serpulo/atolls.msav new file mode 100644 index 0000000000..3057bcfe1d Binary files /dev/null and b/core/assets/maps/serpulo/atolls.msav differ diff --git a/core/assets/maps/biomassFacility.msav b/core/assets/maps/serpulo/biomassFacility.msav similarity index 100% rename from core/assets/maps/biomassFacility.msav rename to core/assets/maps/serpulo/biomassFacility.msav diff --git a/core/assets/maps/serpulo/coastline.msav b/core/assets/maps/serpulo/coastline.msav new file mode 100644 index 0000000000..8b15ed77b4 Binary files /dev/null and b/core/assets/maps/serpulo/coastline.msav differ diff --git a/core/assets/maps/craters.msav b/core/assets/maps/serpulo/craters.msav similarity index 100% rename from core/assets/maps/craters.msav rename to core/assets/maps/serpulo/craters.msav diff --git a/core/assets/maps/cruxscape.msav b/core/assets/maps/serpulo/cruxscape.msav similarity index 100% rename from core/assets/maps/cruxscape.msav rename to core/assets/maps/serpulo/cruxscape.msav diff --git a/core/assets/maps/desolateRift.msav b/core/assets/maps/serpulo/desolateRift.msav similarity index 100% rename from core/assets/maps/desolateRift.msav rename to core/assets/maps/serpulo/desolateRift.msav diff --git a/core/assets/maps/serpulo/extractionOutpost.msav b/core/assets/maps/serpulo/extractionOutpost.msav new file mode 100644 index 0000000000..3a26bbadc6 Binary files /dev/null and b/core/assets/maps/serpulo/extractionOutpost.msav differ diff --git a/core/assets/maps/facility32m.msav b/core/assets/maps/serpulo/facility32m.msav similarity index 100% rename from core/assets/maps/facility32m.msav rename to core/assets/maps/serpulo/facility32m.msav diff --git a/core/assets/maps/serpulo/fallenVessel.msav b/core/assets/maps/serpulo/fallenVessel.msav new file mode 100644 index 0000000000..72fdbcb824 Binary files /dev/null and b/core/assets/maps/serpulo/fallenVessel.msav differ diff --git a/core/assets/maps/serpulo/frontier.msav b/core/assets/maps/serpulo/frontier.msav new file mode 100644 index 0000000000..02fa96e3e9 Binary files /dev/null and b/core/assets/maps/serpulo/frontier.msav differ diff --git a/core/assets/maps/frozenForest.msav b/core/assets/maps/serpulo/frozenForest.msav similarity index 100% rename from core/assets/maps/frozenForest.msav rename to core/assets/maps/serpulo/frozenForest.msav diff --git a/core/assets/maps/serpulo/fungalPass.msav b/core/assets/maps/serpulo/fungalPass.msav new file mode 100644 index 0000000000..3c64deb06d Binary files /dev/null and b/core/assets/maps/serpulo/fungalPass.msav differ diff --git a/core/assets/maps/geothermalStronghold.msav b/core/assets/maps/serpulo/geothermalStronghold.msav similarity index 100% rename from core/assets/maps/geothermalStronghold.msav rename to core/assets/maps/serpulo/geothermalStronghold.msav diff --git a/core/assets/maps/groundZero.msav b/core/assets/maps/serpulo/groundZero.msav similarity index 100% rename from core/assets/maps/groundZero.msav rename to core/assets/maps/serpulo/groundZero.msav diff --git a/core/assets/maps/hidden-serpulo/0.msav b/core/assets/maps/serpulo/hidden/0.msav similarity index 100% rename from core/assets/maps/hidden-serpulo/0.msav rename to core/assets/maps/serpulo/hidden/0.msav diff --git a/core/assets/maps/hidden-serpulo/103.msav b/core/assets/maps/serpulo/hidden/103.msav similarity index 100% rename from core/assets/maps/hidden-serpulo/103.msav rename to core/assets/maps/serpulo/hidden/103.msav diff --git a/core/assets/maps/hidden-serpulo/111.msav b/core/assets/maps/serpulo/hidden/111.msav similarity index 100% rename from core/assets/maps/hidden-serpulo/111.msav rename to core/assets/maps/serpulo/hidden/111.msav diff --git a/core/assets/maps/hidden-serpulo/116.msav b/core/assets/maps/serpulo/hidden/116.msav similarity index 100% rename from core/assets/maps/hidden-serpulo/116.msav rename to core/assets/maps/serpulo/hidden/116.msav diff --git a/core/assets/maps/hidden-serpulo/127.msav b/core/assets/maps/serpulo/hidden/127.msav similarity index 100% rename from core/assets/maps/hidden-serpulo/127.msav rename to core/assets/maps/serpulo/hidden/127.msav diff --git a/core/assets/maps/hidden-serpulo/13.msav b/core/assets/maps/serpulo/hidden/13.msav similarity index 100% rename from core/assets/maps/hidden-serpulo/13.msav rename to core/assets/maps/serpulo/hidden/13.msav diff --git a/core/assets/maps/hidden-serpulo/133.msav b/core/assets/maps/serpulo/hidden/133.msav similarity index 100% rename from core/assets/maps/hidden-serpulo/133.msav rename to core/assets/maps/serpulo/hidden/133.msav diff --git a/core/assets/maps/hidden-serpulo/16.msav b/core/assets/maps/serpulo/hidden/16.msav similarity index 100% rename from core/assets/maps/hidden-serpulo/16.msav rename to core/assets/maps/serpulo/hidden/16.msav diff --git a/core/assets/maps/hidden-serpulo/161.msav b/core/assets/maps/serpulo/hidden/161.msav similarity index 100% rename from core/assets/maps/hidden-serpulo/161.msav rename to core/assets/maps/serpulo/hidden/161.msav diff --git a/core/assets/maps/hidden-serpulo/162.msav b/core/assets/maps/serpulo/hidden/162.msav similarity index 100% rename from core/assets/maps/hidden-serpulo/162.msav rename to core/assets/maps/serpulo/hidden/162.msav diff --git a/core/assets/maps/hidden-serpulo/176.msav b/core/assets/maps/serpulo/hidden/176.msav similarity index 100% rename from core/assets/maps/hidden-serpulo/176.msav rename to core/assets/maps/serpulo/hidden/176.msav diff --git a/core/assets/maps/hidden-serpulo/180.msav b/core/assets/maps/serpulo/hidden/180.msav similarity index 100% rename from core/assets/maps/hidden-serpulo/180.msav rename to core/assets/maps/serpulo/hidden/180.msav diff --git a/core/assets/maps/hidden-serpulo/185.msav b/core/assets/maps/serpulo/hidden/185.msav similarity index 100% rename from core/assets/maps/hidden-serpulo/185.msav rename to core/assets/maps/serpulo/hidden/185.msav diff --git a/core/assets/maps/hidden-serpulo/19.msav b/core/assets/maps/serpulo/hidden/19.msav similarity index 100% rename from core/assets/maps/hidden-serpulo/19.msav rename to core/assets/maps/serpulo/hidden/19.msav diff --git a/core/assets/maps/hidden-serpulo/191.msav b/core/assets/maps/serpulo/hidden/191.msav similarity index 100% rename from core/assets/maps/hidden-serpulo/191.msav rename to core/assets/maps/serpulo/hidden/191.msav diff --git a/core/assets/maps/hidden-serpulo/192.msav b/core/assets/maps/serpulo/hidden/192.msav similarity index 100% rename from core/assets/maps/hidden-serpulo/192.msav rename to core/assets/maps/serpulo/hidden/192.msav diff --git a/core/assets/maps/hidden-serpulo/197.msav b/core/assets/maps/serpulo/hidden/197.msav similarity index 100% rename from core/assets/maps/hidden-serpulo/197.msav rename to core/assets/maps/serpulo/hidden/197.msav diff --git a/core/assets/maps/hidden-serpulo/20.msav b/core/assets/maps/serpulo/hidden/20.msav similarity index 100% rename from core/assets/maps/hidden-serpulo/20.msav rename to core/assets/maps/serpulo/hidden/20.msav diff --git a/core/assets/maps/hidden-serpulo/200.msav b/core/assets/maps/serpulo/hidden/200.msav similarity index 100% rename from core/assets/maps/hidden-serpulo/200.msav rename to core/assets/maps/serpulo/hidden/200.msav diff --git a/core/assets/maps/testingGrounds.msav b/core/assets/maps/serpulo/hidden/202.msav similarity index 100% rename from core/assets/maps/testingGrounds.msav rename to core/assets/maps/serpulo/hidden/202.msav diff --git a/core/assets/maps/hidden-serpulo/207.msav b/core/assets/maps/serpulo/hidden/207.msav similarity index 100% rename from core/assets/maps/hidden-serpulo/207.msav rename to core/assets/maps/serpulo/hidden/207.msav diff --git a/core/assets/maps/hidden-serpulo/225.msav b/core/assets/maps/serpulo/hidden/225.msav similarity index 100% rename from core/assets/maps/hidden-serpulo/225.msav rename to core/assets/maps/serpulo/hidden/225.msav diff --git a/core/assets/maps/hidden-serpulo/230.msav b/core/assets/maps/serpulo/hidden/230.msav similarity index 100% rename from core/assets/maps/hidden-serpulo/230.msav rename to core/assets/maps/serpulo/hidden/230.msav diff --git a/core/assets/maps/hidden-serpulo/24.msav b/core/assets/maps/serpulo/hidden/24.msav similarity index 100% rename from core/assets/maps/hidden-serpulo/24.msav rename to core/assets/maps/serpulo/hidden/24.msav diff --git a/core/assets/maps/serpulo/hidden/240.msav b/core/assets/maps/serpulo/hidden/240.msav new file mode 100644 index 0000000000..cc01624503 Binary files /dev/null and b/core/assets/maps/serpulo/hidden/240.msav differ diff --git a/core/assets/maps/hidden-serpulo/248.msav b/core/assets/maps/serpulo/hidden/248.msav similarity index 100% rename from core/assets/maps/hidden-serpulo/248.msav rename to core/assets/maps/serpulo/hidden/248.msav diff --git a/core/assets/maps/hidden-serpulo/254.msav b/core/assets/maps/serpulo/hidden/254.msav similarity index 100% rename from core/assets/maps/hidden-serpulo/254.msav rename to core/assets/maps/serpulo/hidden/254.msav diff --git a/core/assets/maps/hidden-serpulo/259.msav b/core/assets/maps/serpulo/hidden/259.msav similarity index 100% rename from core/assets/maps/hidden-serpulo/259.msav rename to core/assets/maps/serpulo/hidden/259.msav diff --git a/core/assets/maps/hidden-serpulo/263.msav b/core/assets/maps/serpulo/hidden/263.msav similarity index 100% rename from core/assets/maps/hidden-serpulo/263.msav rename to core/assets/maps/serpulo/hidden/263.msav diff --git a/core/assets/maps/hidden-serpulo/265.msav b/core/assets/maps/serpulo/hidden/265.msav similarity index 100% rename from core/assets/maps/hidden-serpulo/265.msav rename to core/assets/maps/serpulo/hidden/265.msav diff --git a/core/assets/maps/hidden-serpulo/30.msav b/core/assets/maps/serpulo/hidden/30.msav similarity index 100% rename from core/assets/maps/hidden-serpulo/30.msav rename to core/assets/maps/serpulo/hidden/30.msav diff --git a/core/assets/maps/hidden-serpulo/47.msav b/core/assets/maps/serpulo/hidden/47.msav similarity index 100% rename from core/assets/maps/hidden-serpulo/47.msav rename to core/assets/maps/serpulo/hidden/47.msav diff --git a/core/assets/maps/hidden-serpulo/55.msav b/core/assets/maps/serpulo/hidden/55.msav similarity index 100% rename from core/assets/maps/hidden-serpulo/55.msav rename to core/assets/maps/serpulo/hidden/55.msav diff --git a/core/assets/maps/hidden-serpulo/6.msav b/core/assets/maps/serpulo/hidden/6.msav similarity index 100% rename from core/assets/maps/hidden-serpulo/6.msav rename to core/assets/maps/serpulo/hidden/6.msav diff --git a/core/assets/maps/hidden-serpulo/66.msav b/core/assets/maps/serpulo/hidden/66.msav similarity index 100% rename from core/assets/maps/hidden-serpulo/66.msav rename to core/assets/maps/serpulo/hidden/66.msav diff --git a/core/assets/maps/hidden-serpulo/67.msav b/core/assets/maps/serpulo/hidden/67.msav similarity index 100% rename from core/assets/maps/hidden-serpulo/67.msav rename to core/assets/maps/serpulo/hidden/67.msav diff --git a/core/assets/maps/hidden-serpulo/69.msav b/core/assets/maps/serpulo/hidden/69.msav similarity index 100% rename from core/assets/maps/hidden-serpulo/69.msav rename to core/assets/maps/serpulo/hidden/69.msav diff --git a/core/assets/maps/hidden-serpulo/76.msav b/core/assets/maps/serpulo/hidden/76.msav similarity index 100% rename from core/assets/maps/hidden-serpulo/76.msav rename to core/assets/maps/serpulo/hidden/76.msav diff --git a/core/assets/maps/hidden-serpulo/92.msav b/core/assets/maps/serpulo/hidden/92.msav similarity index 100% rename from core/assets/maps/hidden-serpulo/92.msav rename to core/assets/maps/serpulo/hidden/92.msav diff --git a/core/assets/maps/hidden-serpulo/94.msav b/core/assets/maps/serpulo/hidden/94.msav similarity index 100% rename from core/assets/maps/hidden-serpulo/94.msav rename to core/assets/maps/serpulo/hidden/94.msav diff --git a/core/assets/maps/impact0078.msav b/core/assets/maps/serpulo/impact0078.msav similarity index 100% rename from core/assets/maps/impact0078.msav rename to core/assets/maps/serpulo/impact0078.msav diff --git a/core/assets/maps/infestedCanyons.msav b/core/assets/maps/serpulo/infestedCanyons.msav similarity index 100% rename from core/assets/maps/infestedCanyons.msav rename to core/assets/maps/serpulo/infestedCanyons.msav diff --git a/core/assets/maps/mycelialBastion.msav b/core/assets/maps/serpulo/mycelialBastion.msav similarity index 100% rename from core/assets/maps/mycelialBastion.msav rename to core/assets/maps/serpulo/mycelialBastion.msav diff --git a/core/assets/maps/navalFortress.msav b/core/assets/maps/serpulo/navalFortress.msav similarity index 100% rename from core/assets/maps/navalFortress.msav rename to core/assets/maps/serpulo/navalFortress.msav diff --git a/core/assets/maps/nuclearComplex.msav b/core/assets/maps/serpulo/nuclearComplex.msav similarity index 100% rename from core/assets/maps/nuclearComplex.msav rename to core/assets/maps/serpulo/nuclearComplex.msav diff --git a/core/assets/maps/overgrowth.msav b/core/assets/maps/serpulo/overgrowth.msav similarity index 100% rename from core/assets/maps/overgrowth.msav rename to core/assets/maps/serpulo/overgrowth.msav diff --git a/core/assets/maps/seaPort.msav b/core/assets/maps/serpulo/perilousHarbor.msav similarity index 100% rename from core/assets/maps/seaPort.msav rename to core/assets/maps/serpulo/perilousHarbor.msav diff --git a/core/assets/maps/planetaryTerminal.msav b/core/assets/maps/serpulo/planetaryTerminal.msav similarity index 100% rename from core/assets/maps/planetaryTerminal.msav rename to core/assets/maps/serpulo/planetaryTerminal.msav diff --git a/core/assets/maps/serpulo/ruinousShores.msav b/core/assets/maps/serpulo/ruinousShores.msav new file mode 100644 index 0000000000..a53e010bd7 Binary files /dev/null and b/core/assets/maps/serpulo/ruinousShores.msav differ diff --git a/core/assets/maps/saltFlats.msav b/core/assets/maps/serpulo/saltFlats.msav similarity index 100% rename from core/assets/maps/saltFlats.msav rename to core/assets/maps/serpulo/saltFlats.msav diff --git a/core/assets/maps/stainedMountains.msav b/core/assets/maps/serpulo/stainedMountains.msav similarity index 100% rename from core/assets/maps/stainedMountains.msav rename to core/assets/maps/serpulo/stainedMountains.msav diff --git a/core/assets/maps/serpulo/sunkenPier.msav b/core/assets/maps/serpulo/sunkenPier.msav new file mode 100644 index 0000000000..6a7c10b29f Binary files /dev/null and b/core/assets/maps/serpulo/sunkenPier.msav differ diff --git a/core/assets/maps/taintedWoods.msav b/core/assets/maps/serpulo/taintedWoods.msav similarity index 100% rename from core/assets/maps/taintedWoods.msav rename to core/assets/maps/serpulo/taintedWoods.msav diff --git a/core/assets/maps/tarFields.msav b/core/assets/maps/serpulo/tarFields.msav similarity index 100% rename from core/assets/maps/tarFields.msav rename to core/assets/maps/serpulo/tarFields.msav diff --git a/core/assets/maps/serpulo/testingGrounds.msav b/core/assets/maps/serpulo/testingGrounds.msav new file mode 100644 index 0000000000..40b8bb97ac Binary files /dev/null and b/core/assets/maps/serpulo/testingGrounds.msav differ diff --git a/core/assets/maps/weatheredChannels.msav b/core/assets/maps/serpulo/weatheredChannels.msav similarity index 100% rename from core/assets/maps/weatheredChannels.msav rename to core/assets/maps/serpulo/weatheredChannels.msav diff --git a/core/assets/maps/windsweptIslands.msav b/core/assets/maps/serpulo/windsweptIslands.msav similarity index 100% rename from core/assets/maps/windsweptIslands.msav rename to core/assets/maps/serpulo/windsweptIslands.msav diff --git a/core/assets/maps/sunkenPier.msav b/core/assets/maps/sunkenPier.msav deleted file mode 100644 index 7f7322526f..0000000000 Binary files a/core/assets/maps/sunkenPier.msav and /dev/null differ diff --git a/core/assets/planets/serpulo.json b/core/assets/planets/serpulo.json index d4c2f578a8..c542fb83c6 100644 --- a/core/assets/planets/serpulo.json +++ b/core/assets/planets/serpulo.json @@ -1 +1 @@ -{presets:{windsweptIslands:97,stainedMountains:223,weatheredChannels:166,craters:219,extractionOutpost:213,coastline:164,navalFortress:165,frontier:86,sunkenPier:173,groundZero:170,mycelialBastion:143,facility32m:65,atolls:75,overgrowth:142,testingGrounds:169,frozenForest:64,saltFlats:98,taintedWoods:145,infestedCanyons:85,desolateRift:271,nuclearComplex:228,ruinousShores:41,planetaryTerminal:217,impact0078:266,seaPort:214,geothermalStronghold:264,cruxscape:54,fungalPass:221,tarFields:99,biomassFacility:23},attackSectors:[0,6,13,16,19,20,24,27,30,47,55,66,67,69,76,92,94,103,111,116,127,133,138,150,157,161,162,176,180,185,191,192,197,200,204,207,225,230,237,242,243,244,245,246,247,248,251,254,259,263,265]} \ No newline at end of file +{presets:{windsweptIslands:97,stainedMountains:223,weatheredChannels:166,craters:219,extractionOutpost:213,coastline:164,navalFortress:165,frontier:86,sunkenPier:173,groundZero:170,mycelialBastion:143,facility32m:65,atolls:75,overgrowth:142,testingGrounds:169,frozenForest:64,saltFlats:98,taintedWoods:145,infestedCanyons:85,desolateRift:271,nuclearComplex:228,ruinousShores:41,planetaryTerminal:217,impact0078:266,perilousHarbor:214,fallenVessel:95,fungalPass:221,tarFields:99,biomassFacility:23},attackSectors:[0,6,13,16,19,20,24,27,30,47,55,66,67,69,76,92,94,103,111,116,127,133,138,150,157,161,162,176,180,185,191,192,197,200,204,207,225,230,237,240,242,243,244,245,246,247,248,251,254,259,263,265]} diff --git a/core/assets/sounds/explosions/blockExplode1.ogg b/core/assets/sounds/explosions/blockExplode1.ogg index 76b84efca2..d703daf39d 100644 Binary files a/core/assets/sounds/explosions/blockExplode1.ogg and b/core/assets/sounds/explosions/blockExplode1.ogg differ diff --git a/core/assets/sounds/explosions/blockExplode1Alt.ogg b/core/assets/sounds/explosions/blockExplode1Alt.ogg index 832834a6cc..3a2a3ecc24 100644 Binary files a/core/assets/sounds/explosions/blockExplode1Alt.ogg and b/core/assets/sounds/explosions/blockExplode1Alt.ogg differ diff --git a/core/assets/sounds/explosions/blockExplode2Alt.ogg b/core/assets/sounds/explosions/blockExplode2Alt.ogg index 530d71678a..034f378791 100644 Binary files a/core/assets/sounds/explosions/blockExplode2Alt.ogg and b/core/assets/sounds/explosions/blockExplode2Alt.ogg differ diff --git a/core/assets/sounds/explosions/blockExplode3.ogg b/core/assets/sounds/explosions/blockExplode3.ogg index 124d66b5eb..af6535e494 100644 Binary files a/core/assets/sounds/explosions/blockExplode3.ogg and b/core/assets/sounds/explosions/blockExplode3.ogg differ diff --git a/core/assets/sounds/loops/loopBuild.ogg b/core/assets/sounds/loops/loopBuild.ogg index 1718d3637d..ecd3619b5a 100644 Binary files a/core/assets/sounds/loops/loopBuild.ogg and b/core/assets/sounds/loops/loopBuild.ogg differ diff --git a/core/assets/sounds/ui/uiFavorite.ogg b/core/assets/sounds/ui/uiFavorite.ogg new file mode 100644 index 0000000000..14736e09e3 Binary files /dev/null and b/core/assets/sounds/ui/uiFavorite.ogg differ diff --git a/core/assets/sounds/ui/waveSpawn.ogg b/core/assets/sounds/ui/waveSpawn.ogg index 5b69169a8c..5b507ab40a 100644 Binary files a/core/assets/sounds/ui/waveSpawn.ogg and b/core/assets/sounds/ui/waveSpawn.ogg differ diff --git a/core/src/mindustry/Vars.java b/core/src/mindustry/Vars.java index 61f108e074..2063cbacf7 100644 --- a/core/src/mindustry/Vars.java +++ b/core/src/mindustry/Vars.java @@ -9,6 +9,7 @@ import arc.scene.ui.layout.*; import arc.struct.*; import arc.util.*; import arc.util.Log.*; +import arc.util.io.*; import mindustry.ai.*; import mindustry.async.*; import mindustry.core.*; @@ -536,5 +537,9 @@ public class Vars implements Loadable{ } } } + + StringMap globalBundle = new StringMap(); + PropertiesUtils.load(globalBundle, files.internal("bundles/global.properties").reader("UTF-8")); + bundle.getProperties().putAll(globalBundle); } } diff --git a/core/src/mindustry/ai/types/CommandAI.java b/core/src/mindustry/ai/types/CommandAI.java index c0b52edf8a..8753df6de8 100644 --- a/core/src/mindustry/ai/types/CommandAI.java +++ b/core/src/mindustry/ai/types/CommandAI.java @@ -274,7 +274,7 @@ public class CommandAI extends AIController{ if( (hasStance(UnitStance.patrol) && !hasStance(UnitStance.pursueTarget) && target != null && unit.within(target, unit.type.range - 2f) && !unit.type.circleTarget) || (command == UnitCommand.enterPayloadCommand && unit.within(targetPos, 4f) || (targetBuild != null && unit.within(targetBuild, targetBuild.block.size * tilesize/2f * 0.9f))) || - (command == UnitCommand.loopPayloadCommand && unit.within(targetPos, 10f)) + (command == UnitCommand.loopPayloadCommand && unit.within(vecMovePos, 10f)) ){ move = false; } @@ -343,6 +343,10 @@ public class CommandAI extends AIController{ vecOut.set(vecMovePos); } + if(command == UnitCommand.loopPayloadCommand){ + alwaysArrive = true; + } + if(move){ if(unit.type.circleTarget && attackTarget != null){ target = attackTarget; diff --git a/core/src/mindustry/ai/types/FlyingAI.java b/core/src/mindustry/ai/types/FlyingAI.java index 3122a56951..4a1400e598 100644 --- a/core/src/mindustry/ai/types/FlyingAI.java +++ b/core/src/mindustry/ai/types/FlyingAI.java @@ -2,7 +2,6 @@ package mindustry.ai.types; import arc.math.*; import mindustry.entities.units.*; -import mindustry.game.*; import mindustry.gen.*; import mindustry.world.meta.*; @@ -31,30 +30,6 @@ public class FlyingAI extends AIController{ } } - @Override - public Teamc targetFlag(float x, float y, BlockFlag flag, boolean enemy){ - if(state.rules.randomWaveAI){ - if(unit.team == Team.derelict) return null; - var list = enemy ? indexer.getEnemy(unit.team, flag) : indexer.getFlagged(unit.team, flag); - if(list.isEmpty()) return null; - - Building closest = null; - float cdist = 0f; - for(Building t : list){ - if(((t.items != null && t.items.any()) || t.status() != BlockStatus.noInput) && t.block.targetable){ - float dst = t.dst2(x, y); - if(closest == null || dst < cdist){ - closest = t; - cdist = dst; - } - } - } - return closest; - }else{ - return super.targetFlag(x, y, flag, enemy); - } - } - @Override public Teamc findTarget(float x, float y, float range, boolean air, boolean ground){ var result = findMainTarget(x, y, range, air, ground); @@ -76,7 +51,7 @@ public class FlyingAI extends AIController{ rand.setSeed(unit.type.id + (state.rules.waves ? state.wave : unit.id)); //try a few random flags first for(int attempt = 0; attempt < 5; attempt++){ - Teamc result = targetFlag(x, y, randomTargets[rand.random(randomTargets.length - 1)], true); + Teamc result = targetFlagActive(x, y, randomTargets[rand.random(randomTargets.length - 1)], true); if(result != null) return result; } //try the closest target @@ -88,7 +63,7 @@ public class FlyingAI extends AIController{ Teamc result = target(x, y, range, air, ground); if(result != null) return result; }else if(ground){ - Teamc result = targetFlag(x, y, flag, true); + Teamc result = targetFlagActive(x, y, flag, true); if(result != null) return result; } } diff --git a/core/src/mindustry/content/Blocks.java b/core/src/mindustry/content/Blocks.java index 1648f64dc3..3cee6de8a8 100644 --- a/core/src/mindustry/content/Blocks.java +++ b/core/src/mindustry/content/Blocks.java @@ -65,7 +65,7 @@ public class Blocks{ //new metal floors metalTiles1, metalTiles2, metalTiles3, metalTiles4, metalTiles5, metalTiles6, metalTiles7, metalTiles8, metalTiles9, metalTiles10, metalTiles11, metalTiles12, metalTiles13, //new metal walls - metalWall1, metalWall2, metalWall3, metalWall4, + metalWall1, metalWall2, metalWall3, //colored coloredFloor, coloredWall, @@ -81,7 +81,7 @@ public class Blocks{ oreBeryllium, oreTungsten, oreCrystalThorium, wallOreThorium, //wall ores - wallOreBeryllium, graphiticWall, wallOreTungsten, + wallOreBeryllium, graphiticWall, wallOreGraphite, wallOreTungsten, //crafting siliconSmelter, siliconCrucible, kiln, graphitePress, plastaniumCompressor, multiPress, phaseWeaver, surgeSmelter, pyratiteMixer, blastMixer, cryofluidMixer, @@ -1026,7 +1026,10 @@ public class Blocks{ variants = 3; }}; - //TODO merge with standard ore? + wallOreGraphite = new OreBlock("ore-wall-graphite", Items.graphite){{ + wallOre = true; + }}; + wallOreTungsten = new OreBlock("ore-wall-tungsten", Items.tungsten){{ wallOre = true; }}; @@ -1414,9 +1417,9 @@ public class Blocks{ ambientSound = Sounds.loopExtract; ambientSoundVolume = 0.06f; - heatRequirement = 6f; - - outputLiquid = new LiquidStack(Liquids.nitrogen, 4f / 60f); + maxEfficiency = 1f; + heatRequirement = 24f; + outputLiquid = new LiquidStack(Liquids.nitrogen, 16f / 60f); researchCost = with(Items.silicon, 2000, Items.oxide, 900, Items.beryllium, 2400); }}; @@ -1533,7 +1536,7 @@ public class Blocks{ requirements(Category.crafting, with(Items.tungsten, 110, Items.thorium, 150, Items.oxide, 60)); craftEffect = Fx.none; outputItem = new ItemStack(Items.carbide, 1); - craftTime = 60f * 2.25f; + craftTime = 60f * 2.25f/4f; size = 3; itemCapacity = 20; hasPower = hasItems = true; @@ -1541,7 +1544,8 @@ public class Blocks{ ambientSound = Sounds.loopSmelter; ambientSoundVolume = 0.09f; - heatRequirement = 10f; + heatRequirement = 40f; + maxEfficiency = 1f; consumeItems(with(Items.tungsten, 2, Items.graphite, 3)); consumePower(2f); @@ -1584,8 +1588,9 @@ public class Blocks{ size = 3; itemCapacity = 20; - heatRequirement = 10f; - craftTime = 60f * 3f; + heatRequirement = 40f; + maxEfficiency = 1f; + craftTime = 60f * 3f/4f; liquidCapacity = 80f * 5; ambientSound = Sounds.loopSmelter; @@ -1609,14 +1614,15 @@ public class Blocks{ }}); consumeItem(Items.silicon, 3); - consumeLiquid(Liquids.slag, 40f / 60f); + consumeLiquid(Liquids.slag, 160f / 60f); consumePower(1.5f); }}; cyanogenSynthesizer = new HeatCrafter("cyanogen-synthesizer"){{ requirements(Category.crafting, with(Items.carbide, 50, Items.silicon, 80, Items.beryllium, 90)); - heatRequirement = 5f; + heatRequirement = 20f; + maxEfficiency = 1f; drawer = new DrawMulti(new DrawRegion("-bottom"), new DrawLiquidTile(Liquids.cyanogen), new DrawParticles(){{ @@ -1636,9 +1642,9 @@ public class Blocks{ ambientSoundVolume = 0.08f; liquidCapacity = 80f; - outputLiquid = new LiquidStack(Liquids.cyanogen, 3f / 60f); + outputLiquid = new LiquidStack(Liquids.cyanogen, 12f / 60f); - consumeLiquid(Liquids.arkycite, 40f / 60f); + consumeLiquid(Liquids.arkycite, 160f / 60f); consumeItem(Items.graphite); consumePower(2f); }}; @@ -1649,8 +1655,9 @@ public class Blocks{ size = 3; itemCapacity = 40; - heatRequirement = 8f; - craftTime = 60f * 2f; + heatRequirement = 32f; + maxEfficiency = 1f; + craftTime = 60f * 2f / 4f; liquidCapacity = 10f * 4; ambientSound = Sounds.loopTech; @@ -1672,7 +1679,7 @@ public class Blocks{ }}); consumeItems(with(Items.thorium, 2, Items.sand, 6)); - consumeLiquid(Liquids.ozone, 2f / 60f); + consumeLiquid(Liquids.ozone, 8f / 60f); consumePower(8f); }}; @@ -2115,6 +2122,7 @@ public class Blocks{ speed = 74f; arrowSpacing = 6f; bufferCapacity = 14; + crushFragile = true; }}; phaseConveyor = new ItemBridge("phase-conveyor"){{ @@ -2226,6 +2234,7 @@ public class Blocks{ speed = 4f; buildCostMultiplier = 2f; researchCostMultiplier = 0.3f; + crushFragile = true; }}; ductUnloader = new DirectionalUnloader("duct-unloader"){{ @@ -2484,6 +2493,7 @@ public class Blocks{ maxNodes = 10; laserRange = 6; underBullets = true; + crushFragile = true; }}; powerNodeLarge = new PowerNode("power-node-large"){{ @@ -2653,7 +2663,7 @@ public class Blocks{ range = 10; fogRadius = 1; researchCost = with(Items.beryllium, 5); - buildCostMultiplier = 2.5f; + crushFragile = true; consumePowerBuffered(1000f); }}; @@ -5096,8 +5106,8 @@ public class Blocks{ }}; consumePower(5f); - heatRequirement = 10f; - maxHeatEfficiency = 2f; + heatRequirement = 20f; + maxHeatEfficiency = 1f; newTargetInterval = 40f; @@ -5107,8 +5117,8 @@ public class Blocks{ outlineColor = Pal.darkOutline; size = 4; envEnabled |= Env.space; - reload = 100f; - cooldownTime = reload; + reload = 50f; + cooldownTime = 100f; recoil = 3f; range = 368; shootCone = 20f; @@ -6173,8 +6183,8 @@ public class Blocks{ }}; velocityRnd = 0.15f; - heatRequirement = 72f; - maxHeatEfficiency = 2f; + heatRequirement = 144f; + maxHeatEfficiency = 1f; warmupMaintainTime = 120f; consumePower(40f); unitSort = UnitSorts.strongest; @@ -6187,7 +6197,7 @@ public class Blocks{ outlineColor = Pal.darkOutline; envEnabled |= Env.space; - reload = 7f; + reload = 3.5f; range = 410; trackingRange = range * 1.4f; shootCone = 100f; diff --git a/core/src/mindustry/content/SectorPresets.java b/core/src/mindustry/content/SectorPresets.java index 78274ae1e2..ada1fb9688 100644 --- a/core/src/mindustry/content/SectorPresets.java +++ b/core/src/mindustry/content/SectorPresets.java @@ -9,11 +9,9 @@ public class SectorPresets{ public static SectorPreset groundZero, craters, biomassFacility, taintedWoods, frozenForest, ruinousShores, facility32m, windsweptIslands, stainedMountains, tarFields, - frontier, fungalPass, infestedCanyons, atolls, sunkenPier, mycelialBastion, extractionOutpost, saltFlats, testingGrounds, overgrowth, //polarAerodrome, - impact0078, desolateRift, nuclearComplex, planetaryTerminal, - coastline, navalFortress, weatheredChannels, seaPort, - - geothermalStronghold, cruxscape, + frontier, fungalPass, infestedCanyons, atolls, sunkenPier, mycelialBastion, extractionOutpost, saltFlats, testingGrounds, overgrowth, + impact0078, desolateRift, fallenVessel, nuclearComplex, planetaryTerminal, + coastline, navalFortress, weatheredChannels, perilousHarbor, onset, aegis, lake, intersect, basin, atlas, split, marsh, peaks, ravine, caldera, stronghold, crevice, siege, crossroads, karst, origin; @@ -65,7 +63,7 @@ public class SectorPresets{ difficulty = 3; }}; - seaPort = new SectorPreset("seaPort", serpulo, 47){{ + perilousHarbor = new SectorPreset("perilousHarbor", serpulo, 47){{ difficulty = 4; }}; @@ -88,11 +86,6 @@ public class SectorPresets{ difficulty = 5; }}; - //TODO: removed for now - //polarAerodrome = new SectorPreset("polarAerodrome", serpulo, 68){{ - // difficulty = 7; - //}}; - coastline = new SectorPreset("coastline", serpulo, 108){{ captureWave = 30; difficulty = 5; @@ -151,6 +144,11 @@ public class SectorPresets{ difficulty = 8; }}; + fallenVessel = new SectorPreset("fallenVessel", serpulo, -1){{ + captureWave = 121; + difficulty = 9; + }}; + nuclearComplex = new SectorPreset("nuclearComplex", serpulo, 130){{ captureWave = 50; difficulty = 7; @@ -161,12 +159,16 @@ public class SectorPresets{ isLastSector = true; }}; - geothermalStronghold = new SectorPreset("geothermalStronghold", serpulo, 264){{ + new SectorPreset("geothermalStronghold", serpulo, 264){{ + requireUnlock = false; difficulty = 10; + showHidden = true; }}; - cruxscape = new SectorPreset("cruxscape", serpulo, 54){{ + new SectorPreset("cruxscape", serpulo, 54){{ + requireUnlock = false; difficulty = 10; + showHidden = true; }}; SectorSubmissions.registerSectors(); diff --git a/core/src/mindustry/content/SerpuloTechTree.java b/core/src/mindustry/content/SerpuloTechTree.java index f8ebcea4d9..cd003c8fa4 100644 --- a/core/src/mindustry/content/SerpuloTechTree.java +++ b/core/src/mindustry/content/SerpuloTechTree.java @@ -43,7 +43,7 @@ public class SerpuloTechTree{ node(itemBridge, () -> { node(titaniumConveyor, Seq.with(new SectorComplete(craters)), () -> { node(phaseConveyor, () -> { - node(massDriver, () -> { + node(massDriver, Seq.with(new SectorComplete(tarFields)), () -> { }); }); @@ -139,7 +139,7 @@ public class SerpuloTechTree{ }); node(plastaniumCompressor, Seq.with(new SectorComplete(windsweptIslands)), () -> { - node(phaseWeaver, Seq.with(new SectorComplete(tarFields)), () -> { + node(phaseWeaver, Seq.with(new SectorComplete(impact0078)), () -> { }); }); @@ -149,7 +149,7 @@ public class SerpuloTechTree{ node(pulverizer, () -> { node(incinerator, () -> { node(melter, () -> { - node(surgeSmelter, () -> { + node(surgeSmelter, Seq.with(new SectorComplete(coastline)), () -> { }); @@ -222,7 +222,7 @@ public class SerpuloTechTree{ node(mendProjector, () -> { node(forceProjector, Seq.with(new SectorComplete(impact0078)), () -> { node(overdriveProjector, Seq.with(new SectorComplete(impact0078)), () -> { - node(overdriveDome, Seq.with(new SectorComplete(impact0078)), () -> { + node(overdriveDome, Seq.with(new SectorComplete(desolateRift)), () -> { }); }); @@ -326,7 +326,7 @@ public class SerpuloTechTree{ }); }); - node(tsunami, () -> { + node(tsunami, Seq.with(new SectorComplete(navalFortress)), () -> { }); }); @@ -439,8 +439,8 @@ public class SerpuloTechTree{ node(additiveReconstructor, Seq.with(new SectorComplete(fungalPass)), () -> { node(multiplicativeReconstructor, Seq.with(new SectorComplete(frontier)), () -> { - node(exponentialReconstructor, () -> { - node(tetrativeReconstructor, () -> { + node(exponentialReconstructor, Seq.with(new SectorComplete(overgrowth)), () -> { + node(tetrativeReconstructor, Seq.with(new SectorComplete(mycelialBastion)), () -> { }); }); @@ -521,42 +521,19 @@ public class SerpuloTechTree{ new Research(exponentialReconstructor), new Research(tetrativeReconstructor) ), () -> { - node(geothermalStronghold, Seq.with( - new Research(omura), - new Research(navanax), - new Research(eclipse), - new Research(oct), - new Research(reign), - new Research(corvus), - new Research(toxopid) - ), () -> { - }); - - node(cruxscape, Seq.with( - new Research(omura), - new Research(navanax), - new Research(eclipse), - new Research(oct), - new Research(reign), - new Research(corvus), - new Research(toxopid) - ), () -> { - - }); }); }); }); }); node(coastline, Seq.with( - new SectorComplete(windsweptIslands), + new SectorComplete(tarFields), new SectorComplete(saltFlats), new Research(navalFactory), new Research(payloadConveyor) ), () -> { - node(testingGrounds, Seq.with( new SectorComplete(coastline), new Research(cryofluidMixer), @@ -593,7 +570,15 @@ public class SerpuloTechTree{ new Research(surgeSmelter), new Research(overdriveProjector) ), () -> { + node(fallenVessel, Seq.with( + new SectorComplete(desolateRift), + new SectorComplete(mycelialBastion), + new Research(sei), + new Research(meltdown), + new Research(spectre) + ), () -> { + }); }); }); }); @@ -667,7 +652,7 @@ public class SerpuloTechTree{ new Research(mace), new Research(mono) ), () -> { - node(seaPort, Seq.with( + node(perilousHarbor, Seq.with( new SectorComplete(biomassFacility), new SectorComplete(frontier), new Research(navalFactory), @@ -680,37 +665,21 @@ public class SerpuloTechTree{ node(extractionOutpost, Seq.with( new SectorComplete(windsweptIslands), - new SectorComplete(seaPort), + new SectorComplete(perilousHarbor), new SectorComplete(facility32m), - new Research(groundFactory), - new Research(nova), - new Research(airFactory), - new Research(mono) + + new Research(multiplicativeReconstructor), + new Research(risso), + new Research(minke), + new Research(fortress) ), () -> { node(atolls, Seq.with( new SectorComplete(extractionOutpost), - new Research(multiplicativeReconstructor), + new Research(poly), new Research(mega) ), () -> { }); - - //TODO: removed for now - /*node(polarAerodrome, Seq.with( - new SectorComplete(fungalPass), - new SectorComplete(desolateRift), - new SectorComplete(overgrowth), - new Research(multiplicativeReconstructor), - new Research(zenith), - new Research(swarmer), - new Research(cyclone), - new Research(blastDrill), - new Research(blastDrill), - new Research(massDriver) - ), () -> { - - }); - */ }); }); diff --git a/core/src/mindustry/content/UnitTypes.java b/core/src/mindustry/content/UnitTypes.java index 10364fe776..f596519b76 100644 --- a/core/src/mindustry/content/UnitTypes.java +++ b/core/src/mindustry/content/UnitTypes.java @@ -2723,6 +2723,7 @@ public class UnitTypes{ itemCapacity = 0; floorMultiplier = 0.8f; treadRects = new Rect[]{new Rect(17 - 96f/2f, 10 - 96f/2f, 19, 76)}; + crushFragile = true; researchCostMultiplier = 0f; tankMoveVolume *= 0.55f; @@ -2807,6 +2808,7 @@ public class UnitTypes{ drownTimeMultiplier = 1.2f; immunities.addAll(StatusEffects.burning, StatusEffects.melting); treadRects = new Rect[]{new Rect(16 - 60f, 48 - 70f, 30, 75), new Rect(44 - 60f, 17 - 70f, 17, 60)}; + crushFragile = true; researchCostMultiplier = 0f; weapons.add(new Weapon("precept-weapon"){{ @@ -2879,6 +2881,7 @@ public class UnitTypes{ floorMultiplier = 0.5f; drownTimeMultiplier = 1.25f; immunities.addAll(StatusEffects.burning, StatusEffects.melting); + crushFragile = true; treadRects = new Rect[]{new Rect(22 - 154f/2f, 16 - 154f/2f, 28, 130)}; tankMoveVolume *= 1.25f; @@ -2984,6 +2987,7 @@ public class UnitTypes{ tankMoveVolume *= 1.5f; tankMoveSound = Sounds.tankMoveHeavy; + crushFragile = true; float xo = 231f/2f, yo = 231f/2f; treadRects = new Rect[]{new Rect(27 - xo, 152 - yo, 56, 73), new Rect(24 - xo, 51 - 9 - yo, 29, 17), new Rect(59 - xo, 18 - 9 - yo, 39, 19)}; diff --git a/core/src/mindustry/core/Control.java b/core/src/mindustry/core/Control.java index 55a4abb2ef..c27f371b02 100644 --- a/core/src/mindustry/core/Control.java +++ b/core/src/mindustry/core/Control.java @@ -472,6 +472,10 @@ public class Control implements ApplicationListener, Loadable{ //set spawn for sector damage to use Tile spawn = world.tile(spawnPos); + if(spawn == null){ + playNewSector(origin, sector, reloader); + return; + } spawn.setBlock(sector.planet.defaultCore, state.rules.defaultTeam); //apply damage to simulate the sector being lost diff --git a/core/src/mindustry/core/Logic.java b/core/src/mindustry/core/Logic.java index 32c0191b48..ebbda4bd45 100644 --- a/core/src/mindustry/core/Logic.java +++ b/core/src/mindustry/core/Logic.java @@ -172,6 +172,12 @@ public class Logic implements ApplicationListener{ } }); + Events.on(BlockDestroyEvent.class, e -> { + if(e.tile.team() != state.rules.defaultTeam){ + state.stats.destroyedBlockCount.increment(e.tile.block()); + } + }); + Events.on(UnitDestroyEvent.class, e -> { if(e.unit.team() != state.rules.defaultTeam){ state.stats.enemyUnitsDestroyed ++; diff --git a/core/src/mindustry/ctype/UnlockableContent.java b/core/src/mindustry/ctype/UnlockableContent.java index 8f3a4ccca9..380fd84442 100644 --- a/core/src/mindustry/ctype/UnlockableContent.java +++ b/core/src/mindustry/ctype/UnlockableContent.java @@ -29,7 +29,7 @@ public abstract class UnlockableContent extends MappableContent{ /** Localized, formal name. Never null. Set to internal name if not found in bundle. */ public String localizedName; /** Localized description & details. May be null. */ - public @Nullable String description, details; + public @Nullable String description, details, credit; /** Whether this content is always unlocked in the tech tree. */ public boolean alwaysUnlocked = false; /** Whether to show the description in the research dialog preview. */ @@ -90,6 +90,7 @@ public abstract class UnlockableContent extends MappableContent{ this.localizedName = Core.bundle.get(getContentType() + "." + this.name + ".name", this.name); this.description = Core.bundle.getOrNull(getContentType() + "." + this.name + ".description"); this.details = Core.bundle.getOrNull(getContentType() + "." + this.name + ".details"); + this.credit = Core.bundle.getOrNull(getContentType() + "." + this.name + ".credit"); this.unlocked = Core.settings != null && Core.settings.getBool(this.name + "-unlocked", false); } diff --git a/core/src/mindustry/entities/Damage.java b/core/src/mindustry/entities/Damage.java index 62b110dce8..e714b410ed 100644 --- a/core/src/mindustry/entities/Damage.java +++ b/core/src/mindustry/entities/Damage.java @@ -178,8 +178,6 @@ public class Damage{ } public static float findPierceLength(Bullet b, int pierceCap, boolean laser, float length){ - if(pierceCap <= 0) return length; - vec.trnsExact(b.rotation(), length); rect.setPosition(b.x, b.y).setSize(vec.x, vec.y).normalize().grow(3f); @@ -217,7 +215,7 @@ public class Damage{ //return either the length when not enough things were pierced, //or the last pierced object if there were enough blockages - return Math.min(distances.size < pierceCap ? length : Math.max(6f, distances.get(pierceCap - 1)), maxDst); + return Math.min(distances.size < pierceCap || pierceCap <= 0 ? length : Math.max(6f, distances.get(pierceCap - 1)), maxDst); } /** Collides a bullet with blocks in a laser, taking into account absorption blocks. Resulting length is stored in the bullet's fdata. */ diff --git a/core/src/mindustry/entities/Effect.java b/core/src/mindustry/entities/Effect.java index 4d68a8344d..3d948c538e 100644 --- a/core/src/mindustry/entities/Effect.java +++ b/core/src/mindustry/entities/Effect.java @@ -214,7 +214,7 @@ public class Effect{ public static void floorDust(float x, float y, float size){ Tile tile = world.tileWorld(x, y); if(tile != null){ - Color color = tile.floor().mapColor; + Color color = tile.getFloorColor(); Fx.unitLand.at(x, y, size, color); } } @@ -222,7 +222,7 @@ public class Effect{ public static void floorDustAngle(Effect effect, float x, float y, float angle){ Tile tile = world.tileWorld(x, y); if(tile != null){ - Color color = tile.floor().mapColor; + Color color = tile.getFloorColor(); effect.at(x, y, angle, color); } } @@ -239,10 +239,10 @@ public class Effect{ Decal decal = Decal.create(); decal.set(x, y); - decal.rotation(rotation); - decal.lifetime(lifetime); - decal.color().set(color); - decal.region(region); + decal.rotation = rotation; + decal.lifetime = lifetime; + decal.color.set(color); + decal.region = region; decal.add(); } @@ -280,7 +280,7 @@ public class Effect{ float ox = Angles.trnsx(angle, radius), oy = Angles.trnsy(angle, radius); Tile t = world.tileWorld(x + ox, y + oy); if(t != null){ - Fx.podLandDust.at(t.worldx(), t.worldy(), angle + Mathf.range(30f), Tmp.c1.set(t.floor().mapColor).mul(1.7f + Mathf.range(0.15f))); + Fx.podLandDust.at(t.worldx(), t.worldy(), angle + Mathf.range(30f), Tmp.c1.set(t.getFloorColor()).mul(1.7f + Mathf.range(0.15f))); } } } diff --git a/core/src/mindustry/entities/comp/BuilderComp.java b/core/src/mindustry/entities/comp/BuilderComp.java index 33413231cd..5d2b2837fb 100644 --- a/core/src/mindustry/entities/comp/BuilderComp.java +++ b/core/src/mindustry/entities/comp/BuilderComp.java @@ -155,7 +155,7 @@ abstract class BuilderComp implements Posc, Statusc, Teamc, Rotc{ if(!within(tile, finalPlaceDst)) continue; if(!headless){ - Vars.control.sound.loop(Sounds.loopBuild, tile, 1.2f); + Vars.control.sound.loop(Sounds.loopBuild, tile, 1.3f); } if(!(tile.build instanceof ConstructBuild cb)){ diff --git a/core/src/mindustry/entities/comp/CrawlComp.java b/core/src/mindustry/entities/comp/CrawlComp.java index 23429ad6dc..0b72857e1a 100644 --- a/core/src/mindustry/entities/comp/CrawlComp.java +++ b/core/src/mindustry/entities/comp/CrawlComp.java @@ -83,7 +83,7 @@ abstract class CrawlComp implements Posc, Rotc, Hitboxc, Unitc{ } if(Mathf.chanceDelta(0.025)){ - Fx.crawlDust.at(t.worldx(), t.worldy(), t.floor().mapColor); + Fx.crawlDust.at(t.worldx(), t.worldy(), t.getFloorColor()); } }else{ solids ++; diff --git a/core/src/mindustry/entities/comp/LegsComp.java b/core/src/mindustry/entities/comp/LegsComp.java index 4b5f2a79f5..becc951f63 100644 --- a/core/src/mindustry/entities/comp/LegsComp.java +++ b/core/src/mindustry/entities/comp/LegsComp.java @@ -1,5 +1,6 @@ package mindustry.entities.comp; +import arc.graphics.*; import arc.math.*; import arc.math.geom.*; import arc.util.*; @@ -12,6 +13,7 @@ import mindustry.game.*; import mindustry.gen.*; import mindustry.graphics.*; import mindustry.type.*; +import mindustry.world.*; import mindustry.world.blocks.*; import mindustry.world.blocks.environment.*; @@ -163,7 +165,10 @@ abstract class LegsComp implements Posc, Rotc, Hitboxc, Unitc{ l.moving = move; l.stage = moving ? stageF % 1f : Mathf.lerpDelta(l.stage, 0f, 0.1f); - Floor floor = Vars.world.floorWorld(l.base.x, l.base.y); + Tile tile = Vars.world.tileWorld(l.base.x, l.base.y); + Color floorColor = tile == null ? Color.clear : tile.getFloorColor(); + Floor floor = tile == null ? Blocks.air.asFloor() : tile.floor(); + if(floor.isDeep()){ deeps ++; lastDeepFloor = floor; @@ -175,10 +180,10 @@ abstract class LegsComp implements Posc, Rotc, Hitboxc, Unitc{ if(!move && (moving || !type.legContinuousMove) && i % div == l.group){ if(!headless && !inFogTo(player.team())){ if(floor.isLiquid){ - floor.walkEffect.at(l.base.x, l.base.y, type.rippleScale, floor.mapColor); + floor.walkEffect.at(l.base.x, l.base.y, type.rippleScale, floorColor); floor.walkSound.at(x, y, 1f, floor.walkSoundVolume); }else{ - Fx.unitLandSmall.at(l.base.x, l.base.y, type.rippleScale, floor.mapColor); + Fx.unitLandSmall.at(l.base.x, l.base.y, type.rippleScale, floorColor); type.stepSound.at(l.base.x, l.base.y, type.stepSoundPitch + Mathf.range(type.stepSoundPitchRange), type.stepSoundVolume); } @@ -191,7 +196,6 @@ abstract class LegsComp implements Posc, Rotc, Hitboxc, Unitc{ if(type.legSplashDamage > 0 && !disarmed){ Damage.damage(team, l.base.x, l.base.y, type.legSplashRange, type.legSplashDamage * state.rules.unitDamage(team), false, true); - var tile = Vars.world.tileWorld(l.base.x, l.base.y); if(tile != null && tile.block().unitMoveBreakable){ ConstructBlock.deconstructFinish(tile, tile.block(), self()); } diff --git a/core/src/mindustry/entities/comp/TankComp.java b/core/src/mindustry/entities/comp/TankComp.java index 81e0006a16..a80f74eb63 100644 --- a/core/src/mindustry/entities/comp/TankComp.java +++ b/core/src/mindustry/entities/comp/TankComp.java @@ -57,6 +57,16 @@ abstract class TankComp implements Posc, Hitboxc, Unitc, ElevationMovec{ lastDeepFloor = null; boolean anyNonDeep = false; + if(type.crushFragile){ + for(int i = 0; i < 8; i++){ + Point2 offset = Geometry.d8[i]; + var other = Vars.world.buildWorld(x + offset.x * tilesize, y + offset.y * tilesize); + if(other != null && other.team != team && other.block.crushFragile){ + other.damage(team, 999999999f); + } + } + } + //calculate overlapping tiles so it slows down when going "over" walls int r = Math.max((int)(hitSize * 0.75f / tilesize), 0); diff --git a/core/src/mindustry/entities/comp/UnitComp.java b/core/src/mindustry/entities/comp/UnitComp.java index 950e32fa6b..a83aa33f17 100644 --- a/core/src/mindustry/entities/comp/UnitComp.java +++ b/core/src/mindustry/entities/comp/UnitComp.java @@ -676,7 +676,7 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I if(isFlying() != wasFlying){ if(wasFlying){ if(tile != null){ - Fx.unitLand.at(x, y, floor.isLiquid ? 1f : 0.5f, tile.floor().mapColor); + Fx.unitLand.at(x, y, floor.isLiquid ? 1f : 0.5f, tile.getFloorColor()); } } @@ -685,7 +685,7 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I if(!type.hovering && isGrounded() && type.emitWalkEffect){ if((splashTimer += Mathf.dst(deltaX(), deltaY())) >= (7f + hitSize()/8f)){ - floor.walkEffect.at(x, y, hitSize() / 8f, floor.mapColor); + floor.walkEffect.at(x, y, hitSize() / 8f, tile != null ? tile.getFloorColor() : floor.mapColor); splashTimer = 0f; if(type.emitWalkSound){ diff --git a/core/src/mindustry/entities/units/AIController.java b/core/src/mindustry/entities/units/AIController.java index 9ca7908990..61f3ce7bd5 100644 --- a/core/src/mindustry/entities/units/AIController.java +++ b/core/src/mindustry/entities/units/AIController.java @@ -264,6 +264,11 @@ public class AIController implements UnitController{ return Geometry.findClosest(x, y, enemy ? indexer.getEnemy(unit.team, flag) : indexer.getFlagged(unit.team, flag)); } + public Teamc targetFlagActive(float x, float y, BlockFlag flag, boolean enemy){ + if(unit.team == Team.derelict) return null; + return Geometry.findClosest(x, y, enemy ? indexer.getEnemy(unit.team, flag) : indexer.getFlagged(unit.team, flag), t -> ((t.items != null && t.items.any()) || t.status() != BlockStatus.noInput) && t.block.targetable); + } + public Teamc target(float x, float y, float range, boolean air, boolean ground){ return Units.closestTarget(unit.team, x, y, range, u -> u.checkTarget(air, ground), t -> ground && (unit.type.targetUnderBlocks || !t.block.underBullets)); } diff --git a/core/src/mindustry/game/EventType.java b/core/src/mindustry/game/EventType.java index 30f529a346..ce7befacc3 100644 --- a/core/src/mindustry/game/EventType.java +++ b/core/src/mindustry/game/EventType.java @@ -555,7 +555,7 @@ public class EventType{ } /** Called right before a block is destroyed. - * The tile entity of the tile in this event cannot be null when this happens.*/ + * The building of the tile in this event cannot be null when this happens.*/ public static class BlockDestroyEvent{ public final Tile tile; diff --git a/core/src/mindustry/game/GameStats.java b/core/src/mindustry/game/GameStats.java index a96fd80f8e..2ed099532d 100644 --- a/core/src/mindustry/game/GameStats.java +++ b/core/src/mindustry/game/GameStats.java @@ -19,9 +19,19 @@ public class GameStats{ public int unitsCreated; /** Record of blocks that have been placed by count. Used for objectives only. */ public ObjectIntMap placedBlockCount = new ObjectIntMap<>(); + /** Record of enemy blocks that have been destroyed (from any source) by count. */ + public ObjectIntMap destroyedBlockCount = new ObjectIntMap<>(); /** * Record of items that have entered the core through transport blocks. Used for objectives only. * This can easily be ""spoofed"" with unloaders, so don't use it for anything remotely important. * */ public ObjectIntMap coreItemCount = new ObjectIntMap<>(); + + public int getPlaced(Block block){ + return placedBlockCount.get(block, 0); + } + + public int getDestroyed(Block block){ + return destroyedBlockCount.get(block, 0); + } } diff --git a/core/src/mindustry/game/MapObjectives.java b/core/src/mindustry/game/MapObjectives.java index 9caace999a..333adf616b 100644 --- a/core/src/mindustry/game/MapObjectives.java +++ b/core/src/mindustry/game/MapObjectives.java @@ -313,6 +313,11 @@ public class MapObjectives implements Iterable, Eachable, Eachable, Eachable, Eachable, Eachable, Eachable, Eachable, Eachable, Eachable, Eachable, Eachable, Eachable, Eachable m.name().equals(map)); + this.map = maps == null ? null : maps.all().find(m -> m.name().equals(map)); this.wave = wave; this.rules = rules; this.tags = tags; diff --git a/core/src/mindustry/logic/LAccess.java b/core/src/mindustry/logic/LAccess.java index 3128aff224..5f3b25f890 100644 --- a/core/src/mindustry/logic/LAccess.java +++ b/core/src/mindustry/logic/LAccess.java @@ -62,6 +62,7 @@ public enum LAccess{ payloadType, totalPayload, payloadCapacity, + maxUnits, id, //values with parameters are considered controllable diff --git a/core/src/mindustry/logic/LExecutor.java b/core/src/mindustry/logic/LExecutor.java index 83881dd00a..7dd2801b33 100644 --- a/core/src/mindustry/logic/LExecutor.java +++ b/core/src/mindustry/logic/LExecutor.java @@ -1167,7 +1167,12 @@ public class LExecutor{ @Override public void run(LExecutor exec){ - if(curTime >= value.num()){ + if(value.num() <= 0){ + // Just yield without executing the wait again + exec.yield = true; + // Start the next wait afresh ('value' might have been modified remotely by a different processor) + curTime = 0f; + }else if(curTime >= value.num()){ curTime = 0f; }else{ //skip back to self. diff --git a/core/src/mindustry/logic/LogicDialog.java b/core/src/mindustry/logic/LogicDialog.java index 38211fd1ab..7c0f49a5d0 100644 --- a/core/src/mindustry/logic/LogicDialog.java +++ b/core/src/mindustry/logic/LogicDialog.java @@ -282,7 +282,7 @@ public class LogicDialog extends BaseDialog{ search.keyDown(KeyCode.enter, () -> { if(!searchText[0].isEmpty() && matched[0] != null){ - canvas.add((LStatement)matched[0].get()); + canvas.addAt(position == -1 ? canvas.statements.getChildren().size : position, (LStatement)matched[0].get()); dialog.hide(); } }); diff --git a/core/src/mindustry/maps/Maps.java b/core/src/mindustry/maps/Maps.java index eefa52e6f5..006aa1566c 100644 --- a/core/src/mindustry/maps/Maps.java +++ b/core/src/mindustry/maps/Maps.java @@ -40,6 +40,8 @@ public class Maps{ private static String[] defaultMapNames = {"maze", "fortress", "labyrinth", "islands", "tendrils", "caldera", "wasteland", "shattered", "fork", "triad", "mudFlats", "moltenLake", "archipelago", "debrisField", "domain", "veins", "glacier", "passage"}; /** Maps tagged as PvP */ private static String[] pvpMaps = {"veins", "glacier", "passage"}; + /** If true, the defaultMapNames are prefixed with default/ */ + private static boolean useDefaultFolder = true; /** All maps stored in an ordered array. */ private Seq maps = new Seq<>(); @@ -126,7 +128,7 @@ public class Maps{ //defaults; must work try{ for(String name : defaultMapNames){ - Fi file = Core.files.internal("maps/" + name + "." + mapExtension); + Fi file = Core.files.internal((useDefaultFolder ? "maps/default/" : "maps/") + name + "." + mapExtension); loadMap(file, false); } }catch(IOException e){ diff --git a/core/src/mindustry/maps/SectorSubmissions.java b/core/src/mindustry/maps/SectorSubmissions.java index 06dc23056b..2c519d90e6 100644 --- a/core/src/mindustry/maps/SectorSubmissions.java +++ b/core/src/mindustry/maps/SectorSubmissions.java @@ -65,6 +65,8 @@ public class SectorSubmissions{ registerSerpuloSector(20, "Namero", "https://discord.com/channels/391020510269669376/1379926794114961634/1406768731471872162"); registerSerpuloSector(162, "Bravo Tizmo", "https://discord.com/channels/391020510269669376/1379926884606808247/1443239231366500415"); registerSerpuloSector(230, "Jamespire", "https://discord.com/channels/391020510269669376/1379926927585841163/1442675816084406305"); + registerSerpuloSector(240, "hhhi17", "https://discord.com/channels/391020510269669376/1253758616117186590/1253758616117186590", -1, 8f); + registerSerpuloSector(202, "D&X", "https://discord.com/channels/391020510269669376/1253760205091635201/1253760205091635201", 33, 6f); /* UNUSED SECTORS: registerHiddenSectors(serpulo, @@ -79,10 +81,10 @@ public class SectorSubmissions{ } static void registerSerpuloSector(int id, String author, String mapFileLink){ - registerSerpuloSector(id, author, mapFileLink, -1); + registerSerpuloSector(id, author, mapFileLink, -1, 0f); } - static void registerSerpuloSector(int id, String author, String mapFileLink, int captureWave){ + static void registerSerpuloSector(int id, String author, String mapFileLink, int captureWave, float difficulty){ Planet planet = Planets.serpulo; Sector sector = planet.sectors.get(id); MapSubmission sub = threadMap.get(sector, MapSubmission::new); @@ -90,9 +92,11 @@ public class SectorSubmissions{ sub.author = author; sub.mapFileLink = mapFileLink; - var preset = new SectorPreset("sector-" + planet.name + "-" + id, "hidden-serpulo/" + id, planet, id); + var preset = new SectorPreset("sector-" + planet.name + "-" + id, "hidden/" + id, planet, id); + if(preset.credit == null) preset.credit = author; preset.requireUnlock = false; + if(difficulty > 0f) preset.difficulty = difficulty; if(captureWave > 0){ preset.captureWave = captureWave; diff --git a/core/src/mindustry/maps/generators/FileMapGenerator.java b/core/src/mindustry/maps/generators/FileMapGenerator.java index 31bd1903e2..94ac6702ce 100644 --- a/core/src/mindustry/maps/generators/FileMapGenerator.java +++ b/core/src/mindustry/maps/generators/FileMapGenerator.java @@ -1,6 +1,7 @@ package mindustry.maps.generators; import arc.math.geom.*; +import arc.struct.*; import mindustry.*; import mindustry.content.*; import mindustry.game.*; @@ -18,12 +19,33 @@ public class FileMapGenerator implements WorldGenerator{ public final SectorPreset preset; public FileMapGenerator(String mapName, SectorPreset preset){ - //try to look for the prefixed map first, then the mod-specific one - this.map = maps != null ? maps.loadInternalMap( - preset.minfo.mod == null || Vars.tree.get("maps/" + mapName + "." + mapExtension).exists() ? - mapName : - mapName.substring(1 + preset.minfo.mod.name.length()) - ) : null; + if(maps == null){ + this.map = null; + }else{ + Seq candidates = new Seq<>(4); + + ///.msav + candidates.add(preset.planet.name + "/" + mapName); + + //.msav (directly in maps folder) + candidates.add(mapName); + + //for modded maps, try loading without the mod prefix + if(preset.minfo.mod != null){ + String baseName = mapName.substring(1 + preset.minfo.mod.name.length()); + + ///.msav + candidates.add(preset.planet.name + "/" + baseName); + + //.msav (directly in maps folder) + candidates.add(baseName); + } + + //find the first matching candidate to load + String fileName = candidates.find(name -> Vars.tree.get("maps/" + name + "." + mapExtension).exists()); + + this.map = maps.loadInternalMap(fileName == null ? candidates.first() : fileName); + } this.preset = preset; } diff --git a/core/src/mindustry/mod/ContentParser.java b/core/src/mindustry/mod/ContentParser.java index afdadd164e..fe3ed053b5 100644 --- a/core/src/mindustry/mod/ContentParser.java +++ b/core/src/mindustry/mod/ContentParser.java @@ -119,7 +119,15 @@ public class ContentParser{ } return result; }); - put(Color.class, (type, data) -> Color.valueOf(data.asString())); + put(Color.class, (type, data) -> { + if(data.isNumber()){ + int len = data.asString().length(); + if(len != 6 && len != 8){ + warn("@Colors should strings, not numbers. Make sure you have quotes around the value, or they will not be parsed correctly: '@'", currentContent == null ? "" : "[" + currentContent.minfo.sourceFile.name() + "]: ", data); + } + } + return Color.valueOf(data.asString()); + }); put(StatusEffect.class, (type, data) -> { if(data.isString()){ StatusEffect result = locate(ContentType.status, data.asString()); @@ -644,6 +652,7 @@ public class ContentParser{ currentContent = unit; read(() -> { + unit.beforeParse(); //add reconstructor type if(value.has("requirements")){ JsonValue rec = value.remove("requirements"); @@ -723,17 +732,29 @@ public class ContentParser{ return locate(ContentType.sector, name); } - if(!value.has("sector") || !value.get("sector").isNumber()) throw new RuntimeException("SectorPresets must have a sector number."); + SectorPreset preset; + SectorPreset found = locate(ContentType.sector, name); - SectorPreset out = new SectorPreset(mod + "-" + name, currentMod); + if(found != null){ + preset = found; + }else{ + if(!value.has("sector") || !value.get("sector").isNumber()) throw new RuntimeException("SectorPresets must have a sector number."); - currentContent = out; + preset = new SectorPreset(mod + "-" + name, currentMod); + } + + currentContent = preset; read(() -> { - Planet planet = locate(ContentType.planet, value.getString("planet", "serpulo")); + Planet planet = preset.planet == null ? Planets.serpulo : preset.planet; + if(value.has("planet")){ + planet = locate(ContentType.planet, value.getString("planet", "serpulo")); - if(planet == null) throw new RuntimeException("Planet '" + value.getString("planet") + "' not found."); + if(planet == null) throw new RuntimeException("Planet '" + value.getString("planet") + "' not found."); + } - out.initialize(planet, value.getInt("sector", 0)); + if(value.has("sector")){ + preset.initialize(planet, value.getInt("sector", 0)); + } value.remove("sector"); value.remove("planet"); @@ -741,7 +762,7 @@ public class ContentParser{ if(value.has("rules")){ JsonValue r = value.remove("rules"); if(!r.isObject()) throw new RuntimeException("Rules must be an object!"); - out.rules = rules -> { + preset.rules = rules -> { try{ //Use standard JSON, this is not content-parser relevant JsonIO.json.readFields(rules, r); @@ -751,9 +772,9 @@ public class ContentParser{ }; } - readFields(out, value); + readFields(preset, value); }); - return out; + return preset; }, ContentType.planet, (TypeParser)(mod, name, value) -> { if(value.isString()) return locate(ContentType.planet, name); diff --git a/core/src/mindustry/mod/DataPatcher.java b/core/src/mindustry/mod/DataPatcher.java index 302eaa320b..9cbaddd1fc 100644 --- a/core/src/mindustry/mod/DataPatcher.java +++ b/core/src/mindustry/mod/DataPatcher.java @@ -62,6 +62,10 @@ public class DataPatcher{ return cont; } + public boolean isPatched(Object object){ + return usedpatches.contains(object); + } + /** Applies the specified patches. If patches were already applied, the previous ones are un-applied - they do not stack! */ public void apply(Seq patchArray) throws Exception{ if(applied){ diff --git a/core/src/mindustry/net/NetworkIO.java b/core/src/mindustry/net/NetworkIO.java index 68df216c74..5b13558d13 100644 --- a/core/src/mindustry/net/NetworkIO.java +++ b/core/src/mindustry/net/NetworkIO.java @@ -130,7 +130,8 @@ public class NetworkIO{ int version = buffer.getInt(); String vertype = readString(buffer); - Gamemode gamemode = Gamemode.all[buffer.get()]; + byte mode = buffer.get(); + Gamemode gamemode = Gamemode.all[mode < Gamemode.all.length ? mode : 0]; int limit = buffer.getInt(); String description = readString(buffer); diff --git a/core/src/mindustry/type/MapLocales.java b/core/src/mindustry/type/MapLocales.java index a49869d177..45dc7731d1 100644 --- a/core/src/mindustry/type/MapLocales.java +++ b/core/src/mindustry/type/MapLocales.java @@ -47,6 +47,7 @@ public class MapLocales extends ObjectMap implements JsonSeri public String getProperty(String key){ if(!containsProperty(currentLocale(), key)){ if(containsProperty("en", key)) return get("en").get(key); + if(bundle.has(key)) return bundle.get(key); return "???" + key + "???"; } return get(currentLocale()).get(key); diff --git a/core/src/mindustry/type/Planet.java b/core/src/mindustry/type/Planet.java index b8dc3db005..3343690cb1 100644 --- a/core/src/mindustry/type/Planet.java +++ b/core/src/mindustry/type/Planet.java @@ -340,7 +340,7 @@ public class Planet extends UnlockableContent{ sum += 0.88f; } - sector.threat = sector.preset == null || !sector.preset.requireUnlock ? + sector.threat = sector.preset == null || (!sector.preset.requireUnlock && sector.preset.difficulty == 0f) ? Math.max(Math.min(sum / 5f, 1.2f), 0.3f) : //low threat sectors are pointless Mathf.clamp(sector.preset.difficulty / 10f); } @@ -549,8 +549,7 @@ public class Planet extends UnlockableContent{ Tmp.v31.set(curr.v).sub(sector.tile.v).setLength(curr.v.dst(sector.tile.v) - stroke).add(sector.tile.v); Tmp.v32.set(next.v).sub(sector.tile.v).setLength(next.v.dst(sector.tile.v) - stroke).add(sector.tile.v); - batch.tri(curr.v, next.v, Tmp.v31, color); - batch.tri(Tmp.v31, next.v, Tmp.v32, color); + batch.quad(curr.v, next.v, Tmp.v32, Tmp.v31, color); sector.tile.v.scl(1f / arad); next.v.scl(1f / arad); diff --git a/core/src/mindustry/type/Sector.java b/core/src/mindustry/type/Sector.java index ee7b3f88f8..b76fceb312 100644 --- a/core/src/mindustry/type/Sector.java +++ b/core/src/mindustry/type/Sector.java @@ -31,6 +31,7 @@ public class Sector{ public @Nullable SaveSlot save; public @Nullable SectorPreset preset; + public @Nullable Sector shieldTarget; public SectorInfo info = new SectorInfo(); /** Number 0-1 indicating the difficulty based on nearby bases. */ @@ -121,6 +122,10 @@ public class Sector{ Core.settings.remove(planet.name + "-s-" + id + "-info"); } + public boolean isShielded(){ + return preset != null && preset.shieldSectors.size > 0 && preset.shieldSectors.contains(s -> !s.isCaptured()); + } + public boolean isAttacked(){ if(isBeingPlayed()) return state.rules.waves || state.rules.attackMode; return save != null && (info.waves || info.attack) && info.hasCore; @@ -137,7 +142,7 @@ public class Sector{ /** @return whether the enemy has a generated base here. */ public boolean hasEnemyBase(){ - return ((generateEnemyBase && preset == null) || (preset != null && preset.captureWave == 0)) && (save == null || info.attack); + return ((generateEnemyBase && preset == null) || (preset != null && preset.captureWave == 0)) && (save == null || info.attack || !hasBase()); } public boolean isBeingPlayed(){ @@ -146,7 +151,9 @@ public class Sector{ } public String name(){ - if(preset != null && info.name == null && preset.requireUnlock) return preset.localizedName; + if(preset != null && info.name == null && (preset.requireUnlock || preset.showHidden)){ + return preset.localizedName; + } //single-sector "planets" use their own name for the sector name. if(info.name == null && planet.sectors.size == 1){ return planet.localizedName; @@ -161,7 +168,7 @@ public class Sector{ @Nullable public TextureRegion icon(){ - return info.contentIcon != null ? info.contentIcon.uiIcon : info.icon == null ? (preset != null && preset.requireUnlock && preset.uiIcon.found() && preset.unlocked() ? preset.uiIcon : null) : Fonts.getLargeIcon(info.icon); + return info.contentIcon != null ? info.contentIcon.uiIcon : info.icon == null ? (preset != null && preset.requireUnlock && preset.unlocked() && preset.uiIcon.found() ? preset.uiIcon : null) : Fonts.getLargeIcon(info.icon); } @Nullable diff --git a/core/src/mindustry/type/SectorPreset.java b/core/src/mindustry/type/SectorPreset.java index fa283b1e78..4ceb099d4f 100644 --- a/core/src/mindustry/type/SectorPreset.java +++ b/core/src/mindustry/type/SectorPreset.java @@ -2,6 +2,7 @@ package mindustry.type; import arc.*; import arc.func.*; +import arc.struct.*; import arc.util.*; import mindustry.ctype.*; import mindustry.game.*; @@ -25,6 +26,8 @@ public class SectorPreset extends UnlockableContent{ public boolean isLastSector; /** If true, this sector must be unlocked before landing is permitted. */ public boolean requireUnlock = true; + /** If true, the icon and name is shown, even when it's a 'hidden' always-unlocked sector. TODO: this field may be changed, not sure how it should work*/ + public boolean showHidden = false; public boolean showSectorLandInfo = true; /** If true, uses this sector's launch fields instead */ public boolean overrideLaunchDefaults = false; @@ -36,6 +39,10 @@ public class SectorPreset extends UnlockableContent{ public boolean attackAfterWaves = false; /** The original position of this sector; used for migration. Internal use for vanilla campaign only! */ public int originalPosition; + /** Sectors that prevent this sector from being landed on until they are completed. */ + public Seq shieldSectors = new Seq<>(); + + private @Nullable String fileName; public SectorPreset(String name, Planet planet, int sector){ this(name, null, planet, sector); @@ -57,12 +64,14 @@ public class SectorPreset extends UnlockableContent{ if(mod != null){ this.minfo.mod = mod; } - //this.name can change based on the mod being loaded, so if a fileName is not specified, make sure to use the newly assigned this.name - this.generator = new FileMapGenerator(fileName == null ? this.name : fileName, this); + this.fileName = fileName; } public void initialize(Planet planet, int sector){ this.planet = planet; + if(generator == null){ + this.generator = new FileMapGenerator(fileName == null ? this.name : fileName, this); + } this.originalPosition = sector; //auto remap based on data var data = planet.getData(); @@ -79,6 +88,16 @@ public class SectorPreset extends UnlockableContent{ } } + @Override + public void init(){ + super.init(); + + //note that sectors can only have one visual shield target + for(var other : shieldSectors){ + other.shieldTarget = sector; + } + } + @Override public void loadIcon(){ if(Icon.terrain != null){ diff --git a/core/src/mindustry/type/UnitType.java b/core/src/mindustry/type/UnitType.java index 2d1c2823d3..a60d41cb17 100644 --- a/core/src/mindustry/type/UnitType.java +++ b/core/src/mindustry/type/UnitType.java @@ -465,6 +465,8 @@ public class UnitType extends UnlockableContent implements Senseable{ public int treadFrames = 18; /** how much of a top part of a tread sprite is "cut off" relative to the pattern; this is corrected for */ public int treadPullOffset = 0; + /** if true, 'fragile' blocks will instantly be crushed in a 1x1 area around the tank */ + public boolean crushFragile = false; //SEGMENTED / CRAWL UNITS (this is WIP content!) @@ -1299,6 +1301,10 @@ public class UnitType extends UnlockableContent implements Senseable{ initPathType(); } + public void beforeParse(){ + totalRequirements = cachedRequirements = firstRequirements = null; + } + /** @return the time required to build this unit, as a value that takes into account reconstructors */ public float getBuildTime(){ getTotalRequirements(); diff --git a/core/src/mindustry/ui/dialogs/ContentInfoDialog.java b/core/src/mindustry/ui/dialogs/ContentInfoDialog.java index c32316d745..bac748bdcf 100644 --- a/core/src/mindustry/ui/dialogs/ContentInfoDialog.java +++ b/core/src/mindustry/ui/dialogs/ContentInfoDialog.java @@ -46,6 +46,15 @@ public class ContentInfoDialog extends BaseDialog{ table.row(); + if(state.isGame() && state.patcher.isPatched(content)){ + table.table(t -> { + t.image(Icon.info).color(Pal.lightishGray); + t.add("@database.patched").color(Pal.lightishGray).padLeft(4f); + }).pad(4f).left(); + + table.row(); + } + if(content.description != null){ var any = content.stats.toMap().size > 0; @@ -100,7 +109,7 @@ public class ContentInfoDialog extends BaseDialog{ if(contentClass.isAnonymousClass()) contentClass = contentClass.getSuperclass(); Core.app.openURI("https://mindustrygame.github.io/wiki/Modding%20Classes/" + contentClass.getSimpleName()); - }).margin(8f).pad(4f).padTop(8f).size(300f, 50f).row(); + }).margin(8f).pad(4f).padTop(16f).size(300f, 50f).row(); } content.displayExtra(table); diff --git a/core/src/mindustry/ui/dialogs/DatabaseDialog.java b/core/src/mindustry/ui/dialogs/DatabaseDialog.java index f993d6b5ca..5f9489b5b5 100644 --- a/core/src/mindustry/ui/dialogs/DatabaseDialog.java +++ b/core/src/mindustry/ui/dialogs/DatabaseDialog.java @@ -179,6 +179,12 @@ public class DatabaseDialog extends BaseDialog{ setColor(Color.scarlet); touchable = Touchable.disabled; }}).size(8 * 4).pad(3); + }else if(state.isGame() && state.patcher.isPatched(unlock)){ + list.stack(image, new Table(){{ + right().bottom().touchable = Touchable.disabled; + // Interpolated color (lerp lightishGray and white) for better contrast + image(Icon.fileSmall).size(12f).color(Tmp.c1.set(Color.white).a(0.5f)); + }}).size(8 * 4).pad(3); }else{ list.add(image).size(8 * 4).pad(3); } diff --git a/core/src/mindustry/ui/dialogs/JoinDialog.java b/core/src/mindustry/ui/dialogs/JoinDialog.java index 3598459b4c..0c38dd9ab2 100644 --- a/core/src/mindustry/ui/dialogs/JoinDialog.java +++ b/core/src/mindustry/ui/dialogs/JoinDialog.java @@ -269,7 +269,7 @@ public class JoinDialog extends BaseDialog{ t.left(); t.setColor(color); - t.add(host.name + " " + versionString).style(Styles.outlineLabel).padLeft(10f).width(twidth).left().ellipsis(true); + t.add((host.name + " " + versionString).replace('\n', ' ')).style(Styles.outlineLabel).padLeft(10f).width(twidth).left().ellipsis(true); }).growX().height(36f).row(); } @@ -298,7 +298,7 @@ public class JoinDialog extends BaseDialog{ t.add("[lightgray]" + (Core.bundle.format("players" + (host.players == 1 && host.playerLimit <= 0 ? ".single" : ""), (host.players == 0 ? "[lightgray]" : "[accent]") + host.players + (host.playerLimit > 0 ? "[lightgray]/[accent]" + host.playerLimit : "")+ "[lightgray]"))).left().row(); - t.add("[lightgray]" + Core.bundle.format("save.map", host.mapname) + "[lightgray] / " + (host.modeName == null ? host.mode.toString() : host.modeName)).width(twidth).left().ellipsis(true).row(); + t.add(("[lightgray]" + Core.bundle.format("save.map", host.mapname) + "[lightgray] / " + (host.modeName == null ? host.mode.toString() : host.modeName)).replace('\n', ' ')).width(twidth).left().ellipsis(true).row(); if(host.ping > 0){ t.add(Iconc.chartBar + " " + host.ping + "ms").style(Styles.outlineLabel).color(Pal.gray).left(); @@ -740,10 +740,10 @@ public class JoinDialog extends BaseDialog{ return Core.bundle.get("server.outdated"); }else if(host.version < Version.build && Version.build != -1){ return Core.bundle.get("server.outdated") + "\n" + - Core.bundle.format("server.version", host.version, ""); + Core.bundle.format("server.version", host.version, host.versionType); }else if(host.version > Version.build && Version.build != -1){ return Core.bundle.get("server.outdated.client") + "\n" + - Core.bundle.format("server.version", host.version, ""); + Core.bundle.format("server.version", host.version, host.versionType); }else if(host.version == Version.build && Version.type.equals(host.versionType)){ //not important return ""; diff --git a/core/src/mindustry/ui/dialogs/ModsDialog.java b/core/src/mindustry/ui/dialogs/ModsDialog.java index b234ce3d08..96bab6f64b 100644 --- a/core/src/mindustry/ui/dialogs/ModsDialog.java +++ b/core/src/mindustry/ui/dialogs/ModsDialog.java @@ -37,6 +37,7 @@ public class ModsDialog extends BaseDialog{ private ObjectMap textureCache = new ObjectMap<>(); private float modImportProgress; + private boolean cancelledImport; private String searchtxt = ""; private @Nullable Seq modList; private boolean orderDate = true; @@ -643,9 +644,14 @@ public class ModsDialog extends BaseDialog{ Floatc cons = len <= 0 ? f -> {} : p -> modImportProgress = p; try(var stream = file.write(false)){ - Streams.copyProgress(result.getResultAsStream(), stream, len, 4096, cons); + Streams.copyProgress(result.getResultAsStream(), stream, len, 4096, p -> { + if(cancelledImport) throw new RuntimeException("cancelled"); + cons.get(p); + }); } + if(cancelledImport) return; + var mod = mods.importMod(file); mod.setRepo(repo); file.delete(); @@ -659,6 +665,7 @@ public class ModsDialog extends BaseDialog{ } }); }catch(Throwable e){ + if(cancelledImport) return; modError(e); } } @@ -673,13 +680,19 @@ public class ModsDialog extends BaseDialog{ public void githubImportMod(String repo, boolean isJava, @Nullable String release){ modImportProgress = 0f; + cancelledImport = false; ui.loadfrag.show("@downloading"); ui.loadfrag.setProgress(() -> modImportProgress); + ui.loadfrag.setButton(() -> { + ui.loadfrag.hide(); + cancelledImport = true; + }); if(isJava){ githubImportJavaMod(repo, release); }else{ Http.get(ghApi + "/repos/" + repo, res -> { + if(cancelledImport) return; var json = Jval.read(res.getResultAsString()); String mainBranch = json.getString("default_branch"); String language = json.getString("language", ""); @@ -708,6 +721,7 @@ public class ModsDialog extends BaseDialog{ private void githubImportJavaMod(String repo, @Nullable String release){ //grab latest release Http.get(ghApi + "/repos/" + repo + "/releases/" + (release == null ? "latest" : release), res -> { + if(cancelledImport) return; var json = Jval.read(res.getResultAsString()); var assets = json.get("assets").asArray(); @@ -719,7 +733,10 @@ public class ModsDialog extends BaseDialog{ //grab actual file var url = asset.getString("browser_download_url"); - Http.get(url, result -> handleMod(repo, result), this::importFail); + Http.get(url, result -> { + if(cancelledImport) return; + handleMod(repo, result); + }, this::importFail); }else{ throw new ArcRuntimeException("No JAR file found in releases. Make sure you have a valid jar file in the mod's latest Github Release."); } @@ -729,10 +746,13 @@ public class ModsDialog extends BaseDialog{ private void githubImportBranch(String branch, String repo, @Nullable String release){ if(release != null) { Http.get(ghApi + "/repos/" + repo + "/releases/" + release, res -> { + if(cancelledImport) return; String zipUrl = Jval.read(res.getResultAsString()).getString("zipball_url"); Http.get(zipUrl, loc -> { + if(cancelledImport) return; if(loc.getHeader("Location") != null){ Http.get(loc.getHeader("Location"), result -> { + if(cancelledImport) return; handleMod(repo, result); }, this::importFail); }else{ @@ -742,8 +762,10 @@ public class ModsDialog extends BaseDialog{ }); }else{ Http.get(ghApi + "/repos/" + repo + "/zipball/" + branch, loc -> { + if(cancelledImport) return; if(loc.getHeader("Location") != null){ Http.get(loc.getHeader("Location"), result -> { + if(cancelledImport) return; handleMod(repo, result); }, this::importFail); }else{ diff --git a/core/src/mindustry/ui/dialogs/PlanetDialog.java b/core/src/mindustry/ui/dialogs/PlanetDialog.java index 59e02f96d0..03063226f4 100644 --- a/core/src/mindustry/ui/dialogs/PlanetDialog.java +++ b/core/src/mindustry/ui/dialogs/PlanetDialog.java @@ -414,13 +414,14 @@ public class PlanetDialog extends BaseDialog implements PlanetInterfaceRenderer{ boolean canSelect(Sector sector){ if(mode == select) return sector.hasBase() && launchSector != null && sector.planet == launchSector.planet; - if(mode == planetLaunch && sector.hasBase()){ - return false; - } + if(mode == planetLaunch && sector.hasBase()) return false; if(sector.planet.generator == null) return false; + if(sector.isShielded()) return false; + if(sector.hasBase() || sector.id == sector.planet.startSector) return true; + //preset sectors can only be selected once unlocked if(sector.preset != null && sector.preset.requireUnlock){ TechNode node = sector.preset.techNode; @@ -444,9 +445,10 @@ public class PlanetDialog extends BaseDialog implements PlanetInterfaceRenderer{ @Override public void renderSectors(Planet planet){ - //draw all sector stuff if(state.uiAlpha > 0.01f){ for(Sector sec : planet.sectors){ + if(sec == selected) continue; + if(canSelect(sec) || sec.unlocked() || debugSelect){ Color color = @@ -458,7 +460,12 @@ public class PlanetDialog extends BaseDialog implements PlanetInterfaceRenderer{ null; if(color != null){ - planets.drawSelection(sec, Tmp.c1.set(color).mul(0.8f).a(state.uiAlpha), 0.026f, -0.001f); + var destColor = Tmp.c1.set(color).mul(0.8f).a(state.uiAlpha); + if(!sec.isCaptured() && sec.preset != null && sec.preset.showHidden){ + planets.drawSpecialSelection(sec, destColor, 0.026f, -0.001f); + }else{ + planets.drawSelection(sec, destColor, 0.026f, -0.001f); + } } }else{ planets.fill(sec, Tmp.c1.set(shadowColor).mul(1, 1, 1, state.uiAlpha), -0.001f); @@ -474,7 +481,7 @@ public class PlanetDialog extends BaseDialog implements PlanetInterfaceRenderer{ //draw hover border if(hovered != null){ - planets.fill(hovered, hoverColor.write(Tmp.c1).mulA(state.uiAlpha), -0.001f); + planets.fill(hovered, hoverColor.write(Tmp.c1).mulA(state.uiAlpha), -0.003f); planets.drawBorders(hovered, borderColor, state.uiAlpha); } @@ -502,6 +509,12 @@ public class PlanetDialog extends BaseDialog implements PlanetInterfaceRenderer{ if(state.uiAlpha > 0.001f){ for(Sector sec : planet.sectors){ + + //draw shield arc + if(sec.shieldTarget != null && !sec.isCaptured() && !sec.shieldTarget.isCaptured()){ + planets.drawArcLine(planet, sec.tile.v, sec.shieldTarget.tile.v, Team.crux.color.write(Tmp.c2).a(state.uiAlpha), Tmp.c3.set(Tmp.c2).mulA(0.5f), 0.15f, 110f, 25, 0.006f); + } + if(sec.hasBase()){ //draw vulnerable sector attack arc if(planet.campaignRules.sectorInvasion){ @@ -536,8 +549,8 @@ public class PlanetDialog extends BaseDialog implements PlanetInterfaceRenderer{ var preficon = sec.icon(); var icon = sec.isAttacked() ? Fonts.getLargeIcon("warning") : - !sec.hasBase() && sec.preset != null && sec.preset.requireUnlock && sec.preset.unlocked() && preficon == null ? - (sec.preset != null && sec.preset.requireUnlock && sec.preset.unlocked() ? sec.preset.uiIcon : Fonts.getLargeIcon("terrain")) : + !sec.hasBase() && sec.preset != null && ((sec.preset.requireUnlock && sec.preset.unlocked()) || (sec.preset.showHidden && mode == planetLaunch)) && preficon == null ? + (sec.preset != null && ((sec.preset.requireUnlock && sec.preset.unlocked()) || sec.preset.showHidden) ? sec.preset.uiIcon : Fonts.getLargeIcon("terrain")) : sec.preset != null && sec.preset.requireUnlock && sec.preset.locked() && sec.preset.techNode != null && (sec.preset.techNode.parent == null || !sec.preset.techNode.parent.content.locked()) ? Fonts.getLargeIcon("lock") : preficon; var color = sec.isAttacked() ? Team.sharded.color : Color.white; diff --git a/core/src/mindustry/ui/dialogs/SectorSelectDialog.java b/core/src/mindustry/ui/dialogs/SectorSelectDialog.java index c1ab07af05..3626c94d78 100644 --- a/core/src/mindustry/ui/dialogs/SectorSelectDialog.java +++ b/core/src/mindustry/ui/dialogs/SectorSelectDialog.java @@ -22,7 +22,7 @@ public class SectorSelectDialog extends BaseDialog{ TextField search; public SectorSelectDialog(){ - super("@content.sector.name"); + super("@database-category.sector"); cont.top(); cont.table(s -> { diff --git a/core/src/mindustry/ui/fragments/HintsFragment.java b/core/src/mindustry/ui/fragments/HintsFragment.java index 5cc86f87df..62110d9a09 100644 --- a/core/src/mindustry/ui/fragments/HintsFragment.java +++ b/core/src/mindustry/ui/fragments/HintsFragment.java @@ -167,44 +167,145 @@ public class HintsFragment{ public enum DefaultHint implements Hint{ desktopMove(visibleDesktop, () -> Core.input.axis(Binding.moveX) != 0 || Core.input.axis(Binding.moveY) != 0), + zoom(visibleDesktop, () -> Core.input.axis(KeyCode.scroll) != 0), - breaking(() -> isTutorial.get() && state.rules.defaultTeam.data().getCount(Blocks.conveyor) > 5, () -> ui.hints.events.contains("break")), - desktopShoot(visibleDesktop, () -> isSerpulo() && Vars.state.enemies > 0, () -> player.shooting), - depositItems(() -> !player.dead() && player.unit().hasItem(), () -> !player.dead() && !player.unit().hasItem()), - desktopPause(visibleDesktop, () -> isTutorial.get() && !Vars.net.active() && state.wave >= 2, () -> Core.input.keyTap(Binding.pause)), - unitControl(() -> isSerpulo() && state.rules.defaultTeam.data().units.size > 2 && !net.active() && !player.dead(), () -> !player.dead() && !player.unit().spawnedByCore), - unitSelectControl(() -> isSerpulo() && state.rules.defaultTeam.data().units.size > 3 && !net.active() && !player.dead(), - () -> control.input.commandMode && control.input.selectedUnits.size > 0 && control.input.selectedUnits.first().controller() instanceof CommandAI ai && ai.targetPos != null), - respawn(visibleMobile, () -> !player.dead() && !player.unit().spawnedByCore, () -> !player.dead() && player.unit().spawnedByCore), - launch(() -> (isTutorial.get() || Vars.state.rules.sector == SectorPresets.onset.sector) && state.rules.sector.isCaptured(), () -> ui.planet.isShown()), - schematicSelect(visibleDesktop, () -> ui.hints.placedBlocks.contains(Blocks.router) || ui.hints.placedBlocks.contains(Blocks.ductRouter), () -> Core.input.keyRelease(Binding.schematicSelect) || Core.input.keyTap(Binding.pick)), - conveyorPathfind(() -> control.input.block == Blocks.titaniumConveyor, () -> Core.input.keyRelease(Binding.diagonalPlacement) || (mobile && Core.settings.getBool("swapdiagonal"))), - boost(visibleDesktop, () -> !player.dead() && player.unit().type.canBoost, () -> Core.input.keyDown(Binding.boost)), - blockInfo(() -> control.input.block == Blocks.graphitePress, () -> ui.content.isShown()), - derelict(() -> ui.hints.events.contains("derelictmouse") && !isTutorial.get(), () -> ui.hints.events.contains("derelictbreak")), - payloadPickup(() -> isSerpulo() && !player.dead() && player.unit() instanceof Payloadc p && p.payloads().isEmpty(), () -> player.unit() instanceof Payloadc p && p.payloads().any()), - payloadDrop(() -> !player.dead() && player.unit() instanceof Payloadc p && p.payloads().any(), () -> player.unit() instanceof Payloadc p && p.payloads().isEmpty()), - waveFire(() -> Groups.fire.size() > 0 && Blocks.wave.unlockedNow(), () -> indexer.getFlagged(state.rules.defaultTeam, BlockFlag.extinguisher).size > 0), - generator(() -> control.input.block == Blocks.combustionGenerator, () -> ui.hints.placedBlocks.contains(Blocks.combustionGenerator)), - rebuildSelect(() -> state.rules.defaultTeam.data().plans.size >= 10, () -> control.input.isRebuildSelecting()), - guardian(() -> state.boss() != null && isSerpulo() && state.boss().armor >= 4, () -> state.boss() == null), - cannotUpgrade(() -> ui.hints.events.contains("cannotupgrade"), () -> false), + + breaking( + () -> isTutorial.get() && state.rules.defaultTeam.data().getCount(Blocks.conveyor) > 5, + () -> ui.hints.events.contains("break") + ), + + desktopShoot(visibleDesktop, + () -> isSerpulo() && Vars.state.enemies > 0, + () -> player.shooting + ), + + depositItems( + () -> !player.dead() && player.unit().hasItem(), + () -> !player.dead() && !player.unit().hasItem() + ), + + desktopPause(visibleDesktop, + () -> isTutorial.get() && !Vars.net.active() && state.wave >= 2, + () -> Core.input.keyTap(Binding.pause) + ), + + unitControl( + () -> isSerpulo() && state.rules.defaultTeam.data().units.size > 2 && !net.active() && !player.dead(), + () -> !player.dead() && !player.unit().spawnedByCore + ), + + unitSelectControl( + //if the player is on fungal pass or has *ever* played fungal pass, don't show this hint, it's redundant. + //in general, this should only be necessary if the player is doing a custom game or sequence-broke somehow + () -> isSerpulo() && state.rules.defaultTeam.data().units.size > 3 && !net.active() && !player.dead() && state.getSector() != SectorPresets.fungalPass.sector && SectorPresets.fungalPass.sector.save == null, + () -> control.input.commandMode && control.input.selectedUnits.size > 0 && control.input.selectedUnits.first().controller() instanceof CommandAI ai && ai.targetPos != null + ), + + respawn(visibleMobile, + () -> !player.dead() && !player.unit().spawnedByCore, + () -> !player.dead() && player.unit().spawnedByCore + ), + + launch( + () -> (isTutorial.get() || Vars.state.rules.sector == SectorPresets.onset.sector) && state.rules.sector.isCaptured(), + () -> ui.planet.isShown() + ), + + schematicSelect(visibleDesktop, + () -> ui.hints.placedBlocks.contains(Blocks.router) || ui.hints.placedBlocks.contains(Blocks.ductRouter), + () -> Core.input.keyRelease(Binding.schematicSelect) || Core.input.keyTap(Binding.pick) + ), + + conveyorPathfind( + () -> control.input.block == Blocks.titaniumConveyor, + () -> Core.input.keyRelease(Binding.diagonalPlacement) || (mobile && Core.settings.getBool("swapdiagonal")) + ), + + boost(visibleDesktop, + () -> !player.dead() && player.unit().type.canBoost, + () -> Core.input.keyDown(Binding.boost) + ), + + blockInfo( + () -> control.input.block == Blocks.graphitePress, + () -> ui.content.isShown() + ), + + derelict( + () -> ui.hints.events.contains("derelictmouse") && !isTutorial.get(), + () -> ui.hints.events.contains("derelictbreak") + ), + + payloadPickup( + () -> isSerpulo() && !player.dead() && player.unit() instanceof Payloadc p && p.payloads().isEmpty(), + () -> player.unit() instanceof Payloadc p && p.payloads().any() + ), + + payloadDrop( + () -> !player.dead() && player.unit() instanceof Payloadc p && p.payloads().any(), + () -> player.unit() instanceof Payloadc p && p.payloads().isEmpty() + ), + + waveFire( + () -> Groups.fire.size() > 0 && Blocks.wave.unlockedNow(), + () -> indexer.getFlagged(state.rules.defaultTeam, BlockFlag.extinguisher).size > 0 + ), + + generator( + () -> control.input.block == Blocks.combustionGenerator, + () -> ui.hints.placedBlocks.contains(Blocks.combustionGenerator) + ), + + rebuildSelect( + () -> state.rules.defaultTeam.data().plans.size >= 10, + () -> control.input.isRebuildSelecting() + ), + + guardian( + () -> state.boss() != null && isSerpulo() && state.boss().armor >= 4, + () -> state.boss() == null + ), + + cannotUpgrade( + () -> ui.hints.events.contains("cannotupgrade"), + () -> false + ), + factoryControl(() -> !(state.isCampaign() && state.rules.sector.preset == SectorPresets.onset) && - state.rules.defaultTeam.data().getBuildings(Blocks.tankFabricator).size + state.rules.defaultTeam.data().getBuildings(Blocks.groundFactory).size > 0, () -> ui.hints.events.contains("factorycontrol")), + state.rules.defaultTeam.data().getBuildings(Blocks.tankFabricator).size + state.rules.defaultTeam.data().getBuildings(Blocks.groundFactory).size > 0, + () -> ui.hints.events.contains("factorycontrol") + ), + coreUpgrade(() -> state.isCampaign() && state.rules.sector.planet == Planets.serpulo && Blocks.coreFoundation.unlocked() && state.rules.defaultTeam.core() != null && state.rules.defaultTeam.core().block == Blocks.coreShard && state.rules.defaultTeam.core().items.has(Blocks.coreFoundation.requirements), - () -> ui.hints.placedBlocks.contains(Blocks.coreFoundation)), - presetLaunch(() -> state.isCampaign() - && state.getSector().preset == null, - () -> state.isCampaign() && state.getSector().preset == SectorPresets.frozenForest), + () -> ui.hints.placedBlocks.contains(Blocks.coreFoundation) + ), + + serpuloCoreZone( + () -> state.isCampaign() && state.getPlanet() == Planets.serpulo && Vars.indexer.isBlockPresent(Blocks.coreZone) && + (!state.rules.attackMode || state.stats.getDestroyed(Blocks.coreShard) + state.stats.getDestroyed(Blocks.coreFoundation) + state.stats.getDestroyed(Blocks.coreNucleus) > 0), + () -> state.rules.defaultTeam.cores().size > 1 + ), + + presetLaunch( + () -> state.isCampaign() && state.getSector().preset == null, + () -> state.isCampaign() && state.getSector().preset == SectorPresets.frozenForest + ), + presetDifficulty(() -> state.isCampaign() && state.getSector().preset == null && state.getSector().threat >= 0.5f && !SectorPresets.tarFields.sector.isCaptured(), //appear only when the player hasn't progressed much in the game yet - () -> state.isCampaign() && state.getSector().preset != null), - coreIncinerate(() -> state.isCampaign() && state.rules.defaultTeam.core() != null && state.rules.defaultTeam.core().items.get(Items.copper) >= state.rules.defaultTeam.core().storageCapacity - 10, () -> false) + () -> state.isCampaign() && state.getSector().preset != null + ), + + coreIncinerate( + () -> state.isCampaign() && state.rules.defaultTeam.core() != null && state.rules.defaultTeam.core().items.get(Items.copper) >= state.rules.defaultTeam.core().storageCapacity - 10, + () -> false + ) ; @Nullable diff --git a/core/src/mindustry/ui/fragments/HudFragment.java b/core/src/mindustry/ui/fragments/HudFragment.java index b7f06e0cb0..9881c6f648 100644 --- a/core/src/mindustry/ui/fragments/HudFragment.java +++ b/core/src/mindustry/ui/fragments/HudFragment.java @@ -14,6 +14,7 @@ import arc.scene.ui.ImageButton.*; import arc.scene.ui.layout.*; import arc.struct.*; import arc.util.*; +import arc.input.*; import mindustry.*; import mindustry.annotations.Annotations.*; import mindustry.content.*; @@ -54,6 +55,9 @@ public class HudFragment{ private Seq blocksOut = new Seq<>(); private Table hudLabel; + private static ObjectSet favoriteBlocks = new ObjectSet<>(); + private static String lastFavorited = null; + private void addBlockSelection(Table cont){ Table blockSelection = new Table(); var pane = new ScrollPane(blockSelection, Styles.smallPane); @@ -100,12 +104,53 @@ public class HudFragment{ rebuildBlockSelection(blockSelection, ""); } + private static void loadFavorites(){ + favoriteBlocks = Core.settings.getJson("editor-block-favorites", ObjectSet.class, String.class, ObjectSet::new); + } + + private static void saveFavorites(){ + Core.settings.putJson("editor-block-favorites", String.class, favoriteBlocks); + } + + private static boolean isFavorite(Block block){ + return favoriteBlocks.contains(block.name); + } + + private static void toggleFavorite(Block block){ + boolean isFav = favoriteBlocks.contains(block.name); + if(isFav){ + favoriteBlocks.remove(block.name); + Sounds.uiFavorite.play(0.35f, 0.67f, 0f); + }else{ + favoriteBlocks.add(block.name); + lastFavorited = block.name; + Sounds.uiFavorite.play(0.6f, 2.0f, 0f); + } + saveFavorites(); + } + private void rebuildBlockSelection(Table blockSelection, String searchText){ blockSelection.clear(); blocksOut.clear(); - blocksOut.addAll(Vars.content.blocks()); + // Favorites first + for(Block block : Vars.content.blocks()){ + if(isFavorite(block)){ + blocksOut.add(block); + } + } + + for(Block block : Vars.content.blocks()){ + if(!isFavorite(block)){ + blocksOut.add(block); + } + } blocksOut.sort((b1, b2) -> { + // These two block should stay at the top + if(b1 == Blocks.removeOre || b1 == Blocks.removeWall) return -1; + if(b2 == Blocks.removeOre || b2 == Blocks.removeWall) return 1; + int fav = Boolean.compare(isFavorite(b2), isFavorite(b1)); + if(fav != 0) return fav; int synth = Boolean.compare(b1.synthetic(), b2.synthetic()); if(synth != 0) return synth; int ore = Boolean.compare(b1 instanceof OverlayFloor && b1 != Blocks.removeOre, b2 instanceof OverlayFloor && b2 != Blocks.removeOre); @@ -128,9 +173,54 @@ public class HudFragment{ ImageButton button = new ImageButton(Tex.whiteui, Styles.clearNoneTogglei); button.getStyle().imageUp = new TextureRegionDrawable(region); button.clicked(() -> control.input.block = block); + // Pc input for favorites + button.clicked(KeyCode.mouseRight, () -> { + if(block == Blocks.removeOre || block == Blocks.removeWall) return; + toggleFavorite(block); + rebuildBlockSelection(blockSelection, searchText); + control.input.block = block; + }); + // Mobile double-click for favorites + button.addListener(new ClickListener(){ + @Override + public void clicked(InputEvent event, float x, float y){ + if(mobile && getTapCount() == 2){ + if(block == Blocks.removeOre || block == Blocks.removeWall) return; + toggleFavorite(block); + rebuildBlockSelection(blockSelection, searchText); + control.input.block = block; + } + } + }); button.resizeImage(8 * 4f); button.update(() -> button.setChecked(control.input.block == block)); - blockSelection.add(button).size(48f).tooltip(block.localizedName); + + Stack stack = new Stack(); + stack.add(button); + if(isFavorite(block)){ + Image favIcon = new Image(Icon.star); + favIcon.setColor(Color.gold); + favIcon.setOrigin(Align.center); + + if(block.name.equals(lastFavorited)){ + favIcon.color.a = 0f; + favIcon.setScale(0f); + favIcon.addAction(Actions.parallel( + Actions.scaleTo(0.7f, 0.7f, 0.2f), + Actions.alpha(1f, 0.2f), + Actions.run(() -> lastFavorited = null) + )); + }else{ + favIcon.setScale(0.7f); + } + + Table overlay = new Table().align(Align.topRight); + overlay.touchable = Touchable.disabled; + overlay.add(favIcon).size(2f).pad(12f); + + stack.add(overlay); + } + blockSelection.add(stack).size(48f).tooltip(block.localizedName); if(++i % 6 == 0){ blockSelection.row(); @@ -143,7 +233,7 @@ public class HudFragment{ } public void build(Group parent){ - + loadFavorites(); //warn about guardian/boss waves Events.on(WaveEvent.class, e -> { int max = 10; diff --git a/core/src/mindustry/ui/fragments/LoadingFragment.java b/core/src/mindustry/ui/fragments/LoadingFragment.java index 0b26286018..ec55e99001 100644 --- a/core/src/mindustry/ui/fragments/LoadingFragment.java +++ b/core/src/mindustry/ui/fragments/LoadingFragment.java @@ -4,11 +4,13 @@ import arc.*; import arc.func.*; import arc.graphics.*; import arc.graphics.g2d.*; +import arc.input.*; import arc.scene.*; import arc.scene.actions.*; import arc.scene.event.*; import arc.scene.ui.*; import arc.scene.ui.layout.*; +import arc.util.*; import mindustry.graphics.*; import mindustry.ui.*; @@ -17,6 +19,7 @@ public class LoadingFragment{ private TextButton button; private Bar bar; private Label nameLabel; + private @Nullable Runnable cancelListener; private float progValue; public void build(Group parent){ @@ -40,7 +43,16 @@ public class LoadingFragment{ bar = t.add(new Bar()).pad(3).padTop(6).size(500f, 40f).visible(false).get(); t.row(); - button = t.button("@cancel", () -> {}).pad(20).size(250f, 70f).visible(false).get(); + button = t.button("@cancel", () -> { + if(cancelListener != null){ + cancelListener.run(); + } + }).pad(20).size(250f, 70f).visible(false).get(); + button.keyDown(key -> { + if(cancelListener != null && (key == KeyCode.back || key == KeyCode.escape)){ + cancelListener.run(); + } + }); table = t; }); } @@ -68,8 +80,8 @@ public class LoadingFragment{ public void setButton(Runnable listener){ button.visible = true; - button.getListeners().remove(button.getListeners().size - 1); - button.clicked(listener); + button.requestKeyboard(); + cancelListener = listener; } public void setText(String text){ @@ -83,6 +95,7 @@ public class LoadingFragment{ public void show(String text){ button.visible = false; + cancelListener = null; nameLabel.setColor(Color.white); bar.visible = false; table.clearActions(); @@ -98,6 +111,9 @@ public class LoadingFragment{ table.toFront(); table.touchable = Touchable.disabled; table.actions(Actions.fadeOut(0.5f), Actions.visible(false)); + if(Core.scene.getKeyboardFocus() == button){ + Core.scene.setKeyboardFocus(null); + } } private void text(String text){ diff --git a/core/src/mindustry/world/Block.java b/core/src/mindustry/world/Block.java index 6cbed7004d..fea0bfca8e 100644 --- a/core/src/mindustry/world/Block.java +++ b/core/src/mindustry/world/Block.java @@ -224,6 +224,8 @@ public class Block extends UnlockableContent implements Senseable{ public float placeOverlapRange = 50f; /** Multiplier of damage dealt to this block by tanks. Does not apply to crawlers. */ public float crushDamageMultiplier = 1f; + /** If true, this block is instantly destroyed by tanks with crushFragile set to true. */ + public boolean crushFragile = false; /** Max of timers used. */ public int timers = 0; /** Cache layer. Only used for 'cached' rendering. */ @@ -247,6 +249,8 @@ public class Block extends UnlockableContent implements Senseable{ public int unitCapModifier = 0; /** Whether the block can be tapped and selected to configure. */ public boolean configurable; + /** Sound played when this block is configured. */ + public Sound configureSound = Sounds.click; /** If true, this block does not have pointConfig with a transform called on map resize. */ public boolean ignoreResizeConfig; /** If true, this building can be selected like a unit when commanding. */ @@ -563,6 +567,11 @@ public class Block extends UnlockableContent implements Senseable{ return 0; } + public Color getColor(Tile tile){ + int mc = minimapColor(tile); + return mc == 0 ? mapColor : Tmp.c3.set(mc); + } + public boolean outputsItems(){ return hasItems; } @@ -1417,6 +1426,7 @@ public class Block extends UnlockableContent implements Senseable{ hasConsumers = consumers.length > 0; itemFilter = new boolean[content.items().size]; liquidFilter = new boolean[content.liquids().size]; + if(outputsPower) hasPower = true; for(Consume cons : consumers){ cons.apply(this); diff --git a/core/src/mindustry/world/Tile.java b/core/src/mindustry/world/Tile.java index eb17c663fb..e20f96290d 100644 --- a/core/src/mindustry/world/Tile.java +++ b/core/src/mindustry/world/Tile.java @@ -2,6 +2,7 @@ package mindustry.world; import arc.*; import arc.func.*; +import arc.graphics.*; import arc.math.*; import arc.math.geom.*; import arc.math.geom.QuadTree.*; @@ -337,6 +338,10 @@ public class Tile implements Position, QuadTreeObject, Displayable{ circle(radius, (x, y) -> cons.get(world.rawTile(x, y))); } + public Color getFloorColor(){ + return floor.getColor(this); + } + public void recacheWall(){ if(!headless && !world.isGenerating()){ renderer.blocks.recacheWall(this); diff --git a/core/src/mindustry/world/blocks/campaign/Accelerator.java b/core/src/mindustry/world/blocks/campaign/Accelerator.java index 3c570aead2..a014774b0a 100644 --- a/core/src/mindustry/world/blocks/campaign/Accelerator.java +++ b/core/src/mindustry/world/blocks/campaign/Accelerator.java @@ -142,6 +142,10 @@ public class Accelerator extends Block{ return progress; } + public boolean isCoreBuilt(){ + return progress >= 1f; + } + @Override public void draw(){ super.draw(); @@ -251,6 +255,10 @@ public class Accelerator extends Block{ ui.planet.showPlanetLaunch(state.rules.sector, launchCandidates == null ? state.rules.sector.planet.launchCandidates : launchCandidates, sector -> { if(canLaunch()){ consume(); + ItemSeq resources = new ItemSeq(); + resources.add(items); + items.clear(); + power.graph.useBatteries(powerBufferRequirement); progress = 0f; @@ -262,6 +270,7 @@ public class Accelerator extends Block{ sector.planet.unlockedOnLand.each(UnlockableContent::unlock); universe.clearLoadoutInfo(); + universe.updateLaunchResources(resources); universe.updateLoadout((CoreBlock)launchBlock); control.playSector(sector); @@ -274,7 +283,7 @@ public class Accelerator extends Block{ @Override public int getMaximumAccepted(Item item){ - return capacities[item.id]; + return capacities[item.id] + (isCoreBuilt() ? launchBlock.itemCapacity : 0); } @Override diff --git a/core/src/mindustry/world/blocks/defense/turrets/Turret.java b/core/src/mindustry/world/blocks/defense/turrets/Turret.java index cb4a38ee8d..48d601a47e 100644 --- a/core/src/mindustry/world/blocks/defense/turrets/Turret.java +++ b/core/src/mindustry/world/blocks/defense/turrets/Turret.java @@ -185,7 +185,7 @@ public class Turret extends ReloadTurret{ if(ammoPerShot != 1) stats.add(Stat.ammoUse, ammoPerShot, StatUnit.perShot); if(heatRequirement > 0) stats.add(Stat.input, heatRequirement, StatUnit.heatUnits); if(heatRequirement > 0 && maxHeatEfficiency > 0) stats.add(Stat.maxEfficiency, (int)(maxHeatEfficiency * 100f), StatUnit.percent); - } + } @Override public void setBars(){ @@ -259,6 +259,12 @@ public class Turret extends ReloadTurret{ public abstract BulletType type(); } + + @Override + public boolean rotatedOutput(int x, int y){ + return false; + } + @Override public void placeEnded(Tile tile, @Nullable Unit builder, int rotation, @Nullable Object config){ super.placeEnded(tile, builder, rotation, config); @@ -667,8 +673,13 @@ public class Turret extends ReloadTurret{ /** @return whether the turret has ammo. */ public boolean hasAmmo(){ //skip first entry if it has less than the required amount of ammo - if(ammo.size >= 2 && ammo.peek().amount < ammoPerShot && ammo.get(ammo.size - 2).amount >= ammoPerShot){ - ammo.swap(ammo.size - 1, ammo.size - 2); + if(ammo.size >= 2 && ammo.peek().amount < ammoPerShot){ + for(int i = 0; i < ammo.size; i ++){ + if(ammo.get(i).amount >= ammoPerShot){ + ammo.swap(ammo.size - 1, i); + break; + } + } } //used for "side-ammo" like gas in some turrets diff --git a/core/src/mindustry/world/blocks/distribution/StackConveyor.java b/core/src/mindustry/world/blocks/distribution/StackConveyor.java index 2897938e25..86da096357 100644 --- a/core/src/mindustry/world/blocks/distribution/StackConveyor.java +++ b/core/src/mindustry/world/blocks/distribution/StackConveyor.java @@ -141,7 +141,7 @@ public class StackConveyor extends Block implements Autotiler{ } }else if(state == stateUnload){ //front unload //TOOD hacky front check - if((blendprox & (1)) != 0 && !front().block.squareSprite){ + if((blendprox & (1)) != 0 && front() != null && !front().block.squareSprite){ Draw.rect(sliced(regions[0], SliceMode.top), x + Geometry.d4x(rotation) * tilesize*0.75f, y + Geometry.d4y(rotation) * tilesize*0.75f, rotation * 90f); } } diff --git a/core/src/mindustry/world/blocks/environment/TiledFloor.java b/core/src/mindustry/world/blocks/environment/TiledFloor.java index 5e258dddf0..9250ce1146 100644 --- a/core/src/mindustry/world/blocks/environment/TiledFloor.java +++ b/core/src/mindustry/world/blocks/environment/TiledFloor.java @@ -51,6 +51,9 @@ public class TiledFloor extends Floor{ @Override public void floorChanged(Tile tile){ + //TODO: none of this state needs to update on servers right now, but it could cause issues if blocks require a certain alignment + //either way, this wouldn't be called on map load on servers, so it's broken there + if(headless) return; if(!world.isGenerating() && TiledState.changes(state(tile)) != world.floorChanges){ scan(tile); diff --git a/core/src/mindustry/world/blocks/environment/TiledWall.java b/core/src/mindustry/world/blocks/environment/TiledWall.java index c3c0103e42..22d3695547 100644 --- a/core/src/mindustry/world/blocks/environment/TiledWall.java +++ b/core/src/mindustry/world/blocks/environment/TiledWall.java @@ -50,7 +50,7 @@ public class TiledWall extends StaticWall{ @Override public void blockChanged(Tile tile){ - super.blockChanged(tile); + if(headless) return; if(!world.isGenerating() && TiledState.changes(state(tile)) != world.tileChanges){ scan(tile); diff --git a/core/src/mindustry/world/blocks/logic/LogicBlock.java b/core/src/mindustry/world/blocks/logic/LogicBlock.java index ec589a9eaa..f0ce5122de 100644 --- a/core/src/mindustry/world/blocks/logic/LogicBlock.java +++ b/core/src/mindustry/world/blocks/logic/LogicBlock.java @@ -529,11 +529,11 @@ public class LogicBlock extends Block{ while(accumulator >= 1f){ executor.runOnce(); - accumulator --; if(executor.yield){ executor.yield = false; break; } + accumulator --; } } } diff --git a/core/src/mindustry/world/blocks/logic/SwitchBlock.java b/core/src/mindustry/world/blocks/logic/SwitchBlock.java index 7a470f27d4..48c5d634e4 100644 --- a/core/src/mindustry/world/blocks/logic/SwitchBlock.java +++ b/core/src/mindustry/world/blocks/logic/SwitchBlock.java @@ -21,6 +21,7 @@ public class SwitchBlock extends Block{ update = true; drawDisabled = false; autoResetEnabled = false; + configureSound = Sounds.none; group = BlockGroup.logic; envEnabled = Env.any; diff --git a/core/src/mindustry/world/blocks/logic/TileableLogicDisplay.java b/core/src/mindustry/world/blocks/logic/TileableLogicDisplay.java index 84773bae2d..deb05a9a30 100644 --- a/core/src/mindustry/world/blocks/logic/TileableLogicDisplay.java +++ b/core/src/mindustry/world/blocks/logic/TileableLogicDisplay.java @@ -211,10 +211,10 @@ public class TileableLogicDisplay extends LogicDisplay{ prevBuffers.clear(); } }); - - processCommands(); } + rootDisplay.processCommands(); + float offset = 0.001f + (rootDisplay.buffer == null ? 0f : (rootDisplay.buffer.hashCode() % 1_000_000) / 1_000_000f * 0.01f); Draw.z(Layer.block + offset); diff --git a/core/src/mindustry/world/blocks/storage/CoreBlock.java b/core/src/mindustry/world/blocks/storage/CoreBlock.java index cabdbe6549..7afd737ef3 100644 --- a/core/src/mindustry/world/blocks/storage/CoreBlock.java +++ b/core/src/mindustry/world/blocks/storage/CoreBlock.java @@ -550,9 +550,16 @@ public class CoreBlock extends StorageBlock{ @Override public double sense(LAccess sensor){ if(sensor == LAccess.itemCapacity) return storageCapacity; + if(sensor == LAccess.maxUnits) return Units.getCap(team); return super.sense(sensor); } + @Override + public double sense(Content content){ + if(content instanceof UnitType type) return team.data().countType(type); + return super.sense(content); + } + @Override public boolean canControlSelect(Unit player){ return player.isPlayer(); diff --git a/gradle.properties b/gradle.properties index 1fe2b84dfe..b069861c74 100644 --- a/gradle.properties +++ b/gradle.properties @@ -26,4 +26,4 @@ org.gradle.caching=true org.gradle.internal.http.socketTimeout=100000 org.gradle.internal.http.connectionTimeout=100000 android.enableR8.fullMode=false -archash=eaf9d2cdea +archash=8c17f18ffb diff --git a/tests/src/test/java/ApplicationTests.java b/tests/src/test/java/ApplicationTests.java index a3eb36f283..5ea8e47422 100644 --- a/tests/src/test/java/ApplicationTests.java +++ b/tests/src/test/java/ApplicationTests.java @@ -105,7 +105,7 @@ public class ApplicationTests{ public void init(){ super.init(); begins[0] = true; - testMap = maps.loadInternalMap("groundZero"); + testMap = maps.loadInternalMap("serpulo/groundZero"); Thread.currentThread().interrupt(); } }; diff --git a/tests/src/test/java/ModTestAllure.java b/tests/src/test/java/ModTestAllure.java index 06f902d09b..3ef4949630 100644 --- a/tests/src/test/java/ModTestAllure.java +++ b/tests/src/test/java/ModTestAllure.java @@ -24,7 +24,7 @@ public class ModTestAllure extends GenericModTest{ assertNotNull(type, "A mod unit must be loaded."); assertTrue(type.weapons.size > 0, "A mod unit must have a weapon."); - Vars.world.loadMap(maps.loadInternalMap("groundZero")); + Vars.world.loadMap(maps.loadInternalMap("serpulo/groundZero")); Unit unit = type.spawn(0, 0); diff --git a/tools/build.gradle b/tools/build.gradle index 6701a24f5f..28b3842033 100644 --- a/tools/build.gradle +++ b/tools/build.gradle @@ -298,7 +298,7 @@ task updateBundles{ Log.info("Updating bundles...") Fi.get("core/assets/bundles").walk(child -> { - if(child.name() == "bundle.properties" || child.toString().contains("output")) return + if(child.name() == "bundle.properties" || child.name() == "global.properties" || child.toString().contains("output")) return if(project.hasProperty("bundle") && child.name() != project.property("bundle")) return Log.info("| @", child.nameWithoutExtension())